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);
oktatas/informatika/programozas/dotnet/c-sharp/gyakorlas1.txt · Utolsó módosítás: 2019/06/04 14:13 szerkesztette: barnkopf
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0