2016. október 27., csütörtök

2016.10.27. - 11.07. Osztás, logikai műveletek

Házi feladat:
Oldd meg újra az órai feladatokat. Az alábbi programvázat és az output képernyőt használhatod csak:

            //Tört formázása a kiírásban:
            Console.WriteLine("Az alábbi sorokban egy tört számot írunk ki különbözőképpen formázva: ");
            ////
            Console.WriteLine("Mindenféle formázás nélkül:");
            Console.WriteLine
            Console.WriteLine();

            Console.WriteLine("3 tizedesjeggyel, 10 hosszon jobbra:");
            Console.WriteLine
            Console.WriteLine();

            Console.WriteLine("3 tizedesjeggyel:");
            Console.WriteLine
            Console.WriteLine();

            Console.WriteLine("Tizedesjegyek nélkül, ekkor kerekít is, nem csak levágja a tizedesjegyeket:");
            Console.WriteLine
            Console.WriteLine();


            Console.WriteLine("Az alábbi sorokban egy törtként tárolt egész számot írunk ki különbözőképpen formázva: ");
            ////
            Console.WriteLine("3 tizedesjeggyel:");
            Console.WriteLine
            Console.WriteLine();

            Console.WriteLine("Tizedesjegyek nélkül:");
            Console.WriteLine
            Console.WriteLine();

            Console.ReadLine();

            //1. feladat: Osszunk el egymással két számot!
            //Lássuk, milyen eredményeket kaphatunk attól
            //függően, hogy milyen számokról volt szó.
                       

            Console.Write("Kérek egy egész számot (osztandót): ");
            ////
            Console.Write("Kérek még egy egész számot (osztót): ");
            ////
            Console.WriteLine
            Console.WriteLine

            Console.WriteLine("Most az <a> és a <b> értékét betesszük egy-egy double típusú változóba.");
            ////
            ////
            Console.WriteLine
            Console.WriteLine();

            Console.Write("Kérek egy egész, vagy tört számot (osztandót): ");
            ////
            Console.Write("Kérek még egy egész, vagy tört számot (osztót): ");
            ////
            Console.WriteLine
            //////////////////////////////////////////////////////////////////////////////////////

            //2. feladat: Kérjünk be két logikai értéket, tároljuk őket változókban.
            //- Végezzük el velük a 3 alap logikai műveletet: tagadás, és, vagy.
            //- Tároljunk két további változóban is logikai értékeket, amelyeket
            //programból adunk meg.
            //- Írassuk ki összetett logikai műveletek eredményét.

            Console.WriteLine();
            Console.Write("Kérem az <A> logikai értéket (true/false): ");
            //Ismétlés: idézőjellel így kell megoldani:
            //Console.Write("Kérem az \"A\" logikai értéket (true/false): ");
            ////
            Console.Write("Kérem a <B> logikai értéket (true/false): ");
            ////
            Console.WriteLine();
            Console.WriteLine
            Console.WriteLine
            Console.WriteLine


            Console.WriteLine("Két további változónak programból adunk értéket.");

            bool C = true; //programból is értéket kaphatnak a logikai változók is
            bool D = false;

            Console.WriteLine();
            Console.WriteLine("A and B or A = {0}", A && B || A);
            Console.WriteLine("B and (B or A) and B) or not A = {0}", (B && (B || A) && B) || !A);
            Console.WriteLine("(A and (C or D) and not B) or C) = {0}", (A && (C || D) && !B) || C);

            Console.ReadLine();


Osztás, logikai műveletek, tört szám formázása

            Console.BackgroundColor = ConsoleColor.Blue;
            Console.ForegroundColor = ConsoleColor.Green;
            Console.Clear();

            //Tört formázása a kiírásban:
            Console.WriteLine("Az alábbi sorokban egy tört számot írunk ki különbözőképpen formázva: ");
            double szam = 16546.6875645;
            Console.WriteLine("Mindenféle formázás nélkül:");
            Console.WriteLine("{0}", szam);
            Console.WriteLine();

            Console.WriteLine("3 tizedesjeggyel, 10 hosszon jobbra:");
            Console.WriteLine("{0,15:00.000}", szam);
            Console.WriteLine();

            Console.WriteLine("3 tizedesjeggyel:");
            Console.WriteLine("{0,0:00.000}", szam);
            Console.WriteLine();

            Console.WriteLine("Tizedesjegyek nélkül, ekkor kerekít is, nem csak levágja a tizedesjegyeket:");
            Console.WriteLine("{0,0:00}", szam);
            Console.WriteLine();


            Console.WriteLine("Az alábbi sorokban egy törtként tárolt egész számot írunk ki különbözőképpen formázva: ");
            szam = 16546;
            Console.WriteLine("3 tizedesjeggyel:");
            Console.WriteLine("{0,0:00.000}", szam);
            Console.WriteLine();

            Console.WriteLine("Tizedesjegyek nélkül:");
            Console.WriteLine("{0,0:00}", szam);
            Console.WriteLine();

            Console.ReadLine();

            //1. feladat: Osszunk el egymással két számot!
            //Lássuk, milyen eredményeket kaphatunk attól
            //függően, hogy milyen számokról volt szó.
                       

            Console.Write("Kérek egy egész számot (osztandót): ");
            string s = Console.ReadLine(); //bekérés
            int a = Convert.ToInt32(s); //konvertálás
            Console.Write("Kérek még egy egész számot (osztót): ");
            int b = Convert.ToInt32(Console.ReadLine()); //egy lépésben végrehajtható a bekérés és a konvertálás
            Console.WriteLine("Első szám: {0}", a); //ellenőrzés
            Console.WriteLine("Második szám: {0}", b); //ellenőrzés
            Console.WriteLine("A két egész szám osztásának eredménye (ha az eredmény tört szám, annak csak egész része) (a/b): {0}", a / b);
            Console.WriteLine("A két szám osztási maradéka (a%b): {0}", a % b);

            Console.WriteLine("Most az <a> és a <b> értékét betesszük egy-egy double típusú változóba.");
            double aTortSzam = a; //az <a> értékét betesszük egy double típusú változóba
            double bTortSzam = b; //a <b> értékét betesszük egy double típusú változóba
            Console.WriteLine("A két egész szám osztásának eredménye, ha törtként számoltunk velük (a/b): {0}", aTortSzam / bTortSzam);
            Console.WriteLine();

            Console.Write("Kérek egy egész, vagy tört számot (osztandót): ");
            double c = Convert.ToDouble(Console.ReadLine());
            Console.Write("Kérek még egy egész, vagy tört számot (osztót): ");
            double d = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("A két egész, vagy tört (törtként kezelt) szám hányadosa (c/d): {0}", c / d);
            //////////////////////////////////////////////////////////////////////////////////////

            //2. feladat: Kérjünk be két logikai értéket, tároljuk őket változókban.
            //- Végezzük el velük a 3 alap logikai műveletet: tagadás, és, vagy.
            //- Tároljunk két további változóban is logikai értékeket, amelyeket
            //programból adunk meg.
            //- Írassuk ki összetett logikai műveletek eredményét.

            Console.WriteLine();
            Console.Write("Kérem az <A> logikai értéket (true/false): ");
            //Ismétlés: idézőjellel így kell megoldani:
            //Console.Write("Kérem az \"A\" logikai értéket (true/false): ");
            bool A = Convert.ToBoolean(Console.ReadLine());
            Console.Write("Kérem a <B> logikai értéket (true/false): ");
            bool B = Convert.ToBoolean(Console.ReadLine());
            Console.WriteLine();
            Console.WriteLine("<A> logikai tagadásának eredménye: {0}", !A);
            Console.WriteLine("<A> és <B> logikai ÉS műveletének eredménye: {0}", A && B);
            Console.WriteLine("<A> és <B> logikai VAGY műveletének eredménye: {0}", A || B);

            Console.WriteLine("Két további változónak programból adunk értéket.");
            bool C = true
            bool D = false;

            Console.WriteLine();
            Console.WriteLine("A and B or A = {0}", A && B || A);
            Console.WriteLine("B and (B or A) and B) or not A = {0}", (B && (B || A) && B) || !A);
            Console.WriteLine("(A and (C or D) and not B) or C) = {0}", (A && (C || D) && !B) || C);
            Console.ReadLine();

String műveletek házi feladat

Készíts egy programot a múlt órai munka alapján, ami egy általad kitalált szövegre alkalmazza az összes tanult szövegfüggvényt, mindegyiket egyszer. Egyszerű program legyen, nem kell felhasználóbarát kiírásokat használni, csak az a cél, hogy a függvényeket gyakoroljuk.
Például:

Console.WriteLine(vicc.ToUpper());

A használandó függvények:
Length
ToUpper
ToLower
Substring
StartsWith
Contains
Trim
TrimStart
TrimEnd
hivatkozás a szöveg valahanyadik betűjére
CompareTo
megállapítani relációs jelekkel, hogy melyik van előbb az ABC-ben
A Caps Lock-ot nem kell vizsgálni. Minden feltételt egyágú szelekciókkal oldj meg.




2016. október 25., kedd

String műveletek megoldás

namespace stringMuveletek
{
    class Program
    {
        static void Main(string[] args)
        {
            //1. feladat:
            //Tároljunk egy szöveget sorokra tagolva változóban.
            //Írjuk ki a képernyőre egy utasítással úgy,
            //hogy egy üres sor legyen előtte.
            string vicc = "Két informatikus beszélget:" + "\n" +
                          "- Neked mi volt eddig a legkomolyabb kapcsolatod?" + "\n" +
                          "- Egy négy megás ADSL!" + "\n";
            Console.WriteLine("{0}{1}""\n", vicc);

            //2. feladat: Adjuk meg a szöveg hosszát.
            Console.WriteLine("A vicc hossza karakterekben: {0}", vicc.Length); Console.WriteLine();

            //3. feladat: Írjuk ki nagybetűsre alakítva.
            Console.WriteLine("A vicc nagybetűsen: {0}", vicc.ToUpper()); Console.WriteLine();

            //4. feladat: Írjuk ki kisbetűsre alakítva.
            Console.WriteLine("A vicc kisbetűsen: {0}", vicc.ToLower()); Console.WriteLine();

            //5. feladat: Írjuk ki a szöveg első néhány karakterét.
            Console.WriteLine("A vicc első 16 karaktere: {0}", vicc.Substring(0, 16)); Console.WriteLine();

            //6. feladat: Írjuk ki a szöveg egy részletét.
            Console.WriteLine("A vicc egy részlete a 4-12 karakterek között: {0}", vicc.Substring(4, 12)); Console.WriteLine();

            //7.a feladat:
            //Írjuk ki, hogy a szöveg egy konkrét szóval kezdődik-e,
            //vagy nem.
            //Használjunk logikai változót.

            bool igazE = vicc.StartsWith("Két");
            if (igazE == true)
            {
                Console.WriteLine("A vicc a \"Két\" szóval kezdődik.");
                Console.WriteLine();
            }

            if (igazE == false)
            {
                Console.WriteLine("A vicc nem a \"Két\" szóval kezdődik.");
                Console.WriteLine();
            }

            //7.b feladat:
            //Írjuk ki teljes mondattal, hogy a szöveg egy
            //konkrét szóval kezdődik-e, vagy nem.
            //Ne használjunk logikai változót,
            //a szöveget vizsgáló függvényt a feltételbe tegyük.

            //A 7.a feladatnál egyszerűbb, és szebb kód:
            if (vicc.StartsWith("Két") == true//Még szebb: (vicc.StartsWith("Két"))
            {
                Console.WriteLine("A vicc a \"Két\" szóval kezdődik.");
                Console.WriteLine();
            }

            if (vicc.StartsWith("Két") == false//(Még szebb: !vicc.StartsWith("Két"))
            {
                Console.WriteLine("A vicc nem a \"Két\" szóval kezdődik.");
                Console.WriteLine();
            }

            Console.WriteLine();

            //8. feladat:
            //Cseréljünk ki egy konkrét rész-szöveget egy másikra.

            Console.WriteLine("A vicc szövegében kicseréltem az ADSL-t ISDN-re: {0}{1}""\n", vicc.Replace("ADSL""ISDN")); Console.WriteLine();

            //9. feladat:
            //Tegyük fel a kérdést, hogy konkrét szöveg
            //szerepel-e az eredeti szövegben.
            //Írjuk ki <Igen.>, vagy <Nem.> formában a választ.           

            Console.Write("A vicc tartalmazza ezt a szót: Bill Gates?: ");
            if (vicc.Contains("Bill Gates"))
                Console.WriteLine("Igen.");

            if (!vicc.Contains("Bill Gates"))
                Console.WriteLine("Nem.");

            Console.WriteLine();

            //10. feladat:
            //Szólítsuk fel a usert, hogy kapcsolja be a Caps Lock-ot.
            //Várjunk egy billentyűlenyomásra.
            //- Ha sikerült, írjunk ki helyeslő hozzászólást.
            //- Ha nem sikerült, írjunk ki helytelenítő hozzászólást.
            //Ebben az esetben itt azonnal fejeződjön be a program,
            //erről tájékoztassuk a usert is.

            Console.WriteLine("Kapcsold be a Caps Lock-ot! Ha kész, nyomj egy billentyűt...");
            Console.ReadLine();

            if (Console.CapsLock == true)
                Console.WriteLine("Cool!");

            if (Console.CapsLock == false)
            {
                Console.WriteLine("Nem kapcsoltad be a Caps Lock-ot, így nem tudunk tovább dolgozni.");
                Console.WriteLine("Nyomj egy billentyűt a kilépéshez.");
                Console.ReadLine();
                return;
            }

            //11. feladat:
            //Kérjünk be egy szöveget, amely szóközökkel kezdődik és végződik.
            //- Vágjunk le róla minden szóközt, alakítsuk
            //kisbetűsre és írjuk ki.
            //- Egészítsük ki újra szóközökkel, és írjuk ki.
            //- Írjuk ki bevezető szóközök nélkül.
            //- Írjuk ki záró szóközök nélkül.
            //- Írjuk ki a szöveget, ami még mindig
            //szóközökkel kezdődik és végződik.
            //- Vágjuk le az összes szóközt, és írjuk ki a szöveget.


            Console.WriteLine();
            Console.Write("Kérek egy szöveget, amely szóközökkel kezdődjön és végződjön: ");
            string szoveg = Console.ReadLine();
            szoveg = szoveg.Trim();
            szoveg = szoveg.ToLower();
            Console.WriteLine();
            Console.WriteLine("Levágtam a bevezető és a záró szóközöket, majd kisbetűsre alakítottam: <{0}>", szoveg); Console.WriteLine();

            szoveg = "     " + szoveg + "     ";
            Console.WriteLine("Újra szóközökkel egészítettem ki: <{0}>", szoveg); Console.WriteLine();
            Console.WriteLine("Most levágtam a bevezető szóközöket a kiírás idejére: <{0}>", szoveg.TrimStart()); Console.WriteLine();
            Console.WriteLine("Most levágtam a záró szóközöket a kiírás idejére: <{0}>", szoveg.TrimEnd()); Console.WriteLine();
            Console.WriteLine("A szöveg formája a memóriában ezek után is: <{0}>", szoveg); Console.WriteLine();
            szoveg = szoveg.Trim();
            Console.WriteLine("A szöveg szóközök nélkül a memóriában: <{0}>", szoveg); Console.WriteLine();

            //12. feladat: hivatkozás a szöveg karaktereire
            //Írjuk ki a szöveg első és második betűjét.
            //Állapítsuk meg, hogy melyik van előbb az ABC-ben,
            //vagy egyenlőek-e.
            //Adjunk üzenetet mindhárom lehetőségről.

            Console.WriteLine("A szöveg első betűje: {0}", szoveg[0]);
            Console.WriteLine("A szöveg második betűje: {0}", szoveg[1]);
            Console.WriteLine();


            if (szoveg[0].CompareTo(szoveg[1]) < 0)
                Console.WriteLine("A szöveg első betűje ({0}) előbb van az ABC-ben, mint a második ({1}).", szoveg[0], szoveg[1]);
            else
                if (szoveg[0].CompareTo(szoveg[1]) == 0)
                    Console.WriteLine("A szöveg első betűje ({0}) ugyanaz, mint a második ({1}).", szoveg[0], szoveg[1]);
                else
                    Console.WriteLine("A szöveg első betűje ({0}) később van az ABC-ben, mint a második ({1}).", szoveg[0], szoveg[1]);

            //13. feladat: Karakterkezelés
            //Alakítsuk karakterré a szöveg első és második betűjét.
            //Állapítsuk meg, hogy melyik van előbb az ABC-ben,
            //vagy egyenlőek-e.
            //Adjunk üzenetet mindhárom lehetőségről.

            char elso = szoveg[0];
            char masodik = szoveg[1];
            if (elso < masodik)
                Console.WriteLine("A szöveg első betűje ({0}) előbb van az ABC-ben, mint a második ({1}).", elso, masodik);
            else
                if (elso == masodik)
                    Console.WriteLine("A szöveg első betűje ({0}) ugyanaz, mint a második ({1}).", elso, masodik);
                else
                    Console.WriteLine("A szöveg első betűje ({0}) később van az ABC-ben, mint a második ({1}).", elso, masodik);
            Console.WriteLine("Nyomj egy billentyűt a kilépéshez.");
            Console.ReadLine();
        }
    }
}