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:  
ET Bilu

achar os 3 maiores números utilizando a estrutura enquanto

Recommended Posts

Estou tentando fazer um algoritmo que leia n números, e destes pegue os 3 maiores, somente utilizando a estutura enquanto. estou meio perdido nesse exercício, pois parece diferenciado

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro usuário,

 

Seja bem-vindo ao Fórum do Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

adicionado 7 minutos depois

***

 

@ET Bilu, uma forma prática seria utilizando vetor... daí ordena ele e pega o 3 primeiros... mas tem outras formas, vai também depender do enunciado.

 

Se não puder usar vetores e/ou métodos de ordenação, algo como ter que ir recebendo e atualizando os 3 maiores, tente achar uma solução manual, ou seja, como se você tivesse que fazer o papel... alguém iria ditando números e você  precisando seguir uma lógica para ir atualizando...

 

Por favor, poste o enunciado completo, e depois qual(is) lógica(s) conseguiu imaginar e onde está com dificuldades.

 

 

No aguardo.

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Ismacayo2014     Mas você vai poder usar vetores ?    Se sim então coloque os números no vetor e organize o vetor em ordem crescente e pegue os 3 primeiros números do vetor .  Se não então você vai precisar fazer um código bem extenso pois se você quiser fazer com dez números, por exemplo, vai precisar de dez variáveis para pegar esses números e depois verificar quais são os três maiores, e para isso você precisará usar muito se .

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • como eu disse, somente utilizando a estrutura enquanto, com a quantidade que o usuário especificar. na minha mente só veio alternativas com vetor, alguém aí me dá um pontapé inicial?

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @ET Bilu     com vetor você primeiro pega os números assim

    escreva("digite a quantidade de números")
    leia(num)
    a:=1
    enquanto num >= a faca
      escreva("Digite o ",a," numero") 
      leia(vetor[a])
      a := a+1
    fimenquanto

    depois use o método bublesort para organizar o vetor em ordem crescente, o bublesort é formado por dois loop um dentro do outro  que vai organizando os números no vetor, você pode ver um exemplo dele nesse post aqui :

     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @ET Bilu, qual é exatamente o enunciado da questão? poste aqui, talvez facilite!

     

     

    Alguns adendos:

    18 horas atrás, devair1010 disse:

    Se não então você vai precisar fazer um código bem extenso pois se você quiser fazer com dez números, por exemplo, vai precisar de dez variáveis para pegar esses números e depois verificar quais são os três maiores, e para isso você precisará usar muito se .

     

    Nesse caso de não usar vetor, acho que não seria uma boa ideia usar essas X variáveis, pois seria inviável verificar elas (apesar de possível)... já que teria que ter uma infinidade de se para checá-las... Vejam, ao utilizar vetores, seria possível usar uma variável para acessar cada posição, o que possibilitaria usar laços de repetições, correto?; já com variáveis simples, cada variável deverá ser acessada especificamente, o que aumentaria exponencialmente a quantidade de se.

     

    Uma técnica mais simples seria usar apenas uma variável, e a medida que iria lendo, iria atualizando os 3 maiores. Ai, a questão seria  imaginar, e implementar, algo que funcione sem usar vetores (que é a forma mais simples)

     

     

     

    18 horas atrás, devair1010 disse:

    Mas você vai poder usar vetores ?    Se sim então coloque os números no vetor e organize o vetor em ordem crescente e pegue os 3 primeiros números do vetor .

    Na verdade deveria ser decrescente, para os maiores ficarem no início. Na crescente, teria que pegar os 3 últimos.

     

     

     

    15 horas atrás, devair1010 disse:

    depois use o método bublesort para organizar o vetor em ordem crescente, o bublesort é formado por dois loop um dentro do outro  que vai organizando os números no vetor, você pode ver um exemplo dele nesse post aqui :

     

    18 horas atrás, ET Bilu disse:

    como eu disse, somente utilizando a estrutura enquanto, com a quantidade que o usuário especificar. na minha mente só veio alternativas com vetor, alguém aí me dá um pontapé inicial?

     

    Como essa regra "somente utilizando a estrutura enquanto" está muito limitadora (já que não poderia usar se, não poderia usar leia(), não poderia usar escreva() etc), imagino que esteja apenas limitando os laços de repetições, se for isso adianto: qualquer estrutura de repetição (repita, enquanto e para) pode ser substituída por outra delas, por exemplo: um laço que está com repita, pode ser "transformado" para enquanto ou para sem muitas dificuldade. O mesmo para outras respectivamente. RESUMIDAMENTE: tecnicamente falando, só precisamos de um tipo laço, existem 3 (ou mais) apenas para facilitar e organizar o código.... cada uma é mais pratica do que a outra a depender do contexto ("só isso").

     

    Logo, poderá escreve o Bubble Sort utilizando enquanto (geralmente utilizam-se para). O que satisfaria a "regra". Mas como adiantei lá em cima, é preciso ter o enunciado para entender suas limitações. Se for apenas "não poder usar para ou repita, simplesmente use um enquanto para preencher o vetor, e outros enquanto para ordenar OU se não puder usar vetor, analisar o que já foi dito sobre isso.

     

    No aguardo.

    Editado por Simon Viegas
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • de repetição somente "enquanto". pode usar "se" tranquilamente. @Simon Viegas

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @ET Bilu.

     

    Em 15/07/2017 às 09:11, ET Bilu disse:

    de repetição somente "enquanto". pode usar "se" tranquilamente. @Simon Viegas

    Isso eu tinha certeza absoluta! só estava sendo retórico...

     

    Então, qual é o enunciado do problema?

     

     

    Editado por Simon Viegas
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @Simon Viegas

    "Faça um programa que leia N números e ao final mostre os 3 maiores números digitados." 

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    2 horas atrás, ET Bilu disse:

    @Simon Viegas

    "Faça um programa que leia N números e ao final mostre os 3 maiores números digitados." 

     

    E onde entra:

    Em 12/07/2017 às 22:47, ET Bilu disse:

    somente utilizando a estutura enquanto

    ?

     

     

    No aguardo.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • programa
    {
    	funcao inicio()
    	{
    		
    inteiro n,c=0
    		real maior,maior2,maior3,num
    		leia(n,num)
    		maior=num
    		maior2=num
    		enquanto(c<n-1){
    			leia(num)
    			se(num>maior){
    				maior3=maior2
    				maior2=maior
    				maior=num
    			}senao se(num>maior2){
    					maior3=maior2
    					maior2=num
    				}senao{
    					maior3=num
    				}
    			c=c++}
    		
    		escreva(maior,"     ",maior2,"     ",maior3)
    	}
    }
    

    Foi o que conseguu

    adicionado 50 minutos depois

     

    Editado por ET Bilu
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Consegui, dei uma pausa pra esfriar a mente e percebi o quanto sou problemático. Podem excluir se necessário

     

    programa
    {
    	funcao inicio()
    	{
    		
    inteiro n,c=0
    		real num,maior,maior2,maior3
    		leia(n,num)
    		maior=num
    		maior2=num
    		enquanto(c<n-1){
    			escolha(c){
    				caso 0:
    				leia(num)
    				se(num>maior){
    					maior3=maior2
    					maior2=maior3
    					maior=num
    				}senao{
    					maior3=maior2
    					maior2=num
    				}
    				c=c++
    				pare
    				caso contrario:
    				leia(num)
    				se(num>maior){
    					maior3=maior2
    					maior2=maior
    					maior=num
    				}senao se((num>maior2)e(num>maior3)){
    					maior3=maior2
    					maior2=num
    				}senao{
    					maior3=num
    				}
    				c=c++
    			}
    		}
    		escreva(maior,"    ",maior2,"     ",maior3)
    	}
    }

     

    Editado por DiF
    Retificar texto em caixa alta
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Olá @ET Bilu.

     

    23 horas atrás, ET Bilu disse:

    Consegui, dei uma pausa pra esfriar a mente e percebi o quanto sou problemático. Podem excluir se necessário

     

    Testei seu código aqui no Portugol Studio, e meus testes aqui não deram certo... Ex.:

    10
    5
    9
    8
    7
    6
    4
    8
    9
    1
    3
    9.0    9.0     3.0
    Programa finalizado. Tempo de execução: 6896 milissegundos

    Teria que dar 9, 9 e 8.

     

    Outro ponto é que você precisa interagir com o usuário, ou seja, ao executar o programa apenas fica um cursor piscando... tive que "adivinhar" o que era para fazer. Use "escreva()" para ir orientado o que o usuário deve fazer.

     

     

    No aguardo.

    Editado por DiF
    Retificar citação, onde estava com o texto em caixa alta.
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @Simon Viegas puts, não esperava por essa. agora tenho que sair, tentarei corrigir mais tarde.

    • 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






    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

    ×