Práce s polem(odstraněni,pridani,vytisteni) – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Práce s polem(odstraněni,pridani,vytisteni) – Java – Fórum – Programujte.comPráce s polem(odstraněni,pridani,vytisteni) – Java – Fórum – Programujte.com

 

Petr
~ Anonymní uživatel
746 příspěvků
12. 1. 2023   #1
-
0
-

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.

Nahlásit jako SPAM
IP: 178.255.168.–
Petr
~ Anonymní uživatel
746 příspěvků
12. 1. 2023   #2
-
0
-

#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ý. :(

Nahlásit jako SPAM
IP: 178.255.168.–
13. 1. 2023   #3
-
0
-

1. Asi bych funkci menu nevnořoval do funkce vygenerovani. Myslím, že každé volání funkce vygenerovani pak povede k čím dál tím hlubší rekurzi až do vyčerpání systémových prostředků. U školní úlohy to nemusí být fatální, ale ...

2.S polem můžeš pracovat např. takto  https://www.javatpoint.com/how-to-return-an-array-in-java 

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

Podobná vlákna

Prace s polem — založil jp

Práce s polem — založil Serath

Práce s polem — založil k1

Moderátoři diskuze

 

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