2023. március 1., szerda

2023.03.01. folytatás: 2023.02.23. While ciklus gyakorlás – karaktertömb kezelés

 Aki nem fejezte be, házi feladat befejezni.

Megoldás:

using System;
namespace betuk
{
    class Program
    {
        static void Main(string[] args)
        {//A következő feladatokban a tömböket a feltöltés után mindig listázd ki a képernyőre.
            //Tudnivalók: az ASCII táblában a betűk kódjainak határa:
            // nagy betűk: 65-90
            // kis betűk: 97-122
            //1.feladat:
            // Hozz létre egy 26 elemű karaktertömböt nagyBetu néven.
            // Töltsd föl az angol ABC nagybetűivel.
            //első megoldás:
            Console.WriteLine("1.feladat / 1");
            char[] nagyBetu = new char[26];
            int i = 0;
            while (i < 26)
            {
                nagyBetu[i] = Convert.ToChar(i + 65);
                Console.WriteLine(nagyBetu[i]);
                i++;
            }
            Console.ReadLine();
            Console.Clear();
            Console.WriteLine("1.feladat / 2");
            //második megoldás:
            i = 65;
            while (i <= 90)
            {
                nagyBetu[i-65] = Convert.ToChar(i);
                Console.WriteLine(nagyBetu[i - 65]);
                i++;
            }
            Console.ReadLine();
            Console.Clear();
            Console.WriteLine("1.feladat / 3");
            //harmadik megoldás:
            char chr = 'A';
            i = 0;
            while (chr <= 'Z')
            {
                nagyBetu[i] = chr;
                Console.WriteLine(nagyBetu[i]);
                chr++;
                i++;
            }
            Console.ReadLine();
            Console.Clear();
            Console.WriteLine("1.feladat / 4");
            //negyedik megoldás - ez nem felel meg a tiszta kód elveinek:
            for (char c = 'A'; c <= 'Z'; c++)
            {
                nagyBetu[Convert.ToInt32(c) - 65] = c;
                Console.WriteLine(nagyBetu[Convert.ToInt32(c) - 65]);
            }
            Console.ReadLine();
            Console.Clear();
            //2.feladat:
            // Hozz létre egy 26 elemű karaktertömböt kisBetu néven.
            // Töltsd föl az angol ABC kisbetűivel.
            Console.WriteLine("2.feladat");
            char[] kisBetu = new char[26];
            i = 0;
            while (i < 26)
            {
                kisBetu[i] = Convert.ToChar(i + 97);
                Console.WriteLine(kisBetu[i]);
                i++;
            }
            Console.ReadLine();
            Console.Clear();
            //3.feladat:
            // Hozz létre egy 2*26=52 elemű karaktertömböt osszesbetu néven.
            // Másold át ebbe a tömbbe az előző két tömb tartalmát egymás után.
            Console.WriteLine("3.feladat / 1");
            char[] osszesBetu = new char[52];
            //első megoldás
            i = 0;
            while (i < 26)
            {
                osszesBetu[i] = nagyBetu[i];
                Console.WriteLine(osszesBetu[i]);
                i++;
            }
            while (i < 52)
            {
                osszesBetu[i] = kisBetu[i - 26];
                Console.WriteLine(osszesBetu[i]);
                i++;
            }
            Console.ReadLine();
            Console.Clear();
            Console.WriteLine("3.feladat / 2");
            //második megoldás:
            i = 0;
            while (i < 26)
            {
                osszesBetu[i] = nagyBetu[i];
                osszesBetu[i+26] = kisBetu[i];
                i++;
            }
            foreach (char item in osszesBetu)
            {
                Console.WriteLine(item);
            }
            Console.ReadLine();
            Console.Clear();
            //4.feladat:
            // Hozz létre egy 26 elemű string tömböt betuParok néven.
            // Töltsd föl a következőképpen: a kisBetu tömb 0. eleméhez
            //add hozzá a nagyBetu tomb 0. elemét úgy,
            //hogy egy stringet alkossanak: „Aa”;
            //majd ezt a stringet tedd bele a betuParok tömbbe.
            //Ismételd meg ezt a többi elemmel is.
            Console.WriteLine("4.feladat");
            string[] betuParok = new string[26];
            i = 0;
            while (i < 26)
            {
                betuParok[i] = Convert.ToString(nagyBetu[i]) + Convert.ToString(kisBetu[i]);
                Console.WriteLine(betuParok[i]);
                i++;
            }
            Console.ReadLine();
            Console.Clear();
            //5.feladat:
            // Hozz létre egy 100 elemű karaktertömböt szazKisBetu néven.
            //Töltsd föl véletlenül kiválasztott kisbetűkkel.
            Console.WriteLine("5.feladat");
            Random rnd = new Random();
            char[] szazKisBetu = new char[100];
            i = 0;
            while (i < 100)
            {
                Console.Write("{0}.: ", i + 1);
                szazKisBetu[i] = kisBetu[rnd.Next(0, 26)];
                Console.WriteLine(szazKisBetu[i]);
                i++;
            }
            Console.ReadLine();
            Console.Clear();
            //6.feladat:
            // Hozz létre egy 10 elemű string tömböt, melyben 3 számjegyből álló
            //titkos kódokat fogsz tárolni.
            // Töltsd föl a következőképpen: alakíts stringgé egy véletlen számjegyet,
            //és adj hozzá még kettő ilyet úgy, hogy egy stringet alkossanak. (Pl.: 341, 593)
            Console.WriteLine("6.feladat");
            string[] szamjegy = new string[10];
            i = 0;
            while (i < 10)
            {
                szamjegy[i] = Convert.ToString(rnd.Next(0, 10)) + Convert.ToString(rnd.Next(0, 10)) + Convert.ToString(rnd.Next(0, 10));
                Console.WriteLine(szamjegy[i]);
                i++;
            }
            Console.ReadLine();
            Console.Clear();
            //7. feladat:
            //Oldd meg a 6-os feladatot azzal a változtatással,
            //hogy öt hosszú legyen a titkos kód.
            //Az első helyen egy véletlen számjegy álljon,
            //aztán egy véletlen kisbetű, aztán egy véletlen nagybetű,
            //végül egy véletlen kétjegyű szám. (Pl.: 3hZ71)
            Console.WriteLine("7.feladat");
            string[] szamjegy2 = new string[10];
            i = 0;
            while (i < 10)
            {
                szamjegy2[i] = Convert.ToString(rnd.Next(0, 10)) + kisBetu[rnd.Next(0, 26)] + nagyBetu[rnd.Next(0, 26)] + Convert.ToString(rnd.Next(10, 100));
                Console.WriteLine(szamjegy2[i]);
                i++;
            }
            Console.ReadLine();
            Console.Clear();
            //8. feladat:
            //Készíts 8 hosszú titkos kódot, melyben kisbetű, nagybetű, szám, és egyéb jelek is vannak.
            //Szóköz, ékezetes karakter nem lehet benne. Segítségül használd a 7 bites ASCII táblát.
            //Pl.: fT!jq/d+
            Console.WriteLine("8.feladat");
            string[] asci = new string[10];
            i = 0;
            while (i < 10)
            {
                asci[i] = Convert.ToString(Convert.ToChar(rnd.Next(33, 126))) + Convert.ToString(Convert.ToChar(rnd.Next(33, 126)))
                        + Convert.ToString(Convert.ToChar(rnd.Next(33, 126))) + Convert.ToString(Convert.ToChar(rnd.Next(33, 126)))
                        + Convert.ToString(Convert.ToChar(rnd.Next(33, 126))) + Convert.ToString(Convert.ToChar(rnd.Next(33, 126)))
                        + Convert.ToString(Convert.ToChar(rnd.Next(33, 126))) + Convert.ToString(Convert.ToChar(rnd.Next(33, 126)));
                Console.WriteLine(asci[i]);
                i++;
            }
            Console.ReadLine();
            Console.Clear();
            Console.WriteLine("8.feladat - 2. verzió");
            string[] ascii = new string[10];
            i = 0;
            int j;
            while (i < 10)
            {
                j = 0;
                while (j < 8)
                {
                    ascii[i] = ascii[i] + Convert.ToString(Convert.ToChar(rnd.Next(33, 126)));
                    j++;
                }
                Console.WriteLine(ascii[i]);
                i++;
            }
            Console.ReadLine();
            Console.Clear();
            //9. feladat:
            //Alkoss a kisBetu tömb elemeiből 5 négybetűs szót, melyeket nem kell tárolni, csak kiírni a képernyőre.
            //Minden egyes szó kiírása után kérdezd meg a usert, hogy értelmes-e a szó.
            //Számold meg, hány értelmes szót sikerült alkotni, és az eredményt írd ki a képernyőre.
            Console.WriteLine("9.feladat.");
            i = 0;
            string valasz;
            int q = 0;
            while (i < 5)
            {
                Console.Write(kisBetu[rnd.Next(0, 26)]);
                Console.Write(kisBetu[rnd.Next(0, 26)]);
                Console.Write(kisBetu[rnd.Next(0, 26)]);
                Console.WriteLine(kisBetu[rnd.Next(0, 26)]);
                i++;
                Console.Write("Értelmes szó ez? (i/n): ");
                valasz = Console.ReadLine();
                if (valasz == "i")
                {
                    q++;
                }
            }
            Console.WriteLine("Értelmes szavak száma : {0}", q);
            Console.ReadLine();
            Console.Clear();
            Console.WriteLine("9.feladat. - 2. verzió");
            i = 0;
            q = 0;
            while (i < 5)
            {
                j = 0;
                while (j < 4)
                {
                    Console.Write(kisBetu[rnd.Next(0, 26)]);
                    j++;
                }
                Console.WriteLine();
                i++;
                Console.Write("Értelmes szó ez? (i/n): ");
                valasz = Console.ReadLine();
                if (valasz == "i")
                {
                    q++;
                }
            }
            Console.WriteLine("Értelmes szavak száma : {0}", q);
            Console.ReadLine();
        }
    }
}