Primeri PROGRAMIRANJE3

Embed Size (px)

DESCRIPTION

Programiranje

Citation preview

Primer: Klasa MasinaZaPranjeVesa. Ispis tipa (atributa) masine I metode PranjeBelogVesa.namespace ConsoleApplication1{ class MasinaZaVes { public string lokacija; public string proizvodjac; public string model; public string snaga;

public void PranjeBelogVesa() { //Program za pranje belog vesa Console.WriteLine("Zavrseno pranje belog vesa"); } public void PranjeSarenogVesa() { //Program za pranje sarenog vesa Console.WriteLine("Zavrseno pranje sarenog vesa"); } }}

*******namespace ConsoleApplication1{ class Program { static void Main(string[] args) { MasinaZaVes MojaMasina = new MasinaZaVes(); MojaMasina.lokacija = "Kupatilo"; MojaMasina.model = "AS1000"; Console.WriteLine("Masina " + MojaMasina.model); MojaMasina.PranjeBelogVesa(); Console.ReadKey(); } }}Primer: Klasa Datum. Ispis datuma roenja i dananjeg datuma.namespace ConsoleApplication1{ class Datum { int dan, mesec, godina; public Datum() //podrazumevani konstruktor { dan = DateTime.Now.Day; mesec = DateTime.Now.Month; godina = DateTime.Now.Year; } public Datum(int d, int m, int g) //konstruktor sa parametrima { this.dan = d; this.mesec = m; this.godina = g; } public string IspisDatuma() //metoda za ispisivanje datuma { return dan + "." + mesec + "." + godina + "."; } }}

*************

namespace ConsoleApplication1{ class Program { static void Main(string[] args) { int d, m, g; Console.WriteLine("Upisite vas datum roenja, dan, mesec i godinu"); d=int.Parse(Console.ReadLine()); m=int.Parse(Console.ReadLine()); g=int.Parse(Console.ReadLine()); Datum Rodjenje=new Datum(d, m, g); //formiranje objekta Rodjenje Datum Danasnji=new Datum(); //formiranje objekta Danasnji Console.WriteLine("Datum vaseg rodjenja je: " + Rodjenje.IspisDatuma()); Console.WriteLine("Danasnji datum je: " + Danasnji.IspisDatuma()); Console.ReadKey(); } }}

ENKAPSULACIJAPrimer: MasinaZaPranjeVesa javni atributinamespace ConsoleApplication1{ class MasinaZaVes { public string lokacija; public string proizvodjac; public string model; public void PranjeBelogVesa() { //Program za pranje belog vesa Console.WriteLine("Zavrseno pranje belog vesa"); } public void PranjeSarenogVesa() { //Program za pranje sarenog vesa Console.WriteLine("Zavrseno pranje sarenog vesa"); } }}*******namespace ConsoleApplication1{ class Program { static void Main(string[] args) { MasinaZaVes MojaMasina = new MasinaZaVes(); MojaMasina.lokacija = "Kupatilo"; MojaMasina.proizvodjac = "Minel"; MojaMasina.model = "AS1000"; Console.WriteLine("Masina " + MojaMasina.proizvodjac +" "+ MojaMasina.model); MojaMasina.PranjeBelogVesa(); Console.ReadKey(); } }}promena atributa u privatne:namespace ConsoleApplication1{ class MasinaZaVes { private string lokacija; public string Lokacija { get{return lokacija;} set { lokacija = value; } } private string proizvodjac; public string Proizvodjac { get { return proizvodjac;} set { proizvodjac = value;} } private string model; public string Model { get { return model;} set { model = value;} } //sada se mora napraviti konstruktor koji nije podrazumevani public MasinaZaVes(string lok, string proiz, string mod) { this.Lokacija = lok; this.Proizvodjac = proiz; this.Model = mod; } public void PranjeBelogVesa() { //Program za pranje belog vesa Console.WriteLine("Zavrseno pranje belog vesa"); } public void PranjeSarenogVesa() { //Program za pranje sarenog vesa Console.WriteLine("Zavrseno pranje sarenog vesa"); } }}*******namespace ConsoleApplication1{ class Program { static void Main(string[] args) { MasinaZaVes MojaMasina = new MasinaZaVes("Kupatilo", "Minel", "AS1000"); Console.WriteLine("Masina " + MojaMasina.Proizvodjac +" "+ MojaMasina.Model); MojaMasina.PranjeBelogVesa(); Console.ReadKey(); } }}Primer: Klasa Datum sa zatienim atributima. Ispis datuma roenja. namespace ConsoleApplication1{ class Datum { int dan, mesec, godina; public int d { get { return dan; } set { dan = value; } } public int m { get { return mesec; } set { mesec = value; } } public int g { get { return godina; } set { godina = value; } } }}************

namespace ConsoleApplication1{ class Program { static void Main(string[] args) { int d, m, g; Console.WriteLine("Upisite vas datum roenja, dan, mesec i godinu"); Datum Rodjenje=new Datum(); //formiranje objekta rodjenje Rodjenje.d=int.Parse(Console.ReadLine()); Rodjenje.m=int.Parse(Console.ReadLine()); Rodjenje.g=int.Parse(Console.ReadLine()); Console.WriteLine("Datum vaseg rodjenja je: " + Rodjenje.d+"."+Rodjenje.m+"."+Rodjenje.g+"."); Console.ReadKey(); } }}Primer: Klasa Pravougaonik. Rauna se povrina i obim. U programu se prikazuju povrina i obim pravougaonika.namespace ConsoleApplication1{ class Pravougaonik

{ uint sirina, visina, povrsina, obim; private void IzracunajPovrsinu() { povrsina = sirina * visina; } private void IzracunajObim() { obim = 2 * (sirina + visina); } public uint a { get { return sirina; } set { sirina = value; IzracunajPovrsinu(); IzracunajObim(); } } public uint b { get { return visina; } set { visina = value; IzracunajPovrsinu(); IzracunajObim(); } } public uint p { get { return povrsina; } } public uint o { get { return obim; } } } }**********

namespace ConsoleApplication1{ class Program { static void Main(string[] args) { Pravougaonik pr = new Pravougaonik(); Console.WriteLine("Unesi sirinu pa visinu pravougaonika"); pr.a = uint.Parse(Console.ReadLine()); pr.b = uint.Parse(Console.ReadLine()); Console.WriteLine("Povrsina je: " + pr.p); Console.WriteLine("Obim je: " + pr.o); Console.ReadKey(); } }}

STATIKE KLASETo su klase koje ve postoje. Metode I svojstva klase se pozivaju samo imenom klase zatim ide taka pa ime metoda ili svojstva.class Program { static void Main(string[] args) { Console.WriteLine(Math.Pow(2, 4)); Console.ReadKey(); } }

Primer: Statika klasa Konverzija sa dva metoda:namespace ConsoleApplication1{ public static class Konverzija { public static double MiljaUMetre(double milja) { double metar; metar=1609.344*milja; return metar; } public static double FuntiUKilograme(double funta) { double kilogram; kilogram = 2.204*funta; return kilogram; } }}*****namespace ConsoleApplication1{ class Program { static void Main(string[] args) { Console.WriteLine("Unesi duzinu u miljama"); double m = double.Parse(Console.ReadLine()); Console.WriteLine("Uneta duzina u miljama iznosi " + Konverzija.MiljaUMetre(m) + "metara"); Console.WriteLine("5 funti iznosi " + Konverzija.FuntiUKilograme(5) + "kilograma"); Console.ReadKey(); } }}

APSTRAKTNE KLASENe moe se kreirati instanca apstraktne klase tj. ne moe se kreirati objekat apstraktne klase.Primer: Abstraktne klasa Zaposleni, podklasa Direktor, abstraktne, virtuelne I override metode.namespace ConsoleApplication1{ abstract class Zaposleni { private string brojZaposlenog; private string ime; private string prezime; private string adresa; public string BrZaposlenog { get { return brojZaposlenog; } set { brojZaposlenog = value; } } public string Ime { get { return ime; } set { ime = value; } } public string Prezime { get { return prezime; } set { prezime = value; } } public string Adresa { get { return adresa; } set { adresa = value; } } //Sledea metoda je virtualna metoda jer se nad abstraktnom klasom ne moe kreirati objekat public virtual void LogIn() { Console.WriteLine("Zaposleni je login"); } public abstract void Ovde();//abstraktna metoda ne moe imati telo (probaj Build i javice gresku) }}***namespace ConsoleApplication1{ class Direktor:Zaposleni //Direktori je podklasa klase Zaposleni { /*Direktori nasleuje sve osobine klase Zaposleni (BrZaposlenog, Ime, Prezime, Adresu) Podklasi direktori se pored ovih nasleenih osobina moe dodati i neka njemu specifina osobina kao to je npr. ogranak u kome je direktor*/ private string ogranak; public string Ogranak { get { return ogranak;} set { ogranak = value; } } public override void LogIn() //zbog prefiksa override metoda LogIn() osnovne klase nije dostupna. { Console.WriteLine("Direktor je login"); } public override void Ovde() { Console.WriteLine("Neko je ovde"); ; } }}******namespace ConsoleApplication1{ class Program { static void Main(string[] args) { Direktor MojDirektor = new Direktor(); MojDirektor.LogIn(); MojDirektor.Ovde(); Console.ReadKey(); } }}

Drugi primer: Abstraktna klasa Zaposleni, potklasa Rukovodilac. Korienje metode iz abstraktne klase u podklasi (Polimorfizam)namespace ConsoleApplication1{ abstract class Zaposleni { private string ime; public string Ime { get { return ime; } set { ime=value;} } private string prezime; public string Prezime { get { return prezime; } set { prezime = value; } } public Zaposleni(string ime, string prezime) { Ime = ime; Prezime = prezime; } public virtual string Informacije() { return "Ime: " + Ime + " Prezime: " + Prezime; }

}***

namespace ConsoleApplication1{ class Rukovodilac:Zaposleni { private string pozRukovodioca; public string PozRukovodioca { get { return pozRukovodioca; } set { pozRukovodioca = value; } } public Rukovodilac(string ime, string prezime, string pozicija):base(ime,prezime) { PozRukovodioca=pozicija; } public override string Informacije() { return base.Informacije() + " na poziciji: " + PozRukovodioca; } }}/*Ako se koristi prefiks override onda metoda Informacije() osnovne klase nije dostupna tj. ona je pregaena ali je i dalje moemo pozvati pomou base.MetodaOsnovneKlase(), kao to smo uradili u ovom primeru. Znai poto smo nazvali metodu Informacije() (isto kao i u osnovnoj klasi) da bi se ponitila ta metoda osnovne klase u ovoj metodi smo koristili prefiks override.Kada ne bismo eleli da se pregazi metoda osnovne klase koristili bismo prefiks new. */*******namespace ConsoleApplication1{ class Program { static void Main(string[] args) { Rukovodilac RK = new Rukovodilac("Jovan", "Pavlovic", "sefMarketinga"); Console.WriteLine(RK.Informacije()); Console.ReadKey();

} }}

Primer: Sortiranje takmicara po broju bodova. (Klasa Takmicar)namespace ConsoleApplication1{ class Takmicar { private string ime; private int brojbodova; public int BrojBodova { get { return brojbodova; } set { if(brojbodova>=0&&brojbodova= 0 && brojbodova t[i].BrojBodova) { Takmicar pom = t[i]; t[i] = t[j]; t[j] = pom; } } } Console.WriteLine("Redosled takmicara je:"); for (int i = 0; i < t.Length; i++) { Console.WriteLine(t[i].IspisiPodatke()); }

Console.ReadKey(); } }}Ako u ovom primeru ne bismo napravili javni (public) parametar BrojBodova vec ostavili private brojbodova primer ne bi radio, javio bi gresku da je ovaj parametar na protect nivou.

Primer: Apstraktna klasa Vozilo, dve podklase Teretno i Putniko vozilo. Zadatak ispisi da li vozilo sme da pree preko mosta na osnovu tezine vozila i nosivosti mosta.abstract class Vozilo { private string naziv; private double sopstvenaTezina; public Vozilo(string naziv, double SopTez) { this.naziv = naziv; sopstvenaTezina = SopTez; } public abstract char VrstaVozila(); public double Tezina() { return sopstvenaTezina; } public virtual string IspisiPodatke() { return naziv + " - " + VrstaVozila() + " (" + sopstvenaTezina + ","; } }*****class PutnickoVozilo:Vozilo { private double srTezPutnika; private int brPutnika; public PutnickoVozilo(string naziv, double SopTez, int BrPut, double SrTezPut) : base(naziv, SopTez) { brPutnika = BrPut; srTezPutnika = SrTezPut; } public override char VrstaVozila() { return 'P'; } public double UkupnaTezina() { return base.Tezina() + brPutnika * srTezPutnika; } public override string IspisiPodatke() { return base.IspisiPodatke() + " " + srTezPutnika + "," + brPutnika + ")"; } }***class TeretnoVozilo:Vozilo { private double teret; public TeretnoVozilo(string naziv, double SopTez, double Teret):base(naziv, SopTez) { teret = Teret; } public override char VrstaVozila() { return 'T'; } public double UkupnaTezina() { return base.Tezina() + teret; } public override string IspisiPodatke() { return base.IspisiPodatke() + " " + teret+")"; } }********class Program { static void Main(string[] args) { string ime; double st, srt, ter; char v; int brP; double nosivost; Console.WriteLine("Unesi nosivost mosta"); nosivost = double.Parse(Console.ReadLine()); Console.WriteLine("Unesi ime vozila"); ime = Console.ReadLine(); Console.WriteLine("Unesi sopstvenu tezinu vozila"); st = double.Parse(Console.ReadLine()); Console.WriteLine("Unesi vrstu vozila: p za putnicko, t za teretno"); v = char.Parse(Console.ReadLine()); if (v == 'p' || v == 'P') { Console.WriteLine("Unesi broj putnika"); brP = int.Parse(Console.ReadLine()); Console.WriteLine("Unesi srednju tezinu putnika"); srt = double.Parse(Console.ReadLine()); PutnickoVozilo Voz = new PutnickoVozilo(ime, st, brP, srt); double T = Voz.UkupnaTezina(); if (T 0) this.cena = cena; } public abstract string Ispisi(); }*****

public class Knjiga:Proizvod { protected string autor; public Knjiga(string naziv, string autor, double cena) : base(naziv, cena) { this.autor = autor; } public string getAutor() { return autor; } public override string Ispisi() { return naziv + ", " + autor + ", " + cena; } }**public class Pribor:Proizvod { protected string proizvodjac; public Pribor(string naziv, string proizvodjac, double cena) : base(naziv, cena) { this.proizvodjac = proizvodjac; } public string getProizvodjac() { return proizvodjac; } public override string Ispisi() { return naziv + ", " + proizvodjac + ", " + cena; } }*******class Program { static void Main(string[] args) { Proizvod[] p = { (Proizvod)new Knjiga("Kandze","Vidojkovic", 700), (Proizvod)new Knjiga("Trijumfalna kapija","Remark",650), (Proizvod)new Knjiga("Tri ratna druga","Remark",890), (Proizvod)new Pribor("penkalo","parker",580), (Proizvod)new Pribor("kalkulator","kasio",1200), (Proizvod)new Knjiga("No u Lisabonu","Remark",500) }; int i, j; for (i = 0; i < p.Length-1; i++) { for (j = i + 1; j < p.Length; j++) { if (p[j].JeftinijeOd(p[i])) { Proizvod pom = p[i]; p[i] = p[j]; p[j] = pom; } } } for (i = 0; i < p.Length; i++) { Console.WriteLine(p[i].Ispisi()); } Console.ReadKey(); } }

22