Ir ao conteúdo
  • Cadastre-se

achar os 3 maiores números utilizando a estrutura enquanto


Posts recomendados

  • Membro VIP

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
Link para o comentário
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 .

Link para o comentário
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
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@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.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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)
	}
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...