Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador...

Post on 06-Jun-2020

0 views 0 download

Transcript of Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador...

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