//Dolgozat értékelés
//1. Kérd be egy 100 pontos dolgozat 5 feladatának
pontszámait.
//Lehetnek fél pontok is.
//2. Összesítsd a pontokat, írd is ki.
//3. Ezután írd ki, hányast kapott a user.
//25%-ig egyes, 40%-ig kettes, 60%-ig hármas, 80%-ig négyes, afölött ötös.
//4. Építsd bele a programba az összpontszám-ellenőrzést:
//ha a kiszámolt összpontszám nem a nulla és 100
//közé esik, akkor hangjelzés kíséretében írj ki
hibaüzenetet,
//és szakítsd meg a programot.
//Kérdés1: Hogyan kezelnéd a hibás érték bevitelét?
//Kérdés2: Mi a hátránya annak, hogy egymás után
//minden feltételt kiértékel a program?
//5. feladat: Építsd bele a programba a feladatonkénti
//pontszámellenőrzést a következők alapján:
//első feladat: 20 pont
//második feladat: 15 pont
//harmadik feladat: 25 pont
//negyedik feladat: 10 pont
//ötödik feladat: 30 pont
//Ha a bekért pontszám nem a nulla és a megfelelő
//pontszám közé esik, akkor hangjelzés kíséretében
//írj ki hibaüzenetet, és szakítsd meg a programot.
//6. feladat: Légy jó szívű! Add meg a jobb jegyet, ha
//csak fél pont hiányzik.
//(Vagy inkább kegyetlen akarsz lenni?:)
//Szorgalmi: Add meg a pontok bekérésénél
//az összetett feltételeket kétféleképpen:
//úgy, hogy ne legyen benne tagadás, és
//úgy, hogy legyen benne egy tagadás.
using System;
using System.Threading;
namespace szelekcioGyakorlas
{
class Program
{
static void Main(string[] args)
{
//int szam = 10;
//if (szam==10)
//{
// Console.WriteLine("igaz");
//}
//Dolgozat értékelés
//1. Kérd be egy 100 pontos dolgozat 5 feladatának pontszámait.
//Lehetnek fél pontok is.
Console.Write("Kérem az 1. feladat elért pontszámát (max. 20): ");
double elso = Convert.ToDouble(Console.ReadLine());
//Ez a feltétel VAGY művelettel oldja meg az ellenőrzést:
//if (elso < 0 || elso > 20)
//{
// Console.WriteLine("Rossz a feladat pontszáma!");
// Console.Beep();
// Thread.Sleep(1000);
// return;
//}
//Ez a feltétel tagadott ÉS művelettel oldja meg ugyanazt az ellenőrzést.
//A két megoldás egyenértékű.
//Figyeljük meg, hogy a VAGY művelet ÉS-re változott, amikor tagadtuk.
if (!(elso >= 0 && elso <= 20)) //összetett feltétel, hiszen VAGY/ÉS van benne
{
Console.WriteLine("Rossz a feladat pontszáma!");
Console.Beep();
Thread.Sleep(1000); //1 másodperc (1000 ezredmásodperc) késleltetés
return; //azonnal kilép a programból
}
Console.Write("Kérem az 2. feladat elért pontszámát (max. 15): ");
double masodik = Convert.ToDouble(Console.ReadLine());
if (masodik < 0 || masodik > 15) //összetett feltétel, hiszen VAGY/ÉS van benne
{
Console.WriteLine("Rossz a feladat pontszáma!");
Console.Beep();
Thread.Sleep(1000);
return;
}
Console.Write("Kérem az 3. feladat elért pontszámát (max. 25):");
double harmadik = Convert.ToDouble(Console.ReadLine());
if (harmadik < 0 || harmadik > 25)
{
Console.WriteLine("Rossz a feladat pontszáma!");
Console.Beep();
Thread.Sleep(1000);
return;
}
Console.Write("Kérem az 4. feladat elért pontszámát (max. 10):");
double negyedik = Convert.ToDouble(Console.ReadLine());
if (negyedik < 0 || negyedik > 10)
{
Console.WriteLine("Rossz a feladat pontszáma!");
Console.Beep();
Thread.Sleep(1000);
return;
}
Console.Write("Kérem az 5. feladat elért pontszámát (max. 30): ");
double otodik = Convert.ToDouble(Console.ReadLine());
if (otodik < 0 || otodik > 30)
{
Console.WriteLine("Rossz a feladat pontszáma!");
Console.Beep();
Thread.Sleep(1000);
return;
}
//2. Összesítsd a pontokat, írd is ki.
double osszesen = elso + masodik + harmadik + negyedik + otodik;
Console.WriteLine("Összpontszám: {0}", osszesen);
//3. Ezután írd ki, hányast kapott a user.
if (osszesen < 0 || osszesen > 100)
{
Console.WriteLine("Rossz az összpontszám!");
Console.Beep();
Thread.Sleep(1000);
return;
}
// A következő 5 szelekció hátránya, hogy ha bármelyik igaz,
//attól még kiértékeli a többit is, ezek így fölösleges utasítás-végrehajtások.
//Ezt a kétágú szelekcióval fogjuk tudni elkerülni.
//Kiértékelés: megvizsgálja, igaz-e vagy hamis a feltétel
if (osszesen <= 60)
{
Console.WriteLine("Egyest kaptál.");
}
if (osszesen >= 60.5 && osszesen <= 70)
{
Console.WriteLine("Kettest kaptál.");
}
if (osszesen >= 70.5 && osszesen <= 80)
{
Console.WriteLine("Hármast kaptál.");
}
if (osszesen >= 80.5 && osszesen <= 90)
{
Console.WriteLine("Négyest kaptál.");
}
if (osszesen >= 90.5 && osszesen <= 100)
{
Console.WriteLine("Ötöst kaptál.");
}
//4 feladat: Építsd bele a programba az összpontszám-ellenőrzést:
//ha a kiszámolt összpontszám nem a nulla és 100
//közé esik, akkor hangjelzés kíséretében írj ki hibaüzenetet,
//és szakítsd meg a programot.
//EZT FÖNT OLDOTTUK MEG A PONTSZÁMBEKÉRÉSEKNÉL
//Kérdés1: Hogyan kezelnéd a hibás érték bevitelét?
//Válasz: megoldottuk, amennyire tudtuk.
//Ha majd megtanuljuk a ciklusokat, akkor majd
//addig kérjük be újra és újra a pontszámot, amíg jó nem lesz.
//Kérdés2: Mi a hátránya annak, hogy egymás után
//minden feltételt kiértékel a program?
//A válasz a szelekcióknál van.
//5. feladat: Építsd bele a programba a feladatonkénti
//pontszámellenőrzést a következők alapján:
//első feladat: 20 pont
//második feladat: 15 pont
//harmadik feladat: 25 pont
//negyedik feladat: 10 pont
//ötödik feladat: 30 pont
//Ha a bekért pontszám nem a nulla és a megfelelő
//pontszám közé esik, akkor hangjelzés kíséretében
//írj ki hibaüzenetet, és szakítsd meg a programot.
//Ezt fent megoldottuk.
//6. feladat: Légy jó szívű! Add meg a jobb jegyet, ha
//csak fél pont hiányzik.
//(Vagy inkább kegyetlen akarsz lenni?:)
//Fent megoldottuk.
//Szorgalmi: Add meg a pontok bekérésénél
//az összetett feltételeket kétféleképpen:
//úgy, hogy ne legyen benne tagadás, és
//úgy, hogy legyen benne egy tagadás.
//Az első feladat pontszámának bekérésénél megoldottuk.
Console.ReadLine();
}
}
}
Nincsenek megjegyzések:
Megjegyzés küldése
Megjegyzés: Megjegyzéseket csak a blog tagjai írhatnak a blogba.