Informatika4-2017

A MathWikiből
(Változatok közti eltérés)
7. sor: 7. sor:
 
* [[Informatika4-2017/Gyakorlat5|5. gyakorlat]] ([http://math.bme.hu/~kkovacs/info4/User_Comment.zip Megoldás])
 
* [[Informatika4-2017/Gyakorlat5|5. gyakorlat]] ([http://math.bme.hu/~kkovacs/info4/User_Comment.zip Megoldás])
 
* [[Informatika4-2017/Gyakorlat6|6. gyakorlat]]
 
* [[Informatika4-2017/Gyakorlat6|6. gyakorlat]]
 +
* [[Informatika4-2017/Gyakorlat7|7. gyakorlat]]
 +
 +
 +
== Bemelegítõ feladatok ==
 +
 +
Ezeket mind lehet csak egy '''main'''be írni, egy amúgy üres osztályba. Ezt ne felejtsétek az elejére írni minden file-nak:
 +
 +
<java>
 +
import java.util.*;
 +
</java>
 +
 +
=== ArrayList ===
 +
 +
* Készítsetek egy '''String'''eket tároló '''ArrayList'''et. Adjátok hozzá a következõ Stringeket:
 +
Java
 +
Unix
 +
Oracle
 +
C++
 +
Perl
 +
* Majd iterátorral járjátok be a listát és írjátok ki az elemeit külön sorokba (tehát a kimenet legyen az ami pont a fenti felsorolás).
 +
 +
* Töröljétek a C++ és Oracle elemeket. Majd írjátok ki mégegyszer a maradék listát.
 +
 +
* Kérdezzétek le, hogy hanyadik indexen található a Unix. Állítsátok ezt át '''Linux'''ra. Végül írjátok ki csak ezt a módosított elemet a '''get''' metódust használva.
 +
 +
=== HashSet ===
 +
 +
* '''HashSet''' segítségével határozzatok meg prímeket.
 +
 +
* Készítsetek egy '''int'''eket tároló '''HashSet'''et. Adjátok hozzá a számokat 2-tõl 100-ig. Valamint készítsetek mégegy '''HashSet'''et, amibe nem töltünk még elemeket.
 +
 +
* Kérjetek el egy iterátort és iteráljatok végig az elemeken. A cikluson belül kérjetek el egy újabb iterátort. Majd az így megírt belsõ cikluson belül vizsgáljátok, hogy a külsõben figyelt elem osztható-e a belsõ elemmel, ha igen és nem egyezik meg ezzel az elemmel, akkor rakjátok a második '''HashSet'''be.
 +
 +
* Amikor lefutott ez az egymásba ágyazott két ciklus, akkor a második '''HashSet'''ben megkaptuk az összetett számokat. Töröljétek ezeket az elsõ '''HashSet'''bõl. (Iteráljatok végig a 2.-on, és hívjátok meg a '''remove''' metódust az adott elemmel az elsõ '''HashSet'''en.)
 +
 +
* Gondolkozzatok el rajta hogyan lehetett volna ezt sokkal optimálisabban megoldani.
 +
 +
=== HashMap ===
 +
 +
* Készítsetek egy '''HashMap'''et, ami Stringekhez számokat tud hozzárendelni. Töltsétek ezt fel a következõ kulcs-érték párokkal:
 +
 +
one: 1
 +
two: 2
 +
three: 3
 +
four: 4
 +
five: 5
 +
 +
* Írjátok ki csak a kulcsokat, majd csak az értékeket. Végül a kulcs-érték párokat úgy ahogy fent is látszik. Ehhez segítség:
 +
 +
<java>
 +
Set<String> keys = hm.keySet();
 +
for(String key: keys){
 +
    System.out.println("Value of "+key+" is: "+hm.get(key));
 +
}
 +
</java>
 +
* hm itt egy '''HashMap'''.
 +
* Az elsõ sorban lekérjük a kulcsait tartalmazó halmazt.
 +
* Majd egy ciklussal végigiterálunk a kulcsokon. (Ez az a for ciklus amit elsõ elõadáson mutattam, C és C++ban nincs ilyen.)
 +
* A cikluson belül megy a kiírás.

A lap 2017. október 16., 08:19-kori változata

Tartalomjegyzék

Gyakorlat


Bemelegítõ feladatok

Ezeket mind lehet csak egy mainbe írni, egy amúgy üres osztályba. Ezt ne felejtsétek az elejére írni minden file-nak:

import java.util.*;

ArrayList

  • Készítsetek egy Stringeket tároló ArrayListet. Adjátok hozzá a következõ Stringeket:
Java
Unix
Oracle
C++
Perl
  • Majd iterátorral járjátok be a listát és írjátok ki az elemeit külön sorokba (tehát a kimenet legyen az ami pont a fenti felsorolás).
  • Töröljétek a C++ és Oracle elemeket. Majd írjátok ki mégegyszer a maradék listát.
  • Kérdezzétek le, hogy hanyadik indexen található a Unix. Állítsátok ezt át Linuxra. Végül írjátok ki csak ezt a módosított elemet a get metódust használva.

HashSet

  • HashSet segítségével határozzatok meg prímeket.
  • Készítsetek egy inteket tároló HashSetet. Adjátok hozzá a számokat 2-tõl 100-ig. Valamint készítsetek mégegy HashSetet, amibe nem töltünk még elemeket.
  • Kérjetek el egy iterátort és iteráljatok végig az elemeken. A cikluson belül kérjetek el egy újabb iterátort. Majd az így megírt belsõ cikluson belül vizsgáljátok, hogy a külsõben figyelt elem osztható-e a belsõ elemmel, ha igen és nem egyezik meg ezzel az elemmel, akkor rakjátok a második HashSetbe.
  • Amikor lefutott ez az egymásba ágyazott két ciklus, akkor a második HashSetben megkaptuk az összetett számokat. Töröljétek ezeket az elsõ HashSetbõl. (Iteráljatok végig a 2.-on, és hívjátok meg a remove metódust az adott elemmel az elsõ HashSeten.)
  • Gondolkozzatok el rajta hogyan lehetett volna ezt sokkal optimálisabban megoldani.

HashMap

  • Készítsetek egy HashMapet, ami Stringekhez számokat tud hozzárendelni. Töltsétek ezt fel a következõ kulcs-érték párokkal:
one: 1
two: 2
three: 3
four: 4
five: 5
  • Írjátok ki csak a kulcsokat, majd csak az értékeket. Végül a kulcs-érték párokat úgy ahogy fent is látszik. Ehhez segítség:
Set<String> keys = hm.keySet();
for(String key: keys){
    System.out.println("Value of "+key+" is: "+hm.get(key));
}
  • hm itt egy HashMap.
  • Az elsõ sorban lekérjük a kulcsait tartalmazó halmazt.
  • Majd egy ciklussal végigiterálunk a kulcsokon. (Ez az a for ciklus amit elsõ elõadáson mutattam, C és C++ban nincs ilyen.)
  • A cikluson belül megy a kiírás.
Személyes eszközök