Lös uppgiften med följande tillägg:
eller
Exempel
komplex_eval[(1+i) + (2+i)]
returnerar 3 + 2i
komplex_eval[(2+0i) - (1+0i) + (ett polärt tal med belopp 1 och vinkel 3,14159)]
returnerar 0+0i
Du får själv avgöra om det returnerade talet ska vara på polär eller rektangulär form. Du avgör själv om du vill ha en infix, postfix eller prefix notation. Huruvida resultatet skrivs ut som heltal eller flyttal saknar betydelse.
Du kan ha nytta av funktionerna sin, cos, tan, asin, acos, atan
och pi
, där de första sex tar ett argument och den sista inget.
Om du vill påverka representationen av tal (vilket inte är obligatoriskt), kan du dessutom vilja använda funktionen float[i], som tar ett argument, ett heltal, och returnerar samma tal som flyttal, samt truncate[f], som tar ett argument, ett flyttal, och returnerar det närmaste heltalet.
Ledning: En möjlig representation för de komplexa talen är såsom en lista av tre element, en "tag" som avgör om listan representerar ett tal på rektangulär eller polär form samt de två talen.
Anders Berglund Office: Room 1254 Department of Computer Systems E-mail: Anders.Berglund@docs.uu.se Box 325 Phone (work): +46 18 471 31 67 S-751 05 Uppsala Mobile phone: +46 70 582 45 80 Sweden Fax (work): +46 18 55 02 25 Senast ändrad: 08/30/97 19:08:33