Ir ao conteúdo

Duvidas com código no Visualg


Monis

Posts recomendados

Postado

Pessoal, sou nova aqui no fórum, e estou iniciando em lógica de programação. Bom estou com a seguinte questão a ser resolvida:

" Faça um programa que leia cinco grupos de quatro valores (A,B,C,D) e mostre-os na ordem lida. Em seguida, organize-os em ordem crescente e decrescente."

Eu fiz o código e vou postar aqui, fiz até a parte da ordem crescente, deu certo, só que o programa não finaliza, por que está acontecendo isso? Alguém pode me ajudar? Segue o código abaixo:

algoritmo "Exercício"

var

A, B, C, D, I, J: inteiro

inicio

escreval("Digite 4 números inteiros:")

leia(A,B,C,D)

para I de 1 ate 5 passo 1 faca

escreval("Grupo",I,"=",A,B,C,D)

fimpara

enquanto (A<B) e (A<C) e (A<D)faca

se (B<C) e (B<D) então

se (C<D) então

escreval("A ordem crescente dos números é:",A,B,C,D)

senao

escreval("A ordem crescente dos números é:",A,B,D,C)

fimse

fimse

se (C<B) e (C<D) então

se (B<D) então

escreval("A ordem crescente dos números é:",A,C,B,D)

senao

escreval("A ordem crescente dos números é:",A,C,D,B)

fimse

fimse

se (D<B) e (D<C) então

se (B<C) então

escreval("A ordem crescente dos números é:",A,D,B,C)

senao

escreval("A ordem crescente dos números é:",A,D,C,B)

fimse

fimse

fimenquanto

enquanto (B<A) e (B<C) e (B<D)faca

se (A<C) e (A<D) então

se (C<D) então

escreval("A ordem crescente dos números é:",B,A,C,D)

senao

escreval("A ordem crescente dos números é:",B,A,D,C)

fimse

fimse

se (C<A) e (C<D) então

se (A<D) então

escreval("A ordem crescente dos números é:",B,C,A,D)

senao

escreval("A ordem crescente dos números é:",B,C,D,A)

fimse

fimse

se (D<A) e (D<C) então

se (A<C) então

escreval("A ordem crescente dos números é:",B,D,A,C)

senao

escreval("A ordem crescente dos números é:",B,D,C,A)

fimse

fimse

fimenquanto

enquanto (C<A) e (C<B) e (C<D)faca

se (B<A) e (B<D) então

se (A<D) então

escreval("A ordem crescente dos números é:",C,B,A,D)

senao

escreval("A ordem crescente dos números é:",C,B,D,A)

fimse

fimse

se (A<B) e (A<D) então

se (B<D) então

escreval("A ordem crescente dos números é:",C,A,B,D)

senao

escreval("A ordem crescente dos números é:",C,A,D,B)

fimse

fimse

se (D<B) e (D<A) então

se (B<A) então

escreval("A ordem crescente dos números é:",C,D,B,A)

senao

escreval("A ordem crescente dos números é:",C,D,A,B)

fimse

fimse

fimenquanto

enquanto (D<A) e (D<B) e (D<C)faca

se (B<A) e (B<C) então

se (C<A) então

escreval("A ordem crescente dos números é:",D,B,C,A)

senao

escreval("A ordem crescente dos números é:",D,B,A,C)

fimse

fimse

se (C<B) e (C<A) então

se (B<A) então

escreval("A ordem crescente dos números é:",D,C,B,A)

senao

escreval("A ordem crescente dos números é:",D,C,A,B)

fimse

fimse

se (A<B) e (A<C) então

se (B<C) então

escreval("A ordem crescente dos números é:",D,A,B,C)

senao

escreval("A ordem crescente dos números é:",D,A,C,B)

fimse

fimse

fimenquanto

fimalgoritmo

Postado

Ok, pessoal, já consegui arrumar esse erro, somente trocando o comando enquanto pelo se.

Só que agora estou com outro grande problema, acho que não era para aparecer cinco grupos com os mesmos valores, mas sim com valores diferentes, e aí sim fazer a ordem crescente dos números em cada grupo. Agora estou totalmente perdida......

No primeiro comando para eu fiz o seguinte:

para I de 1 ate 5 passo 1 faca

escreval("Digite 4 números para formar o grupo", I)

leia(A,B,C,D)

fimpara

Até aí tudo bem, ele pede os valores, grupo por grupo, mas depois eu queria que ele imprimisse o seguinte:

" Grupo 1= A,B,C,D

Grupo 2= A,B,C,D

Grupo 3= A,B,C,D

Grupo 4= A,B,C,D

Grupo 5= A,B,C,D"

Sendo todos os A,B,C,D, valores diferentes em cada grupo.

Eu tentei fazer assim:

para I de 1 ate 5 passo 1 faca

escreval("Digite 4 números para formar o grupo", I)

leia(A,B,C,D)

fimpara

para I de 1 ate 5 passo 1 faca

escreval("Grupo", I, "=" ,A,B,C,D)

fimpara

Mas ele me devolve só os valores do grupo 5. Porque??

Postado

Olá, Monis, você é sempre muito bem-vinda! :wub:

Só que agora estou com outro grande problema, acho que não era para aparecer cinco grupos com os mesmos valores, mas sim com valores diferentes, e aí sim fazer a ordem crescente dos números em cada grupo. Agora estou totalmente perdida......

Isso mesmo, Monis, você já deduziu que vai precisar de uma estrutura que permita armazenar esses cinco grupos de valores digitados pelo usuário. Você vai precisar de uma Matriz. O seu professor já passou o conceito de matrizes?

Para esse seu caso, ficaria assim:


[B]VAR[/B]

GRUPOS : [B]VETOR[/B] [1..5,1..4] de [B]INTEIRO[/B]

Então, você teria uma estrutura de 5 linhas (representando os grupos) e 4 colunas (os valores A, B, C e D). Vou mostrar como ficaria preenchida (na memória, claro) essa matriz:


32 21 36 90
21 01 02 80
67 21 44 88
27 72 31 05
10 20 38 54

E com a matriz devidamente preenchida, você poderia apresentar os resultados de acordo como é solicitado no enunciado (imprimir, ordenar, etc.).

Então, Monis, você vai precisar dar uma pesquisada sobre Vetores/Matrizes.

;)

LNW

Postado

Olá LNW, eu refiz o código utilizando vetores, deu certo tudo que eu queria, só que eu não sei se a professora vai aceitar assim, teria uma maneira de fazer isso sem a utilização de vetores? Ou é só dessa maneira mesmo? Outra duvida é a respeito de colocar em ordem crescente e decrescente, eu coloquei, ficou tudo certo, mas queria saber se tem uma maneira mais simples de fazer isso, pois se por exemplo eu tiver que colocar 100 números aleatórios em ordem crescente ou decrescente, utilizar esse método que eu utilizei não seria nada conveniente.

Segue meu código:

algoritmo "Exercício 02"

var

A,B,C,D: vetor[1..5]de inteiro

i:inteiro

inicio

para I de 1 ate 5 passo 1 faca

escreval("Digite 4 números para formar o grupo", I)

leia(A,B,C,D)

fimpara

escreval("")

escreval("FORMAÇÃO DOS GRUPOS")

escreval("")

para I de 1 ate 5 passo 1 faca

escreval("Grupo", I, "=", A,B,C,D)

fimpara

escreval("")

escreval("NÚMEROS EM ORDEM CRESCENTE")

escreval("")

para I de 1 ate 5 passo 1 faca

se (A<B) e (A<C) e (A<D)então

se (B<C) e (B<D) então

se (C<D) então

escreval("A ordem crescente dos números do grupo" ,I, " é:",A,B,C,D)

senao

escreval("A ordem crescente dos números do grupo" ,I, " é:",A,B,D,C)

fimse

fimse

se (C<B) e (C<D) então

se (B<D) então

escreval("A ordem crescente dos números do grupo" ,I, " é:",A,C,B,D)

senao

escreval("A ordem crescente dos números do grupo" ,I, " é:",A,C,D,B)

fimse

fimse

se (D<B) e (D<C) então

se (B<C) então

escreval("A ordem crescente dos números do grupo" ,I, " é:",A,D,B,C)

senao

escreval("A ordem crescente dos números do grupo" ,I, " é:",A,D,C,B)

fimse

fimse

fimse

se (B<A) e (B<C) e (B<D)então

se (A<C) e (A<D) então

se (C<D) então

escreval("A ordem crescente dos números do grupo" ,I, " é:",B,A,C,D)

senao

escreval("A ordem crescente dos números do grupo" ,I, " é:",B,A,D,C)

fimse

fimse

se (C<A) e (C<D) então

se (A<D) então

escreval("A ordem crescente dos números do grupo" ,I, " é:",B,C,A,D)

senao

escreval("A ordem crescente dos números do grupo" ,I, " é:",B,C,D,A)

fimse

fimse

se (D<A) e (D<C) então

se (A<C) então

escreval("A ordem crescente dos números do grupo" ,I, " é:",B,D,A,C)

senao

escreval("A ordem crescente dos números do grupo" ,I, " é:",B,D,C,A)

fimse

fimse

fimse

se (C<A) e (C<B) e (C<D)então

se (B<A) e (B<D) então

se (A<D) então

escreval("A ordem crescente dos números do grupo" ,I, " é:",C,B,A,D)

senao

escreval("A ordem crescente dos números do grupo" ,I, " é:",C,B,D,A)

fimse

fimse

se (A<B) e (A<D) então

se (B<D) então

escreval("A ordem crescente dos números do grupo" ,I, " é:",C,A,B,D)

senao

escreval("A ordem crescente dos números do grupo" ,I, " é:",C,A,D,B)

fimse

fimse

se (D<B) e (D<A) então

se (B<A) então

escreval("A ordem crescente dos números do grupo" ,I, " é:",C,D,B,A)

senao

escreval("A ordem crescente dos números do grupo" ,I, " é:",C,D,A,B)

fimse

fimse

fimse

se (D<A) e (D<B) e (D<C)então

se (B<A) e (B<C) então

se (C<A) então

escreval("A ordem crescente dos números do grupo" ,I, " é:",D,B,C,A)

senao

escreval("A ordem crescente dos números do grupo" ,I, " é:",D,B,A,C)

fimse

fimse

se (C<B) e (C<A) então

se (B<A) então

escreval("A ordem crescente dos números do grupo" ,I, " é:",D,C,B,A)

senao

escreval("A ordem crescente dos números do grupo" ,I, " é:",D,C,A,B)

fimse

fimse

se (A<B) e (A<C) então

se (B<C) então

escreval("A ordem crescente dos números do grupo" ,I, " é:",D,A,B,C)

senao

escreval("A ordem crescente dos números do grupo" ,I, " é:",D,A,C,B)

fimse

fimse

fimse

fimpara

escreval("")

escreval("NÚMEROS EM ORDEM DECRESCENTE")

escreval("")

para I de 1 ate 5 passo 1 faca

se (A>B) e (A>C) e (A>D)então

se (B>C) e (B>D) então

se (C>D) então

escreval("A ordem crescente dos números do grupo" ,I, " é:",A,B,C,D)

senao

escreval("A ordem crescente dos números do grupo" ,I, " é:",A,B,D,C)

fimse

fimse

se (C>B) e (C>D) então

se (B>D) então

escreval("A ordem crescente dos números do grupo" ,I, " é:",A,C,B,D)

senao

escreval("A ordem crescente dos números do grupo" ,I, " é:",A,C,D,B)

fimse

fimse

se (D>B) e (D>C) então

se (B>C) então

escreval("A ordem crescente dos números do grupo" ,I, " é:",A,D,B,C)

senao

escreval("A ordem crescente dos números do grupo" ,I, " é:",A,D,C,B)

fimse

fimse

fimse

se (B>A) e (B>C) e (B>D

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...