2020. november 16., hétfő

2020.11.16. MEGOLDÁS: 6 feladatsor/1.: Karakterkezelés + fájlkezelés gyakorlás

 

Varsó megoldása:

using System;

using System.IO;

 

 

namespace _20201109

{

    class Program

    {

        static char[] nagyBetu = new char[26];

        static char[] kisBetu = new char[26];

        static char[] specialisBetu = new char[15];

        static char[] osszesBetu = new char[26 * 2];

        static string[] betuParok = new string[26];

        static char[] szazKisBetu = new char[100];

        static string[] titkosKod = new string[10];

        static string[] titkosKod2 = new string[10];

        static string[] titkosKod3 = new string[10];

        static string[] kis4Betus = new string[12];

       

        static Random rnd = new Random();

            //1.feladat:

            // Hozz létre egy 26 elemű karaktertömböt nagyBetu néven.

            // Töltsd föl az angol ABC nagybetűivel. (Segítség: az ASCII kódot a Convert.ToChar segítségével kell karakterré alakítani.)

            //Írd ki egy fájlba.

 

        static void letrehozas_nagybetu()

        {

            for (int i = 0; i < nagyBetu.Length; i++)

            {

                nagyBetu[i] = (Convert.ToChar(65 + i));

                Console.WriteLine(nagyBetu[i]);

            }

            StreamWriter sw = new StreamWriter("nagyBetu.txt");

            for (int i = 0; i < nagyBetu.Length; i++)

            {

                sw.WriteLine(nagyBetu[i]);

 

            }

            sw.Close();

        }

//2.feladat:

            // Hozz létre egy 26 elemű karaktertömböt kisBetu néven.

            // Töltsd föl az angol ABC kisbetűivel.

            //Írd ki egy új fájlba.

 

        static void letrehozas_kisbetu()

        {

            for (int i = 0; i < kisBetu.Length; i++)

            {

                kisBetu[i] = (Convert.ToChar(97 + i));

                Console.WriteLine(kisBetu[i]);

            }

            StreamWriter sw = new StreamWriter("kisBetu.txt");

            for (int i = 0; i < kisBetu.Length; i++)

            {

                sw.WriteLine(kisBetu[i]);

 

            }

            sw.Close();

        }

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

            //Ehhez először olvasd be a két fájlt egy-egy új tömbbe

            //és azt dolgozd föl.

 

        static void osszesbetu()

        {

            StreamReader sr = new StreamReader("nagyBetu.txt");

            for (int i = 0; i < nagyBetu.Length; i++)

            {

                osszesBetu[i] = Convert.ToChar(sr.ReadLine());

            }

            sr.Close();

            sr = new StreamReader("kisBetu.txt");

            for (int i = 0; i < kisBetu.Length; i++)

            {

                osszesBetu[26 + i] = Convert.ToChar(sr.ReadLine());

            }

            sr.Close();

        }

            //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éhe

            //add hozzá (+ jellel) 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.

 

        static void betuparokossze()

        {

            for (int i = 0; i < betuParok.Length; i++)

            {

                betuParok[i] = Convert.ToString(kisBetu[i] + nagyBetu[i]);

                Console.WriteLine(betuParok[i]);

 

            }

 

        }

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

 

        static void randomkisbetu()

        {

 

            for (int i = 0; i < szazKisBetu.Length; i++)

            {

                szazKisBetu[i] = Convert.ToChar(kisBetu[rnd.Next(0, 26)]);

                Console.WriteLine(szazKisBetu[i]);

            }

        }

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

 

        static void kodos()

        {

            for (int i = 0; i < titkosKod.Length; i++)

            {

                for (int l = 0; l < 3; l++)

                {

                    titkosKod[l] += Convert.ToString(rnd.Next(0, 10));

                }

            }

        }

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

 

        static void kodos2()

        {

            for (int i = 0; i < titkosKod2.Length; i++)

            {

                titkosKod2[i] += Convert.ToString(rnd.Next(0, 10));

                titkosKod2[i] += Convert.ToString(kisBetu[rnd.Next(0, 26)]);

                titkosKod2[i] += Convert.ToString(nagyBetu[rnd.Next(0, 26)]);

                titkosKod2[i] += Convert.ToString(rnd.Next(0, 10));

                titkosKod2[i] += Convert.ToString(rnd.Next(0, 10));

                Console.WriteLine(titkosKod2[i]);

            }

        }

            //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+

 

        static void letrehozas_specialis()

        {

            for (int i = 0; i < specialisBetu.Length; i++)

            {

                specialisBetu[i] = (Convert.ToChar(33 + i));

                Console.WriteLine(specialisBetu[i]);

            }

            StreamWriter sw = new StreamWriter("specialisKarakterek.txt");

            for (int i = 0; i < specialisBetu.Length; i++)

            {

                sw.WriteLine(specialisBetu[i]);

 

            }

            sw.Close();

        }

        static void kodos3()

        {

            for (int i = 0; i < titkosKod3.Length; i++)

            {

                titkosKod3[i] += Convert.ToString(rnd.Next(0, 10));

                titkosKod3[i] += Convert.ToString(specialisBetu[rnd.Next(0, 14)]);

                titkosKod3[i] += Convert.ToString(nagyBetu[rnd.Next(0, 26)]);

                titkosKod3[i] += Convert.ToString(kisBetu[rnd.Next(0, 26)]);

                titkosKod3[i] += Convert.ToString(specialisBetu[rnd.Next(0, 14)]);

                titkosKod3[i] += Convert.ToString(rnd.Next(0, 10));

                titkosKod3[i] += Convert.ToString(rnd.Next(0, 10));

                titkosKod3[i] += Convert.ToString(kisBetu[rnd.Next(0, 26)]);

                Console.WriteLine(titkosKod3[i]);

 

            }

        }

//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. //Megjegyzés: Ha nem tárolom, akkor nem tudom kiiratni fájlba ha értelmes a szó!!!

            //Minden egyes szó kiírása után kérdezd meg a usert, hogy értelmes-e a szó.

            //Ha értelmes a szó, írd ki egy új fájlba.

            //Számold meg, hány értelmes szót sikerült alkotni, és az eredményt írd ki a képernyőre, és a fájlba is az utolsó sorba.

 

        static void kisbetusszavak()

        {

            StreamWriter sw = new StreamWriter("negyBetusSzavak.txt");

            int db = 0;

            for (int i = 0; i < kis4Betus.Length; i++)

            {

                for (int k = 0; k < 4; k++)

                {

                    kis4Betus[i] += Convert.ToString(kisBetu[rnd.Next(0, 26)]);

                }

                Console.Write("Értelmes ez a szó? " + kis4Betus[i] + " (igen/nem) : ");

                string valasz = Console.ReadLine();

 

                if (valasz.ToUpper() == "IGEN")

                {

                    sw.WriteLine(kis4Betus[i]);

                    db++;

 

                }

                else

                {

                    if (valasz.ToUpper() != "NEM")

                    {

                        Console.WriteLine("Hibásan megadott érték! Kérem, hogy a válasza formátuma igen/nem legyen!");

                    }

                }

            }

            string ertelmesszavak = "Értelmes szavak száma: " + db;

            Console.WriteLine(ertelmesszavak);

            sw.WriteLine(ertelmesszavak);

            sw.Close();

 

        }

        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. (Segítség: az ASCII kódot a Convert.ToChar segítségével kell karakterré alakítani.)

            //Írd ki egy fájlba.

            letrehozas_nagybetu();

            //2.feladat:

            // Hozz létre egy 26 elemű karaktertömböt kisBetu néven.

            // Töltsd föl az angol ABC kisbetűivel.

            //Írd ki egy új fájlba.

            letrehozas_kisbetu();

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

            //Ehhez először olvasd be a két fájlt egy-egy új tömbbe

            //és azt dolgozd föl.

            osszesbetu();

            //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éhe

            //add hozzá (+ jellel) 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.

            betuparokossze();

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

            randomkisbetu();

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

            kodos();

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

            kodos2();

            //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+

            letrehozas_specialis();

            kodos3();

 

            //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. //Megjegyzés: Ha nem tárolom, akkor nem tudom kiiratni fájlba ha értelmes a szó!!!

            //Minden egyes szó kiírása után kérdezd meg a usert, hogy értelmes-e a szó.

            //Ha értelmes a szó, írd ki egy új fájlba.

            //Számold meg, hány értelmes szót sikerült alkotni, és az eredményt írd ki a képernyőre, és a fájlba is az utolsó sorba.

            kisbetusszavak();

        }

    }

}

 


Nincsenek megjegyzések:

Megjegyzés küldése