fel
le

Bevezető feladatok

A feladatok célja a Console.WriteLine() gyakorlása, egyszerű és összetett kiíratási feladatok elvégzése.

  • egyszerű Console.Write és Console.WriteLine (szöveg, szóközök szerepe)
  • numerikus kifejezések kiíratása (hivatkozás adatra)
  • változók deklarálása és használata (literálokkal való feltöltés)
  • int és double típusú adatok bekérése

#1   Hello World program írása

Készítsünk olyan programot, amely kiírja a képernyőre a Helló Világ! szöveget, majd vár egy billentyű (Enter) leütésére, és befejeződik.

#2   Saját nevünk kiírása

Az előző megoldást módosítsuk olyan módon, hogy ne a megadott szöveg, hanem a saját (a készítő) nevét jelenítse meg. A nevet keretezzük körbe díszítési jelleggel * karakterekkel.

#3   Saját nevünk a képernyő közepére

A * karakterekkel keretezett nevet a konzol ablak közepére igazítsuk mind vízszintes, mind függőleges irányokban.

#4   Családfa

Írassuk ki a képernyőre a családfánk egy részét, pl. az alábbi formában:

Kis Pál (felesége: Nagy Borbála)
 |-  Kis József
 |-+ Kis Aladár     (felesége: Piros Éva)
   |- Kis István
   |- Kis Pál
 
#5   Meghívó

Konstruáljunk egy bekeretezett meghívót valamely alkalomra (pl. esküvő). Az esemény neve és a dátum legyen más színnel írva, mint a keret, és a meghívó szövege (az esemény ismertetése). A program szóköz leütése után törölje le a meghívó szövegét, és cserélje fel az esemény programjának ismertetésére.

#6   Színek súgó

Írjon olyan programot, amely a képe,,rnyőre különböző színekkel kiírja a "Micócicó kunyhója" szöveget. Minden sor végére írja ki a felhasznált szín nevét is.

#7   Képernyő kerete

Állítsuk be, hogy a konzol ablak mérete csak 20x10 legyen. Próbáljuk meg * karakterekkel teljesen bekeretezni a képernyőt. Próbáljunk magyarázatot találni a működésre.

#8   Smiley nagyítva

Rajzoljunk ki szokásos smiley-kat a képernyőre * karakterekből. Pl :-) :D ;) Az egyes smiley-k között a program várakozzon egy space leütésére.

#9   Kifejezések kiírása

A feladatok célja a egyszerű numerikus kifejezések írása, zárójelezés, egész-osztás és maradékos osztás gyakorlása.

#10   Mennyi lehet a 3+2 ?

Próbáljuk ki az alábbi program-sorokat, figyeljük meg mikor mit ír ki a program, és miért (magyarázzuk meg az eredményeket):

Console.WriteLine("3+2");
Console.WriteLine(3+2);
Console.WriteLine(3*2);
Console.WriteLine(3-2);
Console.WriteLine(3/2);
Console.WriteLine(17%3);
 
#11   3+2=5 program írása

Írassuk ki egy sorba a "3+2=5" kifejezést, és az eredményt is.

  • Első próbálkozás:

Console.WriteLine("3+2=",3+2);
 
  • Második próbálkozás:

Console.WriteLine("3+2=");
Console.WriteLine(3+2);
 
  • Javított második próbálkozás:

Console.Write("3+2=");
Console.WriteLine(3+2);
 
  • Működő megoldás:

Console.WriteLine("3+2={0}",3+2);
 
#12   Változók bevezetése
  • 3+2=5 változókkal

Oldjuk meg az előző problémát úgy, hogy a kifejezésekben szereplő értékeket kiemeljük a kifejezések elé, elkülönítve, hogy könnyű legyen más értékekre áttérni (csökkentsük a redundanciát):

int a=3;
int b=2;
Console.WriteLine("{0}+{1}={2}",a,b,a+b);
Console.WriteLine("{2}-{1}={0}",a,b,a+b);
 
  • 3+2=5 tört változókkal

Módosítsuk az előző programot oly módon, hogy tört értékekre is működjön.

Figyeljük meg, hogy a program szövegében a tört értékeket minden esetben tizedespont segítségével kell beírni, de a képernyőre kiíráskor tizedevesszőt használ a program.

double a=3.2;
double b=2.4;
Console.WriteLine("{0}+{1}={2}",a,b,a+b);
Console.WriteLine("{2}-{1}={0}",a,b,a+b);
 
#13   Változók értékének feltöltése billentyűzetről

Ez előző gondolatmenetet folytassuk, a programban szereplő értékeket azonban dinamikusan, a program futása során állítsuk elő - kérjük be billentyűzetről:

// első érték bekérése
Console.Write("Kérem az első számot:");
string s = Console.ReadLine();
int a = int.Parse(s);
// második érték bekérése
Console.Write("Kérem a második számot:");
string p = Console.ReadLine();
int b = int.Parse(p);
// számolások
Console.WriteLine("{0}+{1}={2}",a,b,a+b);
Console.WriteLine("{2}-{1}={0}",a,b,a+b);
 

Amennyiben az adatok tört számok is lehetnek, mind a változók típusát át kell írni double-ra, mind az int.Parse(..)-t le kell cserélni double.Parse(...)-ra. Az adat beírása során magyar területi beállításokkal rendelkező Windows esetén tizedesvesszőt kell használni:

// első érték bekérése
Console.Write("Kérem az első számot:");
string s = Console.ReadLine();
double a = double.Parse(s);
// második érték bekérése
Console.Write("Kérem a második számot:");
string p = Console.ReadLine();
double b = double.Parse(p);
// számolások
Console.WriteLine("{0}+{1}={2}",a,b,a+b);
Console.WriteLine("{2}-{1}={0}",a,b,a+b);
 
#14   Számjegyenkénti bekérés v1

Írjunk olyan programot, amely számjegyenként bekér egy 2 jegyű számot, majd kiszámolja ezen szám kétszeresét és kiírja a képernyőre (ehhez ki kell számolni a 10-es számrendszerbeli alak alapján a szám tényleges értékét).

#15   Számjegyenkénti bekérés v2

Írjunk olyan programot, amely számjegyenként bekér egy 3 jegyű kettes számrendszerbeli számot, majd kiszámolja ezen szám tízes számrendszerbeli alakját.

#16   Minden művelet

Kérjünk be két egész számot, majd végezzünk el minden lehetséges numerikus műveletet a két szám között, és írjuk ki a műveletet és az eredményét a képernyőre.

#17   Celsius-Fahrenheit

Kérjünk be egy hőmérséklet értéket Celsiusban, és váltsuk át Fahrenheit-be. Ehhez a celsiusban mért értéket meg kell szorozni 1.8 -al, és hozzá kell adni 32-t.

#18   Dolgozat százalékos eredménye

Kérjünk be egy dolgozat pontszámot, majd a maximális pontszámot. Számoljuk ki a dolgozat százalékos eredményét.

Házi feladatok

#1   Szorzótábla

Rajzoltassuk ki a képernyőre a 10x10 szorzótáblát. Használjuk a szegény ember táblázata rajzolókaraktereket (poor man's table), a + karaktert a függőleges vonalat és a kötőjelet. A táblázatnak legyen 10 sora és 10 oszlopa, a cellákban az adott számok szorzata legyen. Az oszlop és sor indexekbeli számok legyenek kékek, a szorzatelemek legyenek zöldek. A táblázatrajzoló karakterek legyenek szürkék.

#1   Vízszintes sávok

Rajzoljunk 4 vízszintes sávot a képernyőre. Egy sáv 2 sornyi vastag * karakterből álljpn A sorok 20 karakter szélesek legyenek. Az egyes sávok megjelenése között teljen el pontosan 1 másodperc.

#2   Függőleges sávok

Rajzoljunk 4 függőleges sávot a képernyőre. Egy-egy sáv legyen 5 karakter magas. A sávok megjelenése között 1 másodpercet várakozzon a program. Figyelem! Nagyságrendekkel nehezebb feladat!

#3   Névjegykártya

Egy karakteres alapú névjegykártyát készítsünk, nevünkkel, elérhetőségeinkkel (mail, telefon, lakcím), színes karakterkiírásokkal, bekeretezve.

#4   Kerület terület

Kérjük be egy téglalap 'a' és 'b' oldalhosszúságát, és irassuk ki a terület és kerület értékeket (valamint a használt képletet is).

#5   Síkidom

Keressünk egy számunkra szimpatikus síkidomot (háromszög, ellipszis, trapéz, ...), keressük meg a kerület és terület képletét, majd kérjük be a szükséges adatokat billentyűzetről, és írassuk ki a kerületet és területet felhasználva a képleteket.

#6   Fényév-Km

Számoljunk át egy fényévekben megadott távolságot (tört érték) Km-be, majd határozzuk meg, hogy egy 120 Km/h közlekedő autónak hány napig tartana megtenni ezt a távolságot, és 10 l-es fogyasztás mellett mennyi benzinre lenne szükség (1 fényév = a fény által egy év alatt megtettt távolság, a fény másodpercenként 299 792 458 métert tesz meg (vákuumban), tehát kb 300e m/sec).

A házi feladat megoldása során nézzünk utána az alábbiaknak:

  • Console.ForegroundColor
  • Console.BackgroundColor
  • Console.SetCursorPosition
  • Math.Sqrt

Hernyák Zoltán
2013-03-16 10:52:47