$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \renewcommand{\mod}{\,\mathrm{mod}\,} \renewcommand{\div}{\,\mathrm{div}\,} \newcommand{\metar}{\,\mathrm{m}} \newcommand{\cm}{\,\mathrm{cm}} \newcommand{\dm}{\,\mathrm{dm}} \newcommand{\litar}{\,\mathrm{l}} \newcommand{\km}{\,\mathrm{km}} \newcommand{\s}{\,\mathrm{s}} \newcommand{\h}{\,\mathrm{h}} \newcommand{\minut}{\,\mathrm{min}} \newcommand{\kmh}{\,\mathrm{\frac{km}{h}}} \newcommand{\ms}{\,\mathrm{\frac{m}{s}}} \newcommand{\mss}{\,\mathrm{\frac{m}{s^2}}} \newcommand{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.

Recimo da je neko od tvojih drugara koji ide u drugu školu napisao ovaj program koji računa njegovu srednju ocenu za polugodište:

static void Main(string[] args)
{
    double prosek;
    int brPredmeta = 11;
    int srpski = 4;
    int matematika = 5;
    int fizicko = 5;
    int engleski = 5;
    int fizika = 5;
    int hemija = 4;
    int ruski = 5;
    int muzicko = 5;
    int likovno = 5;
    int kung_fu = 5;
    int kibernetika = 5;

    double zbir = srpski + matematika + fizicko + engleski + fizika +
        hemija + ruski + muzicko + likovno + kung_fu + kibernetika;

    prosek = zbir / brPredmeta;

    Console.WriteLine("Tvoj prosek je:" + prosek);
}

Da li primećuješ da je promenljiva zbir deklarisana kao double iako sadrži celobrojnu vrednost? To je zato što želimo da količnik zbir/brPredmeta bude izračunat kao realan broj (da su i deljenik i delilac bili celobrojni, dobili bismo samo celobrojni deo količnika).

Promenljiva zbir je mogla da bude deklarisana i kao int. U tom slučaju bi njena vrednost morala da se prevede u realnu prilikom deljenja, kao što je prikazano u sledećim linijama programskog koda.

    int zbir = srpski + matematika + fizicko + engleski + fizika + 
        hemija + ruski + muzicko + likovno + kung_fu + kibernetika;

    prosek = (double) zbir / brPredmeta; 

Pošto već dovoljno poznaješ programiranje da možeš da razumeš ovaj program, verovatno ti ne bi bilo teško da ga prepraviš i uneseš svoje ocene umesto ovde upisanih. Tako dobijaš program koji računa tvoj prosek, i to izgleda fino. E, sada tvoji drugari vide da imaš takav program i očekuju od tebe da im pomogneš da izračunaju svoje prosečne ocene. Oni ne uče programiranje i nisu sasvim sigurni kako da preprave i pokrenu program, a ti ne želiš da ceo dan praviš različite verzije skoro istog programa. Šta može da se uradi kako bismo rešili ovaj problem?

Bilo bi odlično da možemo da damo drugarima program pomoću kojeg oni sami mogu da izračunaju srednju ocenu, iako ne uče programiranje. Da bi nam to uspelo, treba da imamo program koji ne sadrži gotove podatke, nego samo postupak računanja, a da svako ko pokrene program može sam da unese svoje podatke (to jest ocene) i vidi svoj prosek. Evo jednog takvog programa:

static void Main(string[] args)
{
    int zbir = 0;
    float prosek;
    const int brPredmeta = 11;
    int ocena;

    Console.WriteLine("Sta imas iz srpskog?");
    ocena = int.Parse(Console.ReadLine());
    zbir += ocena;

    Console.WriteLine("Sta imas iz matematike?");
    ocena = int.Parse(Console.ReadLine());
    zbir += ocena;

    Console.WriteLine("Sta imas iz fizickog?");
    ocena = int.Parse(Console.ReadLine());
    zbir += ocena;

    Console.WriteLine("Sta imas iz engleskog?");
    ocena = int.Parse(Console.ReadLine());
    zbir += ocena;

    Console.WriteLine("Sta imas iz fizike?");
    ocena = int.Parse(Console.ReadLine());
    zbir += ocena;

    Console.WriteLine("Sta imas iz hemije?");
    ocena = int.Parse(Console.ReadLine());
    zbir += ocena;

    Console.WriteLine("Sta imas iz ruskog?");
    ocena = int.Parse(Console.ReadLine());
    zbir += ocena;

    Console.WriteLine("Sta imas iz muzickog?");
    ocena = int.Parse(Console.ReadLine());
    zbir += ocena;

    Console.WriteLine("Sta imas iz likovnog?");
    ocena = int.Parse(Console.ReadLine());
    zbir += ocena;

    Console.WriteLine("Sta imas iz kung-fu-a?");
    ocena = int.Parse(Console.ReadLine());
    zbir += ocena;

    Console.WriteLine("Sta imas iz kibernetike?");
    ocena = int.Parse(Console.ReadLine());
    zbir += ocena;

    prosek = (float)zbir / brPredmeta;
    Console.WriteLine("Tvoj prosek je: " + prosek);
}

Nova naredba u ovom programu je ocena = int.Parse(Console.ReadLine());.

Ovakve naredbe ćemo zvati naredbe ulaza, jer pomoću njih podaci ulaze u program. Pri izvršavanju konkretno ove naredbe, program prihvata celobrojnu vrednost otkucanu na tastaturi i smešta je u celobrojnu promenljivu ocena.

Naredba ulaza koju smo prikazali sastoji se od nekoliko delova. Prvo se izvrši funkcija Console.ReadLine() koja pročita niz znakova koji su otkucani na tastaturi. Kako očekujemo ceo broj, ocenu, potrebno je taj niz znakova koji se sastoji samo od cifara prebaciti u celobrojnu vrednost pozivom funkcije int.Parse. Naredbom dodele ovu celobrojnu vrednost upisujemo u promenljivu koja se zove ocena.

Ukoliko treba uneti broj sa decimalama, onda možemo da koristimo promenljivu tipa float ili double, kao i odgovarajuću funkciju float.Parse, odnosno double.Parse.

    double cena;
    cena = double.Parse(Console.ReadLine());
	
    float temperatura = float.Parse(Console.ReadLine());