Programas em Portugal Sobre Laços de Repetição
Por: Ronald Santos • 28/9/2021 • Trabalho acadêmico • 7.504 Palavras (31 Páginas) • 98 Visualizações
Algoritmo
Lista de Exercício 05
1) Dado o seguinte algoritmo, reescreva utilizando estrutura de repetição ENQUANTO, de modo que produza a mesma saída (PSEUDO ou PORTUGAL).
algoritmo fatoriais
var
fat : real
i,num : inteiro
inicio
Para num de 1 ate 10 faca
fat ← 1
para i de 1 ate num faca
fat ← fat*i
fim_para
escreva(“fatorial de”, num,”: “,fat)
fim_para
Fim
programa
{
funcao inicio()
{
real fat
inteiro i,num
para (num=1;num<=10;num++){
fat = 1
para (i=1; i<=num;i++){
fat = fat*i
}
escreva ("\nfatorial de numero ", num,"=",fat)
}
}
}
2) A série de Fibonacci é formada pela sequência:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...
Escreva um algoritmo em PORTUGAL que gere a série de FIBONACCI até o (N) Enésimo termo. (passado pelo usuário).
programa
{
funcao inicio()
{
inteiro n,ant1=1,ant2=1,i,prox
escreva("valor de N:\n")
leia (n)
escreva (ant1,",",ant2,",")
i = 3
enquanto (i<= n){
prox = ant1 + ant2
escreva (prox,",")
ant2=ant1
ant1=prox
i++
}
}
}
3) Escreva um algoritmo em PORTUGOL que determine se dois valores inteiros e positivos A e B são primos entre si. (dois números inteiros são ditos primos entre si, caso não exista divisor comum aos dois números).
programa
{
funcao inicio()
{
inteiro a,b,c
logico sit
sit=verdadeiro
escreva ("digite a:\n")
leia (a)
escreva ("digite b:\n")
leia (b)
c=1
enquanto (sit e (c<=a) e (c<=b)){
se ((a % b ==0) e (b%c==0)){
sit = falso
}
c++
}
se (sit){
escreva ("a e b são primos entre si")
}senao{
escreva ("a e b não são primos entre si")
}
}
}
4) Escreva um algoritmo em PORTUGOL que:
• leia 100 fichas, onde cada ficha contém o número de matrícula e a nota de cada aluno de um determinado curso;
• determine e imprima as duas maiores notas, juntamente com o número de matrícula do aluno que obteve cada uma delas;
programa
{
funcao inicio()
{
inteiro c, nmat,mnmat1,mnmat2
real nota,mnota1,mnota2
escreva ("número de matricula;\n")
leia (nmat)
escreva ("nota;\n")
leia (nota)
mnota1 = nota
mnmat1 = nmat
se (nota > mnota1 ){
mnota2 = mnota1
mnmat2 = mnmat1
mnota1 = nota
mnmat1 = nmat
}senao{
mnota2 = nota
mnmat2 = nmat
}
para (c=3;c<=100;c++){
escreva ("número de matricula;\n")
leia (nmat)
escreva ("nota;\n")
leia (nota)
se(nota>mnota1){
mnota2 = mnota1
mnmat2 = mnmat1
mnota1 = nota
...