Objektno orjentisano programiranje
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

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

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
Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.
Slični dokumenti