#2 gna
díky
Příspěvky odeslané z IP adresy 178.255.168.–
zdravím všechny,
jen bych se chtěl zeptat jak vytvořit pole které bude mít náhodou velikost. Zkoušel jsem něco jako tohle , ale to samozřejmě nefunguje.
Random rd = new Random();
int[] array = new int [rd];
díky za rady
#1 Petr
Potřeboval bych s tím celkově poradit protože jsem teprve začátečník a tak by se hodila jakákoliv pomoc
já jsem si to předvytvořil takto
package com.simplilearn.projektmaven;
import java.io.*;
import java.util.Random;
import java.util.Scanner;
import java.util.Arrays;
import java.util.ArrayList;
public class App
{
public static void main( String[] args ){
vygenerovani();
}
public static void vygenerovani() {
Scanner JmenoScanneru = new Scanner(System.in);
System.out.println( "Vyberte prosim" );
System.out.println( "1: rucni vytvoreni pole" );
System.out.println( "2: nahodne vygenerovat pole" );
int a = JmenoScanneru.nextInt();
if (a == 1) {
Scanner sc = new Scanner (System.in);
//vygenerovani podle uzivatele
System.out.println("zadej velikost pole");
int velikost = sc.nextInt();
int[] mojepole = new int [velikost];
for(int i=0; i<mojepole.length; i++) {
System.out.print("zadej cislo do pole");
mojepole[i]= sc.nextInt();
}
//vypis podle
System.out.println("zadane pole je");
for(int poleElement :mojepole) {
System.out.print(poleElement + ", ");
}
}
if (a == 2) {
int [] mojepole = new int [15];
Random rd = new Random();
/* generovani nahodnych prvku do pole */
for(int i =0; i <mojepole.length; i++) {
mojepole [i] = rd.nextInt(1000);
}
/*vypis prvku v poli */
for(int i =0; i <mojepole.length; i++) {
System.out.print(mojepole[i]+ ", ");
}
}
menu();
}
public static void menu() {
Scanner moznost = new Scanner(System.in);
System.out.println("\nVyberte prosim jednu moznost");
System.out.println("1:Vytisteni pole");
System.out.println("2:Vyhledani nejvetsiho a nejmensiho cisla");
System.out.println("3:Odstraneni cisla z pole");
System.out.println("4:Pridani cisla do pole");
System.out.println("5:Smazani celeho pole");
int b = moznost.nextInt();
if(b==1) {
vygenerovani();
}
if(b==2) {
vyhledani();
}
if(b==3) {
odstraneni();
}
if(b==4) {
pridani();
}
if(b==5) {
smazani();
}
}
public static void vyhledani() {
Scanner scanner = new Scanner(System.in);
System.out.println("Program hleda maximalni a minimalni hodnotu ze zadanych cisel.");
System.out.print("Zadejte pocet cisel: ");
int n = scanner.nextInt();
int cislo;
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
for (int i = 1; i <= n; i++) {
System.out.print("Zadejte cele " + i + ". cislo: ");
cislo = scanner.nextInt();
if (cislo > max) {
max = cislo;
}
if (cislo < min) {
min = cislo;
}
}
System.out.println("Minimum je " + min);
System.out.println("Maximum je " + max);
}
public static void odstraneni() {
int[] mojepole = new int[]{1,2,3,4,5};
int[] mojepole_new = new int[mojepole.length-1];
int j=3;
for(int i=0, k=0;i<mojepole.length;i++){
if(mojepole[i]!=j){
mojepole_new[k]=mojepole[i];
k++;
}
}
System.out.println("Before deletion :" + Arrays.toString(mojepole));
System.out.println("After deletion :" + Arrays.toString(mojepole_new));
}
public static void pridani() {
// vytvoreni pole
ArrayList<String> mojepole = new ArrayList<>();
// pridani do listu
mojepole.add("15");
mojepole.add("10");
mojepole.add("20");
System.out.println("cisla jsou " + mojepole);
}
public static void smazani() {
// vytvoreni pole
ArrayList<String> mojepole = new ArrayList<>();
// pridani do listu
mojepole.add("50");
mojepole.add("60");
mojepole.add("70");
System.out.println("cisla v poli jsou " + mojepole);
// odstraneni
mojepole.removeAll(mojepole);
System.out.println("odstraneni celeho pole:" + mojepole);
}
}
všechny ty části by měli fungovat samostatně ale nedaří se mi je propojit tak aby to bylo jen jedno pole a já nemusel vytvářet další pro ostatní úkoly
opravdu jakákoliv pomoc je vítána už jsem moc zoufalý. :(
Uvítací vstupní obrazovka a výpis pole
Systém při zapnutí přivítá uživatele a nabídne mu dvě možnosti, jak vytvořit pole. Jedna je ruční (uživatel zadá čísla oddělená čárkou a zadávání ukončí enterem). Velikost pole je dynamická. Druhá možnost je nechat systém, ať sám vytvoří náhodně velké pole a naplní ho náhodnými čísly. Po vytvoření pole, ať již jedním či druhým způsobem nabídne uživateli následující možnosti (viz body 2-6)
1 Vytištění pole
Systém projde pole a vytiskne na obrazovce všechny čísla v poli. Čísla jsou oddělena mezerou. Uživatel je následně vrácen zpět do menu, kde může dále pracovat s polem.
2 Vyhledání největšího a nejmenšího čísla
Systém po zadání této volby uživatelem projde pole a najde největší a nejmenší číslo. Uživatel je následně vrácen zpět do menu, kde může dále pracovat s polem.
3 Odstranění čísla z pole
Systém si od uživatele vyžádá číslo, které je nutné z pole odstranit. Systém projde pole a pokud v něm je číslo více než 1x, tak sdělí uživateli počet čísel, které v poli našel a zeptá se ho zdali chce odstranit všechny čísla, nebo první číslo, které takto našel, popřípadě zdali chce akci zrušit. Odstranění čísla se provede tak, že se vytvoří nové pole, do kterého se původní pole převede, avšak bez tohoto odstraněného čísla. Nové pole bude mít tedy velikost n-m, kde n je velikost původního pole a m je počet prvků, které se odstraňují. Uživatel je následně vrácen zpět do menu, kde může dále pracovat s polem.
4 Přidání čísla do pole
Systém si od uživatele vyžádá číslo k odstranění a informaci o pozici na, kterou chce číslo vložit. Následně systém přidá toto číslo do pole. Nové pole bude mít tedy velikost n+1, kde n je počet prvků v poli před provedením operace přidání. Uživatel je následně vrácen zpět do menu, kde může dále pracovat s polem.
5 Smazání celého pole
Systém si od uživatele vyžádá potvrzení, že chce opravdu smazat celé pole. V případě potvrzení smaže celé pole.