Monis Postado 5 de maio de 2012 #1 Postado 5 de maio de 2012 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< 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< 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, fimse fimse se (D< 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, 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< 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< 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, fimse fimse se (D< 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, fimse fimse fimenquanto enquanto (D<A) e (D< 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< 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, fimse fimse se (A< 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, fimse fimse fimenquanto fimalgoritmo
Monis Postado 5 de maio de 2012 Autor #2 Postado 5 de maio de 2012 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??
LNW Postado 5 de maio de 2012 #3 Postado 5 de maio de 2012 Olá, Monis, você é sempre muito bem-vinda! 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 9021 01 02 8067 21 44 8827 72 31 0510 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
Monis Postado 6 de maio de 2012 Autor #4 Postado 6 de maio de 2012 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
Posts recomendados