using System;
namespace Lapid5{
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);
}
this.pikkus=pikkus;
this.laius=laius;
keeraPaika();
this.toon=toon;
}
void keeraPaika(){
if(laius>pikkus){
double abi=laius;
laius=pikkus;
pikkus=abi;
}
}
public Riidelapp poolita(){
return poolita(0.5);
}
///
/// 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;
pikkus=uuspikkus;
laius=uuslaius;
keeraPaika();
return new Riidelapp(teisepikkus, uuslaius, toon);
}
public double kysiPikkus(){
return pikkus;
}
public double kysiLaius(){
return laius;
}
public double kysiPindala(){
return pikkus*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");
Riidelapp lapp2=lapp1.poolita(0.25);
Riidelapp lapp3=lapp1.poolita();
Riidelapp tykk1=new Riidelapp(60, 20, "sinine");
Riidelapp tykk2=tykk1.poolita(2.0/3);
Riidelapp[] lapid=new Riidelapp[6];
lapid[0]=tykk1;
lapid[1]=tykk2;
lapid[2]=lapp1;
//lapid[3]=new Riidelapp(15, 25, "punane");
lapid[4]=lapp2;
lapid[5]=lapp3;
//lapid[2].tryki();
int suurteLappideArv=0;
for(int lapinr=0; lapinr10){
//lapid[lapinr].tryki();
suurteLappideArv++;
}
}
Riidelapp[] suuredLapid=new Riidelapp[suurteLappideArv];
int vabakoht=0;
for(int lapinr=0; lapinr10){
suuredLapid[vabakoht]=lapid[lapinr];
vabakoht++;
}
}
double suurteLappidePindaladeSumma=0;
foreach(Riidelapp suurlapp in suuredLapid){
suurlapp.tryki();
suurteLappidePindaladeSumma+=suurlapp.kysiPindala();
}
Console.WriteLine(suurteLappidePindaladeSumma);
}
}
}