Πίνακες
Τι είναι ο πίνακας Πίνακας είναι ένα σύνολο αντικειμένων του ιδίου τύπου, που αναφέρονται με ένα κοινό όνομα. Κάθε ένα από τα αντικείμενα ονομάζεται στοιχείο του πίνακα. Με τον καθορισμό των διαστάσεων του πίνακα, κρατούμε στην μνήμη του Η.Υ. τις ανάλογες θέσεις. Κάθε θέση προσδιορίζεται από την τιμή ενός δείκτη. Μπορούμε να έχουμε: (α) Μονοδιάστατους πίνακες. (β) Δισδιάστατους πίνακες.
Μονοδιάστατοι-Δισδιάστατοι Πίνακες (α) Μονοδιάστατοι πίνακες Όνομα πίνακα array x[1..5] (β) Δισδιάστατοι πίνακες 1 2 3 4 5 array[2,3]
Σχόλια – Παρατηρήσεις Η χρήση πινάκων είναι ένας εύκολος τρόπος για τη διαχείριση πολλών δεδομένων του ιδίου τύπου. Οι πίνακες είναι στατικές δομές και το μέγεθός τους θα πρέπει να δηλώνεται στην αρχή του προγράμματος. Κάθε πίνακας δεσμεύει από την αρχή του προγράμματος πολλές θέσεις μνήμης και σε μερικές περιπτώσεις αυτό μπορεί να οδηγήσει, ακόμη και σε αδυναμία εκτέλεσης του προγράμματος. Για την επεξεργασία των στοιχείων ενός πίνακα χρησιμοποιείται συνήθως ο βρόχος For.
Δήλωση του πίνακα Για να δηλώσουμε τον πίνακα… Var timi: array[1..20] of integer; Όνομα πίνακα… timi τύπος δείκτη… το υποδιάστημα 1..20 τύπος των στοιχείων του πίνακα integer
Παράδειγμα Δηλαδή στην έξοδο να περιλαμβάνεται… Να γράψετε ένα πρόγραμμα στο οποίο να δίνεται την τιμή ενός προϊόντος, να υπολογίζεται το Φ.Π.Α.(π.χ. 8%) και την τελική τιμή του προϊόντος. Δηλαδή στην έξοδο να περιλαμβάνεται… Τιμή Φ.Π.Α. Τελική Τιμή 100 8.00 108.00
Απάντηση Program xoris_pinaka; Var timi,fpa,teliki_timi:real; Begin writeln(‘Timi :’); readln(timi); fpa:=timi*0.08; teliki_timi:=timi+fpa; writeln(‘ Timi F.P.A. Teliki Timi’); writeln(timi:10:2,fpa:10:2,teliki_timi:12:2); End.
Παρατηρήσεις Το προηγούμενο πρόγραμμα έχει ένα σοβαρό μειονέκτημα. Αν επιθυμούμε να κάνουμε το ίδιο για πολλά προϊόντα, π.χ. για 100, τότε θα είχαμε μια χρονοβόρα διαδικασία. Για να επιλύσουμε το πρόβλημα αυτό, μπορούμε να χρησιμοποιήσουμε τον πίνακα. Αντί να χρησιμοποιήσουμε timi1,timi2,timi3,… γράφουμε………… Timi: array[1..100] of real;
Χρήση πίνακα Program pinakas1; Var timi,fpa,tel_timi:array[1..10] of real; i:integer; Begin for i:=1 to 10 do writeln(‘Timi’); readln(timi[i]); fpa[i]:=timi[i]*0.08; tel_timi[i]:=timi[i]+fpa[i]; end; writeln(‘ Timi F.P.A. Teliki timi’); for i:=1 to 10 do writeln(‘timi[i]:10:2,fpa[i]:10:2,tel_timi[i]:12:2); End.
Ταξινόμηση με τη βοήθεια πίνακα Ταξινόμηση με τη βοήθεια πίνακα Δίνονται δυο διαφορετικοί αριθμοί. Να γράψετε ένα πρόγραμμα που να τυπώνει τους αριθμούς σε αύξουσα σειρά.
Ταξινόμηση Program taxnomisi; var arithmos:array[1..2] of integer; I,endiamesos:integer; Begin writeln(‘ Dose dyo arithmous’); for i=1 to 2 do if arithmos[i] > arithmos[i+1] then begin endiamesos:=arithmos[i]; arithmos[i]:=arithmos[i+1]; arithmos[i=1]:=endiamesos; end; for i:=1 to 2 do writeln(arithmos[i]:5); End.