SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
ALGORITMOS COM PSEUDOCÓDIGO
LISTA DE EXERCÍCIOS RESOLVIDA E COMENTADA
OBS: Os algoritmos das soluções abaixo estão com a sintaxe de acordo com o VisuAlg, para que
possam ser executados no mesmo
EXERCÍCIOS SOBRE ESTRUTURAS SEQUENCIAIS:
1 – calcular a área de um retângulo
•
•
•
•

A área de uma figura geométrica retangular é calculada pela fórmula área = largura x
altura
As variáveis de entrada são altura e largura, do tipo real, pois pode haver medida com
parte fracionária
Poderíamos criar uma variável de saída para a área, porém podemos calcular e mostrar o
resultado sem usar essa variável
O esboço da solução em linguagem natural seria:
o Solicitar valor da largura e altura
o Calcular área e mostrar resultado
algoritmo "area retangulo"
var
altura, largura: real
inicio
Escreva("Digite a altura: ")
Leia(altura)
Escreva("Digite a largura: ")
Leia(largura)
Escreval("A área é: ",altura*largura)
fimalgoritmo

2 - Armazenar dois números em variáveis e trocar os valores das variáveis
algoritmo "troca variaveis"
// para fazer a troca de valores de duas variáveis
// é necessário uma variável auxiliar pois se fizermos
// a troca direta, um dos valores será perdido
var
a,b,aux: inteiro
inicio
Escreva("Digite o valor para a variavel A: ")
Leia(a)
Escreva("Digite o valor para a variavel B: ")
Leia(b)
aux <- a
// guarda valor de a em aux para não ser perdido
a <- b
// guarda valor de b em a
b <- aux
// guarda valor de aux em b
Escreva("Valores após a troca: a=",a," b=",b)
fimalgoritmo
3 - Calcular as raízes de uma equação do segundo grau
algoritmo "raizes equacao do 2o grau"
// OBS: Como o VisuAlg não tem a função RAIZ(), iremos solicitar
// o valor da raiz de delta ao usuário. Em uma linguagem que tenha
// a função RAIZ(), basta fazer raizdelta <- raiz(delta)
var
a,b,c,delta,raizdelta,x1,x2: real
inicio
Escreval("Raizes de uma equação do 2o grau")
escreva("Digite o valor de a: ")
Leia(a)
escreva("Digite o valor de b: ")
Leia(b)
escreva("Digite o valor de c: ")
Leia(c)
// calcula delta
delta <- b^2 - 4 * a * c
Escreval("Valor de DELTA: ",delta)
// verifica se delta é negativo (não tem raizes)
se delta<0 entao
escreva("Essa equação não tem raízes reais.")
senao
// OBS: como o VisuAlg não calcula raiz quadrada, iremos pedir
//
o valor ao usuário
Escreva("Qual a raiz de ",delta,"? ")
Leia(raizdelta)
x1<-( -b + raizdelta ) / 2 * a
x2<-( -b - raizdelta ) / 2 * a
Escreval("As raízes são: x1=",x1," x2=",x2)
FimSe
fimalgoritmo

4 - Calcular o custo estimado com combustível em uma viagem de carro
• A lógica para solução deste problema é a seguinte: cada carro tem um consumo típico para
cada tipo de combustível (gasolina ou álcool), medido em quilômetros por litro (Km/l).
Dividindo a distância a ser percorrida na viagem por esse parâmetro (Km/l), podemos
saber quantos litros de combustível serão necessários. Após isso, basta multiplicar essa
quantidade de litros pelo preço unitário do litro de combustível.
• As variáveis de entrada estão destacadas no item anterior e deverão ser todas do tipo real
pois todas podem ter valores fracionários. A variável de saída será o custo, que é opcional
pois podemos calcular e mostrar o resultado sem usar essa variável
• O esboço da solução em linguagem natural seria:
o Solicitar os dados de entrada: quilômetros por litro, distancia a ser percorrida e preço
unitário do litro de combustível
o Calcular o custo e mostrar resultado
algoritmo "custo com combustivel"
var
kmporlitro,distancia,precolitro: real
inicio
Escreva("Quantos quilômetros por litro o seu carro faz? ")
Leia(kmporlitro)
Escreva("Qual a distância da viagem em Km? ")
Leia(distancia)
Escreva("Qual o preço do litro do combustível em R$? ")
Leia(precolitro)
Escreval("O custo estimado da viagem será R$ ",distancia/kmporlitro*precolitro)
fimalgoritmo
EXERCÍCIOS SOBRE ESTRUTURAS CONDICIONAIS:
1 - Faça um algoritmo que leia um número inteiro diferente de zero e diga se este é positivo ou
negativo
2 - Altere o algoritmo anterior para dizer também se o número é igual a zero (use se encadeados)
algoritmo "positivo ou negativo"
var
num: inteiro
inicio
Escreva("Digite um número: ")
Leia(num)
se num>0 entao
escreva("O número é positivo")
fimse
se num<0 entao
escreva("O número é negativo")
senão
escreva("O número é zero")
fimse
fimalgoritmo

3 - Faça uma algoritmo que leia três valores que representam os três lados de um triângulo e
verifique:
• Se o triângulo é válido
• Se é um triângulo equilátero, isósceles ou escaleno. Propriedades de um triângulo:
• A soma de dois lados não pode ser menor que a do terceiro lado (ou o comprimento
de cada lado deve ser menor que a soma dos outros dois lados)
• Equilátero: três lados iguais
• Isósceles: dois lados iguais
• Escaleno: três lados diferentes
(veja soluções nas folhas seguintes)
Solução 1 (com o teste do isósceles, que é mais complexo)
Algoritmo "Triangulo"
Var
lado1, lado2 , lado3 :
Inicio
Escreva("Digite o lado
Leia(lado1)
Escreva("Digite o lado
Leia(lado2)
Escreva("Digite o lado
Leia(lado3)

real
1: ")
2: ")
3: ")

// testa se o triângulo é válido
// (a soma de dois lados não pode ser menor que a do terceiro lado)
se (lado1+lado2<lado3) OU (lado2+lado3<lado1) OU
(lado1+lado3<lado2) entao
Escreva("O triângulo não é válido.")
senao
// verifica o tipo de triângulo
// equilatero
se (lado1=lado2) E (lado2=lado3) entao
Escreval("O triângulo é equilátero")
fimse
// escaleno
Se (lado1<>lado2) E (lado2<>lado3) E (lado1<>lado3) entao
Escreval(“O triangulo é escaleno”)
Senao
// isosceles
se ((lado1=lado2) E (lado1<>lado3)) OU
((lado2=lado3) E (lado2<>lado1)) OU
((lado1=lado3) E (lado1<>lado2)) entao
Escreva("O triângulo é isósceles")
FimSe
FimSe
fimalgoritmo
•

Solução 2: sem o teste do isósceles, usando estruturas se..senao

Algoritmo "Triangulo"
Var
lado1, lado2 , lado3 :
Inicio
Escreva("Digite o lado
Leia(lado1)
Escreva("Digite o lado
Leia(lado2)
Escreva("Digite o lado
Leia(lado3)

real
1: ")
2: ")
3: ")

// testa se o triângulo é válido
// (a soma de dois lados não pode ser menor que a do terceiro lado)
se (lado1+lado2<lado3) OU
(lado2+lado3<lado1) OU
(lado1+lado3<lado2) entao
Escreva("O triângulo não é válido.")
senao
// verifica o tipo de triângulo
// equilatero
se (lado1=lado2) E (lado2=lado3) entao
Escreval("O triângulo é equilátero")
Senao
// escaleno
Se (lado1<>lado2) E (lado2<>lado3) E (lado1<>lado3) entao
Escreval(“O triangulo é escaleno”)
// se não é eqüilátero nem escaleno, então é isósceles
Senão
Escreva("O triângulo é isósceles")
FimSe
FimSe
FimSe
fimalgoritmo

EXERCÍCIOS SOBRE ESRUTURAS DE REPETIÇÃO:
1 - Multiplicar dois números usando somas repetidas
• Neste algoritmo o “segredo” é usar uma variável para acumular o valor da soma (que
no caso será a variável “produto” no algoritmo abaixo) de um dos fatores (no caso o
multiplicando “num2”) repetindo essa soma na quantidade do multiplicador (num1), O
comando que acumula a soma é produto<-produto+num2:
algoritmo "multiplicacao com somas"
var
num1,num2,aux,produto: inteiro
inicio
Escreva("Digite o multiplicador: ")
Leia(num1)
Escreva("Digite o multiplicando: ")
Leia(num2)
produto<-0
para aux de 1 ate num1 faca
produto<-produto+num2
fimpara
escreva("O produto é: ",produto)
fimalgoritmo
2 - Solicitar uma quantidade pré-determinada de números e calcular a soma e média entre esses
números
• Já vimos como fazer a soma de números. Para calcular a média basta dividir a soma
pela quantidade de números digitados. Como não sabemos a quantidade de números
que o usuário quer digitar, então devemos perguntar e usar uma estrutura “para” para
repetir os comandos de solicitar um número e somar esse número essa quantidade de
vezes,. O cálculo da média a apresentação dos resultados deve ficar após a estrutura de
repetiçã
• Variáveis de entrada: quantidade de números (“quantidade”) (tipo inteiro)
• Variável de contagem: c
• Variáveis de processamento e saída: soma (inteiro) e media (real, pois a média pode
ter parte fracionária)
algoritmo "soma e média de números”
var
quantidade,numero,soma,c: inteiro
media: real
inicio
escreva("Quantos números você quer somar? ")
leia(quantidade)
para c de 1 ate quantidade faca
escreva("Digite o ",c,"o número: ")
leia(numero)
soma<-soma+numero
fimpara
media<-soma/quantidade
Escreval("A soma é: ",soma)
Escreval("A média é: ",media)
Fimalgoritmo

3 - Calcular a soma dos números ímpares entre um intervalo informado
• Este algoritmo é parecido com o anterior, sendo que, em vez de termos uma estrutura
para de 1 até uma quantidade, teremos um intervalo
• Variáveis de entrada: valor inicial (“ini”), limite (tipo inteiro)
• Variável de contagem: i
• Variáveis de processamento e saída: soma (inteiro)
Algoritmo "soma numeros Impares"
Var
i,ini,limite,soma: Inteiro
Inicio
Escreva("Digite o número inicial: ")
Leia(ini)
Escreva("Digite o número final: ")
Leia(limite)
soma<-0
Para i de ini ate limite faca
se (i mod 2) <> 0 entao
Escreval(i)
soma<-soma+i
FimSe
FimPara
Escreva("A soma desses números ímpares é: ",soma)
fimalgoritmo
4 - Calcular o fatorial de um número. Dicas:
N ! = N * (n-1) * (n-2)... * 1
Ex: 5! = 5 * 4 * 3 * 1 = 60
• Podemos observar na fórmula do fatorial que precisaremos fazer multiplicações sucessivas,
onde o resultado da última multiplicação será multiplicado novamente por um outro
número (ex: 5*4 = 20; 20 * 3 = 60 ; 60 * 1 = 60). Essa multiplicação pode ser feita de
forma similar à variável acumuladora, só que em vez de somar, multiplicando. Ex: resl <res * num.
• Precisaremos de uma estrutura PARA p/ obter os multiplicadores, que podem estar tanto em
ordem crescente como decrescente
• Um pequeno detalhe do algoritmo é que precisamos iniciar a variável acumuladora dos
produtos com 1 ou com o primeiro número das multiplicações (conforme o algoritmo a ser
usado), senão estaremos multiplicando por zero
• Variáveis de entrada: número a calcular o fatorial (“num”) (tipo inteiro)
• Variável de contagem: c
• Variáveis de processamento e saída: fatorial (inteiro)
• Solução 1:
Algoritmo "fatorial"
var
num,c,fatorial: inteiro
Inicio
escreva("Numero a calcular o fatorial: ")
leia(num)
fatorial<-1
para c de num ate 1 passo -1 faca
fatorial<-fatorial*c
fimpara
escreva("O fatorial é:",fatorial)
fimalgoritmo

• Solução 2 (mais “enfeitada”, mostrando o cálculo passo a passo):
Algoritmo "fatorial"
var
num,c,fatorial: inteiro
Inicio
escreva("Numero a calcular o fatorial: ")
leia(num)
escreval("Cálculo do fatorial:")
fatorial<-num
Escreva(num)
// imprime primeiro fator
para c de num-1 ate 1 passo -1 faca
Escreva(" * ",c)
// imprime cada fator seguinte sucedido por *
fatorial<-fatorial*c
fimpara
escreval(" = ",fatorial)
fimalgoritmo

// imprime sinal “=” e o fatorial

• OBS: As duas soluções acima estão com a estrutura PARA em ordem decrescente, mas nada
imprede que façamos o algoritmo com a estrutura PARA em ordem crescente (a ordem dos
fatores não altera o produto)
EXERCÍCIOS SOBRE VETORES:
1- Faça algoritmo para ler um vetor de 10 valores inteiros e depois identificar e mostrar o menor
valor
• A lógica deste algoritmo é:
o Preencher o vetor
o Percorrer cada posição do vetor, procurando qual é o menor número (ao iniciar,
supomos que o menor é o primeiro do vetor)
2- Altere o algoritmo anterior para procurar um número digitado pelo usuário, informando a sua
posição, se ele constar no vetor
• Aqui acrescentamos os trechos destacados para a pergunta e um teste a mais dentro do
PARA
algoritmo "Vetor 10 numeros"
var
vet: vetor[1..10] de inteiro
c,menor,num,posicao: inteiro
inicio
// preenche o vetor
para c de 1 ate 10 faca
escreva("Digite o ",c,"o numero: ")
leia(vet[c])
fimpara
// testa se um numero existe no vetor
Escreva("Digite o numero a procurar no vetor: ")
Leia(num)
// -- procura o menor e o número digitado
menor<-vet[1]
// no início, o menor será o primeiro do vetor
para c de 1 ate 10 faca
escreva(vet[c])
// se o número na posição do vetor for menor que o menor
se vet[c]<menor entao
menor<-vet[c]
fimse
// testa se o número está no vetor
se num=vet[i] entao
Escreval("O número que você digitou está na posição ",i)
posicao<-i
fimse
fimpara
// mostra resultado
escreval("")
escreval("O menor é:",menor)
se posicao=0 entao
Escreval("O número não consta no vetor")
Fimse
fimalgoritmo
3- Faça um algoritmo que inverta a posição dos valores de um vetor de seis posições de inteiros
• Neste algoritmo a lógica é usar uma variável auxiliar para a troca (veja exercício da troca do
valor de duas variáveis) e achar uma expressão matemática para referenciar o elemento da
posição simétrica, onde será feita a troca
• Para a troca, basta percorrermos a metade do vetor e usarmos a variável auxiliar e a
expressão encontrada no passo anterior
Algoritmo "menor valor no vetor"
var
vet: vetor[1..6] de inteiro
i, aux: Inteiro
Inicio
Para i de 1 ate 6 faca
Escreva("Digite o ",i,"º valor do vetor: ")
Leia(vet[i])
FimPara
Para i de 1 ate 3 faca
aux<-vet[i]
vet[i]<-vet[7-i]
vet[7-i]<-aux
FimPara
Escreval("Vetor invertido:")
para i de 1 ate 6 faca
escreval(vet[i])
fimpara
FimAlgoritmo
EXERCÍCIOS SOBRE MATRIZES:
1- Crie um algoritmo que crie uma matriz 4 x 4 de inteiros, solicite os valores ao usuário e depois
mostre qual o maior e menor valor na matriz
• Este algoritmo é similar as exercícios 1 e 2 de vetores, sendo que para preencher e
percorrer a matriz precisaremos de duas estruturas PARA (uma para as linhas e outra para
as colunas da matriz)
2- Altere o algoritmo anterior para procurar na matriz um valor digitado pelo usuário
• Aqui acrescentamos os trechos destacados para a pergunta e um teste a mais dentro do
PARA
algoritmo "matriz 4x4"
var
num: vetor[1..4,1..4] de inteiro
l,c,menor,maior,numproc,linha,coluna: inteiro
inicio
// preenche a matriz
para l de 1 ate 4 faca
para c de 1 ate 4 faca
escreva("Digite o numero da pos.",l,",",c,": ")
leia(num[l,c])
fimpara
fimpara
// pergunta qual número deseja procurar na matriz
Escreva("Digite o numero a procurar na matriz: ")
Leia(numproc)
// no início supomos que o primeiro é o maior e o menor valor
menor<-num[1,1]
maior<-num[1,1]
// percorre a matriz procurando o maior e menor valor
para l de 1 ate 4 faca
para c de 1 ate 4 faca
escreva(num[l,c])
// mostra item da matriz
// se item da linha e coluna for menor que o menor
se num[l,c]<menor entao
menor<-num[l,c]
fimse
// se item da linha e coluna for maior que o maior
se num[l,c]>maior entao
maior<-num[l,c]
fimse
// testa se o número está na matriz
se numproc=num[l,c] entao
Escreval("O número que você digitou está na posição
",l,",”,c)
linha<-l
coluna<-c
fimse
fimpara
escreval("")
// salta linha
fimpara
escreval("")
escreval("O menor é:",menor)
escreval("O maior é:",maior)
se linha=0 entao
Escreval("O número não consta na matriz")
Fimse
fimalgoritmo
3- Faça um algoritmo para guardar os nomes e resultados de jogos da loteria esportiva
4-Faça um algoritmo para multiplicar duas matrizes
algoritmo "multiplica matrizes 4x4"
var
matriz1: vetor[1..4,1..4] de inteiro
matriz2: vetor[1..4,1..4] de inteiro
produto: vetor[1..4,1..4] de inteiro
l,c: inteiro
inicio
// preenche a matriz 1
Escreval("Digite os valores para a matriz 1:")
para l de 1 ate 4 faca
para c de 1 ate 4 faca
escreva("Digite o numero da pos.",l,",",c,": ")
leia(matriz1[l,c])
fimpara
fimpara
// preenche a matriz 2
Escreval("Digite os valores para a matriz 1:")
para l de 1 ate 4 faca
para c de 1 ate 4 faca
escreva("Digite o numero da pos.",l,",",c,": ")
leia(matriz2[l,c])
fimpara
fimpara
// multiplica
Escreval(“Matriz-produto:”)
para l de 1 ate 4 faca
para c de 1 ate 4 faca
produto[l,c]=matriz1[l,c] * matriz2[c,l]
escreva(produto[l,c])
fimpara
escreval("")
// salta linha
fimpara
fimalgoritmo

5-Faça um algoritmo para calcular o determinante de uma matriz
EXERCÍCIO SOBRE REGISTROS:
1. Crie um algoritmo para guardar o nome e as duas notas dos 40 alunos de uma turma e depois
calcular a média e resultado de cada um deles, sendo que a média para aprovação é 7
EXERCÍCIOS SOBRE SUB-ALGORITMOS:
1. Reescreva um dos exercícios de vetores ou matrizes criando um procedimento para ler os
dados e outro para processar e mostrar os resultados
2. Crie uma função para calcular o fatorial de um número

algoritmo "Fatorial"
var
num,res: inteiro
funcao fat(x: inteiro) : inteiro
var
fatorial,c: inteiro
Inicio
fatorial<-1
para c de x ate 2 passo -1 faca
fatorial<-fatorial*c
fimpara
retorne fatorial
fimfuncao

Inicio
escreva("Numero a calcular o fatorial: ")
leia(num)
res<-fat(num)
escreva("O fatorial é:",res)
fimalgoritmo

3. Crie uma função para determinar se um número é primo

Mais conteúdo relacionado

Mais procurados

Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
Mauro Pereira
 
Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidos
Crishna Irion
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
Pacc UAB
 
Como redigir a introdução e a conclusão de um trabalho escrito
Como redigir a introdução e a conclusão de um trabalho escritoComo redigir a introdução e a conclusão de um trabalho escrito
Como redigir a introdução e a conclusão de um trabalho escrito
Biblioteca Escolar Ourique
 
1ª aula introdução a informática
1ª aula introdução a informática1ª aula introdução a informática
1ª aula introdução a informática
socrahn
 

Mais procurados (20)

Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de Algoritmos
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos Básicos
 
Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidos
 
Raciocínio lógico parte 1
Raciocínio lógico   parte 1Raciocínio lógico   parte 1
Raciocínio lógico parte 1
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Excel Básico
Excel BásicoExcel Básico
Excel Básico
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
 
Como redigir a introdução e a conclusão de um trabalho escrito
Como redigir a introdução e a conclusão de um trabalho escritoComo redigir a introdução e a conclusão de um trabalho escrito
Como redigir a introdução e a conclusão de um trabalho escrito
 
Visualg
VisualgVisualg
Visualg
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
1ª aula introdução a informática
1ª aula introdução a informática1ª aula introdução a informática
1ª aula introdução a informática
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 

Destaque (9)

Aula 2 aed - pseudocódigo
Aula 2   aed - pseudocódigoAula 2   aed - pseudocódigo
Aula 2 aed - pseudocódigo
 
Coletanea de-exercicios-resolvidos-em-liguagem-c
Coletanea de-exercicios-resolvidos-em-liguagem-cColetanea de-exercicios-resolvidos-em-liguagem-c
Coletanea de-exercicios-resolvidos-em-liguagem-c
 
Algoritmos - Pascal
Algoritmos - PascalAlgoritmos - Pascal
Algoritmos - Pascal
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Programar Em Pascal
Programar Em PascalProgramar Em Pascal
Programar Em Pascal
 
Apostila programação "pascalzim"
Apostila programação "pascalzim"Apostila programação "pascalzim"
Apostila programação "pascalzim"
 
Logica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A LogicaLogica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A Logica
 
Logica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 SubalgoritmosLogica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 Subalgoritmos
 
Apostila Visualg
Apostila VisualgApostila Visualg
Apostila Visualg
 

Semelhante a Lista de exercicios algoritmos resolvida-

Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9
Felipe Santos
 
Alg aula 03 - construcao algoritmos2 tp1
Alg   aula 03 - construcao algoritmos2 tp1Alg   aula 03 - construcao algoritmos2 tp1
Alg aula 03 - construcao algoritmos2 tp1
Thalles Anderson
 
Alg aula 08 - modularizacao
Alg   aula 08 - modularizacaoAlg   aula 08 - modularizacao
Alg aula 08 - modularizacao
Thalles Anderson
 
Conceitos e técnicas de programação exercícios i respostas
Conceitos e técnicas de programação  exercícios i respostasConceitos e técnicas de programação  exercícios i respostas
Conceitos e técnicas de programação exercícios i respostas
Robson Ferreira
 
Lista de exercício resposta
Lista de exercício   respostaLista de exercício   resposta
Lista de exercício resposta
Hercules Santhus
 
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
André Constantino da Silva
 

Semelhante a Lista de exercicios algoritmos resolvida- (20)

Lista de exercício
Lista de exercício   Lista de exercício
Lista de exercício
 
Aula 3 - 06/04/11
Aula 3 - 06/04/11Aula 3 - 06/04/11
Aula 3 - 06/04/11
 
Aula 3 algoritmos
Aula 3   algoritmosAula 3   algoritmos
Aula 3 algoritmos
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmos
 
Logica de Programacao
Logica de ProgramacaoLogica de Programacao
Logica de Programacao
 
Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9
 
Alg aula 03 - construcao algoritmos2 tp1
Alg   aula 03 - construcao algoritmos2 tp1Alg   aula 03 - construcao algoritmos2 tp1
Alg aula 03 - construcao algoritmos2 tp1
 
Alg aula 08 - modularizacao
Alg   aula 08 - modularizacaoAlg   aula 08 - modularizacao
Alg aula 08 - modularizacao
 
Algop - aula 04 pascal 1
Algop - aula 04 pascal 1Algop - aula 04 pascal 1
Algop - aula 04 pascal 1
 
Conceitos e técnicas de programação exercícios i respostas
Conceitos e técnicas de programação  exercícios i respostasConceitos e técnicas de programação  exercícios i respostas
Conceitos e técnicas de programação exercícios i respostas
 
Alguns algoritmos resolvidos
Alguns algoritmos resolvidosAlguns algoritmos resolvidos
Alguns algoritmos resolvidos
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
Lista de exercício resposta
Lista de exercício   respostaLista de exercício   resposta
Lista de exercício resposta
 
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
 
Algoritmo - tipos de dados
Algoritmo - tipos de dadosAlgoritmo - tipos de dados
Algoritmo - tipos de dados
 
Aula 3-lógica.pptx
Aula 3-lógica.pptxAula 3-lógica.pptx
Aula 3-lógica.pptx
 
Aula01
Aula01Aula01
Aula01
 
02 fp02
02 fp0202 fp02
02 fp02
 
Aula2
Aula2Aula2
Aula2
 
Algoritmos-SlidesA1_2016_03_01.ppt
Algoritmos-SlidesA1_2016_03_01.pptAlgoritmos-SlidesA1_2016_03_01.ppt
Algoritmos-SlidesA1_2016_03_01.ppt
 

Mais de Mauro Pereira

Mais de Mauro Pereira (20)

Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSS
 
Redes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redesRedes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redes
 
Exercicio introducao a arquitetura de computadores
Exercicio    introducao a arquitetura de computadoresExercicio    introducao a arquitetura de computadores
Exercicio introducao a arquitetura de computadores
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de Computadores
 
Sistemas de Numeracao
Sistemas de NumeracaoSistemas de Numeracao
Sistemas de Numeracao
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicos
 
Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da rede
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamento
 
Redes 5 cabeamento
Redes 5 cabeamentoRedes 5 cabeamento
Redes 5 cabeamento
 
Redes 3 protocolos
Redes 3 protocolosRedes 3 protocolos
Redes 3 protocolos
 
Redes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesRedes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redes
 
Redes 1 introducao historico conceitos
Redes 1 introducao historico conceitosRedes 1 introducao historico conceitos
Redes 1 introducao historico conceitos
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutenção
 
4.1 softwares e configurações importantes
4.1 softwares e configurações importantes4.1 softwares e configurações importantes
4.1 softwares e configurações importantes
 
Redes padroes e cabeamento
Redes padroes e cabeamentoRedes padroes e cabeamento
Redes padroes e cabeamento
 
Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2
 
Exercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolosExercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolos
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmos
 
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
 

Lista de exercicios algoritmos resolvida-

  • 1. ALGORITMOS COM PSEUDOCÓDIGO LISTA DE EXERCÍCIOS RESOLVIDA E COMENTADA OBS: Os algoritmos das soluções abaixo estão com a sintaxe de acordo com o VisuAlg, para que possam ser executados no mesmo EXERCÍCIOS SOBRE ESTRUTURAS SEQUENCIAIS: 1 – calcular a área de um retângulo • • • • A área de uma figura geométrica retangular é calculada pela fórmula área = largura x altura As variáveis de entrada são altura e largura, do tipo real, pois pode haver medida com parte fracionária Poderíamos criar uma variável de saída para a área, porém podemos calcular e mostrar o resultado sem usar essa variável O esboço da solução em linguagem natural seria: o Solicitar valor da largura e altura o Calcular área e mostrar resultado algoritmo "area retangulo" var altura, largura: real inicio Escreva("Digite a altura: ") Leia(altura) Escreva("Digite a largura: ") Leia(largura) Escreval("A área é: ",altura*largura) fimalgoritmo 2 - Armazenar dois números em variáveis e trocar os valores das variáveis algoritmo "troca variaveis" // para fazer a troca de valores de duas variáveis // é necessário uma variável auxiliar pois se fizermos // a troca direta, um dos valores será perdido var a,b,aux: inteiro inicio Escreva("Digite o valor para a variavel A: ") Leia(a) Escreva("Digite o valor para a variavel B: ") Leia(b) aux <- a // guarda valor de a em aux para não ser perdido a <- b // guarda valor de b em a b <- aux // guarda valor de aux em b Escreva("Valores após a troca: a=",a," b=",b) fimalgoritmo
  • 2. 3 - Calcular as raízes de uma equação do segundo grau algoritmo "raizes equacao do 2o grau" // OBS: Como o VisuAlg não tem a função RAIZ(), iremos solicitar // o valor da raiz de delta ao usuário. Em uma linguagem que tenha // a função RAIZ(), basta fazer raizdelta <- raiz(delta) var a,b,c,delta,raizdelta,x1,x2: real inicio Escreval("Raizes de uma equação do 2o grau") escreva("Digite o valor de a: ") Leia(a) escreva("Digite o valor de b: ") Leia(b) escreva("Digite o valor de c: ") Leia(c) // calcula delta delta <- b^2 - 4 * a * c Escreval("Valor de DELTA: ",delta) // verifica se delta é negativo (não tem raizes) se delta<0 entao escreva("Essa equação não tem raízes reais.") senao // OBS: como o VisuAlg não calcula raiz quadrada, iremos pedir // o valor ao usuário Escreva("Qual a raiz de ",delta,"? ") Leia(raizdelta) x1<-( -b + raizdelta ) / 2 * a x2<-( -b - raizdelta ) / 2 * a Escreval("As raízes são: x1=",x1," x2=",x2) FimSe fimalgoritmo 4 - Calcular o custo estimado com combustível em uma viagem de carro • A lógica para solução deste problema é a seguinte: cada carro tem um consumo típico para cada tipo de combustível (gasolina ou álcool), medido em quilômetros por litro (Km/l). Dividindo a distância a ser percorrida na viagem por esse parâmetro (Km/l), podemos saber quantos litros de combustível serão necessários. Após isso, basta multiplicar essa quantidade de litros pelo preço unitário do litro de combustível. • As variáveis de entrada estão destacadas no item anterior e deverão ser todas do tipo real pois todas podem ter valores fracionários. A variável de saída será o custo, que é opcional pois podemos calcular e mostrar o resultado sem usar essa variável • O esboço da solução em linguagem natural seria: o Solicitar os dados de entrada: quilômetros por litro, distancia a ser percorrida e preço unitário do litro de combustível o Calcular o custo e mostrar resultado algoritmo "custo com combustivel" var kmporlitro,distancia,precolitro: real inicio Escreva("Quantos quilômetros por litro o seu carro faz? ") Leia(kmporlitro) Escreva("Qual a distância da viagem em Km? ") Leia(distancia) Escreva("Qual o preço do litro do combustível em R$? ") Leia(precolitro) Escreval("O custo estimado da viagem será R$ ",distancia/kmporlitro*precolitro) fimalgoritmo
  • 3. EXERCÍCIOS SOBRE ESTRUTURAS CONDICIONAIS: 1 - Faça um algoritmo que leia um número inteiro diferente de zero e diga se este é positivo ou negativo 2 - Altere o algoritmo anterior para dizer também se o número é igual a zero (use se encadeados) algoritmo "positivo ou negativo" var num: inteiro inicio Escreva("Digite um número: ") Leia(num) se num>0 entao escreva("O número é positivo") fimse se num<0 entao escreva("O número é negativo") senão escreva("O número é zero") fimse fimalgoritmo 3 - Faça uma algoritmo que leia três valores que representam os três lados de um triângulo e verifique: • Se o triângulo é válido • Se é um triângulo equilátero, isósceles ou escaleno. Propriedades de um triângulo: • A soma de dois lados não pode ser menor que a do terceiro lado (ou o comprimento de cada lado deve ser menor que a soma dos outros dois lados) • Equilátero: três lados iguais • Isósceles: dois lados iguais • Escaleno: três lados diferentes (veja soluções nas folhas seguintes)
  • 4. Solução 1 (com o teste do isósceles, que é mais complexo) Algoritmo "Triangulo" Var lado1, lado2 , lado3 : Inicio Escreva("Digite o lado Leia(lado1) Escreva("Digite o lado Leia(lado2) Escreva("Digite o lado Leia(lado3) real 1: ") 2: ") 3: ") // testa se o triângulo é válido // (a soma de dois lados não pode ser menor que a do terceiro lado) se (lado1+lado2<lado3) OU (lado2+lado3<lado1) OU (lado1+lado3<lado2) entao Escreva("O triângulo não é válido.") senao // verifica o tipo de triângulo // equilatero se (lado1=lado2) E (lado2=lado3) entao Escreval("O triângulo é equilátero") fimse // escaleno Se (lado1<>lado2) E (lado2<>lado3) E (lado1<>lado3) entao Escreval(“O triangulo é escaleno”) Senao // isosceles se ((lado1=lado2) E (lado1<>lado3)) OU ((lado2=lado3) E (lado2<>lado1)) OU ((lado1=lado3) E (lado1<>lado2)) entao Escreva("O triângulo é isósceles") FimSe FimSe fimalgoritmo
  • 5. • Solução 2: sem o teste do isósceles, usando estruturas se..senao Algoritmo "Triangulo" Var lado1, lado2 , lado3 : Inicio Escreva("Digite o lado Leia(lado1) Escreva("Digite o lado Leia(lado2) Escreva("Digite o lado Leia(lado3) real 1: ") 2: ") 3: ") // testa se o triângulo é válido // (a soma de dois lados não pode ser menor que a do terceiro lado) se (lado1+lado2<lado3) OU (lado2+lado3<lado1) OU (lado1+lado3<lado2) entao Escreva("O triângulo não é válido.") senao // verifica o tipo de triângulo // equilatero se (lado1=lado2) E (lado2=lado3) entao Escreval("O triângulo é equilátero") Senao // escaleno Se (lado1<>lado2) E (lado2<>lado3) E (lado1<>lado3) entao Escreval(“O triangulo é escaleno”) // se não é eqüilátero nem escaleno, então é isósceles Senão Escreva("O triângulo é isósceles") FimSe FimSe FimSe fimalgoritmo EXERCÍCIOS SOBRE ESRUTURAS DE REPETIÇÃO: 1 - Multiplicar dois números usando somas repetidas • Neste algoritmo o “segredo” é usar uma variável para acumular o valor da soma (que no caso será a variável “produto” no algoritmo abaixo) de um dos fatores (no caso o multiplicando “num2”) repetindo essa soma na quantidade do multiplicador (num1), O comando que acumula a soma é produto<-produto+num2: algoritmo "multiplicacao com somas" var num1,num2,aux,produto: inteiro inicio Escreva("Digite o multiplicador: ") Leia(num1) Escreva("Digite o multiplicando: ") Leia(num2) produto<-0 para aux de 1 ate num1 faca produto<-produto+num2 fimpara escreva("O produto é: ",produto) fimalgoritmo
  • 6. 2 - Solicitar uma quantidade pré-determinada de números e calcular a soma e média entre esses números • Já vimos como fazer a soma de números. Para calcular a média basta dividir a soma pela quantidade de números digitados. Como não sabemos a quantidade de números que o usuário quer digitar, então devemos perguntar e usar uma estrutura “para” para repetir os comandos de solicitar um número e somar esse número essa quantidade de vezes,. O cálculo da média a apresentação dos resultados deve ficar após a estrutura de repetiçã • Variáveis de entrada: quantidade de números (“quantidade”) (tipo inteiro) • Variável de contagem: c • Variáveis de processamento e saída: soma (inteiro) e media (real, pois a média pode ter parte fracionária) algoritmo "soma e média de números” var quantidade,numero,soma,c: inteiro media: real inicio escreva("Quantos números você quer somar? ") leia(quantidade) para c de 1 ate quantidade faca escreva("Digite o ",c,"o número: ") leia(numero) soma<-soma+numero fimpara media<-soma/quantidade Escreval("A soma é: ",soma) Escreval("A média é: ",media) Fimalgoritmo 3 - Calcular a soma dos números ímpares entre um intervalo informado • Este algoritmo é parecido com o anterior, sendo que, em vez de termos uma estrutura para de 1 até uma quantidade, teremos um intervalo • Variáveis de entrada: valor inicial (“ini”), limite (tipo inteiro) • Variável de contagem: i • Variáveis de processamento e saída: soma (inteiro) Algoritmo "soma numeros Impares" Var i,ini,limite,soma: Inteiro Inicio Escreva("Digite o número inicial: ") Leia(ini) Escreva("Digite o número final: ") Leia(limite) soma<-0 Para i de ini ate limite faca se (i mod 2) <> 0 entao Escreval(i) soma<-soma+i FimSe FimPara Escreva("A soma desses números ímpares é: ",soma) fimalgoritmo
  • 7. 4 - Calcular o fatorial de um número. Dicas: N ! = N * (n-1) * (n-2)... * 1 Ex: 5! = 5 * 4 * 3 * 1 = 60 • Podemos observar na fórmula do fatorial que precisaremos fazer multiplicações sucessivas, onde o resultado da última multiplicação será multiplicado novamente por um outro número (ex: 5*4 = 20; 20 * 3 = 60 ; 60 * 1 = 60). Essa multiplicação pode ser feita de forma similar à variável acumuladora, só que em vez de somar, multiplicando. Ex: resl <res * num. • Precisaremos de uma estrutura PARA p/ obter os multiplicadores, que podem estar tanto em ordem crescente como decrescente • Um pequeno detalhe do algoritmo é que precisamos iniciar a variável acumuladora dos produtos com 1 ou com o primeiro número das multiplicações (conforme o algoritmo a ser usado), senão estaremos multiplicando por zero • Variáveis de entrada: número a calcular o fatorial (“num”) (tipo inteiro) • Variável de contagem: c • Variáveis de processamento e saída: fatorial (inteiro) • Solução 1: Algoritmo "fatorial" var num,c,fatorial: inteiro Inicio escreva("Numero a calcular o fatorial: ") leia(num) fatorial<-1 para c de num ate 1 passo -1 faca fatorial<-fatorial*c fimpara escreva("O fatorial é:",fatorial) fimalgoritmo • Solução 2 (mais “enfeitada”, mostrando o cálculo passo a passo): Algoritmo "fatorial" var num,c,fatorial: inteiro Inicio escreva("Numero a calcular o fatorial: ") leia(num) escreval("Cálculo do fatorial:") fatorial<-num Escreva(num) // imprime primeiro fator para c de num-1 ate 1 passo -1 faca Escreva(" * ",c) // imprime cada fator seguinte sucedido por * fatorial<-fatorial*c fimpara escreval(" = ",fatorial) fimalgoritmo // imprime sinal “=” e o fatorial • OBS: As duas soluções acima estão com a estrutura PARA em ordem decrescente, mas nada imprede que façamos o algoritmo com a estrutura PARA em ordem crescente (a ordem dos fatores não altera o produto)
  • 8. EXERCÍCIOS SOBRE VETORES: 1- Faça algoritmo para ler um vetor de 10 valores inteiros e depois identificar e mostrar o menor valor • A lógica deste algoritmo é: o Preencher o vetor o Percorrer cada posição do vetor, procurando qual é o menor número (ao iniciar, supomos que o menor é o primeiro do vetor) 2- Altere o algoritmo anterior para procurar um número digitado pelo usuário, informando a sua posição, se ele constar no vetor • Aqui acrescentamos os trechos destacados para a pergunta e um teste a mais dentro do PARA algoritmo "Vetor 10 numeros" var vet: vetor[1..10] de inteiro c,menor,num,posicao: inteiro inicio // preenche o vetor para c de 1 ate 10 faca escreva("Digite o ",c,"o numero: ") leia(vet[c]) fimpara // testa se um numero existe no vetor Escreva("Digite o numero a procurar no vetor: ") Leia(num) // -- procura o menor e o número digitado menor<-vet[1] // no início, o menor será o primeiro do vetor para c de 1 ate 10 faca escreva(vet[c]) // se o número na posição do vetor for menor que o menor se vet[c]<menor entao menor<-vet[c] fimse // testa se o número está no vetor se num=vet[i] entao Escreval("O número que você digitou está na posição ",i) posicao<-i fimse fimpara // mostra resultado escreval("") escreval("O menor é:",menor) se posicao=0 entao Escreval("O número não consta no vetor") Fimse fimalgoritmo
  • 9. 3- Faça um algoritmo que inverta a posição dos valores de um vetor de seis posições de inteiros • Neste algoritmo a lógica é usar uma variável auxiliar para a troca (veja exercício da troca do valor de duas variáveis) e achar uma expressão matemática para referenciar o elemento da posição simétrica, onde será feita a troca • Para a troca, basta percorrermos a metade do vetor e usarmos a variável auxiliar e a expressão encontrada no passo anterior Algoritmo "menor valor no vetor" var vet: vetor[1..6] de inteiro i, aux: Inteiro Inicio Para i de 1 ate 6 faca Escreva("Digite o ",i,"º valor do vetor: ") Leia(vet[i]) FimPara Para i de 1 ate 3 faca aux<-vet[i] vet[i]<-vet[7-i] vet[7-i]<-aux FimPara Escreval("Vetor invertido:") para i de 1 ate 6 faca escreval(vet[i]) fimpara FimAlgoritmo
  • 10. EXERCÍCIOS SOBRE MATRIZES: 1- Crie um algoritmo que crie uma matriz 4 x 4 de inteiros, solicite os valores ao usuário e depois mostre qual o maior e menor valor na matriz • Este algoritmo é similar as exercícios 1 e 2 de vetores, sendo que para preencher e percorrer a matriz precisaremos de duas estruturas PARA (uma para as linhas e outra para as colunas da matriz) 2- Altere o algoritmo anterior para procurar na matriz um valor digitado pelo usuário • Aqui acrescentamos os trechos destacados para a pergunta e um teste a mais dentro do PARA algoritmo "matriz 4x4" var num: vetor[1..4,1..4] de inteiro l,c,menor,maior,numproc,linha,coluna: inteiro inicio // preenche a matriz para l de 1 ate 4 faca para c de 1 ate 4 faca escreva("Digite o numero da pos.",l,",",c,": ") leia(num[l,c]) fimpara fimpara // pergunta qual número deseja procurar na matriz Escreva("Digite o numero a procurar na matriz: ") Leia(numproc) // no início supomos que o primeiro é o maior e o menor valor menor<-num[1,1] maior<-num[1,1] // percorre a matriz procurando o maior e menor valor para l de 1 ate 4 faca para c de 1 ate 4 faca escreva(num[l,c]) // mostra item da matriz // se item da linha e coluna for menor que o menor se num[l,c]<menor entao menor<-num[l,c] fimse // se item da linha e coluna for maior que o maior se num[l,c]>maior entao maior<-num[l,c] fimse // testa se o número está na matriz se numproc=num[l,c] entao Escreval("O número que você digitou está na posição ",l,",”,c) linha<-l coluna<-c fimse fimpara escreval("") // salta linha fimpara escreval("") escreval("O menor é:",menor) escreval("O maior é:",maior) se linha=0 entao Escreval("O número não consta na matriz") Fimse fimalgoritmo
  • 11. 3- Faça um algoritmo para guardar os nomes e resultados de jogos da loteria esportiva 4-Faça um algoritmo para multiplicar duas matrizes algoritmo "multiplica matrizes 4x4" var matriz1: vetor[1..4,1..4] de inteiro matriz2: vetor[1..4,1..4] de inteiro produto: vetor[1..4,1..4] de inteiro l,c: inteiro inicio // preenche a matriz 1 Escreval("Digite os valores para a matriz 1:") para l de 1 ate 4 faca para c de 1 ate 4 faca escreva("Digite o numero da pos.",l,",",c,": ") leia(matriz1[l,c]) fimpara fimpara // preenche a matriz 2 Escreval("Digite os valores para a matriz 1:") para l de 1 ate 4 faca para c de 1 ate 4 faca escreva("Digite o numero da pos.",l,",",c,": ") leia(matriz2[l,c]) fimpara fimpara // multiplica Escreval(“Matriz-produto:”) para l de 1 ate 4 faca para c de 1 ate 4 faca produto[l,c]=matriz1[l,c] * matriz2[c,l] escreva(produto[l,c]) fimpara escreval("") // salta linha fimpara fimalgoritmo 5-Faça um algoritmo para calcular o determinante de uma matriz EXERCÍCIO SOBRE REGISTROS: 1. Crie um algoritmo para guardar o nome e as duas notas dos 40 alunos de uma turma e depois calcular a média e resultado de cada um deles, sendo que a média para aprovação é 7 EXERCÍCIOS SOBRE SUB-ALGORITMOS: 1. Reescreva um dos exercícios de vetores ou matrizes criando um procedimento para ler os dados e outro para processar e mostrar os resultados
  • 12. 2. Crie uma função para calcular o fatorial de um número algoritmo "Fatorial" var num,res: inteiro funcao fat(x: inteiro) : inteiro var fatorial,c: inteiro Inicio fatorial<-1 para c de x ate 2 passo -1 faca fatorial<-fatorial*c fimpara retorne fatorial fimfuncao Inicio escreva("Numero a calcular o fatorial: ") leia(num) res<-fat(num) escreva("O fatorial é:",res) fimalgoritmo 3. Crie uma função para determinar se um número é primo