Ο κύκλος με μια παράμετρο έχει ήδη εξεταστεί από εμάς στην ενότητα "Αλγόριθμος" στο θέμα "Τύποι αλγορίθμων".
Χρησιμοποιείται βρόχος με παράμετρο,όταν είναι γνωστό εκ των προτέρων πόσες φορές πρέπει να εκτελεστεί ο βρόχος.

Μορφή εγγραφής κύκλου:

Εδώ για, να κάνω- δεσμευμένες λέξεις (για, πριν, εκτέλεση)

<пар. цикла> - παράμετρος κύκλου - μεταβλητή ακέραιος αριθμόςτύπος (ακέραιος τύπος);
<нач. знач.> - αρχική τιμή - αριθμός ή μεταβλητήακέραιος αριθμόςτύπος (ακέραιος τύπος);
<кон. знач.> - τελική τιμή - αριθμός ή
μεταβλητόςακέραιος αριθμόςτύπος (ακέραιος τύπος);
<оператор> είναι ένας αυθαίρετος τελεστής Pascal.

Παράδειγμα: Για i:=1 έως n κάνω<оператор>
εδώ i είναι η παράμετρος βρόχου
1 - αρχική τιμή
n - τελική τιμή
Εάν χρησιμοποιούνται αρκετοί τελεστές στο σώμα του βρόχου, τότε χρησιμοποιούνται αγκύλες χειριστή: αρχή ... τέλος.
Κατά την εκτέλεση της πρότασης for, η έκφραση αξιολογείται πρώτα<нач.знач.>και εκχωρώντας την τιμή του στη μεταβλητή βρόχου<пар.цикла> := <нач. знач.>. Στη συνέχεια συγκρίνονται<пар.цикла>και <кон.знач.>. Μέχρι να γίνουν ίσες, θα εκτελούνται οι δηλώσεις. Τιμή μεταβλητής βρόχου<нач.знач>αυξάνεται αυτόματα κατά ένα κατά τη διάρκεια του βρόχου.Θα πρέπει να σημειωθεί αμέσως ότι είναι αδύνατο να ορίσετε ένα βήμα κύκλου διαφορετικό από το 1 σε αυτόν τον τελεστή.
Παράδειγμα:
Οι ακόλουθες δηλώσεις βρόχου είναι δυνατές:

1) για i:= 1 έως n κάνω s1;

2) για i:= 3 έως 10 κάνουμε s1;

3) για i:= a έως b κάνει s1;

4) για i:= a έως b do
να αρχίσει

s1;
s2;
...
sn

τέλος;

Εδώ οι s1, s2, s3, ... sn είναι τελεστές βρόχου.

Παράδειγμα:
Γράψτε ένα πρόγραμμα για την εμφάνιση αριθμών από το 1 έως το 10.

Παράδειγμα:
Γράψτε ένα πρόγραμμα για τον υπολογισμό του παραγοντικού ενός αριθμού n, δηλαδή n!. (0!=1)

Επεξήγηση προγράμματος:
Η μεταβλητή n είναι για τον αριθμό που εισάγει ο χρήστης, το παραγοντικό του οποίου πρέπει να βρεθεί. f - μια μεταβλητή στην οποία θα "συσσωρευτεί" η τιμή του παραγοντικού του αριθμού n. i - μεταβλητή βρόχου.
Ορίζεται η αρχική τιμή της μεταβλητής f:= 1.
Μετά αρχίζει ο κύκλος. Η μεταβλητή i αρχικοποιείται σε 1. συγκρίνεται με το τελικό - n (1<= n), если условие истинно, тогда выполняется оператор (в этой программе он один): f:= f*i, 1*1=1; значение переменной цикла увеличивается на 1, т. е. станет равным: i:= i + 1, 1 + 1 = 2 и цикл повторяется.
Όταν η τιμή του i γίνει ίση με n, τότε ο βρόχος θα εκτελεστεί για τελευταία φορά, επειδή η επόμενη τιμή του i θα είναι n + 1, που είναι μεγαλύτερη από την τελική τιμή του n, η συνθήκη i<= n - ложно, цикл не выполняется.

Υπάρχει μια άλλη μορφή της δήλωσης βρόχου For:
Μορφή εγγραφής κύκλου:

Η αντικατάσταση της δεσμευμένης λέξης σε με downto σημαίνει ότι το βήμα της παραμέτρου βρόχου είναι (-1).
Η αλλαγή στην τιμή της παραμέτρου πηγαίνει από μια μεγαλύτερη τιμή σε μια μικρότερη, δηλ.<нач. знач.> <кон. знач.>.

Παράδειγμα:
Οι ακόλουθες δηλώσεις βρόχου είναι δυνατές:

1) για i:= n μέχρι 1 έως s1;

2) για i:= 10 downto 3 do s1;

3) για i:= b κάτω σε a do s1; (υποθέτοντας β>α)

4) για i:= b κάτω σε ένα do
να αρχίσει

S1;
s2;
...
sn

τέλος; (υποθέτοντας β>α)

Εδώ οι s1, s2, s3, ... sn είναι τελεστές βρόχου.

Παράδειγμα: Πρόγραμμα υπολογισμού παραγοντικόΟι αριθμοί μπορούν να συντεθούν χρησιμοποιώντας αυτήν την πρόταση βρόχου.


Καθήκοντα

  1. Δεδομένων 10 αριθμών, εκτυπώστε αυτούς που είναι τέλεια τετράγωνα.
  2. Δεδομένων 10 αριθμών, βρείτε το προϊόν τους.Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.
  3. Δίνονται 10 αριθμοί, βρείτε το άθροισμα των ζυγών αριθμών.Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.
  4. Δίνονται 10 αριθμοί, βρείτε τον αριθμό των αρνητικών.Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.
  5. Δίνονται n πραγματικοί αριθμοί. Βρείτε το μέγιστο και το ελάχιστο.Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.
  6. Δίνονται n πραγματικοί αριθμοί.Να βρείτε τον αριθμητικό μέσο όρο όλων των στοιχείων.Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.
  7. Δίνονται n πραγματικοί αριθμοί.Να βρείτε τον αριθμητικό μέσο όρο αρνητικών και θετικών στοιχείων.Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.
  8. Δίνονται n φυσικοί αριθμοί.Να βρείτε το άθροισμα και το γινόμενο των στοιχείων που είναι πολλαπλάσια του 3 και του 5.Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.
  9. Δίνονται n φυσικοί αριθμοί.Αποσύρωεκείνοι οι αριθμοί των οποίων οι τιμές είναι δυνάμεις του δύο (1, 2, 4, 8, 16, ...).Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.
  10. Δίνονται n φυσικοί αριθμοί.Αποσύρωτους αριθμούς των οποίων οι τιμές βρίσκονται στο τμήμα.Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.
  11. Δίνονται n φυσικοί αριθμοί.Εμφανίστε τους αριθμούς των οποίων οι τιμές είναι τα τετράγωνα κάποιου αριθμού.Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.
  12. Δίνεται φυσικός αριθμός n.Βρείτε το ν 2.Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.
  13. Δίνονται φυσικοί αριθμοί a, n. Βρείτε ένα ν.Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.
  14. Δίνεται φυσικός αριθμός n. Προσδιορίστε την χωρητικότητά του, αυξήστε το πιο σημαντικό ψηφίο του αριθμού κατά 2
  15. Δίνεται φυσικός αριθμός n. Αλλάξτε το πρώτο και το τελευταίο ψηφίο ενός αριθμού
  16. Δίνεται φυσικός αριθμός n. Τα ψηφία ενός αριθμού που είναι πολλαπλάσια του 2 αντικαθίστανται από το 0.
  17. Δίνεται φυσικός αριθμός n. Τα ψηφία ενός αριθμού που είναι πολλαπλάσια του 3 αντικαθίστανται από το 1.
  18. Δίνεται φυσικός αριθμός n. Υπολογίστε το γινόμενο (2n-1)*(3n-1)*(4n-1)*...*(10n-1).Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.
  19. Υπολογίστε το άθροισμα 2+4+6+...+100.Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.
  20. Δίνεται φυσικός αριθμός n, πραγματικός x. Υπολογίστε το γινόμενο x+x/2+x/3+...+x/n.Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.
  21. Δίνεται φυσικός αριθμός n. Υπολογίστε P=(1-1/2)(1-1/3)...(1-1/n), όπου n>2.Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.
  22. Δίνεται φυσικός αριθμός n. Υπολογίστε P=(1+x)/n+(2+x)/(n-1)+...+(n+x)/1.Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.
  23. Δίνονται n φυσικοί αριθμοί. Υπολογίστε το άθροισμα μιας σειράς1+x/1!+x 2 /2!+x 3 /3!+ ...+x n/n!. Κάντε ένα μπλοκ διάγραμμα και προγραμματίστε.

Εντολή για βρόχουλοποιεί μια αλγοριθμική δομή βρόχος με παράμετρο(ή βρόχος με μετρητή). Ο βρόχος for χρησιμοποιείται όταν στο πρόγραμμα, πριν από την εκτέλεση των εντολών του βρόχου, ο αριθμός των βημάτων αυτού του βρόχου γίνεται γνωστός (ή προκαθορισμένος). Στο διάγραμμα ροής, η δήλωση for απεικονίζεται ως εξής:

Σύνταξη:

Για ( αρχικοποίηση; κατάσταση; τροποποίηση) ( Οδηγίες σώματος βρόχου; )

Εάν υπάρχει μία εντολή στο σώμα του βρόχου, τότε η ( ) μπορεί να παραλειφθεί. Η μεταβλητή παραμέτρου κύκλου (μετρητής) μπορεί να είναι οποιουδήποτε αριθμητικού τύπου. Αυτό κάνει τον βρόχο C++ for εξίσου ευέλικτο με έναν βρόχο while. Στην ενότητα τροποποίησης, η λειτουργία αύξησης (ή μείωσης) postfix ή προθέματος χρησιμοποιείται πιο συχνά, αλλά μπορεί να χρησιμοποιηθεί οποιαδήποτε έκφραση εκχώρησης που αλλάζει την τιμή της παραμέτρου βρόχου. Ο βρόχος λειτουργεί ως εξής:

  • Στην αρχή γίνεται η περιγραφή και η αρχικοποίηση της μεταβλητής μετρητή.
  • Στη συνέχεια, ελέγξτε τη συνθήκη: εάν η παράσταση έχει μια τιμή αληθής, θα υπάρξει επανάληψη
  • Μετά την εκτέλεση των εντολών του σώματος του βρόχου, η τιμή του μετρητή τροποποιείται

Σημείωση: στην C++ είναι κανόνας να γίνεται η περιγραφή της μεταβλητής του μετρητή στην κεφαλίδα του βρόχου. Αλλά αυτό δεν είναι απαραίτητο, ειδικά εάν σκοπεύετε να αρχικοποιήσετε πολλές μεταβλητές στην ενότητα προετοιμασίας όπως υλοποιείται στο Πρόγραμμα 9.2. Ωστόσο, η χρήση μιας δήλωσης μεταβλητής μετρητή στην κεφαλίδα βρόχου έχει ως αποτέλεσμα μια δήλωση τοπικής μεταβλητής που καταστρέφεται αυτόματα όταν ο βρόχος τερματίζεται. Επομένως, εκτός εάν είναι απολύτως απαραίτητο, η περιγραφή της μεταβλητής μετρητή εκτός του βρόχου for δεν θα πρέπει να εκτελείται.
Ενώ εκτελείται ο βρόχος for, δεν συνιστάται η αλλαγή των τελεστών στις εκφράσεις της κεφαλίδας του βρόχου - αυτό θα οδηγήσει σε κάθε είδους σφάλματα! Αλλά οι τιμές των μεταβλητών (ή σταθερών), συμπεριλαμβανομένων μεταβλητές τιμές(μετρητής), μπορείτε να χρησιμοποιήσετε. Εξετάστε ένα κλασικό παράδειγμα.

Πρόγραμμα 9.1Δίνεται φυσικός αριθμός Ν. Εκτυπώστε όλους τους διαιρέτες αυτού του αριθμού.

#περιλαμβάνω << "N = "; cin >>Ν; για (int i = 2; i< N / 2; i++) { if (N % i == 0) cout << i << " "; } return 0; } N = 16000 2 4 5 8 10 16 20 25 32 40 50 64 80 100 125 128 160 200 250 320 400 500 640 800 1000 1600 2000 3200 4000

Χρησιμοποιώντας τη δήλωση συνέχειας σε έναν βρόχο for

Όταν χρησιμοποιείτε τη δήλωση συνέχεια σε έναν βρόχο for, είναι απαραίτητο να λάβετε υπόψη τις ιδιαιτερότητες της λειτουργίας αυτού του βρόχου:

  • Οι δηλώσεις που ακολουθούν θα παραβλεφθούν
  • Στη συνέχεια ο μετρητής τροποποιείται.
  • Μετάβαση στην επόμενη επανάληψη (διαφορετικά, έλεγχος της συνθήκης)

Ας το δείξουμε αυτό με ένα παράδειγμα: int main() ( for (int i = 1; i< 20; i++) { if (i % 2 == 0) continue; cout << i << " "; } 1 3 5 7 9 11 13 15 17 19

Σημείωση. Παρακαλώ σημειώστε: αν και η έξοδος των αριθμών ανά συνθήκη παραλείπεται, ο μετρητής αυξάνεται. Αυτό το παράδειγμα είναι μόνο για λόγους επεξήγησης, δεν πρέπει να προγραμματίσετε τον βρόχο έτσι! Αυτό το πρόβλημα επιλύεται καλύτερα με τον ακόλουθο τρόπο:

int main() ( for (int i = 1; i< 20; i += 2) cout << i << " ";

Πολλαπλές εκφράσεις στην ενότητα προετοιμασίας και τροποποίησης

Όπως σημειώσαμε νωρίτερα, θα πρέπει να υπάρχουν τρεις ενότητες στην κεφαλή της δήλωσης για. Οι εκφράσεις σε αυτές τις ενότητες μπορούν να παραληφθούν, αλλά το ";" δεν μπορεί να παραλειφθεί. . Μετά από όλα, μπορείτε μόνο να φύγετε? . Τίτλος με τη μορφή:

Για (;;) ( ... )

είναι η επικεφαλίδα ενός «άπειρου» βρόχου. (Η έξοδος από τον βρόχο πρέπει να προγραμματιστεί μέσα στο σώμα του βρόχου).
Η C++ υποστηρίζει πολλαπλές εκφράσεις στις ενότητες αρχικοποίησης και τροποποίησης της κεφαλίδας της δήλωσης for. Σε αυτή την περίπτωση, η προϋπόθεση για τη συνέχιση του κύκλου πρέπει να είναι μία!
Για παράδειγμα. Δήλωση προβλήματος: Υπολογίστε το παραγοντικό ενός αριθμού που δεν υπερβαίνει το 20.
Πρόγραμμα 9.2

#περιλαμβάνω χρησιμοποιώντας namespace std? int main() ( ανυπόγραφο long long n; int i, k; cout<< "k = "; cin >>k; // 0<= k <= 20 for(n = 1, i = 1; i <= k; n *= i, ++i); cout << k << "! = " << n << endl; return 0; } k = 20 20! = 2432902008176640000

Σημείωση: σημειώστε ότι η ροή εξόδου στη γραμμή 12 δεν αναφέρεται στο σώμα του βρόχου! (Στο τέλος του τίτλου - ;). Έτσι, αυτός ο βρόχος έχει μια κενή εντολή στο σώμα και όλες οι εκφράσεις αξιολογούνται στην κεφαλίδα. Το πρόγραμμα 9.2 υπολογίζει σωστά το παραγοντικό ενός αριθμού από το 0 έως το 20.

Βρόχος για βάση εύρους

Για να επαναλάβετε τα στοιχεία ενός πίνακα ή κοντέινερ, πρέπει να εκτελέσετε τον ίδιο τύπο ενεργειών, ενώ χρησιμοποιείτε δυσκίνητο κώδικα. Για να απλοποιηθεί η εργασία με κοντέινερ σε C++, υπάρχει μια ειδική μορφή του βρόχου for - βάσει εύρους για (βρόχος για με βάση το εύροςή εύρος για).
Σύνταξη:

Για ( Ενα δ : sequence_name) loop_statement

Χρησιμοποιώντας το range-based for σε ένα παράδειγμα C-array:
Πρόγραμμα 9.3

#περιλαμβάνω χρησιμοποιώντας namespace std? int main() ( int x ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ); for (auto &s: x) ( cout<< s << " "; } return 0; }

Για να αλλάξουν τα στοιχεία του πίνακα, η μεταβλητή s πρέπει να είναι μεταβλητή αναφοράς (όπως στο παραπάνω παράδειγμα). Εάν η μεταβλητή δεν είναι αναφορά, τότε τα δεδομένα θα αντιγραφούν. Για αυτόματη εξαγωγή συμπερασμάτων τύπου, ο αυτόματος προσδιοριστής χρησιμοποιείται σε αυτόν τον βρόχο. Το range-based for έχει έναν περιορισμό για την εργασία με δυναμικούς πίνακες: δεν υποστηρίζει αλλαγή μεγέθους πίνακα, καθώς περιέχει έναν σταθερό δείκτη τέλους πίνακα. Όταν ασχολείστε με πίνακες που έχουν σταθερό μέγεθος, το εύρος για είναι μια εξαιρετική και ασφαλής εναλλακτική λύση σε σχέση με την κανονική για .

Φωλιασμένο για βρόχους

Όπως και άλλες εντολές βρόχου, το for υποστηρίζει τη δομή των ένθετων βρόχων. Η χρήση ένθετων βρόχων για την οργάνωση της εισόδου και της εξόδου των δισδιάστατων πινάκων είναι πολύ πιο συμπαγής από τη χρήση βρόχου while.
Ωστόσο, κατά τη διέλευση τέτοιων πινάκων, η χρήση της εντολής if θα πρέπει να αποφεύγεται. Συχνά, η εργασία μπορεί να υλοποιηθεί πιο ορθολογικά με το χειρισμό των δεικτών (μεταβλητές βρόχου i και j). Δηλαδή να εξαρτηθεί η αλλαγή του ενός δείκτη από την τιμή του άλλου. Ας εξετάσουμε δύο παραδείγματα.
Πρόγραμμα 9.4Δίνεται τετράγωνος πίνακας μεγέθους n, τα στοιχεία του οποίου είναι ίσα με 0. Συμπληρώστε τα στοιχεία κάτω και στην κύρια διαγώνιο με ένα.

#περιλαμβάνω χρησιμοποιώντας namespace std? int main() ( int n; cout<< "n = "; cin >>n; intmas[n][n]; // Συμπληρώστε με μηδενικά για(int i = 0; i< n; i++) for(int j = 0; j < n; j++) mas[i][j] = 0; // Реализация for(int i = 0; i < n; i++) for(int j = 0; j <= i; j++) mas[i][j] = 1; // Вывод for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { cout.width(2); cout << mas[i][j]; } cout << "\n"; } return 0; } n = 10 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1

Πρόγραμμα 9.5Γράψτε ένα πρόγραμμα για να γεμίσετε έναν πίνακα με τους αριθμούς του τριγώνου του Pascal και να εξάγετε αυτόν τον πίνακα. Το τρίγωνο του Πασκάλ μοιάζει με:


Αυτό το τρίγωνο έχει 1 στην κορυφή και τις πλευρές (στο πρόγραμμα 9.5 το τρίγωνο είναι "ξαπλωμένο στην πλευρά του" - οι πλευρές του τριγώνου: η πρώτη στήλη και η κύρια διαγώνιος). Κάθε αριθμός είναι ίσος με το άθροισμα των δύο αριθμών από πάνω του. Οι γραμμές του τριγώνου είναι συμμετρικές ως προς τον κατακόρυφο άξονα και περιέχουν διωνυμικούς συντελεστές.

#περιλαμβάνω χρησιμοποιώντας namespace std? int main() ( int n; cout<< "n = "; cin >>n; int pass[n][n]; για (int i = 0; i< n; i++) for (int j = 0; j < n; j++) pas[i][j] = 0; pas = 1; for (int i = 1; i < n; i++) { pas[i] = 1; for (int j = 1; j <= i; j++) { pas[i][j] = pas + pas[j]; } } for (int i = 0; i < n; i++) { for (int j = 0; j <= i; j++) { cout.width(4); cout << pas[i][j]; } cout << "\n"; } return 0; } n = 12 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 1 10 45 120 210 252 210 120 45 10 1 1 11 55 165 330 462 462 330 165 55 11 1

Ερωτήσεις
  1. Μπορεί μια πρόταση βρόχου for να αντικατασταθεί από μια εντολή βρόχου while σε ένα πρόγραμμα; Είναι πάντα δυνατό να γίνει αυτό;
  2. Πότε είναι καλύτερο να χρησιμοποιήσετε τη δήλωση for για επαναφορά; ενώ?
  3. Είναι δυνατές οι ακόλουθες εκφράσεις στην κεφαλίδα της δήλωσης for: α) για (;a > b && !(a % 2);) β) για (a > b;;) γ) για (;;i = 0) δ) για (;i = 0;) ε) για (;;i++, --b) στ) για (--i;;) g) για (b = 0; b != a;) ?
  4. Η μεταβλητή i είναι η παράμετρος του εξωτερικού βρόχου και j είναι η παράμετρος του ένθετου. Θα είναι διαθέσιμη η μεταβλητή j στον εξωτερικό βρόχο; είμαι σε ένθετο βρόχο;
Σχολικό βιβλίο
Εργασία για το σπίτι
  1. Οπισθεν 29. Γράψτε ένα πρόγραμμα που εισάγει φυσικούς αριθμούς ένακαι σικαι στην οθόνη εμφανίζονται όλοι οι πρώτοι αριθμοί στην περιοχή από έναπριν σι(Ιδέα αλγορίθμου Πρόγραμμα 8.5)
  2. Οπισθεν 30. Τέλειος αριθμός είναι ένας αριθμός ίσος με το άθροισμα όλων των διαιρετών του μικρότερων από τον εαυτό του (για παράδειγμα, ο αριθμός 6 = 1 + 2 + 3). Γράψτε ένα πρόγραμμα που να παίρνει έναν φυσικό αριθμό Ν και να καθορίζει αν το Ν είναι τέλειο.
  3. Γράψτε ένα πρόγραμμα που εμφανίζει έναν n x n τετράγωνο αριθμητικό πίνακα που μοιάζει με αυτό για n = 10: 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 4 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 9 * * * * * * * * * * * 10
Βιβλιογραφία
  1. Laforet R. Αντικειμενοστραφής Προγραμματισμός στη C++ (4η έκδ.). Πέτρος: 2004
  2. Πράτα, Στέφανος. Γλώσσα προγραμματισμού C++. Διαλέξεις και ασκήσεις, 6η έκδ.: Περ. από τα Αγγλικά. - Μ.: Ι.Δ. William, 2012
  3. Lippman B. Stanley, Josy Lajoye, Barbara E. Moo. Γλώσσα προγραμματισμού C++. Βασικό μάθημα. Εκδ. 5η. Μ: LLC «Ι. D. Williams», 2014
  4. Elline A. C++. Από lamer σε προγραμματιστή. Αγία Πετρούπολη: Πέτρος, 2015
  5. Schildt G. C++: Basic course, 3rd ed. Μ.: Williams, 2010



Οι κύκλοι κατέχουν ξεχωριστή θέση στο Turbo Pascal. Αρχίζουν να μελετούν αμέσως μετά την επεξεργασία των δεξιοτήτων των πληροφοριών εισόδου-εξόδου στην οθόνη. Εξάλλου, οι περισσότερες εργασίες καταλήγουν στο γεγονός ότι οι κύκλοι με μια παράμετρο και άλλες κατασκευές βοηθούν στη διευκόλυνση της εγγραφής και της λειτουργίας ενός συγκεκριμένου μπλοκ προγράμματος.

Ποικιλίες κύκλων

Υπάρχουν τρεις ποικιλίες συνολικά:

  • με την παράμετρο
  • με προϋπόθεση
  • με μετασυνθήκη.

Βρόχοι με μια παράμετρο, αλλιώς γνωστή ως For … to … do ή For … downto …. κάντε, επαναλάβετε επανειλημμένα μια συγκεκριμένη σειρά ενεργειών. Κατ 'αρχήν, άλλες ποικιλίες χρησιμοποιούνται για τον ίδιο σκοπό, μόνο στο for-loop ο αριθμός των βημάτων είναι γνωστός εκ των προτέρων.

Στις άλλες δύο κατασκευές (While και Repeat), ο αριθμός των επαναλήψεων είναι αρχικά άγνωστος. Επομένως, κατά τη μελέτη της εργασίας, είναι ήδη απαραίτητο να κατανοήσουμε ποιος κύκλος θα χρησιμοποιηθεί.

Βασικοί ορισμοί για το θέμα

Οι βρόχοι με παραμέτρους είναι πολλαπλές επαναλήψεις. Ο μετρητής είναι ο κύριος δείκτης με τον οποίο εκτελείται η δεδομένη κατασκευή. Τα όρια του διαστήματος δείχνουν τα όρια εντός των οποίων θα εκτελεστούν ορισμένες επαναλήψεις. Παρεμπιπτόντως, δεν είναι απολύτως απαραίτητο η αρχική τιμή να είναι ίση με 1. Ο χρήστης ορίζει ανεξάρτητα και τα δύο όρια του διαστήματος. Το σώμα του βρόχου είναι ένα σύνολο εντολών για τις οποίες έχει ήδη καθοριστεί ο αριθμός των επαναλήψεων.

Η έννοια των "βρόχων με παραμέτρους" σημαίνει ότι σε αυτήν την κατασκευή ελέγχεται μια συνθήκη, μετά την οποία εκτελείται ένα σύνολο επαναλήψεων. Ο μετρητής αυξάνεται (ή μειώνεται) και όλα επαναλαμβάνονται. Το σώμα του βρόχου θα εκτελεστεί όσο η συνθήκη είναι αληθής.

Για ... να ... κάνω: αλγόριθμος εργασίας, σύνταξη

Όπως αναφέρθηκε ήδη, οι κύκλοι με μια παράμετρο χρησιμοποιούνται σε εργασίες στις οποίες υποδεικνύεται ένα "διάστημα" στο οποίο θα λειτουργήσει. Έτσι, θα μπορούσε να είναι μια σειρά από αριθμούς, ημέρες της εβδομάδας, γραμμές ενός ποιήματος κ.λπ.

Υπάρχουν 2 τύποι σχεδίασης: για αύξηση του μετρητή και για μείωση του. Η πρώτη δομή θα γραφτεί ως εξής:

Για εξερχόμενη μεταβλητή := σύνορο 1προς την σύνορο 2κάνω

σώμα βρόχου;

Εδώ: αναφ. μεταβλητόςπου δηλώνεται από τον χρήστη στην αρχή ενός προγράμματος ή μπλοκ· περίγραμμα 1 και περίγραμμα 2- αρχική και τελική τιμή του διαστήματος. σε σώμα κύκλοςκαθορίζει ένα σύνολο ενεργειών που πρέπει να εκτελεστούν από το πρόγραμμα. Πρέπει να θυμόμαστε ότι εάν το σώμα του βρόχου περιέχει μόνο 1 εντολή, τότε οι αγκύλες χειριστή ξεκινούν ... τέλος μπορούν να παραληφθούν. Σε αυτή την έκδοση του σχεδίου, ο μετρητής, δηλαδή<исх.переменная>, θα αυξηθεί σε προσαυξήσεις 1.

Για εξερχόμενη μεταβλητή:= σύνορο 1μέχρι σύνορο 2κάνω

σώμα βρόχου;

Εδώ είναι η αναφ. η μεταβλητή θα μειωθεί σε προσαυξήσεις του 1.

Το σχήμα του βρόχου με την παράμετρο For ... to ... do θα μοιάζει με αυτό:

  • Η τιμή του ανώτατου ορίου του διαστήματος ορίζεται, δηλ. σύνορο 2.
  • Μεταβλητή πηγήεκχωρείται η τιμή της παραμέτρου σύνορο 1.
  • Η κατάσταση ελέγχεται: ακατέργαστη μεταβλητή ≤ όριο 2.
  • Με την παραλαβή του αποτελέσματος Αληθής (Αληθής) εκτελείται το σώμα του βρόχου.
  • Ο μετρητής αυξάνεται κατά 1.
  • Τα βήματα 3-5 εκτελούνται ακριβώς μέχρι να είναι αληθής η συνθήκη: μεταβλητή πηγή > όριο 2. Μόλις συμβεί αυτό, ο βρόχος εξέρχεται και ο έλεγχος μεταφέρεται στην εντολή που ακολουθεί αυτή την κατασκευή.

Στο Για ... κάτω σε ... κάνω, ο αλγόριθμος εργασίας είναι παρόμοιος με τον παραπάνω, με εξαίρεση ορισμένα σημεία:

  • Στην 3η παράγραφο ελέγχεται η συνθήκη: ακατέργαστη μεταβλητή ≥ όριο 2.
  • Στην 5η γραμμή του αλγορίθμου, ο μετρητής μειώνεται κατά 1.
  • Στην 6η παράγραφο, οι εντολές 3-5 θα εκτελεστούν μέχρι να ικανοποιηθεί η συνθήκη: εξερχόμενη μεταβλητή< граница 2.

Όλα τα άλλα είναι παρόμοια και στους δύο αλγόριθμους εργασίας.

Μπλοκ διάγραμμα βρόχου με παράμετρο

Οι βρόχοι με μια παράμετρο έχουν την ακόλουθη μορφή μπλοκ διαγράμματος (αν και έχει ήδη παρουσιαστεί παραπάνω). Μια απλοποιημένη οργάνωση σχεδιασμού εμφανίζεται επίσης εδώ.

Βασικές απαιτήσεις για κύκλο με παράμετρο

Οι βρόχοι με παραμέτρους απαιτούν ορισμένα είδη συνθηκών.

  • Ο μετρητής και τα όρια του εύρους (δηλαδή, μεταβλητή πηγής, δεσμευμένο 1 και δεσμευμένο 2) πρέπει να είναι του ίδιου τύπου δεδομένων. Εάν υπάρχει μόνο συμβατότητα μεταξύ των τιμών έναρξης και τέλους του τμήματος και της αρχικής μεταβλητής, τότε το πρόγραμμα ενδέχεται να συμπεριφέρεται εσφαλμένα, καθώς τα όρια θα μετατραπούν σύμφωνα με τον τύπο δεδομένων της αρχικής παραμέτρου.
  • Ο τύπος δεδομένων στον οποίο πρέπει να ανήκουν οι τιμές των παραμέτρων πρέπει να είναι ακέραιος. Αποθαρρύνεται ιδιαίτερα η χρήση του πραγματικού τύπου.
  • Δεν είναι επιθυμητό να αλλάξετε την τιμή της αρχικής παραμέτρου μεταβλητής στο σώμα του βρόχου. Διαφορετικά, ο χρήστης δύσκολα θα μπορεί να παρακολουθεί πιθανά σφάλματα που έχουν εμφανιστεί.
  • Σε αντίθεση με άλλα είδη βρόχων, στο Για … έως … do ή Για … κάτω σε … το βήμα δεν μπορεί να αλλάξει σε παράμετρο διαφορετική από 1.

Turbo Pascal: πώς να ξεφύγετε από έναν βρόχο

Αρκετά συχνά υπάρχουν προβλήματα στα οποία εμφανίζεται ο βρόχος, δηλαδή η συνθήκη που ελέγχεται είναι πάντα αληθής. Η διαδικασία διακοπής βοηθά στην έξοδο από βρόχους με προϋπόθεση, μετασυνθήκη, παράμετρο. Δηλαδή, η εργασία τους τερματίζεται νωρίτερα.

Οι βρόχοι παραμέτρων Pascal (των οποίων ο προγραμματισμός προϋποθέτει την "αιώνια" αλήθεια της συνθήκης) μπορούν να σταματήσουν με Continue. Εδώ, η εργασία ρυθμίζεται ως εξής: η τρέχουσα επανάληψη ολοκληρώνει την εκτέλεσή της νωρίτερα από το χρονοδιάγραμμα, ο έλεγχος μεταφέρεται στην επόμενη εντολή, αλλά χωρίς έξοδο από τον βρόχο.

Η διαδικασία Exit είναι απαραίτητη για να ολοκληρωθεί η εργασία ενός συγκεκριμένου μπλοκ στον κώδικα του προγράμματος. Καλείται μέσα σε μια διαδικασία (συνάρτηση) και την ίδια στιγμή σταματάει αμέσως η εκτέλεση αυτού του «κομματιού». Εάν η Έξοδος βρίσκεται στο κύριο μπλοκ του προγράμματος, τότε τερματίζει την εργασία του.

Η διαδικασία διακοπής μειώνει την αρχή λειτουργίας στα εξής: το πρόγραμμα τελειώνει εντελώς.

Παραδείγματα εργασιών με λύση

Μετά τη μελέτη του θέματος "Βρόχοι με μια παράμετρο στο Pascal", θα είναι χρήσιμο για τον χρήστη να μελετήσει πρώτα τα παραδείγματα και στη συνέχεια να εκπαιδευτεί να γράψει τον κώδικα μόνος του. Οι απλές εργασίες βοηθούν τον μελλοντικό προγραμματιστή να μάθει τη θεωρία στην πράξη και στη συνέχεια να την εφαρμόσει με επιτυχία. Στο θέμα "Βρόχοι με μια παράμετρο", παραδείγματα προβλημάτων με λύση μπορούν να βρεθούν τόσο εύκολα όσο και πολύπλοκα. Ακολουθούν 3 εργασίες στις οποίες αναλύονται οι αλγόριθμοι εργασίας και δίνονται επεξηγήσεις και σχόλια για κάθε λύση.

Εργασία 1

Δίνεται ένας δισδιάστατος πίνακας φυσικών αριθμών στο εύρος , επιλεγμένος τυχαία. Βρείτε τον αριθμό όλων των διψήφιων αριθμών των οποίων το άθροισμα ψηφίων είναι πολλαπλάσιο του 2.

Αλγόριθμος δράσης:

  1. Δημιουργήστε έναν δισδιάστατο πίνακα.
  2. Ελέγξτε κάθε αριθμό για συμμόρφωση με τις προϋποθέσεις:

α) αν 9< Х < 100, то разделить его нацело на 10 посредством div;

β) εξάγετε το δεύτερο ψηφίο του αριθμού διαιρώντας με mod.

γ) αθροίστε τους επισημασμένους αριθμούς.

δ) διαιρέστε με mod το δεδομένο άθροισμα με 2.

ε) εάν το αποτέλεσμα είναι 0, τότε ο μετρητής αυξάνεται κατά 1.

Εργασία 2

Δίνεται ένας μονοδιάστατος πίνακας ακέραιων στοιχείων. Βρείτε τον αριθμό των θετικών αριθμών.

Αλγόριθμος δράσης:

  1. Δημιουργήστε μια σειρά από ακέραια στοιχεία που δημιουργούνται με τυχαία.
  2. Συνδέστε το IF στον βρόχο με την παράμετρο, η οποία θα ελέγξει το δεδομένο στοιχείο για συμμόρφωση με την συνθήκη: X>0.
  3. Εάν πληρούται η συνθήκη, τότε ο μετρητής αυξάνεται κατά 1.
  4. Μετά τον βρόχο, η προκύπτουσα τιμή μετρητή θα πρέπει να εμφανίζεται στην οθόνη.

Τα δεδομένα σε παρένθεση () είναι σχόλια. Στη γραμμή 11, μπορείτε να εμφανίσετε τον πίνακα στην οθόνη με δύο τρόπους: αφήστε ένα κενό μεταξύ των αριθμών ή εκχωρήστε έναν ορισμένο αριθμό κελιών για κάθε στοιχείο (σε αυτήν την περίπτωση, υπάρχουν 5 από αυτά).

Στη γραμμή 12, η ​​μεταβλητή μετρητή μπορεί επίσης να αυξηθεί με δύο τρόπους: είτε προσθέστε 1 στην προηγούμενη τιμή είτε χρησιμοποιήστε την τυπική συνάρτηση Inc.

Εργασία 3

Δίνεται τετράγωνος πίνακας. Βρείτε τον αριθμό των θετικών στοιχείων στην κύρια διαγώνιο.

Επεξηγήσεις:

Σε μια σειρά αριθμών, η κύρια διαγώνιος εκτείνεται από την επάνω αριστερή γωνία προς την κάτω δεξιά. Η ιδιαιτερότητά του είναι το γεγονός ότι οι δείκτες σειρών και στηλών είναι ίδιοι. Επομένως, αρκεί να οργανώσετε 1 κύκλο για να περάσετε τις γραμμές χωρίς να επαναλάβετε τα υπόλοιπα στοιχεία.

Αλγόριθμος δράσης:

  1. Δημιουργήστε έναν τετράγωνο πίνακα.
  2. Ορίστε τη μεταβλητή που είναι υπεύθυνη για την καταμέτρηση θετικών στοιχείων σε "0".
  3. Κάντε έναν κύκλο για να δημιουργήσετε έναν τετράγωνο πίνακα.
  4. Οργανώστε έναν βρόχο για να ελέγξετε τη συνθήκη: εάν ο αριθμός στην κύρια διαγώνιο είναι >0, τότε ο μετρητής αυξάνεται κατά 1.
  5. Μετά το τέλος του βρόχου, εμφανίστε την τιμή της μεταβλητής που αποθηκεύει τον αριθμό των θετικών στοιχείων στην οθόνη.

Αντιπαράθεση δύο γλωσσών προγραμματισμού: C και Turbo Pascal

Κατά κανόνα, ένας προγραμματιστής που σέβεται τον εαυτό του γνωρίζει πολλές γλώσσες. Για παράδειγμα, μπορεί να είναι C ++, Turbo Pascal, Delphi, Java κ.λπ. Η αντίθεση των δύο τους εκφράστηκε ξεκάθαρα στη δεκαετία του '80. (C και turbo pascal). Στα τέλη του 20ου αιώνα, ο ίδιος αγώνας παρατηρήθηκε μεταξύ C++ και Java.

Στον εικονικό χώρο, ανάμεσα σε τρεις δωδεκάδες γλώσσες προγραμματισμού, διακρίνονται τρία από τα πιο φωτεινά ζεύγη, η αντίθεση των οποίων εξέπληξε τα μεγαλύτερα μυαλά του κυβερνοχώρου: Algol-60 και Fortran, Pascal και C, Java και C ++. Φυσικά, αυτά τα συναισθήματα είναι υποκειμενικά, αλλά κάποια στιγμή κάποιος από το ζευγάρι ήταν ο ηγέτης. Αυτό οφειλόταν στις απαιτήσεις του κλάδου και στην ανάγκη για ένα συγκεκριμένο προϊόν λογισμικού. Στη δεκαετία του '70. Ο Fortran "κυβέρνησε τον κόσμο", στα 80s - Turbo Pascal, στα 90s - C ++. Κανείς τους βέβαια δεν «πέθανε». Αντίθετα, έχουν εξελιχθεί σε βελτιωμένα προϊόντα λογισμικού.

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

Είναι ενδιαφέρον ότι οι προγραμματιστές του Turbo Pascal (Παλαιός Κόσμος) χρησιμοποίησαν τα αποτελέσματα των εξελίξεων Αμερικανών επιστημόνων, ενώ στον Νέο Κόσμο εφάρμοσαν ενεργά τα αποτελέσματα της έρευνας από Ευρωπαίους ειδικούς. Στην Ευρώπη, οι προγραμματιστές υποστηρίζουν περισσότερο την καθαρότητα και τη συμπαγή χρήση των γλωσσών προγραμματισμού, ενώ τα αμερικανικά μυαλά τείνουν να χρησιμοποιούν νέες τάσεις στη σύνταξη κώδικα.

Ένας βρόχος με μια παράμετρο έχει την ακόλουθη μορφή:

for (αρχικοποίηση, έκφραση, τροποποιήσεις) δήλωση;

Αρχικοποίησηχρησιμοποιείται για να δηλώσει και να εκχωρήσει αρχικές τιμές στις τιμές που χρησιμοποιούνται στον βρόχο. Σε αυτό το μέρος, μπορείτε να γράψετε πολλές εντολές διαχωρισμένες με κόμμα (η λειτουργία "διαδοχική εκτέλεση"), για παράδειγμα, ως εξής:

για (int i = 0, j = 2; ...

για (k=1, m=0; ...

Το εύρος των μεταβλητών που δηλώνονται στο τμήμα προετοιμασίας βρόχου είναι ο βρόχος 1 . Η αρχικοποίηση εκτελείται μία φορά στην αρχή της εκτέλεσης του βρόχου.

Εκφρασηορίζει μια συνθήκη εκτέλεσης βρόχου: εάν το αποτέλεσμά της, cast to bool , είναι αληθές, ο βρόχος εκτελείται. Ο βρόχος με μια παράμετρο υλοποιείται ως βρόχος με μια προϋπόθεση.

Τροποποιήσειςεκτελούνται μετά από κάθε επανάληψη του βρόχου και συνήθως χρησιμοποιούνται για την αλλαγή των παραμέτρων του βρόχου. Στο τμήμα τροποποίησης, μπορείτε να γράψετε πολλούς τελεστές διαχωρισμένους με κόμμα. Απλό ή σύνθετο χειριστήςείναι το σώμα του βρόχου. Οποιοδήποτε μέρος της δήλωσης for μπορεί να παραλειφθεί (αλλά τα ερωτηματικά πρέπει να μείνουν στη θέση τους!).

Παράδειγμα (τελεστής που υπολογίζει το άθροισμα των αριθμών από το 1 έως το 100):

για (Int i = 1, s = 0; 1<=100; i++) s += i;

Παράδειγμα (το πρόγραμμα εκτυπώνει έναν πίνακα τιμών συναρτήσεων y \u003d x 2 +1στο εισαγόμενο εύρος):

#περιλαμβάνω

float Xn, Xk, Dx, X;

printf("Εισαγάγετε το εύρος και την αύξηση του ορίσματος: ");

scanf("%f%f%f", &Xn, &Xk, &Dx);

printf("|X|Y|\n");

για (X = Xn; X<=Xk; X+=Dx)

printf (" | %5.2f | %5.2f |\n", X*X + 1);

Παράδειγμα (το πρόγραμμα βρίσκει όλους τους διαιρέτες ενός θετικού ακέραιου αριθμού):

#περιλαμβάνω int main()(

int num, half, div;

cout<< “\n Введите число: "; cin >>αριθμός;

για (μισό = αρίθμηση / 2, div = 2; div<= half; div++)

αν (!(αριθμός %div))cout<< div <<"\n";

Τα δύο τελευταία παραδείγματα εκτελούν τις ίδιες ενέργειες με τα παραδείγματα για τον βρόχο με μια προϋπόθεση, αλλά είναι γραμμένα πιο συμπαγή και καθαρά: όλες οι ενέργειες που σχετίζονται με τον έλεγχο του βρόχου εντοπίζονται στην κεφαλίδα του.

Οποιοσδήποτε βρόχος while μπορεί να μεταφερθεί στον αντίστοιχο βρόχο for, και αντίστροφα, ως εξής:

για (b1: b2; b3) τελεστή b1;

ενώ (b2)( δήλωση; b3;)

Κοινός σφάλματα κατά τον προγραμματισμό κύκλων -η χρήση μη αρχικοποιημένων μεταβλητών στο σώμα του βρόχου και η εσφαλμένη εισαγωγή της συνθήκης εξόδου από τον βρόχο.

q ελέγξτε εάν σε όλες τις μεταβλητές που βρίσκονται στη δεξιά πλευρά των δηλώσεων εκχώρησης στο σώμα του βρόχου έχουν εκχωρηθεί αρχικές τιμές πριν από αυτό (και επίσης εάν είναι δυνατή η εκτέλεση άλλων εντολών).


q ελέγξτε εάν τουλάχιστον μία μεταβλητή που περιλαμβάνεται στη συνθήκη εξόδου βρόχου αλλάζει στον βρόχο.

q να προβλέπει μια έξοδο έκτακτης ανάγκης από τον βρόχο όταν φτάσει σε έναν ορισμένο αριθμό επαναλήψεων.

q και, φυσικά, μην ξεχνάτε ότι εάν χρειάζεται να εκτελέσετε περισσότερες από μία εντολές στο σώμα του βρόχου, πρέπει να τις περικλείσετε σε σγουρά άγκιστρα.

Οι δηλώσεις βρόχου είναι εναλλάξιμες, αλλά μερικές συστάσειςεπιλέγοντας το καλύτερο σε κάθε περίπτωση.

Η εντολή do while χρησιμοποιείται συνήθως όταν ο βρόχος πρέπει να εκτελεστεί τουλάχιστον μία φορά (για παράδειγμα, εάν υπάρχουν δεδομένα εισαγωγής στον βρόχο).

Ο χειριστής whiIe είναι πιο βολικός στη χρήση σε περιπτώσεις όπου ο αριθμός των επαναλήψεων δεν είναι γνωστός εκ των προτέρων, δεν υπάρχουν εμφανείς παράμετροι βρόχου ή είναι πιο βολικό να γράψετε την τροποποίηση παραμέτρου όχι στο τέλος του σώματος του βρόχου.

Η δήλωση for είναι προτιμότερη στις περισσότερες άλλες περιπτώσεις (σίγουρα - για την οργάνωση κύκλων με μετρητές).

Σε γενικές γραμμές, σήμερα θα μάθουμε για κάθε έναν από τους κύκλους στο Pascal με περισσότερες λεπτομέρειες και θα δούμε πώς έχουν οριστεί. Θα αποσυναρμολογήσουμε ενώ βρόχος με προϋπόθεση, για βρόχο με παράμετροκαι επανάληψη - μέχρι βρόχου με μετασυνθήκη.

1. Βρόχος με παράμετρο στο Pascal - FOR

Ο βρόχος FOR θέτει μια συγκεκριμένη συνθήκη σύμφωνα με την οποία το πρόγραμμα θα λειτουργεί μέχρι να εκτελεστεί, ας πούμε ότι πρέπει να κάνουμε βρόχο το πρόγραμμα 5 (ή n) φορές, τότε αυτό είναι εύκολο να γίνει χρησιμοποιώντας αυτόν τον βρόχο. Ο βρόχος FOR έχει ένα χαρακτηριστικό γνώρισμα - έναν μετρητή, ο οποίος συνήθως συμβολίζεται με το γράμμα i ή j.

Η εμφάνιση του κύκλου με μια παράμετρο σε Pascal:

για i:= 1 έως n κάνω // αντιστοιχίστε το i πρώτα σε ένα, μετά δύο, τρία, ..., n

Μετά το 1ο πέρασμα, εκχωρούμε 1 στη μεταβλητή i, μετά το δεύτερο πέρασμα εκχωρούμε 2 και ούτω καθεξής μέχρι να φτάσουμε στο n. το to είναι μέχρι .. σε αύξουσα σειρά, υπάρχει επίσης downto-up to .. σε φθίνουσα σειρά.

Μπλοκ διάγραμμα ενός κύκλου με μια παράμετρο:

2. Βρόχος με προϋπόθεση στο Pascal - WHILE

Ο τελεστής βρόχου με μια προϋπόθεση εκτελεί ενέργειες άγνωστες φορές. Ο βρόχος εξέρχεται εάν κάποια λογική έκφραση ή το αποτέλεσμά της είναι ψευδής. Εφόσον η εγκυρότητα της λογικής έκφρασης ελέγχεται στην αρχή, το σώμα του βρόχου μπορεί να μην εκτελεστεί ούτε μία φορά.

Δομή βρόχου με προϋπόθεση:

ΕΝΩ ΑΡΧΙΖΟΥΝ τελειώνουν?

Boolean έκφραση, η αλήθεια της οποίας ελέγχεται στην αρχή της εκτέλεσης του κυκλικού τελεστή.

Τυχόν εκτελέσιμες δηλώσεις γλώσσας.

Σειρά εκτέλεσης βρόχου:

Ενώ η συνθήκη είναι αληθής, το σώμα του βρόχου εκτελείται. Μόλις η συνθήκη γίνει ψευδής, ο βρόχος τερματίζεται.

Μπλοκ διάγραμμα ενός κύκλου με προϋπόθεση:


Σημείωση: τα ορθογώνια μπλοκ δείχνουν οποιαδήποτε ενέργεια εκτελείται στον κύκλο ή μετά από αυτόν (βήμα κύκλου), τα οβάλ δείχνουν την αρχή ή το τέλος ολόκληρου του προγράμματος ή μέρους του. Ο κύριος ρόλος σε αυτό το μπλοκ διάγραμμα παίζει το κεντρικό του τμήμα.

Παράδειγμα:

Εργασία: υπολογίστε το άθροισμα της σειράς 1+1,5+2+2,5+3+3,5+ .. + 30

πρόγραμμα παράδειγμα-ενώ?

varsum:πραγματικό; n:πραγματικό; ΑΡΧΙΚΟ άθροισμα:=0; n:=1; ενώ n

3. Βρόχος με μετασυνθήκη - Επανάληψη - μέχρι.

Αυτός ο τελεστής είναι παρόμοιος με τον τελεστή βρόχου με μια προϋπόθεση, αλλά διαφέρει από αυτόν στο ότι η συνθήκη ελέγχεται μετά την εκτέλεση του σώματος (ενέργειες) του βρόχου. Αυτό διασφαλίζει ότι εκτελείται τουλάχιστον μία φορά, σε αντίθεση με τους προηγουμένως αναλυμένους βρόχους.

Λάβετε υπόψη ότι αυτή η δήλωση βρόχου προϋποθέτει την παρουσία πολλών εντολών στο σώμα του βρόχου, δηλαδή, μπορείτε να εκτελέσετε πολλές ενέργειες, επομένως οι λέξεις υπηρεσίας Αρχή και Τέλος δεν χρειάζονται.

Η ακολουθία εντολών που περιλαμβάνεται στο σώμα του βρόχου εκτελείται μία φορά, μετά από την οποία ελέγχεται η συνθήκη που γράφτηκε μετά τη λέξη μέχρι υπηρεσίας. Εάν δεν πληρούται η προϋπόθεση, ο βρόχος τελειώνει. Διαφορετικά, το σώμα του βρόχου επαναλαμβάνεται άλλη μια φορά, μετά από αυτό ελέγχεται ξανά η κατάσταση.

Μπλοκ διάγραμμα ενός κύκλου με μια μετασυνθήκη:

Μορφή εγγραφής, δομή κύκλου:
ΕΠΑΝΑΛΗΨΗ ΜΕΧΡΙ ;

Παράδειγμα:

Πρόγραμμα δοκιμή2; Varb:Real; Αρχή b:=100; Επανάληψη b:=b/2; μέχρι β

Συμπεράσματα:

1. Ένας βρόχος με μια παράμετρο χρησιμοποιεί μια μεταβλητή που ονομάζεται παράμετρος βρόχου ή μετρητής. Πριν εκτελεστεί ο βρόχος, η παράμετρος (μετρητής) ορίζεται στην αρχική της τιμή. Μετά την εκτέλεση του βήματος βρόχου, η τιμή της παραμέτρου αυξάνεται κατά ένα. Ο βρόχος συνεχίζεται έως ότου η παράμετρος φτάσει στην τελική της τιμή, η οποία καθορίζεται μετά το (κάτω).

2. Ο βρόχος με μια προϋπόθεση εκτελείται έως ότου η συνθήκη εκτέλεσης γίνει ψευδής και συνεχίζει εάν η συνθήκη είναι αληθής.

3. Ο βρόχος με τη συνθήκη εκτελείται μέχρι να γίνει αληθής η συνθήκη, εάν η συνθήκη είναι ψευδής, ο βρόχος συνεχίζει.