Programa simples

10 respostas
M

Fala galera

Alguem podia me ajudar a fazer um programa simple para console. Ler um inteiro, um real e string. Vi o exemplo abaixo em um livro mais o copilador não reconhece o ‘Input’ tem alguma coisa errada com o programa ou à uma outra maneira de ler essas variaveis estaticamente.

agradeço a quem poder ajudar

//Programa simples que ler um inteiro, real e nome

public class simples {

public static void main (String args[]){

try {

    System.out.print("
Digite um n£mero inteiro: );

int i = Input.readInteger();

System.out.println(

Voe digitou o valor : " + i);
System.out.print("
Digite um n£mero real: );

float f = Input.readFloat();

System.out.println(

Voe digitou o valor : " + f);
System.out.print("
Digite um String: );

String s = Input.readString();

System.out.println(

Voe digitou o valor : " + s);

}

catch(Exception erro){

System.out.println("

Erro de leitura.");
}

}

}

:smiley:

T+

10 Respostas

F

Provavelmente faltou uma parte do seu exemplo que no caso seria a implementacao da classe “Input”. Por isso que dah erro de compilacao.

alterei o seu codigo para ele funcionar sem a necessidade da classe Input. Ai vc pode ver como se faz para tratar a entrada via console (atraves do System.in)

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Simples {
	
	public static void main (String args[]){ 

		try { 

			BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

			System.out.print("Digite um numero inteiro: ");			 
			int i = Integer.parseInt(input.readLine()); 
			System.out.println("Voce digitou o valor : " + i); 

			System.out.print("Digite um numero real: "); 
			float f = (float)Double.parseDouble(input.readLine()); 
			System.out.println("Voce digitou o valor : " + f); 

			System.out.print("Digite um String: ");
			String s = input.readLine(); 
			System.out.println("Voce digitou o valor : " + s); 
		} 
		catch(Exception erro){ 
			System.out.println("Erro de leitura."); 
		}	
		
	} 

}
F

haahhaa… agora q vi uma besteira que fiz… :stuck_out_tongue:

dah pra trocar a linha

float f = (float) Double.parseDouble(…);

por

float f = Float.parseFloat(…);

M

Obrigado pela ajuda FLC

M

:frowning:

Só mais uma coisa, se FLC poder me responder. da maneira como está as variáveis estão sendo lidas estaticamente ou não.

F

oi,

nao entendi direito o que vc quis dizer com “as variaveis estao sendo lidas estaticamente”… se vc puder explicar melhor sua duvida eu posso tentar ajudar! :wink:

M

Oi, FLC

espero que vc me perdoi por nao ter respondido antes pois por outros motivos, só posso usar o forum no fim de semana.

gostaria de entender melhor as linhas abaixo:

BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

Me corrija se estiver errado mais as linhas são um construtor e é instanciado (criado)
um objeto ’ input ’ certo, quer dizer que para ler um inteiro, um real e um string tenho que criar um objeto ao contrario do que em c .

U

precisar não precisa, você pode também ler byte a byte direto da stream System.in, mas o BufferedReader facilita o trabalho :slight_smile:

H
public class Console {

   public static String readLine() {

	 int ch;
     String r= "";
     boolean done= false;
     while (!done) {
	   try {
		 ch = System.in.read();
	     if (ch < 0 || (char)ch == '
')
	        done = true;
	      else if ((char)ch != '
')
	        r = r + (char) ch;
	   }
	   catch(java.io.IOException e){
		 done = true;
	   }
     }
     return r;
   }

   public static int readInt() {

	 while(true) {
	   try {
		 return Integer.valueOf(readLine().trim()).intValue();
	   }
	   catch(NumberFormatException e){
		 System.out.println("Not an	integer. Please	try again!");
	   }
     }
   }

}

Entrada/Saída
=============

1. Como faço para escrever uma string ou variavel na tela ?

System.out.println("Hello, World"); // escreve e salta de linha
System.out.print("Hello, World"); // escreve sem saltar de linha
System.out.println("x1= " + x1); // x1 é uma variável (de qualquer tipo básico)

2. Como faço para ler um inteiro ?

Utilize o método estático readInt() da classe Console:

int x;
x= Console.readInt(); // le um inteiro e armazena em x

Obs.: Gravar o arquivo Console.java no mesmo diretório do seu programa. Este
arquivo encontra-se no Learnloop. Assegurar-se que o C de Console é maiúsculo.

2. Como faço para ler um real ?

Leia uma string (pergunta 2 abaixo) e a converta para float (pergunta 7 da
seção Strings abaixo).

3. Como faço para ler uma string ?

Utilize o método estático readLine() da classe Console:

String s;
s= Console.readLine(); // le um inteiro e armazena em x

Obs.: Gravar o arquivo Console.java no mesmo diretório do seu programa. Este
arquivo encontra-se no Learnloop.

4. Como faço para chamar um getch(), um gotoXY() ou um clrscr() em Java ?

Em C++, todas estas funções pertencem à biblioteca conio (console IO), a qual existe
apenas nos compiladores da Borland. Esta biblioteca utiliza interrupções próprias
do DOS para implementar suas rotinas. Assim, a fim de garantir a construção
de aplicações portáveis entre sistemas operacionais, Java não possui um pacote
similar. No entanto, especificamente a função getch() pode ser simulada pelo método
readLine() da classe Console citada na resposta acima.

Vetores
=======

1. Como faço para declarar um vetor ?

int a [];

Obs.: Vetores em Java são objetos, isto é, antes de usar um vetor
deve-se alocar memória para o mesmo, da seguinte forma:

a= new int [100];

2. Como faço para simultaneamente declarar e definir (alocar memória)
para um vetor ?

int a []= new int [100];

3. Como faço para indexar um vetor ?

a [0] = 10;

3. Como faço para declarar e definir uma matriz ?

int m [][]= new int [5][6];
m [0][0] = 10;

Strings
=======

1. Como faço para indexar uma string ?

String s;
char c= s.charAt (i);

Obs.: O primeiro elemento da string tem índice 0, isto é, 0 <= i <= (s.length - 1)

2. Como faço para testar se duas strings são iguais ?

String s1, s2;
if (s1.equals (s2))
.......

3. Como faço para saber o tamanho de uma string ?

int tam= s1.length();

4. Como faço para obter uma substring de uma string maior ?

String s1= s2.substring (5,12); // substring de indices 5 a 12 (exclusivo) de s2

5. Como faço para converte uma string para char ? Ou melhor, como faço para converter
um determinado caracter de uma string para char ?

char c= s.charAt(i); // converte o i-esimo caracter da string s para char

6. Como faço para converter uma string para inteiro ?

String s= "10";
int i= Integer.parseInt (s);

7. Como faço para converter uma string para float?

String s= "3.14";
float x= Float.parseFloat(s)

8. Como faço para converter um inteiro ou float para string ?

String s1= Float.toString (f);
String s2= Integer.toString (i);

9. Como faço para concatenar duas strings ?

String s1= s2 + "teste" + s3;
int i = 10;
String s2= "Teste " + i;

10. Como faço para verificar se uma string "s1" começa com um certo prefixo ?

boolean b= s1.startsWith ("while");

Orientação por Objetos
======================

1. Como faço para declarar uma classe ?

class A {

// atributos

private int x; // deve-se informar antes de cada atributo
public float y; // se ele private, public ou protected

// construtora

public A(int x1, int y1) { // deve-se informar na declaracao de cada método
// se ele private, public ou protected
.....
.... // implementacao de metodos ocorre sempre dentro da própria classe
}

// outros métodos da classe

} // fim da classe

2. Como faço para declarar uma subclasse ?

class B extends A { // B é uma subclasse de A
......
}

3. Como faço para declarar uma classe abstrata ?

abstract class A { // A é uma classe abstrata
.....
public abstract f (int p); // f é um método abstrato de A (sem
// implementação)
}

Obs.: Veja que a palavra reservada abstract deve constar tanto da declaração da
classe como de seu método abstrato

4. Como faço para declarar um atributo estático ?

class A {
public static float saldoMinimo= 1000;
private static int max= 10;
.........
}

5. Como faço para acessar um atributo estático ?

s= A.saldoMinimo + 150.0;

6. Como faço para declarar um método estático ?

class A {
public static float seno (float x) {
.........
}
}

7. Como faço para chamar um método estático

float x= A.seno(90);

Interface Gráfica
=================

1. Como faço para desabilitar o gerenciador de layout ?

Setar a propriedade "layout" do frame para "null"

2. Como faço para ler o texto de um JTextField ?

String s= jTextField1.getText ();

3. Como faço para setar o texto de um JTextField ?

jTextField1.setText (s);

4. Como faço para acrescentar uma linha em um JTextArea (memo) ?

jTextArea.append (s1);
jTextArea.append (s1 + "
"); // com salto de linha

5. Como faço para limpar um JTextArea ?

jTextArea.setText ("");

6. Como faço para abrir uma janela para entrada de dados ?

String s= JOptionPane.showInputDialog ("mensagem");

Este comando abrira uma janela com um TextField, um label "mensagem" e
um botao de "OK". A string lida no TextField é então retornada ao se
pressionar "OK".

7. Como faço para abrir uma janela com uma mensagem ?

JOptionPane.showMessageDialog (this, "mensagem");

Este comando deve ser chamado dentro de um metodo de uma classe derivada
de Frame.

Classes do pacote java.util
---------------------------

1. Como faço para usar uma hashtable ?

A classe java.util.Hashtable é um dicionário que mapeia strings para
um objeto (mais precisamente para um Object).

Exemplo:

import java.util.Hashtable; // importa classe

Hashtable memoria= new Hashtable(); // cria Hashtable

// mapeia a string "soma" com o "object" Float de valor 0
memoria.put("soma", new Float(0));

// mapeia a string "total" com o "object" Float de valor 5.15
memoria.put("total", new Float(5.15));

// retorna o object Float associado à string "soma"
Float fsoma = (Float) memoria.get("soma");

// extrai o valor primitivo float armazenado no objeto Float
float soma= fsoma.floatValue();

esse eh um pequeno tutorial de java que to mandando ae pra galera

I

Completando o urubatan,o armazenamento em buffer(buffering) otimiza o desempenho de E/S do seu programa pois joga os dados p/uma região da memória(Q é muito mais rápida q o disco),jogando os dados p/ um dispositivo de saída/entrada quando este mesmo(buffer) se enche,ou seja,vc bufferiza a E/S de seus dados por questões de performance,pois as operações físicas(gravar,anexar,ler de arquivo)são muito mais lentas do q a velocidade de um processador e a leitura de dados da memória! :wink:

Hempx,blz de mini tutorial hein? :slight_smile:

M

:smiley:

Acho que é por isso que este é o melhor forum da net, agradeço a todos pelas dicas :lol:

mandou bem Hempx

Criado 25 de outubro de 2003
Ultima resposta 1 de nov. de 2003
Respostas 10
Participantes 5