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