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