==== Számoljunk... ====
Kérjünk be pozitív egész számokat egészen addig, amíg a felhasználó 0-t nem ad meg. Anélkül, hogy az összes számot eltárolnánk válaszoljunk a következőkre: Hány számot olvastunk be? Melyik volt a legnagyobb/legkisebb beolvasott szám? Mennyi a beolvasott számok átlaga? Rendezett-e a beírt számsor, ha igen, akkor csökkenő, növekvő, vagy konstans?
**Megjegyzések:**
Vigyázzunk arra, hogy egész számok osztásakor alapértelmezetten egész osztást (maradékos osztást) végez a C#. Ha valós értéket szeretnénk kapni, akkor a ''(double)'' típus jelzést kell elé írni.
int db = 0;
Console.WriteLine("Adjon meg pozitív egész számokat (vége: 0)!");
int szam = Convert.ToInt32(Console.ReadLine());
int max = szam;
int min = szam;
int osszeg = szam;
String all = "konstans";
while (szam != 0)
{
db++;
Console.WriteLine("Adjon meg újabb számot (vége: 0)!");
int elozo = szam;
szam = Convert.ToInt32(Console.ReadLine());
if (szam != 0)
{
if (szam > max) max = szam;
if (szam < min) min = szam;
if (all == "konstans")
{
if (elozo < szam) all = "növekvő";
else if (elozo > szam) all = "csökkenő";
}
else if (
(all == "növekvő" && elozo > szam)
|| (all == "csökkenő" && elozo < szam)
) all = "nem rendezett";
osszeg += szam;
}
}
Console.WriteLine("A beolvasott pozitív számok száma: {0}.", db);
Console.WriteLine("A legnagyobb: {0}\nA legkisebb: {1}", max, min);
Console.WriteLine("A sorozoat {0}.", all);
Console.WriteLine("A sorozat átlaga: {0}", (double)osszeg/db);
Console.ReadKey();
==== Háromszög ====
Kérjünk be három szakaszhosszt. Állapítsuk meg, hogy a megadott szakaszokból szerkeszthető-e háromszög! Ha igen, akkor adjuk meg a háromszög kerületét és területét (használjuk a Heron-képletet)!
**Megoldás:**
A terület és félkerület számoláshoz valós (''double'') típust használjunk. A gyökvonás - és a többi matematikai függvény - a ''Math'' osztály metódusai ként érhető el (''Math.Sqrt''). Figyeljük meg a kiíratáskor a három tizedesre kerekítést (''{0:F3}'')!
Console.WriteLine("Adja meg a háromszög három oldalának hosszát!");
Console.Write("a = ");
int a = Convert.ToInt32(Console.ReadLine());
Console.Write("b = ");
int b = Convert.ToInt32(Console.ReadLine());
Console.Write("c = ");
int c = Convert.ToInt32(Console.ReadLine());
if (a + b > c && a + c > b && b + c > a)
{
Console.WriteLine("A háromszög szerkeszthető.");
int k = a + b + c;
double s = k / 2;
double t = Math.Sqrt(s * (s - a) * (s - b) * (s - c));
Console.WriteLine("A háromszög kerülete: {0}", k);
Console.WriteLine("A háromszög területe: {0:F3}", t);
}
else
{
Console.WriteLine("A háromszög nem szerkeszthető.");
}
==== Piskóta ====
Kérjük be egy kerek piskóta-torta méreteit (átmérő, magasság), és a ráteendő krém vastagságát cm-ben. Számoljuk ki, hogy mennyi krémre van szükség a torta bevonásához, ha 5% ráhagyással dolgozunk.
**Megoldás:**
A megoldás során használjunk ''double'' típusú változókat, különben kerekítési hibáink lehetnek.
Console.WriteLine("Adja meg a piskóta átmérőjét!");
double r = Convert.ToDouble(Console.ReadLine()) / 2;
Console.WriteLine("Adja meg a piskóta magasságát!");
double m = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Adja meg a krém vastagságát!");
double k = Convert.ToDouble(Console.ReadLine());
double v = (r+k)*(r+k)*(m+k)*Math.PI;
double vv = r*r*Math.PI*m;
Console.WriteLine("A piskóta térfogata: {0:F3}\nA teljes térfogat: {1:F3}\nA szükséges krém mennyisége: {2:F3}", vv, v, (v-vv)*1.05);