2021.02.04. Egymásba ágyazott szelekció bevezetés

 


            // 1. feladat:

            //- Kérj be egy egész számot.

 

            //- Vizsgáld meg, hogy osztható-e 5-tel.

            //- Ha osztható 5-tel, vizsgáld meg, hogy osztható-e kettővel. Ha igen, írd ki, hogy akkor osztható 10-zel is.

        //- Ha nem volt osztható 5-tel, akkor írd ki, hogy nem vizsgálod a kettővel oszthatóságot.

 

            //2. feladat:

            //- Kérd be, hogy a tanuló gimis, vagy szakgimis.

 

            //- Ha szakgimis, kérd be az évfolyamát is.

            //- Ha évfolyamként azt adta meg, hogy 9, akkor kérdezd meg, hogy infós, vagy tesis.

            //- Ha kilencedikes és infós, írd ki, hogy most programozás órája lesz.

 

            //- Ha kilencedikes és tesis, írd ki, hogy most éppen tesi órája lesz.

 

Tanári megoldás:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace egymasbaAgyazott

{

    class Program

    {

        static void Main(string[] args)

        {

            // 1. feladat:

            //- Kérj be egy egész számot.

            Console.WriteLine("Kérek egy egész számot!");

            int szam = Convert.ToInt32(Console.ReadLine());

            //- Vizsgáld meg, hogy osztható-e 5-tel.

            if (szam % 5 == 0) //"igaz" ág

            { //blokkjel(pár), ezen belül végrehajtódik minden utasítás, ha a feltétel igaz

                Console.WriteLine("A szám osztható 5-tel, vizsgálom a kettővel való oszthatóságot.");

 

                if (szam % 2 == 0)

                {

                    Console.WriteLine("A szám osztható kettővel.");

                    Console.WriteLine("A szám osztható tízzel is.");

                }

                else

                {

                    Console.WriteLine("A szám nem osztható kettővel.");

                }

            }

            else // "hamis" ág

            {

                Console.WriteLine("A szám nem osztható 5-tel, nem vizsgálom a kettővel való oszthatóságot.");

            }

            //- Ha osztható 5-tel, vizsgáld meg, hogy osztható-e kettővel. Ha igen, írd ki, hogy akkor osztható 10-zel is.

            //- Ha nem volt osztható 5-tel, akkor írd ki, hogy nem vizsgálod a kettővel oszthatóságot.

 

 

 

            //2. feladat:

            //- Kérd be, hogy a tanuló gimis, vagy szakgimis.

            //- Ha szakgimis, kérd be az évfolyamát is.

            //- Ha évfolyamként azt adta meg, hogy 9, akkor kérdezd meg, hogy infós, vagy tesis.

            //- Ha kilencedikes és infós, írd ki, hogy most programozás órája lesz.

            //- Ha kilencedikes és tesis, írd ki, hogy most tesi órája lesz.

 

            Console.Write("Válassz: gimis, vagy szakgimis vagy? ");

            string szak = Console.ReadLine();

            if (szak == "gimis")

            {

                Console.WriteLine("Köszönjük, nem kérünk további adatokat.");

            }

            else

            {

                if (szak == "szakgimis")

                {

                    Console.Write("Kérem az évfolyamodat:");

                    string evfolyam = Console.ReadLine();

                    if (evfolyam == "9")

                    {

                        Console.WriteLine("Infós, vagy tesis vagy?");

                        string szakirany = Console.ReadLine();

                        if (szakirany == "infós")

                        {

                            Console.WriteLine("Programozás órád van.");

                        }

                        else

                        {

                            Console.WriteLine("Tesi órád van.");

                        }

                    }

                    else

                    {

                        Console.WriteLine("Köszönjük, további szép napot!");

                    }

                }

                else

                {

                    Console.WriteLine("Hiba!");

                }

 

            }

            Console.ReadLine();

        }

    }

}

 

Második megoldás, kevesebb blokkjellel:

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace egymasbaAgyazott10b1

{

    class Program

    {

        static void Main(string[] args)

        {

            // 1. feladat:

            //- Kérj be egy egész számot.

            Console.WriteLine("Kérek egy egész számot!");

            int szam = Convert.ToInt32(Console.ReadLine());

            //- Vizsgáld meg, hogy osztható-e 5-tel.

            if (szam % 5 == 0) //"igaz" ág

            { //blokkjel(pár), ezen belül végrehajtódik minden utasítás, ha a feltétel igaz

                Console.WriteLine("A szám osztható 5-tel, vizsgálom a kettővel való oszthatóságot.");

 

                if (szam % 2 == 0)

                {

                    Console.WriteLine("A szám osztható kettővel.");

                    Console.WriteLine("A szám osztható tízzel is.");

                }

                else     

                    Console.WriteLine("A szám nem osztható kettővel.");          

            }

            else // "hamis" ág

                Console.WriteLine("A szám nem osztható 5-tel, nem vizsgálom a kettővel való oszthatóságot.");

          

            //- Ha osztható 5-tel, vizsgáld meg, hogy osztható-e kettővel. Ha igen, írd ki, hogy akkor osztható 10-zel is.

            //- Ha nem volt osztható 5-tel, akkor írd ki, hogy nem vizsgálod a kettővel oszthatóságot.

 

 

 

            //2. feladat:

            //- Kérd be, hogy a tanuló gimis, vagy szakgimis.

            //- Ha szakgimis, kérd be az évfolyamát is.

            //- Ha évfolyamként azt adta meg, hogy 9, akkor kérdezd meg, hogy infós, vagy tesis.

            //- Ha kilencedikes és infós, írd ki, hogy most programozás órája lesz.

            //- Ha kilencedikes és tesis, írd ki, hogy most tesi órája lesz.

 

            Console.Write("Válassz: gimis, vagy szakgimis vagy? ");

            string szak = Console.ReadLine();

            if (szak == "gimis")           

                Console.WriteLine("Köszönjük, nem kérünk további adatokat.");           

            else

            {

                if (szak == "szakgimis")

                {

                    Console.Write("Kérem az évfolyamodat:");

                    string evfolyam = Console.ReadLine();

                    if (evfolyam == "9")

                    {

                        Console.WriteLine("Infós, vagy tesis vagy?");

                        string szakirany = Console.ReadLine();

                        if (szakirany == "infós")                       

                            Console.WriteLine("Programozás órád lesz.");                       

                        else                       

                            Console.WriteLine("Tesi órád lesz.");                       

                    }

                    else                    

                        Console.WriteLine("Köszönjük, további szép napot!");                   

                }

                else               

                    Console.WriteLine("Hiba!");               

            }

            Console.ReadLine();

        }

    }

}


2021.02.03. Kétágú szelekció gyakorlás - Sziget fesztivál

  Elmélet (ismétlés): 

Konstans: olyan változó, amely egyszer kaphat értéket, aztán nem lehet megváltoztatni.

Ennek az az értelme, hogy védeni akarom az értéket a véletlen változtatástól.

Használata: amikor definiálom a változót, eléírom a const szót.

pl.:

            const int szam = 0;

            const double tort = 3.5;

            const bool log = true;

Ezek után például ez az utasítás nem működik: szam = 5;

 -----------------------------------------------------------------------------------------------------------------

A Sziget fesztiválon Metapay Fesztiválkártyával lehet intézni a pénzügyeket.

Feladat: Konstansban tárold le a saját nevedet, Metapay azonosítódat, kártyaszámodat (nézz utána a neten, milyen a formátumuk). A program a regisztrációkor kérje be ezeket az adatokat, és hasonlítsa össze a konstansban tárolt adatokkal. Írja ki a felhasználónak, hogy helyesen írta-e be az adatokat, vagy nem. Használj mindenhol kétágú szelekciót. Legalább egyszer alkalmazz két utasítást egy szelekciós ágban (például kiírás, és hangjelzés).

Házi feladat befejezni.

Máté megoldása:

            const string nev = "CS. MÁTÉ"; 

            const string azonosito = "MATE"; 

            const string kartyaszam = "9542643123515632"; 

            Console.Write("Kérem a neved!: "); 

            string nevb = Console.ReadLine(); 

            Console.Write("Kérem a Metapay azonosítót!: "); 

            string azonositob = Console.ReadLine(); 

            Console.Write("Kérem a kártyaszámodat!: "); 

            string kartyaszamb = Console.ReadLine(); 

            nevb = nevb.ToUpper(); 

            if (nevb == nev) 

            { 

                Console.WriteLine("A név jó"); 

            } 

            else 

            { 

                Console.WriteLine("Nem jó"); 

            } 

            azonositob = azonositob.ToUpper(); 

            if (azonositob == azonosito) 

            { 

                Console.WriteLine("Az azonosító jó"); 

            } 

            else 

            { 

                Console.WriteLine("Az azonosító nem jó"); 

            } 

            if (kartyaszam == kartyaszamb) 

            { 

                Console.WriteLine("A kártyaszám jó"); 

            } 

            else 

            { 

                Console.WriteLine("A kártyaszám nem jó"); 

            } 

            Console.ReadLine(); 

 


2021.01.28.-29. Kétágú szelekció bevezetése

Feladat

//1.feladat:

//- Kérj be egy egész számot.

//- Írd ki, hogy pozitív, vagy negatív.

 

//1. megoldás - egyágú szelekcióval:

           

//2. megoldás - kétágú szelekcióval:

 

//- Írd ki, hogy osztható-e 2-vel.

 

//1. megoldás - egyágú szelekcióval:

           

//2. megoldás - kétágú szelekcióval:

 

//2.feladat:

//- Kérj be egy betűt.

//- Írd ki, hogy a bekért betű a nagy A betű-e, vagy nem.

 

//1. megoldás - egyágú szelekcióval:

 

//2. megoldás - kétágú szelekcióval:

 

//3.feladat:

//- Kérd be, milyen nap van ma.

//- Írd ki, hogy a bekért szó tényleg a mai nap-e, vagy nem.

 

//1. megoldás - egyágú szelekcióval:

 

//2. megoldás - kétágú szelekcióval:

 

//4.feladat:

//- Kérj be egy tetszőleges számot.

//- Írd ki, hogy a bekért szám tizede nagyobb 5-nél, vagy kisebb 5-nél.

 

//1. megoldás - egyágú szelekcióval:

//egyenlőséget nem kezeltük.

 

//2. megoldás - kétágú szelekcióval:

//egyenlőséget is kezeltük.

////////////////////////////////////////////////////////////////////////////////////

           

//5.feladat:

//- Kérd be a magyar abc első mássalhangzóját.

//- Írj ki egy megjegyzést arról, hogy jó-e a válasz.

//- Írj ki még egy mondatot a következő sorba.

 

 

//1. megoldás - egyágú szelekcióval:

 

//2. megoldás - kétágú szelekcióval:

 

//6.feladat:

//- Kérd be az <igaz> szót angolul. (Használj logikai változót.)

//- Írj ki egy megjegyzést arról, hogy jó-e a válasz.

//- Írj ki még egy mondatot a következő sorba.

 

//1. megoldás - egyágú szelekcióval:

 

//2. megoldás - kétágú szelekcióval:


A megoldásban eddig jutottunk el:

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

namespace ketaguSzelekcio
{
    class Program
    {
        static void Main(string[] args)
        {
        //1.feladat:

        //- Kérj be egy egész számot.
            Console.Write("Írj be egy számot: ");
            int szam = Convert.ToInt32(Console.ReadLine());
        //- Írd ki, hogy pozitív, vagy negatív.
        //1. megoldás - egyágú szelekcióval:
            if (szam >= 0)
            {
                Console.WriteLine("A szám pozitív.");
            }
            if (szam < 0)
            {
                Console.WriteLine("A szám negatív.");
            }

        //2. megoldás - kétágú szelekcióval:
            if (szam >= 0)
            {
                 Console.WriteLine("A szám pozitív.");               
            }
            else
            {
                Console.WriteLine("A szám negatív.");  
            }

            //így is lehet
            if (szam >= 0)
                Console.WriteLine("A szám pozitív."); 
            else
                Console.WriteLine("A szám negatív."); 


        //- Írd ki, hogy osztható-e 2-vel.
        //1. megoldás - egyágú szelekcióval:

            if (szam % 2 == 0) //5/2=2,5  5/2= 2, maradék:1      4/2=2, maradék:0
            {
                Console.WriteLine("A szám osztható kettővel.");
            }

            if (!(szam % 2 == 0)) //== egyenlő-e?
            {
                Console.WriteLine("A szám nem osztható kettővel.");
            }
            //ez ugyanaz:
            if (szam % 2 != 0) //!= nem egyenlő-e? (ugye nem egyenlő?)
            {
                Console.WriteLine("A szám nem osztható kettővel.");
            }

        //2. megoldás - kétágú szelekcióval:


            if (szam % 2 == 0) //5/2=2,5  5/2= 2, maradék:1      4/2=2, maradék:0
            {
                Console.WriteLine("A szám osztható kettővel.");
            }
            else
            {
                Console.WriteLine("A szám nem osztható kettővel.");
            }


        //2.feladat:

        //- Kérj be egy betűt.
            Console.Write("Kérek egy betűt: ");
            char betu = Convert.ToChar(Console.ReadLine());
          
        //- Írd ki, hogy a bekért betű a nagy A betű-e, vagy nem.
            if (betu == 'A')
            {
                
            }


2021.01.20. Gyakorlás

 Digifüzet ellenőrzése, nyaralásos feladat befejezése, okosasztalos feladat ellenőrzése...

2023.04.26. Javító feladatsor