algoritmos - uspwiki.icmc.usp.br/images/6/6a/ssc0304-2016-01_aula_01.pdfalgoritmo • computador...
TRANSCRIPT
Algoritmos
IntroduçãoàCiênciadaComputaçãoIProf.JóUeyama
2
Self-drivingcars
Algoritmo
• Computadornãotemsensopróprio– devereceberinstruçõesexplícitas(algoritmos)
• Umalgoritmocorretodevepossuir3qualidades:1) Cadapassodoalgoritmodeveserumainstruçãoque
possaserrealizada
2) Aordemdospassosdeveserprecisamentedeterminada
3) Oalgoritmodeveterfim(programaçãoestruturada)
3
EstruturadeAlgoritmo
• Algoritmoparatrocarpneudeumcarro
4
Início
Fim
TrocarPneu
EseoestepeesTvervazio!?Issodemandaumadecisãoentredoiscursospossíveis
EstruturadeAlgoritmo
• Algoritmoparatrocarpneudeumcarro
5
Início
Fim
Estepevazio?
Chamaroborracheiro TrocarPneu
Estruturacondicional
sim não
Écertoqueesseprocessopoderiasermelhordetalhado
EstruturadeAlgoritmo
• Algoritmoparatrocarpneudeumcarro
6
Início
Fim
Estepevazio?
Chamaroborracheiro
Levantarocarro
sim não
podeserdetalhadoDesparafusararodaRemoverarodaColocaroestepeParafusararodaAbaixarocarro
podeserdetalhado
Estruturaseqüencial
EstruturadeAlgoritmo
• Algoritmoparatrocarpneudeumcarro
7
Início
Fim
Estepevazio?
Chamaroborracheiro
Levantarocarro
sim não
DesparafusararodaRemoverarodaColocaroestepeParafusararodaAbaixarocarro
Desapertaroparafuso1Desapertaroparafuso2Desapertaroparafuso3Desapertaroparafuso4
Apertaroparafuso1Apertaroparafuso2Apertaroparafuso3Apertaroparafuso4
ÉumarepeTçãoinconveniente
ÉumarepeTçãoinconveniente
EstruturadeAlgoritmo
• Algoritmoparatrocarpneudeumcarro
8
Início
Fim
Estepevazio?
Chamaroborracheiro
Levantarocarro
sim não
RemoverarodaColocaroestepe
Abaixarocarro
Existeparafusop/desapertar?sim
não
desapertarparafuso
Existeparafusoparaapertar?sim
não
apertarparafuso
EstruturaderepeTção
EstruturadeAlgoritmos
• OutrosexemplosquerequeiramrepeTção?• Cálculodamédiadas3provas• Cálculodamédiadas3provasedaturma• CálculodatemperaturamédiaobTdade3sensores– Muitocomumparaambientesquerequeiramconfiabilidade
9
EstruturadeAlgoritmos
• Emumaestruturaseqüencial,ospassossãotomadosemumaseqüênciapré-definida.
10
EstruturaSeqüencial
EstruturadeAlgoritmos
• UmaestruturacondicionalpermiteaescolhadogrupodeaçõesaserexecutadoquandodeterminadacondiçãoéounãosaTsfeita.
11
EstruturaCondicional
?sim não
EstruturadeAlgoritmos
• UmaestruturaderepeTçãopermitequeumaseqüênciadecomandossejaexecutadarepeTdamenteatéqueumadeterminadacondiçãodeinterrupçãosejasaTsfeita.
12
EstruturadeRepeTção
?
sim
não
DesenvolvimentodoAlgoritmo
• Começamoscomumaafirmaçãogenéricadasoluçãodoproblemaeprosseguimosatéoalgoritmofinal,aumentandosistemaTcamenteoníveldedetalhamento.
DesenvolvimentodoAlgoritmo
• Issodependedoagentequeiráexecutaroalgoritmo
• Oscomputadorestêmumconjuntomuitolimitadodeinstruçõeseoalgoritmodeveserexpressonostermosdessasinstruções.
• Comosabersejátemosumnívelsuficientededetalhesnoalgoritmo?
DesenvolvimentodoAlgoritmo
1) Elaborar um algoritmo que calcula a área de um triângulo.
15
2) Ler uma temperatura em graus Celsius e convertê-la em Fahrenheit.F = C(9:0=5:0)+32:0
3) Crie um algoritmo que lê a nota de 3 provas e verifica se o aluno foi aprovado (média >= 5,0).
DesenvolvimentodoAlgoritmo
2)Elaboraroalgoritmopararesolverumaequaçãodosegundograu
Ax2+Bx+C=0
OsvaloresdeA,BeCdevemserfornecidospelousuário
16
DesenvolvimentodoAlgoritmo
D>=0?
X1=-B+raiz(D)/2*AEscrever
“Nãoháraízesreais”
sim não
LerA
LerB
LerCD=B*B-4*A*C
X2=(-B-raiz(D))/2*A
EscreverX1eX2
fim
Início