Download - Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU
![Page 1: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/1.jpg)
Estruturas de DadosMódulo 3 – Controle de Fluxo
Marco A. Casanova - PUC-Rio
e Denise Guliato- UFU
![Page 2: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/2.jpg)
Tópicos
•Seleção – Tomada de decisão
•Repetição
![Page 3: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/3.jpg)
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
![Page 4: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/4.jpg)
Two-way selection
condição de decisão
ação para false ação para true
False (zero) True (!zero)
![Page 5: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/5.jpg)
Tomada de Decisão: a two-way selection
![Page 6: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/6.jpg)
Tomada de Decisão: a two way selection
![Page 7: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/7.jpg)
Tomada de Decisão: a two way decision Expressão Condicional
![Page 8: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/8.jpg)
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’
![Page 9: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/9.jpg)
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”);
}
![Page 10: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/10.jpg)
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
![Page 11: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/11.jpg)
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.
![Page 12: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/12.jpg)
Tomada de Decisão: a multiway selection
![Page 13: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/13.jpg)
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
![Page 14: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/14.jpg)
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)
![Page 15: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/15.jpg)
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}
![Page 16: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/16.jpg)
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.
![Page 17: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/17.jpg)
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.
![Page 18: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/18.jpg)
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.
![Page 19: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/19.jpg)
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.
![Page 20: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/20.jpg)
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.
![Page 21: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/21.jpg)
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.
![Page 22: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/22.jpg)
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
![Page 23: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/23.jpg)
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.
![Page 24: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/24.jpg)
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.
![Page 25: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/25.jpg)
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
![Page 26: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/26.jpg)
Laços pré-teste e pós-testeOs laços podem ser controlados por evento:
![Page 27: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/27.jpg)
Os laços podem ser controlados por contador:
Laços pré-teste e pós-teste
![Page 28: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/28.jpg)
Repetição: whileWhile é um laço pré-teste. Usa uma expressão para controlar o laço.
![Page 29: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/29.jpg)
Repetições
![Page 30: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/30.jpg)
Exercício usando while
1) Escreva um programa que calcule o fatorial de um numero inteiro não negativo usando while.
![Page 31: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/31.jpg)
Solução exercício 2
![Page 32: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/32.jpg)
Repetição : for (pré-teste)
![Page 33: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/33.jpg)
Calculo do fatorial usando for
![Page 34: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/34.jpg)
Calculo do fatorial usando for
![Page 35: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/35.jpg)
Repetição : do-while (pós-teste)
![Page 36: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/36.jpg)
Calculo do fatorial usando do-while
![Page 37: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/37.jpg)
Exercicio: O que faz este programa???
![Page 38: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/38.jpg)
Comando continue
![Page 39: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/39.jpg)
O comando continue
![Page 40: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/40.jpg)
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.
![Page 41: Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato- UFU](https://reader036.vdocuments.pub/reader036/viewer/2022062307/552fc13d497959413d8dc6ef/html5/thumbnails/41.jpg)