VEŽBE 01 – UVOD U C#

    

Opis: 

Ulazno izlazna konverzija.

Upotreba funkcija u rešavanju problema. Obnavljanje definicije, deklaracije kao i poziva 
funkcija u glavnom delu programa.

Ulazno izlazna konverzija

Ulazno/izlazna sintaksa je različita u skoro svim jezicima. Konkretno da bi se ispisalo komentar na 
standardni izlaz ili unela vrednost promenljive sa standardnog ulaza koriste se: 

JEZIK

C

C++

C#

pisanje

printf(“konverzija”, i);

cout<<i;

Console.WriteLine(i);

čitanje

scanf(“konverzija”, &i);

cin>>i;

string

 i=Console.ReadLine();

U C# jeziku za ispis postoje dva formata:

Console

.WriteLine(

"X = {0}"

, x);

Console

.WriteLine(

"X = "

 + x);

U C# jeziku sa konzole se uvek kupi 

string. 

Ukoliko je potreban neki drugi tip podatka neophodno 

ga je konvertovati. 

Tabela . Funkcije u C# 

 za eksplicitnu konverziju

Funkcija

Objašnjenje

Convert.ToBoolean(argument)

argument konvertuje u bool

Convert.ToByte(argument)

argument konvertuje u byte

Convert.ToChar(argument)

argument konvertuje u char

Convert.ToDecimal(argument)

argument konvertuje u decimal

Convert.ToDouble(argument)
double.Parse()

argument konvertuje u double

Convert.ToInt16(argument)

argument konvertuje u short

Convert.ToInt32(argument)
int.Parse()

argument konvertuje u int

Convert.ToInt64(argument)

argument konvertuje u long

Convert.ToSByte(argument)

argument konvertuje u sbyte

Convert.ToSingle(argument)

argument konvertuje u float

Convert.ToString(argument)

argument konvertuje u string

Convert.ToUInt16(argument)

argument konvertuje u ushort

Convert.ToUInt32(argument)

argument konvertuje u uint

Convert.ToUInt64(argument)

argument konvertuje u ulong

1

1. Napisati program koji računa hipotenuzu pravouglog trougla pomoću funkcije.

namespace

 ConsoleApplication1

{
    

class

 

Program

    {

  

static

 

double

 hipotenuza(

float

 a, 

float

 b)

        {
            

double

 c;

            c = 

Math

.Sqrt(

Math

.Pow(a, 2) + 

Math

.Pow(b, 2));

            

return

 c;

        }

        

static

 

void

 Main(

string

[] args)

        {
            

float

 a, b;

            

Console

.WriteLine(

"Uneti stranice pravouglog trugla "

);

            a = 

Convert

.ToInt32(

Console

.ReadLine());

            b = 

Convert

.ToInt32(

Console

.ReadLine());

            

Console

.WriteLine(

"Hipotenuza je: "

 + hipotenuza(a, b));

            

Console

.ReadLine();

        } 
    }
}

2. Napisati program u kome se pomoću funkcije  

fakt  

  računa faktorijal za jedan 

uneti ceo broj 

n

. Nakon toga izračunati (n! + 6!)/ (n + 6)!

  

    class

 

Program

    {
        

static

 

int

 fakt(

int

 n)

        {
            

int

 i,f;

            f = 1;
            

for

 (i = 1; i <= n; i++)

                f *= i;

            

return

 f;

        }

        

static

 

void

 Main(

string

[] args)

        {
            

int

 i, n;

            

Console

.WriteLine(

"Uneti broj n "

);

            n = 

Convert

.ToInt32(

Console

.ReadLine());

            

Console

.WriteLine(

"Faktorijal broja {0} je {1}"

, n, fakt(n));

            

float

 r;

            r = (

float

)(fakt(n) + fakt(6)) / fakt(n + 6);

            

Console

.WriteLine(

"Faktorijal izraza ({0}! + 6!)/({1} + 6)! je 

{2}"

, n, n, r);

            

Console

.ReadKey();

        }
    }

  

2

background image

VEŽBE 02 – VREDNOSNI I REFERENTNI PODACI I METODE

    

Opis: 

Tipovi podataka u C# : vrednosni i referentni

Metode i prenos parametara metodama (ref, out, params)

Primeri upotrebe vrednosnih i referentnih metoda

Definisanje klasa uz uporednu analizu sa strukturama.

Tipovi podataka

Definišu: 

o

skup dozvoljenih vrednosti, 

o

operacije nad tipom  i 

o

veličine dozvoljenih vrednosti 

C# sadrži niz ugrađenih tipova koji se nazivaju prosti tipovi. 

CTS (Common Type System) je sastavni deo CLR-a (Common Language Runtime-najvažniji 
deo .Net framework-a nadležan za aktiviranje objekata, izvršavanje bezbednosnih provera, 
smeštanje   i   uklanjanje   iz   memorije..   ),   koji   definiše   pravila   za   deklarisanje,   korišćenje   i 
upravljanje tipovima (podržava vrednosne i referentne tipove). 

int

long

: čuvanje celih brojeva 

float

,  

double

: brojevi sa decimalnim zarezom (double može da prihvati broj sa preciznošću 

duplo većom od broja u promenljivoj tipa float) 

decimal

: za čuvanje novčanih vrednosti od 28 značajnih cifara 

char

: za pojedinačne znakove 

string

: niz znakova 

bool

: tačno, netačno 

- C# ima 15 predefinisanih tipova od kojih su 13 vrednosni, a 2 su referentni tipovi (string i object). 
-   Od   tipova   podataka   koje   promenljiva   treba   da   sadrži   zavisi   da   li   će   ona   biti   vrednosnog   ili 
referentnog tipa. 
- Object je osnovna klasa koja predstavlja bilo koji tip, odnosno iz nje se izvode svi ostali tipovi. 

4

Metode

[modifikator] Tip_povratne_vrednosti Naziv_metode([lista_parametara]) 
{
telo_metode
}

Metod je imenovani niz iskaza.

Metod je član klase koji izvršava neku logiku

Svaki metod ima 

ime

 i 

telo

Telo metoda sadrži same iskaze koje treba izvršiti kada se metod pozove. 

o

Ime metoda treba razumljivo da identifikuje sveukupnu svrhu metoda. 

C# ne podržava globalne metode. 

Uvek mora pripadati nekoj klasi ili zapisu. 

Naredba  

return

  se može koristiti da bi se izvršavanje momentalno vratilo iz metode na 

mesto poziva (može se vratiti isključivo jedna vrednost). 

Prenos parametara metoda

:

Parametri metoda se mogu deklarisati i sa:

ref

out 

params.

Kada se metodu prosledi arugment, 

parametar se inicijalizuje kao kopija argumenta

. To znači da 

nikakva izmena parametra ne može da utiče na sam argument. 

Primer

:

static

 

void

 Inkrement(

int

 

parametar

)

        {
            

parametar

++;

        }
        

static

 

void

 Main()

        {
            

int

 a = 5;

5

background image

Rezultat je 6.

 Moguće je u metodi koristiti više parametara kojima se prosleđuje out.

class

 

PrimerOut2

    {
        

static

 

void

 Method(

out

 

int

 i, 

out

 

string

 s1, 

out

 

string

 s2)

        {
            i = 20;
            s1 = 

"Ja sam prvi string"

;

            s2 = 

null

;

        }
        

static

 

void

 Main()

        {
            

int

 vrednost;

            

string

 string1, string2;

            Method(

out

 vrednost, 

out

 string1, 

out

 string2);

            

Console

.WriteLine(

"vrednost="

 + vrednost + 

" string1= " 

+ string1 + 

" string2= "

 + string2);

            

// vrednost je 20

            

// string1 je "Ja sam prvi string"

            

// string2 je null;

        }
}

    

Ključna reč 

params

 određuje parametar metoda koji uzima promenljivi broj argumenata. Tako je 

moguće proslediti listu argumenata razdvojenih zarezom u deklaraciji parametara ili niz argumenata 
određenog   tipa.   Takođe,   je   moguće   da   se   ne   prosledi   ni   jedan   argument.   U   deklaraciji   metoda 
dozvoljen je samo jedna ključna reč 

params

.

PRIMER

: Napisati konzolnu aplikaciju za demonstriranje različitih načina slanja argumenata params 

parametru.

public

 

class

 

PrimerParams

{
    

public

 

static

 

void

 MetodParams(

params

 

int

[] niz)

    {
        

for

 (

int

 i = 0; i < niz.Length; i++)

        {
            

Console

.Write(niz[i] + 

" "

);

        }
        

Console

.WriteLine();

    }
 

// Niz se deklariše kao tip object (referentni tip podatka) 

 //a to je niz bilo kojih tipova podataka

    

public

 

static

 

void

 MetodParams2(

params

 

object

[] niz)

    {
        

for

 (

int

 i = 0; i < niz.Length; i++)

        {
            

Console

.Write(niz[i] + 

" "

);

        }
        

Console

.WriteLine();

    }

    

static

 

void

 Main()

    {
          

// Može se proslediti niz elemenata određenog tipa razdvojenih 

zarezom.

        MetodParams(1, 2, 3, 4);
        MetodParams2(1, 

'a'

"test"

);

        

// Parametar params može prihvatiti nula ili više argumenata.

7

Želiš da pročitaš svih 159 strana?

Prijavi se i preuzmi ceo dokument.

Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.

Slični dokumenti