Apostila prática
Uma lista prática com 30 exercícios resolvidos para quem está aprendendo lógica de programação, Portugol e VisuAlg do zero.
Todos os exemplos têm enunciado, explicação simples, código completo em VisuAlg e botão para testar no editor online.
Como usar esta lista de exercícios
- Leia o enunciado.
- Tente pensar na solução antes de olhar o código.
- Leia a explicação.
- Copie ou abra o código no VisuAlg Web.
- Rode o algoritmo.
- Mude os valores e veja o que acontece.
Índice dos exercícios
Básico: entrada, saída e variáveis
Condicionais
Repetição
- Exercício 13: Contar de 1 até 10
- Exercício 14: Fazer tabuada com PARA
- Exercício 15: Somar números de 1 até N
- Exercício 16: Calcular fatorial
- Exercício 17: Fazer contagem regressiva com ENQUANTO
- Exercício 18: Criar um menu com REPITA
- Exercício 19: Validar senha com tentativas
- Exercício 20: Mostrar números pares de 1 até 100
Acumuladores e contadores
Vetores
Matrizes
Exercícios resolvidos
Exercício 1
Escrever uma mensagem na tela
Enunciado: Crie um algoritmo em Portugol que mostre a mensagem `Olá, mundo!` na tela.
O que ensina: Este é o primeiro contato com a estrutura básica de um algoritmo no VisuAlg. Você aprende a usar `algoritmo`, `inicio`, `escreval` e `fimalgoritmo`.
algoritmo "OlaMundo"
inicio
escreval("Olá, mundo!")
fimalgoritmoExplicação: A linha `escreval` serve para escrever uma mensagem na tela e pular para a próxima linha. Tudo que está entre aspas é tratado como texto.
Desafio extra: Troque a mensagem por uma frase com seu nome.
Exercício 2
Ler o nome do usuário
Enunciado: Crie um algoritmo que pergunte o nome do usuário e depois mostre uma mensagem de boas-vindas.
O que ensina: Você aprende a criar uma variável do tipo `caractere`, ler uma informação digitada pelo usuário e usar essa informação em uma mensagem.
algoritmo "LerNome"
var
nome: caractere
inicio
escreva("Digite seu nome: ")
leia(nome)
escreval("Olá, ", nome, "! Seja bem-vindo ao VisuAlg Web.")
fimalgoritmoExplicação: A variável `nome` guarda o texto digitado pelo usuário. O comando `leia(nome)` espera a pessoa digitar algo e pressionar Enter.
Desafio extra: Peça também a cidade do usuário e mostre uma frase usando nome e cidade.
Exercício 3
Somar dois números
Enunciado: Crie um algoritmo que leia dois números inteiros e mostre a soma entre eles.
O que ensina: Você pratica entrada de dados, variáveis numéricas e operação de soma.
algoritmo "SomarDoisNumeros"
var
n1, n2, soma: inteiro
inicio
escreva("Digite o primeiro número: ")
leia(n1)
escreva("Digite o segundo número: ")
leia(n2)
soma <- n1 + n2
escreval("A soma é: ", soma)
fimalgoritmoExplicação: A variável `soma` recebe o resultado de `n1 + n2`. Em Portugol/VisuAlg, o símbolo `<-` significa “recebe”.
Desafio extra: Mostre também a subtração, multiplicação e divisão dos dois números.
Exercício 4
Calcular a média de duas notas
Enunciado: Crie um algoritmo que leia duas notas de um aluno e mostre a média final.
O que ensina: Você pratica variáveis do tipo `real`, soma, divisão e prioridade de operações.
algoritmo "MediaDuasNotas"
var
nota1, nota2, media: real
inicio
escreva("Digite a primeira nota: ")
leia(nota1)
escreva("Digite a segunda nota: ")
leia(nota2)
media <- (nota1 + nota2) / 2
escreval("A média final é: ", media)
fimalgoritmoExplicação: Os parênteses garantem que as notas sejam somadas antes da divisão por 2. Sem os parênteses, o resultado poderia ficar errado.
Desafio extra: Altere o algoritmo para calcular a média de quatro notas.
Exercício 5
Converter Celsius para Fahrenheit
Enunciado: Crie um algoritmo que leia uma temperatura em graus Celsius e mostre o valor correspondente em Fahrenheit.
O que ensina: Você pratica fórmula matemática, variáveis reais e atribuição de resultado.
algoritmo "CelsiusParaFahrenheit"
var
celsius, fahrenheit: real
inicio
escreva("Digite a temperatura em Celsius: ")
leia(celsius)
fahrenheit <- (celsius * 9 / 5) + 32
escreval("A temperatura em Fahrenheit é: ", fahrenheit)
fimalgoritmoExplicação: A variável `fahrenheit` recebe o resultado da fórmula. Como temperatura pode ter casas decimais, usamos o tipo `real`.
Desafio extra: Faça o contrário: leia Fahrenheit e converta para Celsius.
Exercício 6
Mostrar antecessor e sucessor
Enunciado: Crie um algoritmo que leia um número inteiro e mostre seu antecessor e seu sucessor.
O que ensina: Você pratica operações simples e entende como manipular valores numéricos.
algoritmo "AntecessorSucessor"
var
numero, antecessor, sucessor: inteiro
inicio
escreva("Digite um número inteiro: ")
leia(numero)
antecessor <- numero - 1
sucessor <- numero + 1
escreval("Antecessor: ", antecessor)
escreval("Sucessor: ", sucessor)
fimalgoritmoExplicação: Se o número digitado for 10, o antecessor será 9 e o sucessor será 11.
Desafio extra: Mostre também o dobro e o triplo do número digitado.
Exercício 7
Verificar se um número é par ou ímpar
Enunciado: Crie um algoritmo que leia um número inteiro e diga se ele é par ou ímpar.
O que ensina: Você pratica estrutura condicional `se/senao` e o operador `mod`, usado para descobrir o resto de uma divisão.
algoritmo "ParOuImpar"
var
numero: inteiro
inicio
escreva("Digite um número inteiro: ")
leia(numero)
se numero mod 2 = 0 entao
escreval("O número é par.")
senao
escreval("O número é ímpar.")
fimse
fimalgoritmoExplicação: Um número é par quando o resto da divisão por 2 é igual a zero. Por isso usamos `numero mod 2 = 0`.
Desafio extra: Mostre também se o número é positivo, negativo ou zero.
Exercício 8
Encontrar o maior de dois números
Enunciado: Crie um algoritmo que leia dois números e mostre qual deles é o maior.
O que ensina: Você pratica comparação entre valores e tomada de decisão.
algoritmo "MaiorDeDois"
var
n1, n2: real
inicio
escreva("Digite o primeiro número: ")
leia(n1)
escreva("Digite o segundo número: ")
leia(n2)
se n1 > n2 entao
escreval("O maior número é: ", n1)
senao
se n2 > n1 entao
escreval("O maior número é: ", n2)
senao
escreval("Os dois números são iguais.")
fimse
fimse
fimalgoritmoExplicação: O algoritmo compara `n1` e `n2`. Se nenhum for maior que o outro, significa que eles são iguais.
Desafio extra: Mostre também qual é o menor número.
Exercício 9
Encontrar o maior de três números
Enunciado: Crie um algoritmo que leia três números e mostre o maior deles.
O que ensina: Você pratica múltiplas condições e aprende a comparar mais de dois valores.
algoritmo "MaiorDeTres"
var
n1, n2, n3, maior: real
inicio
escreva("Digite o primeiro número: ")
leia(n1)
escreva("Digite o segundo número: ")
leia(n2)
escreva("Digite o terceiro número: ")
leia(n3)
maior <- n1
se n2 > maior entao
maior <- n2
fimse
se n3 > maior entao
maior <- n3
fimse
escreval("O maior número é: ", maior)
fimalgoritmoExplicação: Começamos assumindo que `n1` é o maior. Depois comparamos com `n2` e `n3`. Se algum for maior, atualizamos a variável `maior`.
Desafio extra: Modifique o algoritmo para mostrar também o menor dos três números.
Exercício 10
Verificar se o aluno foi aprovado
Enunciado: Crie um algoritmo que leia duas notas, calcule a média e informe se o aluno foi aprovado, ficou em recuperação ou foi reprovado.
O que ensina: Você pratica média, operadores relacionais e condições encadeadas.
algoritmo "SituacaoAluno"
var
nota1, nota2, media: real
inicio
escreva("Digite a primeira nota: ")
leia(nota1)
escreva("Digite a segunda nota: ")
leia(nota2)
media <- (nota1 + nota2) / 2
escreval("Média: ", media)
se media >= 7 entao
escreval("Situação: aprovado")
senao
se media >= 5 entao
escreval("Situação: recuperação")
senao
escreval("Situação: reprovado")
fimse
fimse
fimalgoritmoExplicação: A primeira condição verifica se a média é suficiente para aprovação. Se não for, o algoritmo verifica se ainda é caso de recuperação. Se também não for, o aluno está reprovado.
Desafio extra: Altere o programa para ler quatro notas em vez de duas.
Exercício 11
Calcular IMC
Enunciado: Crie um algoritmo que leia o peso e a altura de uma pessoa e calcule seu IMC.
O que ensina: Você pratica fórmulas com números reais, entrada de dados e condições por faixa de valor.
algoritmo "CalcularIMC"
var
peso, altura, imc: real
inicio
escreva("Digite seu peso em kg: ")
leia(peso)
escreva("Digite sua altura em metros: ")
leia(altura)
imc <- peso / (altura * altura)
escreval("Seu IMC é: ", imc)
se imc < 18.5 entao
escreval("Classificação: abaixo do peso")
senao
se imc < 25 entao
escreval("Classificação: peso normal")
senao
se imc < 30 entao
escreval("Classificação: sobrepeso")
senao
escreval("Classificação: obesidade")
fimse
fimse
fimse
fimalgoritmoExplicação: O IMC usa peso e altura. Depois do cálculo, o algoritmo compara o resultado com faixas de classificação.
Desafio extra: Mostre uma mensagem diferente para cada faixa de IMC.
Exercício 12
Calcular desconto por valor de compra
Enunciado: Crie um algoritmo que leia o valor de uma compra e aplique desconto conforme a regra: - Compras abaixo de R$100: sem desconto. - Compras de R$100 até R$499,99: 10% de desconto. - Compras de R$500 ou mais: 15% de desconto.
O que ensina: Você pratica condições por faixa, porcentagem e cálculo de valor final.
algoritmo "DescontoCompra"
var
valor, desconto, total: real
inicio
escreva("Digite o valor da compra: ")
leia(valor)
se valor >= 500 entao
desconto <- valor * 0.15
senao
se valor >= 100 entao
desconto <- valor * 0.10
senao
desconto <- 0
fimse
fimse
total <- valor - desconto
escreval("Valor original: Rquot;, valor)
escreval("Desconto: Rquot;, desconto)
escreval("Total a pagar: Rquot;, total)
fimalgoritmoExplicação: O algoritmo calcula primeiro o desconto. Depois subtrai esse desconto do valor original para encontrar o total a pagar.
Desafio extra: Adicione uma opção de pagamento à vista com desconto extra de 5%.
Exercício 13
Contar de 1 até 10
Enunciado: Crie um algoritmo que mostre os números de 1 até 10 usando repetição.
O que ensina: Você aprende a usar o laço `para`, ideal quando sabemos exatamente quantas repetições serão feitas.
algoritmo "ContarAteDez"
var
i: inteiro
inicio
para i de 1 ate 10 faca
escreval(i)
fimpara
fimalgoritmoExplicação: A variável `i` começa em 1 e aumenta automaticamente até chegar em 10. A cada repetição, o algoritmo mostra o valor atual de `i`.
Desafio extra: Altere o algoritmo para contar de 10 até 1.
Exercício 14
Fazer tabuada com PARA
Enunciado: Crie um algoritmo que leia um número e mostre a tabuada dele de 1 até 10.
O que ensina: Você pratica laço `para`, multiplicação e repetição com saída formatada.
algoritmo "Tabuada"
var
numero, i, resultado: inteiro
inicio
escreva("Digite um número para ver a tabuada: ")
leia(numero)
para i de 1 ate 10 faca
resultado <- numero * i
escreval(numero, " x ", i, " = ", resultado)
fimpara
fimalgoritmoExplicação: A variável `i` vai de 1 até 10. Em cada repetição, multiplicamos `numero` por `i` e mostramos o resultado.
Desafio extra: Faça a tabuada ir de 1 até 20.
Exercício 15
Somar números de 1 até N
Enunciado: Crie um algoritmo que leia um número inteiro `N` e calcule a soma de todos os números de 1 até `N`.
O que ensina: Você pratica acumulador, que é uma variável usada para guardar uma soma ao longo das repetições.
algoritmo "SomaAteN"
var
n, i, soma: inteiro
inicio
escreva("Digite um número inteiro positivo: ")
leia(n)
soma <- 0
para i de 1 ate n faca
soma <- soma + i
fimpara
escreval("A soma de 1 até ", n, " é: ", soma)
fimalgoritmoExplicação: A variável `soma` começa em zero. A cada volta do laço, somamos o valor atual de `i` ao que já estava guardado.
Desafio extra: Mostre também a média dos números de 1 até `N`.
Exercício 16
Calcular fatorial
Enunciado: Crie um algoritmo que leia um número inteiro e calcule seu fatorial.
O que ensina: Você pratica repetição e acumulador multiplicativo.
algoritmo "Fatorial"
var
n, i, fatorial: inteiro
inicio
escreva("Digite um número inteiro positivo: ")
leia(n)
fatorial <- 1
para i de 1 ate n faca
fatorial <- fatorial * i
fimpara
escreval("O fatorial de ", n, " é: ", fatorial)
fimalgoritmoExplicação: O fatorial começa em 1 porque multiplicar por zero deixaria o resultado sempre zero. Depois multiplicamos pelos números de 1 até `n`.
Desafio extra: Mostre o cálculo passo a passo na tela.
Exercício 17
Fazer contagem regressiva com ENQUANTO
Enunciado: Crie um algoritmo que faça uma contagem regressiva de 10 até 0 usando `enquanto`.
O que ensina: Você aprende a usar o laço `enquanto`, que repete enquanto uma condição for verdadeira.
algoritmo "ContagemRegressiva"
var
contador: inteiro
inicio
contador <- 10
enquanto contador >= 0 faca
escreval(contador)
contador <- contador - 1
fimenquanto
escreval("Fim da contagem!")
fimalgoritmoExplicação: O contador começa em 10. A cada repetição ele diminui 1. Quando fica menor que zero, a condição deixa de ser verdadeira e o laço termina.
Desafio extra: Peça ao usuário o número inicial da contagem regressiva.
Exercício 18
Criar um menu com REPITA
Enunciado: Crie um algoritmo com menu simples que continue aparecendo até o usuário escolher a opção de sair.
O que ensina: Você pratica `repita ate`, que executa o bloco pelo menos uma vez antes de testar a condição de parada.
algoritmo "MenuComRepita"
var
opcao: inteiro
inicio
repita
escreval("==== MENU ====")
escreval("1 - Dizer olá")
escreval("2 - Mostrar mensagem")
escreval("0 - Sair")
escreva("Escolha uma opção: ")
leia(opcao)
se opcao = 1 entao
escreval("Olá! Seja bem-vindo.")
senao
se opcao = 2 entao
escreval("Você está aprendendo Portugol no VisuAlg Web.")
senao
se opcao <> 0 entao
escreval("Opção inválida.")
fimse
fimse
fimse
escreval("")
ate opcao = 0
escreval("Programa encerrado.")
fimalgoritmoExplicação: O menu aparece pelo menos uma vez. Ele só para quando a opção digitada for `0`.
Desafio extra: Adicione uma terceira opção ao menu.
Exercício 19
Validar senha com tentativas
Enunciado: Crie um algoritmo que peça uma senha. O usuário tem até 3 tentativas para acertar.
O que ensina: Você pratica laço `enquanto`, contador de tentativas, condição composta e controle de fluxo.
algoritmo "ValidarSenha"
var
senha: caractere
tentativas: inteiro
acertou: logico
inicio
tentativas <- 0
acertou <- falso
enquanto (tentativas < 3) e (acertou = falso) faca
escreva("Digite a senha: ")
leia(senha)
se senha = "1234" entao
acertou <- verdadeiro
senao
tentativas <- tentativas + 1
escreval("Senha incorreta. Tentativas usadas: ", tentativas)
fimse
fimenquanto
se acertou entao
escreval("Acesso permitido.")
senao
escreval("Acesso bloqueado.")
fimse
fimalgoritmoExplicação: O laço continua enquanto o usuário ainda tiver tentativas e não tiver acertado a senha.
Desafio extra: Permita que o usuário cadastre a senha antes de tentar acessar.
Exercício 20
Mostrar números pares de 1 até 100
Enunciado: Crie um algoritmo que mostre todos os números pares entre 1 e 100.
O que ensina: Você pratica repetição, operador `mod` e filtragem de valores.
algoritmo "ParesDeUmACem"
var
i: inteiro
inicio
para i de 1 ate 100 faca
se i mod 2 = 0 entao
escreval(i)
fimse
fimpara
fimalgoritmoExplicação: O algoritmo percorre todos os números de 1 até 100. Só mostra o número quando ele é divisível por 2.
Desafio extra: Altere o algoritmo para mostrar apenas os números ímpares.
Exercício 21
Encontrar maior e menor número de uma lista
Enunciado: Crie um algoritmo que leia 5 números e mostre o maior e o menor valor digitado.
O que ensina: Você aprende a atualizar variáveis de controle durante uma repetição.
algoritmo "MaiorEMenor"
var
i, numero, maior, menor: inteiro
inicio
para i de 1 ate 5 faca
escreva("Digite o ", i, "º número: ")
leia(numero)
se i = 1 entao
maior <- numero
menor <- numero
senao
se numero > maior entao
maior <- numero
fimse
se numero < menor entao
menor <- numero
fimse
fimse
fimpara
escreval("Maior número: ", maior)
escreval("Menor número: ", menor)
fimalgoritmoExplicação: No primeiro número digitado, o algoritmo define maior e menor com o mesmo valor. Depois compara os próximos números com esses valores.
Desafio extra: Permita que o usuário escolha quantos números deseja digitar.
Exercício 22
Calcular média de uma turma
Enunciado: Crie um algoritmo que leia a nota de 5 alunos e calcule a média da turma.
O que ensina: Você pratica acumulador com números reais e repetição com quantidade fixa.
algoritmo "MediaTurma"
var
i: inteiro
nota, soma, media: real
inicio
soma <- 0
para i de 1 ate 5 faca
escreva("Digite a nota do aluno ", i, ": ")
leia(nota)
soma <- soma + nota
fimpara
media <- soma / 5
escreval("A média da turma é: ", media)
fimalgoritmoExplicação: A variável `soma` acumula todas as notas. Ao final, dividimos por 5 para encontrar a média.
Desafio extra: Conte quantos alunos ficaram acima da média da turma.
Exercício 23
Contar positivos, negativos e zeros
Enunciado: Crie um algoritmo que leia 10 números e conte quantos são positivos, negativos e iguais a zero.
O que ensina: Você pratica contadores e classificação de valores.
algoritmo "ContarTiposDeNumeros"
var
i, numero, positivos, negativos, zeros: inteiro
inicio
positivos <- 0
negativos <- 0
zeros <- 0
para i de 1 ate 10 faca
escreva("Digite o ", i, "º número: ")
leia(numero)
se numero > 0 entao
positivos <- positivos + 1
senao
se numero < 0 entao
negativos <- negativos + 1
senao
zeros <- zeros + 1
fimse
fimse
fimpara
escreval("Positivos: ", positivos)
escreval("Negativos: ", negativos)
escreval("Zeros: ", zeros)
fimalgoritmoExplicação: Cada contador começa em zero. Conforme os números são lidos, o contador correspondente aumenta em 1.
Desafio extra: Mostre também a porcentagem de números positivos.
Exercício 24
Gerar sequência de Fibonacci
Enunciado: Crie um algoritmo que mostre os primeiros 10 termos da sequência de Fibonacci.
O que ensina: Você pratica atualização de variáveis e entende como gerar uma sequência numérica.
algoritmo "Fibonacci"
var
i, termo1, termo2, proximo: inteiro
inicio
termo1 <- 0
termo2 <- 1
escreval(termo1)
escreval(termo2)
para i de 3 ate 10 faca
proximo <- termo1 + termo2
escreval(proximo)
termo1 <- termo2
termo2 <- proximo
fimpara
fimalgoritmoExplicação: Cada novo termo é a soma dos dois anteriores. Depois de calcular o próximo termo, atualizamos as variáveis para continuar a sequência.
Desafio extra: Peça ao usuário quantos termos ele deseja mostrar.
Exercício 25
Preencher e mostrar um vetor
Enunciado: Crie um algoritmo que leia 5 números, guarde em um vetor e depois mostre todos os valores digitados.
O que ensina: Você aprende a declarar vetor, preencher posições e percorrer os valores armazenados.
algoritmo "VetorBasico"
var
numeros: vetor[1..5] de inteiro
i: inteiro
inicio
para i de 1 ate 5 faca
escreva("Digite o valor da posição ", i, ": ")
leia(numeros[i])
fimpara
escreval("Valores digitados:")
para i de 1 ate 5 faca
escreval("Posição ", i, ": ", numeros[i])
fimpara
fimalgoritmoExplicação: O vetor `numeros` tem 5 posições. Usamos `numeros[i]` para acessar cada posição conforme o valor de `i` muda no laço.
Desafio extra: Mostre os valores na ordem inversa.
Exercício 26
Somar e calcular média de um vetor
Enunciado: Crie um algoritmo que leia 5 notas em um vetor, calcule a soma e mostre a média.
O que ensina: Você combina vetor, repetição, acumulador e média.
algoritmo "MediaVetor"
var
notas: vetor[1..5] de real
i: inteiro
soma, media: real
inicio
soma <- 0
para i de 1 ate 5 faca
escreva("Digite a nota ", i, ": ")
leia(notas[i])
soma <- soma + notas[i]
fimpara
media <- soma / 5
escreval("Soma das notas: ", soma)
escreval("Média das notas: ", media)
fimalgoritmoExplicação: Cada nota é guardada em uma posição do vetor. Ao mesmo tempo, a variável `soma` acumula as notas para calcular a média no final.
Desafio extra: Depois de calcular a média, mostre quais notas ficaram acima da média.
Exercício 27
Encontrar o maior valor de um vetor
Enunciado: Crie um algoritmo que leia 5 números em um vetor e mostre o maior valor e a posição em que ele está.
O que ensina: Você aprende a percorrer um vetor procurando um valor específico.
algoritmo "MaiorValorVetor"
var
numeros: vetor[1..5] de inteiro
i, maior, posicaoMaior: inteiro
inicio
para i de 1 ate 5 faca
escreva("Digite o valor da posição ", i, ": ")
leia(numeros[i])
fimpara
maior <- numeros[1]
posicaoMaior <- 1
para i de 2 ate 5 faca
se numeros[i] > maior entao
maior <- numeros[i]
posicaoMaior <- i
fimse
fimpara
escreval("Maior valor: ", maior)
escreval("Posição do maior valor: ", posicaoMaior)
fimalgoritmoExplicação: Começamos assumindo que o primeiro valor é o maior. Depois comparamos os outros valores do vetor com ele.
Desafio extra: Mostre também o menor valor e sua posição.
Exercício 28
Buscar um número dentro de um vetor
Enunciado: Crie um algoritmo que leia 5 números em um vetor. Depois, peça um número para busca e informe se ele existe no vetor.
O que ensina: Você pratica busca simples, variável lógica e laço de repetição.
algoritmo "BuscarNoVetor"
var
numeros: vetor[1..5] de inteiro
i, busca: inteiro
encontrado: logico
inicio
para i de 1 ate 5 faca
escreva("Digite o valor da posição ", i, ": ")
leia(numeros[i])
fimpara
escreva("Digite o número que deseja buscar: ")
leia(busca)
encontrado <- falso
para i de 1 ate 5 faca
se numeros[i] = busca entao
encontrado <- verdadeiro
fimse
fimpara
se encontrado entao
escreval("O número foi encontrado no vetor.")
senao
escreval("O número não foi encontrado no vetor.")
fimse
fimalgoritmoExplicação: A variável `encontrado` começa como falsa. Se o valor buscado aparecer em alguma posição do vetor, ela passa a ser verdadeira.
Desafio extra: Mostre em qual posição o número foi encontrado.
Exercício 29
Preencher e mostrar uma matriz 3x3
Enunciado: Crie um algoritmo que leia os valores de uma matriz 3x3 e depois mostre todos os valores na tela.
O que ensina: Você aprende a declarar matriz e usar dois laços de repetição: um para linhas e outro para colunas.
algoritmo "MatrizTresPorTres"
var
matriz: vetor[1..3, 1..3] de inteiro
linha, coluna: inteiro
inicio
para linha de 1 ate 3 faca
para coluna de 1 ate 3 faca
escreva("Digite o valor da posição [", linha, ",", coluna, "]: ")
leia(matriz[linha, coluna])
fimpara
fimpara
escreval("Matriz digitada:")
para linha de 1 ate 3 faca
para coluna de 1 ate 3 faca
escreva(matriz[linha, coluna], " ")
fimpara
escreval("")
fimpara
fimalgoritmoExplicação: Uma matriz tem duas dimensões: linha e coluna. Por isso usamos dois laços `para` aninhados.
Desafio extra: Mostre apenas os valores da primeira linha da matriz.
Exercício 30
Somar a diagonal principal de uma matriz
Enunciado: Crie um algoritmo que leia uma matriz 3x3 e calcule a soma da diagonal principal.
O que ensina: Você pratica matriz, laços aninhados e identificação de posições especiais.
algoritmo "SomaDiagonalPrincipal"
var
matriz: vetor[1..3, 1..3] de inteiro
linha, coluna, soma: inteiro
inicio
soma <- 0
para linha de 1 ate 3 faca
para coluna de 1 ate 3 faca
escreva("Digite o valor da posição [", linha, ",", coluna, "]: ")
leia(matriz[linha, coluna])
fimpara
fimpara
para linha de 1 ate 3 faca
para coluna de 1 ate 3 faca
se linha = coluna entao
soma <- soma + matriz[linha, coluna]
fimse
fimpara
fimpara
escreval("A soma da diagonal principal é: ", soma)
fimalgoritmoExplicação: A condição `linha = coluna` identifica os elementos da diagonal principal. Sempre que isso acontece, somamos o valor da matriz na variável `soma`.
Desafio extra: Calcule também a soma da diagonal secundária.
Perguntas comuns
Esses exercícios funcionam no VisuAlg?
Sim. Os exemplos foram escritos no estilo do VisuAlg e podem ser testados no editor online do VisuAlg Web.
A lista é boa para iniciantes?
Sim. A sequência começa com entrada, saída e variáveis antes de chegar em condições, repetições, vetores e matrizes.
Posso copiar os códigos?
Pode. O ideal é copiar, executar, alterar uma linha e observar como o resultado muda para aprender o padrão de lógica.