• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

anjo88

Programa para simular numeros e estrelas euromilhões

7 mensagens neste tópico

Boa tarde estou aqui com alguns problemas com o desafio que o meu setor lançou  :wallbash:

Até agora tenho conseguido me desenrrascar sozinho mas neste momento tenho aqui algo que não estou a conseguir controlar porque atribuo numeros aleatórios e eles repetem-se estou a tentar fazer com que não se repitam consegui fazer com que as estrelas n se repitam pq só tenho de controlar dois numeros agora na chave é mais diicil  :wallbash:

aqui fica o codigo se puderem ajudar

import javax.swing.*;
class euroalunos{



public static void main (String args []){
	double Aleat;
	double Aleat1;
	String [] aluno= new String[20];{
		int x=0,y=0,w=0,z=0;
		int var1,var2,var3;
		int[] var= new int[20];
		int[] var4= new int[8];
		while (x<20)
		{
			aluno[x]=JOptionPane.showInputDialog("Introduza o nome "+(x+1));
			System.out.println("O nome inserido foi:"+ aluno[x]);
			x++;
		}
		for(z=0;z<8;z++)
		{
			var4[z]= (int) (Math.random() *8)+1;
			do
			{
			var4[z+1]= (int) (Math.random() *8)+1;
			System.out.println(var4[z+1]);	
			}
			while(var4[z+1]==var4[z]);
			z++;
		}	
		for(x=0;x<20;x++)
		{
			var[x]= (int) (Math.random() *49)+1;

			if(x%5==0)
			System.out.println("GRUPO "+(++y)+" estrelas "+var4[(x/5*2)]+" " + var4[(x/5*2+1)]);			
			System.out.println(aluno[x]+" "+var[x] );

		}




			var2=Integer.parseInt(JOptionPane.showInputDialog("Qual o numero da grelha que pretende ver?"));			

		x=(var2-1)*5;
		JOptionPane.showMessageDialog(null,(var[x])+" "+(var[x+1])+" "+(var[x+2])+" "+(var[x+3])+" "+(var[x+4]), "Informacao de grupos",JOptionPane.INFORMATION_MESSAGE);
		var3=Integer.parseInt(JOptionPane.showInputDialog("Qual o numero que pretende verefica se existe de 1 a 49 ?"));
	while(var3>49)

	var3=Integer.parseInt(JOptionPane.showInputDialog("Qual o numero que pretende verefica se existe de 1 a 49 ?"));

	for(x=0;x<20;x++)
	{
	if (var3==var[x]){
	w=1;
	x=20;
	JOptionPane.showMessageDialog(null,"existe", "Informacao de grupos",JOptionPane.INFORMATION_MESSAGE);
	}
	}
	if (w==0){
	JOptionPane.showMessageDialog(null,"não existe", "Informacao de grupos",JOptionPane.INFORMATION_MESSAGE);
	}
	}
	}
	} 

:lamo:

obrigado desde já algo mal no post digam? :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só um à parte... utiliza "["code"]" e "["/code"]" sempre que pretendes colocar código num post

Exemplo:

Parte do meu código vai ficar aqui

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Java é uma linguagem orientada a objectos.

Não é boa prática nem te ajuda em nada teres o código todo no método main.

Se organizares isso por classes com entidades bem definidas, fica mto mais fácil de implementar o q quer q seja.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas desde já obrigado pela dica do codigo :cheesygrin:

se podesses alongar essa parte de estar tudo em main e ajudar mais no sentido de me orientares agradecia e desculpa a ignorancia  :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

vou dar uma lida nisso entretando se alguem quiser dar ai uma dica de como fazer isso agradecia  :smoke:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que o grande problema é estares a iniciar variáveis mesmo "à pazada".

Alem disso, ao usares a mesma variável para vários fins, é bastante provável que fiquem valores pendurados.

Tenta modular isso. Por exemplo, as variáveis de controlo do for, só precisam de existir dentro do ciclo.

Em vez de

                      int z = 0
                      for(z=0;z<8;z++){
                                var4[z]= (int) (Math.random() *8)+1;
                                do
                                {
                                var4[z+1]= (int) (Math.random() *8)+1;
                                System.out.println(var4[z+1]); 
                                }
                                while(var4[z+1]==var4[z]);
                                z++;
                        }

Podes ter

                  for(int z =0; z <var4.length; z++){
		var4[z]= (int) (Math.random() *8)+1;
		do{
			var4[z+1]= (int) (Math.random() *8)+1;
			System.out.println(var4[z+1]); 
		}
		while(var4[z+1]==var4[z]);
		z++;
	}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora