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

17
Algoritmos Introdução à Ciência da Computação I Prof. Jó Ueyama

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

Page 1: Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador não tem senso próprio – deve receber instruções explícitas (algoritmos) •

Algoritmos

IntroduçãoàCiênciadaComputaçãoIProf.JóUeyama

Page 2: Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador não tem senso próprio – deve receber instruções explícitas (algoritmos) •

2

Self-drivingcars

Page 3: Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador não tem senso próprio – deve receber instruções explícitas (algoritmos) •

Algoritmo

•  Computadornãotemsensopróprio–  devereceberinstruçõesexplícitas(algoritmos)

•  Umalgoritmocorretodevepossuir3qualidades:1) Cadapassodoalgoritmodeveserumainstruçãoque

possaserrealizada

2) Aordemdospassosdeveserprecisamentedeterminada

3) Oalgoritmodeveterfim(programaçãoestruturada)

3

Page 4: Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador não tem senso próprio – deve receber instruções explícitas (algoritmos) •

EstruturadeAlgoritmo

•  Algoritmoparatrocarpneudeumcarro

4

Início

Fim

TrocarPneu

EseoestepeesTvervazio!?Issodemandaumadecisãoentredoiscursospossíveis

Page 5: Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador não tem senso próprio – deve receber instruções explícitas (algoritmos) •

EstruturadeAlgoritmo

•  Algoritmoparatrocarpneudeumcarro

5

Início

Fim

Estepevazio?

Chamaroborracheiro TrocarPneu

Estruturacondicional

sim não

Écertoqueesseprocessopoderiasermelhordetalhado

Page 6: Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador não tem senso próprio – deve receber instruções explícitas (algoritmos) •

EstruturadeAlgoritmo

•  Algoritmoparatrocarpneudeumcarro

6

Início

Fim

Estepevazio?

Chamaroborracheiro

Levantarocarro

sim não

podeserdetalhadoDesparafusararodaRemoverarodaColocaroestepeParafusararodaAbaixarocarro

podeserdetalhado

Estruturaseqüencial

Page 7: Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador não tem senso próprio – deve receber instruções explícitas (algoritmos) •

EstruturadeAlgoritmo

•  Algoritmoparatrocarpneudeumcarro

7

Início

Fim

Estepevazio?

Chamaroborracheiro

Levantarocarro

sim não

DesparafusararodaRemoverarodaColocaroestepeParafusararodaAbaixarocarro

Desapertaroparafuso1Desapertaroparafuso2Desapertaroparafuso3Desapertaroparafuso4

Apertaroparafuso1Apertaroparafuso2Apertaroparafuso3Apertaroparafuso4

ÉumarepeTçãoinconveniente

ÉumarepeTçãoinconveniente

Page 8: Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador não tem senso próprio – deve receber instruções explícitas (algoritmos) •

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

Page 9: Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador não tem senso próprio – deve receber instruções explícitas (algoritmos) •

EstruturadeAlgoritmos

•  OutrosexemplosquerequeiramrepeTção?•  Cálculodamédiadas3provas•  Cálculodamédiadas3provasedaturma•  CálculodatemperaturamédiaobTdade3sensores– Muitocomumparaambientesquerequeiramconfiabilidade

9

Page 10: Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador não tem senso próprio – deve receber instruções explícitas (algoritmos) •

EstruturadeAlgoritmos

•  Emumaestruturaseqüencial,ospassossãotomadosemumaseqüênciapré-definida.

10

EstruturaSeqüencial

Page 11: Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador não tem senso próprio – deve receber instruções explícitas (algoritmos) •

EstruturadeAlgoritmos

•  UmaestruturacondicionalpermiteaescolhadogrupodeaçõesaserexecutadoquandodeterminadacondiçãoéounãosaTsfeita.

11

EstruturaCondicional

?sim não

Page 12: Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador não tem senso próprio – deve receber instruções explícitas (algoritmos) •

EstruturadeAlgoritmos

•  UmaestruturaderepeTçãopermitequeumaseqüênciadecomandossejaexecutadarepeTdamenteatéqueumadeterminadacondiçãodeinterrupçãosejasaTsfeita.

12

EstruturadeRepeTção

?

sim

não

Page 13: Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador não tem senso próprio – deve receber instruções explícitas (algoritmos) •

DesenvolvimentodoAlgoritmo

•  Começamoscomumaafirmaçãogenéricadasoluçãodoproblemaeprosseguimosatéoalgoritmofinal,aumentandosistemaTcamenteoníveldedetalhamento.

Page 14: Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador não tem senso próprio – deve receber instruções explícitas (algoritmos) •

DesenvolvimentodoAlgoritmo

•  Issodependedoagentequeiráexecutaroalgoritmo

•  Oscomputadorestêmumconjuntomuitolimitadodeinstruçõeseoalgoritmodeveserexpressonostermosdessasinstruções.

•  Comosabersejátemosumnívelsuficientededetalhesnoalgoritmo?

Page 15: Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador não tem senso próprio – deve receber instruções explícitas (algoritmos) •

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).

Page 16: Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador não tem senso próprio – deve receber instruções explícitas (algoritmos) •

DesenvolvimentodoAlgoritmo

2)Elaboraroalgoritmopararesolverumaequaçãodosegundograu

Ax2+Bx+C=0

OsvaloresdeA,BeCdevemserfornecidospelousuário

16

Page 17: Algoritmos - USPwiki.icmc.usp.br/images/6/6a/SSC0304-2016-01_Aula_01.pdfAlgoritmo • Computador não tem senso próprio – deve receber instruções explícitas (algoritmos) •

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