==== 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);