2018. január 23., kedd

2018.01.23. FÜGGVÉNYEK, PARAMÉTERES FÜGGVÉNYEK

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

namespace fuggvenyek
{
    class Program
    {   
        static string[] nevek = new string[8];
        static int[] korok = new int[8];
        static int[] szuletes = new int[8];

        static void kiirNevek()
        {
            for (int i = 0; i < nevek.Length; i++)
            {
                 Console.WriteLine(nevek[i]);
            }
        }

        static void kiirSzamok(int[] szamTomb) //paraméteres metódus; tömb átvétele paraméterként
        {
            for (int i = 0; i < szamTomb.Length; i++)
            {
                 Console.WriteLine(szamTomb[i]);
            }
        }
       
        static void kiirMindent()
        {
            for (int i = 0; i < nevek.Length; i++)
            {
                Console.WriteLine("{0}, {1}, {2}",nevek[i], korok[i], szuletes[i]);
            }
        }
        static void szuletesiEvSzamolo()
        {
            for (int i = 0; i < korok.Length; i++)
            {
                 szuletes[i] = 2017-korok[i];
            }
        }

        static void csere(int elsoSzam, int masodikSzam) //paraméteres metódus, 2 változó átvétele paraméterként
        {
            //Csere: cseréljük meg az első diákot az utolsóval
            //(mindkét tömbben, hogy az adataik összetartozzanak utána is)

            string nevCsere = nevek[elsoSzam];
            nevek[elsoSzam] = nevek[masodikSzam];
            nevek[masodikSzam] = nevCsere;

            int korCsere = korok[elsoSzam];
            korok[elsoSzam] = korok[masodikSzam];
            korok[masodikSzam] = korCsere;
           
            int szuletesCsere = szuletes[elsoSzam];
            szuletes[elsoSzam] = szuletes[masodikSzam];
            szuletes[masodikSzam] = szuletesCsere;
        }

        static int minimumKeresesKor() //függvény
        {
            int min = korok[0];
            for (int i = 1; i < korok.Length; i++)
                if (korok[i] < min)
                    min = korok[i];
            return min; //visszatérési érték: min
        }

        static int maximumKereses(int[] tomb) //paraméteres függvény; tömb átvétele paraméterként
        {
            int max = tomb[0];
            for (int i = 0; i < tomb.Length; i++)
                if (tomb[i] > max)
                    max = tomb[i];
            return max; //visszatérési érték: max
        }


        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();
            kiirNevek();
            kiirSzamok(korok); //a korokat tartalmazó tömb átadása paraméterként
            szuletesiEvSzamolo();//feltöltjük a születési évek tömbjét
            kiirSzamok(szuletes);//a születési éveket tartalmazó tömb átadása paraméterként

            StreamWriter nagybetus = new StreamWriter("nagy.txt");
            for (int j = 0; j < korok.Length; j++)
            {
                nagybetus.WriteLine(nevek[j].ToUpper());
            }
            nagybetus.Close();


            Console.WriteLine("Mely tanulók adatait szeretné megcserélni? (0-7) ");
            Console.Write("Első tanuló indexe:");
            int szam1 = Convert.ToInt32(Console.ReadLine());
            Console.Write("Második tanuló indexe:");
            int szam2 = Convert.ToInt32(Console.ReadLine());
            csere(szam1, szam2);
            kiirMindent();

            Console.WriteLine("A legfiatalabb tanuló kora: {0}", minimumKeresesKor());

            Console.Write("A maximális kort, vagy a maximális születési időt szeretné megtudni? (kor/születési idő ");
            string valasztas = Console.ReadLine();
            if (valasztas == "kor")
            {
                Console.WriteLine("A maximális kor: {0}", maximumKereses(korok)); //tömb átadása paraméterként egy függvénynek; a visszaadott értéket kiírjuk
            }
            else
            {
                if (valasztas == "születési idő")
                {
                    Console.WriteLine("A maximális születési idő: {0}", maximumKereses(szuletes)); //tömb átadása paraméterként egy függvénynek; a visszaadott értéket kiírjuk
                }
                else
                {
                    Console.WriteLine("Hibás adatbevitel!");
                }
            }


            Console.ReadLine();
        }
    }
}