προγραμματιστικό περιβάλλον (Αλγόριθμοι) και εισαγωγή στην γλώσσα προγραμματισμού Pascal
Εισαγωγή στον προγραμματισμό εφαρμογών και
στην Turbo Pascal Δομή επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερα συχνή, αφού πλήθος προβλημάτων μπορούν να επιλυθούν με κατάλληλες επαναληπτικές διαδικασίες. Η λογική των επαναληπτικών διαδικασιών εφαρμόζεται στις περιπτώσεις όπου μια ακολουθία εντολών πρέπει να εφαρμοσθεί σε ένα σύνολο περιπτώσεων που έχουν κάτι κοινό. Οι επαναληπτικές διαδικασίες μπορούν να έχουν διάφορες μορφές και συνήθως εμπεριέχουν και συνθήκες επιλογών. Παράδειγμα: Εκτύπωση διαδοχικών αριθμών με επαναληπτική εντολή (όσο … επανάλαβε). Να γραφεί αλγόριθμος που να εμφανίζει τους αριθμούς από 1 έως 100. Για την επίλυση τους συγκεκριμένου αλγόριθμου θα υπάρχει μια μεταβλητή όπου θα αυξάνεται σταδιακά μέχρι το 100 με βήμα 1 και μία συνθήκη όπου θα ελέγχει την τιμή της. Αλγόριθμος Επανάληψη1 i ←1 Όσο i ≤ 100 επανάλαβε Εμφάνισε i i ←i + 1 Τέλος_επανάληψης Τέλος Επανάληψης1 Δομή επανάληψης αρχή_επανάληψης…μέχρις_ότου Παράδειγμα: Να διαβάζονται και να εκτυπώνεται όσοι θετικοί αριθμοί δίνονται από το πληκτρολόγιο. Ο αλγόριθμος τελειώνει όταν δοθεί ένας αρνητικός αριθμός. Αλγόριθμος Επανάληψη2 Αρχή_επανάληψης Διάβασε Χ Εμφάνισε Χ Μέχρις_ότου Χ < 0 Τέλος Επανάληψη2
Ας σημειωθεί ότι στο παράδειγμα αυτό ο βρόχος επανάληψης θα
εκτελεσθεί οπωσδήποτε τουλάχιστον μία φορά ακόμα και αν η αρχική τιμή της μεταβλητής χ είναι αρνητική. Δομή επανάληψης για..από..μέχρι Παράδειγμα: Να βρεθεί και να εκτυπωθεί το άθροισμα των 100 ακέραιων από το 1 μέχρι το 100. Όταν ο αριθμός των φορών που θα εκτελεστεί μια επαναληπτική διαδικασία είναι γνωστός εκ των προτέρων τότε είναι προτιμότερο να χρησιμοποιείται η εντολή Για..από..μέχρι. Έτσι ο ζητούμενος αλγόριθμος είναι. Αλγόριθμος Επανάληψη3 Sum ← 0 Για i από 1 μέχρι 100 Sum ← Sum + i Τέλος_επανάληψης Εκτύπωσε Sum Τέλος Επανάληψη3
Όπως γίνεται φανερό η εντολή Για..από..μέχρι περιλαμβάνει όλα τα
απαιτούμενα στοιχεία για την επάναληψη, δηλαδή αρχική τιμή της μεταβλητής i (=1) και τελική τιμή (=100). Το βήμα μεταβολής της μεταβλητής i είναι 1 το οποίο υπονοείται και δεν σημειώνεται όταν είναι 1. Δομή επανάληψης για..από..μέχρι..βήμα Παράδειγμα: Να βρεθεί και να εκτυπωθεί το άθροισμα των άρτιων αριθμών από το 1 μέχρι το 100. Η λύση αυτού του προβλήματος είναι παρόμοια με αυτή του προηγούμενου. Η μόνη αλλαγή είναι στην εντολή επανάληψης όπου προσδιορίζεται η ποσότητα βήμα, η οποία κάθε φορά προστίθεται στην τιμή της μεταβλητής i . Έτσι έχουμε: Αλγόριθμος Επανάληψη4 άθροισμα ← 0 Για i από 2 μέχρι 100 με_βήμα 2 άθροισμα ← άθροισμα + i Τέλος_επανάληψης Εκτύπωσε άθροισμα Τέλος Επανάληψη4 Σημείωση: Το βήμα δεν μπορεί να είναι μηδέν γιατί τότε ο βρόχος εκτελείται επ΄άπειρον. Είναι δυνατόν όμως το βήμα να έχει αρνητική τιμή αρκεί η τιμή από να είναι μεγαλύτερη από την τιμή μέχρι όπως για παράδειγμα στην επόμενη εντολή: Για Χ από 100 μέχρι 0 με_βήμα -1 Άσκηση: Δομή επανάληψης Δημιουργήστε έναν αλγόριθμο σε ψευδοκώδικα το οποίο θα ζητάει έναν πραγματικό αριθμό από τον χρήστη και θα τον προσθέτει σε μία μεταβλητή αυτό θα επαναλαμβάνεται συνεχώς έως το γενικό άθροισμα της μεταβλητής να ξεπεράσει το 1000 μετά θα εκτυπώνει την τιμή της μεταβλητής και θα τελειώνει ο αλγόριθμος. Να προτιμηθεί η δομή επανάληψης αρχή_επανάληψης…μέχρις_ότου Pascal: Βρόγχοι Ο λόγος που χρησιμοποιούμε βρόγχους είναι όταν θέλουμε να επαναλάβουμε ένα κομμάτι κώδικα πολλές φορές. Οι βρόγχοι που θα εξετάσουμε είναι οι : For, While….do και ο βρόγχος Repeat….Until. Ο βρόχος FOR Συντάσσεται έτσι: For μεταβλητή:= αρχή to τέλος do Begin «Κώδικας για επανάληψη» End; Παράδειγμα: Τυπώνει κάθετα τους αριθμούς από το 1 ως το 10. Program epanalipsi1; Παράδειγμα2: Τυπώνει κάθετα τους αριθμούς από var count :integer; το 10 ως το 1 begin Program epanalipsi2; for count := 1 to 10 do var count :integer; begin begin for count := 10 downto 1 do writeln(count); begin end; writeln(count); end; readln; readln; End. End. Pascal: Βρόγχοι Ο Βρόγχος While … do Συντάσσεται έτσι: while «Συνθήκη» do Begin «Κώδικας για επανάληψη»; End; Παράδειγμα: Τυπώνει κάθετα τους αριθμούς από το 0 ως το 9. Program epanalipsi3; var a :integer; begin a := 0; while a < 10 do begin writeln (a); a := a + 1; end; readln; End. Pascal: Βρόγχοι Ο Βρόγχος Repeat…Until Συντάσσεται έτσι: Repeat «Κώδικας για επανάληψη»; Until «Συνθήκη»; Παράδειγμα: Program epanalipsi4; var a :integer; begin a := 0; Repeat writeln(a); a := a + 1; Until (a > 9); readln; End. Προσοχή! Οι βρόγχοι με συνθήκη πρέπει να περιλαμβάνουν κάτι που να αλλάζει την τιμή της έκφρασης, ώστε αυτή να γίνει ψευδής και ο βρόγχος να λήξει, αλλιώς δεν θα τελειώσει ΠΟΤΕ. Άσκηση: Βρόγχοι Δημιουργήστε ένα πρόγραμμα σε γλώσσα Pascal το οποίο θα ζητάει έναν πραγματικό αριθμό από τον χρήστη και θα τον προσθέτει σε μία μεταβλητή αυτό θα επαναλαμβάνεται συνεχώς έως το γενικό άθροισμα της μεταβλητής να ξεπεράσει το 1000 μετά θα εκτυπώνει την τιμή της μεταβλητής και θα τελειώνει το πρόγραμμα. Λύση: Program Athroisma; { Το πρόγραμμα αυτό υπολογίζει και εκτυπώνει το άθροισμα κάποιων αριθ- μών, τελειώνει δε όταν το άθροισμά τους ξεπεράσει το 1.000 } Uses Crt; Var a, s : Real; Begin Clrscr; s := 0; { απόδοση αρχικής τιμής στη μεταβλητή } Repeat { οι παρακάτω εντολές επαναλαμβάνονται μέχρις ότου } Readln(a); { η μεταβλητή s γίνει μεγαλύτερη από 1000 } s := s+a Until s>1000; Writeln(s); Repeat until keypressed; End.
44 Metatroph Apo Mia Morfh Domhs Epanalhpshs Se Mia Allh H Metatroph Mias Entolhs Epanalhpshs Se Mia Allh H Stis Alles Dyo Entoles Epanalhpshs Apotelei Ena Oema Poy Arketes Fores Exei Exet 1