Σύνταξη Pascal για τελεστές πολλαπλής επιλογής υπό όρους. Δομή διακλάδωσης. Υπό όρους χειριστή. Παραδείγματα χρήσης του τελεστή άλματος υπό όρους, ο οποίος έχει πλήρη μορφή αναπαράστασης

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

Η μετάβαση πραγματοποιείται χρησιμοποιώντας τις λεγόμενες ετικέτες.
Μια ετικέτα είναι ένα αναγνωριστικό ή ανυπόγραφο ακέραιος αριθμός στο εύρος 0 έως 9999 που εμφανίζεται πριν από οποιαδήποτε δήλωση προγράμματος και διαχωρίζεται από αυτήν με άνω και κάτω τελεία. Όλες οι ετικέτες που χρησιμοποιούνται στο πρόγραμμα πρέπει να δηλώνονται προηγουμένως στην ενότητα δήλωσης ετικέτας, ξεκινώντας με την ετικέτα WORD.

Μπορεί θεωρητικά να αποδειχθεί ότι οι τελεστές που εξετάζονται είναι αρκετά επαρκείς για τη σύνταξη προγραμμάτων οποιασδήποτε πολυπλοκότητας. Από αυτή την άποψη, η παρουσία τελεστών άλματος στη γλώσσα φαίνεται περιττή. Επιπλέον, η σύγχρονη τεχνολογία δομημένου προγραμματισμού βασίζεται στην αρχή του «προγραμματισμού χωρίς GOTOs»: πιστεύεται ότι η κατάχρηση των χειριστών άλματος κάνει το πρόγραμμα δύσκολο να κατανοηθεί, να μπερδευτεί και να διορθωθεί. Ωστόσο, σε ορισμένες περιπτώσεις, η χρήση τελεστών άλματος μπορεί να απλοποιήσει ένα πρόγραμμα.

Ο τελεστής μετάβασης έχει τη μορφή:

Εδώ goto είναι μια δεσμευμένη λέξη (μετάβαση [στο label]). - ετικέτα.

Ετικέτα 1; // Δηλώστε μια ετικέτα με το όνομα 1 var
α: Ακέραιος αριθμός; αρχίζουν
α: = 10;
Πήγαινε 1; // Μετάβαση στην ετικέτα 1
a:= sqrt(a); // Αυτή η δήλωση δεν θα εκτελεστεί ποτέ! 1: a:= a + a; // Χειριστής με ετικέτα 1 τέλος;

Τελεστές άλματος υπό όρους

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

ανκατάσταση έπειταχειριστής1 άλλος χειριστής2;

Ο τελεστής συνθήκης μπορεί επίσης να γραφτεί σε απλοποιημένη μορφή:

ανκατάσταση έπειταχειριστής;

Ακολουθούν παραδείγματα χρήσης τελεστών συνθηκών:

αν a > 0 τότε b: = sqrt (α) αλλιώς b: = a * 2; // Χειριστής συνθήκης
αν a = 10 τότε b: = b + 1; // Απλοποιημένη μορφή

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

Σε αντίθεση με άλλες γλώσσες προγραμματισμού, στο Object Pascal η προτεραιότητα των σχεσιακών πράξεων είναι χαμηλότερη από εκείνη των λογικών πράξεων· επομένως, τα επιμέρους στοιχεία μιας σύνθετης λογικής έκφρασης περικλείονται σε παρένθεση. Για παράδειγμα, η ακόλουθη δήλωση από την προηγούμενη δήλωση θα ήταν λανθασμένη:
αν a>b και b 0 τότε ...// Σφάλμα γιατί στην πραγματικότητα (λαμβάνοντας υπόψη την προτεραιότητα της λειτουργίας) ο μεταγλωττιστής θα μεταδώσει την ακόλουθη γραμμή:
αν a> (b και b)0 τότε…

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

αν x>0 τότε y:=x+2 αλλιώς y:=x-2

13. Υπό όρους χειριστή.

β) Διακλαδωτική δομή

Χειριστής άλματος υπό όρους

Ο τελεστής άλματος υπό όρους στο Turbo Pascal έχει τη μορφή:

αν κατάστασηέπειτα χειριστής 1αλλού χειριστής 2;

κατάστασηείναι μια λογική έκφραση, ανάλογα με το ποιος από τους δύο εναλλακτικούς κλάδους του αλγορίθμου επιλέγεται. Εάν η τιμή της συνθήκης είναι TRUE, τότε το χειριστής 1, γραμμένο μετά την τότε λέξη-κλειδί. Διαφορετικά θα εκτελεστεί χειριστής 2, ακολουθώντας τη λέξη άλλο, ενώ χειριστής 1παρακάμπτεται. Μετά την εκτέλεση των καθορισμένων εντολών, το πρόγραμμα προχωρά στην εκτέλεση της εντολής αμέσως μετά την εντολή if.

Είναι σημαντικό να θυμάστε ότι το ερωτηματικό δεν τοποθετείται ποτέ πριν από τη λέξη-κλειδί else!

else - μπορεί να λείπει μέρος στη δήλωση if:

αν κατάστασηέπειτα χειριστής 1;

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

Θα πρέπει να θυμόμαστε ότι η σύνταξη της γλώσσας επιτρέπει να γραφτεί μόνο μία πρόταση μετά από τις λέξεις-κλειδιά then and other, επομένως μια ομάδα εντολών πρέπει να συνδυαστεί σε μια σύνθετη πρόταση (που περιβάλλεται από αγκύλες τελεστή αρχίζουν ... τέλος). Διαφορετικά, τις περισσότερες φορές προκύπτει ένα λογικό σφάλμα προγράμματος όταν ο μεταγλωττιστής γλώσσας δεν παράγει σφάλματα, αλλά το πρόγραμμα ωστόσο λειτουργεί εσφαλμένα.

Παραδείγματα.

αν x > 0 τότε modul:= x else modul:= -x;

αν k > 0 τότε WriteLn("k είναι θετικός αριθμός");

αν min > max τότε ξεκινήστε

14.Χειριστής μετάβασης. Ετικέτες και τελεστές άλματος

Μπορεί θεωρητικά να αποδειχθεί ότι οι τελεστές που εξετάζονται είναι αρκετά επαρκείς για τη σύνταξη προγραμμάτων οποιασδήποτε πολυπλοκότητας. Από αυτή την άποψη, η παρουσία τελεστών άλματος στη γλώσσα φαίνεται περιττή. Επιπλέον, η σύγχρονη τεχνολογία δομημένου προγραμματισμού βασίζεται στην αρχή του "προγράμματος χωρίς GOTO": πιστεύεται ότι η κατάχρηση των χειριστών jump κάνει το πρόγραμμα δύσκολο να κατανοηθεί, να μπερδευτεί και να διορθωθεί.

Ωστόσο, σε ορισμένες περιπτώσεις, η χρήση τελεστών άλματος μπορεί να απλοποιήσει ένα πρόγραμμα.

Ο τελεστής μετάβασης έχει τη μορφή:

ΠΑΩ ΣΕ<метка>.

Εδώ GOTO είναι μια δεσμευμένη λέξη (μετάβαση [στην ετικέτα]).<метка>- ετικέτα.

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

Η ετικέτα βρίσκεται αμέσως πριν από την επισημασμένη δήλωση και χωρίζεται από αυτήν με άνω και κάτω τελεία. Ένας χειριστής μπορεί να επισημανθεί με πολλές ετικέτες, οι οποίες σε αυτήν την περίπτωση διαχωρίζονται μεταξύ τους με άνω και κάτω τελεία. Πριν εμφανιστεί στο πρόγραμμα, πρέπει να περιγραφεί η ετικέτα. Μια περιγραφή ετικέτας αποτελείται από τη δεσμευμένη λέξη LABEL ακολουθούμενη από μια λίστα ετικετών:

Παράδειγμα

1: WriteLn("Μετάβαση στην ετικέτα 1");

Το αποτέλεσμα μιας δήλωσης GOTO είναι να μεταφέρει τον έλεγχο στην αντίστοιχη δήλωση με ετικέτα Όταν χρησιμοποιείτε ετικέτες, πρέπει να τηρούνται οι ακόλουθοι κανόνες: η ετικέτα που αναφέρεται στη δήλωση GOTO πρέπει να περιγράφεται στην ενότητα περιγραφής και πρέπει να εμφανίζεται κάπου στο σώμα του προγράμματος· οι ετικέτες που περιγράφονται στη διαδικασία (συναρτήσεις) εντοπίζονται εντός αυτού, επομένως η μεταφορά του ελέγχου από έξω από τη διαδικασία (συνάρτηση) σε μια ετικέτα μέσα σε αυτό είναι αδύνατη. Μια κενή πρόταση δεν περιέχει καμία ενέργεια, απλώς προστίθεται ένα επιπλέον ερωτηματικό στο πρόγραμμα. Βασικά, η κενή πρόταση χρησιμοποιείται για τη μεταφορά ελέγχου στο τέλος μιας σύνθετης πρότασης.

Χειριστήςείναι μια πρόταση γλώσσας προγραμματισμού που καθορίζει μια πλήρη περιγραφή κάποιας ενέργειας που πρέπει να εκτελεστεί. Το κύριο μέρος ενός προγράμματος Turbo Pascal είναι μια ακολουθία δηλώσεων. Το διαχωριστικό εντολών είναι ένα ερωτηματικό. Όλοι οι τελεστές γλώσσας Turbo Pascal μπορούν να χωριστούν σε δύο ομάδες: απλούς και δομικούς.

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

Χειριστής ανάθεσης

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

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

Για παράδειγμα, για τον χειριστή

Αποτέλεσμα:=A div B;

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

Παραδείγματα χρήσης του τελεστή εκχώρησης:

ΕΝΑ:= 8;

S:=A*ΣΕ;

Ostatok:= A mod B;

Αναλογία:= A / B;

Χειριστής άνευ όρων άλματος (μετάβαση στο)

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

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

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

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

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

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

Ένα παράδειγμα χρήσης του τελεστή άνευ όρων άλματος:

ετικέτα Mark; (στην ενότητα περιγραφή ετικέτας περιγράψαμε μια ετικέτα με το όνομαΜέτκα}

αρχίζουν (κύριο πρόγραμμα)

(κύριες δηλώσεις προγράμματος)

(οι κύριες δηλώσεις προγράμματος σημειώνονται με ετικέτα)

Εντολή εργασίας

    Μελετήστε θεωρητικές πληροφορίες σχετικά με το θέμα: «Γράψτε ένα πρόγραμμα σε Pascal χρησιμοποιώντας τελεστές ανάθεσης και άνευ όρων άλμα».

    Λάβετε μια ατομική εργασία από τον δάσκαλο και αναπτύξτε ένα πρόγραμμα σύμφωνα με την εργασία.

    Δείξτε το πρόγραμμα εργασίας στον δάσκαλο.

    Απάντησε σε ερωτήσεις ασφαλείας.

Ερωτήσεις ελέγχου

    Βασικά στοιχεία προγραμματισμού.

    Κύρια χαρακτηριστικά του προγράμματος. Έννοιες γλώσσας, επικαλύψεις, καθολικά και τοπικά μπλοκ.

    Χειριστές της γλώσσας προγραμματισμού Pascal. Χειριστής ανάθεσης. Μορφή, παραδείγματα.

    Χειριστής άνευ όρων άλματος. Μορφή, παραδείγματα. Βασικοί κανόνες χρήσης

Εργαστηριακή εργασία Νο 7

Γράψτε ένα πρόγραμμα σε Pascal χρησιμοποιώντας εντολές υπό όρους και τον τελεστή επιλογήςΥπόθεση

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

Σύντομες θεωρητικές πληροφορίες

Δηλώσεις υπό όρους

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

Υπάρχουν δύο δηλώσεις υπό όρους στο Turbo Pascal: εάν και περίπτωση.

Δήλωση υπό όρους εάν

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

Μπορεί να λάβει μία από τις ακόλουθες μορφές:

    αν<условие>έπειτα<оператор1>

αλλού<оператор2>;

    αν<условие>έπειτα<оператор>;

Μετάφραση από τα αγγλικά, αυτές οι μορφές μπορούν να οριστούν ως:

    ΑΝ <условие> ΟΤΙ <оператор1> ΣΕ ΔΙΑΦΟΡΕΤΙΚΗ ΠΕΡΙΠΤΩΣΗ <оператор2>

    ΑΝ <условие> ΟΤΙ <оператор>

Χειριστής κατάστασης ανεκτελείται ως εξής. Αρχικά, αξιολογείται η έκφραση που είναι γραμμένη στη συνθήκη. Ως αποτέλεσμα του υπολογισμού του, προκύπτει μια τιμή τύπου Boolean.

Στην πρώτη περίπτωση, αν η τιμή της παράστασης είναι Αληθής(αληθινό), εκτελεσμένο <оператор1>, υποδεικνύεται μετά τη λέξη έπειτα(μεταφράζεται ως «αυτό»). Αν το αποτέλεσμα του υπολογισμού της έκφρασης στη συνθήκη είναι Ψευδής(ψευδή), στη συνέχεια εκτελέστηκε <оператор2> .

Στη δεύτερη περίπτωση, αν το αποτέλεσμα της έκφρασης Αληθής, εκτελέστηκε <оператор>, Αν Ψευδής- χειριστής αμέσως μετά τον χειριστή αν. χειριστές ανμπορεί να είναι φωλιασμένος.

Ένα παράδειγμα ενός τμήματος προγράμματος με μια εντολή if υπό όρους:

αν Ch="N" τότε Password:= True

other Password:= False;

αν Κωδικός = Αληθινός τότε

αν X = 100 τότε Γράψτε ("Ο κωδικός πρόσβασης και ο κωδικός είναι σωστά")

Writeln ("Σφάλμα στον κώδικα");

Σε αυτό το παράδειγμα, η τιμή μιας μεταβλητής τύπου χαρακτήρα διαβάζεται από το πληκτρολόγιο Ch. Στη συνέχεια ελέγχεται η κατάσταση ΜΕη=" Ν" . Εάν εκπληρωθεί, τότε η μεταβλητή Κωδικός πρόσβασηςστον τύπο boolean εκχωρείται μια τιμή Αληθής, εάν δεν πληρούται η προϋπόθεση, Ψευδής. Στη συνέχεια, η τιμή του κωδικού διαβάζεται από το πληκτρολόγιο Χ. Στη συνέχεια, η δήλωση if ελέγχει τη συνθήκη Passol = True. Αν έχει σημασία Αληθής, τότε ο εισαγόμενος κωδικός ελέγχεται από τον χειριστή αν Χ=100. Εάν η προϋπόθεση Χ=100έχει το νόημα Αληθής, τότε εμφανίζεται το μήνυμα "Ο κωδικός πρόσβασης και ο κωδικός είναι σωστά" και ο έλεγχος στο πρόγραμμα μεταφέρεται στον χειριστή ακολουθώντας τη λέξη τέλος, αν έχει σημασία Ψευδής, η σύνθετη πρόταση μετά την εκτέλεση της λέξης αλλού, το οποίο εμφανίζει το μήνυμα "Σφάλμα στον κωδικό" στην οθόνη της οθόνης βίντεο και καλεί την τυπική διαδικασία Παύση (1)να σταματήσει το πρόγραμμα.

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

αν συνθήκη1 τότε αν συνθήκη2 τότε<оператор1>αλλού<оператор2>

Η προκύπτουσα ασάφεια σχετικά με το ποιος χειριστής ανανήκει σε μέρος αλλού <оператор2>, επιτρέπεται από το γεγονός ότι η λέξη συνάρτησης αλλούσυσχετίζεται πάντα (συνδεδεμένη) με την πλησιέστερη συνάρτηση λέξης στο κείμενο αν,που δεν συσχετίζεται ακόμη με τη λέξη συνάρτησης αλλού.

Εξαιτίας αυτού, θα πρέπει να είστε προσεκτικοί όταν γράφετε ένθετες εντολές υπό όρους.

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

Για να ελέγξουμε τις τιμές εισόδου του διαιρέτη, χρησιμοποιούμε τον τελεστή άλματος υπό όρους αν ... τότε ... αλλιώς.

Το κείμενο του προγράμματος μπορεί να μοιάζει με αυτό:

πρόγραμμα Primer1;

A, B: ακέραιος;

Write("Εισαγάγετε την τιμή του μερίσματος Α: ");

Write("Εισαγάγετε την τιμή του διαιρέτη B: ");

αν Β=0 (Έλεγχος εισαγωγής αριθμούσι}

τότε Writeln ("Το μηδέν δεν μπορεί να διαιρεθεί") (Η προϋπόθεση πληρούται)

(Δεν πληρούται η προϋπόθεση)

Αποτέλεσμα:= A / B;

Writeln("Πηλίκο αριθμών ",A," και ",B, " = ", Rezult);

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

Δήλωση υπό όρους εάν

Η υπό όρους δήλωση if μπορεί να λάβει μία από τις ακόλουθες μορφές:

αν<условие>έπειτα<оператор1>

αλλού<оператор2>;

αν<условие>έπειτα<оператор>;

Η υπό όρους εντολή if εκτελείται ως εξής. Αρχικά, αξιολογείται η έκφραση που είναι γραμμένη στη συνθήκη. Ως αποτέλεσμα του υπολογισμού του, προκύπτει μια τιμή τύπου Boolean. Στην πρώτη περίπτωση, αν η τιμή της έκφρασης είναι True, τότε<оператор1>, που καθορίζεται μετά τη λέξη τότε. Εάν το αποτέλεσμα της αξιολόγησης της έκφρασης στη συνθήκη είναι False, τότε<оператор2>. Στη δεύτερη περίπτωση, αν το αποτέλεσμα της έκφρασης Tgue, τότε<оператор>, εάν False, εκτελείται η εντολή αμέσως μετά την εντολή if. Σύμφωνα με τους κανόνες, κάθε κλάδος μπορεί να περιέχει είτε μία εκτελέσιμη πρόταση είτε πολλές συνδυασμένες σε μια σύνθετη πρόταση.ερωτηματικό πριν μιlseμη εγκατεστημενο.

χειριστή επιλογής περίπτωσης

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

υπόθεση<выражение-селектор>του

<список1>: <оператор1>;

<список2>: <оператор2>;

<списокN>: <операторN>;

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

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

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

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

Κλαδί Αλλούείναι προαιρετική και σε αντίθεση με τη δήλωση if, μπορεί να προηγείται ένα ερωτηματικό.

Επαναλαμβανόμενοι τελεστές

Εάν υπάρχει ανάγκη επανειλημμένης εκτέλεσης ορισμένων εντολών σε ένα πρόγραμμα, τότε χρησιμοποιούνται τελεστές επανάληψης (βρόχου). Στη γλώσσα Pascal, υπάρχουν τρεις τύποι τελεστών βρόχου: while, repeat, for.

ενώ δήλωση

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

ενώ<условие продолжения повторений>κάνω

<тело цикла>;

Κατάσταση – λογική έκφραση. Σώμα βρόχου – απλός ή σύνθετος τελεστής. Ένας σύνθετος τελεστής χρησιμοποιείται σε περιπτώσεις όπου το σώμα ενός βρόχου αποτελείται από 2 ή περισσότερους τελεστές.

Πριν από κάθε εκτέλεση του σώματος του βρόχου, υπολογίζεται η τιμή της έκφρασης συνθήκης. Εάν το αποτέλεσμα είναι True, εκτελείται το σώμα του βρόχου και η έκφραση συνθήκης αξιολογείται ξανά. Εάν το αποτέλεσμα είναι False, ο βρόχος εξέρχεται και μετακινείται στην πρώτη πρόταση αμέσως μετά το σώμα του βρόχου.

επανάληψη χειριστή

Ο τελεστής επανάληψης υλοποιεί έναν βρόχο με μετασυνθήκη . Ένας βρόχος με μετασυνθήκη θα εκτελείται πάντα τουλάχιστον μία φορά.

<оператор1>;

<оператор2>;

<оператор Ν>;

μέχρι<условие окончания цикла>;

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

Επανάληψη χειριστή για

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

Ο τελεστής για επανάληψη μπορεί να αναπαρασταθεί σε δύο μορφές:

Για<параметр цикла> := προς την κάνω<тело цикла>;

Για<параметр цикла> := μέχρι κάνω<тело цикла>;

Οπου<параметр цикла>είναι μια μεταβλητή ακέραιων, χαρακτήρων, λογικών ή απαριθμημένων τύπων.

Το SI και το S2 είναι εκφράσεις που καθορίζουν, αντίστοιχα, τις αρχικές και τελικές τιμές της παραμέτρου του κύκλου.

για ... do - κεφαλίδα βρόχου?

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

Εντολή δράσης. Στην παράμετρο βρόχου εκχωρείται η τιμή της έκφρασης S1. Αν είναι μικρότερη ή ίση με την τιμή της έκφρασης S2, τότε εκτελείται το σώμα του βρόχου. Μετά από αυτό, η τιμή της παραμέτρου αυξάνεται αυτόματα κατά ένα και συγκρίνεται ξανά με την τιμή της έκφρασης S2 κ.λπ. Όταν η τιμή της παραμέτρου γίνει μεγαλύτερη από την τιμή της παράστασης S2, εκτελείται η επόμενη πρόταση μετά τον βρόχο.

Το βήμα της αλλαγής της παραμέτρου βρόχου για τον τελεστή for...to...do είναι +1 και για τον τελεστή for...downto...do είναι -1.

Ερωτήσεις αυτοδιαγνωστικού ελέγχου:

    Μορφή χειριστή ανάθεσης. Είναι αποδεκτή η χρήση ποσοτήτων διαφορετικών τύπων σε μια αριθμητική παράσταση;

    Ποια είναι η διαφορά μεταξύ της πρότασης εισαγωγής Read και της πρότασης Readln;

    Καθορίστε μορφές εξόδου δεδομένων.

    Ποιοι τύποι διακλαδώσεων εφαρμόζονται στο Turbo Pascal;

    Σε τι χρησιμεύουν τα υποκαταστήματα; Δώσε παραδείγματα.

    Δύο μορφές γραφής του τελεστή υπό όρους Αν.

    Μορφή εγγραφής για μια ένθετη πρόταση If.

    Μορφή σημειογραφίας δήλωσης επιλογής υπόθεσης;

    Σε ποιες περιπτώσεις χρησιμοποιείται ο σύνθετος τελεστής Αρχή... τέλος;

    Πώς απεικονίζονται οι διακλαδισμένοι αλγόριθμοι στα διαγράμματα ροής;

    Τι είναι ένας κύκλος;

    Τι τύποι βρόχων υλοποιούνται στο Turbo Pascal;

    Τι είναι ένα σώμα βρόχου;

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

    Ποια είναι η διαφορά μεταξύ των δηλώσεων while και της επανάληψης;

    Σε ποιες περιπτώσεις είναι προτιμότερο να χρησιμοποιείται ο τελεστής επανάληψης για την οργάνωση βρόχων; Τι αναγράφεται στην κεφαλίδα αυτής της δήλωσης;

    Πώς περιγράφει μια δήλωση βρόχου for την κατεύθυνση στην οποία αλλάζει η τιμή μιας παραμέτρου βρόχου;

Αυτό το μάθημα εξετάζει τον τελεστή υπό όρους στο Pascal ( αν). Εξηγεί τον τρόπο χρήσης πολλαπλών συνθηκών σε μία κατασκευή ( ΚΑΙΚαι Ή). Εξετάζονται παραδείγματα εργασίας με έναν χειριστή

Σας υπενθυμίζουμε ότι αυτός ο ιστότοπος δεν προσποιείται ότι παρέχει πλήρη παρουσίαση πληροφοριών σχετικά με το θέμα. Σκοπός της πύλης είναι να παρέχει την ευκαιρία εκμάθησης υλικού βασισμένου σε έτοιμα λυμένα παραδείγματα για το θέμα «Γλώσσα Προγραμματισμού Pascal» με πρακτικές εργασίες για την ενίσχυση του υλικού. Οι εργασίες Pascal που παρουσιάζονται στον ιστότοπο ταξινομούνται διαδοχικά καθώς αυξάνεται η πολυπλοκότητά τους. Η ιστοσελίδα μπορεί να χρησιμοποιηθεί από καθηγητές και καθηγητές ως βοηθητικό οπτικό βοήθημα.

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

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

Η υπό όρους δήλωση στο Pascal έχει την ακόλουθη σύνταξη:

Συνοπτική έκδοση:

αν συνθήκη τότε δήλωση?

Πλήρη έκδοση:

αν συνθήκη τότε δήλωση else δήλωση?

Ο τελεστής υπό όρους στο Pascal - if - χρησιμεύει για την οργάνωση της προόδου μιας εργασίας με τέτοιο τρόπο ώστε η ακολουθία εκτέλεσης των τελεστών να αλλάζει ανάλογα με κάποια λογική συνθήκη. Μια λογική συνθήκη μπορεί να λάβει μία από τις δύο τιμές: είτε true είτε false, αντίστοιχα, μπορεί να είναι είτε true είτε false.

Σύνθετος χειριστής

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

Αγκύλες χειριστή και σύνθετος τελεστής στο Pascal:

εάν η λογική έκφραση, τότε ξεκινά η πρόταση1. χειριστής2; τέλος αλλού έναρξη δήλωση1? χειριστής2; τέλος;

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

ΑΝ ΕΠΕΙΤΑ ΑΛΛΟΥ
ΑΝ ΟΤΙ ΣΕ ΔΙΑΦΟΡΕΤΙΚΗ ΠΕΡΙΠΤΩΣΗ


Η συνθήκη (σε μια λογική έκφραση) χρησιμοποιεί σχεσιακούς τελεστές.
Εξετάστε τη λίστα των σχεσιακών τελεστών του Pascal:

  • περισσότερα >
  • πιο λιγο
  • μεγαλύτερο ή ίσο σε Pascal >=
  • μικρότερο ή ίσο σε Pascal
  • σύγκριση σε Pascal =
  • όχι ίσος στον Πασκάλ

Παράδειγμα:βρείτε τον μεγαλύτερο από δύο αριθμούς

Επιλογή 1 Επιλογή 2


Κατανοήστε το έργο λεπτομερώς μπορείτε να χρησιμοποιήσετε τον τελεστή υπό όρους στο Pascal παρακολουθώντας το εκπαιδευτικό βίντεο:

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

Εμφάνιση λύσης:

var x,y:real; start writeln("enter x"); read(x); αν x>0 τότε y:=ln(x) αλλιώς y:=exp(x); writeln ("y=", y:6:2) (ο αριθμός που προκύπτει θα καταλαμβάνει 6 θέσεις και θα έχει 2 δεκαδικά ψηφία) τέλος.

Παρατηρήστε πώς εξάγεται το y σε αυτό το παράδειγμα. Όταν συνάγετε μεταβλητές τύπου σε pascal, μπορείτε να χρησιμοποιήσετε το λεγόμενο μορφοποιημένη έξοδο, ή σημειογραφία με δύο άνω και κάτω τελείες:
ε:6:2
- ο αριθμός μετά την πρώτη άνω και κάτω τελεία (6) υποδεικνύει πόσους χαρακτήρες θα καταλάβει ο αριθμός όταν εμφανίζεται στην οθόνη
- ο αριθμός μετά τη δεύτερη άνω και κάτω τελεία (2) υποδεικνύει πόσα δεκαδικά ψηφία του πραγματικού αριθμού θα εμφανιστούν

Έτσι, η χρήση μιας τέτοιας σημειογραφίας στο pascal σας επιτρέπει πρακτικά να στρογγυλοποιήσετε στα εκατοστά, στα χιλιοστά κ.λπ.

Εργασία 0.Υπολογίστε την τιμή της μεταβλητής y χρησιμοποιώντας έναν από τους δύο κλάδους:

Εργασία 1.Δύο αριθμοί εισάγονται στον υπολογιστή. Εάν το πρώτο είναι μεγαλύτερο από το δεύτερο, τότε υπολογίστε το άθροισμά τους, διαφορετικά - το γινόμενο. Μετά από αυτό, ο υπολογιστής θα πρέπει να εκτυπώσει το αποτέλεσμα και το κείμενο PROBLEM SOLVED

Εργασία 2.Ο δράκος μεγαλώνει τρία κεφάλια κάθε χρόνο, αλλά αφού γίνει 100 ετών, μόνο δύο. Πόσα κεφάλια και μάτια έχει ένας δράκος; Νχρόνια;

Λογικές πράξεις σε Pascal (σε λογική έκφραση)

Όταν πρέπει να χρησιμοποιήσετε μια διπλή συνθήκη στο Pascal, θα χρειαστείτε λογικές πράξεις.

  • Λογική λειτουργία ΚΑΙ Το (Και), τοποθετημένο ανάμεσα σε δύο προϋποθέσεις, λέει ότι και οι δύο αυτές προϋποθέσεις πρέπει να πληρούνται ταυτόχρονα (πρέπει να είναι αληθείς). Η λογική έννοια της πράξης είναι «σύνδεση».
  • Τοποθετείται ανάμεσα σε δύο συνθήκες, το σημάδι Ή Το (OR) λέει ότι αρκεί εάν τουλάχιστον ένας από αυτούς ικανοποιείται (η μία από τις δύο προϋποθέσεις είναι αληθής). Η λογική έννοια της πράξης είναι «διάσπαση».
  • Στον Πασκάλ XOR - ένα σημάδι μιας λογικής πράξης που έχει την έννοια της «αυστηρής διάσπασης» και υποδεικνύει ότι είναι απαραίτητο να πληρούται η μία από τις δύο προϋποθέσεις (αληθής) και η άλλη να μην πληρούται (ψευδή).
  • Λογική λειτουργία ΔΕΝ πριν από μια λογική έκφραση ή μεταβλητή σημαίνει "άρνηση" ή "αναστροφή" και υποδεικνύει ότι εάν μια δεδομένη μεταβλητή ή έκφραση είναι αληθής, τότε η άρνησή της είναι ψευδής και το αντίστροφο.

Σπουδαίος:Κάθε απλή συνθήκη πρέπει να περικλείεται σε παρένθεση.

Παράδειγμα: Ας δούμε παραδείγματα λογικών πράξεων σε λογικές εκφράσεις στο Pascal

1 2 3 4 5 6 7 8 var n: ακέραιος ; έναρξη n: = 6 ; εάν (n>5 ) και (n<10 ) then writeln ("истина" ) ; if (n>7 ) ή (n<10 ) then writeln ("истина" ) ; if (n>7 )xor (n<10 ) then writeln ("истина" ) ; if not (n>7) στη συνέχεια writeln("αληθές"); τέλος.

var n:ακέραιος; έναρξη n:=6; εάν (n>5) και (n<10) then writeln("истина"); if (n>7) ή (n<10) then writeln("истина"); if (n>7)xor(n<10) then writeln("истина"); if not(n>7) στη συνέχεια writeln("αληθές"); τέλος.

Παράδειγμα:Η εταιρεία προσλαμβάνει υπαλλήλους από 25 έως 40 ετών συμπεριλαμβανομένων. Εισαγάγετε την ηλικία του ατόμου και καθορίστε εάν είναι κατάλληλο για αυτήν την εταιρεία (εμφανίστε την απάντηση "κατάλληλο" ή "μη κατάλληλο").
Ιδιορρυθμία:πρέπει να ελέγξουμε αν πληρούνται δύο προϋποθέσεις ταυτόχρονα.