2017. június 1., csütörtök

2017.05.31. While ciklus - Karakterkezelés I. - megoldás + házi feladat

HÁZI FELADAT:

A MEGOLDÁST A DIGIFÜZETBE BETENNI
ÁTTANULMÁNYOZNI A KÓDOT
CIKLUS AMÍG MEG NEM ÉRTED A KÓDOT
     KITÖRÖLNI A MEGOLDÁST
     EGYEDÜL MEGOLDANI
     ELLENŐRIZNI      
CIKLUS VÉGE


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

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
            //www.asciitable.com


            //1.feladat:
            // Hozz létre egy 26 elemű karaktertömböt nagyBetu néven.
            // Töltsd föl az angol ABC nagybetűivel.
            Console.WriteLine("1.feladat.");
            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();

            //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.");
            char[] osszesBetu = new char[52];
            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();
            //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}. sorszám: ", 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();


            // INNENTŐL KEZDVE NEM KELL MEGTANULNI MINDENKINEK, CSAK ANNAK, AKI EMELTRE KÉSZÜL.

            //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 négybetűs szavakat, 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 < 10)
            {


                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 < 10)
            {
                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();
        }
    }
}