Alguem me ajuda?

15 respostas
M
import java.util.Scanner;
public class crescedecresce {
	public static void main( String[] args ){
	Scanner teclado = new Scanner(System.in);
		int primeiro;
		int segundo;
		int terceiro;
		int crescente=0;
		int decrescente=0;
			System.out.print("Indique um inteiro-->");
			primeiro=teclado.nextInt();
			System.out.print("Indique um inteiro-->");
			segundo=teclado.nextInt();
			System.out.print("Indique um inteiro-->");
			terceiro=teclado.nextInt();
				if(primeiro<=segundo)
					if(segundo<terceiro)
					System.out.println("crescente");
				if(primeiro>=segundo)
					if(segundo>terceiro)
					System.out.println("decrescente");
						else{
							System.out.println("desordenado");
							}
									
									
											}
							}

fiz este programa que tem o seguinte inunciado
Elabore um programa que leia do teclado três valores inteiros distintos, e diga se a
escrita destes foi feita seguindo uma ordem crescente, decrescente ou se não seguiu
nenhuma das referidas ordens. Deve ser escrito no ecrã uma das seguintes mensagens:
crescente; decrescente; desordenado

ele trabalha bem mas quando ponho
7
7
12
o resultado deveria ser crescente
mas aparece
crescente e desordenado alguem me ajuda?

15 Respostas

dmandrak

Cara…

Algumas considerações:

1- “alguem me ajuda?” é um título PRA LÁ DE POBRE, eu tenho certeza que você pode pensar em algo melhor, como “problema com leitura de teclado” ou coisa do tipo.

2- usa o botão de CODE ali na barra de cima na hora de escrever seu código pra ele ficar legível, pois, por exemplo, EU mesmo nem me daria ao trabalho de ler um código feio e bagunçado que nem esse ae.

Só vou fazer porque já passei por isso :slight_smile:

ok?

import java.util.Scanner; 
public class crescedecresce { 
public static void main( String[] args ){ 
  Scanner teclado = new Scanner(System.in); 
  int primeiro; 
  int segundo; 
  int terceiro; 
  int crescente=0; 
  int decrescente=0; 
  System.out.print("Indique um inteiro-->"); 
  primeiro=teclado.nextInt(); 
  System.out.print("Indique um inteiro-->"); 
  segundo=teclado.nextInt(); 
  System.out.print("Indique um inteiro-->"); 
  terceiro=teclado.nextInt(); 
  if(primeiro<=segundo) 
    if(segundo<terceiro) 
      System.out.println("crescente"); 
      if(primeiro>=segundo) 
        if(segundo>terceiro) 
          System.out.println("decrescente"); 
        else{ 
          System.out.println("desordenado"); 
        } 
    } 
  }

Vou pensar no seu problema e edito aqui

Michel_Sancovich

Desculpe a pergunta, mas o que tem a ver

int crescente=0; 
int decrescente=0;
M

essa variaveis ão de ser usadas mais tarde no programa não liguem para elas :wink:

dmandrak

Michel_Sancovich:
Desculpe a pergunta, mas o que tem a ver

int crescente=0; int decrescente=0;

uahuahauhauh eu também tinha notado isso.

Mas vamos ao seu problema:

Você pergunta:
Se 1<=2 — Se 2<3 — Cresc(ok), mas e o else daqui? Deveria mostrar Desordenado, não é?

No seu terceiro if:
Se 1>=2 — 2>3 — Decres(ok), else Desord(ok).

Essa parte eu acho que melhorou.

Não é a melhor maneira de se fazer isso e nem a mais bonita, mas provavelmente vai funcionar.

Não vou te dar a resposta, se é isso que você veio buscar aqui.

Acho que ninguém aqui vai, porque tem toda a cara de ser um exercício de programação e se te dermos, vai perder a função de você aprender.

Dá uma olhada no que eu escrevi e vê se te dá uma luz.

Abraços!

Boa sorte no exercício

Marky.Vasconcelos

[quote=meninuuuuu] if(primeiro<=segundo) //se primeiro <= segundo no caso 7 menor ou igual a 7, verdadeiro if(segundo<terceiro) //se segundo < terceiro no caso 7 menor que 12, verdadeiro System.out.println("crescente"); //Imprimiu por que passou nos ifs if(primeiro>=segundo) //se primeiro >= segundo no caso 7 maior ou igual a 7, verdadeiro if(segundo>terceiro) //se segundo > terceiro no caso 7 maior que 12, falso System.out.println("decrescente"); //Não imprime else{ //Já que é falso pula pro else System.out.println("desordenado"); //e imprime desordenado } [quote]

M

então e existe alguma fora de finalizar o programa depois no fim do primeiro printo caso seja verdade?

M

ou então como é que ponho o else a afectar todos os if ?

M
import java.util.Scanner;
public class crescedecresce {
	public static void main( String[] args ){
	Scanner teclado = new Scanner(System.in);
		int primeiro;
		int segundo;
		int terceiro;
		int crescente=0;
		int decrescente=0;
			System.out.print("Indique um inteiro-->");
			primeiro=teclado.nextInt();
			System.out.print("Indique um inteiro-->");
			segundo=teclado.nextInt();
			System.out.print("Indique um inteiro-->");
			terceiro=teclado.nextInt();
				if(primeiro<=segundo)
					if(segundo<terceiro)
					System.out.println("crescente");
							else{
								if(primeiro>=segundo)
								if(segundo>terceiro)
								System.out.println("decrescente");
									else{
									System.out.println("desordenado");
								}		
							}
						}
					}

a minha primeira ideia era por assim para quando pus tudo o que não é crecente não imprime nada :S

dmandrak

Primeiro:

Existe cara.

Só usar {}

Tipo assim:

if(segundo<terceiro)   {
      System.out.println("crescente"); 
      //"Add code here", pra sair do seu programa
      }
     ...

Segundo:

a minha primeira ideia era por assim para quando pus tudo o que não é crecente não imprime nada :S

Isso é simples, o seu “Else” está fazendo referência ao If errado.

Dá uma checada ae e passa a por { } nos Ifs que não têm Else senão quando aparecer um else ele vai fechar o If imediatamente acima dele.

Entendeu?

cassio

meninuuuuu:
import java.util.Scanner; public class crescedecresce { public static void main( String[] args ){ Scanner teclado = new Scanner(System.in); int primeiro; int segundo; int terceiro; int crescente=0; int decrescente=0; System.out.print("Indique um inteiro-->"); primeiro=teclado.nextInt(); System.out.print("Indique um inteiro-->"); segundo=teclado.nextInt(); System.out.print("Indique um inteiro-->"); terceiro=teclado.nextInt(); if(primeiro<=segundo) if(segundo<terceiro) System.out.println("crescente"); else{ if(primeiro>=segundo) if(segundo>terceiro) System.out.println("decrescente"); else{ System.out.println("desordenado"); } } } }
a minha primeira ideia era por assim para quando pus tudo o que não é crecente não imprime nada :S

Essa é a identação mais estranha que já vi!

M
import java.util.Scanner;
public class crescedecresce {
	public static void main( String[] args ){
	Scanner teclado = new Scanner(System.in);
	int primeiro;
	int segundo;
	int terceiro;
	int crescente=0;
	int decrescente=0;
		System.out.print("Indique um inteiro-->");
		primeiro=teclado.nextInt();
		System.out.print("Indique um inteiro-->");
		segundo=teclado.nextInt();
		System.out.print("Indique um inteiro-->");
		terceiro=teclado.nextInt();
		if(primeiro<=segundo){
			if(segundo<terceiro)
				System.out.println("crescente");
				else{
					if(primeiro>=segundo){
						if(segundo>terceiro)
							System.out.println("decrescente");
						else{
							System.out.println("desordenado");
					}	
				}
			}
		}
	}			
}

estou a ficar maluco me ajudem agora tenho o programa assim a parte crecente funciona a parde decresente e desordenada não printa nada

dmandrak

meninuuuuu:
import java.util.Scanner; public class crescedecresce { public static void main( String[] args ){ Scanner teclado = new Scanner(System.in); int primeiro; int segundo; int terceiro; int crescente=0; int decrescente=0; System.out.print("Indique um inteiro-->"); primeiro=teclado.nextInt(); System.out.print("Indique um inteiro-->"); segundo=teclado.nextInt(); System.out.print("Indique um inteiro-->"); terceiro=teclado.nextInt(); if(primeiro<=segundo){ if(segundo<terceiro) System.out.println("crescente"); else{ if(primeiro>=segundo){ if(segundo>terceiro) System.out.println("decrescente"); else{ System.out.println("desordenado"); } } } } } }
estou a ficar maluco me ajudem agora tenho o programa assim a parte crecente funciona a parde decresente e desordenada não printa nada

Cara, é óbvio!

Eu já te falei, ABRE E FECHA { } nos If de forma correta que vai funcionar!

Da maneira como você escreveu o ELSE é do segundo if e não do primeiro.

No fundo o que você está fazendo é testando se o primeiro é maior que o segundo, se o segundo é maior que o terceiro e SE NÃO FOR (no caso se o segundo é menor ou igual ao terceiro) vc TESTA DE NOVO se o primeiro é MENOR que o segundo! SEMPRE FALSO!!! obviamente.

Você tem que abrir e fechar { } no lugar certo para especificar para o programa de quem são os else.

import java.util.Scanner;
public class crescedecresce {
	public static void main( String[] args ){
	Scanner teclado = new Scanner(System.in);
	int primeiro;
	int segundo;
	int terceiro;
	int crescente=0;
	int decrescente=0;
		System.out.print("Indique um inteiro-->");
		primeiro=teclado.nextInt();
		System.out.print("Indique um inteiro-->");
		segundo=teclado.nextInt();
		System.out.print("Indique um inteiro-->");
		terceiro=teclado.nextInt();
		if(primeiro<=segundo){
			if(segundo<terceiro)
				System.out.println("crescente")
                }//TEM QUE FECHAR AQUI!!!!!!!!!!!!!!!!!!

			else{ // ESSE ELSE AGORA É DO PRIMEIRO IF!!!!!!!!!!!!!!!!!!! ANTES NÃO ERA
				if(primeiro>=segundo){ // DESNECESSÁRIO, PORQUE SE CAIU NO ELSE É PORQUE É MAIOR!!!!!!!!!!!
					if(segundo>terceiro)
						System.out.println("decrescente");
					else{
						System.out.println("desordenado");
			                }	
				}
		         }
		}
	}			
}

Ainda falta colocar o ‘decrescente’ nas condições do primeiro if.

Reiterando:

Nós provavelmente não vamos fazer o programa pra você :wink:

R

ou amigo não posta mais tópicos com nome “alguém me ajuda”
indique a sua duvida,vai ser melhor porque assim você
vai atrair muito mais pessoas para te darem bronca
do que para te ajudar . valeu
:smiley:

M

pessoal finalmente tenho tudo a funcionar
quanto o alguem me ajuda tambem nao volto a por titulo de topic assim
quando a forma como esta apresentado o programa o que posso mudar?
eu sou muito novo nisto nunca programei nada :S no meu curso tem 2 cadeira de java :S

dmandrak

meninuuuuu:
pessoal finalmente tenho tudo a funcionar
quanto o alguem me ajuda tambem nao volto a por titulo de topic assim
quando a forma como esta apresentado o programa o que posso mudar?
eu sou muito novo nisto nunca programei nada :S no meu curso tem 2 cadeira de java :S

Cara eu nunca tinha programado em Java e graças a estas leituras, hoje já faço um hello world abusadinho.

http://www.guj.com.br/artigos.jsp

Sirva-se.

Sobre o título, forma de postar e etc, eu não encontrei agora, mas nos meus primeiros tópicos alguém me mandou uns links sobre como postar aqui no GUJ. Como usar os Tags ali de cima e etc.

Se alguém souber onde tem esse artigo/tópico, manda pra esse rapaz ae.

Abraços.

Boa sorte com o Java, não é difícil não 8)

Criado 1 de outubro de 2008
Ultima resposta 1 de out. de 2008
Respostas 15
Participantes 6