2020. október 21., szerda

2020.10.21. Gyakorlás - Több sort tartalmazó fájl beolvasása

 Készítsd egy fájlt, amiben egy sorban a következő adatok vannak szóközzel elválasztva:

vezetéknév keresztnév születési_hely kor

(Nem lehet két keresztnevet beírni.)

Olvasd be úgy, hogy a vezetéknevet és a keresztnevet rögtön egy tömbbe tedd be, illetve egy második tömbbe kerüljenek a születési helyek, és egy harmadik tömbbe a korok int-ként.

2020. 10.21. Fájlkezelés - egy sorban több adat

 Mintaprogram:

using System;

using System.IO;

 

namespace fajlKezelesBonyolultabb

{

    class Program

    {   

        static string[] nevek = new string[8];

        static int[] korok = new int[8];

 

 

        static void kiir()

        {

            for (int i = 0; i < nevek.Length; i++)

            {

                 Console.WriteLine("{0}, {1}",nevek[i], korok[i]);

            }

        }

 

        static void Main(string[] args)

        {

            StreamReader sr = new StreamReader("diakok.txt");

            string[] atmeneti;

            int i = 0;

            while (!sr.EndOfStream)

            {

                atmeneti = sr.ReadLine().Split(',');

                nevek[i] = atmeneti[0];

                korok[i] = Convert.ToInt32(atmeneti[1]);

                i++;

            }

            sr.Close();

            kiir();

 

            StreamWriter nagybetus = new StreamWriter("nagy.txt");

            for (int j = 0; j < korok.Length; j++)

            {

                nagybetus.WriteLine(nevek[j].ToUpper());

            }

            nagybetus.Close();

 

            Console.ReadLine();

        }

    }

}

Teszt fájl:

Öröm Melitta,15

Avon Mór,16

Ordy Bálint,17

Szikla Szilárd,15

Bekre Pál,17

Heu Réka,17

Mérta Nóra,18

Emanci Pál,16

2020. október 20., kedd

2020.10.20. Fájlkezelés

Házi feladat ez alapján egy olyan programot írni, ami bekér 10 keresztnevet, kiírja a képernyőre, majd nagybetűsen kiírja egy új fájlba.

using System;

using System.IO; //ezt pótolni kell!

 

namespace fajlkezeles

{

    class Program

    {

        static int[] szamTomb = new int[10];

         static void kiiras()

        {

            for (int i = 0; i < szamTomb.Length; i++)

            {

                Console.WriteLine(szamTomb[i]);

            }

        }

         static void Main(string[] args)

        {

            StreamReader sr = new StreamReader("szamok.txt"); //olvasásra megnyitjuk a fájlt

            int i = 0;

            while (!sr.EndOfStream) //addig megyünk, míg vége nincs a fájlnak

            {

                szamTomb[i]= Convert.ToInt32(sr.ReadLine()); //egyszerre egy sort beolvasunk, konvertálunk és beteszünk a tömbbe

                i++;

            }

            sr.Close(); //lezárjuk a fájlt: KÖTELEZŐ ELEM!

             kiiras();

             StreamWriter sw = new StreamWriter("dupla.txt"); //írásra megnyitunk egy fájlt; ha eddig nem létezett, létre is hozza

            for (int j = 0; j < szamTomb.Length; j++)

            {

                sw.WriteLine(szamTomb[j]*2); //írunk a fájlba soronként

            }

            sw.Close(); //lezárjuk a fájlt: KÖTELEZŐ ELEM!

             Console.ReadLine();

        }

    }

}






Ehhez létre kell hozni egy szamok.txt-t, amiben egymás alatt 10 szám van és nem tartalmaz üres sort.

Például:

85

99

1

0

87998

52

951

753

258

66

2020.10.19. -20. Gyakorlás

 Struktúra alapú program írása a minta alapján.

Házi feladat befejezni, akinek nincs kész.

Varsó megoldása:

using System;

 

namespace _20201022

{

    class Program

    {

        public struct phone

        {

            public string marka;

            public string tipus;

            public string szin;

            public int tarhely;

            public double ar;

        }

        static phone[] telefon = new phone[3];

        static void adatbekeres()

        {

           

            for (int i = 0; i < telefon.Length; i++)

            {

                Console.Write("Kérem a telefon márkáját: ");

                telefon[i].marka = Console.ReadLine();

                Console.Write("Kérem a telefon típusát: ");

                telefon[i].tipus = Console.ReadLine();

                Console.Write("Kérem a telefon színét: ");

                telefon[i].szin = Console.ReadLine();

                Console.Write("Kérem a telefon tárhelyét GB-ban: ");

                telefon[i].tarhely = Convert.ToInt32(Console.ReadLine());

                Console.Write("Kérem a telefon árát Forintban: ");

                telefon[i].ar = Convert.ToDouble(Console.ReadLine());

                Console.WriteLine();

 

            }

           

 

        }

 

        static void arengedmeny()

        {

            for (int i = 0; i < telefon.Length; i++)

            {

               telefon[i].ar = telefon[i].ar * 0.9;

            }

        }

 

        static void kiiratas()

        {

            for (int i = 0; i < telefon.Length; i++)

            {

                Console.WriteLine();

                Console.WriteLine((i + 1) + " termék\n-------------------------");

                Console.WriteLine("Márka: " + telefon[i].marka);

                Console.WriteLine("Típus: " + telefon[i].tipus);

                Console.WriteLine("Szín: " + telefon[i].szin);

                Console.WriteLine("Tárhely: " + telefon[i].tarhely);

                Console.WriteLine("Ár: " + telefon[i].ar + " Ft ");

               

            }

        }

 

        static void Main(string[] args)

        {

            Console.WriteLine("Telefonok 2020\n------------------------------\nAdatbekérés\n-----------\n");

            adatbekeres();

            Console.Clear();

            Console.WriteLine("Telefonok 2020\n------------------------------\nLista eredeti árakkal\n-----------\n");

            kiiratas();

            arengedmeny();

            Console.WriteLine("\nLista kedvezményes árakkal\n-----------\n");

            kiiratas();

            Console.Write("\n\nA program bezárásahoz nyomjon meg egy billentyűt...");

            Console.ReadKey();

 

        }

    }

}

 


2020. október 19., hétfő

2020.10.19. Struktúra - ismétlés

1. példa:


        public struct autok
        {
            public int ar; //ft
            public int motor; //cm3
            public int szemely; //fő
            public int teljesitmeny; //lóerő
        }
        static void Main(string[] args)
        {
            autok auto1 = new autok(); 
            auto1.ar = 6000000;
            auto1.motor = 1600;
            auto1.szemely = 5;
            auto1.teljesitmeny = 150;
--------------------------------------------------
Magyarázat:
publicmódosítószó, ami befolyásolja az adott elem láthatóságát. Mostmár nem mindent a Main-be írunk. Amit nem oda írunk, annál szabályozhatjuk, mennyire legyen nyilvános. A public azt jelenti, hogy mindenhol látható. (A private pl. rejtettet jelent majd.)
structa struktúra adatszerkezet kulcsszava. A struktúra a procedurális nyelvekben (pl. Pascal) a rekordnak felel meg. Ebben összefogunk egy szerkezetbe összetartozó adatokat. A struktúra a definiálásakor (lásd a Main felett) még csak egy váz, egy üres szerkezet, ami megmutatja, milyen adatokat fogunk tárolni a példányosításkor.
autoka struktúra neve
public int ar;adattag, más néven mező a struktúrában. olyan, mint egy változó, de ez a struktúra törzsében van, és gyakran nem adunk neki kezdőértéket.
autok auto1 = new autok();  Itt definiálunk egy autok típusú változót auto1 néven, és a new kulcsszóval helyet foglalunk neki a memóriában az autok() konstruktor segítségével. Ezt hívjuk példányosításnak (létrehozunk egy példányt).
auto1.ar = 6000000;  Az auto1 változón belül elérjük az ar mezőt (adattagot), ennek értékül adjuk a jobb oldalon levő értéket.
--------------------------------------------------


2. példa

 namespace struktura

{

    class Program

    {

        public struct auto

        {

            public string gyarto;

            public double motor; //köbcenti

            public int ulesek; //ülések száma

            public bool akcio; //akciós-e

        }

 

        static auto[] autok = new auto[3];

 

        static void bekeres()

        {

            for (int i = 0; i < autok.Length; i++)

            {

                Console.Write("Kérem az {0}. autó gyártóját: ",i+1);

                autok[i].gyarto = Console.ReadLine();

                Console.Write("Kérem az {0}. autó motor térfogatát: ",i+1);

                autok[i].motor = Convert.ToDouble(Console.ReadLine());

                Console.Write("Kérem az {0}. autó üléseinek számát: ",i+1);

                autok[i].ulesek = Convert.ToInt32(Console.ReadLine());

                Console.Write("Adja meg, hogy a(z) {0}. autó akciós-e (true/false)?: ",i+1);

                autok[i].akcio = Convert.ToBoolean(Console.ReadLine());

            }

        }

 

        static void kiiras()

        {

            for (int i = 0; i < autok.Length; i++)

            {

                Console.WriteLine("{0} autó", i+1);

                Console.WriteLine(autok[i].gyarto);

                Console.WriteLine(autok[i].motor);

                Console.WriteLine(autok[i].ulesek);

                Console.WriteLine(autok[i].akcio);

                Console.WriteLine();

            }

        }

 

        static void Main(string[] args)

        {

            bekeres();

            kiiras();

            Console.ReadLine();

        }

    }

}