Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 20. 02. 2012 17:15

Tess777
Zelenáč
Příspěvky: 16
Reputace:   
 

C# (Visual Studio) - příklad na rozbor známek

mám příklad na rozbor známek, kdy jde o zadání počtu předmětů, známky z každého předmětu a poté se zobrazí rozbor: průměr, počet známek určitých známek (1 - tolikrát, 2 - tolikrát...), a jestli prospěl s vyznamenáním - průměr <=1,5; žádná 3,4,5, prospěl - "to ostatní", neprospěl  - alespoň jedna 5, neklasifikován - alespoň jedna 0) a nejhorší a nejlepší známka
prosím o napravení a doplnění, děkuji moc

Console.Write("Zadej počet známek: ");
            int pocet = Convert.ToInt32(Console.ReadLine());
            int[] zn = new int[pocet];
            for (int i = 0; i < pocet; i++)
            {
                do
                {
                    Console.WriteLine("Zadej známku z předmětu " + Convert.ToString(i + 1) + ":");
                   
                    if (zn[i] < 0 || zn[i] > 5)
                    {
                        Console.Write("Špatně, zadej znovu.");
                    }
                } while (zn[i] < 0 || zn[i] > 5);

            }
           
            int max = 0;
            int maxi = 0;
            int min = 6;
            int mini = 0;
            bool nula = false;
            double a = 0;
            for (int i = 0; i < pocet; i++)
            {
                if (zn[i] > max)
                {
                    max = zn[i];
                    maxi = i + 1;
                }
                if (zn[i] < min && zn[i] != 0)
                {
                    min = zn[i];
                    mini = i + 1;
                }



               

                Console.ReadLine();

Offline

 

#2 23. 02. 2012 16:11 — Editoval RePRO (23. 02. 2012 16:29)

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: C# (Visual Studio) - příklad na rozbor známek

Zdravím,
tak jsem to sesmolil teď kompletně, snad všechny Tvé požadavky mám (i když sem některým úplně nerozuměl):

Code:

using System;
using System.Linq;

namespace Znamky
{
    class Program
    {
        static void Main(string[] args)
        {
            float prumer = 0.0f;
            float soucet = 0.0f;

            Console.Write("Zadej počet známek: ");
            int pocet = Convert.ToInt32(Console.ReadLine());
            int[] zn = new int[pocet];

            for (int i = 0; i < pocet; i++)
            {
                znovu:
                    Console.Write("Zadej známku z předmětu " + Convert.ToString(i + 1) + ": ");
                    int znamka = Convert.ToInt32(Console.ReadLine());

                    if (znamka <= 0 || znamka > 5)
                    {
                        Console.Write("Špatně, zadej znovu.");
                        goto znovu;
                    }
                    zn[i] = znamka;
                    soucet += znamka;
            }
            prumer = soucet / pocet;

            Console.Write("\nPocet znamek: {0}", pocet);
            Console.Write("\nPrůměr: {0} ", prumer);
            if (prumer < 1.5)
            {
                Console.Write("\nProspěl s vyznamenáním.");
            }
            else if (!zn.Contains(5))
            {
                Console.Write("\nProspěl.");
            }
            else
            {
                Console.Write("\nNeprospěl.");
            }
            Console.Write("\nNejlepší známka: {0} ", zn.Min());
            Console.Write("\nNejhorší známka: {0} ", zn.Max());
            Console.Write("\nPocet znamek 1: {0}", zn.Count(pom => pom.Equals(1) == true));
            Console.Write("\nPocet znamek 2: {0}", zn.Count(pom => pom.Equals(2) == true));
            Console.Write("\nPocet znamek 3: {0}", zn.Count(pom => pom.Equals(3) == true));
            Console.Write("\nPocet znamek 4: {0}", zn.Count(pom => pom.Equals(4) == true));
            Console.Write("\nPocet znamek 5: {0}", zn.Count(pom => pom.Equals(5) == true));
            
            Console.ReadKey();
        }
    }
}

Jinak použití návěští a goto se budeme raději vyhýbat (jde to řešit klidně i whilem), ale chci naznačit i jiné možné techniky. Jinak pro určení počet známek v poli používám docela novou technologii LINQ. Zbytečný by určitě byl příkaz IF, který by měl moc řádků. ;-) Avšak, pokud jsi někde ve výukovém školním kurzu/předmětu, tak si to předělej do ifů...


Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

#3 24. 02. 2012 17:03

Tess777
Zelenáč
Příspěvky: 16
Reputace:   
 

Re: C# (Visual Studio) - příklad na rozbor známek

↑ RePRO: o zkušenosti více, děkuju mockrát

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson