Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Kazoii

VisualG Colocar em ordem crescente

Recommended Posts

Boa noite pessoal do Clube, seguinte estou tendo dificuldades em colocar esse seguinte problema em ordem. 

Imprima os três nomes em ordem crescente de alturas .

Ele pediu também para escrever a altura menor e a altura maior e os nomes de ambos, isso eu ja consegui fazer, o que não estou conseguindo e colocar em ordem crescente. Ai esta o código do programa.

 

Algoritmo "semnome"
// Disciplina  :  [Linguagem e Lógica de Programação] 
// Professor   : Antonio Carlos Nicolodi 
// Descrição   : Aqui você descreve o que o programa faz! (função)
// Autor(a)    : Nome do(a) aluno(a)
// Data atual  : 16/03/2018


Var
// Seção de Declarações das variáveis 
altura1, altura2, altura3, maxAltura, meAltura:real
maxnome, menome, nome1, nome2, nome3:caractere
cres1, cres2, cres3: real
Inicio


// Seção de Comandos, procedimento, funções, operadores, etc... 
escreva ("Digite o nome da primeira pessoa: ")
leia (nome1)
escreva ("Digite a altura da primeira pessoa: ")
leia (altura1)
escreva ("Digire o nome da segunda pessoa: ")
leia (nome2)
escreva ("Digite a altura da segunda pessoa: ")
leia (altura2)
escreva ("Digite o nome da terceira pessoa: ")
leia (nome3)
escreva ("Digite a altura da terceira pessoa: ")
leia (altura3)


//define a altura maior e a pessoa que tem ela.
maxaltura <- 1
mealtura <- 1


se (maxaltura < altura1) então
maxaltura <- altura1
maxnome <- nome1
fimse


se (maxaltura < altura2) então
maxaltura <- altura2
maxnome <- nome2
fimse


se (maxaltura < altura3) então
maxaltura <- altura3
maxnome <- nome3
fimse



//define a altura menor e a pessoa que tem ela
se (altura1 < altura2) e (altura1 < altura3)então
mealtura <- altura1
menome <- nome1
fimse


se (altura2 < altura1) e (altura2 < altura3)então
mealtura <- altura2
menome <- nome2
fimse


se (altura3 < altura2) e (altura3 < altura1)então
mealtura <- altura3
menome <- nome3
fimse
limpatela


 

Editado por DiF
Inserir o código usando o botão CODE <>!
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Kazoii    para colocar em ordem crescente usando apenas variáveis simples tem como fazer , mas vai precisar usar muitas linhas e variáveis para controlar,  e seu código está bom, ficou faltando colocar em ordem , então seu código com essa parte do código  ficaria assim :

Algoritmo "ordem crescente"
// Disciplina  :  [Linguagem e Lógica de Programação]
// Professor   : Antonio Carlos Nicolodi
// Descrição   : Aqui você descreve o que o programa faz! (função)
// Autor(a)    : Nome do(a) aluno(a)
// Data atual  : 16/03/2018
Var
  altura1, altura2, altura3, maxAltura, meAltura:real
  maxnome, menome, nome1, nome2, nome3:caractere
  cres1, cres2, cres3,h: real
Inicio
  escreva ("Digite o nome da primeira pessoa: ")
  leia (nome1)
  escreva ("Digite a altura da primeira pessoa: ")
  leia (altura1)
  escreva ("Digire o nome da segunda pessoa: ")
  leia (nome2)
  escreva ("Digite a altura da segunda pessoa: ")
  leia (altura2)
  escreva ("Digite o nome da terceira pessoa: ")
  leia (nome3)
  escreva ("Digite a altura da terceira pessoa: ")
  leia (altura3)
  //define a altura maior e a pessoa que tem ela.
  maxaltura := altura1
  maxnome := nome1
  se (maxaltura < altura2) ENTÃO
    maxaltura <- altura2
    maxnome <- nome2
  fimse
  se (maxaltura < altura3) ENTÃO
    maxaltura <- altura3
    maxnome <- nome3
  fimse
  //define a altura menor e a pessoa que tem ela
  mealtura := altura1
  menome := nome1
  se altura2 < mealtura ENTÃO
    mealtura <- altura2
    menome <- nome2
  fimse
  se altura3 < mealtura ENTÃO
    mealtura <- altura3
    menome <- nome3
  fimse
  //colocar em ordem crescente
  se (altura1 < altura2) e (altura1 < altura3) ENTÃO
    escreval(altura1,"  -  ",nome1)
    h := 1
  fimse
  se (altura2 < altura1) e (altura2 < altura3) ENTÃO
    escreval(altura2,"  -  ",nome2)
    h := 2
  fimse
  se (altura3 < altura1) e (altura3 < altura2) ENTÃO
    escreval(altura3,"  -  ",nome3)
    h := 3
  fimse
  se h=1 ENTÃO
    se altura2 < altura3 ENTÃO
      escreval(altura2,"  -  ",nome2)
      escreval(altura3,"  -  ",nome3)
    senao
      escreval(altura3,"  -  ",nome3)
      escreval(altura2,"  -  ",nome2)
    fimse
  fimse
  se h=2 ENTÃO
    se altura1 < altura3 ENTÃO
      escreval(altura1,"  -  ",nome1)
      escreval(altura3,"  -  ",nome3)
    senao
      escreval(altura3,"  -  ",nome3)
      escreval(altura1,"  -  ",nome1)
    fimse
  fimse
  se h=3 ENTÃO
    se altura1 < altura2 ENTÃO
      escreval(altura1,"  -  ",nome1)
      escreval(altura2,"  -  ",nome2)
    senao
      escreval(altura2,"  -  ",nome2)
      escreval(altura1,"  -  ",nome1)
    fimse
  fimse
Fimalgoritmo

se você puder usar vetor seria bem mais fácil,  então esse código ficaria assim :

Algoritmo "ordem crescente com vetor"
Var
  i,j : inteiro
  nome_e_altura,aux : vetor[1..3,1..2] de caracter
Inicio
  para j de 1 ate 3 faca
    escreva("Digite o nome da ",  j,"ª pessoa: ")
    leia(nome_e_altura[j,1])
    escreva("Digite a altura da ",j,"ª pessoa: ")
    leia(nome_e_altura[j,2])
  fimpara
  para i de 1 ate 3 faca
    para j de i+1 ate 3 faca
      se caracpnum(nome_e_altura[i,2]) > caracpnum(nome_e_altura[j,2]) ENTÃO
        aux[1] := nome_e_altura[i,2] // coloca o nome em ordem
        nome_e_altura[i,2] := nome_e_altura[j,2]
        nome_e_altura[j,2] := aux[1]
        
        aux[1] := nome_e_altura[i,1]  // coloca a altura em ordem
        nome_e_altura[i,1] := nome_e_altura[j,1]
        nome_e_altura[j,1] := aux[1]
      fimse
    fimpara
  fimpara
  escreval("Nomes e Altura Em Ordem Crescente")
  para j de 1 ate 3 faca
    escreval(j," - ",nome_e_altura[j,1]," - ",nome_e_altura[j,2])
  fimpara
  escreva("O Nome Com Menor Altura é : ",nome_e_altura[1,1])
  escreval(" e A Menor Altura é : "     ,nome_e_altura[1,2])
  escreva("O Nome Com Maior Altura é : ",nome_e_altura[3,1])
  escreval(" e A Maior Altura é : "     ,nome_e_altura[3,2])
Fimalgoritmo

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
17 horas atrás, devair1010 disse:

se (altura1 < altura2) e (altura1 < altura3) ENTÃO

Eu tinha começado a fazer assim, mais nao conseguir dar continuidade aos comandos, Muito obrigado pela ajuda parceiro. :D

 

adicionado 2 minutos depois
17 horas atrás, devair1010 disse:

@Kazoii    para colocar em ordem crescente usando apenas variáveis simples tem como fazer , mas vai precisar usar muitas linhas e variáveis para controlar,  e seu código está bom, ficou faltando colocar em ordem , então seu código com essa parte do código  ficaria assim :

Spoiler


Algoritmo "ordem crescente"
// Disciplina  :  [Linguagem e Lógica de Programação]
// Professor   : Antonio Carlos Nicolodi
// Descrição   : Aqui você descreve o que o programa faz! (função)
// Autor(a)    : Nome do(a) aluno(a)
// Data atual  : 16/03/2018
Var
  altura1, altura2, altura3, maxAltura, meAltura:real
  maxnome, menome, nome1, nome2, nome3:caractere
  cres1, cres2, cres3,h: real
Inicio
  escreva ("Digite o nome da primeira pessoa: ")
  leia (nome1)
  escreva ("Digite a altura da primeira pessoa: ")
  leia (altura1)
  escreva ("Digire o nome da segunda pessoa: ")
  leia (nome2)
  escreva ("Digite a altura da segunda pessoa: ")
  leia (altura2)
  escreva ("Digite o nome da terceira pessoa: ")
  leia (nome3)
  escreva ("Digite a altura da terceira pessoa: ")
  leia (altura3)
  //define a altura maior e a pessoa que tem ela.
  maxaltura := altura1
  maxnome := nome1
  se (maxaltura < altura2) ENTÃO
    maxaltura <- altura2
    maxnome <- nome2
  fimse
  se (maxaltura < altura3) ENTÃO
    maxaltura <- altura3
    maxnome <- nome3
  fimse
  //define a altura menor e a pessoa que tem ela
  mealtura := altura1
  menome := nome1
  se altura2 < mealtura ENTÃO
    mealtura <- altura2
    menome <- nome2
  fimse
  se altura3 < mealtura ENTÃO
    mealtura <- altura3
    menome <- nome3
  fimse
  //colocar em ordem crescente
  se (altura1 < altura2) e (altura1 < altura3) ENTÃO
    escreval(altura1,"  -  ",nome1)
    h := 1
  fimse
  se (altura2 < altura1) e (altura2 < altura3) ENTÃO
    escreval(altura2,"  -  ",nome2)
    h := 2
  fimse
  se (altura3 < altura1) e (altura3 < altura2) ENTÃO
    escreval(altura3,"  -  ",nome3)
    h := 3
  fimse
  se h=1 ENTÃO
    se altura2 < altura3 ENTÃO
      escreval(altura2,"  -  ",nome2)
      escreval(altura3,"  -  ",nome3)
    senao
      escreval(altura3,"  -  ",nome3)
      escreval(altura2,"  -  ",nome2)
    fimse
  fimse
  se h=2 ENTÃO
    se altura1 < altura3 ENTÃO
      escreval(altura1,"  -  ",nome1)
      escreval(altura3,"  -  ",nome3)
    senao
      escreval(altura3,"  -  ",nome3)
      escreval(altura1,"  -  ",nome1)
    fimse
  fimse
  se h=3 ENTÃO
    se altura1 < altura2 ENTÃO
      escreval(altura1,"  -  ",nome1)
      escreval(altura2,"  -  ",nome2)
    senao
      escreval(altura2,"  -  ",nome2)
      escreval(altura1,"  -  ",nome1)
    fimse
  fimse
Fimalgoritmo

 

 

se você puder usar vetor seria bem mais fácil,  então esse código ficaria assim :

Spoiler


Algoritmo "ordem crescente com vetor"
Var
  i,j : inteiro
  nome_e_altura,aux : vetor[1..3,1..2] de caracter
Inicio
  para j de 1 ate 3 faca
    escreva("Digite o nome da ",  j,"ª pessoa: ")
    leia(nome_e_altura[j,1])
    escreva("Digite a altura da ",j,"ª pessoa: ")
    leia(nome_e_altura[j,2])
  fimpara
  para i de 1 ate 3 faca
    para j de i+1 ate 3 faca
      se caracpnum(nome_e_altura[i,2]) > caracpnum(nome_e_altura[j,2]) ENTÃO
        aux[1] := nome_e_altura[i,2] // coloca o nome em ordem
        nome_e_altura[i,2] := nome_e_altura[j,2]
        nome_e_altura[j,2] := aux[1]
        
        aux[1] := nome_e_altura[i,1]  // coloca a altura em ordem
        nome_e_altura[i,1] := nome_e_altura[j,1]
        nome_e_altura[j,1] := aux[1]
      fimse
    fimpara
  fimpara
  escreval("Nomes e Altura Em Ordem Crescente")
  para j de 1 ate 3 faca
    escreval(j," - ",nome_e_altura[j,1]," - ",nome_e_altura[j,2])
  fimpara
  escreva("O Nome Com Menor Altura é : ",nome_e_altura[1,1])
  escreval(" e A Menor Altura é : "     ,nome_e_altura[1,2])
  escreva("O Nome Com Maior Altura é : ",nome_e_altura[3,1])
  escreval(" e A Maior Altura é : "     ,nome_e_altura[3,2])
Fimalgoritmo

 

Eu ainda não aprendi vetor na faculdade, por isso nao soube usar ele, mais obrigado pela dica, quando eu for usar vetores ja vou ter uma base. :D

 

Editado por Simon Viegas
Inserir tag SPOILER (botão "olho") no código, para reduzir o tamanho da postagem
  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×