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