59
Algoritmos e Pseudocódigo INF1005: Programação I

INF1005: Programação I Algoritmos e Pseudocódigoinf1005/material/slides/backup/2010_2/tema02... · Testes Condicionais • Outra forma de escrever o pseudocódigo anterior: variaveis

Embed Size (px)

Citation preview

Algoritmos ePseudocódigo

INF1005: Programação I

Tópicos Principais• Definição de Algoritmo

• Exemplos Básicos

• Formas de representação

• Condicionais

• Exemplos com Condicionais

• Repetições

• Exemplos com Repetições

Definição de Algoritmo

• Um algoritmo é uma sequência de açõesque resolve um problema.

AlgoritmoAlgoritmoProblemaProblema

Definição de Algoritmo

• Mais formalmente: Um algoritmo é umasequência finita de instruções bem definidase não ambíguas, cada uma das quais podeser executada mecânicamente num períodode tempo finito e com uma quantidade deesforço finito.

Exemplos Básicos• Receita de um bolo de chocolate:

1. Bater duas claras em neve

2. Adicionar duas gemas

3. Adicionar uma xícara de açucar

4. Adicionar duas colheres de margarina

5. Adicionar uma xícara de farinha de trigo

6. Adicionar uma colher de chá de fermento

7. Adicionar uma xícara de chocolate em pó

8. Levar à batedeira até formar uma massa homogênea

9. Colocar numa forma e levar ao forno em fogo brando

Exemplos Básicos• Para trocar um pneu de um carro:

1. Afrouxar ligeiramente as porcas

2. Suspender o carro com o macaco

3. Retirar as porcas e o pneu

4. Colocar o pneu reserva

5. Apertar as porcas

6. Abaixar o carro

7. Dar o aperto final nas porcas

Formas deRepresentação

• Linguagem Natural: Os algoritmos sãoexpressos diretamente em linguagem natural (oportuguês, por exemplo).

• Fluxograma: Representação gráfica que empregaformas geométricas padronizadas para indicar asdiversas ações e decisões que devem ser executadaspara resolver o problema.

• Pseudocódigo: Emprega uma linguagemintermediária entre a linguagem natural e umalinguagem de programação para descrever algoritmos.

Formas deRepresentação

• Problema: A partir de 3 notas de um aluno,calcular sua média aritmética e escrever natela se ele foi aprovado ou reprovado,levando em conta que a média paraaprovação deve ser pelo menos 5.0.

Formas deRepresentação

• Linguagem natural:

1. Obter as 3 notas das provas do aluno

2. Calcular a média aritmética das 3 notas

3. Comparar a média com o valor 5.0

4. Se for maior ou igual, escrever“aprovado”

5. Caso contrário, escrever “reprovado”

Formas deRepresentação

• Fluxograma:

Formas deRepresentação

• Fluxograma:

bugbug

Formas deRepresentação

• Pseudocódigo:variaveismedia, nota1, nota2, nota3 inicioleia nota1, nota2 e nota3media = (nota1+nota2+nota3)/3se (media >= 5) entao

escreva “aluno aprovado”senao

escreva “aluno reprovado”fimfim

Formas deRepresentação

• Pseudocódigo:variaveismedia, nota1, nota2, nota3 inicioleia nota1, nota2 e nota3media = (nota1+nota2+nota3)/3se (media >= 5) entao

escreva “aluno aprovado”senao

escreva “aluno reprovado”fimfim

armazenaminformações

necessárias parasolução doproblema

Formas deRepresentação

• Problema: A partir das três notas de umaluno, calcular sua média aritmética edeterminar se ele foi aprovado, vai fazerprova final ou foi reprovado. O aluno éaprovado se tem média maior ou igual a5.0, é reprovado se tem média menor que3.0 e tem que fazer prova final se não caiem nenhum dos casos anteriores.

Formas deRepresentação

• Fluxograma:

OBS: Tem umerro nessediagrama.

Quem conseguever?

Formas deRepresentação

• Fluxograma:

Dica: O erro estáaqui

Formas deRepresentação

• Pseudocódigo:

variaveismedia, nota1, nota2, nota3inicioleia nota1, nota2 e nota3media = (nota1+nota2+nota3)/3se (media >= 5) entao

escreva “aluno aprovado”senao

se (media >= 3) entaoescreva “aluno em prova final”

senaoescreva “aluno reprovado”

fimfimfim

Condicionais

• Em diversos momentos, nós precisamoscontrolar a execução de um bloco deinstruções, só permitindo sua execuçãoquando uma condição for verdadeira.

Condicionais

• Exemplo:variaveismedia, nota1, nota2, nota3 inicioleia nota1, nota2 e nota3media = (nota1+nota2+nota3)/3se (media >= 5) entao

escreva “aluno aprovado”senao

escreva “aluno reprovado”fimfim

Condicionais

• Exemplo:variaveismedia, nota1, nota2, nota3 inicioleia nota1, nota2 e nota3media = (nota1+nota2+nota3)/3se (media >= 5) entao

escreva “aluno aprovado”senao

escreva “aluno reprovado”fimfim

escrevaescreva só executará só executaráse se médiamédia for maior ou for maior ou

igual a 5igual a 5

Condicionais

se (media >= 5) entaoescreva “aluno aprovado”

fim

Condicionais

se (media >= 5) entaoescreva “aluno aprovado”

fim

se (condição verdadeira) entaoinstrução 1instrução 2...

fim

Condicionais• Podemos tratar também quando

uma condição é falsa

se (media >= 5) entaoescreva “aluno aprovado”

senaoescreva “aluno reprovado”

fim

Executa quandoExecuta quandocondiçãocondição

verdadeiraverdadeira

Condicionais• Podemos tratar também quando

uma condição é falsa

se (media >= 5) entaoescreva “aluno aprovado”

senaoescreva “aluno reprovado”

fimExecuta quandoExecuta quandocondição falsacondição falsa

Condicionais• Podemos incluir condicionais dentro

dos blocos de instruções decondicionais

variaveismedia, nota1, nota2, nota3 inicioleia nota1, nota2 e nota3 media = (nota1+nota2+nota3)/3se (media >= 5) entao

escreva “aluno aprovado”senao

se (media >= 3) entaoescreva “aluno em prova final”

senaoescreva “aluno reprovado”

fimfimfim

Bloco executaBloco executaapenas quandoapenas quando

média < 5média < 5

Testes Condicionais• Podemos incluir testes condicionais

dentro dos blocos de instruções detestes condicionais

variaveismedia, nota1, nota2, nota3 inicioleia nota1, nota2 e nota3media = (nota1+nota2+nota3)/3se (media >= 5) entao

escreva “aluno aprovado”senao

se (media >= 3) entaoescreva “aluno em prova final”

senaoescreva “aluno reprovado”

fimfimfim

InstruçãoInstruçãoexecuta apenasexecuta apenas

quandoquandomédia < 5 emédia < 5 emédia >= 3média >= 3

Testes Condicionais• Podemos incluir testes condicionais

dentro dos blocos de instruções

variaveismedia, nota1, nota2, nota3inicioleia nota1, nota2 e nota3media = (nota1+nota2+nota3)/3se (media >= 5) entao

escreva “aluno aprovado”senao

se (media >= 3) entaoescreva “aluno em prova final”

senaoescreva “aluno reprovado”

fimfimfim

InstruçãoInstruçãoexecuta apenasexecuta apenas

quandoquandomédia < 3média < 3

Testes Condicionais• Outra forma de escrever o

pseudocódigo anterior:variaveismedia, nota1, nota2, nota3 inicioleia nota1, nota2 e nota3media = (nota1+nota2+nota3)/3se (media >= 5) entao

escreva “aluno aprovado”senao

se (media >= 3) entaoescreva “aluno em prova final”

senaoescreva “aluno reprovado”

fimfimfim

variaveismedia, nota1, nota2, nota3 inicioleia nota1, nota2 e nota3media = (nota1+nota2+nota3)/3se (media >= 5) entao

escreva “aluno aprovado”senao se (media >= 3) entao

escreva “aluno em prova final”senao

escreva “aluno reprovado”fimfim

Expressões Booleanas

• A expressão que escrevemos até agorapara testar se uma condição é verdadeirachama-se expressão booleana.

• Uma expressão booleana sempre gera umresultado verdadeiro ou falso.

Expressões Booleanas• usaremos os seguintes formatos de expressões

booleanas:

- média > 5 (média maior que 5?)

- média < 5 (média menor que 5?)

- média >= 5 (média maior ou igual a 5?)

- média <= 5 (média menor ou igual a 5?)

- média != 5 (média diferente de 5?)

- média == 5 (média igual a 5?)

CombinandoExpressões Booleanas

• Nós podemos combinar expressõesbooleanas de duas formas

• Essas combinações que nós veremos geramum resultado verdadeiro ou falso.

CombinandoExpressões Booleanas• Usando a conjunção e

se(media < 5 e media >= 3) entaoescrever “em prova final”fim

CombinandoExpressões Booleanas• Usando a conjunção e

Expressão 1 Expressão 2 ResultadoFalso Falso

FalsoFalsosoFasl

VerdadeiroFalso

Verdadeiro FalsoFalso

Verdadeirodd

Verdadeiro Verdadeiro

se(media < 5 e media >= 3) entaoescrever “em prova final”fim

CombinandoExpressões Booleanas• Usando a disjunção ou

se(nota == A ou nota == B) entaoescrever “passou com louvor”fim

CombinandoExpressões Booleanas• Usando a disjunção ou

Expressão 1 Expressão 2 ResultadoFalso Falso

FalsoFalsosoFasl

Verdadeiro VerdadeiroVerdadeiro Falso VerdadeiroVerdadeiro

ddVerdadeiro Verdadeiro

se(nota == A ou nota == B) entaoescrever “passou com louvor”fim

Exemplos comCondicionais

• Problema: Escreva um pseudocódigo queobtém as 3 notas de um aluno, calcula suamédia e caso o aluno tenha sido aprovado,escreva na tela “Aprovado”. O aluno éaprovado se ele teve média maior ou iguala 5 e nenhuma nota menor que 3.

Exemplos comCondicionais

variaveismedia, nota1, nota2, nota3 inicioleia nota1, nota2 e nota3media = (nota1+nota2+nota3)/3se (media >= 5 e nota1 >= 3 e nota2 >= 3 e nota3 >= 3) entao

escreva “Aprovado”fimfim

Exemplos comCondicionais

• Problema: Escreva um pseudocódigo queobtém as 3 notas de um aluno, calcula suamédia e caso o aluno esteja em prova final,escrever “Prova final”. O aluno fica emprova final se ele teve média menor que 5ou se tirou menos que 3 em uma de suasprovas.

Exemplos comCondicionais

variaveismedia, nota1, nota2, nota3 inicioleia(nota1, nota2, nota3)media = (nota1+nota2+nota3)/3se (media < 5 ou nota1 < 3 ou nota2 < 3 ou nota3 < 3) entao

escreva “Prova final”fimfim

Repetições

• Existem diversos problemas que, pararesolvê-los, precisamos executar umasequência de instruções várias vezes.

• Para programar uma repetição, precisamoscriar um laço (loop).

Repetições

• Uma forma de criar uma repetição é usara palavra enquanto.

enquanto(expressão booleana) façainstrução 1instrução 2...fim

Repetições

• Uma forma de criar uma repetição é usara palavra enquanto.

enquanto(expressão booleana) façainstrução 1instrução 2...fim

instruçõesinstruções executam executamenquanto enquanto expressãoexpressão

booleanabooleana for forverdadeiraverdadeira

Repetições

• Para escrever os números 0, 1 e 2 na tela:

numero = 0enquanto(numero < 3) façaescrever numeronumero = numero + 1fim

Repetições

• Para escrever os números 0, 1 e 2 na tela:

numero = 0enquanto(numero < 3) façaescrever numeronumero = numero + 1fim

Valor donúmero

0Tela do

Computador

Repetições

• Para escrever os números 0, 1 e 2 na tela:

numero = 0enquanto(numero < 3) façaescrever numeronumero = numero + 1fim

Valor donúmero

0Tela do

Computador

Repetições

• Para escrever os números 0, 1 e 2 na tela:

numero = 0enquanto(numero < 3) façaescrever numeronumero = numero + 1fim

Valor donúmero

0Tela do

Computador0

Repetições

• Para escrever os números 0, 1 e 2 na tela:

numero = 0enquanto(numero < 3) façaescrever numeronumero = numero + 1fim

Valor donúmero

1Tela do

Computador0

Repetições

• Para escrever os números 0, 1 e 2 na tela:

numero = 0enquanto(numero < 3) façaescrever numeronumero = numero + 1fim

Valor donúmero

1Tela do

Computador0

Repetições

• Para escrever os números 0, 1 e 2 na tela:

numero = 0enquanto(numero < 3) façaescrever numeronumero = numero + 1fim

Valor donúmero

1Tela do

Computador0 1

Repetições

• Para escrever os números 0, 1 e 2 na tela:

numero = 0enquanto(numero < 3) façaescrever numeronumero = numero + 1fim

Valor donúmero

2Tela do

Computador0 1

Repetições

• Para escrever os números 0, 1 e 2 na tela:

numero = 0enquanto(numero < 3) façaescrever numeronumero = numero + 1fim

Valor donúmero

2Tela do

Computador0 1

Repetições

• Para escrever os números 0, 1 e 2 na tela:

numero = 0enquanto(numero < 3) façaescrever numeronumero = numero + 1fim

Valor donúmero

2Tela do

Computador0 1 2

Repetições

• Para escrever os números 0, 1 e 2 na tela:

numero = 0enquanto(numero < 3) façaescrever numeronumero = numero + 1fim

Valor donúmero

3Tela do

Computador0 1 2

Repetições

• Para escrever os números 0, 1 e 2 na tela:

numero = 0enquanto(numero < 3) façaescrever numeronumero = numero + 1fim

Valor donúmero

3Tela do

Computador0 1 2

Repetições

• Para escrever os números 0, 1 e 2 na tela:

Valor donúmero

3Tela do

Computador0 1 2

falsofalso

numero = 0enquanto(numero < 3) façaescrever numeronumero = numero + 1fim

Exemplos comRepetições

• Problema: Escreva um pseudocódigo que lêo número de alunos de uma turma edepois para cada aluno, lê a suas 3 notas daprova e no final escreve a média da turma.

Exemplos comRepetições

variaveisnum_alunos, i media, mediaTurma, nota1, nota2, nota3 inicioleia num_alunosi = 0mediaTurma = 0enquanto(i < num_alunos) faça

leia nota1, nota2 e nota3media = (nota1+nota2+nota3)/3mediaTurma = mediaTurma + mediai = i + 1

fimmediaTurma = mediaTurma / num_alunosescrever mediaTurmafim

Exemplos comRepetições

• Problema: Ler um número não negativo eescrever na tela seu fatorial.

Exemplos comRepetiçõesvariaveisf, n inicioleia nf = 1enquanto(n > 1) faça

f = f * nn = n - 1

fimescreva ffim