egyenifelkeszules

Bevezetés, adatszerkezetek.

File kezelés


 Szövegfájl beolvasása:

using System.IO; // Fájlkezeléshez szükséges névtér

string[] data = File.ReadAllLines(“petofi.txt”);
foreach (string x in data)
{ Console.WriteLine(x);}

 


Új sor hozzáfűzése szövegfájlhoz:

File.AppendAllText(“text.txt”,”qqqqqqq\n”);
string[] data = File.ReadAllLines(“text.txt”);
foreach (string x in data)
{Console.WriteLine(x);}


Új sorok hozzáfűzése szövegfájlhoz

using System.IO; // Fájlkezeléshez szükséges névtér

string[] ujSor = new string[] { “Sor 1 ide”, “Sor 2 ide” };
File.AppendAllLines(“text.txt”, ujSor);
string[] data = File.ReadAllLines(“text.txt”);
foreach (string x in data)
{Console.WriteLine(x);}


Fájl másolása

File.Copy(“text.txt”,”text2.txt”);


Fájl törlése:

File.Delete (“text2.txt”);


Fájl adott elemének és hosszának lekérdezése:

string[] data = File.ReadAllLines(“text.txt”);
foreach (string x in data)
{
Console.WriteLine(x);
}
Console.WriteLine(“2. sor: “+data [2]);
Console.WriteLine(“Hossz: ” + data.Length );


 

 

 

 Feladatok:

 

  1. Készíts programot, amely kiírja egy előre elkészített fájl sorait .
  2. Készíts programot, amely az előző fájlhoz további sorokat fűz hozzá.
  3. Készíts programot, amely kiírja az előző fájl sorait megszámozva.
  4. Készíts programot, ami neveket kér be és ezeket fájlban tárolja, majd az adat bevitel végén kiírja az így elkészített fájl sorait .
  5. Készítsd el az előző program menü vezérelt változatát.(Menüpontok: Adatbevitel, Mentés, Fájl kiíratása, Fájl törlése)
  6. Készíts programot, amely egy fájlba beleírja az első N természetes szám valódi osztóit, minden sorba egy számot:
    pl.:
    10: 2 5
    11:
    12: 2 3 4 6
  7. Adott egy fájl, minden sorában három szám: egy háromszög oldalainak hosszai. Készíts programot, amely megadja a legnagyobb kerületű háromszöget (a sorszámát és az adatait).

 

  1. Készíts programot, amely átmásolja egy fájlnak azon sorait, amelyek több mint egy szóból állnak, egy másik fájlba.
  2. Készíts programot, amely átmásolja egy fájlnak minden ‘a’ betűvel kezdődőszavát egy másik fájlba.
  3. Adott egy szöveges fájl, minden sorában egy (tetszőleges hosszú) számsorral. Készíts programot, amely megadja, hogy melyik sorban legnagyobb a számok minimuma.
  4. Készítsünk programot, ami létrehoz egy menüt:
    1., Névsor listázása
    2., Új név hozzáadása
    3., Név törlése
    0., Kilépés
    Tároljuk a nevet, születési évet és a nemet. Új név hozzáadásakor a rendszer az adatot azonnal kiírja fájlba. Törlés esetén a módosított névsor legyen a fájlban.
  5. Készítsünk programot, amely beolvas egy szöveges állományt, majd egy másik állományba kiírja a beolvasott szöveget csupa nagybetűkkel.
  6. Készítsünk programot, amely beolvas egy szöveges állományt, majd a beolvasott szöveget kiírja egy másik állományba úgy, hogy mindegyik karaktere után tesz egy szóközt.

Összetett adatszerkezetek

 

String (szöveg) Könyv: 117-127

Tömb(vektor, mátrix) Könyv: 71-86

segítség: http://ovkr.blog.hu

Tömbök

  • A tömb egy összetett adatstruktúra
  • Tetszőleges számú, előre meghatározott számú eleme van
  • Az elemek típusa azonos
  • A tömb lehet egy vagy többdimenziós, a dimenzió száma nem korlátozott. Az egydimenziós tömb = vektor!
    Kétdimenziós tömb = Táblázat (mátrix)!
  • Vannak olyan tömbök is melyek elemszáma nincs előre meghatározva, ezek a dinamikus tömbök.

Deklaráció:

Egydimenziós tömb

  • int[] iTomb; iTomb = new int[15];
  • int[] iTomb = new int[15];
  • string[] strSzoveg = new string[15]; // 15 elemű string tömb
  • double[] dTomb = new double[12]; // 12 elemű valós tömb
  • bool[] bTomb = new bool[23]; // 23 elemű logikai tömb
  • int[] iTomb = new int[3] {3,4,5};
  • string[] strSzoveg = new string[3] {“első”,”második”,”harmadik”};

Két dimenziós tömb (mátrix)

  • int[,] matrix = new int[3, 3];
  • int[,] matrix = new int[,]
    {
    {12, 23, 2},
    {13, 67, 52},
    {45, 55, 1}
    };

Fontosabb tulajdonságok és metódusok, programozási tételek:

  • index
  • hossz: length()
  • rendezés: sort()
  • maximum: max()
  • minimum: min()
  • Eldöntés
  • Kiválogatás

 Feladatok:

  1. feladat:Deklarálj egy int típusú tízelemű tömböt! Töltsd fel 1-től 10-ig számokkal! Írasd ki a tömb elemeit!
  2. feladat: Deklarálj egy int típusú tízelemű tömböt! Töltsd fel 10-től 1-ig számokkal! Írasd ki a tömb elemeit!
  3. feladat:Deklarálj egy int típusú tízelemű tömböt! Töltsd fel 2-vel kezdődően páros számokkal! Írasd ki a tömb elemeit!
  4. feladat: Deklarálj egy int típusú tízelemű tömböt!Töltsd fel 1-gyel kezdődően páratlan számokkal! Írasd ki a tömb elemeit!
  5. feladat:Deklarálj egy int típusú tízelemű tömböt!Töltsd fel minden elemét azzal a számmal, amit a felhasználótól kérsz be! Írasd ki a tömb elemeit!
  6. feladat: Deklarálj egy int típusú tízelemű tömböt! Töltsd fel azzal a számmal kezdődően, amit a felhasználótól kérsz be! Írasd ki a tömb elemeit!
  7. feladat:Deklarálj egy int típusú tízelemű tömböt!Töltsd fel azzal a számmal kezdődően, amit a felhasználótól kérsz be! Ügyelj arra, hogy csak az 5-tel osztható számokat használd!(Ha a bekért szám nem osztható 5-tel, akkor a program újra kérje be a számot!) Írasd ki a tömb elemeit!
  8. feladat: Deklarálj egy int típusú tízelemű tömböt! Töltsd fel azzal a számmal kezdődően, amit a felhasználótól kérsz be! Ügyelj arra, hogy csak az 5-tel vagy 6-tal osztható számokat használd!(Ha a bekért szám nem osztható 5-tel vagy 6-tal, akkor a program újra kérje be a számot!) Írasd ki a tömb elemeit!
  9. feladat:Deklarálj egy int típusú tízelemű tömböt! Töltsd fel azzal a számmal kezdődően, amit a felhasználótól kérsz be! Ügyelj arra, hogy csak az 5-tel és 6-tal osztható számokat használd! (Ha a bekért szám nem osztható 5-tel és 6-tal, akkor a program újra kérje be a számot!) Írasd ki a tömb elemeit!
  10. feladat: Az első kilenc feladatot valósítsd meg menüszerkezettel! A menü egy-egy részfeladat végrehajtódása után újra jelenjen meg! A menü tartalmazzon „Kilépés” opciót!
  11. Olvassunk be egész számokat 0 végjelig egy maximum 100 elemű tömbbe (a tömböt 100 eleműre deklaráljuk, de csak az elejéből használjunk annyi elemet, amennyit a felhasználó a nulla végjelig beír).
    - Írjuk ki a számokat a beolvasás sorrendjében.
    - Írjuk ki az elemek közül a legkisebbet és a legnagyobbat, tömbindexükkel együtt.
    - Írjuk ki az elemeket fordított sorrendben.


  12. Olvassunk be egész számokat egy 20 elemű tömbbe, majd kérjünk be egy egész számot. Keressük meg a tömbben az első ilyen egész számot, majd írjuk ki a tömbindexét. Ha a tömbben nincs ilyen szám, írjuk ki, hogy a beolvasott szám nincs a tömbben
  13. Állítsunk elő egy 50 elemű tömböt véletlen egész számokból (0-tól 9-ig terjedő számok legyenek).
    - Írjuk ki a kigenerált tömböt a képernyőre.
    - Számítsuk ki az elemek összegét és számtani középértékét.
    - Olvassunk be egy 0 és 9 közötti egész számot, majd határozzuk meg, hogy a tömbben ez a szám hányszor fordul elő.
  14.    Állítsunk elő egy 30 elemű tömböt véletlen egész számokból (0-tól 99-ig).
    - Írjuk ki a kigenerált tömböt a képernyőre.
    - Olvassunk be egy egész számot. Határozzuk meg, hogy a tömbben melyik számok vannak a legközelebb ehhez a beolvasott számhoz, majd írjuk ki az összes ilyen számot a tömbből a tömbindexükkel együtt. (A két szám közti különbség meghatározásához használjuk az abszolút érték funkciót, pl. abs(x–y) )
  15. Állítsunk elő egy 150 elemű tömböt véletlen egész számokból –999-től 999-ig. Rendezzük ezt a tömböt nagyság szerint növekvő sorrendben, majd írjuk ki a képernyőre.     A rendezésre a következő rendezési algoritmust használjuk (rendezés a legkisebb elem kiválasztásával):
    - kiválasztjuk a tömb 1.-150. elemei közül a legkisebbet, ezt kicseréljük a tömb 1. elemével (így a legkisebb szám a tömbben az első helyre került),
    - kiválasztjuk a tömb 2.-150. elemei közül a legkisebbet, ezt kicseréljük a tömb 2. elemével,
    - kiválasztjuk a tömb 3.-150. elemei közül a legkisebbet, ezt kicseréljük a tömb 3. elemével,
    - végül kiválasztjuk a tömb 149.-150. elemei közül a legkisebbet, ezt kicseréljük a tömb 149. elemével.

Egyéni felkészítés

  1. Bevezetés, adatszerkezetek
  2. Iteráció, szelekció
  3. Összetett adatszerkezetek
  4. Fájlkezelés

Tankönyvek:

  1. Reiter István: C# jegyzet
  2. Achs Ágnes–Szendrői Etelka: Az objektumorientált paradigma alapjai
  3. Dr. Kovács Emőd, Hernyák Zoltán, Radványi Tibor, Király Roland: A C# programozási nyelv a felsőoktatásban

Programozás: iteráció-szelekció (Ciklus-elágazás)

Ciklusok:

FOR (Könyv: 61-71)
WHILE elöltesztelő (Könyv: 99-108)
DO-While hátultesztelő (Könyv: 99-108)

Feladat:

  • 0-9 ig a számok egymás alá “for” ciklussal
  • 0-9 ig a számok egymás alá “while” ciklussal
  • 0-9 ig a számok egymás alá “do-while” ciklussal
  • További feladatok könyv 108. oldal

Elágazások:

IF: (könyv: 54-60)
if()
{}

feladat(if):

  • Kérj be egy számot. Ha 10-nél nagyobb akkor írasd ki, hogy “Nagy!” ellenkező esetben csak a számot.

______
IF-ELSE:
if()
{}
else
{}

feladat(if-else):

  • Kérj be egy számot. Ha 10-nél nagyobb akkor írasd ki, hogy “Nagy!” ellenkező esetben azt, hogy “Kicsi!”.
  • További feladatok könyv 60. oldal

______
SWITCH-CASE:

switch(x)
{
case 2: utasítások; break;
.
.
.
case 7: utasítások; break;
case 8: utasítások; break;
.
.
default: utasítások; break;

}

feladat(switch-case):

  • Írj programot ami a bekért osztályzat(1-5) alapján kiírja a minősítést. (elégtelen, elégséges, közepes, jó, jeles)
  • Készíts programot ami 0-9 -ig kiírja a bekért számokat szövegesen.

Gyakorló feladatok: Ciklus és elágazás használata

    1. Írj programot “do-while” ciklus felhasználásával ami bekér egy számot 10 és 50 között,
      más értéket nem fogad el.
    2. Írj programot “do-while” ciklus felhasználásával ami bekér egy számot 10 és 50 között,
      más értéket nem fogad el, betű nem adható meg.
    3. Old meg a fenti feladatot “while” ciklus felhasználásával.
    4. Írj programot ami számokat kér be végjelig (“Q”), majd a végjel megadása után a számok összegét kiírja.
    5. Készíts programot, ami kiírja 1-10-ig egymás alá a számokat és mellé
      a szám értékének megfelelő számú * karaktert tesz.
    6. Készíts programot, ami, elöl tesztelős ciklussal összeadja a páratlan számokat 11-től 89-ig.
      A végén kiírja az eredményt.
    7. Készíts programot, ami, hátul tesztelős ciklussal összeadja a páratlan számokat 11-től 89-ig.
      A végén kiírja az eredményt.
    8. Olvass be egy pozitív egészet. Add össze 1-től a beolvasott számig az egészeket.
      A program írja ki az összeget és a számok átlagát.
    9. Olvassunk be egész számokat, 0 végjelig (amíg 0 nem érkezik).
      Számoljuk meg hány pozitív és hány negatív szám érkezett.
    10. Számoljuk meg, hogy egy begépelt szövegben hány “e” betű van?(for és if)
    11. Listázd ki 0-100 között a 3-al osztható számokat.(for és if)
    12. Írj programot, ami eldönti egy számról, hogy prím szám-e?
    13. Olvass be 3 valós számot. Döntsd el, hogy a 3 szám lehet-e egy háromszög 3 oldala.
    14. Döntsd el egy (x,y) koordinátákkal megadott pontról, hogy melyik síknegyedbe esik.
    15. Kérdezzen be a program két számot, és írja ki a köztük lévő relációt szöveges formában!
    16. Írjunk programot, mely bekér egy számot, és eldönti, hogy osztható-e 3-l és 4-l.
    17. Írjunk programot, mely bekér egy számot, és eldönti, hogy osztható-e 3-l és 4-l vagy 9-el.
    18. Írasd ki a számokat 1-től 100-ig egymás alá oldalanként. Egy oldalon 25 sor legyen. Oldalanként billentyűleütésre várjon, majd képernyőtörlés után az új oldal jelenjen meg.
    19. Készítsünk programot, amely bekéri a víz hőmérsékletét, majd eldönti, hogy az milyen halmazállapotú. A halmazállapot lehet folyékony, gőz, vagy jég.
    20. Írjon egy programot, ami leosztályoz egy maximálisan 100 pontos dolgozatot az 50, 65, 80, 90 ponthatárok szerint! A határérték a jobb jegyhez tartozik. Ha a pontszám negatív vagy száznál nagyobb, akkor a program írja ki, hogy hibás az adat! Használj switch szerkezetet.
    21. Készítsünk programot, amely beolvassa egy diák igazolatlan hiányzásainak számát. Ennek megfelelően írassuk ki a magatartás jegyét. Tíz igazolatlan hiányzás elérésekor (vagy ha ezt túlhaladtuk) kérjük be a tanuló születési dátumát és írjuk ki az igazolatlan hiányzásait (amennyiben az érték több mint tíz). Készítsünk kategóriákat az igazolatlan hiányzások száma alapján. Az első kategória figyelmeztetést, a második osztályfőnöki intőt, a harmadik igazgatói megrovást, a negyedik kategória pedig felfüggesztést von maga után. A büntetés mértékét szintén jelezzük a felhasználó felé.

 

Készíts menüt:

bool rendben = false;
do
{
Console.WriteLine(“Válaszz az alábbiak közül:”);
Console.WriteLine(“\t1 — Kutyák”);
Console.WriteLine(“\t2 — Macskák”);
Console.WriteLine(“\t3 — Nyulak”);
Console.WriteLine(“\t4 — Halak”);
Console.Write(“A választott szám + ENTER! (Kilépés: 0): “);
string strValasztas = Console.ReadLine();
int iEzkell;
try
{
iEzkell = int.Parse(strValasztas);
}
catch (FormatException)
{
Console.WriteLine(“\r\nNa…?\n”);
continue;
}
Console.WriteLine(“A választásod ” + iEzkell);
switch (iEzkell)
{
case 0:
rendben = true;
break;
case 1:
Console.WriteLine(“kutya”);
break;
case 2:
Console.WriteLine(“macska”);
break;
case 3:
Console.WriteLine(“nyúl”);
break;
case 4:
Console.WriteLine(“hal”);
break;
default:
Console.WriteLine(“Ilyen számot nem választhatsz!: {0}\n”, iEzkell);
continue;
}
Console.WriteLine();
}
while (!rendben );
Console.WriteLine(“\nViszlát!”);

2017. november
M T W T F S S
« Oct    
 12345
6789101112
13141516171819
20212223242526
27282930