Top Banner
ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ) 1.For I:=1 to 10 Do 2. While posotita<> 0 Do 3. Repeat ... Until posotita: = 0
28

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

Mar 17, 2016

Download

Documents

Damia

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ). For I:=1 to 10 Do 2. While posotita 0 Do … 3. Repeat … ... Until posotita: = 0. Βασικοί στόχοι. Να γνωρίσουμε τις εντολές επανάληψης στην Turbo – Pascal. Να κατανοήσουμε τις διαφορές μεταξύ των τριών εντολών επανάληψης. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

1.For I:=1 to 10 Do

2. While posotita<> 0 Do …

3. Repeat…...Until posotita: = 0

Page 2: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

Βασικοί στόχοι

• Να γνωρίσουμε τις εντολές επανάληψης στην Turbo – Pascal.

• Να κατανοήσουμε τις διαφορές μεταξύ των τριών εντολών επανάληψης.

• Να αναλύσουμε προγράμματα που χρησιμοποιούν τις εντολές επανάληψης.

• Να επιλύσουμε προβλήματα με τη χρήση των εντολών επανάληψης.

Page 3: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

Εντολές Επανάληψης(Βρόχοι)

Με τις εντολές επανάληψης είναι δυνατή η εκτέλεση μιας ακολουθίας προτάσεων του προγράμματος πολλές φορές.

1. Όταν ο αριθμός των επαναλήψεων είναι γνωστός από πριν τότε χρησιμοποιούμε το For…

2. Όταν η εκτέλεση της επανάληψης του βρόχου εξαρτάται από την ικανοποίηση της συνθήκης που προηγείται, τότε χρησιμοποιούμε το While

3. Όταν η επανάληψη του βρόχου εξαρτάται από την ικανοποίηση της συνθήκης που ακολουθεί, τότε χρησιμοποιούμε το, Repeat - Until

Page 4: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

Παράδειγμα 1Program for_1;Uses wincrt;Var metritis,fores:integer;Begin

writeln(‘poses fores thelete na emfanistei i protasi’);writeln(‘stin othoni sas; ‘);readln(fores);FOR metritis:=1 TO fores DOwriteln(‘Oloi diathetoume ena ekpliktiko egkefalo’);End.

Page 5: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

Παράδειγμα 2Program While_2;Uses wincrt;Var

posotita,timi,synolo:real;Begin Wrtiteln(‘Dose <0> stin posotita gia na stamatiseis to programma’);

write(‘Dose tin posotita: ’);readln(posotita);WHILE posotita<> 0 DObeginwrite(‘Dose tin timi: ’);readln(timi);synolo:=posotita*timi;writeln;writeln;writeln(‘To apotelesma se ECU einai..’,synolo:10:2);writeln;write(‘Dose tin posotita: ’);readln(posotita);End

End.

Page 6: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

Παράδειγμα 3Program repeat_3;Uses wincrt;Var

posotita,timi,synolo:real;apantisi:char;

BeginRepeatwrite(‘Dose tin posotita…’);readln(posotita);write(‘ Dose tin timi…’);readln(timi);synolo:=posotita*timi;writeln;writeln;writeln(‘To apotelesma se ECu einai…’,synolo:10:2);writeln;write(‘Tha kanete kai allo ypologismo(N/O) ‘);readln(apantisi);Until apantisi=‘o’

End.

Page 7: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

Δομή επανάληψης

Η δομή επανάληψης είναι μια ολοκληρωμένη πρόταση η οποία περικλείει μια συνθήκη και μια ομάδα εντολών, οι οποίες εκτελούνται, όσο ικανοποιείται η συνθήκη

ΟΣΟ συνθήκη Εντολή 1 Εντολή 2 : :ΕΠΑΝΑΛΑΒΕ

Oμάδαεντολών

Συνθήκη Ψευδής

ΑληθήςΑληθήςΑληθής

ΨευδήςΨευδήςΣυνθήκη Αληθής

Page 8: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

ΠΡΟΓΡΑΜΜΑ Πίνακας_Γινόμενο‘Εισαγωγή σταθεράς τιμής του π π ← 3.14159 ‘Επεξεργασία δεδομένων ΓΡΑΨΕ ”Ακτίνα, Γινόμενο” R ← 1 ΟΣΟ R<=5 Γ ← π*R ΓΡΑΨΕ R, Γ R ← R+1 ΕΠΑΝΑΛΑΒΕΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ

Μνήμη. Περιοχή μεταβλητών

π R Γ

13.14159

Οθόνη

Ακτίνα, Γινόμενο1 3.14159

ΑληθήςΑληθήςΑληθήςΑληθής

3.141592

Page 9: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

ΠΡΟΓΡΑΜΜΑ Πίνακας_Γινόμενο‘Εισαγωγή σταθεράς τιμής του π π ← 3.14159 ‘Επεξεργασία δεδομένων ΓΡΑΨΕ ”Ακτίνα, Γινόμενο” R ← 1 ΟΣΟ R<=5 Γ ← π*R ΓΡΑΨΕ R, Γ R ← R+1 ΕΠΑΝΑΛΑΒΕΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ

Μνήμη. Περιοχή μεταβλητών

π R Γ

23.14159

Οθόνη

Ακτίνα, Γινόμενο1 3.141592 6.28318

ΑληθήςΑληθήςΑληθήςΑληθής

3.141593

6.28318

Page 10: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

ΠΡΟΓΡΑΜΜΑ Πίνακας_Γινόμενο‘Εισαγωγή σταθεράς τιμής του π π ← 3.14159 ‘Επεξεργασία δεδομένων ΓΡΑΨΕ ”Ακτίνα, Γινόμενο” R ← 1 ΟΣΟ R<=5 Γ ← π*R ΓΡΑΨΕ R, Γ R ← R+1 ΕΠΑΝΑΛΑΒΕΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ

Μνήμη. Περιοχή μεταβλητών

π R Γ

36.28318

Οθόνη

Ακτίνα, Γινόμενο1 3.141592 6.283183 9.42477

ΑληθήςΑληθήςΑληθήςΑληθής

3.141594

9.42477

Page 11: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

ΠΡΟΓΡΑΜΜΑ Πίνακας_Γινόμενο‘Εισαγωγή σταθεράς τιμής του π π ← 3.14159 ‘Επεξεργασία δεδομένων ΓΡΑΨΕ ”Ακτίνα, Γινόμενο” R ← 1 ΟΣΟ R<=5 Γ ← π*R ΓΡΑΨΕ R, Γ R ← R+1 ΕΠΑΝΑΛΑΒΕΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ

Μνήμη. Περιοχή μεταβλητών

π R Γ

49.42477

Οθόνη

Ακτίνα, Γινόμενο1 3.141592 6.283183 9.42477

4 12.56636

ΑληθήςΑληθήςΑληθήςΑληθής

3.141595

12.56636

Page 12: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

ΠΡΟΓΡΑΜΜΑ Πίνακας_Γινόμενο‘Εισαγωγή σταθεράς τιμής του π π ← 3.14159 ‘Επεξεργασία δεδομένων ΓΡΑΨΕ ”Ακτίνα, Γινόμενο” R ← 1 ΟΣΟ R<=5 Γ ← π*R ΓΡΑΨΕ R, Γ R ← R+1 ΕΠΑΝΑΛΑΒΕΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ

Μνήμη. Περιοχή μεταβλητών

π R Γ

512.56636

Οθόνη

Ακτίνα, Γινόμενο1 3.141592 6.283183 9.424774 12.56636

5 15.70795

ΑληθήςΑληθήςΑληθήςΑληθής

3.141596

15.70795

Page 13: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

ΠΡΟΓΡΑΜΜΑ Πίνακας‘Εισαγωγή σταθεράς τιμής του π π ← 3.14159 ‘Επεξεργασία δεδομένων ΓΡΑΨΕ ”Ακτίνα, Γινόμενο” R ← 1 ΟΣΟ R<=5 Γ ← π*R ΓΡΑΨΕ R, Γ R ← R+1 ΕΠΑΝΑΛΑΒΕΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ

Μνήμη. Περιοχή μεταβλητών

π R Γ

615.70795

Οθόνη

Ακτίνα, Γινόμενο1 3.141592 6.283183 9.424774 12.56636

5 15.70795

ΨευδήςΨευδήςΨευδήςΨευδής

3.14159

Page 14: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

Καθιερωμένες συναρτήσεις

Στη Turbo Pascal υπάρχουν καθιερωμένες συναρτήσεις τις οποίες μπορούμε να χρησιμοποιήσουμε.

1. Abs Επιστέφει την απόλυτη τιμή ενός αριθμού.

Π.χ. Abs(-2.5)Επιστρέφει την τιμή 2.5

Page 15: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

2. Sqr Επιστρέφει το τετράγωνο ενός αριθμού.

Π.χ. Sqr(5)

Επιστρέφει το 25.

3. Sqrt Επιστρέφει την τετραγωνική ρίζα ενός αριθμού.

Π.χ. Sqrt(4)

Επιστρέφει τον αριθμό 2.

4. Round Στρογγυλεύει έναν αριθμό. Το αποτέλεσμα είναι πάντα ακέραιος αριθμός. Αν το δεκαδικό μέρος είναι μικρότερο από 0.5, ο αριθμός παίρνει την τιμή του ακέραιου μέρους. Αλλιώς, στρογγυλεύει στον επόμενο ακέραιο.

Π.χ. Round(4.46)

Επιστρέφει τον αριθμό 4

Page 16: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

ΠαραδείγματαΝα γράψετε ένα πρόγραμμα το οποίο να διαβάζει ένα πραγματικό

αριθμό. Στη συνέχεια να υπολογίζετε και να τυπώνετε την τετραγωνική ρίζα του αριθμού.

Program tertagoniki_riza;Uses wincrt;VarX:real;BeginWrite(‘Dose ena arithmo:’);If x>0 then write(‘H riza tou aritmou einai…’,Sqrt(x):8:4)Else write(X:6:2,’Einai arnitikos arithmos kai den exei riza’);End.

Page 17: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

ΠαραδείγματαNα γραφεί ένα πρόγραμμα το οποίο να

υπολογίζει και να τυπώνει τις πραγματικές λύσεις μιας δευτεροβάθμιας εξίσωσης. Διαφορετικά να τυπώνει το μήνυμα “Μιγαδικές ρίζες”.

Χ1,2= (-β±√Δ)/(2α)

Page 18: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

Program Lysi_Deuterovathmias;

Uses wincrt;

Var

A,b,c,D,x1,x2:Real;

Begin

Write(‘Dose tous syntelestes tiw deuterovathmias eksisosis..’);

Readln(a,b,c);

D:=b*b-4*a*c;

If D>0 then

begin

writeln(‘Diakrinousa..’,D:8:2);

x1:=(-b+D)/(2*a); x2:=(-b-D)/(2*a);

writeln(‘X1=‘x1:6:2);

writeln(‘X2=‘x2:6:2);

End

Else

write(‘Diakrinousa…’,D:6:2,’Migadikes rizes’);

End.

Page 19: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

Aσκήσεις1. Να γράψετε ένα πρόγραμμα το οποίο να

υπολογίζει και να τυπώνει τον μέσο όρο των πρώτων Ν-ακεραίων αριθμών.

2. Να γράψετε ένα πρόγραμμα το οποίο θα υπολογίζει και θα τυπώνει το άθροισμα των 25 πρώτων ακεραίων αριθμών.

(α) Χρησιμοποιώντας την εντολή Repeat-until (β) Χρησιμοποιώντας την εντολή While-End.

Page 20: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

3. Nα γραφεί ένα πρόγραμμα που να τυπώνει τον πίνακα πολλαπλασιασμού για τους Ν πρώτους ακέραιους αριθμούς, πολλαπλασιασμένους με τους ακέραιους από το 1 μέχρι το Μ.

4. Να γραφεί ένα πρόγραμμα στο οποίο θα πληκτρολογήσετε διάφορους αριθμούς. Στη συνέχεια θα μετράει πόσοι είναι μεγαλύτεροι από το 10. Το πρόγραμμα να τερματίζετε όταν πληκτρολογηθεί το ‘0’.

Page 21: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

5. Να γράψετε ένα πρόγραμμα που θα υπολογίζει το αποτέλεσμα πολλαπλασιάζοντας την ποσότητα των εμπορευμάτων, επί την τιμή. Ο υπολογισμός θα επαναλαμβάνεται μέχρι να δοθεί ποσότητα ‘0’.

6. Να γράψετε ένα πρόγραμμα που θα κάνει αρίθμηση μέχρι ένα αριθμό που θα καθορίζει ο χρήστης.

π.χ. Αν ο χρήστης καθορίσει να γίνεται αρίθμηση μέχρι το 8, τότε να τυπώνεται:

1 2 3 4 5 6 7 8

Page 22: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

ΑπαντήσειςProgram askisi_1;Uses wincrt;VarAverage:Real;I,Sum,max:Integer;Begin

Write(‘Dose ton arithmo mexri ton opoio tha vreis ton meso oro: ’);readln(max);sum:=0;For I:= 1 to Max DoBeginsum:=sum+IEnd;Average:=sum/max;writeln(‘O mesos oros ton proton ‘,max’ arithmwn einai…’,Average);

End.

Page 23: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

Program Askisi_2_a;Uses wincrt;Var sum,num:Integer;Begin

sum:=0; num:=1;

Repeatsum:=sum+num;num:=num+1

Until num>25;Writeln(‘To athrisma twn 25 prwtwn akeraion

einai…..:’,sum);End.

Page 24: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

Program Askisi_2_b;Uses wincrt;Var sum,num:Integer;Begin

sum:=0; num:=1;

while num<26 Do Begin

sum:=sum+num;num:=num+1

End; Writeln(‘To athrisma twn 25 prwtwn akeraion

einai..’,sum);End.

Page 25: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

Program Askisi_3;Uses wincrt;Var i,j,k,n,m:Integer;Begin

write(‘Dose dyo arithmous gia na kathoriseis to megethos tou pinaka pollaplasiasmou…n, m…:’); Readln(m,n);for i:= 1 to m Dobeginwriteln;for j:= 1 to n Dobegink:=j*I;writeln(j,’x’,I,’=‘,k)EndEnd

End.

Page 26: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

Program Askisi_4;Uses wincrt;VarCount,num:Integer;

begincount:=0;Repeat

write(‘Dose ena arithmo’); write(‘gia na stamatiseis to programma dose to ..0’);

Readln(num);if num>10 then count:=count+1

Until num=0;writeln(‘ Arithmoi megalyteroi tou 10 einai…:’,count)

End.

Page 27: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

Program Askisi_5;Uses wincrt;Varposotita,timi,synolo:real;Begin

write(‘ Dose tin posotita twn emporeumatwn…..’); writeln(‘An dosete ¨0¨ stin posotita, to programma termatizetai’);

readln(posotita);while posotita<> 0 DoBeginwrite(‘Dose tin timi’);readln(timi);synolo:=posotita*timi;writeln;writeln;writeln(‘To synolo se ECU einai…’,synolo:10:2);writeln;write(‘Dose tin posotita…’);readln(posotita);End;

End.

Page 28: ΕΝΤΟΛΕΣ   ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)

Program Askisi_6;Uses wincrt;Vari,arithmos:integer;Beginwriteln(‘Arithmisi apo to 1 mexri to…..);Writeln;write(‘Mexri pion arithmo thelete na ginei I arithmisi;…’);

readln(arithmos);i:=0;while i< arithmos Do

Begini:=i+1;write(i:5);End;

End.