You are on page 1of 10

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

προγραμματιστικό περιβάλλον
(Αλγόριθμοι) και εισαγωγή στην
γλώσσα προγραμματισμού 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.

You might also like