Estruturas de DadosMódulo 3 – Controle de Fluxo
Marco A. Casanova - PUC-Rio
e Denise Guliato- UFU
Tópicos
•Seleção – Tomada de decisão
•Repetição
Seleção – Tomada de Decisão
A seleção permite escolher entre duas ou mais alternativas: Isto nos permite tomar uma decisão:
- two-way selection;
- multiway selection
Two-way selection
condição de decisão
ação para false ação para true
False (zero) True (!zero)
Tomada de Decisão: a two-way selection
Tomada de Decisão: a two way selection
Tomada de Decisão: a two way decision Expressão Condicional
Tomada de Decisão: a two-way selection
Exercício:
Escreva uma programa que imprima os seguintes dizeres, de acordo com a temperatura lida como entrada.
Se temperatura for maior ou igual que 300 C, então ‘bom para ir ao clube’
Se temperatura menor que 300 C, então ‘bom para estudar’
Tomada de Decisão: a two-way selection
#include <stdio.h>
main()
{
int temp;
printf(“entre com a temperatura: “);
scanf(“%d”, &temp);
if ( temp >= 30)
printf(“ \n Bom para ir ao clube”);
else printf(“\n Bom para estudar”);
}
Tomada de Decisão: a multiway selection
• escolhe entre várias alternativas:
Expressão multiway
Valor 1Valor 2
Valor 3
Valor 4
ação valor 1
ação valor 2
ação valor 3
ação valor 4
Tomada de Decisão: a multiway selection
O comando switch funciona apenas quando a expressão nas alternativas de seleção (label case) são constantes do tipo inteiro ou caractere.
Tomada de Decisão: a multiway selection
Exercício
Escreva um programa que leia uma expressão aritmética simples e imprime o resultado da sua avaliação.
Operadores: +, - , *, /
Domínio dos operandos: números reais
Exercício
Escreva um programa que imprima o conceito de um aluno, dada a sua media final (números inteiros no intervalo 0 – 100). Para escrever o programa, analise score = media/10:
Conceito A: score = 9 ou 10; (media >= 90)
Conceito B: score = 8; (80 <= media < 70)
Conceito C: score = 7; (70 <= media < 60)
Conceito D: score = 6; (60 <= media < 70)
Conceito F: score = 5, 4, 3, 2, 1, 0. (media < 60)
Tomada de Decisão: a multiway selection
• Comando “else-if”
- usado quando se quer tomar uma decisão com base em múltiplas alternativas cujos valores não são constantes inteiras ou caracteres.
If (expr1)
{bloco de comandos 1}
else if (expr2)
{bloco de comandos 2}
else {bloco de comandos 3}
Tomada de Decisão: a multiway selection
Exercício:
Reescreva o programa para imprimir o conceito de um aluno, considerando que agora a media geral é um numero real.
Conceito A: media >= 90;
Conceito B: media >= 80;
Conceito C: media >=70;
Conceito D: media >= 6;
Conceito F: media nos demais casos.
Exercícios
1) Escreva um programa que implemente a calculadora usando o comando if-else.
2) Escreva um programa, que dados 3 números inteiros, imprima o menor valor;
3) Escreva um programa que dado um numero entre 0 e 6, imprima o correspondente dia da semana. Assuma que o primeiro dia da semana (0) é domingo.
Repetição
O real poder dos computadores está na sua habilidade para repetir uma operação ou uma serie de operações muitas vezes.
Este repetição chamada laços (loopings) é um dos conceitos básicos da programação estruturada.
Conceito de um laço
uma ação ou umconjunto de ações
Neste exemplo o laço nunca para ( loop infinito)
Queremos um laço que termine quando o trabalho é feito condição que controla o laço.
Laços pré-teste e pós-teste• No laço pré-teste, a condição é verificada
antes do inicio do laço e a cada iteração
Se a condição é verdadeira o código é executado,
Se a condição é falsa, o laço termina.
Laços pré-teste e pós-teste
No laço pós-teste as ações são executadas pelo menos uma vez, então a condição que controla o laço é avaliada.
Se a condição é, o laço é repetido,
Se condição é falsa, o laço termina.
Laços pré-teste e pós-testeExemplo: Suponha que você queira fazer
exercícios de levantamento de peso. Você avaliação as suas condições com pré-teste ou com pós-teste.
Energia ?
Levante peso
Energia?
false
true
Levante peso
true
false
(a) pré-teste (b) pós-teste
Laços pré-teste e pós-teste
No pré-teste, as ações podem ser executadas 0, 1 ou mais vezes;
No pós-teste, as ações podem ser executadas uma ou mais vezes.
Laços pré-teste e pós-testeInicialização: feita antes da primeira execução do corpo do
laço;
Atualização: modifica a condição de controle do laço, movendo de true para false.
Laços pré-teste e pós-teste
Os conceitos de inicialização e atualização podem ser aplicados ao problema de levantamento de peso
Laços pré-teste e pós-testeOs laços podem ser controlados por evento:
Os laços podem ser controlados por contador:
Laços pré-teste e pós-teste
Repetição: whileWhile é um laço pré-teste. Usa uma expressão para controlar o laço.
Repetições
Exercício usando while
1) Escreva um programa que calcule o fatorial de um numero inteiro não negativo usando while.
Solução exercício 2
Repetição : for (pré-teste)
Calculo do fatorial usando for
Calculo do fatorial usando for
Repetição : do-while (pós-teste)
Calculo do fatorial usando do-while
Exercicio: O que faz este programa???
Comando continue
O comando continue
Exercícios
1) Escreva uma programa que calcule a media N números reais lidos pelo teclado. O valor de N é dado pelo usuario. Imprima os números lidos e a média calculada:
2) Modifique o exercicio anterior de tal forma a não fornecer previamente o numero de elementos a serem lidos.
Top Related