B11

package sk.upjs.paz.cvicenie11;

import java.util.Collections;
import java.util.List;

//Vytvorte program, ktorý z konzoly bude načítavať čísla dovtedy, kým používateľ nezadá zápornú hodnotu.
//Program potom vypíše utriedený zoznam zadaných čísel, ktoré sú menšie než priemerná hodnota zadaných čísel.

public class ListHandler {

        // vstup - cisla v konzole
        // vystup - zoznam cisel
        public List<Integer> nacitajZKonzoly() {
                // scanner - System.in ako parameter
                // vyrobime zoznam

                // while(hasNextInt())
                        // nacitam next int
                        // ak je nacitane cislo zaporne tak break
                        // ulozit do zoznamu

                // vratit zoznam
                return null;
        }

        // vstup - zoznam cisel
        // vystup - zoznam cisel
        public List<Integer> podpriemer(List<Integer> cisla) {
                // vyratat priemer

                // urobit novy zoznam
                // for (odporucam for-each) - cyklus cez vsetky cisla v zozname
                        // ak je cislo mensie ako priemer tak ulozime do noveho zoznamu
                //Collections.sort(zoznam);
                // vratit novy zoznam
                return null;
        }
        // 2 18 1 10 100 50 3    40 ... 1 2 3 10 18 50 100 - ak chcete mozete vyskusat najprv utriedit zoznam a potom for.


        public static void main(String[] args) {
                ListHandler franklin = new ListHandler();
                // nemam nic, iba pristup ku konzole
                List<Integer> vsetkyCisla = franklin.nacitajZKonzoly();
                // uz mam nacitane cisla
                List<Integer> vyslednyPodzoznam = franklin.podpriemer(vsetkyCisla);
                // mam nejaky podzoznam
                System.out.println(vyslednyPodzoznam);
                // mam vypisany vysledok


        }

        // otestovat - co sa stane ak pri nacitani nedam int ale napr. string
                // hypoteza - zastavi sa program ale bude fungovat korektne

}
package sk.upjs.paz.cvicenie11;

import java.util.*;

// VERZIA S MAP
public class SpolocnePrednasky {

        public static void main(String[] args) {
                // mam subor File

                // vyrobim mapu Map<String, Integer>

                // pocetStudentov=0
                // while cyklom citam riadky
                        // pocetStudentov++
                        // precitam jeden riadok - a metodou split dostaneme pole stringov

                        // mam String[] - prejdem for cyklom
                                // mam String - jednu skratku prednasky
                                // toLowerCase alebo toUpperCase

                                // ideme to pridat do mapy
                                        // mapa.contains(string)
                                        // ak to v mape este nie je - mapa.put(kluc, hodnota), kluc=string, hodnota=1
                                        // ak to v mape uz je - PAZ1a 2x -> PAZ1a 3x
                                        // mapa.get(string) - vrati hodnotu, mapa.put(kluc, hodnota) - prepise to predosly zaznam
                                        // mapa.put(string, mapa.get(string) + 1)


                // chcem vypisat vysledok do konzoly

                // v cykle (for-each, mapa.keySet)
                        // mam kluc, hodnotu viem pomocou mapa.get(kluc)
                        // ak hodnota == pocetStudentov tak vypisem kluc

        }

}

B1

package sk.paz1a.practicals.Project11;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

//Vytvorte program, ktorý z konzoly bude načítavať čísla dovtedy, kým používateľ nezadá zápornú hodnotu.
//Program potom vypíše utriedený zoznam zadaných čísel, ktoré sú menšie než priemerná hodnota zadaných čísel.

public class ListHandler {

        // vstup - cisla v konzole
        // vystup - zoznam cisel
        public List<Integer> nacitajZKonzoly() {
                // scanner - System.in ako parameter
                Scanner sc = new Scanner(System.in);
                // vyrobime zoznam
                List<Integer> cisla = new ArrayList<Integer>();
                // while(hasNextInt())
                while (sc.hasNextInt()) {
                        int a = sc.nextInt();
                        if (a < 0) {
                                break;
                        } else {
                                cisla.add(a);
                        }
                }
                sc.close();
                // nacitam next int
                // ak je nacitane cislo zaporne tak break
                // ulozit do zoznamu

                // vratit zoznam
                return cisla;
        }

        // vstup - zoznam cisel
        // vystup - zoznam cisel
        public List<Integer> podpriemer(List<Integer> cisla) {
                // vyratat priemer
                int average = 0;
                for (int i = 0; i < cisla.size(); i++) {
                        average += cisla.get(i);

                }
                average = average/cisla.size();
                // urobit novy zoznam
                List<Integer> noveCisla = new ArrayList<Integer>();
                // for (odporucam for-each) - cyklus cez vsetky cisla v zozname
                for(int value : cisla) {
                        if (value<=average){
                                noveCisla.add(value);
                        }
                }
                // ak je cislo mensie ako priemer tak ulozime do noveho zoznamu
                // Collections.sort(zoznam);
                // vratit novy zoznam
                Collections.sort(noveCisla);
                return noveCisla;
        }
        // 2 18 1 10 100 50 3 40 ... 1 2 3 10 18 50 100 - ak chcete mozete vyskusat
        // najprv utriedit zoznam a potom for.


        public static void main(String[] args) {
                ListHandler franklin = new ListHandler();
                // nemam nic, iba pristup ku konzole
                List<Integer> vsetkyCisla = franklin.nacitajZKonzoly();
                // uz mam nacitane cisla
                List<Integer> vyslednyPodzoznam = franklin.podpriemer(vsetkyCisla);
                // mam nejaky podzoznam
                System.out.println(vyslednyPodzoznam);
                // mam vypisany vysledok

        }

        // otestovat - co sa stane ak pri nacitani nedam int ale napr. string
        // hypoteza - zastavi sa program ale bude fungovat korektne

}
package sk.paz1a.practicals.Project11;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

//VERZIA S MAP
public class SpolocnePrednasky {

        public static void main(String[] args) {
                // mam subor File
                File subor = new File("predmety.txt");

                try (Scanner sc = new Scanner(subor)) {
                        int pocetStudentov = 0;
                        // vyrobim mapu Map<String, Integer>
                        Map<String, Integer> predmety = new HashMap<String, Integer>();

                        // while cyklom citam riadky
                        while (sc.hasNextLine()) {
                                pocetStudentov++;
                                String[] riadok = sc.nextLine().split(" ");
                                for (int i = 0; i < riadok.length; i++) {
                                        riadok[i] = riadok[i].toLowerCase();
                                        if (predmety.containsKey(riadok[i])) {
                                                predmety.put(riadok[i], predmety.get(riadok[i])+1);
                                        } else {
                                                predmety.put(riadok[i], 1);
                                        }

                                }
                        }

                        // pocetStudentov++
                        // precitam jeden riadok - a metodou split dostaneme pole stringov

                        // mam String[] - prejdem for cyklom
                        // mam String - jednu skratku prednasky
                        // toLowerCase alebo toUpperCase

                        // ideme to pridat do mapy
                        // mapa.contains(string)
                        // ak to v mape este nie je - mapa.put(kluc, hodnota), kluc=string, hodnota=1
                        // ak to v mape uz je - PAZ1a 2x -> PAZ1a 3x
                        // mapa.get(string) - vrati hodnotu, mapa.put(kluc, hodnota) - prepise to
                        // predosly zaznam
                        // mapa.put(string, mapa.get(string) + 1)

                        // chcem vypisat vysledok do konzoly
                        for (String predmet : predmety.keySet()) {
                                if (predmety.get(predmet) == pocetStudentov) {
                                        System.out.println(predmet);
                                }
                        }
                }catch(FileNotFoundException e) {

                }
                // v cykle (for-each, mapa.keySet)
                // mam kluc, hodnotu viem pomocou mapa.get(kluc)
                // ak hodnota == pocetStudentov tak vypisem kluc

        }

}

B2

package b.task11;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

//Vytvorte program, ktorý z konzoly bude načítavať čísla dovtedy, kým používateľ nezadá zápornú hodnotu.
//Program potom vypíše utriedený zoznam zadaných čísel, ktoré sú menšie než priemerná hodnota zadaných čísel.

public class ListHandler {

        // vstup - cisla v konzole
        // vystup - zoznam cisel
        public List<Integer> nacitajZKonzoly() {
                // scanner - System.in ako parameter
                // vyrobime zoznam
                Scanner sc = new Scanner(System.in);
                List<Integer> zoznam = new ArrayList<Integer>();

                while (sc.hasNextInt()) {
                        int a = sc.nextInt();
                        if (a < 0) {
                                break;
                        }
                        zoznam.add(a);

                }

                return zoznam;
        }

        // vstup - zoznam cisel
        // vystup - zoznam cisel

        public List<Integer> podpriemer(List<Integer> cisla) {

                double priemer = 0;
                int count = cisla.size();
                for (int integer : cisla) {
                        priemer = priemer + integer;
                }
                priemer = priemer / count;
                List<Integer> zoznam = new ArrayList<Integer>();

                for (Integer i : cisla) {
                        if(i < priemer) {
                                zoznam.add(i);
                        }


                }
                Collections.sort(zoznam);


                return zoznam;
        }
        // 2 18 1 10 100 50 3 40 ... 1 2 3 10 18 50 100 - ak chcete mozete vyskusat
        // najprv utriedit zoznam a potom for.

        public static void main(String[] args) {
                ListHandler franklin = new ListHandler();

                List<Integer> vsetkyCisla = franklin.nacitajZKonzoly();
                System.out.println(vsetkyCisla);
                // uz mam nacitane cisla
                List<Integer> vyslednyPodzoznam = franklin.podpriemer(vsetkyCisla);
                // mam nejaky podzoznam
                System.out.println(vyslednyPodzoznam);
                // mam vypisany vysledok

        }

        // otestovat - co sa stane ak pri nacitani nedam int ale napr. string
        // hypoteza - zastavi sa program ale bude fungovat korektne

}
package b.task11;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;

// VERZIA S MAP
public class SpolocnePrednasky {

        public static void main(String[] args) {

                File subor = new File("string.txt");

                try {
                        Scanner sc = new Scanner(subor);
                        Map<String, Integer> mapa = new HashMap<>();

                        int pocetStudentov = 0;

                        while (sc.hasNextLine()) {
                                pocetStudentov++;

                                String riadok = new String();
                                riadok = sc.nextLine();

                                String[] pole = riadok.split(" ");

                                for (int i = 0; i < pole.length; i++) {
                                        pole[i] = pole[i].toUpperCase();
                                        if (mapa.containsKey(pole[i])) {
                                                mapa.put(pole[i], mapa.get(pole[i]) + 1);

                                        } else {
                                                mapa.put(pole[i], 1);
                                        }
                                }

                        }

                        for (String kluc : mapa.keySet()) {

                                if (pocetStudentov == mapa.get(kluc)) {
                                        System.out.println(kluc);
                                }

                        }

                } catch (FileNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }

                // while cyklom citam riadky
                // pocetStudentov++
                // precitam jeden riadok - a metodou split dostaneme pole stringov

                // mam String[] - prejdem for cyklom
                // mam String - jednu skratku prednasky
                // toLowerCase alebo toUpperCase

                // ideme to pridat do mapy
                // mapa.contains(string)
                // ak to v mape este nie je - mapa.put(kluc, hodnota), kluc=string, hodnota=1
                // ak to v mape uz je - PAZ1a 2x -> PAZ1a 3x
                // mapa.get(string) - vrati hodnotu, mapa.put(kluc, hodnota) - prepise to
                // predosly zaznam
                // mapa.put(string, mapa.get(string) + 1)

                // chcem vypisat vysledok do konzoly

                // v cykle (for-each, mapa.keySet)
                // mam kluc, hodnotu viem pomocou mapa.get(kluc)
                // ak hodnota == pocetStudentov tak vypisem kluc

        }

}