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 (1221 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens 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.

12 Comentários 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!

  2. PEDRO AUGUSTO DE OLIVEIRA // 30/05/2019 em 18:13 // Responder

    matriz 12 x 4 com os valores das vendas
    de uma loja de janeiro a dezembro

  3. Ler 2 vetores X e Y de 10 elementos cada um (ocupando as posições de 0 a 9 em cada vetor). Intercalar os elementos desses 2 vetores formando assim, um novo vetor R de 20 elementos, onde nas posições pares de R (0,2,4,…,8) estejam os elementos de X e nas posições ímpares (1,3,…,9) os elementos de Y. Após a geração completa do vetor R, escreva-o.
    Não consegui responder. Preciso de ajuda

    • Var
      x: vetor [0..18] de inteiro
      y: vetor [0..19] de inteiro
      z: vetor [0..19] de inteiro
      c: inteiro

      Inicio
      para c <- 0 ate 18 passo 2 faca
      escreva("digite x: ")
      leia(x[c])
      fimpara

      para c <- 1 ate 19 passo 2 faca
      escreva("digite y: ")
      leia(y[c])
      fimpara

      para c <- 0 ate 18 passo 2 faca
      z[c] <- x[c]
      fimpara

      para c <- 1 ate 19 passo 2 faca
      z[c] <- y[c]
      fimpara
      para c <- 0 ate 19 faca
      escreva(z[c])
      fimpara

  4. Analisando o pseudocódigo, qual o valor das variáveis X, Y e
    Z ao final do algoritmo?
    X_________________
    Y_________________
    Z_________________
    X<- 2
    Y<- 3
    Z<- 1
    para I de 1 ate 2 faca
    X<- X*I
    para K de 1 ate 2 faca
    Y<- Y+K
    Z<- Z+1
    fimpara
    fimpara
    escreva(X,Y,Z)

  5. Joao calueto Vieira // 07/02/2021 em 3:43 // Responder

    Gostei o terceiro exercício é em que linguagem

  6. Cleber Elizio da Silva // 17/10/2021 em 14:16 // Responder

    Qual programa usaram aqui nenhum abriu Dev C++,Phyton,Portugol Studio,Portugol viana,nenhum abriu esses algoritmos.

  7. Silvano Junior // 12/11/2021 em 14:53 // Responder

    Faça um programa que leia um valor inteiro N não negativo. Se o valor de N for
    inválido, o usuário deverá digitar outro até que ele seja válido (ou seja, positivo). Em
    seguida, leia um vetor V contendo N posições de inteiros, em que cada valor deverá
    ser maior ou igual a 2. Esse vetor deverá ser alocado dinamicamente.

  8. Monike Silva // 07/12/2021 em 1:53 // Responder

    criar um programa em shell script que leia os limites inferior e superior de um intervalo e imprima todos os números pares deste intervalo. suponha que os dados digitados são para um intervalo crescente, ou seja, o primeiro valor é menor que o segundo.
    Ex:
    Valor inferior = 4
    Valor superior = 10
    Saída:
    Números pares: 4, 6, 8 e 10

    #!/bin/bash
    par=0
    impar=0
    soma=0
    ate=(seq $ini $fim)

    echo ” “Informe o valor do limite inferior: “”
    read ini
    echo “Informe o valor do limite superior: ”
    read fim
    if [ `expr $ate % 2` -eq 0 ]; then
    read par
    else
    read impar
    fi
    for i in $(seq $ini $fim); do
    soma=$(($par+i))
    echo “$i”
    done
    echo “Soma: $soma”
    PORQUE DA ERRO ::

  9. Alvaro Pedro // 13/04/2022 em 8:08 // Responder

    De fato, amei bastante os exercícios para praticar, e já estou percebendo melhor sobre a lógica de programação, obrigado!

  10. Jøsëph Vënturå // 08/02/2023 em 19:07 // Responder

    Eu gostei da página neste caso..
    Ela me ajudou bastante e recomendo sinceramente….

Escreva um comentário

Seu e-mail não será divulgado


*