2017. december 19., kedd

2017.12.19. Gyakorlás

Az első feladatot befejeztük órán (névkiírós), elkezdtük a másodikat, házi feladat befejezni.
Az első szóbeli témakörből januárban az első órán számonkérés lesz.

2017. december 15., péntek

2017.12.15. Rendezések / Buborék rendezés

Rövidesen ezt együtt átvesszük. Addig is aki ügyes akar lenni a Kódolás Óráján, nézze át.



namespace buborekRendezes
{
    class sajatOsztaly
    {
        const int n = 10;
        public int[] szamok = new int[n];

        public void tombFeltoltes()
        {
            Random rnd = new Random();
            for (int i = 0; i < n; i++)
            {
                szamok[i] = rnd.Next(100);
            }
        }

        public void kiiro()
        {
            Console.BackgroundColor = ConsoleColor.DarkBlue;
            Console.ForegroundColor = ConsoleColor.White;
            Console.Clear();
            Console.WriteLine("A tömb elemei: ");
            Console.WriteLine();
            for (int i = 0; i < n; i++)
            {
                Console.WriteLine("     {0}. elem: {1,10}", i + 1, szamok[i]);
                Console.WriteLine("     ~~~~~~~~~~~~~~~~~~~~");
            }

        }
        //Rendezés:
        //Állítsunk be egy logikai változót (voltCsere)
        //igazra! Ez figyeli, hogy volt-e csere
        //a vizsgálat során. Indítsuk el a páronkénti
        //vizsgálatot (szomszédos elemek) a tömb végétől
        //visszafelé az 1-es indexű elemig! A voltCsere-t
        //állítsuk hamisra! Ha a nagyobb indexű elem értéke
        //kisebb, akkor a kapcsolót igazra állítjuk
        //és kicseréljük a két elemet. A páronkénti
        //vizsgálatok végén vizsgáljuk meg, hogy volt-e csere.
        //Ha volt, akkor indítsuk el újra a vizsgálatot!
        //Növeljük az alsó határt 1-gyel (mostmár ne
        //az 1-es indexűig menjünk, hanem a 2-esig).
        //Addig ismételjük az 1-4 lépést, amíg a kapcsoló hamis lesz.
        //Tesztelés után változtastunk annyit,hogy a
        //cserét beágyazott, paraméteres metódushívással oldjuk meg.
    }

    class Program
    {
        static void Main(string[] args)
        {
            Console.BackgroundColor = ConsoleColor.DarkBlue;
            Console.ForegroundColor = ConsoleColor.White;
            Console.Clear();
            Console.Title = "Buborék rendezés";
            sajatOsztaly s = new sajatOsztaly();
            s.tombFeltoltes();
            s.kiiro();
            Console.WriteLine("Buborék rendezés következik.");
            Console.ReadLine();
            s.buborekRendezes();
            s.kiiro();
            Console.ReadLine();
        }
    }
}


MEGOLDÁS:


    public void csere(int elso, int masodik)
    {
        int c = szamok[elso];
        szamok[elso] = szamok[masodik];
        szamok[masodik] = c;
    }

    public void buborekRendezes()
    {
        //int c = 0; //ez addig kellett, míg nem volt csere metódus
        bool voltCsere = true;
        int elso = 0;
        while (voltCsere)
        {
            voltCsere = false;
            int i = n - 1;
            while (i > elso)
            {
                if (szamok[i] < szamok[i - 1])
                {
                    csere(i - 1, i);
                    //c = szamok[i];   //ez addig kellett, míg nem volt csere metódus
                    //szamok[i] = szamok[i-1] ;
                    //szamok[i-1] = c;
                    voltCsere = true;
                }
                i--;
            }
            elso++;
        }
    }



2017.12.15. Lineáris keresés, paraméteres függvény

Rövidesen ezt együtt átvesszük. Addig is aki ügyes akar lenni a Kódolás Óráján, nézze át.

     
  public int linearisKereses(int keresendo)
        {
            int i = 0;
            while (i < szamok.Length && szamok[i] != keresendo)
            {
                i++;
            }
            if (i == szamok.Length)
                return (-1);
            else
                return (i);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Console.BackgroundColor = ConsoleColor.DarkBlue;
            Console.ForegroundColor = ConsoleColor.White;
            Console.Clear();
            Console.Title = "Függvények";

            sajatOsztaly s = new sajatOsztaly();

            Console.WriteLine("Véletlen, vagy billentyűzetről való feltöltést szeretnél? (v/b)");
            string r = Console.ReadLine();
            if (r == "v")
            {
                Console.WriteLine("A véletlen feltöltést választottad.");
                s.tombFeltoltes();
            }
            else
            {
                Console.WriteLine("A billentyűzetről feltöltést választottad.");
                s.tombBekeres();
            }
            s.kiiro();
            Console.Write("Milyen számot keressünk a tömbben?: ");
            int keresendoSzam = Convert.ToInt32(Console.ReadLine());

            int linearisKeresesEredmenye = s.linearisKereses(keresendoSzam);

            if (linearisKeresesEredmenye == -1)
                Console.WriteLine("A keresett szám nincs a tömbben.");
            else
                Console.WriteLine("A keresett szám a tömb {0}. eleme.", linearisKeresesEredmenye + 1);
            Console.ReadLine();
        }
    }
}

2017.12.15. Paraméterek, csere

Rövidesen ezt együtt átvesszük. Addig is aki ügyes akar lenni a Kódolás Óráján, nézze át.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;


namespace ConsoleApplication1
{
    class Program
    {
        static int[] tomb = new int[30];
        static int[] tomb2 = new int[30];

        static void kiir()
        {
            foreach (int x in tomb)
            {
                Console.WriteLine(x);

            }
        }

        static void kiir2()
        {
            foreach (int x in tomb2)
            {
                Console.WriteLine(x);

            }
        }

        static void csere(int szam1, int szam2)
        {
            int atmenet = tomb[szam1];
            tomb[szam1] = tomb[szam2];
            tomb[szam2] = atmenet;
        }


        static void Main(string[] args)
        {
            StreamReader sr = new StreamReader("szamok.txt");
            kiir();
            Console.WriteLine("");
            int i = 0;
            while (!sr.EndOfStream)
            {
                tomb[i] = Convert.ToInt32(sr.ReadLine());
                i++;
            }
            sr.Close();
            kiir();

            Console.WriteLine("A tömb melyik elemeit szeretné megcserélni? ");
            Console.WriteLine("Első szám:");
            int szam1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Második szám:");
            int szam2 = Convert.ToInt32(Console.ReadLine());
            csere(szam1, szam2);
            Console.ReadLine();
           
            StreamWriter dup = new StreamWriter("dupla.txt");
            Console.WriteLine();

            for (int j = 0; j < tomb.Length; j++)
            {
                dup.WriteLine(tomb[j] * 2);
            }
            dup.Close();


            Console.ReadLine();
            StreamWriter kis = new StreamWriter("kisebb.txt");
            for (i = 0; i < tomb.Length; i++)
            {
                if (tomb[i] < 10)
                    kis.WriteLine(tomb[i]);

            }
            kis.Close();
            Console.ReadLine();
        }
    }
}





2017. december 10., vasárnap

2017.12.11.-15. Gyakorlás

Informatikai alapismeretek - éles érettségi feladatok

1. 
2006. tavasz (módosítva) - Listázás ötösével
Készítsen programot az alábbi feladat megoldására!
Adott egy 14 elemű névsor egy szövegfájlban. Olvassa be a neveket, majd írassa ki a
képernyőre ABC sorrendben, külön-külön sorba, úgy, hogy minden 5. név után várakozik
egy gombnyomásra! Ezután tiszta képernyőn listázza a következő 5 nevet. Minden név
elé írjon egy listázási sorszámot!

2.
2005 ősz - Sebesség (módosítva)
Egy sebességmérő műszer regisztrálja minden mellette elhaladó jármű sebességét km/h-ban.
Az egyik irányba haladó járművek sebességét pozitív, a másik irányba (szembe) haladókét
negatív értékként tárolja a műszer. Készítsen programot amely lehetővé teszi, hogy a műszer
által regisztrált adatokat fájlból kiolvasva számítógépre vigyük! A sebességadatokat
(max. 100 db) a seb nevű tömbben tároljuk. Az adatok megadásának végét a 0 értékkel
jelöljük. A program az adatsor végére tárolja el ezt a „0” értéket is.
Az adatok eltárolása után a program határozza meg, hogy volt-e szabálysértő (szabálysértésen
azt értjük, hogy valaki 100 km/h abszolút értékű sebességnél gyorsabban haladt), és ha igen,
akkor az első szabálysértő hányadik rögzített elem volt a rögzített méréssorozatban és
mennyivel lépte túl a sebességhatárt!
A meghatározott eredményt írja ki a képernyőre!

A fájlban az adatok a következők legyenek (figyelj a nulla szerepére!):
-109
79
-106
73
-111
107
-71
81
-107
101
-121
63
-102
85
-96
106
-80
93
-68
94
-97
103
-111
91
-79
106
-73
88
-112
75
-60
88
-110
94
-73
64
-64
76
-85
91
-63
78
-105
63
-98
96
-122
105
-82
73
-102
110
-102
109
-76
88
-99
72
-101
75
-76
67
-74
80
-76
106
-121
87
-111
102
-82
93
-90
62
-74
78
-73
77
-109
62
-101
70
-98
63
-124
92
-71
81
-102
103
-60
65
(
Csak faktosoknak: a fenti számsorozatot excelben generáltam egy két elemű sorozatból képzett automatikus kitöltéssel, próbáljátok ki:
=VÉLETLEN.KÖZÖTT(-125;-60)
=VÉLETLEN.KÖZÖTT(60;110)
)

3.
2006. tavasz - Tőzsde (módosítva)
//  "Egy vektorban (tömbben) különböző cégek napi tőzsdei záró árfolyama szerepel.
//Készítsen programot az ön által ismert nyelven, mely megadja azt a céget, amelyik az adott
//időszak folyamán a legnagyobb nyereséget érte el! Tekintse legnagyobb nyereségnek azt,
//ahol az utolsó nap záróegyenlege és az első nap záróegyenlegének különbsége a legnagyobb.
//A feladat megoldásához alkalmazzon programozási tételt!"

//Tehát az alábbi adatokkal hozz létre egy fájlt, majd olvasd be a tartalmát egy struktúrákból álló tömbbe. Zárójelben a kiszámolt nyereség van a tesztelés kedvéért - ez ne kerüljön bele a fájlba.
//    CÉG    1. nap 2. nap 3. nap
//Alfa Bt.     1500   1709   1839        (339)
//Beta Kft.    3000   3291   3255        (291)
//Gamma Rt.    1000   1279   1285        (285)
//Delta Bt    14000  14208  14263        (263)
4.
2007. tavasz - Matek, magyar szakkör (módosítva)
            //"Egy osztályba csupa különböző nevű ember jár. Az osztály létszáma 32 fő. Készítsen
            //programot, amely beolvassa egy fájlból a matematika szakkörre jelentkezők
            //nevét! Hasonló módon a magyar szakkörre jelentkezők nevét is tárolja!
            //A program határozza meg és írja ki egy harmadik fájlba azok nevét, akik mindkét
            //szakkörre jelentkeztek, illetve a kigyűjtött névsort jelenítse meg a képernyőn is!"           
            //További utasítások:
            //A két fájlt neked kell elkészítened.
            //(Ehhez mellékelek minta neveket - nem kötelező ezeket használni).
            //A feladatsort struktúrával kell megoldani.
Avon Mór
Bakt Erno
Bal Margó
Bazsa Rózsa
Bekre Pál
Bella Ella
Benő Jenő
Bödön Ödön
Bőrönd Ödön
Buga Jakab
Búza Virág
Citad Ella
Daj Kálmán
Damu Samu
Dári Dóra
Dies Elek
Emanci Pál
Esze T. Lenke
Fá Zoltán
Farkas Piroska
Feles Elek
Flóbert Róbert
Git Áron
Görk Orsolya
Guba Huba
Halmos Álmos
Halo Lajos
Hargita Rita
Hát Izsák
Heu Réka
Hirte Lenke
Hot Elek
Illemta Nóra
Ka Pál
Kádár Aladár
Karam Ella
Kelep Elek
Kiri Piri
Kor Mihály
Kovács Lukács
Krisztin Martin
Lapos Elemér
Lopez de Futasztán
Luc Erna
Major Anna
Malt Erno
Mángor Olga
Márton Ágoston
Meg Gyozo
Megol Dani
Mérta Nóra
Ne Pál
Nyári Klári
Nyúl Kálmán
Ordy Bálint
Öröm Melitta
Pál Opál
Parady Csoma
Patkóm Ágnes
Patta Nóra
Préri Farkas
Remek Elek
Rö Vid
Szamos Lajos
Szenegál Pál
Szigor Igor
Szikla Szilárd
Szüre Tibor
Teo Dóra
Trab Antal
Vagd Alma
Vaj Ákos
Veg Eta
Vesmás Tamás
Volga Olga
Zúz Mara
Zsíros B. Ödön