Vous êtes sur la page 1sur 9

Ανάπτυξη εφαρμογών σε

προγραμματιστικό περιβάλλον
(Αλγόριθμοι) και εισαγωγή στην
γλώσσα προγραμματισμού Pascal

Πίνακες
Μονοδιάστατοι Πίνακες
 Πολλά από τα προβλήματα τα οποία παρουσιάστηκαν στα προηγούμενα
κεφάλαια, απλά επεξεργάζονται μία σειρά δεδομένων, για παράδειγμα στην
μέτρηση μιας θερμοκρασίας δωματίου ο αλγόριθμος που θα γράφαμε θα
ήταν:
Αλγόριθμος Θερμοκρασία_Δωματίου
Σύνολο <- 0
Για Ημέρα Από 1 Μέχρι 30
Διάβασε Θερμοκρασία
Σύνολο <- Σύνολο + Θερμοκρασία
Τέλος_Επανάληψης
Μέση < - Σύνολο / 30
Εμφάνισε Μέση
Τέλος Θερμοκρασία_Δωματίου

 Στην περίπτωση όμως που θέλαμε να καταχωρούμε την θερμοκρασία του


δωματίου για κάθε μέρα τότε θα χρειαζόμασταν 30 μεταβλητές για να
αποθηκεύσουμε κάθε τιμή, πράγμα προγραμματιστικά ασύμφορο. Σε αυτήν
την περίπτωση χρησιμοποιούμε μια μεταβλητή με δείκτες, τύπου πίνακα
όπως στα μαθηματικά. Ο πίνακας καθορίζει μια ομάδα διαδοχικών θέσεων
στη μνήμη. Κάθε συγκεκριμένη θέση μνήμης καλείται στοιχείο του πίνακα
και προσδιορίζεται από την τιμή ενός δείκτη όπως φαίνεται και στο σχήμα.
Οι πίνακες που χρησιμοποιούν ένα μόνο δείκτη για την αναφορά των
στοιχείων τους ονομάζονται μονοδιάστατοι πίνακες
Μονοδιάστατοι Πίνακες
 Στο προηγούμενο παράδειγμα με την θερμοκρασία δωματίου άμα θέλαμε
να το εξελίξουμε λίγο μπορούμε να υπολογίζουμε εκτός από την μέση
θερμοκρασία, τις ημέρες που η θερμοκρασία του δωματίου ήταν κάτω
από την μέση τιμή.
Αλγόριθμος Θερμοκρασία_Δωματίου
Μεταβλητές
Πραγματικές: Θερμοκρασία[30], Μέση, Σύνολο
Ακέραιες: i, Ημέρες
Αρχή
Σύνολο < - 0
Για i Από 1 Μέχρι 30
Εμφάνισε ‘Δώσε τη θερμοκρασία’
Διάβασε Θερμοκρασία[ i ]
Σύνολο < - Σύνολο + Θερμοκρασία[ i ]
Τέλος_Επανάληψης
Μέση < - Σύνολο / 30
Ημέρες < - 0
Για i Από 1 Μέχρι 30
Αν Θερμοκρασία[ i ] < Μέση Τότε Ημέρες < - Ημέρες + 1
Τέλος_Επανάληψης
Εμφάνισε ‘Μέση θερμοκρασία:’, Μέση
Εμφάνισε ‘Ημέρες με μικρότερη θερμοκρασία:’, Ημέρες
Τέλος Θερμοκρασία_Δωματίου
Πολυδιάστατοι Πίνακες
 Εκτός από τους μονοδιάστατους πίνακες υπάρχουν και οι
δυσδιάστατοι και οι τρισδιάστατοι και γενικά οι
πολυδιάστατοι πίνακες με τις περισσότερες από μια
διαστάσεις. Ανάλογα με τον αριθμό των δεικτών που
χρησιμοποιούν για την οργάνωση τους τα ξεχωρίζουμε και τα
χρησιμοποιούμε σε δομές δεδομένων με πολλά στοιχεία και
παραμέτρους. Στο προηγούμενο παράδειγμα με τις
θερμοκρασίες άμα θέλαμε να καταγράψουμε την θερμοκρασία
10 πόλεων μέσα σε 30 ημέρες τότε αναγκαστικά θα είχαμε
έναν πίνακα με τα εξής στοιχεία:
Πολυδιάστατοι Πίνακες
 Στο παράδειγμα με τις θερμοκρασίες της κάθε πόλης μέσα σε 30
ημέρες θα υπολογίζουμε την μέση τιμή θερμοκρασίας της κάθε
πόλης και το σύνολο των ημερών που είναι η θερμοκρασία κάτω από
την μέση τιμή.
Αλγόριθμος Θερμοκρασία_Δωματίου2
Μεταβλητές
Πραγματικές: Θερμοκρασία[ 30,10 ], Μέση[ 10 ]
Ακέραιες: i, j, Ημέρες[ 10 ], Σύνολο
Αρχή
! Εισαγωγή δεδομένων
Για i Από 1 Μέχρι 30
Για j Από 1 Μέχρι 10
Εμφάνισε ‘Δώσε τη θερμοκρασία:’, i, j
Διάβασε Θερμοκρασία[ i, j ]
Τέλος_Επανάληψης
Τέλος_Επανάληψης
! Μέση τιμή
Για j Από 1 Μέχρι 10
Σύνολο < - 0
Για i Από 1 Μέχρι 30
Σύνολο < - Σύνολο + Θερμοκρασία[ i, j ]
Τέλος_Επανάληψης
Μέση[ j ] < - Σύνολο / 30
Τέλος_Επανάληψης
! Ημέρες
Για j Από 1 Μέχρι 10
Ημέρες[ j ] < - 0
Για i Από 1 Μέχρι 30
Αν Θερμοκρασία[ i, j ] < Μέση[ j ] Τότε Ημέρες[ j ] <- Ημέρες[ j ] + 1
Τέλος_Επανάληψης
Εμφάνισε ‘Μέση θερμοκρασία:’, Μέση[ j ]
Εμφάνισε ‘Ημέρες με μικρότερη θερμοκρασία:’, Ημέρες[ j ]
Τέλος_Επανάληψης
Τέλος Θερμοκρασία_Δωματίου2
Pascal: Πίνακες
 Πίνακα ονομάζουμε διάταξη δεδομένων μιας ή περισσοτέρων
διαστάσεων η οποία είναι συγκεκριμένου τύπου δεδομένων.
 Για παράδειγμα έχουμε ένα πίνακα ακραίων 5 θέσεων τον
οποίο ονομάζουμε myarray και τον δηλώνουμε έτσι στις
μεταβλητές μας:
 myarray :array[1..5] of integer;
 Για να δώσουμε τιμή σε ένα στοιχειό του πίνακα myarray
γραφούμε:
 Κατευθείαν … myarray[2]:=7;
 ή μέσω πληκτρολογίου… readln(myarray[2]);
 Για να παρουσιάσουμε μια τιμή από τον πίνακα myarray
γραφούμε:
 write(myarray[3]);
 Άμα είναι μεγάλος ο πίνακας καλό είναι να χρησιμοποιούμε
βρόγχους για την προσπέλαση του.
Άσκηση: Πίνακες
 Να γραφεί πρόγραμμα στη Pascal που θα γεμίζει έναν πίνακα
ακεραίων τον pin1 ο ποιος είναι 10 θέσεων, στην συνέχεια θα
αθροίζει τα στοιχεία και θα τυπώνει το αποτέλεσμα.
Program Athroisma_Pinaka;
Var
pin1:Array[1..10] of Integer;
i,Sum: Integer;
Begin
Sum:=0;
For i:=1 to 10 do
Begin
Write(‘Dose arithmo:’);
Readln(pin1[ i ]);
End;
For i:=1 to 10 do
Sum:=Sum+pin1[ i ];
Writeln(‘To Athroisma einai:’,Sum);
Readln;
End.
Άσκηση: Πίνακες
 Να γραφεί πρόγραμμα στη Pascal που θα γεμίζει έναν πίνακα ακεραίων
τον pin2 ο ποιος είναι 5 θέσεων, και στην συνέχεια θα τυπώνει τους
αρνητικούς αριθμούς καθώς και το πλήθος τους (πόσοι είναι).
Program Pinakas2;
Var
pin2:Array[1..5] of Integer;
CountN,i:Integer;
Begin
For i:=1 to 5 do
Begin
Write(‘Dose Arithmo:’);
Readln(pin2[ i ]);
End;
CountN:=0;
For i:=1 to 5 do
If pin2[ i ] < 0 Then
Begin
Writeln( i, ‘ : ‘, pin2[ i ]);
CountN:= CountN + 1;
End;
Writeln(‘Arithmos Arnitikon Arithmon:’, CountN);
Readln;
End.
Άσκηση: Πίνακες
 Να γραφεί πρόγραμμα στη Pascal που θα γεμίζει έναν πίνακα
ακεραίων τον pin3 ο ποιος είναι 5 θέσεων, στην συνέχεια θα
βρίσκει το μικρότερο στοιχείο και θα το τυπώνει στην οθόνη.

Vous aimerez peut-être aussi