1. óra: Helyettesítés utáni ismétlés: többágú szelekció, egymásba ágyazott kétágú szelekció gyakorlása. Önállóan megoldott feladatok ellenőrzése.
A kiadott feladatok néhány lehetséges megoldását it találod:
Domino Day egy lehetséges megoldása
using System;
namespace DominoDay
{
class Program
{
static void Main(string[] args)
{
const double dobozTerfogat = 50 * 10 * 80 * 10 * 40 * 10;
const double elsoTerfogat = 50 * 30 * 6;
const double elsoDarabDouble = dobozTerfogat * 15 / elsoTerfogat;
const int elsoDarabInt = (int)elsoDarabDouble; //típuskényszerítés: arra "kényszerítjük",
//hogy int legyen, ami azzal jár, hogy elveszítjük
//a tizedes részt - itt éppen ez a cél, így kerekítünk
//konstans értékadásánál ugyanis nem használhatjuk a Convert függvényt
//ha nem konstans, akkor használhatjuk:
int elsoDarabKonvertalva = Convert.ToInt32(elsoDarabDouble);
/////////////////////////////////////////////////////////////////////////////
const double masodikTerfogat = 40 * 25 * 5 ;
const double masodikDarabDouble = dobozTerfogat * 15 / masodikTerfogat;
const int masodikDarabInt = (int)masodikDarabDouble; //típuskényszerítés
/////////////////////////////////////////////////////////////////////////////
const double harmadikTerfogat = 70 * 35 * 8;
const double harmadikDarabDouble = dobozTerfogat * 15 / harmadikTerfogat;
const int harmadikDarabInt = (int)harmadikDarabDouble; //típuskényszerítés
/////////////////////////////////////////////////////////////////////////////
Console.WriteLine("Első domino: 50 * 30 * 6");
Console.WriteLine("Második domino: 40 * 25 * 5");
Console.WriteLine("Harmadik domino: 70 * 35 * 8");
Console.Write("Melyik fajta dominó érkezett ma? (első/második/harmadik) ");
string fajta = Console.ReadLine();
if (fajta == "első")
{
Console.WriteLine("Ennyi dominó van a dobozban: {0}", elsoDarabInt); // egész számot kapunk, nincs kerekítve, csak levágtuk a tört részt
//vagyis megkaptuk a szám egész részét
Console.WriteLine("További számítások (nem a feladat része):");
Console.WriteLine(elsoDarabDouble); //tört számot kapunk
Console.WriteLine(elsoDarabKonvertalva); //egész számot kapunk, kerekítve
Console.WriteLine("{0:0}", elsoDarabDouble); //csak megformáztuk a kiírást, kerekíti a számot egésszé
Console.WriteLine("{0:0.000}", elsoDarabDouble); //csak megformáztuk a kiírást, kerekíti a számot 3 tizedesjegyre
}
else
{
if (fajta == "második")
{
Console.WriteLine("Ennyi dominó van a dobozban: {0}", masodikDarabInt);
}
else
{
if (fajta == "harmadik")
{
Console.WriteLine("Ennyi dominó van a dobozban: {0}", harmadikDarabInt);
}
else
{
Console.WriteLine("Szövegértési, vagy szövegalkotási problémád van. Fordulj szakemberhez :)");
}
}
}
Console.ReadLine();
}
}
}
Léggömbhámozás egy lehetséges megoldása
Console.WriteLine("Mennyi léggömböt tudtál meghámozni 10 perc alatt? ");
int lufi = Convert.ToInt32(Console.ReadLine());
if (lufi > 20)
Console.WriteLine("Kiváló");
else
{
if (lufi > 10)
Console.WriteLine("Közepes");
else
{
Console.WriteLine("Gyenge");
Console.WriteLine("\nMennyi pénzt áldozott a gép fejlesztésére?");
int penz = Convert.ToInt32(Console.ReadLine());
if (penz > 0 && penz <= 10000)
Console.WriteLine("Kevés");
else
{
if (penz < 20000)
Console.WriteLine("Pedig ez elég lett volna.");
else
Console.WriteLine("Teljesen fölösleges ennyi pénzt erre elkölteni!");
}
}
}
Léggömbhámozás még egy lehetséges megoldása
Console.Write("Kérem írja be, hány léggömböt hámoztak meg: ");
int leggomb = Convert.ToInt32(Console.ReadLine());
if (leggomb > 20)
Console.WriteLine("Ez a mennyiség kiváló");
else
if (leggomb > 10)
Console.WriteLine("Ez a mennyiség közepes");
else
if (leggomb <= 10)
{
Console.WriteLine("Ez a mennyiség gyenge");
Console.Write("Mennyi pénzt költött fejlesztésre? ");
int penz = Convert.ToInt32(Console.ReadLine());
if (penz <= 10000)
Console.WriteLine("Ez az összeg kevés rá");
else
if (penz <= 20000)
Console.WriteLine("Ennek az összegnek elég kell lennie");
else
if (penz > 20000)
Console.WriteLine("Ez az összeg már felesleges");
}
else
Console.WriteLine("Hibás szám");
Fuvolaverseny egy lehetséges megoldása
Console.Title = "Megyei fuvolaverseny";
Console.WriteLine("Fuvolavereny\n----------\n");
//A megyei fuvolaversenyre jelentkeznek a versenyzők.
//Az alapján rendezik a versenyzőket kategóriákba, hogy
//hány évig tanultak zenét.
//I. kategória: 2, vagy 3 évig tanult zenét
//II. kategória: 4, vagy 5 évig tanult zenét
//III. kategória: 6, vagy 7 évig tanult zenét
//A fenti intervallumokat a tanult módon, egyszerű feltétellel add meg.
//Feladat:
//Kérd be, hány évig tanult a jelentkező zenét!
Console.Write("A versenyző hány évig tanulta a zenét?: ");
int ev = Convert.ToInt32(Console.ReadLine());
//Írd ki, melyik kategóriába tartozik!
if (ev > 1 && ev < 4)
{
Console.WriteLine("A versenyző az I. csoportba tartozik!");
}
else
{
if (ev > 6)
{
Console.WriteLine("A versenyző a II. csoportba tartozik!");
}
else
{
if (ev > 8)
{
Console.WriteLine("A versenyző a III. csoportba tartozik!");
}
}
}
//Kérd be, hány pontot kapott (0-60 között) a versenyen.
Console.Write("A versenyző hány pontot kapott a versenyen?: ");
int pont = Convert.ToInt32(Console.ReadLine());
//Ha 50 pont fölött kapott, írd ki, hogy továbbjutott
//az országos versenyre.
if (pont < 0 || pont > 60)
{
Console.WriteLine("Hibás pontszám!");
}
else
{
if (pont > 50)
{
Console.WriteLine("A versenyző továbbjutott az országos versenyre!");
Console.Write("A versenyző kisérőtanárral utazik vagy szülővel? (kisérőtanár/szülő): ");
string utazas = Console.ReadLine();
if (utazas == "szülő" || utazas == "kisérőtanár")
{
if (utazas == "szülő")
{
Console.Write("Kérem az egyik szülő telefonszámát: ");
string teloszam = Console.ReadLine();
}
else
{
Console.Write("Kérem a kisérőtanár nevét: ");
string kiserotanar = Console.ReadLine();
}
}
else
{
Console.WriteLine("Hibás bevitel!");
}
}
else
{
Console.WriteLine("A versenyző NEM jutott tovább az országos versenyre! Sajnáljuk! :(");
Console.Write("Kérem az iskolája nevét és címét: ");
string iskolaelerhet = Console.ReadLine();
}
}
//Egyébként pedig írd ki, hogy nem jutott tovább.
//Ha továbbjutott, kérdezd meg, hogy a szüleivel utazik, vagy kísérőtanárral.
//Ha a szüleivel utazik, kérd be az egyik szülő telefonszámát.
//Ha kísérőtanárral utazik, kérdezd meg a tanára nevét.
//Ha nem jutott tovább, akkor kérd be az iskolája nevét és címét
//mert oda fogják küldeni a vigaszdíjat.
//Ha ez kész, egészítsd ki a megoldást hibaellenőrzéssel.
Console.ReadLine();
Fuvolaverseny még egy lehetséges megoldása
//A megyei fuvolaversenyre jelentkeznek a versenyzők.
//Az alapján rendezik a versenyzőket kategóriákba, hogy
//hány évig tanultak zenét.
//I. kategória: 2, vagy 3 évig tanult zenét
//II. kategória: 4, vagy 5 évig tanult zenét
//III. kategória: 6, vagy 7 évig tanult zenét
//A fenti intervallumokat a tanult módon, egyszerű feltétellel add meg.
//Feladat:
//Kérd be, hány évig tanult a jelentkező zenét!
Console.Write("Hány évig tanult zenét? : ");
int tanulev = Convert.ToInt32(Console.ReadLine());
//Írd ki, melyik kategóriába tartozik!
while (!(2 <= tanulev && tanulev <= 7))
{
Console.WriteLine("Rossz értéket adott meg!");
Console.Write("Az érték újra: ");
tanulev = Convert.ToInt32(Console.ReadLine());
}
if (tanulev == 2 || tanulev == 3)
{
Console.WriteLine("Az I. kategóriába tartozik");
}
else
if (tanulev == 4 || tanulev == 5)
{
Console.WriteLine("Az II. kategóriába tartozik");
}
else
if (tanulev == 6 || tanulev == 7)
{
Console.WriteLine("Az III. kategóriába tartozik");
}
//Kérd be, hány pontot kapott (0-60 között) a versenyen.
Console.Write("Hány pontot kapott a versenyen? : ");
int pontok = Convert.ToInt32(Console.ReadLine());
//Ha 50 pont fölött kapott, írd ki, hogy továbbjutott
//az országos versenyre.
//Egyébként pedig írd ki, hogy nem jutott tovább.
while (!(0 <= pontok && pontok <= 60))
{
Console.WriteLine("Rossz értéket adott meg!");
Console.Write("Az érték újra: ");
pontok = Convert.ToInt32(Console.ReadLine());
}
if (50 < pontok)
{
Console.WriteLine("Továbbjutott");
Console.WriteLine();
Console.WriteLine("A kivel utazik? (szülők ; kísérőtanár)");
string kivel = Console.ReadLine().ToLower();
while (kivel != "szülők" || kivel != "kísérőtanár")
{
Console.WriteLine("Rossz értéket adott meg!");
Console.Write("Az érték újra: ");
kivel = Console.ReadLine().ToLower();
}
if (kivel == "szülők")
{
Console.Write("Kérem az egyik szülő telefonszámát: ");
string telszam = Console.ReadLine();
}
else
{
Console.Write("Kérem a tanár nevét: ");
string tanarnev = Console.ReadLine();
}
}
else
{
Console.WriteLine("Nem jutott tovább");
Console.Write("Kérem az iskola nevét és címét: ");
string iskola = Console.ReadLine();
}
Console.WriteLine("Viszlát!");
//Ha továbbjutott, kérdezd meg, hogy a szüleivel utazik, vagy kísérőtanárral.
//Ha a szüleivel utazik, kérd be az egyik szülő telefonszámát.
//Ha kísérőtanárral utazik, kérdezd meg a tanára nevét.
//Ha nem jutott tovább, akkor kérd be az iskolája nevét és címét
//mert oda fogják küldeni a vigaszdíjat.
//Ha ez kész, egészítsd ki a megoldást hibaellenőrzéssel.
Console.ReadLine();
Túlsúly feladat egy lehetséges megoldása
// Írj programot, amely bekéri egy felnőtt férfi testmagasság(cm - ben) és testsúly(kg-ban) adatait.
//Ha a magasság 100 cm fölötti, akkor megvizsgálja, hogy túlsúlyos-e: ha a kg - ban mért súlya nagyobb, mint a cm - ben mért magasság 100 fölötti része, akkor kiírja: "Túlsúlyos, fogynia kell!".
//Ha a magasság 100, vagy az alatti érték, akkor írja ki a program, hogy "Gyerekekkel nem foglalkozom!"
double hundredValue = 100;
//Pontosítsuk a feladatot: Ha 100 cm fölött van a magasság és nem túlsúlyos, akkor mit tegyünk?
Console.Write("Üdv a programban! Kérem adja meg a testmagasságát!(csak egy szám ami cm-ben értelmezendő)--> ");
double bodyHeight = Convert.ToDouble(Console.ReadLine());
Console.WriteLine();
if (hundredValue > bodyHeight)
{
Console.WriteLine("Gyerekekkel nem foglalkozom!");
}
else
{
Console.Write("Kérem adja meg a testsúlyát!(csak egy szám ami kg-ban értelmezendő)--> ");
double bodyWeight = Convert.ToDouble(Console.ReadLine());
if (bodyWeight > bodyHeight - 100)
{
Console.WriteLine("Túlsúlyos! Fogynia kell!");
}
else
{
Console.WriteLine("Egészséges vagy!");
}
}
Dátum ellenőrző egy lehetséges megoldása
Console.WriteLine("Kerem irja be egy honap sorszamat");
int honap = Convert.ToInt32(Console.ReadLine());
if (honap < 1 || honap > 12)
{
Console.WriteLine("Nem jó intervallumba esik a hónap sorszáma.");
}
else
{
Console.WriteLine("Kerem irja be a honaphoz egy nap sorszamat.");
int nap = Convert.ToInt32(Console.ReadLine());
string hiba = "Nem jó intervallumba esik a nap sorszáma.";
if (honap == 1 || honap == 4 || honap == 6 || honap == 9 || honap == 11)
{
if (!(nap >= 1 && nap <= 30)) //vagy: if (nap > 30 || nap < 1)
{
Console.Write(hiba);
}
}
else
{
if (honap == 3 || honap == 5 || honap == 7 || honap == 8 || honap == 10 || honap == 12)
{
if (!(nap >= 1 && nap <= 31)) //vagy: if (nap < 1 || nap > 31))
{
Console.Write(hiba);
}
}
else
{
if (honap == 2)
{
if (!(nap >= 1 && nap <= 28)) //vagy: if (nap < 1 || nap > 28))
{
Console.Write(hiba);
}
}
}
}
}
Feladványok egy lehetséges megoldása Mátétól
Console.Write("Milyen feladatot szeretne megoldani? (matek, logikai, szöveges, karakteres): ");
string valasz = Console.ReadLine();
switch (valasz)
{
case "matek":
Console.Write("Adjon meg egy számot: ");
int szam1 = Convert.ToInt32(Console.ReadLine());
Console.Write("Adjon meg még egy számot: ");
int szam2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Adja össze a két számot! ");
int eredmeny = Convert.ToInt32(Console.ReadLine());
int gep = szam1 + szam2;
if (gep == eredmeny)
{
Console.WriteLine("Gratulálok, jól számoltál");
}
else
Console.WriteLine("Matek egyes");
break;
case "logikai":
Console.Write("Ha két ember beszélget, akkor nem tud három elefánt fejjel lefelé lógva együtt balettozni, igaz? (true/false)");
bool valasz2 = Convert.ToBoolean(Console.ReadLine());
bool gep2 = true;
if (gep2 == valasz2)
{
Console.WriteLine("Jól beszélsz öcsém");
}
else
Console.WriteLine("Hát komám, neked a fejedben az agyrágó bogár éhen pusztulna");
break;
case "karakteres":
Console.Write("Mi James Bond monogramjának második betűje? (nagybetűvel!) ");
char valasz3 = Convert.ToChar(Console.ReadLine());
char gep3 = 'B';
if (gep3 == valasz3)
{
Console.WriteLine("Helyes válasz");
}
else
Console.WriteLine("Nem talált!");
break;
case "szöveges":
Console.Write("Írd le a szlogenemet (mint kiderült, van ilyen ROAD dal is) ");
string valasz4 = Console.ReadLine();
string gep4 = "Egyszer élünk";
if (gep4 == valasz4)
{
Console.WriteLine("Gratula");
}
else
Console.WriteLine("Olyan messze van, mint ide Bukarest!");
break;
default:
Console.WriteLine("Most dönteni nem tudsz, vagy a helyesírással vannak gondok?");
break;
}
Múzeum egy lehetséges megoldása
Console.Title = "Múzeum";
Console.WriteLine("Múzeum");
Console.WriteLine("-------------\n");
//Egy múzeumban a soron következő kiállításra folyamatosan
//szállítják a festményeket. A múzeum 3 termet ad bérbe erre a célra.
//Csontváry terem: 18. századi festmények
//Zichy terem: 19. századi festmények
//Munkácsy terem: 20. századi festmények
//A 18-19. századi festmények csak magyar festőtől származhatnak.
//A 20. századi festmények közül van magyar és külföldi kategória is.
//A festmények kiállításáért bérleti díjat kell fizetni, képenként 5000 forintot.
//Feladat:
//Kérdezd meg a felhasználót, hogy mikor festették az adott képet.
Console.Write("Mikor festették az adott képet? (év): ");
int ev = Convert.ToInt32(Console.ReadLine());
Console.WriteLine();
//A válaszától függően közöld vele, hogy melyik terembe kell vinnie a képet.
if (ev >= 1700 && ev < 2000)
{
if (ev < 1800)
{
Console.WriteLine("A kép a Csontváry terembe tartozik.");
}
else
{
if (ev < 1900)
{
Console.WriteLine("A kép a Zichy terembe tartozik.");
}
else
{
if (ev < 2000)
{
Console.WriteLine("A kép a Munkácsy terembe tartozik.");
Console.Write("\nA képet magyar vagy külföldi festő festette?: ");
string magyarvagykulfold = Console.ReadLine();
if (magyarvagykulfold == "magyar" || magyarvagykulfold == "külföldi" )
{
if (magyarvagykulfold == "magyar" )
{
Console.WriteLine("\nA festmények a galériára kerülnek.");
int berletidij = 5000;
double felar = berletidij * 0.15;
Console.WriteLine("\nA magyar festmények elhelyezése a galérián: {0, 10} Ft/db, ebből a felár {1, 10} Ft/db.", berletidij + felar, felar);
}
else
{
Console.WriteLine("A festmények a terem falára kerülnek.");
}
}
else
{
Console.WriteLine("Hibás adatbevitel! Csak magyar vagy külföldi kategória létezik!");
}
}
}
}
}
//Ha a bekért év nem a 18-20. századba esik, írd ki, hogy másik múzeumba vigyék a képet.
else
{
Console.WriteLine("A képet másik múzeumba kell elvinni.");