Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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;}
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 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;
}
}
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
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));
}
}