Εξεταστική περιόδος Σεπτεμβρίου 1998

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Τμήμα Μαθηματικών

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ

Διδάσκων: Διομήδης Σπινέλλης

Εξεταστική περίοδος

Σεπτεμβρίου 1998

Θέμα 1ο: (4 βαθμοί)

Γράψτε ένα πρόγραμμα σε Pascal το οποίο να ζωγραφίζει σε οθόνη με διαστάσεις 100 * 100 εικονοστοιχεία έναν κύκλο. Για την εμφάνιση ενός εικονοστοιχείου αρκεί η κλήση της συνάρτησης setpixel(x, y).

Θέμα 2ο: (4 βαθμοί)

Γράψτε ένα πρόγραμμα σε Pascal το οποίο διαβάζει από το χρήστη 100 ονόματα και αντίστοιχους βαθμούς (0-10) και στη συνέχεια τυπώνει τα ονόματα με τους βαθμούς αυξημένους ή μειωμένους κατά 1 ανάλογα με το αν ο μέσος όρος των αρχικών βαθμών ήταν αντίστοιχα μικρότερος ή μεγαλύτερος του 5. Οι βαθμοί 0 και 10 να παραμένουν ίδιοι μετά από αντίστοιχη μείωση ή αύξηση (δηλαδή σε καμία περίπτωση να μην τυπώνεται -1 ή 11).

Θέμα 3ο: (2 βαθμοί)

Tι θα τυπώσει το παρακάτω πρόγραμμα αν του δοθούν ως είσοδος οι αριθμοί από το 1Ψ5; Εξηγήστε.


program TestFold;

const
        maxindex = 5;

type
        realmap = function(x : real; y : real) : real;
        mylist = array [1..maxindex] of real;

var
        i : integer;
        l : mylist;

function fold(f : realmap; a : real; v : mylist) : real;
var
        i : integer;
        result : real;
begin
        result := a;
        for i := 1 to maxindex do
                result := f(v[i], result);
        fold := result;
end;

function prod(x : real; y : real) : real;
begin
        prod := x * y
end;

begin
        for i := 1 to maxindex do
                readln(l[i]);
        writeln(fold(prod, 1, l))
end.

Διάρκεια εξέτασης 2 ώρες

Καλή επιτυχία!