Askiseis Pinakes Pascal

8
Ασκήσεις στη γλώσσα προγραμματισμού Pascal ΠΙΝΑΚΕΣ ΑΣΚΗΣΗ 1 Να γράψετε πρόγραμμα το οποίο να τοποθετεί σε έναν μονοδιάστατο πίνακα 100 θέσεων τους αριθμούς 2, 4, 6,... και μετά να τους εμφανίζει στην οθόνη. PROGRAM pinakes_demo; USES crt; VAR i: integer; n: array[1..100] of integer; BEGIN clrscr; FOR i:=1 TO 100 DO n[i]:=i*2; FOR i:=1 TO 100 DO writeln(n[i]); END. ΑΣΚΗΣΗ 2 Να γράψετε πρόγραμμα το οποίο να διαβάζει 10 αριθμούς και να τους τοποθετεί σε έναν μονοδιάστατο πίνακα. Στη συνέχεια να εμφανίζει το άθροισμα αυτών των αριθμών. PROGRAM athrisma; USES crt; VAR

description

fsx

Transcript of Askiseis Pinakes Pascal

Page 1: Askiseis Pinakes Pascal

Ασκήσεις στη γλώσσα προγραμματισμού Pascal

ΠΙΝΑΚΕΣ

ΑΣΚΗΣΗ 1

Να γράψετε πρόγραμμα το οποίο να τοποθετεί σε έναν μονοδιάστατο πίνακα 100 θέσεων τους αριθμούς 2, 4, 6,... και μετά να τους εμφανίζει στην οθόνη.

PROGRAM pinakes_demo;USES crt;VAR i: integer; n: array[1..100] of integer;

BEGIN clrscr; FOR i:=1 TO 100 DO n[i]:=i*2;

FOR i:=1 TO 100 DO writeln(n[i]);END.

ΑΣΚΗΣΗ 2

Να γράψετε πρόγραμμα το οποίο να διαβάζει 10 αριθμούς και να τους τοποθετεί σε έναν μονοδιάστατο πίνακα. Στη συνέχεια να εμφανίζει το άθροισμα αυτών των αριθμών.

PROGRAM athrisma;USES crt;VAR i: integer; n: array[1..10] of integer; sum: longint;

BEGIN clrscr; FOR i:=1 TO 10 DO BEGIN write('Number-', i, ': ');

Page 2: Askiseis Pinakes Pascal

readln(n[i]); END;

sum:=0; FOR i:=1 TO 10 DO sum:=sum+n[i];

writeln('SUM: ', sum);END.

ΑΣΚΗΣΗ 3Να γράψετε πρόγραμμα το οποίο να διαβάζει 10 αριθμούς και να τους τοποθετεί σε έναν μονοδιάστατο πίνακα. Στη συνέχεια να εμφανίζει αυτούς τους αριθμούς με την αντίστροφη σειρά.

PROGRAM reverse;USES crt;VAR i: integer; n: array[1..10] of integer;

BEGIN clrscr; FOR i:=1 TO 10 DO BEGIN write('Number-', i, ': '); readln(n[i]); END;

FOR i:=10 DOWNTO 1 DO writeln('Number-', i, ': ', n[i]);END.

ΑΣΚΗΣΗ 4Να γράψετε πρόγραμμα το οποίο να διαβάζει 10 αριθμούς και να τους τοποθετεί σε έναν μονοδιάστατο πίνακα. Στη συνέχεια να αναζητά και να εμφανίζει τον μικρότερο και τον μεγαλύτερο από αυτούς.

PROGRAM min_max;USES crt;VAR i, min, max: integer; n: array[1..10] of integer;

BEGIN clrscr; FOR i:=1 TO 10 DO

Page 3: Askiseis Pinakes Pascal

BEGIN write('Number-', i, ': '); readln(n[i]); END;

FOR i:=1 TO 10 DO IF i=1 THEN BEGIN min:=n[i]; max:=n[i]; END ELSE BEGIN IF n[i]<min THEN min:=n[i]; IF n[i]>max THEN max:=n[i]; END;

writeln('MIN: ', min); writeln('MAX: ', max);END.

ΑΣΚΗΣΗ 5Να γράψετε πρόγραμμα το οποίο να διαβάζει 10 αριθμούς και να τους τοποθετεί σε έναν μονοδιάστατο πίνακα. Στη συνέχεια να αναζητά και να εμφανίζει τον μεγαλύτερο αριθμό καθώς το πλήθος των εμφανίσεών του.

PROGRAM countmax;USES crt;VAR i, max, count: integer; n: array[1..10] of integer;

BEGIN clrscr; FOR i:=1 TO 10 DO BEGIN write('Number-', i, ': '); readln(n[i]); END;

count:=1; max:=n[1]; FOR i:=2 TO 10 DO IF n[i]>max THEN BEGIN count:=1; max:=n[i];

Page 4: Askiseis Pinakes Pascal

END ELSE IF n[i]=max THEN count:=count+1;

writeln('MAX: ', max); writeln('COUNT: ', count);END.

ΑΣΚΗΣΗ 6Να γράψετε πρόγραμμα το οποίο να διαβάζει 10 αριθμούς να τους τοποθετεί σε έναν μονοδιάστατο πίνακα. Στη συνέχεια να αναζητά και να εμφανίζει τον μικρότερο αριθμό καθώς την θέση μέσα στον πίνακα της πρώτης εμφάνισής του.

PROGRAM posmin;USES crt;VAR i, min, pos: integer; n: array[1..10] of integer;

BEGIN clrscr; FOR i:=1 TO 10 DO BEGIN write('Number-', i, ': '); readln(n[i]); END;

pos:=1; min:=n[1]; FOR i:=2 TO 10 DO IF n[i]<min THEN BEGIN pos:=i; min:=n[i]; END;

writeln('MIN: ', min); writeln('POSITION: ', pos);END.

ΑΣΚΗΣΗ 7Δίνεται ένας μονοδιάστατος πίνακας table ο οποίος περιέχει 100 αριθμούς. Δώστε τις απαραίτητες εντολές (τμήμα προγράμματος) οι οποίες να ελέγχουν αν ο πίνακας είναι ταξινομημένος με αύξουσα σειρά ή όχι.

sorted:=true; {boolean}i:=1;

Page 5: Askiseis Pinakes Pascal

REPEAT i:=i+1; IF table[i-1]>table[i] THEN sorted:=false; UNTIL (i=100) OR (NOT sorted);

ΑΣΚΗΣΗ 8Δίνεται ένας δισδιάστατος πίνακας table με m γραμμές και n στήλες. Δώστε τις απαραίτητες εντολές (τμήμα προγράμματος) οι οποίες να υπολογίζουν το άθροισμα όλων των αριθμών που περιέχει ο πίνακας.

sum:=0;FOR i:=1 TO m DO FOR j:=1 TO n DO sum:=sum+table[i,j];

ΑΣΚΗΣΗ 9Δίνεται ένας δισδιάστατος πίνακας table με m γραμμές και n στήλες. Δώστε τις απαραίτητες εντολές (τμήμα προγράμματος) οι οποίες να υπολογίζουν τον μέσο όρο όλων των αριθμών που περιέχει ο πίνακας.

sum:=0;FOR i:=1 TO m DO FOR j:=1 TO n DO sum:=sum+table[i,j];

mo:=sum/(m*n);

ΑΣΚΗΣΗ 10Δίνεται ένας δισδιάστατος πίνακας table με 20 γραμμές και 10 στήλες. Δώστε τις απαραίτητες εντολές (τμήμα προγράμματος) οι οποίες να υπολογίζουν το πλήθος των άρτιων αριθμών του πίνακα.

artioi:=0;FOR i:=1 TO 20 DO FOR j:=1 TO 10 DO IF (table[i,j] mod 2)=0 THEN artioi:=artioi+1;

ΑΣΚΗΣΗ 11Για την διαχείριση των βαθμών στο μάθημα της Πληροφορικής χρησιμοποιείται ένας δισδιάστατος πίνακας με 20 γραμμές και 4 στήλες. Οι πρώτες τρεις στήλες αντιστοιχούν στους βαθμούς του 1ου, 2ου και 3ου τριμήνου αντίστοιχα και η τέταρτη στήλη στον μέσο όρο. Να γράψετε πρόγραμμα το οποίο να διαβάζει για κάθε ένα από τους 20 μαθητές μιας τάξης τους βαθμούς των τριών τριμήνων. Στη συνέχεια να υπολογίζει τον μέσο όρο. Τέλος, να εμφανίζει αναλυτικά τα στοιχεία του πίνακα για όλους τους μαθητές

Page 6: Askiseis Pinakes Pascal

PROGRAM bathmoi;USES crt;VAR i, j: integer; b: array[1..20, 1..4] of integer;

BEGIN clrscr; FOR i:=1 TO 20 DO BEGIN writeln('Mathitis-',i); FOR j:=1 TO 3 DO BEGIN write('Trimino-', j, ': '); readln(b[i,j]); END; END;

FOR i:=1 TO 20 DO b[i,4]:= round((b[i,1]+b[i,2]+b[i,3])/3);

writeln;writeln('APOTELESMATA');FOR i:=1 TO 20 DO BEGIN writeln('Mathitis-',i); FOR j:=1 TO 3 DO writeln('Trimino-', j, ': ', b[i,j]); writeln('Mesos Oros: ', b[i,4]); END;END.

ΑΣΚΗΣΗ 12Δίνεται ένας δισδιάστατος πίνακας permonth με 30 γραμμές και 12 στήλες. Κάθε γραμμή αντιστοιχεί στα ετήσια κέρδη διαφορετικής κάθε φοράς εταιρίας εμπορίας προϊόντων πληροφορικής λογισμικού. Οι στήλες αντιστοιχούν στα κέρδη για κάθε μήνα του έτους και θεωρήστε ότι είναι ήδη συμπληρωμένες. Δώστε τις απαραίτητες εντολές (τμήμα προγράμματος) που να υπολογίζουν σε άλλο μονοδιάστατο πίνακα year 30 στοιχείων τα ετήσια κέρδη κάθε εταιρίας.

FOR i:=1 TO 30 DO BEGIN year[i]:=0; FOR j:=1 TO 12 DO year[i]:=year[i]+permonth[i,j]; END;

ΑΣΚΗΣΗ 13

Page 7: Askiseis Pinakes Pascal

Να γράψετε πρόγραμμα το οποίο να διαβάζει 100 αριθμούς μεταξύ του 1984 και 2004 και να τους τοποθετεί σε έναν μονοδιάστατο πίνακα. Οι αριθμοί αυτοί θα αντιστοιχούν στο έτος γέννησης νέων ανθρώπων. Στη συνέχεια να εμφανίζει το πλήθος των ανθρώπων των οποίων η ηλικία είναι α) από 0 έως 5 έτη, β) από 6 έως 10 έτη, γ) από 11 έως 15 έτη, και δ) από 16 έως 20 έτη.

PROGRAM hlikies;USES crt;VAR i, k1, k2, k3, k4: integer; a: array[1..100] of integer;

BEGIN clrscr; FOR i:=1 TO 10 DO REPEAT write('Hlikia-', i, ': '); readln(a[i]); UNTIL (a[i]>=1984) AND (a[i]<=2004);

k1:=0; k2:=0; k3:=0; k4:=0;

FOR i:=1 TO 10 DO CASE 2004-a[i] OF 0..5: k1:=k1+1; 6..10: k2:=k2+1; 11..15: k3:=k3+1; 16..20: k4:=k4+1; END;

writeln; writeln(' 0 - 5 :', k1); writeln(' 6 - 10 :', k2); writeln('11 - 15 :', k3); writeln('16 - 20 :', k4);END.