2021. március 29., hétfő

2021.03.29. Ellenőrzés

Átnéztük és leadtátok a második egyedi programot, megbeszéltük a várható dolgozatot.

2021. március 22., hétfő

2021.03.23. Egyedi program újratöltve

 Tanár úr segítségével kezditek el a következőt. 

Feladat: egy új, az előzőhöz hasonló egyedi program írása.

1. feladat: Csoportonként egy önkéntes hozzon létre egy megosztott dokumentumot, amiben nyilvántartjátok az előző egyedi program témáját, és az újat. Aki később írja bele a témát a doksiba, és egyezés van bármilyen meglévő témával, annak újat kell választani.

A témához írj egy minimum 5 soros fájlt, választott határoló karakterrel (ami lehet TAB is), választott kiterjesztéssel (txt, csv).

2. feladat: program írása a tanult módon, a következő felételekkel:

  • fájlbeolvasás
  • kiírás képernyőre: egy, ami az összes adatot kiírja, és egy másik, ami az adatok egy részét
  • kiírás fájlba - ehhez valamilyen szöveges átalakítást, és valamilyen alap algoritmust használj
  • megszámlálás
  • összegzés
  • minimumkeresés
  • maximumkeresés
  • eldöntés
  • kiválasztás
  • kiválogatás tömbbe
  • lista és/vagy tömb sorba rendezése
  • egyszerű keresés (amikor minden egyes elemnél meg kell vizsgálni a feltételt)

Legyen a feladatok között minél több, de minimum 2 függvény, és minél több, de minimum 2 paraméteres metódus (eljárás/függvény). Legyen minimum egy virtuális metódus is, illetve próbáljon mindenki legalább egy propertyt írni adattag helyett, amihez megvalósítasz egy ellenőrzött bevitelt.

Szorgalmi1: ha kiírtál fájlba valamit, akkor egy újabb feladattal oldd meg, hogy a fájlba folytatólagosan további feladatmegoldás kerüljön. (Egyszerűen ne zárd le előtte a fájlt.)

Szorgalmi2: Ha a témád olyan, akkor próbáld ki, hogy az adatokat ne egy, hanem kettő fájlból olvasd be, és tárold ugyanabban, vagy akár másik listában. Ehhez lehet akár két osztályt is létrehozni.


2021. március 7., vasárnap

2021.03.08./2. - 11. Egyedi program

 Egy új programot kell elkezdeni, ami mindenkinek egyedi lesz. Ki kell találnod egy témát, amihez egy öt soros fájlt kell összeállítanod. A téma legyen olyan, ami érdekel (játékok, telefonok, horgászat, kondi...)

Pont úgy, mint a focisnál, csak ez legyen mindenkinek egyedi.

A héten ezen fogsz dolgozni, lehetőleg csütörtökre a következőknek kell benne lenni:

A következő algoritmusok megoldásai a megadott kikötésekkel - mert ügyesek vagytok :)

  • a fájlbeolvasás
  • kiírás képernyőre
  • kiírás fájlba
  • megszámlálás
  • összegzés
  • minimumkeresés
  • maximumkeresés
  • eldöntés
  • kiválasztás
  • kiválogatás tömbbe
  • egyszerű keresés (amikor minden egyes elemnél meg kell vizsgálni a feltételt)

Legyen benne 2 függvény, és két paraméteres metódus (eljárás/függvény).


2021.03.08./1. Városok program befejezése, ellenőrzése

 Mai első feladatod: A blogba kitettem egy lehetséges megoldását a városok programnak (ott van, ahol a feladatot kiírtam). Ellenőrizd először az utolsó feladatot, majd vedd át az elejétől a végéig az egészet újra. Tedd be a digifüzetbe.


2021.03.04. Gyakorlás

 Folytattuk a városos feladatmegoldást.

2021. március 1., hétfő

2021.03.01. Városok OOP verzió

 A városos feladatsorunkból készítünk egy új verziót.

Az eredeti itt van.

Új feladatsor: 

            //A program neve legyen: varosok.

            //A tanult objektum-orientált programszerkezetet használd a megoldásnál.

            //Minden képernyőre író feladat előtt írjuk ki a főprogramban a feladat sorszámát.

            //A fájl most 5 sort tartalmaz, de a programod készüljön fel arra,

            //hogy hosszabb, és más tartalmú fájlt is fel tudjon dolgozni.

           

            //A programban városok adatait tároljuk.

            //Az adatok soronként: a város neve, lakosainak száma, Budapesttől mért távolsága,

            //illetve amelyik város nem megyeszékhely, ott még ez is szerepel: NO.

 

            //Ez legyen a varosok.txt tartalma:

            /*

            Békéscsaba 59000 210

            Szolnok 72000 119

            Kecskemét 112000 93

            Nyíregyháza 118000 230 NO

            Miskolc 164000 182

            */

 

            //1.feladat:

            //Olvasd be a fájlt, és tárold a tartalmát egy osztálypéldányokat tartalmazó listában. 

            //2.feladat:

            //Írd ki az adatokat a képernyőre, egy sorba egy város adatait.          

 

            //3.feladat:

            //Írd ki a képernyőre annak a városnak a nevét, és a népességét, amely nem megyeszékhely.

            //(Ha több ilyen lenne, mindet ki kéne írni.) Ha nincs ilyen, írj ki hibaüzenetet.

 

            //4.feladat:

            //Írd ki a Budapesttől legtávolabbi város nevét a képernyőre. A feladatot lehetőleg függvénnyel valósítsd meg. Ha nem függvénnyel valósítod meg, kaphatsz részpontokat.        

 

            //5.feladat:

            //Írd ki a legkevesebb lakosú város nevét a képernyőre. A feladatot lehetőleg függvénnyel valósítsd meg. Ha nem függvénnyel valósítod meg, kaphatsz részpontokat.      

             

            //6.feladat:

            //Kérd meg a felhasználót a főprogramban, hogy adjon meg egy lakosságszámot. Írd ki a felhasználó által beírt érték fölötti lakosságszámnál nagyobb lakosságú városok neveit, soronként egyet.

            //Ha nincs ilyen, írj ki hibaüzenetet.

 

            //7.feladat:

            //Döntsd el, hogy van-e 180 km-nél távolabbi város. Ha találsz ilyet,

            //írd ki az elsőnek a nevét és a hozzá tartozó km-t.

            //Ha nincs ilyen, írj ki hibaüzenetet.

 

            //8. feladat:

            //Írd ki egy új fájlba a városok neveit nagybetűsen,

            //mögéjük vesszővel elválasztva azt a szót,

            //hogy megyeszékhely/nem megyeszékhely

            //(a valóságnak megfelelően).


Egy lehetséges megoldás (Varsó):
using System
using System.IO
using System.Linq
using System.Collections.Generic
namespace _20210217 
    class Varos 
    { 
        public string varosnev
        public int lakosokszama
        public int tavolsag
        public string megyeszekhely
        public Varos(string sor
        { 
            List<stringatmeneti = sor.Split(" ").ToList(); 
            varosnev = atmeneti[0]; 
            lakosokszama = Convert.ToInt32(atmeneti[1]); 
            tavolsag = Convert.ToInt32(atmeneti[2]); 
            if (atmeneti.Count < 4) 
            { 
                megyeszekhely = "Igen"
            } 
            else 
            { 
                if (atmeneti[3] == "NO"
                { 
                    megyeszekhely = "Nem"
                } 
                else 
                { 
                    throw new Exception("A sor helytelen adatot tartalmaz!"); 
                } 
            } 
        } 
        public string teljeskiiras() 
        { 
            string ki = $"Település neve: {varosnev}, Lakosok száma: {lakosokszama} fő, Budapesttől való távolság: {tavolsag} km, Megyeszékhely? {megyeszekhely}"
            return ki
        } 
    } 
    class Program 
    { 
        static string lakszamFelett(List<Varosaint b
        { 
            string lakFelettKiir = ""
            bool van = false
            for (int i = 0; i < a.Counti++) 
            { 
                if (b < a[i].lakosokszama
                { 
                    lakFelettKiir += "\n" + a[i].varosnev
                    van = true
                } 
            } 
            if (!van
            { 
                lakFelettKiir = "Nincs az ön által megadott lakosságszámnál nagyobb lakosszámmal rendelkező település."
            } 
            return lakFelettKiir
        } 
        static void fajlkiiras(List<Varosa
        { 
            StreamWriter sw = new StreamWriter("Varos1.txt"); 
            for (int i = 0; i < a.Counti++) 
            { 
                if (a[i].megyeszekhely == "Nem"
                { 
                    sw.WriteLine($"{a[i].varosnev.ToUpper()},Nem megyeszékhely"); 
                } 
                else 
                { 
                    sw.WriteLine($"{a[i].varosnev.ToUpper()},Megyeszékhely"); 
                } 
            } 
            sw.Close(); 
        } 
        static string kmMesszebb(int vizsgtavList<Varosa
        { 
            bool megfelel = false
            int k = 0; 
            while (k < a.Count && !megfelel
            { 
                if (a[k].tavolsag > vizsgtav
                { 
                    megfelel = true
                } 
                k++; 
            } 
            if (megfelel
            { 
                return $"{a[k - 1].varosnev} az az első település amely Budapesttől {vizsgtav} kilométeren túl helyezkedik el! A távolság {a[k - 1].tavolsag} kilométer."
            } 
            else 
            { 
                return $"HIBA! Nincsen olyan település az adatok között amely Budapesttől messzebb lenne, mint {vizsgtav} kilométer"
            } 
        } 
        static void Main(string[] args
        { 
            //A program neve legyen: varosok. 
            //A tanult objektum-orientált programszerkezetet használd a megoldásnál. 
            //Minden képernyőre író feladat előtt írjuk ki a főprogramban a feladat sorszámát. 
            //A fájl most 5 sort tartalmaz, de a programod készüljön fel arra, 
            //hogy hosszabb, és más tartalmú fájlt is fel tudjon dolgozni. 
            //A programban városok adatait tároljuk. 
            //Az adatok soronként: a város neve, lakosainak száma, Budapesttől mért távolsága, 
            //illetve amelyik város nem megyeszékhely, ott még ez is szerepel: NO. 
            //Ez legyen a varosok.txt tartalma: 
            /* 
            Békéscsaba 59000 210 
            Szolnok 72000 119 
            Kecskemét 112000 93 
            Nyíregyháza 118000 230 NO 
            Miskolc 164000 182 
            */ 
            //1.feladat: 
            Console.WriteLine("1. feladat"); 
            //Olvasd be a fájlt, és tárold a tartalmát egy osztálypéldányokat tartalmazó listában. 
            List<Varosvarosok = new List<Varos>(); 
            foreach (var i in File.ReadAllLines("varosok.txt")) 
            { 
                varosok.Add(new Varos(i)); 
            } 
            //2.feladat: 
            //Írd ki az adatokat a képernyőre, egy sorba egy város adatait.  
            Console.WriteLine("2. feladat"); 
            for (int i = 0; i < varosok.Counti++) 
            { 
                Console.WriteLine(varosok[i].teljeskiiras()); 
            } 
            //3.feladat: 
            Console.WriteLine("3. feladat"); 
            //Írd ki a képernyőre annak a városnak a nevét, és a népességét, amely nem megyeszékhely. 
            //(Ha több ilyen lenne, mindet ki kéne írni.) Ha nincs ilyen, írj ki hibaüzenetet. 
            bool megyeszhely = false
            for (int i = 0; i < varosok.Counti++) 
            { 
                if (varosok[i].megyeszekhely == "Nem"
                { 
                    Console.WriteLine(varosok[i].teljeskiiras()); 
                    megyeszhely = true
                } 
            } 
            if (megyeszhely == false
            { 
                Console.WriteLine("Nincs olyan település a listában, amely nem megyeszékhely!"); 
            } 
            //4.feladat: 
            //Írd ki a Budapesttől legtávolabbi város nevét a képernyőre. A feladatot lehetőleg függvénnyel valósítsd meg. Ha nem függvénnyel valósítod meg, kaphatsz részpontokat.         
            Console.WriteLine("4. feladat\nLegtávolabbi város nevének kiiratása..."); 
            int max = Convert.ToInt32(varosok[0].tavolsag); 
            int legtavolabbi = 0; 
            for (int i = 0; i < varosok.Counti++) 
            { 
                if (max > varosok[i].tavolsag
                { 
                    max = varosok[i].tavolsag
                    legtavolabbi = i
                } 
            } 
            Console.WriteLine(varosok[legtavolabbi].teljeskiiras()); 
            //5.feladat: 
            //Írd ki a legkevesebb lakosú város nevét a képernyőre. A feladatot lehetőleg függvénnyel valósítsd meg. Ha nem függvénnyel valósítod meg, kaphatsz részpontokat.       
            Console.WriteLine("5. feladat\nLegkevesebb lakosú város nevének kiiratása..."); 
            int min = Convert.ToInt32(varosok[0].lakosokszama); 
            int legkevesebblakos = 0; 
            for (int i = 0; i < varosok.Counti++) 
            { 
                if (min < varosok[i].lakosokszama
                { 
                    min = varosok[i].lakosokszama
                    legkevesebblakos = i
                } 
            } 
            Console.WriteLine(varosok[legkevesebblakos].teljeskiiras()); 
            //6.feladat: 
            //Kérd meg a felhasználót a főprogramban, hogy adjon meg egy lakosságszámot. Írd ki a felhasználó által beírt érték fölötti lakosságszámnál nagyobb lakosságú városok neveit, soronként egyet. 
            //Ha nincs ilyen, írj ki hibaüzenetet. 
            Console.WriteLine("6. feladat\nLakosságbekérés"); 
            Console.Write("Kérek egy értéket: "); 
            int bekert = Convert.ToInt32(Console.ReadLine()); 
            Console.WriteLine(lakszamFelett(varosokbekert)); 
            //7.feladat: 
            //Döntsd el, hogy van-e 180 km-nél távolabbi város. Ha találsz ilyet, 
            //írd ki az elsőnek a nevét és a hozzá tartozó km-t. 
            //Ha nincs ilyen, írj ki hibaüzenetet. 
            Console.WriteLine("7. feladat\n180 km-nél távolabbi városok kilistázása..."); 
            const int vizsgertek = 180; 
            Console.WriteLine(kmMesszebb(vizsgertekvarosok)); 
            //8. feladat: 
            //Írd ki egy új fájlba a városok neveit nagybetűsen, 
            //mögéjük vesszővel elválasztva azt a szót, 
            //hogy megyeszékhely/nem megyeszékhely 
            //(a valóságnak megfelelően). 
            Console.WriteLine("8. feladat\nVárosok kiiratása fájlba..."); 
            fajlkiiras(varosok); 
            Console.WriteLine("A program bezárásahoz nyomjon meg egy billentyűt..."); 
            Console.ReadKey(); 
        } 
    }