1. O documento apresenta a solução de seis exercícios de algoritmos utilizando estruturas de repetição como laços FOR e WHILE.
2. Os exercícios envolvem cálculos matemáticos como área de retângulo, fatorial, potenciação e progressão aritmética.
3. Análises dos algoritmos demonstram como decompor problemas em partes e usar variáveis auxiliares para resolver cada parte.
1. http://olinux.uol.com.br/artigos/441/print_preview.html
Curso de Algoritmo - Aula IX
Por: Jorge Luiz E. Sousa ( 29/01/2002 )
Introdução
Como prometido aqui estão as soluções dos exercícios apresentados na aula anterior .
Solução dos exercícios. Confira!
Exercício 1
Fazer um algoritmo que dadas as dimensões de um retângulo, calcule a sua área e escreva na tela.
Algoritmo
Declare
//Inicio do algoritmo
//Obtendo os dados do usuário
Escreva('Digite o valor da base do retângulo: ')
Leia(Base)
Escreva('Digite o valor da altura do retângulo: ')
Leia(Altura)
//Calculando a área
Area <- Base * altura
Escreva('A área é: ',Area)
FimAlgoritmo
Análise do algorítmo acima:
Primeira análise:
Este algoritmo é muito simples, sendo necessário apenas uma fórmula para sua solução. não há o que
comentar... qualquer dúvida contacte-me.
Exercício 2
Fazer um algoritmo que para cada número digitado pelo usuário, calcule seu fatorial e escreva na tela.
Algoritmo
Declare
//Inicio do algoritmo
//Obtendo dados do usuário para entrar no laço ou
não
Escreva ('Digite um número, ou 0 para sair(o fatorial de 0
é 1.)')')
Leia
(Numero)
//Inicializando variáveis
i<- Numero
Fatorial<- 1
Enquanto Numero <> 0 faça
Para i<- 1 até Numero Faça
Se i<>0
então Fatorial<- Fatorial * i
i<- i-1
FimPara
Escreva('O fatorial de ',Numero,' é ',Fatorial)
//Obtendo dados do usuário para continuar ou sair do
laço
2. Escreva('Digite um número, ou 0 para sair(o fatorial
de 0 é 1.)')')
Leia(Numero)
FimEnquanto
FimAlgoritmo
Análise do algorítmo acima:
Primeira análise.
Para se calcular o fatorial de um número, é necessário multiplicá-lo pelos seus predessessores até se
chegar ao 1. Por tanto, o fatorial de 5 é 5*4*3*2*1.
Com base nisto, chega-se a conclusão de que uma estrutura PARA resolve o problema, visto que temos
o valor inicial e o ponto de parada.
Segunda análise.
Como em algoritmo a estrutura PARA somente "anda para frente", devemos utilizar uma variável
auxiliar para decrementar o número, assim poderemos chegar ao valor desejado, testando se o
decremento chegou a zero por precaução.
Exercício 3
Fazer um algoritimo para calcular a potência N de um numero X. Ambos serão digitados pelo usuário. E
escreva na tela.
Algoritmo
Declare
//Inicio do algoritmo
//Obtendo os dados do usuário
Escreva('Digite a base:')
Leia(Base)
Escreva('Digite o expoente:')
Leia(Expoente)
//Inicializando variável resultado
Resultado<- Base
//Calculando
Se Expoente = 0
então
Resultado<-1
senão
Se base = 0
então Resultado <- 0
senão PARA i<- 1 até (Expoente -1)
FAÇA
Resultado<- Resultado * Expoente
FimPARA
FimSe
FimSe
Escreva('O resultado é: ',Resultado)
FimAlgoritmo
Análise do algorítmo acima:
Primeira análise
O calculo da exponenciação se dá como XN de modo que para se obter o resultado final deve-se
multiplicar X por ele mesmo N vezes. Então, conhecemos o valor inicial (1) e o valor final será dado
pelo usuário.
A estrutura PARA é o mais indicado.
Segunda análise
3. Montar a expressão é facil, mas em algoritmo é necessário mostrar todos os passos para a máquina
(computador), pois você o está ensinando a fazer algo. então, devemos prever todas as situações
possíveis. Por isto, testamos a entrada do expoente 0, e base 0.
Exercício 4
Dada a expressão:
2*10*2*20*2*30*2*40
1+2+3+4+5+6+7+8
fazer um algoritmo para mostrar seu resultado.
Algoritmo
Declare
//Inicio do algoritmo
j<-10
Somar
<- 0
PARA i <- 1 até 8 Faça
Calcular<- Calcular + (2*j)
Somar<- Somar + i
j<- j + 10
FimPARA
Resultado<- Calcular / Somar
Escreva('O resultado é: ', Resultado)
FimAlgoritmo
Análise do algorítmo acima:
Primeira análise
A expressão é fixa tendo somente oito elementos no numerador, oito no denominador. A estrutura para
é a mais indicada para resolver.
Segunda análise
São necessárias variáveis auxiliares para o calculo, estas são Calcular, j e Somar que fazem
respectivamente:
1. Calcular o valor final do numerador, utilizando-se do incremento do j;
2. Calcular o valor do denominador.
Exercício 5
Note que somente os calculos são feitos dentro do laço. o calculo do resultado final foi feito após o
calculo das partes. Fora do laço. Bem como a escrita.
Exercício 5
Fazer um algoritmo que dados dois números, calcule a razão existente entre eles e monte uma PA de
10 termos e escreva na tela.
O calculo da razão é o segundo termo menos o primeiro.
Algoritmo
Declare
//Inicio do algoritmo
//Obtendo os dados do usuário
4. Escreva('Digite o primeiro número')
Leia(PTermo)
Escreva('Digite o segundo número')
Leia(STermo)
//Calculando a razão
Razao<- STermo - PTermo
Escreva('Os dez primeiros termos desta PA são:')
Escreva(PTermo)
Escreva(STermo)
TAux<-STermo
Para i<-3 até 8 Faça
ProxTermo<- TAux + Razao
Escreva(ProxTermo)
TAux<- ProxTermo
FimPara
FimAlgoritmo
Análise do algorítmo acima:
Primeira análise
Uma PA é uma sequência de números com uma razão entre eles. Para se calcular os termos da PA é
necessário conhecer pelo menos um e a razão. No nosso caso, temos os dois primeiros, isto significa
que temos a razão também. Depois é só somar.
Segunda análise
Não existe somente esta forma para resolver o problema. observe isto. Use este algoritmo como base
somente, não como a única solução.
Exercício 6
Tendo-se a seguinte expressão matemática:
Soma = X+Y
Mult= X*Y
SubTotal = Mult / Soma
Expressao = [ (X*15)+(Y*25)+(X*35)+(Y*45)+(X*55) ] / 15
Total= SubTotal + Expressao
Fazer um algoritmo que:
1. Leia os valores X e Y
2. Calcule a soma e a multiplicacao destes valores e armazene em SubTotal
3. Calcule expressao e armazene a última operação de soma na variável Total
Ao final do programa, listar na tela os valores, da seguinte maneira:
Exercício 6
Valores digitados pelo usuário "VALOR DE X"; "VALOR DE Y"
Subtotal : "VALOR DO SUBTOTAL";
Expressão: "VALOR DA EXPRESSÃO";
Total:"Valor total";
Algoritmo
Declare
//Inicio do algoritmo
//Obtendo os números do usuário
Escreva('Digite o primeiro número')
leia(X)
Escreva('Digite o Segundo número')
Leia(Y)
5. Soma <- X + Y
Mult <- X * Y
SubTotal <- Mult / Soma
Expressao <- 0
i<-15
j<- 1
Enquanto i <= 55 faça
Par<- J mod 2
Se (par = 0)
Então Expressao <- Expressao + (X*i)
Senão Expressao <- Expressao + (Y*i)
FimSe
i<- i + 10
Fim Enquanto
Expressao<-Expressao/15
Total <- SubTotal + Expressao
Escreva('Exercicio1')
Escreva('') //isto escreve uma linha vazia
Escreva('') //isto escreve uma linha vazia
Escreva('Os valores digitados pelo usuário
são:X=',X,' Y= ',Y)
Escreva('SubTotal= ',SubTotal)
Escreva('Expressão= ',Expressao)
Escreva('O valor total dos calculos é:', Total)
FimAlgoritmo
Análise do algorítmo acima:
Primeira análise
O problema apresentado neste exercício e no anterior, devem ser resolvidos em partes, assim, na
sequência temos a solução da primeira expressão, da segunda, do subtotal e o calculo da expressão.
Segunda análise
Sobre o calculo da expressão:
Expressao <- 0
i<-15
j<- 1
Enquanto i <= 55 faça
Par<- J mod 2
Se (par = 0)
Então Expressao <- Expressao + (X*i)
Senão Expressao <- Expressao + (Y*i)
FimSe
i<- i + 10
Fim Enquanto
Expressao<-Expressao / 15
Vejamos:
1. a inicialização da variável "Expressao" com zero é para que ele esteja "limpa" quando receber o
primeiro valor.
2. a variável "i" recebendo 15 servirá para o incremento dos valores 15,25,35...
3. a variável "Par" receberá o valor do resto da divisão de j por 2, e definirá se o número é par ou
impar. Portanto, quando for inpar multiplicaremos "i" por "X" e quando for par, multiplicaremos
por "Y".
4. quando sairmos do laço, a expressão estará pronta para ser dividida por 15.
Conclusão
Com estes exercícios, terminamos este módulo. No próximo, veremos mais estruturas, ainda não
apresentadas, como vetores e matrizes.
Até mais!
6. Se você conseguiu fazer todos os exercícios, Parabéns!
Se não, não fique triste, você pode revisar as aulas e tentar de novo.
Copyright (C) 1999- 2 0 0 0 Linux Solutions