Buscar

Apostila LPA 3

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Paulista (UNIP)
Disciplina: Lógica de Programação e Algoritmo (LPA)
Prof. MSc. Vladimir Camelo
São Paulo, 2017
Parte III
ESTRUTURAS DE REPETIÇÃO
Uma estrutura de repetição possibilita que uma seqüência de instruções (comandos) seja executada várias vezes, até que uma condição (teste) seja satisfeita, ou seja, repete-se um conjunto de instruções sem que seja necessário escrevê-las várias vezes. As estruturas de repetição também são chamadas de Laços ou Loops.
A principal perguntar muitas vezes é quando se utilizar um estrutura de repetição? Para sisso, basta analisa se uma instrução ou uma seqüência de instruções precisa ser executada várias vezes, caso sim, então deve-se utilizar uma estrutura de repetição.
As estruturas de repetição utilizadas com freqüência são:
Enquanto x, processar 
algoritmo "Números de 1 a 10 (com enquanto...faca)"
var j: inteiro
inicio
j <- 1
enquanto j <= 10 faca
 escreva (j)
 j <- j + 1
fimenquanto
fimalgoritmo
While (<condição>) {
<bloco de execução>
}
Repita até que x, processar 
algoritmo "Números de 1 a 10 (com repita)"
var j: inteiro
inicio
j <- 1
repita
 escreva (j)
 j <- j + 1
ate j > 10
fimalgoritmo
do {
<bloco de execução>
} while (<condição>);
Para ... Até ... Faça
algoritmo "Números de 1 a 10"
var
j: inteiro
inicio
para j de 1 ate 10 faca
 escreva (j)
fimpara
fimalgoritmo
for (int i = 0; i < 10; i++) {
	<bloco de execução>
}
Estrutura de Repetição: REPITA-ATÉ
Na estrutura Repita-Até as instruções a serem repetidas são executadas, no mínimo uma vez, já que o teste (a condição) fica no final da repetição. Nesta estrutura, a repetição é finalizada quando o teste for Verdadeiro (V), ou seja, o algoritmo fica executando as instruções que estiverem dentro do laço até que o teste seja verdadeiro.
Observações sobre a estrutura de repetição REPITA-ATÉ:
A repetição (o laço) se encerra quando a condição (teste) for verdadeira.
As instruções a serem repetidas são executadas pelo menos 1 vez, porque o teste é no final da repetição.
Estrutura de Repetição: ENQUANTO-FAÇA
Na estrutura Enquanto-Faça as instruções a serem repetidas podem não ser executadas nenhuma vez, pois o teste fica no início da repetição, então a execução das instruções (que estão "dentro" da repetição) depende do teste. Nesta estrutura, a repetição é finalizada quando o teste é Falso (F), ou seja, enquanto o teste for Verdadeiro as instruções serão executadas e, quando for Falso, o laço é finalizado.
Observações da estrutura de repetição ENQUANTO-FAÇA:
A repetição (o laço) se encerra quando a condição (teste) for falsa.
As instruções a serem repetidas podem nunca ser executadas, porque o teste é no início da repetição.
Estrutura de Repetição: PARA-ATÉ-FAÇA
A estrutura de repetição Para-Até-Faça é um pouco diferente das outras duas estruturas de repetição apresentadas anteriormente (Repita-Até e Enquanto-Faça), pois possui uma variável de controle, ou seja, com esta estrutura é possível executar um conjunto de instruções um número determinado de vezes. Por meio da variável de controle, define-se a quantidade de repetições que o laço executará.
Contadores: Em algoritmos com estruturas de repetição (Repita, Enquanto ou Para) é comum surgir a necessidade de utilizar variáveis do tipo contador e/ou acumulador. Um contador é utilizado para contar o número de vezes que uma instrução é executada.
Forma Geral:
VARIÁVEL := VARIÁVEL + CONSTANTE
Exemplo:
X := X + 1
Observações gerais sobre o uso de contadores:
um contador é uma variável (qualquer) que recebe ela mesma mais um valor (uma constante). Normalmente está constante que será somada no contador é o valor 1, para contar de 1 em 1, mas pode ser qualquer valor, como por exemplo 2, caso queira contar de 2 em 2.
A variável (do contador) deve possuir um valor inicial conhecido, isto é, ela deve ser inicializada, normalmente com o valor ZERO (0), ou seja, zera-se a variável antes de utilizá-la. Ex.: VARIÁVEL = 0.
A constante (que é geralmente o valor 1) determina o valor do incremento da variável (do contador),
ou seja, o que será somado (acrescido) a esta variável.
Classificação das estruturas de repetição
A classificação das estruturas de repetição é feita de acordo com o conhecimento prévio do número de vezes que o conjunto de comandos será executado. Assim os Laços se dividem em:
Laços Contados, quando se conhece previamente quantas vezes o comando composto no interior da construção será executado;
Laços Condicionais, quando não se conhece de antemão o número de vezes que o conjunto de comandos no interior do laço será repetido, pelo fato do mesmo estar amarrado a uma condição sujeita à modificação pelas instruções do interior do laço.
Exercícios de fixação:
Realize a implementação destes algoritmos.
Exemplo de um algoritmo e seu respectivo fluxograma que possibilita escrever a tabuada de um número especificado pelo usuário:
Algoritmo "tabuada"
var
 i, tab, num : inteiro
inicio
 escreval ("Tabuada: ")
 leia (tab)
 escreval ("Até que número: ")
 leia (num)
 para i := 1 ate num faca
 escreval (i, " x ", tab, " = ", i * tab)
 fimpara
fimalgoritmo
Algoritmo para receber N indivíduos e apresentar:
Total e porcentagem de indivíduos com idade para votar
Total e porcentagem de indivíduos sem idade para votar
Total e porcentagem de indivíduos com idade para tirar habilitação
Total e porcentagem de indivíduos sem idade para tirar habilitação Modifique o algoritmo apresentado abaixo para que se adéqüe aos itens solicitados no exercício 1
algoritmo "Teste"
var
anocorrente: inteiro
anodenascimento: inteiro
idade: inteiro
inicio
	escreval ("Ano corrente")
	leia (anocorrente)
	escreval ("Ano de nascimento")
	leia (anodenascimento)
	idade := (anocorrente-anodenascimento)
	escreval (idade)
	se (idade >= 16) entao
		escreval ("INDIVIDUO TEM IDADE PARA VOTAR\n")
	senao
		escreval ("INDIVIDUO NÃO TEM IDADE PARA VOTAR\n")
	fimse
	se (idade>=18) entao
		escreval ("INDIVIDUO TEM IDADE PARA TIRAR HABILITAÇÃO\n")
	senao
		escreval ("INDIVIDUO NÃO TEM IDADE PARA TIRAR HABILITAÇÃO\n")
		escreval ("INDIVIDUO NÃO TEM IDADE PARA TIRAR HABILITAÇÃO\n")
	fimse
fimalgoritmo
Algoritmo que recebe um valor inteiro positivo qualquer e realiza um laço de repetição enquanto o valor de z < 10. 
Algoritmo "Teste_Enquanto"
var
 x: inteiro
 y: inteiro
 z: inteiro
inicio
 leia (x)
 y := x
 z := 1
 enquanto (z < 10) faca
 y := y * x
 z := z + 1
 fimenquanto
 escreva (y)
fimalgoritmo
Problema do loop infinito.
inicio
Var I: inteiro
I := 0;
enquanto (I < 5) faça
escreva (I);
fim enquanto
fim
inicio
Var I: inteiro
I := 0;
enquanto (I < 5) faça
I := I + 1;
escreva (I);
fim enquanto
fim
Algoritmo para calcular a soma dos salários dos funcionários de uma empresa. O Algoritmo termina quando o usuário digitar salário < 0.
Algoritmo "Teste"
var
soma: inteiro
salario: inteiro
inicio
 soma := 0
 salario := 1
 enquanto (salario>=0) faca
 leia (salario)
 soma := soma+salario
 fimenquanto
 escreva (soma)
fimalgoritmo
Algoritmo que escreve os 100 primeiros números pares.
 
algoritmo "teste"
var
 i, par, contador: inteiro
inicio
 contador := 0
 par := 0
 repita
 escreval (par)
 par := par + 2
 contador := contador + 1
 ate (contador > 50)
fimalgoritmo
Escreva um algoritmo que receba o peso de homens e mulheres (N valores). Para Finalizar digite “S” (SIM). O programa deverá apresentar como resultados:
O total de homens e mulheres que informaram o peso
A porcentagem de homens e mulheres que informaram o peso.
O maior e o menor peso dos homens e das mulheres.
A porcentagem de homens acima de 90 kg
A porcentagemde mulheres entre 75 kg
Altere algoritmo abaixo para que entre com N números inteiros e ao final informe a quantidade de números pares e números ímpares. 
algoritmo "teste"
var
 a: inteiro
inicio
	leia(a)
 escolha(a mod 2)
		caso 0
			escreva("Par")
		outrocaso
			escreva("Impar")
	fimescolha
fimalgoritmo
Com base no algoritmo apresentado abaixo responda as seguintes questões:
algoritmo "teste"
var
 x, n : inteiro
inicio
 leia (n , x)
 y := 1
 enquanto ( x > 0 ) faca
 y := y * N
 x := x - 1
 fimenquanto
 escreva ( y )
fimalgoritmo
Qual o objetivo do algoritmo acima (qual o problema que ele está solucionando)?
O algoritmo está correto? Como ele pode ser testado?
Altere o algoritmo, utilizando a Estrutura Repita ... Até
Altere o algoritmo, utilizando a Estrutura Para ... Faça
Qual das três opções de algoritmo é a melhor na sua opinião? Por que?
Com base no fluxograma apresentado abaixo faça a implementação do algoritmo para calcular o Fatorial de N!. utilize uma estrutura de repetição para construção deste algoritmo
Teste de mesa para o fluxograma apresentado acima:
	N
	Fat
	Acum
	Resultado apresentado
	0
	1
	X
	O fatorial de 0 é 1
	1
	1
	X
	O fatorial de 1 é 1
	3
	1
	2
	
	
	1 * 2
	3
	
	
	1 * 2 * 3
	4
	O fatorial de 3 é 6
Crie um algoritmo de classificação de produtos segundo seu código de barra (utilize a estrutura repita). O algoritmo deve possibilitar digitar N produtos e seus respectivos códigos para classificá-los.
Faça um algoritmo para calcular a série Fibonacci até 0 N-ésimo termo. A série tem a seguinte forma: 1,1,2,3,5,8,13,21,34,....
Faça um algoritmo para ler e escrever o nome, idade e sexo de N alunos. Ao final escreva o total de alunos lidos.
Para cada nota de compra, tem-se o nome do produto comprado, o valor e o imposto. Faça um algoritmo que escreva o valor total bruto, o imposto total cobrado e o valor total líquido das notas. (50 notas)
Utilizar para estes exercícios o Enquanto (enquanto)
Apresentar todos os valores numéricos inteiros ímpares de 0 a 20.
Apresentar o total da soma obtida dos cem primeiros números inteiros.
Apresentar os quadrados dos números inteiros de 15 a 200.
Faça um algoritmo para somar o resto da divisão por 3 de 200 números
Utilizar para estes exercícios o Repita (repita)
Apresentar todos os valores numéricos inteiros pares de 100 a 200.
Apresentar a soma total dos cinco primeiros números inteiros.
Apresentar a tabuada de um número qualquer. Todo o programa deve se repetir enquanto o usuário desejar.
Apresentar todos os números divisíveis por 4 menores que 20.
Apresentar os quadrados dos números inteiros de 2 a 50.
Elaborar um programa que apresente no final, o somatório dos valores pares existentes na faixa de 10 até 20.
Dado uma frase de exatamente 80 caracteres, escreva a frase de trás para frente, um caracter por linha. 
Utilizar para estes exercícios o Para (para)
Apresentar todos os valores numéricos inteiros ímpares situados na faixa de 1000 a 1500.
Apresentar o total da soma obtido de N números inteiros onde N é um número digitado pelo usuário.
Apresentar a tabuada de um número qualquer.
Apresentar os números divisíveis por 3 que sejam menores que 12.
Elaborar um programa que apresente no final, o somatório dos valores pares existentes na faixa de 10 até 20.

Outros materiais