Está en la página 1de 13

Zadatak br.

1
using System;
namespace ZAD02
{
class Property
{
static void Main()
{
Osoba o;
o = new Osoba("Vedran", "Mihic", 3829);
o.Info();
o.Ime = ""; //propery gleda jel sa lijeve ili desne stane, pa procita //vrijednost, pa
za value (vrijednost) stavlja ono sto se nalazi sa desne strane.
Console.WriteLine("{0}",o.Ime); // property je fja, gdje ispada da je samo //cisti
podatak, ali se ne radi o podatku vec se radi o funkciji gdje njegov get vraca
vrijednost
o.Prezime = " Promjenjeno prezime: ";
Console.WriteLine("{0}", o.Prezime);
}
}
class Osoba
{ //podaci se nikad javno ne navode u c#, i uvodi se nova fja, i taj novi tip fje je property
string ime;
string prezime;
int jmbg=10;

/*property koji reprezentira ime i on mora biti vidljiv jer je on kao sve
drugo element klase, pa je po pravilu public, nakon cega ide tip podatka
string. Podaci se pisu malim slovom, a ovdje pisemo ime sa pocetnim
velikim slovom i onda {},i to je fja koja nema nikakvih zagrada. U sebi ima
dva elementa get(dajemo) i set(primamo). */
public string Ime
{
set //u njega moramo nesto pohraniti
{
if (value != "")
ime = value;
else
Console.WriteLine("Format unijetog podatka neispravan.");
}
get //podrazumjeva se da nesto vraca jer prema def on daje nesto, a moze
vratiti samo string (u ovom primjeru).
{
return ime;
}
}
public string Prezime
{
set
{
prezime = value;
}
get
{

return prezime;

}
public Osoba() { }
public Osoba(string i, string p, int mat)
{
ime = i;
prezime = p;
jmbg = mat;
}
public void Info()
{
Console.WriteLine("Ime: {0}, Prezime: {1}, Maticni broj: {2} ",ime, prezime,jmbg);
}
}

Zadatak br.2
using System;
namespace ZAD03
{
class Osoba
{
public string Ime { get; set;}

/* podatak i komunikaciju sa podatkom pravi kompajler (u cpp je


kompajler radio samo samo tamplate),a ovdje je vise, on pravi
privatni podatak- automatska svojstva (property)*/

public string Prezime { get; set;}


public int Jmbg { get; set; }
public string Godina { get; set; }
public Osoba() { }
public Osoba(string i, string p, int jmbg, string godina)
{
Ime = i;
Prezime = p;
Jmbg = jmbg;
Godina = godina;
}
public void Info()
{
Console.WriteLine("Ime: {0}, Prezime: {1}, Maticni broj: {2} ",Ime, Prezime,Jmbg);
}

1.ZADATAK
using System;
using System.Collections.Generic;

using System.Linq;
using System.Text;
namespace ZAD01
{
class Program
{
static void Main(string[] args)
{
Osoba o;
o = new Osoba(" Vedran", "Mihic", 110, 21);
o.Info();
Tocka2D t;
t = new Tocka2D(2, 4);
PromjeniX(t);
t.Info();
Tocka2Dc t1;
t1 = new Tocka2Dc(5, 6);
PromjeniX(t1);
t1.Info();
} // prema ulaznim podacima zna koju cemo pozivati pa zbog toga mozemo napisati sve isto
u obe.
static void PromjeniX(Tocka2D t)
{
t.x = 100;
}
// na prvi pogled izgledaju isto ove dvije fje ali u pozadini je drugacije
static void PromjeniX(Tocka2Dc t)
{
t.x = 100; // mjenja se jer je kao vrijednost imalo referencu(adresu), i onda se oni koristeci
adresu
//odlaze na objekat i tako mjenjamo tj.iako smo po vrijednosti prosljedjivali referencu ona
se mijenja
//razlika nije tako trivijalna kao c++, nego je sustinska, razlika je sto struktura ima value
tip, a class
// ima referentni tip.
}
}
public class Osoba
{
public string ime;
public String prezime;
public int jmbg;
public Int32 godine;
public Osoba() { }
public Osoba(string ime, string prezime, int jmbg, int g)
{
this.ime = ime;
this.prezime = prezime;
this.jmbg = jmbg;
godine = g;
}

public void Info()


{
Console.WriteLine("Ime: {0} Prezime: {1} Maticni broj: {2} Godine: {3}", ime, prezime,
jmbg, godine);
}
}
public struct Tocka2D
{
public int x;
public int y;
public Tocka2D(int x, int y)
{
this.x = x;
this.y = y;
}
public void Info()
{
Console.WriteLine("x=({0},{1})", x, y);
}

}
public class Tocka2Dc
{
public int x;
public int y;
public Tocka2Dc(int x, int y)
{
this.x = x;
this.y = y;
}
public void Info()
{
Console.WriteLine("x=({0},{1})", x, y);
}
}
}

4. NIZOVI
using System;

using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ZAD04
{
class Niz
{
static void Main()
{
int[] nizInt;
nizInt = new int[] { 10, 23, 3, 19, 29 };
double[] nizd= new double [4];
for (int i=0; i<nizInt.Length; i++) //iteracija niza
Console.Write("{0} ",nizInt[i]);
Console.WriteLine("\n Niz cijelih brojeva:");
foreach (int integer in nizInt)
Console.Write("{0} ", integer);
Console.WriteLine("\n Niz double brojeva:");
foreach (double d in nizd)
Console.Write("{0} ", d);
}

ZADATAK 5.
using System;

using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ZAD05
{
class Program
{
static void Main(string[] args)
{
Osoba o1,o2;
o1 = new Osoba("Vedran", "Mihic");
o2 = new Osoba("Ilvada", "Muric");
o1.Info();
o2.Info();
Osoba[] osobe;
osobe = new Osoba[]{
new Osoba("Elvisa","Odobasic"),
new Osoba("Anita","Zulic"),
new Osoba("Ruso","Sabic")};
for (int i = 0; i < osobe.Length; i++)
osobe[i].Info();
foreach (Osoba os in osobe)
os.Info();
}
}
public class Osoba
{
public string Ime{get; set;}
public string Prezime{get; set;}
public Osoba() { }
public Osoba(string i, string p)
{
Ime = i;
Prezime = p;
}
public void Info()
{
Console.WriteLine("Ime: {0}, Prezime: {1} ", Ime,Prezime);
}
}
}

ENUM
using System;
using System.Collections.Generic;

using System.Linq;
using System.Text;
namespace ZAD06
{
enum Semafor
{
zeleno=10,
zuto=100,
crveno=1000
}
enum ParniBrojevi
{
drugi=1,
cetvrti=4,
sesti=6
}
class Program
{
static void Main(string[] args)
{
Semafor semafor = Semafor.crveno;
Console.WriteLine("semafor= {0}", semafor);
Console.WriteLine("semafor= {0}", (int)semafor);
ParniBrojevi pb = (ParniBrojevi)2;

}
}

Console.WriteLine("pb= {0}", pb);


Console.WriteLine("pb= {0}", (int)pb);

ZADATAK BR. 7
using System;
using System.Collections.Generic;
using System.Linq;

using System.Text;
namespace Nasljedivanje
{
class Program
{
static void Main(string[] args)
{
Osoba o = new Student("Ilvada","Muric", "3948", 3);
Student s = new Student("Vedran", "Mihic", "490509", 3);
o.Info();
s.Info();
o = new Osoba("Elvisa", "Odobasic", "839920392");
o.Info();
}
}
public class Osoba
{
public string Ime {get; set;} //oni su automatski ii uvijek ih moramo imati( property)
public string Prezime {get; set;}
public string Jmbg {get; set;}
public Osoba() { }
public Osoba(string i, string p, string jmbg)
{
Ime=i;
Prezime=p;
Jmbg=jmbg;
}
public virtual void Info() //virtual ide samo kod bazne a dole u deriviranoj override i vazda idu
u paru
{
Console.WriteLine("Ime {0} , Prezime {1}", Ime, Prezime);
}
}
public class Student : Osoba //nasljedjivanje je isto kao kod cpp, u cpp ne nasljedjujemo
konstruktor
{
public int GodinaStudija { set; get; }
public Student(string i, string p, string jmbg, int gst) : base(i,p,jmbg)
{
GodinaStudija = gst; //dodajemo ono sto bazna nema u ovom slucaju Osoba,
}
public override void Info() // podrazumjeva prepisivanje po defoltu kod cpp, ali ovdje ne
{
base.Info(); //poziva baznu, ne konstruktor vec samo Info iz bazne klase (u cppp je to this koji
se odnisi samo na Osobu,
//ne na cijelog studenta, a kad bi stavili this umjesto base pozvao bi Student sam sebe i
islo bi u beskonacno
//stack bi se prepunio time, ovdje smo imali rekurziju(fja sama sebe poziva).
Console.WriteLine("Godina Studija {0}", GodinaStudija);
}
}
}

9. ZADATAK
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Text;

namespace ApstraktnaKlasa
{
class Program
{
static void Main(string[] args)
{
Oblik trokut = new Trokut(2.0, 4.0);
Oblik pravougaonik= new Pravougaonik(5, 6);
Oblik krug = new Krug(2.0);

Oblik[] oblici = new Oblik[] { trokut, pravougaonik, krug }; //omogucava nam pravljenje
polje raznih oblika

double povrsina=0;
foreach (Oblik o in oblici)
{
povrsina += o.Povrsina();
}
Console.WriteLine("Ukupna povrsina oblika u polju je= {0}", povrsina);

}
abstract class Oblik
{
public abstract double Povrsina();
}
class Trokut : Oblik // public ne mora biti, jer radimo u istom assembliju, a inace treba kad
radimo drugacije
{
public double Baza { set; get; }
public double Visina { set; get; }
public Trokut() { Baza = 0; Visina = 0; }
public Trokut(double b, double h)
{
Baza = b;
Visina = h;
}
override public double Povrsina() // ovo postaje konkretna klasa
{
return Visina * Baza / 2.0;
}

}
class Pravougaonik : Oblik
{
public double A { set; get; }
public double B { set; get; }
public Pravougaonik() { }
public Pravougaonik(double a, double b)
{
A = a;
B = b;
}
public override double Povrsina()
{
return A * B;
}

}
class Krug : Oblik
{
public double R { set; get; }
public Krug(double r)
{
R = r;
}
public override double Povrsina()
{
return R * R * Math.PI;
}
}

INTERFACE
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Text;

namespace Interfejs
{
class Program

static void Main(string[] args)


{
double[] p = new double[] { 2.3, 4.5 };
Funkcija f = new Funkcija(p);
IMath math = new Funkcija(p);
}

public interface IMath


{
double Integriraj(double a, double b, double eps);// gornja, donja granica, i tacnost kojom
racunamo
double Deriviraj(double x);
double Vrijednost(double x);
}
class Funkcija : IMath
{
public double[] Parametri { set; get; }
public Funkcija(double[] p)
{
Parametri = p;
}
public double Integriraj(double a, double b, double eps)
{
return 2.2;
}
public double Deriviraj(double x)
{
return 5.5;
}

public double Vrijednost(double x)


{
return 3.3;
}

DELEGAT
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Text;

namespace ZAD13
{
delegate double MathFun(double a, double b);//nastaje klasa tipa delagate

class Matematika
{
public double Add(double x, double y)
{
Console.WriteLine("Operacija izvrsena u intance funkciji:");
return x + y;
}
public static double AddS(double x, double y)
{
Console.WriteLine(" Operacija izvrsena u statik funkciji:");
return x + y;
}
public double Multiply(double x, double y)
{
Console.WriteLine("Operacija izvrsena u instace funkciji");
return x * y;
}
public static double MultiplyS(double x, double y)
{
Console.WriteLine("Operacija izvrsena u statik funkciji");
return x * y;
}
}
class Program
{
static void Main(string[] args)
{
Matematika mat=new Matematika();
double d= Math.Sin(Math.PI);
MathFun zbir = mat.Add; //dodavanje delgatu metodu kod kontrukcije
//Console.WriteLine(" 2 + 3={0} Ispis 1", zbir(2,3));
zbir += Matematika.AddS;
Console.WriteLine(" 2 + 3= {0} Ispis 2", zbir(2,3));
zbir=null;
//Console.WriteLine(" 2 + 3={0}, Ispis 2", zbir(2,3));
zbir+=Matematika.AddS;
MathFun pomnozi=new MathFun(mat.Multiply);
// Console.WriteLine(" 2 + 3={0}, Ispis 2", pomnozi(2,3));
pomnozi += Matematika.MultiplyS;
// Console.WriteLine(" 2 + 3={0}, Ispis 2", zbir(2,3));
}
}

También podría gustarte