Lógica de Programação – Exercícios resolvidos de Vetores

Lógica de Programação - Exercícios resolvidos de vetores no VisualG

Neste artigo trazemos alguns exercícios resolvidos de vetores (arrays unidimensionais) para estudo em lógica de programação, com as resoluções em português estruturado, e que podem ser rodados e testados no VisualG.

Exercícios

1. Escreva um algoritmo que solicite ao usuário a entrada de 5 números, e que exiba o somatório desses números na tela.
Após exibir a soma, o programa deve mostrar também os números que o usuário digitou, um por linha.

Var
numeros : vetor [0..4] de inteiro
cont, soma : inteiro

Inicio
para cont de 0 ate 4 faca
   escreval("Entre com um número:")
   leia(numeros[cont])
   soma <- soma + numeros[cont])
fimpara

escreval("A soma dos números é", soma)
escreval()

escreval("Os números digitados foram:")
para cont de 0 ate 4 faca
   escreval(numeros[cont])
fimpara
Fimalgoritmo

2. Escreva um algoritmo que solicite ao usuário a entrada de 5 nomes, e que exiba a lista desses nomes na tela.
Após exibir essa lista, o programa deve mostrar também os nomes na ordem inversa em que o usuário os digitou, um por linha.

Var
nomes : vetor [0..4] de caractere
cont : inteiro

Inicio
para cont de 0 ate 4 faca
   escreval("Entre com um nome:")
   leia(nomes[cont])
fimpara

escreval()
escreval("Os nomes digitados foram:")

para cont de 0 ate 4 faca
   escreval(nomes[cont])
fimpara
escreval()

escreval("Os nomes digitados em ordem inversa foram:")
para cont de 4 ate 0 passo - 1 faca
   escreval(nomes[cont])
fimpara
Fimalgoritmo

3. Crie um programa que solicite a entrada de 10 números pelo usuário, armazenando-os em um vetor, e então monte outro vetor com os valores do primeiro multiplicados por 5.
Exiba os valores dos dois vetores na tela, simultaneamente, em duas colunas (um em cada coluna), uma posição por linha.

Var
nums1 : vetor [0..5] de inteiro
nums2 : vetor [0..5] de inteiro
cont : inteiro
Inicio

para cont de 0 ate 5 faca
   escreval("Digite um número:")
   leia(nums1[cont])
   nums2[cont] <- nums1[cont] * 5
fimpara
escreval()
escreval("Resultado:")
para cont de 0 ate 5 faca
   escreval(nums1[cont], " ", nums2[cont])
fimpara
escreval()
Fimalgoritmo

4. Crie um programa que armazene 10 números digitados pelo usuário em dois vetores: um somente para números pares, e outro somente para números ímpares.
Após, exiba os valores dos dois vetores na tela, em sequência.
Obs.: As posições que não receberem valores exibirão o número zero. Não se preocupe com isso por enquanto.

Var
numPar : vetor [0..9] de inteiro
numImpar : vetor [0..9] de inteiro
num, cont : inteiro
Inicio

para cont de 0 ate 9 faca
   escreval("Digite um número:")
   leia(num)
   se (num % 2 = 0 ) entao
      numPar[cont] <- num
   senao
      numImpar[cont] <- num
   fimse
fimpara
escreval()
escreval("Resultados:")
escreval("Array de Pares:")
para cont de 0 ate 9 faca
   escreval(numPar[cont])
fimpara
escreval()
escreval("Array de Ímpares:")
para cont de 0 ate 9 faca
   escreval(numImpar[cont])
fimpara
Fimalgoritmo

5. Modifique o programa anterior para não aceitar a entrada do número zero, e requisitar a digitação de outro número neste caso.

Var
numPar : vetor [0..9] de inteiro
numImpar : vetor [0..9] de inteiro
num, cont : inteiro
Inicio

para cont de 0 ate 9 faca
   escreval("Digite um número:")
   leia(num)
   enquanto (num = 0) faca
      escreval("Zero é número inválido. Digite outro número:")
      leia(num)
   fimenquanto
   se (num % 2 = 0 ) entao
      numPar[cont] <- num
   senao
      numImpar[cont] <- num
   fimse
fimpara
escreval()
escreval("Resultados:")
escreval("Array de Pares:")
para cont de 0 ate 9 faca
   escreval(numPar[cont])
fimpara
escreval()
escreval("Array de Ímpares:")
para cont de 0 ate 9 faca
   escreval(numImpar[cont])
fimpara
Fimalgoritmo

6. Modifique novamente o programa anterior, de modo a não exibir na saída os números zero que são mostrados para todas as posições que não receberam nenhum valor durante a atribuição (e portanto estão vazias).

Var
numPar : vetor [0..5] de inteiro
numImpar : vetor [0..5] de inteiro
num, cont : inteiro
Inicio

para cont de 0 ate 5 faca
   escreval("Digite um número:")
   leia(num)
   enquanto (num = 0) faca
      escreval("Zero é número inválido. Digite outro número:")
      leia(num)
   fimenquanto
   se (num % 2 = 0 ) entao
      numPar[cont] <- num
   senao
      numImpar[cont] <- num
   fimse
fimpara
escreval()
escreval("Resultados:")
escreval("Array de Pares:")
para cont de 0 ate 5 faca
   se (numPar[cont] <> 0) entao
      escreval(numPar[cont])
   fimse
fimpara
escreval()
escreval("Array de Ímpares:")
para cont de 0 ate 5 faca
   se (numImpar[cont] <> 0) entao
      escreval(numImpar[cont])
   fimse
fimpara
Fimalgoritmo

É isso aí! Em nossa próxima lição vamos mostrar uma técnica simples que permite intercambiar os valores armazenados em duas variáveis, sem que haja perda de dados.

Anterior: Atribuição de Valores e Leitura de Dados em Vetores

Próximo: Técnica para trocar valores entre duas Variáveis

 

Sobre Fábio dos Reis (1256 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

1 Comentário em Lógica de Programação – Exercícios resolvidos de Vetores

  1. Weberson Batista da Silva // 23/08/2018 em 14:32 // Responder

    Muito bom os exercícios! dá pra treinar bastante!

Escreva um comentário

Seu e-mail não será divulgado


*