Klasszikus programozás Java nyelven

Hasonló dokumentumok
Klasszikus programozás Java nyelven

OOP: Java 1.Gy: Java alapok

Az emelt szintű. informatika érettségi. programozási feladatainak. megoldása Java nyelven. NetBeans IDE 8.1 környezetben

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Í ú Ö ź ő ő ľ ľ ő Ö ľ ő ý ó ü ů ľ ú ń ö ů ű ö ó ź ü ź ó ő ľ ľ ő ź ń ź ő ő ö ó ő ľ ö đ ď ú ś ő ó ź óĺ Í ď ó ľ ö ő ő đ ö ę ó ö ű ź ź ó ľ ľő ľ ő ó ö ő ő

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

A C# programozási nyelv alapjai

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

Klasszikus programozás Java nyelven

Informatika terméktervezőknek

Ü É ú Ü É ú ú ú É ú ú Ü Ü Ü Ü Ü ĺ ú ú ú Á ú ĺ ú ĺ ú ĺ ú ú ú ĺ Á ű ú ű ű ű ű ú ĺ ú ú ú ú ű Ü ú

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Java Programozás 1. Gy: Java alapok. Ismétlés ++

Äł Á Ŕ. ÁáÔ. ęôá. ą Á

1. Jelölje meg az összes igaz állítást a következők közül!

ľ ź ó ź ľ ľ ď ľ ú ó ľ ö đ ü ú ü ľ ú đ ź ľ Ĺ ű ľ ľ ó Ĺ ľ ó ľ ö Ł ź ú ö ó ľ ö ö đ ú ö ö ó ľ đ Ĺ ź ó ľ ľ ö ó ľ ó ó ó ź ú ű Ĺ ó ö ú ü ď ó ľ ľ ó ó ľ ľ ó ó

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Klasszikus programozás Java nyelven

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

ľ ő ö ö ü ö ü ö ő ö ó ľ ó ő ő ő ö ő ó ź ő ü ę ű ö ő ő ő ö ę ź ü ő ö ó ó ľ ľ ü ú ö đ Ą ő ő ő ľü ľ ę ó ö ő ő ü ó ó ó ő ő ő ľ ź ó ľ ęľ ő ľ ó Ü É ü ó ő ľ

Kalapácsvetés 2016 szöveges

é é ö ö ö ó é ü ű é í é ĺ ó ü ó ú ü ú é ú é ó ů é é í é ó ü ó é ú í í í é Í ĺ ĺ ó ü ó ű ó é ó é í é é é ú ó í é é ó ó ó í í é é é Ĺ é é é í é É Í É ü

é í ź ü ź é ę í é ő ő é ö ü ő é ü é í é é é ö ű ö é ő é ö ó ó é é é ę é ö é ę é ź é é Í ź ö ó Á ó ź é é Í é ö é ó ó ó ő ź ó ź ź é é ó é ű ü í ó í ő ź

Ĺ ĺ Í ť Ż ú ĺ ü Ü ĺ ĺ ú Ö ü Ü Ż ö ĺ ü ü đ ü Ż ĺ ĺí ü ú Ö ü Ü Š ĺ ĺĺ ę

1. Egyszerű (primitív) típusok. 2. Referencia típusok

A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például: 3. feladat:)!

Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól.

PROGRAMOZÁS ALAPFELADATOK

ö ö ú ö í Ĺ ö ź Í ö í ö ö í ö ę ö ö ö ů đ Ö ź đ Á öö ź í ú ź ń ź ú źú í ö ú ű ú ö ź ź ł í ö ď ö í í ö í Ĺ Í ź í í ű ű ö í Í

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Java II. I A Java programozási nyelv alapelemei

Bevezetés a programozásba I.

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

í ó ń ó É í ő ő ü ő Í ź ą ó ź đő ź ü ó íń ú í ö ö í ü ő ď ü ę ó ó ę ő ď ú ü ú ź ó í ő ó í í ó ö ö ö ö ű ę ó ź ä í ó ó ó ő ő ó ó ó ú ü Ó ű ź ö ź í ú í

Programozási nyelvek JAVA EA+GY 1. gyakolat


BME MOGI Gépészeti informatika 1.

ö ö í ń ü ö í í ĺ í đ ü í ű í ö ú ĺ í ź ö í í ö đ ĺ ę ü ö ĺ ö ü ö ź ö ö ü ö É Á Á ä ö ĺ ú í ö í í ń ź ö í ź ú Ĺ ö ę ü ű í ö ę ĺ ĺ ć ź ö ź í ú ź ü Í ü

ę í ó ő ö ú ź ő ő ő í ü Í ő ő ł ó ö ú Á ó í ę ę ę ö ó ę ę ę ľ í í ő ö ő ó ü ő í ó ó ö ó ó ó ő ü ő ź ó ü ľ ő ő ó ü ő ä ź ő Í ó ö ö ó ý ľ ü ü ó ó ó ó ó

ö ĺ Í ö Í ü ź ö ź đ Ĺ ź ö ń ü ńę ź ń ź ĺ ü ĺ ü ú ö ö ö ö ĺ Í Ĺ ú ĺ ĺ ö ď ü ĺ ö ü ö ö ö ź ĺ ö ĺ ĺĺ ö ö ö ü ű ö ö ű ź ü ö ű ű ú ű ö ü ĺ ű ö đ ü ö ö

Felvételi tematika INFORMATIKA

1. sz. melléklet a 150/2016. (II.22.) sz. VPB határozat 1. melléklete

ü Ĺ ý í í í ű ü ę ę ę Í ĺ ö ć ö í ľĺ ö í ö Ĺ źĺ í ö í źú ú ľ ü Ĺ ę í ú ć í ü í ü ü í ľ ź ĺłę í ľü í ľü í ę ę ü ü ĺ ü ý ĺ í ź ĺ ľ ü ľ ú ö ń í ö ü ľ ľ ü

í ü ź ź í Ĺ ü ź í ü ľ ź ľ Ĺ ź ű ź ź ľ źń ź ę í ü ę ü ľ ü ľ ú ęľü ľ ľ í ľ ę ľ í ľ ľ źń ď ź ľ ľü ľ í ľü ę źú źú í ľ ľ í ľ ľü í í ü í đ í ľ ľ ľ ę ź ľ ű ź

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

Programozás alapjai. 5. előadás

Java gyakorlat feladatai e s megolda sai ( )

Java II. I A Java programozási nyelv alapelemei


ő í ű ó ö ö ö Ü ü Ü ű ó ö ü Ü Ü ó ó ö ő ó ö ű ó Ü ő ő ó ó ó ó ő ó Á Á Á Á ó ó í ö ű ű í ó í í ó í ó ö ó ö ü ő ó ö ö ö ű ű ű ö ö ó ö ő Ü ö í ű ö ő í ő

ú Í ű ů ý ź ú ę ź ź ź ú ú ź źą ú ź ź ü ü ź ź ę Ĺ ź ü Ĺ ź ź ü ę ę ę ź ú ź źů ú ű ź


ü ü ý ź ú ń Ĺ ź ź ü ü ď Ĺ ü ü É źú ü ź ü łá ł ú ů ú ü ú ź

Ü Ĺ Ü ű ü ü ű Ü ü Ü ű ú Ĺ ü ü Ü ű ü ű Ü ű ü ü ć ú ú ü ű Ü

Ż ö ö ą ź ĺ ą Łź ü ü Í ü ü ö ö ö ą ü ö ź ĺ ź Í ĺ ĺ ź ú ü Ü ö ĺ ö ĺ Í ú Ö Ü źę ü ö ö ö ĺ ú Ö ü Ü ĺ Í ź ź Ü Ż Ü ł

í Í ĺ ě ú ď ĺ Ĺĺ ö ö ö ü ĺ ż ö Ĺ ö ę Ó ź í đ í í ü ä ű ö ď ű ö í í ź ö í ö ź ź í Ĺ ĺ ú ĺ í ü ĺ ť ĺ ź ö ĺ ö ĺ ĺ ö ü ö ö ö ĺ ý Ü ú ĺ ö š ü źńź ź ł ü ĺ ö

Ż ü ú ę ü Ż Ö ĺ ö Ż ű ú ö ü ú ü Ż ö ü ĺ ü ö ö ę ö ů ę ź ĺí ĺ ł

Szoftvertervezés és -fejlesztés I.

ľá ł Á ü ú ö ľ ľ ł ľ Ü í Á

A C# PROGRAMOZÁSI NYELV

4. Gy: JAVA osztályok

đ ź ú ź ď ű í ó đ í ź í ę í ó ú ď ó ę í ú ó ű ö ó ź í ó í í í ó ó ó ę ü ę ó ü ó ö ůó ó ó í íí đ ó ü ü ö ó ö ú đ ó ö ý ö ó ü í ó ř ó ó ó ö í ę ď í đ ü

í ę í źú í í í ú í ú í ź í Í Á Á ź ź źą ń ű ń ń Ĺ ź í źą í Ú ź ń ń đ đ ę í

ü ľ ľ ŕ ü ú ö í ü ľ ü ő ľ ő ź ő ü Ö ź ó ó ó ó ľ ľ ź ő ó í ó ó ö ő ľ ü ľ ó ő ľ ő ľ ő ó ź ő ő ö ź ź ő ź ź Ü öľ ő ö ö ó ő É ľ Á Á Ü Í ľ É Ü É Á ľ ó ľ ą ľ

Gyakorló feladatok Gyakorló feladatok

ü ú ö í ü ü ű ü ö ú í í ű Ĺ í ö ü ö ű ü í í í ü ú í ö ĺ í ö ű ĺ í í ü ü íĺ ö ü Í ď ť Ą

10. gyakorlat Tömb, mint függvény argumentum

é ú ű ü é é é é ű ű ö é ö ö ö ú é é ü ü é é é í ź ź ĺ ö ö é é é ź í ź ö ö é ú ł ĺ é ű é é í ź ą é í í é é é ł é ö é í é é ú í í é é é é é é ú é ö í é

ö í é ö í é ü ö ü ő ü ó é ő ü ű ú ö ű é ü Ö ö ö ö ö é é é ü é ő é í é ü Í ó é ť é ü ó ú é ő í é ü ű ö é ö ő é ź ő í ü é é é é ő ü é ő í Ż ű é ó í é é

OOP: Java 8.Gy: Gyakorlás

Webprogramozás szakkör

ź ń ú ö ö ó ó í ó ť ü ö ö ź ó í ź í í ü ö ü ö ó ę ü í í í ó ü ü ó Í ö í í í ö í ű ü ó ü í í Á Á É Á ó Ł í ü í ű ö í í ź źú ü ű ö ö ö ó öĺ ö ö í ó Í ö


C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

ú ĺ Ż ó ö ó ü ĺ ó ó ó Ö ó ĺ ó ü ó ó ó ó ó ó ü đ ú Ö ď ö ö É ł ö ź ó ó ú ö ó ó ü Ę Ö ö ö ö ü ű ö ó ę ó ö Ę ó ą ł ć Ę Í ą ł ĺ ĺ ó ĺ ĺ ĺ ł

Ö ó ó Íć óľ ä ü ü

ő ú ő ő ő ú đ ő ź ő ú ő ő ľ ú ő ú ő ľ ľ ő ő Ą ő Ę ú ú ü ő ł ő ö ü ą ö ö ź ü ö ź ö ö ő Ĺ ľ ő ö ľ ä ő ľ ľ ő ö ź ö ú ő ľ ú ö ź ú ő ź źúź ö Í Ü ő ő ő ź Í

ľ í ö ĺ ń Ąą ű í í Ą í đö ü ú í ľ ľ ű ű ö ö źľ Í ö ď ü ű ö í ľ ý í í ľ ź ü ď ľ ú ů ĺ í ö í í ö í í ú ö ö í źń ľ ľ Í í ú ö í ö ź ź í í ö ö ź ö ö í ö ý

Bevezetés a programozásba I.

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

ú ö ó ö ű ü ö ő ő ó ó ö ő ź ő ö ö ő ö ö Á ő ö ö ó ü ö ö ö Ö ü ó ő ó ó ó ő ó ó ö ú ü ü ü ö ö ü ú ő ć ó ö ú ú ó ő ü ź ú ó ź ű őđ ź ő ó đ ő ü ő ö ő ö ö ö

ú ö ő ö ő ź í ő ö ő ą ö ő đö ź ő í ö ő ö í ö Á É Í ö Ą Í ł É Ü É ł Á łů łá É ł ł ł ő Á ą Á Á Đ Á Ü łá

ź í ű á ó á á ó đ Ĺ ź ó í ü í á ü á ű ö á á á á á ö ö ě Í Ĺ í á á ź ź ö á í á á á á ó á ü ó ö Ĺ á ó ź á ü ź á á ź ź á á á á ö ó á á ó í á ö ü á ź ź á

ö É É Ö É Ő É ü ŕŕ ő ő ő í í ü í ú ü ö É É É É Ő É É Ő É É É É ő ö í ď

Programozás alapjai 9.Gy: Struktúra 2.

ö ö ź ű ö ö ö ź ź ö ö ü í ĺ ö ź ö ö ö ľ źú ź ü ö ü ö ö ź ľ ľ ľ í íĺ í ü ľ ü í ü ľ ö ľ ľ í ź í ľ ö ľ ľ ľ ľ í ö ýú í ľ í ű ö ź ź ź í í ź Ü Ü í ľ ĺ ź ü ö

Programozás alapjai 5. gyakorlat Vezérlési szerkezetek egymásba ágyazása

ŕŕ ż ě Ż ŕ í Á ä Ý ý ż Í ż ż ż Ż ľ ĺ ő ľ ő í ĺ ő ü ü ő í ó í ü ľ ö ó ö ľ ü ő í í Ą ő ő ó ú ó ĺ ý í ĺ ö ó ö ó ü ő ü Ú ľ ó đ ĺ ö Í ó Ĺ ö ő ĺ ó ý ű ő đ É

í ő ó ű ö ő ü ó ó ő ó ó ü ő ű ő ó ü ű ű ó í ű ü ó í ó í ő ő ű ó ó ő ö ő ő ő ü ö ő ü É ľ ľéľ ł ő ó ó ó ö ó ő ő í ó ő ő í ó ö ő ő ö ó ó ó ó ú ő ő í ő í

Ä ź ü ľ źí ľ đ ľ ľ ľ ľ ź ź ľ ľ ľ ľ ź ź ę ź É ź

íí ł ű Ę ą Í ł í í Á ŕ ü Ö Ö Ö í í ę ź í í

Objektum Orientált Programozás VII.

ű ö Đ ĺ Ö ń ĺ Ąź ö ź ö ę Á ö í ĺ ö Í ö í ý ĺ í ĺí í đ ę ű í ö ĺ ö í Ĺ ĺ ű ö ö źĺ í í ź ĺ ĺ đ í ĺĺ ú ü ö í ú ű ű ĺ ö ĺ ö í ź ü ű ź ú ű íĺ í íĺ ö ĺí ĺí

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Gyakorló feladatok az 1. nagy zárthelyire

ú ľ ľ ú ľ ő ú ő ľ ü ľ ö ľ Í ľ öľ Á ő ő ö ľ ľ ú ü ö ö ú ö ü ľ ű ö ő ľ ö í ő č ő ľ ö í ľ ľ Ĺ í ö ř Ĺ ö ö ő ö ľ ö ä ľ í í ö ő ő í ä ü ľ ľ ľ ü ő ü ö ö í ä

í ő ő ó ü Ż ľ ľ ú ĺ Ö ő ü ľ ü ľ ó í ľó ú Ö ľ ü ü ź ő ő ľ ľ ó í ö ó ó ö ü ö ö ö ľ ő ó ö ľ ľ ő ó ö ľ ő ľ ő ü ó ú Ö ő ó Ĺ í Ĺ ľ Ö ľ Ż Ĺ ó í ü ľ Í ľ ĺ ľ ő

ő ĺ ü ü ľ ü ľ ő ő ő ľ ź ľ ű ü ľ ľü ľ ľ ľ ü ľ ő ľ ľő ő ľ ő ľ ő ľ ő ő Ż Í ľ ľ ő ü ľ ęľ Ż ľ ĺ ľ ü ľ Ö Í ý ĺ ĺ ł ĺ

BME MOGI Gépészeti informatika 4.

Átírás:

Klasszikus programozás Java nyelven I. Bevezető gyakorlatok Eclipse 4.6.1 (Neon.1) Klement András 2016 Utolsó módosítás: 2016. november 27.

JAVA középfokon Bevezető gyakorlatok Tartalomjegyzék 1. Algoritmikus alapszerkezetek: ciklusok, elágazások... 3 2. Adatszerkezetek: egész és valós szám, karakter, szöveg, tömb és tömblista... 11 3. Beolvasás, kiírás: képernyő és szöveges fájl... 23 4. Elemi algoritmusok: összegzés, eldöntés, keresés, megszámolás, maximum-kiválasztás és kiválogatás... 35 5. Rendezések: Egyszerű cserés-, minimum-kiválasztásos-, buborékos- és beillesztéses rendezés... 42 6. Rendezés két szempont szerint: két- ill. egy lépésben... 51 7. A leghosszabb adott tulajdonságú részsorozat keresése: prímsorozat véletlen sorozatban... 58 8. Ismétlődés nélküli véletlen sorozat előállítása: lottóhúzás... 61 9. Statisztikai minta gyakorisági táblázata: érték szerinti indexeléssel, ill. tömblistával... 65 10. Számelméleti feladatok: euklidészi algoritmus, prímfelbontás, osztók száma... 70 11. Rekurzió: Fibonacci-sorozat, zárójelezés érvényessége... 81 12. Verselemzés: Üllői-úti fák... 85 Folytatás: Klasszikus programozás Java nyelven II. Az emelt szintű informatika érettségi programozási feladatainak megoldása... 100 Klement András 2.oldal 2016

1. Algoritmikus alapszerkezetek Ciklusok, elágazások 1. Algoritmikus alapszerkezetek: ciklusok, elágazások /** * Algoritmikus alapszerkezetek: ciklusok, elágazások * * @author Klemand */ public class BevGyak01 { public static void main(string[] args) { // main + CTRL space System.out.println("1. Egyszerű számlálós ciklus \n"); // Kiíratás a képernyőre: sysout + CTRL space // Plusz sortörés beszúrása: \n int i; int n; int ri; double rd; // Számlálós ciklus: kezdőérték, bennmaradási feltétel, léptetés for (i = 1; i <= 12; i++) { // A ciklusmag kezdete: { n = i * i; ri = 1 / i; rd = (double) 1 / i; // Típuskényszerítés System.out.println("i = " + i + ", a négyzete: " + n + ", egész reciproka: " + ri + ", valós reciproka: " + rd); // A ciklusmag vége: // Automatikus formázás: Shift CTRL F vonal(); // Eljáráshívás System.out.println("2. Az előző ciklus formázással \n"); // A változókat nem kell újra deklarálni for (i = 1; i <= 12; i++) { n = i * i; ri = 1 / i; rd = (double) 1 / i; System.out.printf("i = %2d", i); // Szélesség megadása System.out.printf(", a négyzete: %3d", n); // A print és printf nem emel sort System.out.printf(",\t egész reciproka: %2d", ri); // Tabulátor beszúrása: \t System.out.printf(", valós reciproka: %.4f", rd); // Tizedesjegyek számának megadása vonal(); Klement András 3.oldal 2016

1. Algoritmikus alapszerkezetek Ciklusok, elágazások System.out.println("3. Egymásba ágyazott számlálós ciklus \n"); int j; for (i = 1; i <= 14; i++) { // Külső ciklus: 14 sor System.out.printf("i = %2d", i); System.out.print(": xxxxxx----------------------------------------"); // Ez minden sorban kiíratódik for (j = 1; j <= i; j++) { // Az i-edik sorban plusz i db + kiíratása a belső ciklussal System.out.print("+"); for (i = 13; i >= 1; i--) { // 13 sor System.out.printf("i = %2d", i); System.out.print(": xxxxxx----------------------------------------"); for (j = 1; j <= i; j++) { System.out.print("+"); vonal(); System.out.println("4. Elöltesztelő ciklus számlálóval \n"); System.out.println("Addig iratjuk ki a szögek szinuszát, amíg az érték nem nő 0,5 fölé \n"); i = 0; // A számláló kezdőértékének megadása while (Math.sin((double) Math.toRadians(i)) <= 0.5) { // Belépési feltétel megadása System.out.printf("sin(" + i + " fok) = %.4f", Math.sin((double) Math.toRadians(i))); i++; // A számláló értékét a ciklusmagban kell módosítani, különben // végtelen ciklus jön létre! vonal(); System.out.println("5. Elöltesztelő ciklus számláló nélkül \n"); System.out.println("Addig lépünk be a ciklusba, amíg az előállított véletlenszám nagyobb 0,5-nél \n"); double v; while ((v = Math.random()) > 0.5) { // Belépési feltétel megadása System.out.printf("%.6f", v); // Lehet, hogy egyszer sem lép be vonal(); Klement András 4.oldal 2016

1. Algoritmikus alapszerkezetek Ciklusok, elágazások System.out.println("6. Elöltesztelő ciklus függvényhívással \n"); // Bonyolultabb feltétel esetén célszerű a függvényhívás System.out.println("Addig lépünk be a ciklusba, amíg legalább 4-est dobunk \n"); int k; while ((k = kockadobas()) >= 4) { // Belépési feltétel megadása System.out.println(k); vonal(); System.out.println("7. Hátultesztelő ciklus \n"); // Egyszer mindenképpen végrehajtódik System.out.println("Addig próbálkozunk, amíg hatost nem sikerül dobnunk \n"); do { k = kockadobas(); System.out.println(k); while (k < 6); vonal(); System.out.println("8. Feltételes utasítás \n"); k = kockadobas(); System.out.println("A dobásod: " + k); if (k == 6) { System.out.println("Gratulálok! Szerencsés ember vagy."); vonal(); System.out.println("9. Kétirányú elágazás \n"); k = kockadobas(); System.out.println("A dobásod: " + k); if (k == 6) { System.out.println("Ne bízd el magad! Egyszer fenn, máskor lenn."); else { System.out.println("Ne csüggedj! A szerencse forgandó."); vonal(); System.out.println("10. Egymásba ágyazott elágazások \n"); k = kockadobas(); System.out.println("A dobásod: " + k); if (k == 6) { System.out.println("Bravó! Csakis a maximummal légy elégedett!"); else if (k == 4 k == 5) { // "vagy" feltétel megadása System.out.println("Nem rossz!"); System.out.println("Csak " + (6 - k) + " hiányzott!"); else if (k < 4 && k % 2 == 1) { // "és" feltétel megadása, ill. osztási maradék meghatározása System.out.println("Kicsi, de legalább páratlan!"); else { System.out.println("Ez igen! Az egyetlen páros prímszámot sikerült dobnod!"); vonal(); Klement András 5.oldal 2016

1. Algoritmikus alapszerkezetek Ciklusok, elágazások System.out.println("11. Többirányú elágazás \n"); k = kockadobas(); System.out.println("A dobásod: " + k); switch (k) { case 6: { System.out.println("Mondd csak, nem csalsz?"); break; case 4: { System.out.println("Ez éppen annyi, mint 26/6, nézd csak: " + 26 / 6); break; case 1: { System.out.println("Szerencsére ez most nem osztályzat!"); break; default: System.out.println("Nagyszerű! Prímszámot dobtál."); vonal(); System.out.println("12. Rajzoljunk! \n"); for (i = 1; i <= 10; i++) { for (j = 1; j <= 39; j++) { if (j == 20 - (i - 1) j == 20 + (i - 1)) { System.out.print("*"); else { System.out.print(" "); for (i = 11; i <= 20; i++) { for (j = 1; j <= 39; j++) { if (j == 20 - (i - 1) j == 20 + (i - 1)) { System.out.print("*"); else if (j == 20-2 * (i - 11) j == 20 + 2 * (i - 11)) { System.out.print("+"); else { System.out.print(" "); vonal(); Klement András 6.oldal 2016

1. Algoritmikus alapszerkezetek Ciklusok, elágazások // Eljárások, függvények a fő metódus után public static void vonal() { // Eljárás: void típusú System.out.println("\n==================================================================================== \n"); public static int kockadobas() { // Függvény: a visszaadott érték típusának megadásával int dobas = (int) (Math.random() * 6 + 1); // Típuskényszerítés return dobas; // A visszaadott érték Klement András 7.oldal 2016

1. Algoritmikus alapszerkezetek Ciklusok, elágazások 1. Egyszerű számlálós ciklus i = 1, a négyzete: 1, egész reciproka: 1, valós reciproka: 1.0 i = 2, a négyzete: 4, egész reciproka: 0, valós reciproka: 0.5 i = 3, a négyzete: 9, egész reciproka: 0, valós reciproka: 0.3333333333333333 i = 4, a négyzete: 16, egész reciproka: 0, valós reciproka: 0.25 i = 5, a négyzete: 25, egész reciproka: 0, valós reciproka: 0.2 i = 6, a négyzete: 36, egész reciproka: 0, valós reciproka: 0.16666666666666666 i = 7, a négyzete: 49, egész reciproka: 0, valós reciproka: 0.14285714285714285 i = 8, a négyzete: 64, egész reciproka: 0, valós reciproka: 0.125 i = 9, a négyzete: 81, egész reciproka: 0, valós reciproka: 0.1111111111111111 i = 10, a négyzete: 100, egész reciproka: 0, valós reciproka: 0.1 i = 11, a négyzete: 121, egész reciproka: 0, valós reciproka: 0.09090909090909091 i = 12, a négyzete: 144, egész reciproka: 0, valós reciproka: 0.08333333333333333 ==================================================================================== 2. Az előző ciklus formázással i = 1, a négyzete: 1, egész reciproka: 1, valós reciproka: 1,0000 i = 2, a négyzete: 4, egész reciproka: 0, valós reciproka: 0,5000 i = 3, a négyzete: 9, egész reciproka: 0, valós reciproka: 0,3333 i = 4, a négyzete: 16, egész reciproka: 0, valós reciproka: 0,2500 i = 5, a négyzete: 25, egész reciproka: 0, valós reciproka: 0,2000 i = 6, a négyzete: 36, egész reciproka: 0, valós reciproka: 0,1667 i = 7, a négyzete: 49, egész reciproka: 0, valós reciproka: 0,1429 i = 8, a négyzete: 64, egész reciproka: 0, valós reciproka: 0,1250 i = 9, a négyzete: 81, egész reciproka: 0, valós reciproka: 0,1111 i = 10, a négyzete: 100, egész reciproka: 0, valós reciproka: 0,1000 i = 11, a négyzete: 121, egész reciproka: 0, valós reciproka: 0,0909 i = 12, a négyzete: 144, egész reciproka: 0, valós reciproka: 0,0833 ==================================================================================== 3. Egymásba ágyazott számlálós ciklus i = 1: xxxxxx----------------------------------------+ i = 2: xxxxxx----------------------------------------++ i = 3: xxxxxx----------------------------------------+++ i = 4: xxxxxx----------------------------------------++++ i = 5: xxxxxx----------------------------------------+++++ i = 6: xxxxxx----------------------------------------++++++ i = 7: xxxxxx----------------------------------------+++++++ i = 8: xxxxxx----------------------------------------++++++++ i = 9: xxxxxx----------------------------------------+++++++++ i = 10: xxxxxx----------------------------------------++++++++++ i = 11: xxxxxx----------------------------------------+++++++++++ i = 12: xxxxxx----------------------------------------++++++++++++ i = 13: xxxxxx----------------------------------------+++++++++++++ i = 14: xxxxxx----------------------------------------++++++++++++++ i = 13: xxxxxx----------------------------------------+++++++++++++ i = 12: xxxxxx----------------------------------------++++++++++++ i = 11: xxxxxx----------------------------------------+++++++++++ i = 10: xxxxxx----------------------------------------++++++++++ i = 9: xxxxxx----------------------------------------+++++++++ i = 8: xxxxxx----------------------------------------++++++++ i = 7: xxxxxx----------------------------------------+++++++ i = 6: xxxxxx----------------------------------------++++++ i = 5: xxxxxx----------------------------------------+++++ i = 4: xxxxxx----------------------------------------++++ i = 3: xxxxxx----------------------------------------+++ i = 2: xxxxxx----------------------------------------++ i = 1: xxxxxx----------------------------------------+ ==================================================================================== Klement András 8.oldal 2016

1. Algoritmikus alapszerkezetek Ciklusok, elágazások 4. Elöltesztelő ciklus számlálóval Addig iratjuk ki a szögek szinuszát, amíg az érték nem nő 0,5 fölé sin(0 fok) = 0,0000 sin(1 fok) = 0,0175 sin(2 fok) = 0,0349 sin(3 fok) = 0,0523 sin(4 fok) = 0,0698 sin(5 fok) = 0,0872 sin(6 fok) = 0,1045 sin(7 fok) = 0,1219 sin(8 fok) = 0,1392 sin(9 fok) = 0,1564 sin(10 fok) = 0,1736 sin(11 fok) = 0,1908 sin(12 fok) = 0,2079 sin(13 fok) = 0,2250 sin(14 fok) = 0,2419 sin(15 fok) = 0,2588 sin(16 fok) = 0,2756 sin(17 fok) = 0,2924 sin(18 fok) = 0,3090 sin(19 fok) = 0,3256 sin(20 fok) = 0,3420 sin(21 fok) = 0,3584 sin(22 fok) = 0,3746 sin(23 fok) = 0,3907 sin(24 fok) = 0,4067 sin(25 fok) = 0,4226 sin(26 fok) = 0,4384 sin(27 fok) = 0,4540 sin(28 fok) = 0,4695 sin(29 fok) = 0,4848 sin(30 fok) = 0,5000 ==================================================================================== 5. Elöltesztelő ciklus számláló nélkül Addig lépünk be a ciklusba, amíg az előállított véletlenszám nagyobb 0,5-nél 0,641596 0,629606 0,955027 ==================================================================================== 6. Elöltesztelő ciklus függvényhívással Addig lépünk be a ciklusba, amíg legalább 4-est dobunk ==================================================================================== 7. Hátultesztelő ciklus Addig próbálkozunk, amíg hatost nem sikerül dobnunk 4 3 3 1 5 6 ==================================================================================== Klement András 9.oldal 2016

1. Algoritmikus alapszerkezetek Ciklusok, elágazások 8. Feltételes utasítás A dobásod: 4 ==================================================================================== 9. Kétirányú elágazás A dobásod: 5 Ne csüggedj! A szerencse forgandó. ==================================================================================== 10. Egymásba ágyazott elágazások A dobásod: 4 Nem rossz! Csak 2 hiányzott! ==================================================================================== 11. Többirányú elágazás A dobásod: 1 Szerencsére ez most nem osztályzat! ==================================================================================== 12. Rajzoljunk! * * * * * * * * * * * * * * * * * * * * + * * + + * * + + * * + + * * + + * * + + * * + + * * + + * * + + * *+ +* ==================================================================================== Klement András 10.oldal 2016

2. Adatszerkezetek Egész és valós szám, karakter, szöveg, tömb és tömblista 2. Adatszerkezetek: egész és valós szám, karakter, szöveg, tömb és tömblista import java.util.arraylist; /** * Adatszerkezetek: egész és valós szám, karakter, szöveg, tömb és tömblista * * @author Klemand */ public class BevGyak02 { public static void main(string[] args) { System.out.println("1. Egész számok \n ============"); System.out.println("Két 1 és 100 közötti véletlen egész szám előállítása: "); int m = veletlenegesz(); // Egész típusú szám (32 bites) deklarálása értékadással int n = veletlenegesz(); int max = Math.max(m, n); int min = Math.min(m, n); m = min; n = max; System.out.println("A nagyobb egész szám: " + n + ", a kisebb pedig: " + m); System.out.println("Összegük: " + n + " + " + m + " = " + (n + m)); System.out.println("Szorzatuk: " + n + " * " + m + " = " + n * m); System.out.println("Egész osztásuk eredménye: " + n + " / " + m + " = " + n / m); System.out.println("Maradékos osztásuk eredménye: " + n + " % " + m + " = " + n % m); System.out.print("Valós osztásuk eredménye 4 tizedesjegyre kerekítve: " + n + " / " + m + " = "); System.out.printf("%.4f \n", (double) n / m); // típuskényszerítés long fakt; // Hosszú egész típusú szám (64 bites) deklarálása értékadás nélkül fakt = 1; int i; for (i = 1; i <= 20; i++) { fakt = fakt * i; System.out.println("20! = " + fakt); System.out.println("Figyelni kell a túlcsordulásra!"); fakt = 1; for (i = 1; i <= 21; i++) { fakt = fakt * i; System.out.println("21! = " + fakt); System.out.println("2. Valós számok \n ============"); System.out.println("Két 0 és 100 közötti véletlen valós szám előállítása: "); double u = veletlenvalos(); // Dupla pontosságú valós típusú szám (64 bites) deklarálása double v = veletlenvalos(); System.out.printf("Az első valós szám 6 tizedes pontossággal: u = %.6f", u); System.out.printf(", a második pedig: v = %.6f", v); Klement András 11.oldal 2016

2. Adatszerkezetek Egész és valós szám, karakter, szöveg, tömb és tömblista System.out.printf("Összegük: %.6f", u); System.out.printf(" + %.6f", v); System.out.printf(" = %.6f \n", (u + v)); // Összeadásnál kötelező a zárójel! System.out.printf("Szorzatuk 3 tizedesjeggyel: %.3f", u); System.out.printf(" * %.3f", v); System.out.printf(" = %.3f \n", u * v); System.out.printf("Különbségük abszolút értéke 2 tizedesjeggyel: %.2f", u); System.out.printf(" - %.2f", v); System.out.printf(" = %.2f \n", Math.abs(u - v)); System.out.println("Egész osztásuk eredménye kerekítés nélkül: " + u + " / " + v + " = " + (int) (u / v)); // típuskényszerítés System.out.printf("Valós osztásuk eredménye 4 tizedesjeggyel: %.4f", u); System.out.printf(" / %.4f", v); System.out.printf(" = %.4f \n", u / v); System.out.println("Összehasonlításuk eredménye kerekítés nélkül: " + Math.max(u, v) + " > " + Math.min(u, v)); System.out.print("Az első szám köbének és a második négyzetgyökének szorzata 8 tizedesjegyre kerekítve: "); System.out.printf("%.8f \n", Math.pow(u, 3) * Math.sqrt(v)); System.out.println("3. Karakterek és sztringek \n ======================="); char k = '*'; System.out.println("A * karakter ASCII-kódja: " + (int) k); System.out.println("\nAz ASCII-kódokhoz tartozó karakterek"); for (i = 32; i <= 370; i++) { System.out.print(i + ": " + (char) i + "\t"); if ((i - 31) % 10 == 0) { System.out.println("\n"); System.out.println("A Tündérszárnyú kígyóbűvölő kifejezés karaktereinek ASCII-kódjai:"); String ekes = "Tündérszárnyú kígyóbűvölő"; // A String osztály, ezért nagykezdőbetűs for (i = 1; i <= ekes.length(); i++) { System.out.print((int) ekes.charat(i - 1) + " "); // Az indexelés mindig 0-val kezdődik, ezért van a -1-es eltolás System.out.println("\n"); System.out.println("Összefűzés:"); System.out.println(k + ekes + k); System.out.println("Megfordítás a charat fügvénnyel:"); String ford = ""; for (i = ekes.length(); i >= 1; i--) { ford += ekes.charat(i - 1); System.out.println(ford); Klement András 12.oldal 2016

2. Adatszerkezetek Egész és valós szám, karakter, szöveg, tömb és tömblista System.out.println("Visszafordítás a substring fügvénnyel:"); String vissza = ""; for (i = ford.length(); i >= 1; i--) { vissza += ford.substring(i - 1, i); System.out.println(vissza); System.out.println("Nagybetűssé alakítás:"); System.out.println(ekes.toUpperCase()); System.out.println("Kisbetűssé alakítás:"); System.out.println(ekes.toLowerCase() + "\n"); System.out.println("Darabolás:"); ekes = ekes.trim(); // A trim() függvény levágja a szöveg elején, ill. végén lévó szóközöket String[] daraboltekes = ekes.split(" "); System.out.println("A kifejezés " + daraboltekes.length + " szóból áll."); for (i = 1; i <= daraboltekes.length; i++) { System.out.println("Az " + i + ". szó: " + daraboltekes[i - 1]); System.out.println("Összehasonlítjuk a két szót."); System.out.println("Ha az érték 0, akkor egyenlőek, ha pozitív, akkor a szöveg a nagyobb,"); System.out.println("ha negatív, akkor a paraméter:"); System.out.println(daraboltEkes[0].compareTo(daraboltEkes[1]) + "\n"); System.out.println("Mindkét szóból véletlenszerűen kiválasztunk egy karaktert,"); System.out.println("és összehasonlítjuk az ábécében elfoglalt helyzetüket: \n"); int elso = veletlenparameteres(daraboltekes[0].length()); int masodik = veletlenparameteres(daraboltekes[1].length()); String elsokar = daraboltekes[0].substring(elso - 1, elso); String masodikkar = daraboltekes[1].substring(masodik - 1, masodik); System.out.println("Az első szóból kiválasztott karakter: " + elsokar); System.out.println("A második szóból kiválasztott karakter: " + masodikkar); if (elsokar.equals(masodikkar)) { // Stringek egyezésének vizsgálata System.out.println("A két kiválasztott karakter megegyezik"); else if (abcsorrend(elsokar, masodikkar)) { System.out.println("Az első szóból kiválasztott karakter van előrébb az ábécében."); else { System.out.println("A második szóból kiválasztott karakter van előrébb az ábécében."); System.out.println("4. Egydimenziós tömbök \n ==================="); System.out.println("Egy megadott pozitív egészeket tartalmazó tömb előállítása \n"); int[] X = { 12, 121, 34, 2, 67, 49, 30, 122, 800, 1256, 2016, 3, 21, 77, 4, 28, 84, 1, 156, 56 ; int hossz = X.length; System.out.println("A tömb elemeinek kiíratása for ciklussal:"); for (i = 1; i <= hossz; i++) { System.out.print(X[i - 1] + " "); System.out.println("\n"); Klement András 13.oldal 2016

2. Adatszerkezetek Egész és valós szám, karakter, szöveg, tömb és tömblista System.out.println("A tömb elemeinek kiíratása for-each ciklussal:"); for (int elem : X) { System.out.print(elem + " "); System.out.println("\n"); System.out.println("1 és 100 közötti véletlen pozitív egészeket tartalmazó tömb előállítása \n"); int[] Y = new int[20]; // Deklaráláskor meg kell adni a tömb maximális méretét! for (i = 1; i <= 20; i++) { Y[i - 1] = veletlenegesz(); System.out.println("A tömb elemeinek kiíratása for ciklussal:"); for (i = 1; i <= Y.length; i++) { System.out.print(Y[i - 1] + " "); System.out.println("\n"); System.out.println("A mintaszöveg karaktereinek karakter típusú elemekből álló tömbje:"); char[] ekestombk = new char[ekes.length()]; for (i = 1; i <= ekes.length(); i++) { ekestombk[i - 1] = ekes.charat(i - 1); for (i = 1; i <= ekes.length(); i++) { System.out.print(ekesTombK[i - 1] + " "); System.out.println("\n\nA karakterek duplázva:"); for (i = 1; i <= ekes.length(); i++) { System.out.print(ekesTombK[i - 1] + "" + ekestombk[i - 1] + " "); System.out.println("\n"); System.out.println("A mintaszöveg karaktereinek sztring típusú elemekből álló tömbje:"); String[] ekestombs = new String[ekes.length()]; for (i = 1; i <= ekes.length(); i++) { ekestombs[i - 1] = ekes.substring(i - 1, i); for (i = 1; i <= ekes.length(); i++) { System.out.print(ekesTombS[i - 1] + " "); Klement András 14.oldal 2016

2. Adatszerkezetek Egész és valós szám, karakter, szöveg, tömb és tömblista System.out.println("\n\nA tömb magánhangzóinak kicserélése távirati formára:"); for (i = 1; i <= ekes.length(); i++) { if (maganhangzo(ekestombs[i - 1])) { switch (ekestombs[i - 1]) { case "á": ekestombs[i - 1] = "aa"; // Karakter típus esetén ez nem működne break; // Break nélkül végrehajtaná a következő utasítást is, // így mindig "uue" lenne case "é": ekestombs[i - 1] = "ee"; break; case "í": ekestombs[i - 1] = "ii"; break; case "ó": ekestombs[i - 1] = "oo"; break; case "ú": ekestombs[i - 1] = "uu"; break; case "ö": ekestombs[i - 1] = "oe"; break; case "ü": ekestombs[i - 1] = "ue"; break; case "ő": ekestombs[i - 1] = "ooe"; break; case "ű": ekestombs[i - 1] = "uue"; for (i = 1; i <= ekes.length(); i++) { System.out.print(ekesTombS[i - 1] + " "); System.out.println("\n"); System.out.println("5. Kétdimenziós tömbök \n ====================="); System.out.println("1000 db 1 és 60 közötti véletlen egész számhármas előállítása,"); System.out.println("és tárolása kétdimenziós tömbben"); System.out.println("A számhármasok hány százaléka határoz meg háromszöget?\n"); int[][] szamharmasokt = new int[1000][3]; for (i = 1; i <= 1000; i++) { for (int j = 1; j <= 3; j++) { szamharmasokt[i - 1][j - 1] = veletlenparameteres(50); System.out.println("Az első számhármas: " + szamharmasokt[0][0] + ", " + szamharmasokt[0][1] + ", " + szamharmasokt[0][2]); System.out.println("Az utolsó számhármas: " + szamharmasokt[999][0] + ", " + szamharmasokt[999][1] + ", " + szamharmasokt[999][2]); Klement András 15.oldal 2016

2. Adatszerkezetek Egész és valós szám, karakter, szöveg, tömb és tömblista int hszdb = 0; for (i = 1; i <= 1000; i++) { if (haromszoge(szamharmasokt[i - 1][0], szamharmasokt[i - 1][1], szamharmasokt[i - 1][2])) { hszdb++; System.out.printf("A háromszöget meghatározók aránya: %.2f", (double) (100 * hszdb / 1000)); System.out.println("%\n"); System.out.println("6. Tömblisták \n =========="); System.out.println("10 db 1 és 60 közötti véletlen egész számhármas előállítása,"); System.out.println("és tárolása tömblistában"); System.out.println("Egy tömblistában különböző típusú adatokat is tárolhatunk,"); System.out.println("pl. azt is, hogy a számhármasok háromszöget határoznak-e meg:"); int a, b, c; for (i = 1; i <= 10; i++) { a = veletlenparameteres(60); b = veletlenparameteres(60); c = veletlenparameteres(60); szamharmasoktl.add(new SzamharmasokTLTipus(a, b, c)); for (i = 1; i <= 10; i++) { System.out.println("A(z) " + i + ". számhármas: " + szamharmasoktl.get(i - 1).a + ", " + szamharmasoktl.get(i - 1).b + ", " + szamharmasoktl.get(i - 1).c + ": " + szamharmasoktl.get(i - 1).haromszog); System.out.println("\nA tömblistához tetszőlegesen hozzá lehet venni új rekordokat"); System.out.println("Addig folytassuk a hozzávételt, míg a három oldal összege nagyobb nem lesz 122-nél! "); do { a = veletlenparameteres(60); b = veletlenparameteres(60); c = veletlenparameteres(60); szamharmasoktl.add(new SzamharmasokTLTipus(a, b, c)); while (a + b + c <= 140); // Ha az oldalak típusát csak a blokkokon belül deklarálnánk, // itt ismerné fel őket a program System.out.println("A tömblista méretét le lehet kérdezni: " + szamharmasoktl.size()); for (i = 1; i <= szamharmasoktl.size(); i++) { System.out.println("A(z) " + i + ". számhármas: " + szamharmasoktl.get(i - 1).a + ", " + szamharmasoktl.get(i - 1).b + ", " + szamharmasoktl.get(i - 1).c + ": " + szamharmasoktl.get(i - 1).haromszog); System.out.println("\nHagyjuk el a tömblistából azokat a rekordokat, ahol az oldalak összege kisebb 100-nál!"); i=1; while(i <= szamharmasoktl.size()){ if (szamharmasoktl.get(i - 1).a + szamharmasoktl.get(i - 1).b + szamharmasoktl.get(i - 1).c < 100) { szamharmasoktl.remove(i - 1); else{ i++; //A for ciklus itt alkalmatlan lenne, mert törléskor a következő elem indexe visszaesik 1-gyel. Klement András 16.oldal 2016

2. Adatszerkezetek Egész és valós szám, karakter, szöveg, tömb és tömblista for (i = 1; i <= szamharmasoktl.size(); i++) { System.out.println("A(z) " + i + ". számhármas: " + szamharmasoktl.get(i - 1).a + ", " + szamharmasoktl.get(i - 1).b + ", " + szamharmasoktl.get(i - 1).c + ": " + szamharmasoktl.get(i - 1).haromszog); System.out.println("\nMinden számhármas utolsó adatát duplázzuk meg!"); System.out.println("Szükség esetén módosítsuk, hogy háromszöget alkotnak-e!"); for (i = 1; i <= szamharmasoktl.size(); i++) { szamharmasoktl.get(i - 1).c *= 2; szamharmasoktl.get(i - 1).haromszog = haromszoge(szamharmasoktl.get(i - 1).a, szamharmasoktl.get(i - 1).b, szamharmasoktl.get(i - 1).c); for (i = 1; i <= szamharmasoktl.size(); i++) { System.out.println("A(z) " + i + ". számhármas: " + szamharmasoktl.get(i - 1).a + ", " + szamharmasoktl.get(i - 1).b + ", " + szamharmasoktl.get(i - 1).c + ": " + szamharmasoktl.get(i - 1).haromszog); System.out.println("\nCseréljük meg a tömblista első és utolsó rekordját!"); SzamharmasokTLTipus asztal; asztal = szamharmasoktl.get(0); szamharmasoktl.set(0, szamharmasoktl.get(szamharmasoktl.size() - 1)); szamharmasoktl.set(szamharmasoktl.size() - 1, asztal); for (i = 1; i <= szamharmasoktl.size(); i++) { System.out.println("A(z) " + i + ". számhármas: " + szamharmasoktl.get(i - 1).a + ", " + szamharmasoktl.get(i - 1).b + ", " + szamharmasoktl.get(i - 1).c + ": " + szamharmasoktl.get(i - 1).haromszog); System.out.println("\nAz aktuális számhármasok hány százaléka határoz meg háromszöget?\n"); hszdb = 0; for (i = 1; i <= szamharmasoktl.size(); i++) { if (haromszoge(szamharmasoktl.get(i - 1).a, szamharmasoktl.get(i - 1).b, szamharmasoktl.get(i - 1).c)) { hszdb++; System.out.printf("A háromszöget meghatározók aránya: %.2f", (double) (100 * hszdb / szamharmasoktl.size())); System.out.println("%\n"); System.out.println("Csak a háromszögeket hagyjuk meg a tömblistában!"); i=1; while(i <= szamharmasoktl.size()){ if (!szamharmasoktl.get(i - 1).haromszog) { szamharmasoktl.remove(i - 1); else{ i++; for (i = 1; i <= szamharmasoktl.size(); i++) { System.out.println("A(z) " + i + ". számhármas: " + szamharmasoktl.get(i - 1).a + ", " + szamharmasoktl.get(i - 1).b + ", " + szamharmasoktl.get(i - 1).c + ": " + szamharmasoktl.get(i - 1).haromszog); Klement András 17.oldal 2016

2. Adatszerkezetek Egész és valós szám, karakter, szöveg, tömb és tömblista // Eljárások, függvények public static int veletlenegesz() { int egesz = (int) (Math.random() * 100 + 1); // Típuskényszerítés return egesz; public static double veletlenvalos() { double valos = Math.random() * 100; return valos; public static boolean abcsorrend(string a, String b) { String abc = "aábcdeéfghiíjklmnoóöőpqrstuúüűvwxyz"; return abc.indexof(a) < abc.indexof(b); public static int veletlenparameteres(int h) { int egesz = (int) (Math.random() * h + 1); return egesz; public static boolean maganhangzo(string a) { String mgh = "aáeéiíoóöőuúüű"; return mgh.contains(a); // A sztring tartalmazza-e a paramétert public static boolean haromszoge(int a, int b, int c) { return (a + b > c && a + c > b && b + c > a); // Tömblista deklarálása, importálni kell hozzá a java.util. ArrayList csomagot static ArrayList<SzamharmasokTLTipus> szamharmasoktl = new ArrayList<>(); // A változó kiskezdőbetűs, a típus pedig nagy, mert osztálynév public static class SzamharmasokTLTipus { private final int a; // Nem változik a feldolgozás során private final int b; // Ez sem private int c; // Ezt változtatni fogjuk private boolean haromszog; // Ez is változhat majd public SzamharmasokTLTipus(int be1, int be2, int be3) { a = be1; b = be2; c = be3; haromszog = haromszoge(a, b, c); Klement András 18.oldal 2016

2. Adatszerkezetek Egész és valós szám, karakter, szöveg, tömb és tömblista 1. Egész számok ============ Két 1 és 100 közötti véletlen egész szám előállítása: A nagyobb egész szám: 65, a kisebb pedig: 42 Összegük: 65 + 42 = 107 Szorzatuk: 65 * 42 = 2730 Egész osztásuk eredménye: 65 / 42 = 1 Maradékos osztásuk eredménye: 65 % 42 = 23 Valós osztásuk eredménye 4 tizedesjegyre kerekítve: 65 / 42 = 1,5476 20! = 2432902008176640000 Figyelni kell a túlcsordulásra! 21! = -4249290049419214848 2. Valós számok ============ Két 0 és 100 közötti véletlen valós szám előállítása: Az első valós szám 6 tizedes pontossággal: u = 13,017114, a második pedig: v = 38,590743 Összegük: 13,017114 + 38,590743 = 51,607857 Szorzatuk 3 tizedesjeggyel: 13,017 * 38,591 = 502,340 Különbségük abszolút értéke 2 tizedesjeggyel: 13,02-38,59 = 25,57 Egész osztásuk eredménye kerekítés nélkül: 13.017113906017308 / 38.59074343105446 = 0 Valós osztásuk eredménye 4 tizedesjeggyel: 13,0171 / 38,5907 = 0,3373 Összehasonlításuk eredménye kerekítés nélkül: 38.59074343105446 > 13.017113906017308 Az első szám köbének és a második négyzetgyökének szorzata 8 tizedesjegyre kerekítve: 13702,05441847 3. Karakterek és sztringek ======================= A * karakter ASCII-kódja: 42 Az ASCII-kódokhoz tartozó karakterek 32: 33:! 34: " 35: # 36: $ 37: % 38: & 39: ' 40: ( 41: ) 42: * 43: + 44:, 45: - 46:. 47: / 48: 0 49: 1 50: 2 51: 3 52: 4 53: 5 54: 6 55: 7 56: 8 57: 9 58: : 59: ; 60: < 61: = 62: > 63:? 64: @ 65: A 66: B 67: C 68: D 69: E 70: F 71: G 72: H 73: I 74: J 75: K 76: L 77: M 78: N 79: O 80: P 81: Q 82: R 83: S 84: T 85: U 86: V 87: W 88: X 89: Y 90: Z 91: [ 92: \ 93: ] 94: ^ 95: _ 96: ` 97: a 98: b 99: c 100: d 101: e 102: f 103: g 104: h 105: i 106: j 107: k 108: l 109: m 110: n 111: o 112: p 113: q 114: r 115: s 116: t 117: u 118: v 119: w 120: x 121: y 122: z 123: { 124: 125: 126: ~ 127: 128:? 129:? 130:? 131:? 132:? 133:? 134:? 135:? 136:? 137:? 138:? 139:? 140:? 141:? 142:? 143:? 144:? 145:? 146:? 147:? 148:? 149:? 150:? 151:? 152:? 153:? 154:? 155:? 156:? 157:? 158:? 159:? 160: 161:? 162:? 163:? 164: 165:? 166: 167: 168: 169: 170:? 171: «172: 173: 174: 175:? 176: 177: ± 178:? 179:? 180: 181: µ 182: 183: 184: 185:? 186:? 187:» 188:? 189:? 190:? 191:? 192:? 193: Á 194: Â 195:? 196: Ä 197:? 198:? 199: Ç 200:? 201: É 202:? 203: Ë 204:? 205: Í 206: Î 207:? 208:? 209:? 210:? 211: Ó 212: Ô 213:? 214: Ö 215: 216:? 217:? 218: Ú 219:? 220: Ü 221: Ý 222:? 223: ß 224:? 225: á 226: â 227:? 228: ä 229:? 230:? 231: ç 232:? 233: é 234:? 235: ë 236:? 237: í 238: î 239:? 240:? 241:? 242:? 243: ó 244: ô 245:? 246: ö 247: 248:? 249:? 250: ú 251:? 252: ü 253: ý 254:? 255:? 256:? 257:? 258: Ă 259: ă 260: Ą 261: ą 262: Ć 263: ć 264:? 265:? 266:? 267:? 268: Č 269: č 270: Ď 271: ď 272: Đ 273: đ 274:? 275:? 276:? 277:? 278:? 279:? 280: Ę 281: ę 282: Ě 283: ě 284:? 285:? 286:? 287:? 288:? 289:? 290:? 291:? 292:? 293:? 294:? 295:? 296:? 297:? 298:? 299:? 300:? 301:? 302:? 303:? 304:? 305:? 306:? 307:? 308:? 309:? 310:? 311:? 312:? 313: Ĺ 314: ĺ 315:? 316:? 317: Ľ 318: ľ 319:? 320:? 321: Ł 322: ł 323: Ń 324: ń 325:? 326:? 327: Ň 328: ň 329:? 330:? 331:? 332:? 333:? 334:? 335:? 336: Ő 337: ő 338:? 339:? 340: Ŕ 341: ŕ 342:? 343:? 344: Ř 345: ř 346: Ś 347: ś 348:? 349:? 350: Ş 351: ş 352: Š 353: š 354: Ţ 355: ţ 356: Ť 357: ť 358:? 359:? 360:? 361:? 362:? 363:? 364:? 365:? 366: Ů 367: ů 368: Ű 369: ű 370:? Klement András 19.oldal 2016

2. Adatszerkezetek Egész és valós szám, karakter, szöveg, tömb és tömblista A Tündérszárnyú kígyóbűvölő kifejezés karaktereinek ASCII-kódjai: 84 252 110 100 233 114 115 122 225 114 110 121 250 32 107 237 103 121 243 98 369 118 246 108 337 Összefűzés: *Tündérszárnyú kígyóbűvölő* Megfordítás a charat fügvénnyel: őlövűbóygík úynrázsrédnüt Visszafordítás a substring fügvénnyel: Tündérszárnyú kígyóbűvölő Nagybetűssé alakítás: TÜNDÉRSZÁRNYÚ KÍGYÓBŰVÖLŐ Kisbetűssé alakítás: tündérszárnyú kígyóbűvölő Darabolás: A kifejezés 2 szóból áll. Az 1. szó: Tündérszárnyú Az 2. szó: kígyóbűvölő Összehasonlítjuk a két szót. Ha az érték 0, akkor egyenlőek, ha pozitív, akkor a szöveg a nagyobb, ha negatív, akkor a paraméter: -23 Mindkét szóból véletlenszerűen kiválasztunk egy karaktert, és összehasonlítjuk az ábécében elfoglalt helyzetüket: Az első szóból kiválasztott karakter: ü A második szóból kiválasztott karakter: ő A második szóból kiválasztott karakter van előrébb az ábécében. 4. Egydimenziós tömbök =================== Egy megadott pozitív egészeket tartalmazó tömb előállítása A tömb elemeinek kiíratása for ciklussal: 12 121 34 2 67 49 30 122 800 1256 2016 3 21 77 4 28 84 1 156 56 A tömb elemeinek kiíratása for-each ciklussal: 12 121 34 2 67 49 30 122 800 1256 2016 3 21 77 4 28 84 1 156 56 1 és 100 közötti véletlen pozitív egészeket tartalmazó tömb előállítása A tömb elemeinek kiíratása for ciklussal: 59 97 80 87 43 35 11 41 13 58 43 36 64 2 64 41 16 41 62 36 A mintaszöveg karaktereinek karakter típusú elemekből álló tömbje: T ü n d é r s z á r n y ú k í g y ó b ű v ö l ő A karakterek duplázva: TT üü nn dd éé rr ss zz áá rr nn yy úú kk íí gg yy óó bb űű vv öö ll őő A mintaszöveg karaktereinek sztring típusú elemekből álló tömbje: T ü n d é r s z á r n y ú k í g y ó b ű v ö l ő A tömb magánhangzóinak kicserélése távirati formára: T ue n d ee r s z aa r n y uu k ii g y oo b uue v oe l ooe Klement András 20.oldal 2016

2. Adatszerkezetek Egész és valós szám, karakter, szöveg, tömb és tömblista 5. Kétdimenziós tömbök ===================== 1000 db 1 és 60 közötti véletlen egész számhármas előállítása, és tárolása kétdimenziós tömbben A számhármasok hány százaléka határoz meg háromszöget? Az első számhármas: 25, 39, 29 Az utolsó számhármas: 26, 40, 15 A háromszöget meghatározók aránya: 50,00% 6. Tömblisták ========== 10 db 1 és 60 közötti véletlen egész számhármas előállítása, és tárolása tömblistában Egy tömblistában különböző típusú adatokat is tárolhatunk, pl. azt is, hogy a számhármasok háromszöget határoznak-e meg: A(z) 1. számhármas: 52, 34, 15: false A(z) 2. számhármas: 34, 48, 21: true A(z) 3. számhármas: 51, 39, 13: true A(z) 4. számhármas: 34, 32, 7: true A(z) 5. számhármas: 9, 54, 38: false A(z) 6. számhármas: 59, 19, 30: false A(z) 7. számhármas: 11, 53, 52: true A(z) 8. számhármas: 5, 7, 37: false A(z) 9. számhármas: 43, 57, 36: true A(z) 10. számhármas: 44, 25, 15: false A tömblistához tetszőlegesen hozzá lehet venni új rekordokat Addig folytassuk a hozzávételt, míg a három oldal összege nagyobb nem lesz 122-nél! A tömblista méretét le lehet kérdezni: 31 A(z) 1. számhármas: 52, 34, 15: false A(z) 2. számhármas: 34, 48, 21: true A(z) 3. számhármas: 51, 39, 13: true A(z) 4. számhármas: 34, 32, 7: true A(z) 5. számhármas: 9, 54, 38: false A(z) 6. számhármas: 59, 19, 30: false A(z) 7. számhármas: 11, 53, 52: true A(z) 8. számhármas: 5, 7, 37: false A(z) 9. számhármas: 43, 57, 36: true A(z) 10. számhármas: 44, 25, 15: false A(z) 11. számhármas: 3, 25, 37: false A(z) 12. számhármas: 52, 13, 14: false A(z) 13. számhármas: 12, 45, 3: false A(z) 14. számhármas: 52, 24, 1: false A(z) 15. számhármas: 26, 15, 21: true A(z) 16. számhármas: 31, 46, 5: false A(z) 17. számhármas: 47, 21, 40: true A(z) 18. számhármas: 25, 50, 42: true A(z) 19. számhármas: 6, 47, 58: false A(z) 20. számhármas: 51, 17, 26: false A(z) 21. számhármas: 48, 48, 13: true A(z) 22. számhármas: 46, 23, 47: true A(z) 23. számhármas: 33, 60, 24: false A(z) 24. számhármas: 48, 2, 24: false A(z) 25. számhármas: 44, 38, 6: false A(z) 26. számhármas: 44, 24, 10: false A(z) 27. számhármas: 2, 16, 35: false A(z) 28. számhármas: 19, 18, 50: false A(z) 29. számhármas: 29, 52, 58: true A(z) 30. számhármas: 46, 37, 2: false A(z) 31. számhármas: 47, 50, 49: true Klement András 21.oldal 2016

2. Adatszerkezetek Egész és valós szám, karakter, szöveg, tömb és tömblista Hagyjuk el a tömblistából azokat a rekordokat, ahol az oldalak összege kisebb 100-nál! A(z) 1. számhármas: 52, 34, 15: false A(z) 2. számhármas: 34, 48, 21: true A(z) 3. számhármas: 51, 39, 13: true A(z) 4. számhármas: 9, 54, 38: false A(z) 5. számhármas: 59, 19, 30: false A(z) 6. számhármas: 11, 53, 52: true A(z) 7. számhármas: 43, 57, 36: true A(z) 8. számhármas: 47, 21, 40: true A(z) 9. számhármas: 25, 50, 42: true A(z) 10. számhármas: 6, 47, 58: false A(z) 11. számhármas: 48, 48, 13: true A(z) 12. számhármas: 46, 23, 47: true A(z) 13. számhármas: 33, 60, 24: false A(z) 14. számhármas: 29, 52, 58: true A(z) 15. számhármas: 47, 50, 49: true Minden számhármas utolsó adatát duplázzuk meg! Szükség esetén módosítsuk, hogy háromszöget alkotnak-e! A(z) 1. számhármas: 52, 34, 30: true A(z) 2. számhármas: 34, 48, 42: true A(z) 3. számhármas: 51, 39, 26: true A(z) 4. számhármas: 9, 54, 76: false A(z) 5. számhármas: 59, 19, 60: true A(z) 6. számhármas: 11, 53, 104: false A(z) 7. számhármas: 43, 57, 72: true A(z) 8. számhármas: 47, 21, 80: false A(z) 9. számhármas: 25, 50, 84: false A(z) 10. számhármas: 6, 47, 116: false A(z) 11. számhármas: 48, 48, 26: true A(z) 12. számhármas: 46, 23, 94: false A(z) 13. számhármas: 33, 60, 48: true A(z) 14. számhármas: 29, 52, 116: false A(z) 15. számhármas: 47, 50, 98: false Cseréljük meg a tömblista első és utolsó rekordját! A(z) 1. számhármas: 47, 50, 98: false A(z) 2. számhármas: 34, 48, 42: true A(z) 3. számhármas: 51, 39, 26: true A(z) 4. számhármas: 9, 54, 76: false A(z) 5. számhármas: 59, 19, 60: true A(z) 6. számhármas: 11, 53, 104: false A(z) 7. számhármas: 43, 57, 72: true A(z) 8. számhármas: 47, 21, 80: false A(z) 9. számhármas: 25, 50, 84: false A(z) 10. számhármas: 6, 47, 116: false A(z) 11. számhármas: 48, 48, 26: true A(z) 12. számhármas: 46, 23, 94: false A(z) 13. számhármas: 33, 60, 48: true A(z) 14. számhármas: 29, 52, 116: false A(z) 15. számhármas: 52, 34, 30: true Az aktuális számhármasok hány százaléka határoz meg háromszöget? A háromszöget meghatározók aránya: 46,00% Csak a háromszögeket hagyjuk meg a tömblistában! A(z) 1. számhármas: 34, 48, 42: true A(z) 2. számhármas: 51, 39, 26: true A(z) 3. számhármas: 59, 19, 60: true A(z) 4. számhármas: 43, 57, 72: true A(z) 5. számhármas: 48, 48, 26: true A(z) 6. számhármas: 33, 60, 48: true A(z) 7. számhármas: 52, 34, 30: true Klement András 22.oldal 2016

3. Beolvasás, kiírás Képernyő, szöveges fájl 3. Beolvasás, kiírás: képernyő és szöveges fájl import java.io.bufferedreader; import java.io.filereader; import java.io.filewriter; import java.io.ioexception; import java.io.printwriter; import java.util.arraylist; import java.util.scanner; /** * Beolvasás, kiírás: képernyő és szöveges fájl * * @author Klemand */ public class BevGyak03 { public static void main(string[] args) throws IOException { // A throws IOException csak fájlműveletek esetén kell // Source menüpont Organize Imports System.out.println("1. Egész számok beolvasása a billentyűzetről \n"); System.out.println("Mivel az érettségin feltételezhetjük, hogy helyes számformátumot és értéket"); System.out.println("adunk meg, kivételkezeléssel és ellenőrzéssel nem kell foglalkoznunk.\n"); Scanner sc1 = new Scanner(System.in); // Source menüpont Organize Imports int n, m; System.out.print("Kérek egy egész számot a billentyűzetről: "); n = sc1.nextint(); System.out.println("A beírt szám: " + n); System.out.print("Kérek egy másik egész számot is a billentyűzetről: "); m = sc1.nextint(); System.out.println("A beírt második szám: " + m); System.out.println("A két szám távolsága a számegyenesen: " + Math.abs(n - m)); float atlag = (float) (n + m) / 2; System.out.println("A két szám átlaga: " + atlag); int nagyobb = Math.max(n, m); String bin, hex; bin = Integer.toBinaryString(nagyobb); hex = Integer.toHexString(nagyobb); hex = hex.touppercase(); System.out.print("A nagyobb szám: " + nagyobb + ", bináris alakja: " + bin); System.out.println(", hexadecimális alakja: " + hex); vonal(); Klement András 23.oldal 2016

3. Beolvasás, kiírás Képernyő, szöveges fájl System.out.println("2. Egy hosszú egész szám beolvasása a billentyűzetről \n"); Scanner sc2 = new Scanner(System.in); System.out.println("Addig adogatjuk össze a számjegyeket,"); System.out.println("míg végül az összeg egyjegyű nem lesz."); long nn; System.out.print("Kérek egy hosszú egész számot a billentyűzetről: "); nn = sc2.nextlong(); long maradek; long osszeg; do { osszeg = 0; do { maradek = nn % 10; osszeg += maradek; nn = nn / 10; while (nn > 0); nn = osszeg; while (osszeg > 9); System.out.println("A végső összeg: " + osszeg); vonal(); System.out.println("3. Valós számok beolvasása a billentyűzetről \n"); Scanner sc3 = new Scanner(System.in); double x, y; System.out.println("Figyelem! A tizedestörteket tizedesvesszővel kell beírni!\n"); System.out.print("Kérek egy valós számot a billentyűzetről: "); x = sc3.nextdouble(); System.out.println("A beírt szám: " + x); System.out.print("Kérek egy másik valós számot is a billentyűzetről: "); y = sc3.nextdouble(); System.out.println("A beírt második szám: " + y); System.out.printf("A két szám távolsága a számegyenesen (4 tizedes pontossággal): %.4f\n", Math.abs(x - y)); if (x >= 0 && y >= 0) { double mkoz = Math.sqrt(x * y); System.out.printf("A két szám mértani közepe (4 tizedes pontossággal): %.4f\n", mkoz); else { System.out.println("A mértani közepet csak nemnegatív számokra értelmezzük."); vonal(); Klement András 24.oldal 2016

3. Beolvasás, kiírás Képernyő, szöveges fájl System.out.println("4. Szöveg beolvasása a billentyűzetről \n"); System.out.println("a) Egy szövegként beolvasott hexadecimális szám értéke és számjegyeinek összege \n"); System.out.println("Kérek egy hexadecimális számot! "); System.out.print("A számjegyei: 0 1 2... 9 A B C D E F lehetnek. (Pl. babfa88): "); Scanner sc4 = new Scanner(System.in); hex = sc4.nextline(); hex = hex.touppercase(); System.out.println("A megadott hexadecimális szám: " + hex); System.out.print("Decimális alakja: "); long hexertek = Long.parseLong(hex, 16); System.out.println(hexErtek); System.out.print("Számjegyeienek összege: "); osszeg = 0; for (int i = 1; i <= hex.length(); i++) { osszeg += Integer.parseInt(hex.substring(i - 1, i), 16); System.out.println(osszeg + "\n"); System.out.println("b) Egy ékezetes szöveg ékezetes karaktereinek összefűzése \n"); System.out.println("Kérek egy ékezetes szöveget! "); String szoveg = sc4.nextline(); System.out.println("A beolvasott szöveg: " + szoveg); String ekesek = ""; for (int i = 1; i <= szoveg.length(); i++) { String s = szoveg.substring(i - 1, i); if (ekezetes(s)) { ekesek += s; System.out.println("A beolvasott szöveg ékezetes betűinek füzére: " + ekesek + "\n"); System.out.println("c) Egy egészekből álló számsorozat beolvasása tömbbe \n"); System.out.println("Kérem a számsorozat tagjait egy sorban szóközzel elválasztva: "); String sor = sc4.nextline(); sor = sor.trim(); String[] daraboltsor = sor.split(" "); int db = daraboltsor.length; // Szöveg hosszánál length(), itt csak length int[] szamtomb = new int[db]; for (int i = 1; i <= db; i++) { szamtomb[i - 1] = Integer.parseInt(daraboltSor[i - 1]); System.out.println("A beolvasott számtömb elemei:"); for (int i = 1; i <= db; i++) { System.out.println(szamTomb[i - 1]); sc1.close(); sc2.close(); sc3.close(); sc4.close(); vonal(); Klement András 25.oldal 2016

3. Beolvasás, kiírás Képernyő, szöveges fájl System.out.println("5. Beolvasás szövegfájlból \n"); System.out.println("a) A fájl első sora tartalmazza a beolvasandó sorok számát."); System.out.println("Minden sorban szóközzel elválasztva egy-egy háromszög oldalainak hossza"); System.out.println("szerepel. Olvassuk be kétdimenziós tömbbe a háromszögek oldalait."); System.out.println("Ezután írassuk ki a képernyőre, hogy az adatok háromszöget határoznak-e"); System.out.println(" meg,és ha igen, akkor adjuk meg a kerületüket, területüket, a beírt"); System.out.println("és a körülírt körük sugarát, és minősítsük őket szögeik szerint!\n"); BufferedReader behozatal1; // Source menüpont Organize Imports behozatal1 = new BufferedReader(new FileReader("3szog.txt")); // Source menüpont Organize Imports String fsor; fsor = behozatal1.readline(); /* * Ha a szövegfájl UTF-8 kódolású, akkor az elején egy UTF-8 azonosító * van, ami konvertálásnál hibát okoz. * * A probléma kezelésére két lehetőségünk van: * * 1) Ha van UTF-8 azonosító, elhagyjuk az első sor elejéről: * * if (elsosor.charat(0) == (char) 0xFEFF) { * elsosor = elsosor.substring(1); * * * Ez azonban gondot okozhat, ha már az első sor is az első rekord vagy * annak része. * * 2) Mentsük el a fájlt ANSI kódolással: szerkesztés / mentés másként / * felülírás * * A tapasztalat szerint az érettségin a forrásfájlok általában ANSI * kódolásúak, de erről mindig győződjünk meg az Intézőben vagy a Total * Commanderben! * */ int sordb = Integer.parseInt(fsor); // Tudom, hogy számot olvasok be a fájlból! String[] daraboltfsor; double[][] hszogek = new double[sordb][3]; for (int i = 1; i <= sordb; i++) { fsor = behozatal1.readline(); daraboltfsor = fsor.split(" "); for (int j = 1; j <= 3; j++) { hszogek[i - 1][j - 1] = Double.parseDouble(daraboltFsor[j - 1]); behozatal1.close(); Klement András 26.oldal 2016

3. Beolvasás, kiírás Képernyő, szöveges fájl double a, b, c, asztal; for (int i = 1; i <= sordb; i++) { if (haromszoge(hszogek[i - 1][0], hszogek[i - 1][1], hszogek[i - 1][2])) { System.out.print(hszogek[i - 1][0] + ", " + hszogek[i - 1][1] + " és " + hszogek[i - 1][2]); System.out.println(" háromszöget határoznak meg."); a = hszogek[i - 1][0]; b = hszogek[i - 1][1]; c = hszogek[i - 1][2]; if (a >= b && a >= c) { asztal = c; c = a; a = asztal; if (b >= a && b >= c) { asztal = c; c = b; b = asztal; // Most már c-nél egyik oldal sem nagyobb. double ker = a + b + c; double s = ker / 2; double ter = Math.sqrt(s * (s - a) * (s - b) * (s - c)); double rb = ter / s; double rk = a * b * c / (4 * ter); double cosgamma = (a * a + b * b - c * c) / (2 * a * b); System.out.printf("Kerülete: %.2f", ker); System.out.printf(", területe: %.4f\n", ter); System.out.printf("A beírt körének sugara: %.3f", rb); System.out.printf(", a körülírt körének sugara: %.3f\n", rk); if (cosgamma > 0) { System.out.println("A háromszög hegyesszögű."); else if (cosgamma == 0) { System.out.println("A háromszög derékszögű."); else { System.out.println("A háromszög tompaszögű."); // A legnagyobb oldallal szemközt van a legnagyobb szög, ez // dönti el a kérdést. System.out.println(); else { System.out.print(hszogek[i - 1][0] + ", " + hszogek[i - 1][1] + " és " + hszogek[i - 1][2]); System.out.println(" nem határoznak meg háromszöget."); System.out.println(); Klement András 27.oldal 2016

3. Beolvasás, kiírás Képernyő, szöveges fájl System.out.println("b) A fájl első sora nem tartalmazza a beolvasandó sorok számát."); System.out.println("Minden sorban szóközzel elválasztva egy vezetéknév, egy keresztnév,"); System.out.println("egy személyi szám és a születéskor nyert életbiztosítási összeg szerepel."); System.out.println("Olvassuk be az adatokat egy tömblistába."); System.out.println("Ezután írassuk ki a képernyőre a vezetéknevet 10 karakterrel,"); System.out.println("majd tabulátorral elválasztva a keresztnév első két karakterét,"); System.out.println("a személy nemét, születési évét, és 2 %-os évi kamattal számolva"); System.out.println("biztosításának 2020 végén várható értékét!\n"); BufferedReader behozatal2; behozatal2 = new BufferedReader(new FileReader("szemely.txt")); while ((fsor = behozatal2.readline())!= null) { // Beolvassa a sort és megvizsgálja. Ha nem null, akkor feldolgozza. daraboltfsor = fsor.split(" "); szemely.add(new SzemelyTipus(daraboltFsor)); behozatal2.close(); System.out.println("A fájl beolvasása megtörtént."); System.out.println("A tömblista " + szemely.size() + " adatsort tartalmaz.\n"); System.out.println("A kért adatok:"); for (int i = 1; i <= szemely.size(); i++) { int hossz = szemely.get(i - 1).veznev.length(); if (hossz < 10) { System.out.print(szemely.get(i - 1).veznev); for (int j = 1; j <= 10 - hossz; j++) { System.out.print(" "); else { System.out.print(szemely.get(i - 1).veznev.substring(0, 10)); System.out.print("\t" + szemely.get(i - 1).kernev.substring(0, 2)); System.out.print("\t" + szemely.get(i - 1).nem + "\t" + szemely.get(i - 1).szulev + "\t"); int ev = 2020 - szemely.get(i - 1).szulev; szemely.get(i - 1).bizt = szemely.get(i - 1).bizt * Math.pow(1.02, ev); // Példa a tömlista egy mezőjének felülírására. // Másrészt később is használjuk még, azért sem csak a kiíratásba // tettük. System.out.printf("%,14.2f", szemely.get(i - 1).bizt); // Ezredes tagolás, szélesség, pontosság beállítása System.out.println(" Ft"); vonal(); Klement András 28.oldal 2016

3. Beolvasás, kiírás Képernyő, szöveges fájl System.out.println("6. Kiíratás szövegfájlba \n"); System.out.println("Írassuk ki az eredmeny.ki szövegfájlba az előző két feladat eredményét!"); System.out.println("Először írjuk felül az esetlegesen meglévő fájlt, a második feladat"); System.out.println("eredménye pedig két üres sor után következzen.\n"); PrintWriter kivitel; kivitel = new PrintWriter(new FileWriter("eredmeny.ki", false)); // Source menüpont Organize Imports // A fájlkiterjesztés bármi lehet, nem csak txt // false: felülírjuk a meglévő fájlt (elhagyható, ez az alapértelmezés) // Az a) feladatnál nem tároltuk az eredményeket, csak kiírattuk, // ezért most mindent újra kell számolni. kivitel.println("az a) feladat eredménye:"); kivitel.println(); for (int i = 1; i <= sordb; i++) { if (haromszoge(hszogek[i - 1][0], hszogek[i - 1][1], hszogek[i - 1][2])) { kivitel.print(hszogek[i - 1][0] + ", " + hszogek[i - 1][1] + " és " + hszogek[i - 1][2]); kivitel.println(" háromszöget határoznak meg."); a = hszogek[i - 1][0]; b = hszogek[i - 1][1]; c = hszogek[i - 1][2]; if (a >= b && a >= c) { asztal = c; c = a; a = asztal; if (b >= a && b >= c) { asztal = c; c = b; b = asztal; // Most már c-nél egyik oldal sem nagyobb. double ker = a + b + c; double s = ker / 2; double ter = Math.sqrt(s * (s - a) * (s - b) * (s - c)); double rb = ter / s; double rk = a * b * c / (4 * ter); double cosgamma = (a * a + b * b - c * c) / (2 * a * b); kivitel.printf("kerülete: %.2f", ker); kivitel.printf(", területe: %.4f", ter); kivitel.println(); // A \n itt nem működik kivitel.printf("a beírt körének sugara: %.3f", rb); kivitel.printf(", a körülírt körének sugara: %.3f", rk); kivitel.println(); if (cosgamma > 0) { kivitel.println("a háromszög hegyesszögű."); else if (cosgamma == 0) { kivitel.println("a háromszög derékszögű."); else { kivitel.println("a háromszög tompaszögű."); // A legnagyobb oldallal szemközt van a legnagyobb szög, ez // dönti el a kérdést. kivitel.println(); else { kivitel.print(hszogek[i - 1][0] + ", " + hszogek[i - 1][1] + " és " + hszogek[i - 1][2]); kivitel.println(" nem határoznak meg háromszöget."); kivitel.println(); kivitel.println(); Klement András 29.oldal 2016