aula 1 algoritmo e pseudo-código

Post on 11-Jul-2022

13 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

SeijiIsotani,RafaelaV.Rochasisotani@icmc.usp.br

rafaela.vilela@gmail.com

PAE:ArmandoM.Toda,Geiser Chalcoarmando.toda@gmail.comgeiser.gcc@gmail.com

Aula1AlgoritmoePseudo-código

Departamento deSistemas deComputaçãoUniversidade deSãoPauloSSC600– Introdução aCiência deComputação I

Informações sobre ocurso

• Sitedocursohttps://edisciplinas.usp.br/course/view.php?id=39957

• Atividadesonline:http://moodle.caed-lab.com

• Cronogramadasaulas– Serádisponibilizadonoedisciplinas

ObjetivosdoCurso

Apresentarosconceitosbásicosparaodesenvolvimentodeprogramas,

utilizandouma linguagemdeprogramaçãocomoapoio

DesenvolveroPensamentoComputacional

Oqueé?

• Programa: codificaçãodeumalgoritmo emumalinguagemdeprogramação(Ascencio,1999)

Oqueé?

• Pensamentocomputacional:pensamentonosproblemasdeformaanalítica edesenvolvimentodesoluçõesemformadealgoritmos(Easterbrook,2014)

PensamentoComputacional

Técnicasespecíficasdepensamentocomputacionalincluem:• Decomposiçãodoproblema• Reconhecimentodepadrões• Generalizaçãodepadrõesparadefinirabstraçõesoumodelos

• Projetodealgoritmos• Análisededadosevisualização

Problemas

• Somartrêsnúmeros

Passo1:Recebertrêsnúmeros

Passo2:Somarostrêsnúmeros

Passo3:Mostraroresultadoobtido

Problemas

• Trocarumalâmpada

Problemas

• Sacardinheironobanco24horas

• Pararesolveros problemasapresentados você precisa pelo menos:– Indicar quais são asentradas esperadas– Indicar quais são assaídas produzidas– Umconjunto depassos não ambíguospara transformar asentradas nas saídas.

Issoéumalgoritmo

Algoritmo

Umalgoritmo éumconjuntodeatividades que podem serexecutadas passo apassopara resolver problemas

Outrasdefinições:- http://en.wikipedia.org/wiki/Algorithm- RobertSedgewick – Algorithms inC,3rdEd,Addison Wesley

Algoritmo

• Característicasbásicas– ter fim– não dar margem à dupla interpretação

– capacidade de receber dado(s) de entrada domundo exterior

– poder gerar informações de saída para o mundoexterno ao do ambiente do algoritmo

– ser efetivo (todas as etapas especificadas noalgoritmo devem ser alcançáveis em um tempofinito)

Masperaí....

• Umalgoritmoéumprograma?– Não.Umprogramaéumadaspossíveisrepresentaçõesdeumalgoritmo.

• Umalgoritmoéumprocesso?– Não,processoéaatividadedeexecutarumprogramae,consequentemente,tambéméaatividadedeexecutarumalgoritmo.

Algoritmosestãoemtodaaparte

Nãoadiantafugir

• Imaginequevocêqueiracomprarnumsiteonline– Umalgoritmovaianalisarsuasatividadeserecomendarcoisasparacomprar

– Umalgoritmoiráverificarseucartãodecrédito– Umalgoritmoiráidentificaramaneiramaiseficientedeentregaroprodutonasuacasa

• Nãovaicompraronline?– Existeumalgoritmoparamaximizarasvendascolocandoosprodutosnaprateleirademaneiradiferenciada

• Emcomputaçãotudoviraalgoritmos

Senãoépossívelfugir,entãojunte-seaeleJ.

Sejaumcriadordealgoritmodeprimeiralinha!

Como?

Comocriaralgoritmos?

• Parasetornarum bomcozinheiro,vocênão devememorizar livros elivrosde receitas.

• Vocêestuda receitas existentes.• Você pratica fazê-los.• Você experimenta com suasprópriasvariações.

• Atéquepossainventar suasprópriasreceitas.

Comocriaralgoritmos?

• Parasetornarumbomprofissionaldacomputação,vocênãodevememorizarlivroselivrosdealgoritmos.

• Vocêestuda algoritmosfamosos.• Vocêpratica implementá-loseexecutá-los.• Depoispassaareconhecerpadrõesmaisgerais,eaexperimentar implementaçõescomsuasprópriasvariações.

• Atéque,finalmente,vocêiráinventar seusprópriosalgoritmos.

OK.Agoraeuseioqueéumalgoritmo!

Mascomo“escrever”ourepresentarumalgoritmo?

• DescriçãoNarrativa• Fluxograma• Pseudocódigo

DescriçãoNarrativa

Ecomorepresentarumalgoritmo?

• Descriçãonarrativa:– consisteemanalisaroenunciadodoproblemaeescrever,utilizandolinguagemnatural,ospassosaseremseguidosparasuaresolução(receitadebolo).

– Pontopositivo:Nãoénecessárioaprendernovosconceitos,poisalínguanaturaljáébemconhecida.

– Pontonegativo:Alínguanaturalabreespaçoparaváriasinterpretações,dificultandoatranscriçãodessealgoritmoparaprograma

Exemplo– DescriçãoNarrativa

• Descriçãonarrativa:– PASSO1– Receberosdoisnúmerosqueserãomultiplicados

– PASSO2– Multiplicarosnúmeros– PASSO3– Mostraroresultadoobtidodamultiplicação

Crieumalgoritmoparaexibiroresultadodamultiplicaçãodedoisnúmeros

• Descriçãonarrativa:– PASSO1– Receberumnúmero– PASSO2– Multiplicaronúmero*2– PASSO3– Mostraroresultadoobtidodamultiplicação

Exemplo- DescriçãoNarrativaCrieumalgoritmoparaexibirodobro

(n*2)deumnúmero

Fluxograma

Ecomorepresentarumalgoritmo?

• Fluxograma:– consisteemanalisaroenunciadodoproblemaeescrever,utilizandosímbolosgráficos,ospassosaseremseguidosparasuaresolução

– Pontopositivo:Oentendimentodeelementosgráficosémaissimplesqueoentendimentodetextos.

– Pontonegativo:Osfluxogramasdevemserentendidoseoalgoritmoresultantenãoédetalhado.Issodificultasuatranscriçãoparaumprograma

Fonte:http://wiki.icmc.usp.br/index.php/Scc-101(2011101)

Exemplo- FluxogramaCrieumalgoritmoparaexibiroresultado

damultiplicaçãodedoisnúmeros

Entradadedados

Cálculo Saídadedados

Exemplo- FluxogramaCrieumalgoritmoparaexibirodobrode

umnúmero

Pseudocódigo

Ecomorepresentarumalgoritmo?

• Pseudocódigo:– consisteemanalisaroenunciadodoproblemaeescrever,pormeioderegraspredefinidas,ospassosaseremseguidosparasuaresolução

– Pontopositivo:Representaçãoclarasemasespecificaçõesdelinguagemdeprogramação.Apassagemdoalgoritmoparaqualquerlinguagemdeprogramaçãoémaissimples.

– Pontonegativo:Asregrasdopseudocódigodevemseraprendidas

ALGORITMODECLAREn1,n2,mLEIAn1,n2m← n1*n2ESCREVAm

FIM

Exemplo- PseudocódigoCrieumalgoritmoparaexibiroresultado

damultiplicaçãodedoisnúmeros

Exemplo- Pseudocódigo

Existemváriasformasdeescreveropseudocódigo.Exemplos:

Multplicacao (n1,n2)m←n1*n2RETORNEm

FIM

ALGORITMODECLAREn1,n2,mLEIAn1,n2m← n1*n2ESCREVAm

FIM

algoritmo “Multiplicação”var

n1,n2,m:inteiroinicio

escreva(“Digitedoisnúmeros:”)leia(n1)leia(n2)mß n1*n2escreva(“Multiplicação=”,m)

fimalgoritmo

Exemplo- Pseudocódigo

ALGORITMODECLAREn1,n2,mLEIAn1,n2m← n1*n2ESCREVAm

FIM

ExemplocódigoC

CódigoC#include<stdio.h>voidmain() {int n1,n2,m;scanf("%d%d",&n1,&n2);m =n1*n2;printf("\n%d",m);

}

ALGORITMODECLAREn1,n2,mLEIAn1,n2m← n1*n2ESCREVAm

FIM

ALGORITMODECLAREn,mLEIAnm←n*2ESCREVAm

FIM

Exemplo- FluxogramaCrieumalgoritmoparaexibirodobrode

umnúmero

Exercício

• Façaumprogramaquerecebaoraio ecalculeoperímetro dacircunferêncianas trêsformasderepresentaçãodealgoritmos(descriçãonarrativa,fluxogramaepseudocódigo)

perimetroß 2*pi *raio

top related