22. Diverse övningar

22.0 Inledning

Jag har i detta kapitel samlat ett antal övningar, de flesta av dem är mycket enkla.

22.1 Övningar.

(22.1) Vad betyder deklarationen LOGIC ALL?
Lösning.

(22.2) Deklarera en konstant K med värdet 0,75.
Lösning.

(22.3) Deklarera en heltalsmatris PELLE med 3 rader och 4 kolonner.
Lösning.

(22.4) Deklarera en flyttalstyp som svarar mot dubbel precision på IBM och enkel precision på Cray.
Lösning.

(22.5) Deklarera några variabler av ovanstående flyttalstyp.
Lösning.

(22.6) Deklarera några konstanter av ovanstående flyttalstyp.
Lösning.

(22.7) Är följande deklaration korrekt?

        REAL DIMENSION(1:3,2:3)       :: AA
Lösning.

(22.8) Är följande deklaration korrekt?

        REAL REAL
Lösning.

(22.9) Är följande deklaration korrekt?

        COMMON :: A
Lösning.

(22.10) Vad utför satsen WRITE(*, "( HEJ )") ?
Lösning.

(22.11) Vad utför följande satser?

        CHARACTER (LEN=9) :: FILIP
        FILIP = '(1PG14.6)'
        WRITE(*,FILIP) 0.001, 1.0, 1000000.
Lösning.

(22.12) Skriv en CASE-sats som utför olika beräkningar beroende på om styrvariabeln är negativ, noll, något av de första udda primtalen (3, 5, 7, 11, 13), och inget i övriga fall.
Lösning.

(22.13) Skriv en DO-slinga som adderar kvadratroten ur elementen i en vektor om 100 element, men hoppar över negativa tal och avslutar additionen om aktuellt element är noll. Kan denna uppgift skrivas enklare med en FORALL-konstruktion?
Lösning.

(22.14) I övning (5.5) tittade vi på ett program för adaptiv numerisk kvadratur (integration). Jag använde trapetsformeln, halverade steget och gjorde Richardsonextrapolation. Programmet var dock skrivet på ett mycket direkt sätt för att illustrera rekursiv och adaptiv teknik. Det är därför inte optimerat.

Denna övning består i att optimera programmet genom att minska antalet funktionsanrop av funktionen f(x).
Lösning.

Programspråket F Innehåll Svar och kommentarer till övningarna


Senast modifierad: 3 november 2006
boein@nsc.liu.se