While – gyakorló feladat
1 feladat:
− Kérd be a felhasználótól, hogy hány nap múlva lesz vége a tanévnek.
− Számolj visszafelé egyesével 1-ig, az aktuális értéket írd ki a képernyőre (élesben naponta egyet kellene kiírni).
2 feladat:
Monitorokat szállítasz ki a raktárból.
− A kezdőkészlet értékét kérd be (tehát hány db monitor van).
− A ciklus addig megy, amíg el nem fogy minden monitor.
− Minden cikluslépésben csökkents a készletet egy 1 és 10 közötti friss véletlenszámmal.
− Minden cikluslépésben írd ki, hogy hányat akar venni a vásárló, hány darab monitor van még, és a vásárlás után hány maradt. (A végén figyelj, hogy ne menj mínuszba.)
Máté megoldása:
using System;
namespace Orai20230217
{
class Program
{
static void Main(string[] args)
{
Random rnd = new Random();
//1 feladat:
//− Kérd be a felhasználótól, hogy hány nap múlva lesz vége a tanévnek.
//− Számolj visszafelé egyesével 1 - ig, az aktuális értéket írd ki a képernyőre(élesben naponta egyet kellene kiírni).
Console.Write("Hány nap múlva ér véget a tanév? ");
int napok = Convert.ToInt32(Console.ReadLine());
while (napok > 0)
{
Console.WriteLine($"Még {napok} nap maradt hátra a tanévből!");
napok--;
}
Console.WriteLine();
//2 feladat:
//Monitorokat szállítasz ki a raktárból.
//− A kezdőkészlet értékét kérd be(tehát hány db monitor van).
//− A ciklus addig megy, amíg el nem fogy minden monitor.
//− Minden cikluslépésben csökkents a készletet egy 1 és 10 közötti friss véletlenszámmal.
//− Minden cikluslépésben írd ki, hogy hányat akar venni a vásárló, hány darab monitor van még, és a vásárlás után hány maradt. (A végén figyelj, hogy ne menj mínuszba.)
Console.Write("Hány darab monitor van raktáron? ");
int monitorok = Convert.ToInt32(Console.ReadLine());
int vétel = 0;
while (monitorok > 0)
{
vétel = rnd.Next(1, 11);
if (monitorok > vétel)
{
Console.WriteLine($"Jelenleg {monitorok} darab monitor van raktáron, amiből a vevő {vétel} darabot vesz, így raktáron marad {monitorok - vétel} darab.");
}
else
{
if (monitorok == vétel)
{
Console.WriteLine($"Jelenleg {monitorok} darab monitor van raktáron, a vevő {vétel} darabot vesz, és nem marad raktáron monitor.");
}
else
{
Console.WriteLine($"Jelenleg {monitorok} darab monitor van raktáron, a vevő {vétel} darabot akart venni, de mivel nincs elég, így a vevő csak {monitorok} darabot tud venni, és nem marad raktáron monitor.");
}
}
monitorok -= vétel;
}
Console.ReadLine();
}
}
}
Tamás megoldása alapján:
using System;
namespace kiiro
{
class Program
{
static void Main(string[] args)
{
Console.Write("Hány nap múlva lesz vége a tanévnek: ");
int tanevvege = Convert.ToInt32(Console.ReadLine());
while (tanevvege >= 0)
{
Console.WriteLine(tanevvege);
tanevvege--;
}
Console.ReadLine();
Console.Write("Kérem a kezdőkészlet értékét: ");
int kezdokeszlet = Convert.ToInt32(Console.ReadLine());
Random rnd = new Random();
int randomszam = 0;
while (kezdokeszlet > 0)
{
randomszam = rnd.Next(1,11);
Console.WriteLine($"Ennyi monitort szeretne: {randomszam}");
Console.WriteLine($"Ennyi monitor van még: {kezdokeszlet}");
kezdokeszlet -= randomszam;
if (kezdokeszlet < 0)
{
kezdokeszlet = kezdokeszlet * -1;
Console.WriteLine($"Elfogytak a monitorok szóval ennyi monitort nem kapott meg a vásárló: {kezdokeszlet}");
kezdokeszlet = 0;
}
else
{
Console.WriteLine($"Ennyi maradt: {kezdokeszlet}");
Console.WriteLine();
}
}
Console.ReadLine();
}
}
}