using System; using System.Collections.Generic; namespace Lapid3{ class RiideLapp{ double pikkus; double laius; string toon; public RiideLapp(double kylg1, double kylg2, string toon){ if(kylg1>kylg2){ pikkus=kylg1; laius=kylg2; } else{ pikkus=kylg2; laius=kylg1; } this.toon=toon; } public override string ToString(){ return toon+" lapp "+pikkus+"x"+laius; } public bool kasSuur(){ return pikkus>=10 && laius>=10; } public string kysiToon(){ return toon; } //suhe näitab, kui palju algse lapi pikkusest alles jääb public RiideLapp l6ika(double suhe){ RiideLapp uus=new RiideLapp(pikkus*(1-suhe), laius, toon); pikkus*=suhe; if(laius>pikkus){ double abi=pikkus; pikkus=laius; laius=abi; } return uus; } public RiideLapp poolita(){ return l6ika(0.5); } public double leiaPindala(){ return pikkus*laius; } } class KaltsuKott{ List lapid=new List(); public void lisaLapp(RiideLapp lapp){ lapid.Add(lapp); } public RiideLapp v6taLapp(){ if(lapid.Count>0){ RiideLapp abi=lapid[0]; lapid.RemoveAt(0); return abi; } return null; } public override string ToString(){ string v="Kott: "; foreach(RiideLapp lapp in lapid){ v+="\n"+lapp.ToString(); } return v; } //Lisa käsklus kotis olevate lappide kogupindala leidmiseks public double koguPindala(){ double kogu=0; foreach(RiideLapp lapp in lapid){ kogu+=lapp.leiaPindala(); } return kogu; } public KaltsuKott suuredLapidEraldi(){ KaltsuKott uus=new KaltsuKott(); foreach(RiideLapp lapp in lapid){ if(lapp.kasSuur()){ uus.lisaLapp(lapp); } } lapid.RemoveAll(lapp => lapp.kasSuur()); return uus; } //Loo KaltsuKotile funktsioon, mille abil lisada lapid teisest kaltsukotist public void lisaLapidKotist(KaltsuKott kott){ RiideLapp lapp; while((lapp=kott.v6taLapp())!=null){ lisaLapp(lapp); } } } class Proov{ public static void Main(string[] arg){ Random r=new Random(); RiideLapp a=new RiideLapp(8, 9, "kollane"); RiideLapp b=a.l6ika(0.3); Console.WriteLine(a+" "+b); KaltsuKott kott=new KaltsuKott(); kott.lisaLapp(a); kott.lisaLapp(b); kott.lisaLapp(new RiideLapp(20, 15, "sinine")); KaltsuKott suured=kott.suuredLapidEraldi(); Console.WriteLine(kott); Console.WriteLine(suured); kott.lisaLapidKotist(suured); Console.WriteLine(kott); Console.WriteLine(suured); } } }