2020. január 30., csütörtök

2020.01.30. /2. Egymásba ágyazott szelekció - Dolgozat pontozás

Házi feladat a 2. feladatból az első részt megoldani, ebben semmi új nincs.

Dolgozatpontozás
namespace dolgozatPontozas
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("A dolgozatban elérhető max. pontszám: 100");

            //1.Ki akarod számolni, hogy a társad hányast kapott
            //a dolgozatára. Kérd be az 5 feladat pontszámát,
            //végül add össze őket.
            //Első megoldás:
            //Egyenként tároljuk őket változókban.

            Console.WriteLine("Add meg az 1. feladatban elért pontszámodat!");
            int feladat1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Add meg az 2. feladatban elért pontszámodat!");
            int feladat2 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Add meg az 3. feladatban elért pontszámodat!");
            int feladat3 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Add meg az 4. feladatban elért pontszámodat!");
            int feladat4 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Add meg az 5. feladatban elért pontszámodat!");
            int feladat5 = Convert.ToInt32(Console.ReadLine());
            int osszpont = feladat1 + feladat2 + feladat3 + feladat4 + feladat5;

            //Második megoldás:
            //Mindig csak az aktuális pontszámot tároljuk addig, amíg
            //hozzá nem adtuk a többihez.

            //2. Írjuk ki, hogy a pontszám alapján a user hányast kapott.
            //Alkalmazzunk egymást kizáró egyágú szelekciókat.
            //Az első megoldáshoz ezeket az intervallumokat használjuk
            //a feltételekben:0-60,61-70,71-80,81-90,91-100
            //A második megoldáshoz ezeket az intervallumokat használjuk
            //a feltételekben:0-60,60-70,70-80,80-90,90-100
            //A harmadik megoldáshoz alkalmazzunk egymásba ágyazott szelekciókat.

            //Első megoldás:

            //Második megoldás:

            //Második megoldás másképp megjelenítve:

            //Harmadik megoldás:
            Console.ReadLine();
        }
    }
}






A megoldás első része:


            osszpont = 0;

            Console.WriteLine("Add meg az 1. feladatban elért pontszámodat!");

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

            osszpont = osszpont + pontszam;

            Console.WriteLine("Add meg az 2. feladatban elért pontszámodat!");

            pontszam = Convert.ToInt32(Console.ReadLine());

            osszpont = osszpont + pontszam;

            Console.WriteLine("Add meg az 3. feladatban elért pontszámodat!");

            pontszam = Convert.ToInt32(Console.ReadLine());

            osszpont = osszpont + pontszam;

            Console.WriteLine("Add meg az 4. feladatban elért pontszámodat!");

            pontszam = Convert.ToInt32(Console.ReadLine());

            osszpont = osszpont + pontszam;

            Console.WriteLine("Add meg az 5. feladatban elért pontszámodat!");

            pontszam = Convert.ToInt32(Console.ReadLine());

            osszpont = osszpont + pontszam;

            Console.WriteLine("Összpontszámod: {0} ", osszpont);


2020.01.30./1. Egymásba ágyazott szelekció


// 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 éppen most milyen órája van.

            //- Ha kilencedikes és tesis, írd ki, hogy nem tudjuk, éppen most milyen órája van.



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.
            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("Nem tudjuk, milyen órád van.");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Köszönjük, további szép napot!");
                    }
                }
                else
                {
                    Console.WriteLine("Hiba!");
                }

            }

            //- 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 éppen most milyen órája van.

            //- Ha kilencedikes és tesis, írd ki, hogy nem tudjuk, éppen most milyen órája van.
            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.
            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("Nem tudjuk, milyen órád van.");                       
                    }
                    else                    
                        Console.WriteLine("Köszönjük, további szép napot!");                   
                }
                else               
                    Console.WriteLine("Hiba!");               
            }

            //- 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 éppen most milyen órája van.

            //- Ha kilencedikes és tesis, írd ki, hogy nem tudjuk, éppen most milyen órája van.
            Console.ReadLine();
        }
    }
}

Harmadik, komplexebb 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)
            {
                Console.WriteLine("A szám osztható 5-tel.");
                if (szam % 2 == 0)
                {
                    Console.WriteLine("A szám osztható 2-vel.");
                    Console.WriteLine("A szám osztható 10-zel is.");
                }
                else
                {
                    Console.WriteLine("A szám nem osztható 2-vel.");
                }
            }
            else
            {
                Console.WriteLine("A szám nem osztható 5-tel.");
                Console.WriteLine("Nem vizsgálom a kettővel 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.
            Console.WriteLine("Gimis, vagy szakgimis vagy? (gimis/szakgimis)");
            string szak = Console.ReadLine();
            if (szak == "szakgimis" || szak =="SZAKGIMIS")
            {
                Console.WriteLine("Kérem az évfolyamodat: (pl.:9)");
                string evfolyam = Console.ReadLine();
                if (evfolyam == "9")
                {
                    Console.WriteLine("Infós, vagy tesis vagy? (infós/tesis)");
                    string szakirany = Console.ReadLine();
                    if (szakirany == "infós")
                    {
                        Console.WriteLine("Infós vagy, programozás órád van.");
                    }
                    else
                    {
                        if (szakirany == "tesis")
                        {
                            Console.WriteLine("Tesis, vagy, nem tudjuk, milyen órád van.");
                        }
                        else
                        {
                            Console.WriteLine("Hiba (nem infót és nem tesit írtál)");
                        }
                    }
                }
                else
                {
                    Console.WriteLine("Nem kilencedikes vagy, ksözönjük, nem kérünk több információt.");
                }
            }
            else
            {
                if (szak ==  "gimis")
                {
                    Console.WriteLine("Gimis vagy, nem kérek tőled több adatot.");
                }
                else
                {
                    Console.WriteLine("Ülj le fiam, egyes!");
                }

            }
            //- 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 éppen most milyen órája van.
            //- Ha kilencedikes és tesis, írd ki,
            //hogy nem tudjuk, éppen most milyen órája van.
        }
    }

}

A harmadik megoldás úgy, hogy néhol ki van véve a blokkjelpár. Ott lehet elhagyni, ahol 1 utasítást tartalmaz az igaz, vagy a hamis ág.
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)
            {
                Console.WriteLine("A szám osztható 5-tel.");
                if (szam % 2 == 0)
                {
                    Console.WriteLine("A szám osztható 2-vel.");
                    Console.WriteLine("A szám osztható 10-zel is.");
                }
                else
                {
                    Console.WriteLine("A szám nem osztható 2-vel.");
                }
            }
            else
            {
                Console.WriteLine("A szám nem osztható 5-tel.");
                Console.WriteLine("Nem vizsgálom a kettővel 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.
            Console.WriteLine("Gimis, vagy szakgimis vagy? (gimis/szakgimis)");
            string szak = Console.ReadLine();
            if (szak == "szakgimis" || szak =="SZAKGIMIS")
            {
                Console.WriteLine("Kérem az évfolyamodat: (pl.:9)");
                string evfolyam = Console.ReadLine();
                if (evfolyam == "9")
                {
                    Console.WriteLine("Infós, vagy tesis vagy? (infós/tesis)");
                    string szakirany = Console.ReadLine();
                    if (szakirany == "infós")
                        Console.WriteLine("Infós vagy, programozás órád van.");
                    else
                    {
                        if (szakirany == "tesis")
                            Console.WriteLine("Tesis, vagy, nem tudjuk, milyen órád van.");
                        else
                            Console.WriteLine("Hiba (nem infót és nem tesit írtál)");
                    }
                }
                else
                {
                    Console.WriteLine("Nem kilencedikes vagy, ksözönjük, nem kérünk több információt.");
                }
            }
            else
            {
                if (szak ==  "gimis")
                {
                    Console.WriteLine("Gimis vagy, nem kérek tőled több adatot.");
                }
                else
                {
                    Console.WriteLine("Ülj le fiam, egyes!");
                }

            }
            //- 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 éppen most milyen órája van.
            //- Ha kilencedikes és tesis, írd ki,
            //hogy nem tudjuk, éppen most milyen órája van.
        }
    }
}