Anonymní profil Lupajz – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Lupajz – Programujte.comAnonymní profil Lupajz – Programujte.com

 

Příspěvky odeslané z IP adresy 78.99.198.–

Lupajz
Java › duplicita v poli
26. 1. 2013   #170715

#1 muska
Pardon, moc už Javu neviem :P ale snáď pomôžem : 

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javaapplication1;
//JavaApplication1

/**
 *
 * @author Lupajz
 */
import java.util.*;

public class JavaApplication1 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Random gnc = new Random();
        int[] a;
        int[] d;
        int n, i, c;
        int odpoved;
        int p = 0;
        boolean jeVPoli;
        

        do {
            do {
                System.out.print("Zadej pocet prvku pole:");
                n = sc.nextInt();
                if (n <= 0) {
                    System.out.println("Zadej cislo vetsi nez nula!");
                }
            } while (n <= 0);

            a = new int[n];
            i = 0;
            
            do{
            

                c = gnc.nextInt(n+5);
                
                //System.out.print(c+" ");
                jeVPoli = metoda(a, c);
                if(jeVPoli != false){
                    a[i] = c;
                    p++;
                    i++;
                    System.out.print(c + " ");
                }
                
                }while(i != (n) );
            System.out.println("Cyklus probehl" + " " + p + " " + "krat.");

            System.out.println("Pokud chces opakovat vypocet zadej 1, jinou klavesnici skoncis program:-):");
            odpoved = sc.nextInt();
        } while (odpoved == 1);
    }
//***********************************************************************************
    public static boolean metoda(int[] pole, int x) {//logicka metoda
        boolean test = true;
        int i;

        for (i = 0; i < pole.length; i++) {
            if (pole[i] == x) {
                test = false;
         
            }
            
        
        }
        return test;
    }
}

Možno som slepý ale nikde som si nevšimol duplicitu : 

Zadej pocet prvku pole:5
7 6 8 4 9 Cyklus probehl 5 krat.
Pokud chces opakovat vypocet zadej 1, jinou klavesnici skoncis program:-):
1
Zadej pocet prvku pole:10
2 14 3 13 4 9 6 7 1 5 Cyklus probehl 15 krat.
Pokud chces opakovat vypocet zadej 1, jinou klavesnici skoncis program:-):
1
Zadej pocet prvku pole:20
10 4 13 14 11 15 16 21 20 23 24 19 22 3 12 18 2 8 7 1 Cyklus probehl 35 krat.
Pokud chces opakovat vypocet zadej 1, jinou klavesnici skoncis program:-):
Lupajz
Java › duplicita v poli
26. 1. 2013   #170714

#3 muska


Ale je ti jasné že ten random tam máš potom zlý :P kedže sa pýtaš koľko prvkov generovať a dávaš random len (1-19). Toto skús urobiť aspoň ako od (1 - (pocetGenerovanychPrvkov +10)) alebo niečo také. Ja ten Math.random() osobne nemám rád :P Ja radšej objekt triedy Random :) a potom int hodnotu vyvolám ako c = generator.nextInt(); <- príklad.     

To c by som najprv nikam neukladal, prebehol by som pole a ak už vygenerované číslo v poli je tak by som len pokračoval cyklom. A ak v poli nie je, až potom by som ho tam uložil :) Tam by sa hodil nejaký if.

Lupajz
Java › duplicita v poli
26. 1. 2013   #170693

Aká duplicita ? 

Ja tam žiadne väčšie súvislosti nevidím :P 

Zadej pocet prvku pole:20
13 5 17 8 15 16 10 6 3 7 18 5 10 2 14 13 10 17 13 3 Cyklus probehl 20 krat.
Pokud chces opakovat vypocet zadej 1, jinou klavesnici skoncis program:-):
1
Zadej pocet prvku pole:50
19 14 10 8 4 5 10 5 7 3 6 8 10 17 13 13 16 4 18 2 15 2 20 7 9 11 2 17 4 11 5 15 3 8 9 15 15 14 3 10 13 18 20 14 6 4 16 16 9 17 Cyklus probehl 70 krat.
Pokud chces opakovat vypocet zadej 1, jinou klavesnici skoncis program:-)

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý