
Τμήμα
Μαθηματικών
| 
 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Διδάσκων: Διομήδης Σπινέλλης  | 
 Εξεταστική περίοδος Σεπτεμβρίου 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 ώρες  | 
 Καλή επιτυχία!  |