using System; namespace Lapid4{ public class Riidelapp{ double pikkus; double laius; string toon; public Riidelapp(double pikkus, double laius, string toon){ if(pikkus<=0 || laius<=0){ throw new Exception("Sobimatu suurus "+pikkus+" "+laius); } if(pikkus>=laius){ this.pikkus=pikkus; this.laius=laius; } else { this.laius=pikkus; this.pikkus=laius; } this.toon=toon; } public Riidelapp poolita(){ double poolik=pikkus/2; if(poolik>=laius){ pikkus=poolik; } else { pikkus=laius; laius=poolik; } return new Riidelapp(pikkus, laius, toon); } /// /// suhe näitab, kui palju algsest lapist alles jääb /// skaalal 0..1, ülejäänu jääb teise tükki. /// public Riidelapp poolita(double suhe){ if(suhe<0 || suhe>1){ throw new Exception("Sobimatu suhe "+suhe); } double uuspikkus=pikkus*suhe; //vana lapi uus pikkus double teisepikkus=pikkus-uuspikkus; double uuslaius=laius; if(uuspikkus>=uuslaius){ pikkus=uuspikkus; laius=uuslaius; } else { pikkus=uuslaius; laius=uuspikkus; } return new Riidelapp(teisepikkus, uuslaius, toon); } public double kysiPikkus(){ return pikkus; } public double kysiLaius(){ return laius; } public string kysiToon(){ return toon; } public void tryki(){ Console.WriteLine(this.ToString()); } public override string ToString(){ return base.ToString()+" ["+pikkus+" "+laius+" "+toon+"]"; } } public class Lapiproov{ public static void Main(string[] arg){ Riidelapp lapp1=new Riidelapp(5, 12, "kollane"); Console.WriteLine(lapp1.kysiToon()); lapp1.tryki(); Riidelapp lapp2=lapp1.poolita(2.25); lapp1.tryki(); lapp2.tryki(); Riidelapp lapp3=lapp1.poolita(); lapp1.tryki(); } } }