Aula Teoria 05

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 31

Algoritmos e Programação 1

Prof. Ricardo Augusto Pereira Franco


e-mail: ricardofranco@ufg.br
Curso: Engenharia de Computação
Sumário
❑ Revisão
❑ Estrutura condicional simples
❑ Estrutura condicional composta
❑ Estrutura condicional aninhada

❑ Estrutura de repetição

❑ Exercícios
Revisão – Estrutura condicional
simples
se <condição> então
// início do bloco verdade
comando 1;
comando 2;
...
comando 𝑛;
// fim do bloco verdade
fim

• Quando a <condição> for verdadeira o “bloco verdade” é


executado
• Quando a <condição> for falsa o “bloco verdade” não é executado
Revisão – Estrutura condicional
composta
se <condição> então
// início do bloco verdade
comando 1;
comando 𝑛;
// fim do bloco verdade
senão
// início do bloco falsidade
comando 2;
comando 𝑚;
// fim do bloco falsidade
fim
• Quando a <condição> for verdadeira o “bloco verdade” é
executado
• Quando a <condição> for falsa o “bloco falsidade” é executado
Revisão – Estrutura condicional
encadeada
Algoritmo: Tipos de Triângulo
início
inteiro: A, B, C; // tamanho dos lados
leia (A, B, C);
se (A<B+C) e (B<A+C) e (C<A+B) entao
se (A=B) e (B=C) entao
escreva (“Triangulo Equilatero”);
senao
se (A=B) ou (B=C) ou (A=C) entao
escreva (“Triangulo Isosceles”);
senão
escreva (“Triangulo Escaleno”);
fim
fim
senão
escreva (“Estes valores nao formam um triangulo”);
fim
fim
Revisão – Seleção de múltipla
escolha
• Seleções encadeadas homogêneas se-senão-se são
bastante frequentes para o tratamento de listas de valor
• Para simplificar a escrita, pode-se utilizar o comando
escolha
• Adaptando o algoritmo anterior:
escolha (X)
caso V1: C1;
caso V2: C2;
caso V3: C3;
caso V4: C4;
fim
Estrutura condicional – Exercícios

1. Elabore um algoritmo que leia 4 valores inteiros e apresente na tela


o maior e o menor deles
2. O cardápio de uma lanchonete é o seguinte:
–Especificação Preço unitário
–100 Suco R$ 6,50
–101 Bauru simples R$ 6,30
–102 Hamburger R$ 12,10
–103 Cheeseburger R$ 13,30
–104 Refrigerante R$ 6,00
–Escrever um algoritmo que leia o código do item pedido, a quantidade e calcule o
valor a ser pago por aquele lanche. Considere que a cada execução somente será
calculado um item.
Estrutura condicional – Exercícios

3. Faça um algoritmo que, baseado no código digitado pelo usuário, retorne


o nome e valor do produto. Sabendo que:
–001 - Parafuso (15 centavos)
–002 - Porca (5 centavos)
–003 - Prego (10 centavos)
–004 - Martelo (40 reais)
–005 - Tomada (3 reais)
4. Construa um algoritmo que receba a idade de um nadador e classifique-o
em uma das seguintes categorias:
–5 até 8 anos: Infantil
–9 até 13 anos: Juvenil A
–14 até 17 anos: Juvenil B
–Maiores de 18: Adulto
Estrutura condicional – Exercícios

5. Construa um algoritmo que receba como entradas o sexo, a idade


e tempo de contribuição ao INSS, os últimos dois em anos, e
escreva se essa pessoa tem direito a se aposentar, supondo que
as regras de aposentadoria são:
– 25 anos de contribuição e mínimo de 60 anos para mulheres
– 30 anos de contribuição e mínimo de 65 anos para homens
– Escreva o algoritmo de duas formas diferentes, utilizando a estrutura encadeada
homogênea do tipo se – então – se apresentada anteriormente e sua forma
equivalente
Estrutura condicional – Exercícios
• Algoritmo ex_
inicio
fim
Estrutura condicional – Exercícios
• Algoritmo ex_
inicio
fim
Estrutura de repetição

• Até o momento, quando existe a necessidade de repetir uma


(ou mais) instruções, a única opção é repetir o(s)
comando(s)
• Tal solução é ineficiente considerando que quanto maior é o
número de repetições, maior será o número de instruções
• - Ex.: Escrever um algoritmo que exiba na tela a frase "Feliz Natal"
200 vezes
• A solução é utilizar estruturas de repetição
Estrutura de repetição

• São aquelas que permitem executar mais de uma vez


(repetir) um determinado trecho do algoritmo
• Cada repetição também é chamada de iteração
• O trecho do algoritmo em repetição é também chamado de
laço (ou “loop”)
• As repetições devem ser sempre finitas
• Existem três tipos de repetição:
• para
• enquanto
• faça...enquanto
Estrutura de repetição

• Quanto a quantidade de repetições, os laços podem ser


• Pré-determinados: Sabe-se antes a quantidade de execuções
• Indeterminados: Não se conhece a quantidade de execuções

• Quanto ao critério de parada, os laços podem utilizar


• Teste no início
• Teste no final
• Variável de controle
Estrutura de repetição

• Estrutura para
• Nesta estrutura, uma variável de controle é inicializada com
um valor inicial. Para cada iteração, seu valor é comparado
com um valor final;
• A execução da lista de instruções se repete até que a
variável de controle seja maior que o valor final;
• Para cada iteração, a variável de controle é incrementada;
Estrutura de repetição

• Laço simplificado para utilização em repetições de


quantidade predeterminada
• Incorpora internamente o funcionamento de um contador de
repetições
para (valor inicial; condição; incremento)
{
instrução 1;
instrução 2;
...
instrução 𝑛;
}
Estrutura de repetição

• Exemplo:

para ( auxiliar<-0; auxiliar <= 4; auxiliar++)


{
bloco de comandos 1;
bloco de comandos 2;
...
bloco de comandos 𝑛;
}
Estrutura de repetição
Algoritmo mediaAritmetica

inicio
real: media_aluno, acumulador, media_turma;
inteiro: contador, qntde_alunos;
acumulador <- 0; // inicializacao do acumulador
leia(qntde_alunos);
para (contador <- 1 ; contador <= qntde_alunos ; contador++)
{
escreva(“Digite a media do aluno: ”);
leia (media_aluno); // ler a media do aluno
acumulador <- acumulador + media_aluno;
}
media_turma <- acumulador / qntde_alunos; // calculo da média da turma
escreva (“Media da turma = ” , media_turma);
fim
Estrutura de repetição

• Estrutura enquanto
• Conhecida como estrutura de repetição com teste de saída
no início de cada iteração
• Nesta estrutura, uma expressão lógica é avaliada
inicialmente e se for avaliada para VERDADEIRO, todas as
instruções do bloco associado ao comando de repetição é
executado
• As iterações são executadas até que a avaliação da
condição resulta em FALSO
Estrutura de repetição

• Laço que verifica antes de cada execução, se é “permitido”


executar o trecho do algoritmo
• Trata-se de um laço que se mantém repetindo enquanto uma dada
condição permanecer verdadeira
aux<-0; // inicializar variável auxiliar
enquanto (aux<=50) // enquanto (condição for verdadeira)
{
comando 1;
...
comando n;
aux++; //incrementar variável auxiliar
}
Estrutura de repetição

Algoritmo imprimirValores

inicio
inteiro: contador;
contador <-1; // inicializar variável auxiliar
escreva (“Impressao de 1 a 20: ”);
enquanto (contador <= 20) // enquanto (condição for verdadeira)
{
escreva (“ ”,contador);
contador = contador + 1; //incrementar variável auxiliar
}
fim
Estrutura de repetição
Algoritmo mediaAritmetica

inicio
real: media_aluno, acumulador, media_turma;
inteiro: contador;
acumulador <- 0; // inicializacao do acumulador
contador<-0;
enquanto(contador<50)
{
escreva(“Digite a media do aluno: ”);
leia media_aluno; // ler a media do aluno
acumulador <- acumulador + media_aluno;
contador++;
}
media_turma <- acumulador / 50; // calculo da média da turma
escreva (“Media da turma = ” , media_turma);
fim
Estrutura de repetição

• Atenção: Cuidado com laços infinitos!

• Devemos nos certificar que em algum momento a expressão


lógica tratada pela estrutura enquanto será avaliada para
FALSA!
Estrutura de repetição

• Estrutura faça...enquanto
• Conhecida como estrutura de repetição com teste de saída
no final de cada iteração
• Nesta estrutura, todas as instruções são executada e então
uma expressão lógica é avaliada
• Portanto, nesta estrutura o bloco de instruções é executado
pelo menos uma vez!
• As iterações são executadas até que a avaliação da
condição resulte em FALSO
Estrutura de repetição
Algoritmo mediaAritmetica

inicio
real: media_aluno, acumulador, media_turma;
inteiro: contador;
acumulador <- 0; // inicializacao do acumulador
contador<-0;
faça
{
escreva(“Digite a media do aluno: ”);
leia media_aluno; // ler a media do aluno
acumulador <- acumulador + media_aluno;
contador++;
} enquanto (contador<50);
media_turma <- acumulador / 50; // calculo da média da turma
escreva (“Media da turma = ” , media_turma);
fim
Estrutura de repetição
Algoritmo mediaAritmetica

inicio
real: media_aluno, acumulador, media_turma;
inteiro: contador;
acumulador <- 0; // inicializacao do acumulador
contador<-0;
enquanto(contador<50)
{
escreva(“Digite a media do aluno: ”);
leia media_aluno; // ler a media do aluno
acumulador <- acumulador + media_aluno;
contador++;
}
media_turma <- acumulador / 50; // calculo da média da turma
escreva (“Media da turma = ” , media_turma);
fim
Estrutura de repetição

• Outra forma de utilizar a condição: Flags

• Flags são variáveis que auxiliam o laço de repetição

• O laço de repetição irá analisar o valor da Flag para


determinar o momento de parada
Estrutura de repetição

Algoritmo imprimirOlaMundo

inicio
inteiro: contador;
flag <-0;
escreva (“Digite um valor (diferente de 0 para sair): ”);
enquanto (flag = 0)
{
escreva (“Ola mundo! \n”);
escreva (“Digite um valor (diferente de 0 para sair): ”);
leia(flag);
}
fim
Dúvidas?
Estrutura repetição – Exercícios

1. Faça um algoritmo que leia 30 números inteiros. Calcule e informe o valor


resultante da soma de todos os números
2. Faça um algoritmo que leia números até que um número negativo seja
digitado
3. Faça um algoritmo que leia a idade de 20 pessoas e mostre a quantidade
de pessoas que possui a idade entre 0 e 10 anos
4. Escreva um algoritmo que mostre todos os números pares entre 0 a 20
5. Faça um algoritmo que leia a idade de 𝑛 pessoas (𝑛 deve ser fornecido
pelo usuário). Em seguida, o algoritmo deverá apresentar:
– A idade do mais velho
– A idade do mais novo
– A quantidade de adolescentes (considere 11 a 18 anos)
Obrigado pela atenção.

e-mail: ricardofranco@ufg.br

Você também pode gostar