ABSTRACT

PROGRAM Trapezium REAL :: a, b, c, d REAL :: areal=0.0, area2=0.0, areasgl=0.0, areasq2=0. 0 WRITE (*,*) "Input the lengths of the sides of a trapezium & & in cyclic order" READ (*,*) a, b, c, d IF (a==C.AND.b==d) THEN WRITE (*,*) "That is a parallelogram" ELSE ! We don't know which pair of sides are parallel IF (d/=b) areasql = ((a**2-c**2)**2/(d-b)**2 fc + a**2 + c**2 – (d-b)**2) * (b+d)**2/16.0 IF (a/=c) areasq2=((b**2-d**2)**2/(a-c)**2 & + b**2+d**2 – (a-c)**2) * (a+c)**2/16.0 IF (areasql>0.0) areal = SQRT(areasq1) IF (areasq2>0.0) area2 = SQRT(areasq2) IF (areal==0.0.AND.area2==0.0) WRITE (*,*) & "That is not a real trapezium" IF (areal==0.0.NEQV.area2=-=0.0) WRITE (*,*) & "The area is ", areal+area2 IF (areal/=0.0.AND.area2/=0.0) WRITE (*,*) & "Possible values for the area are ", areal,” and ", area2 END IF END PROGRAM Trapezium

4.A 1

(ii) INTEGER :: n(60)=(/(–1, i=1,30),(1, j-1,30)/) (iii) REAL :: powers (10) = (/ (3.14159265358**m, m=1,10)/)

4.B 1

(i) “at” (ii) “mull”

(iii) “g” (iv) “wat”

4.B 2

(i) CHARACTER!0) :: null (ii) CHARACTER(24) :: s1, s2, s3

(iii) CHARACTER(*) : : me = “Eisenstein” (iv) CHARACTER, PARAMETER : : bs = ACKARO2)

4.B 3

(ii) CHARACTER :: c(11) = (/("abracadabra"(1:k), k=1,11)/)

4.B 4

REAL :: pl(10), p2(10), greatness(10) COMPLEX :: z(10) READ (*,*) pi READ (*,*) p2 z = CMPLX(p1,p2) greatness = abs(z) WRITE (*,*) z(MAXLOC(greatness))

4.B 5

(i) (/"light", "trick"/) (iii) (/"hazel", "witch"/) (v) (/"t"/) (ii) (/"beach", "shore"/) (iv) (/"gh", "ic"/)

4.B 7

.