Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato-...

Post on 18-Apr-2015

115 views 6 download

Transcript of Estruturas de Dados Módulo 3 – Controle de Fluxo Marco A. Casanova - PUC-Rio e Denise Guliato-...

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.