Dana je struktura Kvader. public class Kvader { public double a, b, c; public Kvader(int robA,int robB,int robC) { a=robA; b=robB; c=robC; } public double TelesnaDiagonala() { return Math.Sqrt(a*a+b*b+c*c); } public double Povrsina() { return 2 * a * b + 2 * a * c + 2 * b * c; } public double Prostornina() { return a * b * c; } } Koliko polj (komponent) vsebuje? Ali struktura vsebuje konstruktor in kakšen je v spolšnem pomen konstruktorja)? Koliko metod vsebuje ta struktura? Ustvari VREDNOSTNO spremenljivko K1 tipa Kvadr in ji določi začetne vrednosti! Ustvari REFERENČNO spremenljivko K2 tipa Kvader – uporabi konstruktor! S pomočjo že napisanih metod ugotovi in izpiši telesno diagonalo, površino in prostornino kvadrov K1 in K2. Kateri izmed kvadrov K1 in K2 ima večjo Površino? Dana je struktura trikotnik struct trikotnik { public int a,b,c; } Napiši ustrezen konstruktor! V strukturi napiši metodo, ki vrne in izračuna obseg tega pravokotnika! V strukturi napiši metodo, ki vrne in izračuna ploščino tega pravokotnika! Dana je nsalednja struktura: public struct MojaStruktura { private int x; private int y; public MojaStruktura (int row, int col) { x = row; y = col; } } S katerim izmed spodnjih stavkov bi pravilno ustvarili novega predstavnika strukture MojaStruktura pravilen: MojaStruktura y1,y2,y3,y4,y5,y6; y1 = new MojaStruktura(2,3); y2 = new MojaStruktura(2); y3 = new MojaStruktura; y4 = new MojaStruktura(); y5 = new MojaStruktura(10.0, 3); y6 = new MojaStruktura[5]; Denimo, da smo želeli sestaviti strukturo Dalmatinec, ki ima lastnosti ime psa in število njegovih pik. Koda razreda je: public struct Dalmatinec { public string ime; private int steviloPik; public Dalmatinec() { this.ime = "Reks"; this.steviloPik = 0; } public void ImePsa(string ime) { ime = this.ime; } private void NastaviIme(string ime) { this.ime = ime; } public void NastaviSteviloPik(int steviloPik) { this.steviloPik = steviloPik; } } V glavnem programu smo ustvarili objekt (predstavnika strukture) Dalmatinec z imenom d in mu želimo nastaviti število pik na 100 in ime na Pika. Kateri način je pravilen? Pri nepravilnih povej, kaj in zakaj ni pravilno. a) d.NastaviIme("Pika"); d.NastaviSteviloPik(100); b) d.ime = "Pika"; d.steviloPik = 100; c) d.ime = "Pika"; d.NastaviSteviloPik(100); d) d.imePsa("Pika"); d.NastaviSteviloPik(100); e) d.imePsa("Pika"); d.steviloPik = 100; f) d.NastaviIme("Pika"); d.steviloPik = 100; g) nobeden, ker tega sploh ne moremo storiti Napiši strukturo Drzava, ki naj vsebuje polja za osnovne podatke o državi (ime, površina, prebivalci), ter metodo Gostota za izračun gostote prebivalstva. Ustvari nekaj vrednostnih i referenčnih spremenljivk tipa Drzava in pokaži uporabo njegove metode Gostota. Ustvari strukturo Polinom, ki hrani polinome do stopnje dva (ax2 + bx + c). Polinom naj ima tri polja (koeficiente polinoma), pozna pa naj tudi tri metode: metodo za seštevanje dveh polinomov, metodo, ki vrne vrednost polinoma v poljubni točki in metodo ToString, ki ta polinom predstavi (vrne) v obliki stringa. Napiši tudi ustrezni konstruktor. Ustvari strukturo Zgradba s tremi javnimi polji - ime, kvadratura in stanovalci. Struktura naj vsebuje tudi metodo za izračun površine, ki pripada posameznemu stanovalcu. struct Zgradba { //polja oz lastnosti ("spremenljivke") public string ime; public double kvadratura; public int stanovalci; //metoda - naj bo tipa void: izračuna in izpiše ... public void kvadraturaNaOsebo() { double kv = kvadratura / stanovalci; Console.WriteLine("Kvadratura na osebo: " + Math.Round(kv, 2)); } } static void Main(string[] args) { //ustvarimo dve spremenljivki tipa Zgradba: Z1 in Z2 Zgradba Z1, Z2; //spremenljivki Z1 določimo začetne vrednosti Z1.ime = "Globus"; Z1.kvadratura = 4500; Z1.stanovalci = 44; //koliko m2 pripada posameznemu stanovalcu zgradbe Z1 Z1.kvadraturaNaOsebo(); //za spremenljivko Z2 pa podatke npr. preberemo preko tipkovnice Console.Write("Ime zgradbe Z2: "); Z2.ime = Console.ReadLine(); Console.Write("Kvadratura zgradbe Z2: "); Z2.kvadratura = Convert.ToDouble(Console.ReadLine()); Console.Write("Število stanovalcev v Z2: "); Z2.stanovalci = Convert.ToInt32(Console.ReadLine()); //koliko m2 pripada posameznemu stanovalcu zgradbe Z2 Z2.kvadraturaNaOsebo(); /*TODO...napiši if stavek, s katerim boš ugotovil in izpisal, katera zgradba ima več stanovalcev*/ if (Z1.stanovalci > Z2.stanovalci) Console.WriteLine("Več stanovalcev j v Z1"); else Console.WriteLine("Več stanovalcev j v Z2"); Console.ReadKey(); } Napišite strukturo krog. Struktura naj ima javno polje polmer (tip double), konstruktor z enim parametrom za nastavljanje začetne vrednosti polmera, ter javno metodo obseg za izračun obsega kroga. Iz strukture krog nato izpelji dva objekta K1 in K2: objekt K1 naj dobi polmer 5, objekt K2 pa naključno celo število med 1 in 50. Demonstriraj uporabo metode obseg tako, da ugotoviš in izpišeš, kateri od obeh objektov ima večji obseg! struct Krog { public double polmer;//Javno polje public Krog(double p)//konstruktor { polmer = p; } public double Obseg()//javna metoda za izračun obsega kroga { double ob = 2 * Math.PI * polmer; return Math.Round(ob,2); } } static void Main(string[] args) { Krog K1 = new Krog(5);//prvi način Krog K11; //drugi način K11.polmer = 5; //generator naključnih števil Random naklj = new Random(); Krog K2 = new Krog(naklj.Next(1, 51));//K2 je referencna spremenljivka Krog K22; K22.polmer = naklj.Next(1, 51);//K22 je vrednostna spremenljivka if (K1.Obseg() > K2.Obseg()) Console.WriteLine("krog K1 ima večji obseg kot K2; obseg znaša " + K1.Obseg()); else Console.WriteLine("krog K2 ima večji obseg kot K1; obseg znaša " + K2.Obseg()); Console.ReadKey(); } Stavnica na hipodromu vodi evidenco o tem, koliko denarja je bilo stavljenega na vsakega konja in kakšno je razmerje med vplačilom in dobitkom. Sestavi strukturo Stava, ki vsebuje polja ime_konja, vplacana_stava in razmerje (stavno razmerje med posameznimi konji). Definiraj tudi ustrezni konstruktor. Pokaži, kako se uporabi konstruktor za strukturo Stava, če naj bo konju ime Divja Strela, zanj je bilo vplačanih 3450 €, stavno razmerje pa je 2 : 9! Za vajo ustvari še tabelo 5 konjev, vse podatke pa naj vnese uporabnik preko tipkovnice. struct Stava { string ime_konja; double vplacana_stava; string razmerje; //konstruktor public Stava(string ime, double vplacano, string razmerje) { ime_konja = ime; vplacana_stava = vplacano; this.razmerje = razmerje; } public void Izpis() { Console.WriteLine("Konj: " + ime_konja + "\n\tVplačana stava: " + vplacana_stava + " EUR\n\tRazmerje: " + razmerje); } } static void Main(string[] args) { //kreirajmo objekt: konju bo ime Divja Strela Stava S1=new Stava("Divja strela",3450,"2:9"); S1.Izpis(); //klic metode Izpis Stava[] Konji = new Stava[5];//tabela 5 konj //vnos podatkov for (int i = 0; i < Konji.Length; i++) { Console.WriteLine("Podatki o konju št. " + (i + 1)); Console.Write("\tIme konja: "); string ime=Console.ReadLine(); Console.Write("\tVplačano: "); double vplacano=Convert.ToDouble(Console.ReadLine()); Console.Write("\tStavno razmerje: "); string razmerje=Console.ReadLine(); //podatek o stavi zapišemo v tabelo Konji Konji[i]=new Stava(ime,vplacano,razmerje); } //še izpis vseh stav Console.WriteLine("\nIZPIS VSEH STAV\n"); for (int i = 0; i < Konji.Length; i++) { Konji[i].Izpis(); } Console.ReadKey(); } Pred začetkom sezonske razprodaje so se v eni od trgovin odločili, da bodo na artikle, na katerih je že napisana cena, dopisali le višino popusta v odstotkih in ne tudi znižane cene. Sestavi strukturo Izdelek, ki vsebuje polja naziv, cena in popust. Struktura naj vsebuje tudi konstruktor in metodo NovaCena, ki glede na popust vrne novo, znižano ceno izdelka. Napiši tudi metodo Izpis, ki izpiše ceno in popust izdelka. Ustvari še tabelo izdelkov, podatke naj vnese uporabnik. struct Izdelek { string naziv;//zasebno polje double cena,popust; //konstruktor public Izdelek(string naziv,double cena,double popust) { this.naziv=naziv; this.cena=cena; this.popust=popust; } //objektna metoda za izračun cene s popustom public double NovaCena() { return cena*(1-(double)popust/100); } //objektna metoda za izpis podatkov o izdelku public void Izpis() { Console.WriteLine("Stara cena: "+cena+" ... popust: "+popust+" % ... nova cena: "+NovaCena()); } } static void Main(string[] args) { Izdelek[] Izdelki = new Izdelek[5]; //tabela 5 izdelkov Vnos(Izdelki);//klic metode za vnos izdelkov v tabelo Izpis(Izdelki);//klic metode za izpis tabele izdelkov Console.ReadKey(); } private static void Izpis(Izdelek[] Izdelki) { Console.WriteLine("Izpis izdelkov, cen in popustov"); for (int i = 0; i < Izdelki.Length; i++) Izdelki[i].Izpis(); } //metoda za vnos podatkov tabelo izdelkov private static void Vnos(Izdelek[] Izdelki) { Console.WriteLine("Vnos izdelkov v tabelo"); for (int i = 0; i < Izdelki.Length; i++) { Console.Write((i + 1) + ". izdelek: "); string naziv = Console.ReadLine(); Console.Write("\tCena: "); double cena = Convert.ToDouble(Console.ReadLine()); Console.Write("\tPopust: "); double popust = Convert.ToDouble(Console.ReadLine()); Izdelki[i] = new Izdelek(naziv, cena,popust); } } }