Átismételtük a kiválasztás tételét és az összegzést. HF: tanulni az eddigi összes tételt.
NMSZC Szent-Györgyi Albert Technikum (Balassagyarmat) - 2022-23/12B2 csoport 'programozás' órai anyagai
2021.11.24. !!!Alap algoritmusok – gyakorlati példák
Végigvettük, házi feladat tanulni az alap algoritmusokat.
Alap algoritmusok – gyakorlati példák
A kiválasztás tétele
Adjuk meg, hogy hányadik a tömbben az 55, és írjuk ki a sorszámát! Ha több is van, csak az elsőt írjuk ki. Ha nincs ilyen szám, írjunk ki hibaüzenetet!
int i = 0;
while (i < szamok.Length && szamok[i] != 55)
{
i++;
}
if (i != szamok.Length)
Console.WriteLine("A keresett szám (55) a {0}. indexű elem.", i);
else
Console.WriteLine("A keresett szám (55) nincs a tömbben!");
A megszámlálás tétele
Számoljuk meg egy tömbben az 50 alatti elemeket! Írjuk ki a végeredményt. (For ciklussal is jó.)
int i = 0;
int db = 0;
while (i < szamok.Length)
{
if (szamok[i] < 50)
{
db++;
}
i++;
}
Console.WriteLine("{0} db 50 alatti szám van a tömbben.", db);
Az eldöntés tétele
Döntsük el, hogy van-e a tömbben 10-nél nagyobb szám. Amennyiben találtunk egyet, a ciklus álljon meg, és írjuk ki a képernyőre a megtalált elemet. (Nem kell a többit is megkeresni.) Ha végigmentünk a tömbön, és nem találtunk egyet sem, azt is írjuk ki.
int i = 0;
bool van = false;
while (i < szamok.Length && !van)
{
if (szamok[i] > 10)
{
van = true;
}
i++;
}
if (van)
Console.WriteLine("Van a tömbben 10-nél nagyobb elem: {0}", szamok[i-1]);
else
Console.WriteLine("Nincs a tömbben 10-nél nagyobb elem.");
A kiválogatás tétele
Adott két azonos elemszámú tömb. Másoljuk át az első tömbből a másodikba a páros elemeket. (While ciklussal is jó.)
int j = 0;
for (int i = 0; i < szamok1.Length; i++)
{
if (szamok1[i] % 2 == 0)
{
szamok2[j] = szamok1[i];
j++;
}
}
Az összegzés tétele
Egy tömbben add össze az elemeket. Írd ki a végeredményt. (While ciklussal is jó.)
int osszeg = 0;
for (int i = 0; i < egeszSzamok.Length; i++)
{
osszeg = osszeg + egeszSzamok[i];
}
Console.WriteLine("A tömbelemek összege: {0}", osszeg);
Változat: Add össze a páros elemeket. Írd ki a végeredményt.
int parosOsszeg = 0;
for (int i = 0; i < egeszSzamok.Length; i++)
{
if (egeszSzamok[i] % 2 == 0)
{
parosOsszeg = parosOsszeg + egeszSzamok[i];
}
}
Console.WriteLine("A páros elemek összege: {0}", parosOsszeg);
Változat: Szorozd össze az 50-nel osztható elemeket. Írd ki a végeredményt.
int szorzat = 1;
for (int i = 0; i < egeszSzamok.Length; i++)
{
if (egeszSzamok[i] % 50 == 0)
{
szorzat = szorzat * egeszSzamok[i];
}
}
if (szorzat != 1)
{
Console.WriteLine("Az 50-nel osztható elemek szorzata: {0}", szorzat);
}
else
{
Console.WriteLine("Nem voltak 50-nel osztható elemek!");
}
A minimumkeresés tétele
Egy tömbben keresd meg a legkisebb elemet. (While ciklussal is jó.)
int min = tomb[0];
for (int i = 1; i < tomb.Length; i++)
{
if (tomb[i] < min)
{
min = tomb[i];
}
}
Console.WriteLine("A legkisebb elem: {0}",min);
A maximumkeresés tétele
Egy tömbben keresd meg a legnagyobb elemet. (While ciklussal is jó.)
int max = tomb[0];
for (int i = 1; i < tomb.Length; i++)
{
if (tomb[i] > max)
{
max = tomb[i];
}
}
Console.WriteLine("A legnagyobb elem: {0}",max);
2021.11.19. Témazáró előtti gyakorlás
Megcsináltuk a mátrixos betűesőt először.
Ezt házi feladat befejezni.
1. Tárolj tömbben jeleket.
(!!+”’()&@# stb.)
2. Tárolj egy másik tömbben
kétjegyű véletlen számokat.
3. Ezekből, és véletlenszerű
kis-és nagybetűkből alkoss 3 különböző, 5 hosszú PIN kódokat. Írd ki őket a
képernyőre.
4. Véletlenszerűen írass ki
érdemjegyeket (1-5) addig, amíg ötös nem jön ki. Ekkor írj ki egy gratuláló
szöveget.
4. Véletlenszerűen írass ki
érdemjegyeket (1-5). Minden esetben kérdezd meg a felhasználót, hogy ez
megfelel-e neki programozásból. Ha nem felel meg, menj tovább. Ha megfelel,
lépj ki a ciklusból.
5. Kérj be egy pozitív egész
számot a usertől. Kezdj el visszafelé számolni ettől a számtól kezdve mínusz 100-ig.
Amikor pozitív számot írsz ki a sor elejére, töltsd föl mögötte az adott sort +
jelekkel. Ha a nullánál tartasz, írd tele a sort nullával. Ha negatív számot
írsz ki, írd tele a képernyőt – jelekkel.
2021.11.17. Gyakorlás
1. Rajzold ki 5* egymásba ágyazott ciklusokkal:
xxxxxxxxxx
******
******
******
oooooo
oooooo
++++++
++++++
++++++
2021.11.15.-17. Előző két feladatsor megoldása
using System;
2021.11.12. -15. Egymásba ágyazott ciklusok – Gyakorlás
Következő órán befejezzük.
Egymásba ágyazott ciklusok – Gyakorlás
1
feladat:
−
Az órai munka minden feladatát futtasd lépésenként, vizsgáld a
műveleteket, változókat.
2
feladat:
−
Ismételd meg tízszer a Beep() metódus segítségével a Morse SOS
(. . . – – – . . .) jelet (a harmadik
leckében találsz hozzá segítséget). A külső ciklus 10-szer fusson, ezen belül
fusson 3 belső ciklus. Az első ismételje 3-szor a rövid hangot; a második
ismételje 3-szor a hosszú hangot, a
harmadik ugyanaz, mint az első.
3
szorgalmi feladat:
−
Hangokkal kódold le a végén a TITANIC szót (ehhez ne használj
ciklust :)
2021.11.10. Egymásba ágyazott ciklusok
Házi feladat: befejezni a feladatsort.
Egymásba ágyazott ciklusok
1
feladat:
−
A külső ciklus 10-szer fusson le, minden ciklusmagban írja ki,
hogy hányadik külső ciklus-lépésben járunk.
−
A belső ciklus 5-ször fusson, (futásonként) írja ki, hogy ő a
belső ciklus, és írjon még ki egy véletlenszámot.
2
feladat:
−
Módosítsuk az előző feladatot úgy, hogy a külső és a belső ciklus
más-más színnel írjon a képernyőre.
3
feladat:
−
Lépésenkénti futtatással vizsgáljuk meg a ciklusok működését.
4
feladat:
−
Hozz létre egy 20 elemű string tömböt, melyben 10 számjegyből álló
titkos kódokat fogsz tárolni.
−
Külső ciklus:
●
menj végig minden tömbelemen;
●
helyezz el a tömbelemben egy stringgé alakított véletlen
számjegyet;
−
Belső ciklus, ami 10-szer ismétlődik:
●
lépésenként adj hozzá a tömbelem aktuális tartalmához egy, a fenti
módon stringgé alakított véletlen
számjegyet úgy, hogy egy stringet alkossanak.
−
A külső ciklusból kilépve listázd ki a képernyőre a tömböt.
//5. feladat:
//– Oldd meg, hogy a listázás a ciklusok futása közben megvalósuljon,
//ehhez keresd meg azt a helyet, ahová a kiírást el kell helyezni.
Console.WriteLine("5. feladat");
//6. feladat:
// Az órai munka minden feladatát futtasd lépésenként, vizsgáld a műveleteket, változókat.
2021.11.08. While ciklus gyakorlás
//1.feladat:
//Írjunk végtelen ciklust, ami „végtelenszer” kiírja, hogy „Úgyse lépek ki :)
//2.feladat:
//Kérd be a felhasználótól, hogy hány nap múlva lesz az uniós pályázat beadási határideje.
//Számolj visszafelé egyesével 1-ig, az aktuális értéket írd ki a képernyőre.
//Amikor eljött a határidő napja, írd ki, hogy ma van a határidő napja.
//3.feladat:
//Középiskolák pályázhattak hardver beszerzésre. A teljes pályázati összeg 10 millió forint.
//Százezer, kétszázezer, háromszázezer forintokra lehetett pályázni.
//Modellezzük az iskolák igényét úgy, hogy a százezer forintot véletlenül szorozzuk be
//cikluslépésenként 1-2-3-mal.
//A ciklus addig megy, amíg el nem fogy minden pénz.
//Minden cikluslépésben írd ki, hogy mennyi pénz van még.
//Ha a végén mínuszba ment, a ciklus után írd ki, hogy az utolsó pályázónak
//mennyi maradt, valójában azt kapja meg.
2021.11.03. While ciklus gyakorlás
Házi feladat volt befejezni.
A végét még megbeszéljük. Házi feladat a megoldást megtanulni.
Figyelem, egymásba ágyazott ciklus is van benne.
//While ciklus gyakorlás
//A következő feladatokban
a tömböket a feltöltés után mindig listázd ki a képernyőre.
//Tudnivalók: az ASCII
táblában a betűk kódjainak határa:
// nagy betűk: 65-90
// kis betűk: 97-122
//1.feladat:
// Hozz létre egy 26 elemű
karaktertömböt nagyBetu néven.
// Töltsd föl az angol ABC
nagybetűivel.
//2.feladat:
// Hozz létre egy 26 elemű
karaktertömböt kisBetu néven.
// Töltsd föl az angol ABC
kisbetűivel.
//3.feladat:
// Hozz létre egy 2*26=52
elemű karaktertömböt osszesbetu néven.
// Másold át ebbe a tömbbe
az előző két tömb tartalmát egymás után.
//4.feladat:
// Hozz létre egy 26 elemű
string tömböt betuParok néven.
// Töltsd föl a
következőképpen: a kisBetu tömb 0. eleméhez
//add hozzá a nagyBetu tomb
0. elemét úgy,
//hogy egy stringet alkossanak: „Aa”;
//majd ezt a stringet tedd bele a betuParok tömbbe.
//Ismételd meg ezt a többi
elemmel is.
//5.feladat:
// Hozz létre egy 100 elemű
karaktertömböt szazKisBetu néven.
//Töltsd föl véletlenül
kiválasztott kisbetűkkel.
//6.feladat:
// Hozz létre egy 10 elemű
string tömböt, melyben 3 számjegyből álló
//titkos kódokat fogsz
tárolni.
// Töltsd föl a
következőképpen: alakíts stringgé egy véletlen számjegyet,
//és adj hozzá még kettő
ilyet úgy, hogy egy stringet alkossanak. (Pl.: 341, 593)
//7. feladat:
//Oldd meg a 6-os feladatot
azzal a változtatással,
//hogy öt hosszú legyen a
titkos kód.
//Az első helyen egy
véletlen számjegy álljon,
//aztán egy véletlen
kisbetű, aztán egy véletlen nagybetű,
//végül egy véletlen
kétjegyű szám. (Pl.: 3hZ71)
//8. feladat:
//Készíts 8 hosszú titkos
kódot, melyben kisbetű, nagybetű, szám, és egyéb jelek is vannak.
//Szóköz, ékezetes karakter
nem lehet benne. Segítségül használd a 7 bites ASCII táblát.
//Pl.: fT!jq/d+
//9. feladat:
//Alkoss a kisBetu tömb
elemeiből négybetűs szavakat, melyeket nem kell tárolni, csak kiírni a
képernyőre.
//Minden egyes szó kiírása
után kérdezd meg a usert, hogy értelmes-e a szó.
//Számold meg, hány
értelmes szót sikerült alkotni, és az eredményt írd ki a képernyőre.
-
Elkezdtük (ebből a web készen van a többségnek) 2022. ŐSZ KÖZÉP - XIX. Bükk Hegyikerékpár Maraton, Balaton
-
Folytattuk: Pataky próbaérettségi befejezés (Lottószámok, Kőbánya) - még van, aki nem fejezte be 2021. TAVASZ KÖZÉP - Karácsonyi díszek, Tr...