13
Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas de Repetição Estruturas de Repetição Indefinidas

Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas de Repetição Estruturas de Repetição Indefinidas

Embed Size (px)

Citation preview

Page 1: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas de Repetição Estruturas de Repetição Indefinidas

Universidade Federal de Alagoas – UFAL

Centro de Tecnologia – CTEC

ESTRUTURAS DE CONTROLE

Estruturas de Repetição Estruturas de Repetição Indefinidas

Page 2: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas de Repetição Estruturas de Repetição Indefinidas

Estruturas de Repetição

Considere o seguinte algoritmo para o cálculo da média bimestral de um aluno:

E se eu desejar calcular a média dos 25 alunos da turma? Uma solução é repetir o código acima 25 vezes; outra opção é rodar (executar) o programa acima 25 vezes.

2

%Exemplo:

P1 = input(‘Nota do trabalho: ’);P2 = input(‘Nota da prova: ’);Media = 0.3*P1 + 0.7*P2;disp(Media);

Page 3: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas de Repetição Estruturas de Repetição Indefinidas

Estruturas de Repetição

No entanto, nem sempre essas soluções são viáveis.

A idéia, então, é usar o mesmo trecho do código acima sem a necessidade de reescrevê-lo. As estruturas usadas para implementar essa idéia são chamadas Estruturas de Repetição. Elas podem ser divididas em dois tipos básicos:   Estruturas de Repetição Definidas Estruturas de Repetição Indefinidas Essas estruturas são apresentadas na seqüência.

3

Page 4: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas de Repetição Estruturas de Repetição Indefinidas

Estruturas de Repetição Indefinidas

Estruturas de Repetição indefinidas são estruturas onde não se conhece, a priori, quantas repetições serão realizadas. Sua sintaxe é dada por:

4

while ( condição ) comando 1; comando 2; comando 3;end

Page 5: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas de Repetição Estruturas de Repetição Indefinidas

Estruturas de Repetição Indefinidas Exercício 01: Identificar o múltiplo de 7 mais próximo de 500

sem superá-lo.

5

x = 0;while( x <= 500 ) x= x+7;enddisp(x-7);

Variável de

controle de

repetições

Atualização

Workspace

repetição

x

1 7

2 14

3 21

… …

72 504

Page 6: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas de Repetição Estruturas de Repetição Indefinidas

Estruturas de Repetição Indefinidas

Exercício 02: Identificar se um número fornecido pelo usuário é primo.

6

x = input(‘Insira o número’);flag=0;m=2;while (( flag == 0 )&(m<x)) if (mod(x,m)==0) flag=1; end m=m+1;endif (flag==1) fprintf(‘%6i não é primo\n’, x);else fprintf(‘%6i é primo\n’, x);end

Variável-bandeira

Page 7: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas de Repetição Estruturas de Repetição Indefinidas

Estruturas de Repetição Indefinidas

Uso do contador. Atenção para a definição do valor inicial e do incremento a

cada repetição! Exemplo 01: Identificar a menor quantidade de termos até

que a soma de múltiplos de 3 supere 500.

7

cont= 0;soma = 0;while ( soma <= 500 ) cont = cont+1; soma = soma + 3*cont;enddisp(cont);

ContadorElemento-

neutro

Acumulador

Page 8: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas de Repetição Estruturas de Repetição Indefinidas

Estruturas de Repetição Indefinidas As estruturas de repetição indefinidas também podem ser

usadas em problemas com número de repetições conhecidas.

Exercício 02: Calcular a média anual de 10 alunos usando while.

8

soma = 0;cont = 1;

while( cont <= 10 ) m = input(‘Media: ’); soma = soma + m; cont = cont + 1;end

media = soma/(cont – 1);

disp(media);

Page 9: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas de Repetição Estruturas de Repetição Indefinidas

Universidade Federal de Alagoas – UFAL

Centro de Tecnologia – CTEC

EXERCÍCIOS COMPLEMENTARES

Page 10: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas de Repetição Estruturas de Repetição Indefinidas

Exercício 01: Imprensadinho

Mané escolhe um número entre 0 e 100. Sem ver qual foi o número, Zé tenta adivinhar o número

gerado. Zé não pode dizer o número que ele pensa que Mané

escreveu. Zé deve prender o número escolhido por Mané ao dizer seu antecessor e seu sucessor.

A cada tentativa, deve-se informar a Zé para chutar mais baixo ou mais alto ou se ele perdeu ou venceu.

Se Zé acertar o número, declarar que Mané venceu e mostrar o número de tentativas.

Se restar apenas uma opção para chute, declarar que Zé venceu por Mané ter ficado preso.

Informar o número escolhido por Mané quando o jogo tiver terminado.

10

Page 11: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas de Repetição Estruturas de Repetição Indefinidas

11

clear, clcdisp ('Imprensadinho. Jogo para 2 jogadores, denominados Mané e Zé, onde Mané escolhe')disp (‘um número num intervalo conhecido e Zé não pode acertar o número. Zé tenta prender')disp('o número escolhido por Mané ao dizer o antecessor e o sucessor do número escolhido');teste = 0; soma = 0; Min = 0; Max = 100;segredo = input('Mané, escreva um número entre 0 e 100: '); clcwhile( teste == 0 ) fprintf ('Zé, os limites para chute são %i e %i\n', Min, Max); chute = input('Escolha um número no intervalo especificado: '); if ~((chute<Max)&(chute>Min)) fprintf('Chute direito, Zé!\n'); else soma = soma + 1; if( chute == segredo ), teste = 1; fprintf('Perdeu, Zé! Acertaste em cheio! Número de tentativas: %i\n', soma); elseif( (chute < segredo) ) if( (Max-chute) == 2 ), teste = 1; fprintf('Perdeu, Mané! Ficaste preso! Número de tentativas: %i\n', soma); else disp('Zé, chute mais alto'); Min = chute; end else if( (chute-Min) == 2 ), teste = 1; fprintf('Perdeu, Mané! Ficaste preso! Número de tentativas: %i\n', soma); else disp('Zé, chute mais baixo'); Max = chute; end end endendfprintf('O número escolhido por Mané foi %i\n',segredo);

Page 12: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas de Repetição Estruturas de Repetição Indefinidas

Universidade Federal de Alagoas – UFAL

Centro de Tecnologia – CTEC

Desafios

Page 13: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC ESTRUTURAS DE CONTROLE Estruturas de Repetição Estruturas de Repetição Indefinidas

Estruturas de Repetição Indefinidas Exercício 01: Programe o jogo da forca Exercício 02: Monte programa que converta número escrito

no sistema decimal para binário Exercício 03: Monte programa que converta número escrito

no sistema binário para decimal

13