Estruturas de Dados
Mó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
False (zero)
True (!zero)
condição de
decisão
ação para false
ação para true
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 1
ação
valor 1
Valor 4
Valor 2
ação
valor 2
Valor 3
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 um
conjunto 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-teste
Exemplo: 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.
Levante
peso
false
Energia ?
true
Levante
peso
true
Energia?
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-teste
Inicializaçã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-teste
Os laços podem ser controlados por evento:
Laços pré-teste e pós-teste
Os laços podem ser controlados por contador:
Repetição: while
While é 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.
Download

modulo 3(revisão)