lÓgica de programaÇÃo

8 respostas
F

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…

8 Respostas

C

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

C

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:

F

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

ATÉ +

Eduardo Feitosa

P

é 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…

F

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é +

R

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:

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( "" );

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.

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
M

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

A

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

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);
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
Criado 30 de dezembro de 2004
Ultima resposta 3 de jan. de 2005
Respostas 8
Participantes 7