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
- 1. gyakorlat
- 2. gyakorlat (Megoldás)
- 3. gyakorlat
- 4. gyakorlat (Megoldás)
- 5. gyakorlat (Megoldás)
- 6. gyakorlat
- 7. 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.