lÓgica de programaÇÃo

OLA PESSOAL, É O MEU PRIMEIRO CONTATO NO FÓRUM, MAS JÁ VI O QUANTOS VC6 AJUDAM QUEM PRECISAM.

MINHA DÚVIDA ESTÁ RELACIONADO A LÓGICA DE PROGRAMAÇÃO, ACREDITE SE QUISER. POR EXEMPLO VC6 TERIA COMO ME AJUDAR A RESOLVER UM PROBLEMA DO TIPO: TENHO 500 NÚMEROS PARA LER E TENHO QUE SEPARAR QUAL É O MAIOR, MENOR E A MÉDIA E EXIBILOS.
POR FAVOR, ME AJUDEM!!!

Até mais…

Oi Feitosa, seja bem vindo ao [color=“blue”]Portal[/color] [color=“red”]Java[/color]!!!

Bem, sugiro que vc pegue umas apostilas sobre Lógica de Programação.

Clique aqui.

Estude um pouco e, continuando a dúvida, estamos aqui!

[]'s

Fla irmao!! tb gostaria de dar as boas vindas em nome da familia PJ!!

Aqui no PJ na secao de artigos e tutoriais tem um tutorial legal q trata de algoritmos em java!! Vale a pena da uma olhada!1

E dica pra vc fazer essa aplicacao q vc ta querendo!

Variaveis!!

maior, menor, media, soma, entrada;

estruturas d controle.

for e if

Da uma pensada ai e da uma lida na apostila q o reifel t falo e no tuto q eu te falei!!

Abracao e feliz ano novo!! :razz:

GALERA, MUITO OBRIGADO POR ENQUANTO!!! ESTUDAREI AMBAS APOSTILAS E QUANDO TIVER UMA IDÉIA LÓGICA RETORNAREI PARA APRESENTAR.

ATÉ +

Eduardo Feitosa

é necessário olhar primeiro as apostilas de lógica de programação e só depois começar a estudar alguma linguagem e tal…
senão fica perdido…

Pessoal, após fazer a leitura em alguns capitulos, tentei resolver um problema proposto: Escrever uma classse que, com um array de inteiros, com valores de 1a10, solicite ao usuário um número qualquer neste intervalo e localize este número dentro do array. Ex: leio o nº 8 e exibo: 1 2 3 4 5 6 7 8 9 10.

Solução:

public class Matriz {
public static void main (String arg[]) {
{
Matriz m = new Matriz() {
m.executa();
}
public void executa() {
int gaveta[]= {10};

 System.out.println("Informe um número entre 1 e 10: ");

int num = Integer.parseInt(args[10]);
      switch (num) {
        case1:
           System.out.println("*1*" "2 3 4 5 6 7 8 9 10" );
        break; 
        
    case2:
           System.out.println("1 "*2*" 3 4 5 6 7 8 9 10" );
        break;
			
        case3:
           System.out.println("1 2 "*3*" 4 5 6 7 8 9 10" );
        break;				
	
        case4:
           System.out.println("1 2 3 "*4*" 5 6 7 8 9 10" );
        break;
	
        case5:
           System.out.println("1 2 3 4 "*5*" 6 7 8 9 10" );
        break;
			
        case6:
           System.out.println("1 2 3 4 5 "*6*" 7 8 9 10" );
        break;
					
        case7:
           System.out.println("1 2 3 4 5 6 "*7*" 8 9 10" );
        break;			

}
}
}
}

Pessoal, por favor me auxiliem no que pode estar errado esse código? Pois no trampo não tenho como fazer esse teste e quero saber se a lógica pelo menos funcionou…

até +

O teu esquema de testar número por número (com switch) até funciona, mas imagina se forem 100, 200 números. No código abaixo eu criei uma matriz com os 10 números e utilizei uma caixa de texto para que o usuário possa informar o número desejado.

A linha txtEntrada.addActionListener( handler ); declara um ouvinte que vai tratar os eventos gerados na caixa de texto (quando o cara digita um número e pressiona enter).

Preste atenção no seguinte bloco:

[code]for ( cont = 0; cont < matriz.length; cont++ )
{
if ( matriz[ cont ] == Integer.parseInt( event.getActionCommand() ) )
valor += " " + matriz[ cont ] + " ";
else
valor += matriz[ cont ] + " ";
}

		txtSaida.setText( valor );
		txtEntrada.setText( "" );[/code]

Aí eu fiz um For que vai de 0 (que é o primeiro valor da matriz) até matriz.length (ou o comprimento, número de itens, da matriz) comparando cada valor da matriz com o número informado pelo usuário. Se for igual, eu incluo os asteriscos e adiciono o valor na variável valor; se for diferente, eu simplesmente adiciono o valor na variável.

Dê uma olhada e escreva aí o que não entender.

[code]import java.awt.;
import java.awt.event.
;
import javax.swing.*;

public class TesteMatriz extends JFrame
{

private JLabel label;
private JTextField txtEntrada, txtSaida;
private int matriz[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
private String texto, valor = "";
private int cont;

// Construtor - Configura a GUI
public TesteMatriz()
{

	super( "Buscando Número" );
	
	Container container = getContentPane();
	container.setLayout( new FlowLayout() );
	
	label = new JLabel( "Número inteiro (1 a 10): " );
	container.add( label );
	txtEntrada = new JTextField( 5 );
	container.add( txtEntrada );
	txtSaida = new JTextField( "", 20 );
	txtSaida.setEditable( false );
	container.add( txtSaida );
	
	MatrizHandler handler = new MatrizHandler();
	txtEntrada.addActionListener( handler );
	
	setSize( 300, 90 );
	setVisible( true );

} // fim do construtor

public static void main( String args[] )
{

	TesteMatriz application = new TesteMatriz();
	application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

} // fim do método main

private class MatrizHandler implements ActionListener
{

	public void actionPerformed( ActionEvent event )
	{
					
		for ( cont = 0; cont < matriz.length; cont++ )
		{
			if ( matriz[ cont ] == Integer.parseInt( event.getActionCommand() ) )
				valor += " *" + matriz[ cont ] + "* ";
			else
				valor += matriz[ cont ] + " ";
		}
		
		txtSaida.setText( valor );
		txtEntrada.setText( "" );
	
	} // fim do método actionPerformed

} // fim da classe interna MatrizHandler

} // fim da classe TesteMatriz[/code]

ae :slight_smile:
primeiramente, va atras da logica de programaçao
e estruturaçao de dados, sua duvida felizmente nem eh tao dificil de resolver
existem varios metodos para organizar um vetor como vc esta tentando

o mais rapido e eficiente deles chama-se quick sort
provavelmente você ira achar algo com pascal
mas nada muito complicado
[]s

Blz… Tentando ajudar com o primeiro problema: Como é uma qtde grande de números a serem lidos, é mais fácil fazer a leitura através de um .txt e dividir em tokens cada um. Pra achar a média é só fazer o somatório dos tokens e descobrir qtos tokens existem, daí tu divide… Agora, o problema é achar o maior e o menor número… Conheço o método maximum e minimum, mas é lascado usar isso pra quantias muito grandes… eles funcionam assim (exemplozinho):

[code]double numero1 = Double.parseDouble(JOptionPane.showInputDialog(“Número 1”));
double numero2 = Double.parseDouble(JOptionPane.showInputDialog("Número "));
double numero3 = Double.parseDouble(JOptionPane.showInputDialog(“Número 3”));

double maximo = Math.max(numero1, numero2, numero3);[/code]
o mesmo vale para o min e vale lembrar que esse método tb funciona para float, int e long.
Ainda tô começando, portanto acho que essa ajuda não é grande coisa