• Nenhum resultado encontrado

uit ic 10 Estruturas Repetição

N/A
N/A
Protected

Academic year: 2021

Share "uit ic 10 Estruturas Repetição"

Copied!
39
0
0

Texto

(1)

Repetição

Aula 10

(2)

Toda vez que precisamos repetir

determinado número de vezes uma

determinada seqüência de comandos,

usamos um laço de repetição, que

corresponderia repetir o mesmo trecho um

número X de vezes sem ter de escrever o

mesmo trecho X vezes.

(3)

Imagine fazer um fluxograma para calcular a

média das notas de 50 alunos sem repetiçao!

Inicio

Escrever (‘Entre com as três notas do primeiro aluno’) Ler (A1N1,A1N2,A1N3) A1M1 = (A1N1+A1N2 + A1N3)/3 Escrever (‘ A média do primeiro aluno é’, A1M1)

1

1

Escrever (‘Entre com as três notas do segundo

aluno’)

Ler (A2N1,A2N2,A2N3)

A2M2 = (A2N1+A2N2 + A2N3)/3

Escrever (‘ A média do segundo aluno é’, A2M2)

2

O Trecho do

programa teria que

ser repetido 50

(4)

Agora o mesmo fluxo utilizando repetição

Inicio

Escrever (‘Entre com as três notas do aluno’) Ler (N1,N2,N3)

M = (N1+N2 + N3)/3

Escrever ( ‘Aluno’, C, ‘ A média é’, M) C = 0 C == 50? C = C + 1 FIM sim não

(5)

Veja que essa estrutura trabalha com a

repetição de comandos até que condições

se satisfaçam

No Exemplo anterior a condição é ter

atingido os 50 alunos e o teste está no final

do programa, após a execução do trecho de

programa.

Ou seja os comandos serão executados até

que a condição seja verdadeira.

(6)

Porém podemos colocar o teste no início do

fluxograma e fazer com que os comandos

sejam executados enquanto a condição for

verdadeira. Utilizando-se assim a lógica

(7)

Agora o mesmo fluxo com o teste no início

Inicio

Escrever (‘Entre com as três notas do aluno’) Ler (N1,N2,N3)

M = (N1+N2 + N3)/3

Escrever ( ‘Aluno’, C, ‘ A média é’, M) C = 0 C ~= 50? C = C + 1 FIM sim não

Veja que agora o teste é realizado no inicio, os comandos são executados

enquanto a condição é verdadeira.

(8)

Inicio

Escrever (‘Entre com as três notas do aluno’) Ler (N1,N2,N3) M = (N1+N2 + N3)/3 Escrever ( ‘Aluno’, C, ‘ A média é’, M) C = 0 C ~=50? C = C + 1 FIM sim não Inicio

Escrever (‘Entre com as três notas do aluno’) Ler (N1,N2,N3) M = (N1+N2 + N3)/3 Escrever ( ‘Aluno’, C, ‘ A média é’, M) C = 0 C == 50? C = C + 1 FIM sim não

TESTE NO FIM

TESTE NO INICIO

(9)

1.

Estrutura de repetição com teste no inicio

(enquanto...faz)

2.

Estrutura de repetição com teste no final

( repete...até)

(10)

Esta estrutura de repetição executa um comando, ou bloco de comandos, enquanto uma determinada condição for verdadeira. Sintaxe:

enquanto [condição] faz

    [comandos]

fimenquanto

O funcionamento é o seguinte:

1. A condição é avaliada.

2. Se o resultado da condição for falso, a repetição termina e o programa continua no comando imediatamente a seguir ao enquanto.

3. Se o resultado da condição for verdadeiro, são executados os comandos associadas ao enquanto.

(11)

Inicio

Escrever (‘Entre com as três notas do aluno’) Ler (N1,N2,N3) M = (N1+N2 + N3)/3 Escrever ( ‘Aluno’, C, ‘ A média é’, M) C = 0 C ~=50? C = C + 1 FIM sim não

TESTE NO INICIO

Inicio variavel inteiro c, n1,n2,n3 variavel real m enquanto c =/= 50 faz

Escrever "Entre com as tres notas do aluno " Ler n1,n2,n3

c <- c + 1

m <- (n1+n2+n3)/3

Escrever "Aluno \t", c , " a média é \t ", m Fimenquanto

(12)

Repete os comandos até que a condição seja verdadeira. Sintaxe:

repete

    [comandos] ate [condição]

O funcionamento desta instrução é o seguinte:

Na instrução Repete, os [comandos] são sempre executadas pelo menos uma vez.

Só depois destes serem executados é que é validada a [condição].

(13)

Inicio

Escrever (‘Entre com as três notas do aluno’) Ler (N1,N2,N3) M = (N1+N2 + N3)/3 Escrever ( ‘Aluno’, C, ‘ A média é’, M) C = 0 C == 50? C = C + 1 FIM sim não

TESTE NO FIM

Inicio variavel inteiro c, n1,n2,n3 variavel real m repete

Escrever "Entre com as tres notas do aluno " Ler n1,n2,n3

c <- c + 1

m <- (n1+n2+n3)/3

Escrever "Aluno \t", c , " a média é \t ", m ate c = 50

(14)

Inicio

Escrever (‘Entre com as três notas do aluno’) Ler (N1,N2,N3) M = (N1+N2 + N3)/3 Escrever ( ‘Aluno’, C, ‘ A média é’, M) C = 0 C ~=50? C = C + 1 FIM sim não Inicio

Escrever (‘Entre com as três notas do aluno’) Ler (N1,N2,N3) M = (N1+N2 + N3)/3 Escrever ( ‘Aluno’, C, ‘ A média é’, M) C = 0 C ~=50? C = C + 1 FIM não sim

TESTE NO FIM

TESTE NO INICIO

(15)

Repete as instruções até que a condição seja falsa.

Nesta repetição, a instrução é executada pelo menos uma vez. Esta instrução é muito semelhante à instrução Repete.

Sintaxe: faz

    [instruções] enquanto [condição]

O seu funcionamento pode ser descrito da seguinte forma:

1. A instrução ou bloco de comandos é executado.

2. A condição é avaliada;

3. Se o resultado da condição for verdade, volta-se ao ponto 1.

4. Se o resultado da condição for falso, termina a repetição e o programa continua na instrução seguinte a estrutura de repetição.

(16)

Exemplo 1:

Inicio

variavel inteiro c, n1,n2,n3 variavel real m

faz

Escrever "Entre com as tres notas do aluno " Ler n1,n2,n3 c <- c + 1 m <- (n1+n2+n3)/3 Escrever "Aluno \t", c , " a média é \t ", m Enquanto c =/= 50 fim Com Enquanto Inicio variavel inteiro c, n1,n2,n3 variavel real m enquanto c =/= 50 faz Escrever "Entre com as tres notas do aluno " Ler n1,n2,n3 c <- c + 1 m <- (n1+n2+n3)/3 Escrever "Aluno \t", c , " a média é \t ", m Fimenquanto fim

(17)

Permite a repetição dos comandos contidos

nesta estrutura seja repetida um número

específico de vezes.

Os Exemplos que vimos até agora são de

repetições automáticas. Pode ser feita com

teste no início ou no fim.

(18)

Exemplo: Imprima na tela os números de 1 a

100.

Inicializar - valor inicial

Incremento

Testo - valor final

X = 1 X == 100 ? ESCREVER (X) X = X +1 sim não INICIO FIM INICIO VARIAVEL INTEIRO X REPETE X <- X + 1 ESCREVER X, “\t” ATE X = 100 FIM

(19)

Um contador ou um acumulador é uma variável

que ocorre em ambos os lados de uma

atribuição, para que possa alterar o seu próprio

valor.

Ex: C <- C + 1 a variável C é um contador

Soma <- soma + variável.

Todo contador ou acumulador deve ser iniciado

com um valor específico, antes de ser usado pela

primeira. Como ocorreu no exemplo anterior.

(20)

A estrutura de repetição contada, serve

para executar um comando um

determinado número de vezes. Para saber

quando o total de repetições desejadas já

foi atingido, a estrutura de repetição

contada usa um contador:

◦ primeiramente, o contador é iniciado com um valor específico;

◦ depois, o contador é testado para ver se o total de repetições não foi atingido;

◦ se o total de repetições não foi atingido, a repetição continua; senão, pára;

(21)

1.

Progressiva

Elabore um algoritmo que dado

um número inteiro exiba sua

tabuada.

2.

Regressiva

Elabore um algoritmo que dado

um número n exiba a

contagem regressiva de

(22)

inicio

inteiro x <- 1, n, R escrever "Digite um número para calcular a tabuada \n" ler n Enquanto x <=10 faz R <- n * x escrever n, “ * “, x, “ = “ , R x <- x + 1 Fimenquanto fim LER (N) X <=10 ? ESCREVER (R) X = X +1 sim não X = 1 R = N * X INICIO ESCREVER (‘Entre com o número que

deseja imprimir a tabuada’)

(23)

Inicio

Varivel inteiro n

Escrever “Entre com um numero” Ler n Enquanto n >= 0 faz escrever n, “\n” n <- n – 1 Fimenquanto fim LER (N) N > =0 ? ESCREVER (N) N = N - 1 sim não INICIO ESCREVER(‘Entre com um número’) FIM

(24)

 Faça um algoritmo em fluxograma e Portugol que mostre

todos os números pares até 500 (inclusive o 500). Utilizando teste no início e teste no fim.

(25)

Existem quatro tipos básicos de estruturas de repetição:

A estrutura Enquanto possibilita repetir a execução de uma ou vários comandos, enquanto uma determinada condição/expressão, do tipo lógico, tiver valor verdadeiro.

A estrutura Repete permite repetir uma ou mais instruções, até que uma determinada condição/expressão, do tipo lógico, tenha um valor verdadeiro.

A estrutura Para é utilizada para efectuar ciclos incondicionais.

A estrutura Faz repete as instruções até que a condição seja falsa.

Estruturas de Repetição

(26)

Esta instrução é utilizada em situações na qual o número de repetições é conhecido desde o início.

Esta instrução percorre os valores desde o valor inicial até ao valor final com passo no valor de separação.

Sintaxe:

para [variável] de [valor inicial] ate [valor final] passo [valor de separação]

    [instruções]

proximo

Ou :

para [variável] de [valor inicial] ate [valor final]     [instruções]

(27)

O funcionamento desta instrução é o seguinte:

Quando é encontrada uma estrutura para a variável utilizada como contador é inicializada com o primeiro valor da sequência (valor inicial).

 Em seguida, são executados os comandos dentro da estrutura de repetição e o contador é incrementado/decrementado com o próximo valor da sequência (passo).

 A execução da repetição pára com o último valor da sequência (ate).

 Caso o passo não seja definido, o passo é de mais ou menos uma unidade de forma a poder percorrer o intervalo entre o valor inicial e o final de forma crescente ou decrescente.

(28)

Exemplo 1: Todos os números pares ate 500

inicio

    inteiro i

    para i de 0 ate 500 passo 2

        escrever i , "\t"

    proximo

fim

(29)

Exemplo 2: Escrever o algoritmo que escreve no

monitor os múltiplos de 4 até 100.

inicio

    inteiro i

    para i de 4 ate 100 passo 4

        escrever i , "\t"

    proximo

fim

(30)

Exemplo 3: Escrever os números entre 10 e 30.

inicio

    inteiro i <-0

    para i de 10 ate 30

        escrever "\t" ,i

    proximo

fim

(31)

//Tabuada

inicio

inteiro i

inteiro num

escrever "Digite um número para calcular a tabuada \n"

ler num

escrever "\n Tabuada do ", num, "\n"

para i de 1 até 10

escrever i, "*", num, " = ", i*num, "\n"

proximo

(32)

Fazer um algoritmo que calcule e escreva a

soma dos 30primeiros termos da série:

(33)

1.

Entender o padrão de comportamento da

Série:

Numerador diminue de cinco em cinco denominador aumenta de um em um sinal troca

2.

Tudo que varia crie uma variável

3.

Se são 30 termos é uma repetição contada,

crie um contador e escolha a estrutura de

repetição que preferir.

4.

A Soma é um acumulador soma <- soma +

(34)

Inicio

◦ Variavel inteiro c, numerador <- 480, denominador <- 10 inteiro sinal <- 1

◦ Variavel real soma

◦ Para c de 1 ate 30

Soma <- soma + numerador/denominador * sinalNumerador <- numerador – 5

Denominador <- denominador + 1Sinal <- sinal * -1

◦ Proximo

◦ Escrever “A Soma é “, soma

(35)

Posso elaborar repetições que eu não saiba

antecipadamente o número de vezes, elas

repetem de acordo com uma determinada

condição.

Neste tipo de repetição o teste no início é

mais indicado.

(36)

Enquanto (condição verdadeira) a estrutura ira

executar os comandos contidos nela, e este se

repetirá até que a condição for falsa, somente

assim poderemos sair da estrutura de repetição.

Os comandos contidos neste tipo de estrutura

podem não ser executados nenhuma vez, já que

o mesmo testa a condição no início da

(37)

Faça um algoritmo que leia varios numeros

inteiros e calcule o somatorio dos numeros

negativos. O fim da leitura sera indicado pelo

numero 0.

inicio

variavel inteiro num , soma

Escrever "Digite um numero e digite 0 para finalizar \n" ler num

enquanto num =/= 0 faz se num < 0 entao

soma <- soma + num fimse

Escrever "Digite um numero e digite 0 para finalizar \n" ler num

fimenquanto

Escrever "A Soma dos números negativos digitados é ", soma

(38)

Exemplo 2: Pedir um número ao usuário que pertença ao

intervalo entre 10 e 20. Porém se ele digitar um número inválido vamos ficar solicitando um novo número até ele acertar! Assim podemos certificar que o usuário entre com aquilo que está

sendo pedido, evitando erros! Boa prática de Programação. inicio

    inteiro num     faz

        escrever "introduza um numero entre 10 e 20:"         ler num

    enquanto num < 10 ou num > 20

    escrever "\n O numero introduzido foi :" , num fim

(39)

 Elaborar um algoritmo em Portugol que fique sorteando números

para um bingo (números de 0 a 100), ao apertar qualquer tecla ele sorteia outro número quanto digitado bingo, para o sorteio (Informe isso ao usuário).

inicio

real num1 texto palavra

Escrever "Digite qualquer tecla para sortear um número ou a palavra bingo para parar \n"

ler palavra

enquanto palavra =/= "bingo" faz escrever "Numero Sorteado : \t" num1 <- aleatorio ( ) * 100

escrever arred ( num1 ) , "\n"

Escrever "Digite qualquer tecla para sortear um número ou a palavra bingo para parar"

ler palavra fimenquanto fim

Referências

Documentos relacionados

•   O  material  a  seguir  consiste  de  adaptações  e  extensões  dos  originais  gentilmente  cedidos  pelo 

Câmara dos Santos.. A pesquisa deste casal é divulgada no mundo a partir da publicação do primeiro artigo que tratava da teoria pelo Van Hiele na França, pois até então a teoria

Edital de Licitação CAIXA de Venda de Imóveis – Disputa Aberta 11.1 - O arrematante terá o prazo máximo de 05 (cinco) dias úteis, contado da data da divulgação

Entre os serviços oferecidos ao público pela Biblioteca destacam-se os que fornecem documentos e os que recuperam a informação. O ambiente da biblioteca contempla áreas de

Measurement of anterior loop length for the mandibular canal and diameter of the mandibular incisive canal to avoid nerve damage when installing endosseous implants in

Nesse sentido, a aula e o comportamento da professora Celeste foram caracterizados indiferenciado, na medida em que ela expressou um único objetivo, com as mesmas

coli cresce no meio ambiente; como sua concentração nas margens de rios interfere na sua concentração na coluna d’água; porque a concentração é alta no solo das margens e

The aim of the present study was to evaluate the microscopic structure and chemical composition of titanium dental implants removed from patients in cases of implant failure and