2022.03.16. Városok - megoldással

Első óránkon töri próbaérettségi volt. 

Aztán folytattuk a városos programot. Házi feladat befejezni.


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace _2022._03._09
{
    class Varos
    {
        public string nev;
        public int lakossag;
        public int tavolsag;
        public bool megyeszekhely;

        public Varos( string sor)
        {
            List<string> atmeneti = sor.Split(" ").ToList();
            nev = atmeneti[0];
            lakossag =Convert.ToInt32( atmeneti[1]);
            tavolsag= Convert.ToInt32(atmeneti[2]);
            if (atmeneti.Count==3)
            {
                megyeszekhely = true;
            }
            else
            {
                if (atmeneti.Count==4)
                {
                    megyeszekhely = false;
                }
            }
        }
       
        public void kiir()
        {
            Console.WriteLine("Városnév: {0} Lakosság: {1} távolság: {2}",nev,lakossag,tavolsag,megyeszekhely);
            if (megyeszekhely)
            {
                Console.WriteLine("megyeszékhely");
            }
        }
    }
    class Program
    {
        static void nemMegyeszekhely3(List<Varos>v)
        {
            bool van = false;
            for (int i = 0; i <v.Count; i++)
            {
                if (!v[i].megyeszekhely)
                {
                    Console.WriteLine($"Neve: {v[i].nev} Népessége: {v[i].lakossag}");
                    van = true;
                }
            }
            if (!van)
            {
                Console.WriteLine("Minden település megyeszékhely.");
            }
           
        }
        static bool nemMegyeszekhely3fv(List<Varos> v)
        {
            bool van = false;
            for (int i = 0; i < v.Count; i++)
            {
                if (!v[i].megyeszekhely)
                {
                    Console.WriteLine($"Neve: {v[i].nev} Népessége: {v[i].lakossag}");
                    van = true;
                }
            }
            return van;
        }
        static int legtavolabbi4(List<Varos>v)
        {
            int max =v[0].tavolsag;
            int index = 0;
            for (int i = 1; i < v.Count; i++)
            {
                if (v[i].tavolsag>max)
                {
                    max = v[i].tavolsag;
                    index = i;
                }
            }
            return index;
        }
        static int minimum(List<Varos> v)
        {
            int min = v[0].lakossag;
            int index = 0;
            for (int i = 1; i < v.Count; i++)
            {
                if (v[i].lakossag < min)
                {
                    min = v[i].lakossag;
                    index = i;
                }
            }
            return index;
        }
        static void lakos(List<Varos> v,int fel)
        {
            for (int i = 0; i < v.Count; i++)
            {
                if (v[i].lakossag>fel)
                {
                    Console.WriteLine(v[i].nev);
                   
                }
            }
            if (fel > 164000)
            {
                Console.WriteLine("hiba");
            }
        }
        static void BP(List<Varos>v )
        {
            int szam = 180;
            int i = 0;
            bool igaz = false;

            while (i<v.Count && !igaz)

            {
                if (v[i].tavolsag>szam)
                {
                Console.WriteLine("Ez a varos tavolabb van mint 180km {0}",v[i].nev);
                igaz = true;
                }    
                i++;
            }
            if (!igaz)

            {
                Console.WriteLine("Nincs 180km-nél tavolabbi varos");
            }
        }
        static void olvas(List<Varos>v)
        {
            StreamWriter sr = new StreamWriter("Varosok2.txt");
            int i = 0;
            while (i<v.Count)
            {
                sr.Write("{0}", v[i].nev.ToUpper());
                if (v[i].megyeszekhely==true)
                {
                    sr.WriteLine(" megyeszékhely");
                }
                else
                {
                    sr.WriteLine(" nem megyeszékhely");
                }
                i++;
            }
            sr.Close();
        }
        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:

            //Olvasd be a fájlt, és tárold a tartalmukat egy osztálypéldányokat tartalmazó listában.
            Console.WriteLine("1.feladat");
            List<Varos> varosok = new List<Varos>();
            foreach (var item in File.ReadAllLines("varosok.txt"))
            {
                varosok.Add(new Varos(item));
            }
           
            //2.feladat:
            Console.WriteLine("2.feladat");
            //Írd ki az adatokat a képernyőre, egy sorba egy város adatait.          
            for (int i = 0; i < varosok.Count; i++)
            {
                varosok[i].kiir();
            }

            //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.
            nemMegyeszekhely3(varosok);
            Console.WriteLine("3.feladat függvénnyel");
            if (!nemMegyeszekhely3fv(varosok))
            {
                Console.WriteLine("Minden település megyeszékhely.");
            }

            //4.feladat:
            Console.WriteLine("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.        
            int ind = legtavolabbi4(varosok);
            Console.WriteLine($"A Budapesttől legtávolabbi város neve: {varosok[ind].nev} és távolsága: {varosok[legtavolabbi4(varosok)].tavolsag} km");

            //5.feladat:
            Console.WriteLine("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($" A legkevesebb lakosú város neve: {varosok[minimum(varosok)].nev}");

            //6.feladat:
            Console.WriteLine("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("Adj meg egy lakosságszámot");
            int fel = Convert.ToInt32(Console.ReadLine());
            lakos(varosok, fel);
            //7.feladat:
            Console.WriteLine("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.
           BP(varosok);
            //8. feladat:
            //mögéjük vesszővel elválasztva azt a szót,
            //hogy megyeszékhely/nem megyeszékhely
            //Írd ki egy új fájlba a városok neveit nagybetűsen,
            //(a valóságnak megfelelően)
            olvas(varosok);
        }
    }
}

2022.03.09. ,11. Objektum-orientált programozás - első mintaprogram

Ezt elkezdtük és eljutottunk a 4. feladatig. Itt folytatjuk.     

     //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 tartalmukat 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).

2022.03.02. Elmélet

 Ma az "Algoritmus fogalma, jellemzői. Értékadás. Vezérlőszerkezetek: szekvencia, szelekció, iteráció. Alprogramok: metódusok, függvények, paraméterek." témakört végigvettük. Írtunk egy példaprogramot, legközelebb közzétesszük.

2022.02.25. Elmélet

 Előzőleg átvettük az Adattípusok témakört, meg kell tanulni hétfőre.

Ma az "Algoritmus fogalma, jellemzői. Értékadás. Vezérlőszerkezetek: szekvencia, szelekció, iteráció. Alprogramok: metódusok, függvények, paraméterek." témakörben a szekvenciáig jutottunk el.

A témakörökről e-mail értesítést fogsz kapni.

2022.02.23. Önvezető autók

 Önvezető autók

Napjainkban az önvezető autók egyre gyorsabban fejlődnek, több neves cég is fejleszt ilyeneket. Ebben a feladatban a rájuk vonatkozó adatokat kell feldolgoznia.

 Az adatokat a lenti keretben találja. Az állomány soronként tartalmazza az autók következő adatait egymástól pontosvesszővel elválasztva:

 - azonosító (gyártó és modellszám)

- teljesítmény (lóerő)

- tömeg (tonna)

- gyorsulás (hány másodperc alatt gyorsul 100 km/h-ra)

- a vezetőnek hányszor kellett beavatkozni a vezetésbe 10.000 km-en

 A fájlban 9 autó adatai vannak.

 

Tesla Model S P90D;760;2,20;3;3

Volvo XC90;889;2,90;4;14

Volkswagen GO989;1378;3,66;5;6

Audi Q525;772;2,40;2;3

Mercedes Benz898;739;2,20;3;9

Google Drive 18;752;2,55;4;11

Delphi Magic 428B;1194;3,00;3;4

Bosch Doom300;700;2,09;4;6

Nissan Cherry 100;725;3,1;3;7

 

Például a Tesla Model S P90D autó 760 lóerős teljesítményű, 2,2 tonna tömegű, 3 másodperc alatt gyorsul 100 km/órára és a 10.000 km-es tesztvezetésen 3-szor volt szükség humán beavatkozásra.

 1. Készítsen programot a következő feladatok megoldására, amelynek a forráskódját onvezeto néven mentse el.

A képernyőre írást igénylő részfeladatok megjelenítése előtt írja a képernyőre a feladat sorszámát!

2. Az adatokat olvassa be fájlból és tárolja el 5 listában.

3. Írja ki a képernyőre a leggyorsabb autó adatait. (Az a leggyorsabb, ami a legkevesebb idő alatt gyorsul 100-ra.) 

4. Írja ki a képernyőre a legkevésbé önálló autó azonosítóját. (Az a legkevésbé önálló, amelynél a legtöbbet kellett beavatkozni a vezetésbe.) 

6. Írja ki a képernyőre az autók átlag tömegét. 

7. Írja ki a képernyőre, és egy új fájlba autónként a következő adatokat szóközzel elválasztva: sorszám (a feldolgozás sorrendjében automatikusan generált), tömeg kg-ban. (1 tonna = 1000 kg).

2022.02.16.,18. Lista - gyakorlás

Ezzel készen vagyunk.

 Feladat: Gyümölcsök vitamintartalma

gyümölcs

B1 vitamin tartalom

C vitamin tartalom

alma

0,02

4

ananász

0,03

17

citrom

0,02

53

cseresznye

0,06

10

fekete áfonya

0,06

14

földieper

0,07

59

grapefruit

0,02

38

őszibarack

0,05

7

alma0,024

ananász0,0317

citrom0,0253

cseresznye0,0610

fekete áfonya0,0614

földieper0,0759

grapefruit0,0238

őszibarack0,057 


Ebben a táblázatban a gyümölcsök nevei mellett elsőként az szerepel, hogy hány mg B1 vitamint tartalmaznak, másodikként pedig az, hogy hány mg C vitamint tartalmaznak. A táblázatból készíts egy szöveges fájlt. Használj egy megfelelő elválasztó karaktert.

- Olvasd be a fájl tartalmát, majd írd ki a képernyőre.

- Írd ki annak a gyümölcsnek a nevét, amelyik a legtöbb C vitamint tartalmazza.

- A szöveges fájlt később ki szeretnénk egészíteni az összes gyümölcs adataival. Erre is felkészülve add meg a választ: benne van-e a fájlban az avokádó? Ha benne van, írd ki, hogy hol van. Ha nincs benne, írj hibaüzenetet. Ha megtaláltad az avokádót, ne keresd tovább, állj meg.

(Jó tanács: mivel most nincs benne, tesztelj egy másik gyümölcs nevével.)

- Átlagosan hány mg B1 vitamint tartalmaznak a fájlban található gyümölcsök? (Össze kell adni mindet és elosztani a darabszámmal.)

- Ezt az egyetlen értéket (az átlagot) írd ki egy új fájlba.


ALEX MEGOLDÁSA: MÉG ÁT KELL NÉZNI!

using System;
using System.IO;
using System.Collections.Generic;

namespace _2022._02._16_8.ora
{
    class Program
    {
        static List<string> nev = new List<string>();
        static List<double> b1 = new List<double>();
        static List<int> c = new List<int>();
       
        static void beolvas()

        {
            string[] atmenet;
            StreamReader sr = new StreamReader("gyumolcs.txt");
            int i = 0;
            while (!sr.EndOfStream)
            {
                atmenet = sr.ReadLine().Split(";");
                nev.Add(atmenet[0]);
                b1.Add(Convert.ToDouble(atmenet[1]));
                c.Add(Convert.ToInt32(atmenet[2]));
                i++;
            }
            sr.Close();
         }
        static void kiir()
        {
            int I = 0;
            while (I<nev.Count)
            {
                Console.WriteLine("{0} {1} {2}", nev[I], b1[I], c[I]);
                I++;
            }
           
        }
        static void max()
        {
            int max = c[0];

            for (int i = 0; i < c.Count; i++)

            {

                if (c[i] > max)

                {

                    max = c[i];

                }

            }

            Console.WriteLine("Ebbe van a legtobb c vitamin", max);
        }
        //-Ebben a táblázatban a gyümölcsök nevei mellett elsőként az szerepel, hogy hány mg B1 vitamint tartalmaznak, másodikként pedig az, hogy hány mg C vitamint tartalmaznak.
        //A táblázatból készíts egy szöveges fájlt.Használj egy megfelelő elválasztó karaktert.

        //- Olvasd be a fájl tartalmát, majd írd ki a képernyőre.

        //- Írd ki annak a gyümölcsnek a nevét, amelyik a legtöbb C vitamint tartalmazza.

        //- A szöveges fájlt később ki szeretnénk egészíteni az összes gyümölcs adataival.Erre is felkészülve add meg a választ: benne van-e a fájlban az avokádó? Ha benne van, írd ki, hogy hol van.Ha nincs benne, írj hibaüzenetet. Ha megtaláltad az avokádót, ne keresd tovább, állj meg.

        //(Jó tanács: mivel most nincs benne, tesztelj egy másik gyümölcs nevével.)

        //- Átlagosan hány mg B1 vitamint tartalmaznak a fájlban található gyümölcsök? (Össze kell adni mindet és elosztani a darabszámmal.)

        //- Ezt az egyetlen értéket(az átlagot) írd ki egy új fájlba.
        static void Main(string[] args)
        {
            beolvas();
            kiir();
            max();
            Console.ReadLine();
        }
    }
}


2023.04.26. Javító feladatsor