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

Στο πολύ απλή υπόθεσησύνταξη δεδομένου χειριστήαν μοιάζει με:

αν<выражение>
<операторы>
τέλος

Εφιστώ την προσοχή σας στο γεγονός ότι, σε αντίθεση με μοντέρνες γλώσσεςΟ προγραμματισμός δεν χρησιμοποιεί κάτι τέτοιο ως σύνθετη πρόταση. ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟ υπό όρους χειριστήσίγουρα τελειώνει επίσημη λέξητέλος.

Το παρακάτω είναι ένα παράδειγμα υλοποίησης της συνάρτησης sign(), η οποία επιστρέφει +1 εάν ο αριθμός είναι μεγαλύτερος από μηδέν, -1 εάν ο αριθμός είναι μικρότερος από μηδέν και 0 εάν ο αριθμός είναι μηδέν:

x=5;
αν x > 0
disp(1);
τέλος
αν x< 0
disp(-1);
τέλος
αν x == 0
disp(0);
τέλος

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

αν<выражение>
<операторы1>% εκτελείται εάν η συνθήκη είναι αληθής
αλλού
<операторы2>% εκτελείται εάν η συνθήκη είναι ψευδής
τέλος

Τότε το παραπάνω παράδειγμα μπορεί να γραφτεί ως εξής:

X=5;
αν x > 0
disp(1);
αλλού
αν x< 0
disp(-1);
αλλού
disp(0);
τέλος
τέλος

Αυτό το πρόγραμμα ελέγχει πρώτα αν η μεταβλητή x είναι θετική και αν ναι, τότε εμφανίζεται η τιμή 1 στην οθόνη και αγνοούνται όλες οι άλλες συνθήκες. Εάν η πρώτη συνθήκη αποδειχτεί ψευδής, τότε η εκτέλεση του προγράμματος συνεχίζεται αλλιώς (αλλιώς) στη δεύτερη συνθήκη, όπου η μεταβλητή x ελέγχεται για αρνητικότητα και εάν η συνθήκη είναι αληθής, εμφανίζεται η τιμή -1 στο η οθόνη. Εάν και οι δύο συνθήκες είναι false, τότε η έξοδος είναι 0.

Το παραπάνω παράδειγμα μπορεί να γραφτεί σε απλούστερη μορφή χρησιμοποιώντας μια άλλη κατασκευή εντολής MatLab if:

αν<выражение1>
<операторы1>% εκτελείται εάν η έκφραση1 είναι αληθής
otherif<выражение2>
<операторы2>% εκτελείται εάν η έκφραση2 είναι αληθής
...
otherif<выражениеN>
<операторыN>% εκτελείται εάν η έκφραση N είναι αληθής
τέλος

και γράφεται ως εξής:

x=5;
αν x > 0
disp(1); % εκτελείται αν x > 0
elseif x< 0
disp(-1); % εκτελείται αν x< 0
αλλού
disp(0); % εκτελείται αν x = 0
τέλος

Με τη δήλωση if, μπορείτε να ελέγξετε για πιο σύνθετες (σύνθετες) συνθήκες. Για παράδειγμα, πρέπει να προσδιορίσετε: η μεταβλητή x εμπίπτει στο εύρος τιμών από 0 έως 2; Αυτό μπορεί να γίνει ελέγχοντας ταυτόχρονα δύο συνθήκες: x >= 0 και x<=2. Если эти оба условия истинны, то x попадает в диапазон от 0 до 2.

Για την υλοποίηση σύνθετων συνθηκών στο MatLab, χρησιμοποιούνται λογικοί τελεστές:

& - λογικό ΚΑΙ
| - λογικό Ή
~ - λογικό ΟΧΙ

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

x = 1;
αν x >= 0 & x<= 2
αλλού
τέλος

Στο δεύτερο παράδειγμα, θα ελέγξουμε αν η μεταβλητή x δεν ανήκει στην περιοχή από 0 έως 2. Αυτό επιτυγχάνεται ενεργοποιώντας μία από τις δύο συνθήκες: x< 0 или x > 2:

x = 1;
αν x< 0 | x > 2
disp("x δεν είναι στην περιοχή 0 έως 2");
αλλού
disp("x είναι στην περιοχή 0 έως 2");
τέλος

Χρησιμοποιώντας τους λογικούς τελεστές ΚΑΙ, Ή, ΟΧΙ, μπορείτε να δημιουργήσετε μια ποικιλία σύνθετων συνθηκών. Για παράδειγμα, μπορείτε να ελέγξετε ότι η μεταβλητή x βρίσκεται στην περιοχή -5 έως 5, αλλά όχι στην περιοχή 0 έως 1. Προφανώς, αυτό μπορεί να εφαρμοστεί ως εξής:

x = 1;
αν (x >= -5 & x<= 5) & (x < 0 | x > 1)
disp("x ανήκει στο [-5, 5] αλλά δεν είναι στο ");
αλλού
disp("x δεν είναι είτε στο [-5, 5] είτε στο ");
τέλος

Σημειώστε ότι οι παρενθέσεις έχουν χρησιμοποιηθεί στη συνθήκη σύνθετης ένωσης. Το γεγονός είναι ότι η προτεραιότητα της πράξης AND είναι υψηλότερη από την προτεραιότητα της πράξης OR και αν δεν υπήρχαν παρενθέσεις, τότε η συνθήκη θα έμοιαζε ως εξής: (x >= -5 και x<= 5 и x < 0) или x >1. Προφανώς, ένας τέτοιος έλεγχος θα έδινε διαφορετικό αποτέλεσμα από το αναμενόμενο.

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

Μια προτεραιότητα λογικές πράξειςΕπόμενο:

ΟΧΙ (~) - η υψηλότερη προτεραιότητα.
Και (&) - μέσης προτεραιότητας.
Ή (|) είναι η χαμηλότερη προτεραιότητα.

ενώ η δήλωση βρόχου

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

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

ενώ<условие>
<операторы>
τέλος

Εδώ<условие>σημαίνει μια έκφραση υπό όρους όπως αυτή που χρησιμοποιείται σε μια πρόταση if και ο βρόχος while εκτελείται όσο η συνθήκη είναι αληθής.

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

Ακολουθεί ένα παράδειγμα του βρόχου while για τον υπολογισμό του αθροίσματος μιας σειράς:


i=1; % συνολικός μετρητής
καθώς εγώ<= 20 % цикл (работает пока i <= 20)

τέλος % τέλος βρόχου
disp(S); % εμφάνιση αθροίσματος 210 στην οθόνη

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

S = 0; % αρχική τιμή αθροίσματος
i=1; % συνολικός μετρητής
καθώς εγώ<= 20 & S <= 20 % цикл (работает пока i<=10 и S<=20
S=S+i; % καταμετρημένο ποσό
i=i+1; % αύξησης μετρητή κατά 1
τέλος % τέλος βρόχου

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

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

S = 0; % αρχική τιμή αθροίσματος
i=1; % συνολικός μετρητής
καθώς εγώ<= 20 % цикл (работает пока i<=10
S=S+i; % καταμετρημένο ποσό
i=i+1; % αύξησης μετρητή κατά 1
εάν S > 20% εάν S > 20,
Διακοπή; % τότε τελειώνει ο βρόχος
τέλος
τέλος % τέλος βρόχου
disp(S); % εμφανίζει το άθροισμα του 21 στην οθόνη

Σε αυτό το παράδειγμα, η δεύτερη συνθήκη για τον τερματισμό του βρόχου, όταν το S είναι μεγαλύτερο από 20, γράφεται στον ίδιο τον βρόχο και χρησιμοποιώντας τη δήλωση break, ο βρόχος εξέρχεται στη συνάρτηση disp() αμέσως μετά τον βρόχο while.

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

a = ;

εξαιρουμένου του στοιχείου στο ευρετήριο 5. Ένα τέτοιο πρόγραμμα μπορεί να γραφτεί ως εξής:

S = 0; % αρχική τιμή αθροίσματος
a = ; % πίνακας
i=0; % καταμέτρηση ευρετηρίου πίνακα
καθώς εγώ< length(a) % цикл (работает пока i меньше
% μήκος πίνακα α)
i=i+1; % αυξάνει τον μετρητή δείκτη κατά 1
αν i == 5% αν ο δείκτης είναι 5
να συνεχίσει; % τότε δεν το υπολογίζουμε
τέλος
S=S+a(i); % άθροισμα στοιχείων που καταμετρήθηκαν
τέλος % τέλος βρόχου
disp(S); % εμφάνιση αθροίσματος 40 στην οθόνη

Πρέπει να σημειωθεί ότι σε αυτό το πρόγραμμα ο δείκτης του πίνακα i αυξάνεται πριν ελεγχθεί η συνθήκη. Αυτό γίνεται έτσι ώστε η τιμή του δείκτη να αυξάνεται κατά 1 σε κάθε επανάληψη του βρόχου. Αν η αύξηση του μετρητή i γράφεται όπως στα προηγούμενα παραδείγματα, δηλ. Αφού υπολογιστεί το άθροισμα, η δήλωση συνέχειας θα έκανε την τιμή της να σταματήσει στο 5 και ο βρόχος while θα λειτουργούσε "για πάντα".

για δήλωση βρόχου

Συχνά, κατά την οργάνωση ενός βρόχου, απαιτείται η επανάληψη της τιμής πάνω από τον μετρητή σε ένα δεδομένο εύρος τιμών και με ένα δεδομένο βήμα αλλαγής. Για παράδειγμα, για να επαναλάβετε τα στοιχεία ενός διανύσματος (πίνακας), πρέπει να οργανώσετε έναν μετρητή από το 1 στο N με βήμα 1, όπου N είναι ο αριθμός των στοιχείων του διανύσματος. Για τον υπολογισμό του αθροίσματος της σειράς, ένας μετρητής από το a έως το b καθορίζεται επίσης με το απαιτούμενο βήμα αλλαγής βήματος. Και ούτω καθεξής. Λόγω του γεγονότος ότι τέτοιες εργασίες συναντώνται συχνά στην πρακτική προγραμματισμού, προτάθηκε ένας ξεχωριστός τελεστής βρόχου for για την υλοποίησή τους, ο οποίος καθιστά ευκολότερη και πιο οπτική την υλοποίηση ενός βρόχου με μετρητή.

Η σύνταξη της δήλωσης βρόχου for είναι η εξής:

Για<счетчик> = <начальное значение>:<шаг>:<конечное значение>
<операторы цикла>
τέλος

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

a = ;
m = a(1); % τρέχουσα μέγιστη τιμή
για i=1:length(a) % βρόχος από το 1 έως το τέλος του διανύσματος c
% βήμα 1 (προεπιλογή)
αν μ< a(i) % если a(i) >Μ,
m = a(i); % τότε m = a(i)
τέλος
τέλος % τέλος του βρόχου for
disp(m);

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

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

a = ;
disp(a);
για i=length(a):-1:2 % βρόχος από 10 έως 2 με βήμα -1
a(i)=a(i-1); % μετατόπιση στοιχείων του διανύσματος α
τέλος % τέλος του βρόχου for
disp(a);

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

3 6 5 3 6 9 5 3 1 0
3 3 6 5 3 6 9 5 3 1

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

Λύσεις εξισώσεων

Αγία Πετρούπολη: BHV-Petersburg, 2005. - 1104 p.
ISBN 5-94157-494-0
Κατεβάστε(απευθείας σύνδεσμος) : matlab72005.pdf Προηγούμενο 1 .. 117 > .. >> Επόμενο

Κατά τη διάρκεια του βρόχου της εντολής MATLAB

Σε αυτό το παράδειγμα, η προϋπόθεση για την επανάληψη του κύκλου είναι ότι ο συντελεστής του τρέχοντος όρου είναι x2k~l/(2k +1)! περισσότερο από IO10. Για να γράψετε μια συνθήκη στη φόρμα,

κατανοητό από το MATLAB, χρησιμοποιήστε το σύμβολο ">" (μεγαλύτερο από). Το κείμενο της συνάρτησης αρχείου mysin, που υπολογίζει το άθροισμα της σειράς με βάση τη σχέση επανάληψης

k 2k(2k + \) k 1

φαίνεται στην λίστα 7.7.

Σημείωση ^

Φυσικά, στη γενική περίπτωση, η μικρότητα του όρου είναι μια σχετική έννοια, ο όρος μπορεί να είναι, ας πούμε, της τάξης IO-10, αλλά το ίδιο το άθροισμα είναι της ίδιας τάξης. Σε αυτήν την περίπτωση, η συνθήκη τερματισμού άθροισης πρέπει να είναι διαφορετική, δηλαδή, ο συντελεστής του λόγου του τρέχοντος όρου προς το ήδη συσσωρευμένο μέρος του αθροίσματος πρέπει να είναι μικρό. Δεν θα δώσουμε προσοχή σε αυτό προς το παρόν - καθήκον μας είναι να μελετήσουμε την εργασία με κύκλους.

Καταχώριση 7.7. Λειτουργία αρχείου mysin, η οποία υπολογίζει το ημίτονο κατά σειρά επέκτασης

συνάρτηση s - mysin(x)

"% Υπολογισμός του ημιτόνου ανά επέκταση σειράς

% Χρήση: y=mysin[x), -pi< х < piГлава 7. Управляющие конструкции языка программирова ни я

Ї υπολογισμός του πρώτου όρου του αθροίσματος για k \u003d O k \u003d 0; δικα τους;

% υπολογισμός της βοηθητικής μεταβλητής x2 - x*x;

ενώ abs(u) > 1.Oe-IO k = k + 1; u \u003d -u * x2 / (2 * k) / (2 * k + 1)

Σημειώστε ότι ο βρόχος while, σε αντίθεση με το for, δεν έχει μεταβλητή βρόχου, επομένως έπρεπε να αντιστοιχίσουμε μία στον βρόχο πριν από τον βρόχο και να αυξήσουμε το k κατά ένα μέσα στον βρόχο.

Συγκρίνετε τώρα το αποτέλεσμα σχεδιάζοντας τις συναρτήσεις mysin και sin στο τμήμα [-l, i] Fia στους ίδιους άξονες, για παράδειγμα, χρησιμοποιώντας fplot (οι εντολές μπορούν να οριστούν από τη γραμμή εντολών): "fplot (@rnysin, [- πι, πι])" κρατήσου

» fplot(@sin, t-pii pi]ι "k.")

Ρύζι. 7.3. Σύγκριση mysin και sin360_________ Μέρος II. Υπολογισμός και προγραμματισμός

Τα γραφήματα που προκύπτουν φαίνονται στο Σχ. 7.3, μαρτυρούν τη σωστή λειτουργία της συνάρτησης αρχείου mysin.

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

Πίνακας 7.1. πράξεις σχέσης

Σημείωση Σχέση λειτουργίας
== Ισότητα
< Меньше
<= Меньше или равно
>= Μεγαλύτερο ή ίσο
Όχι ίσα

Οι πιο περίπλοκες συνθήκες καθορίζονται χρησιμοποιώντας λογικούς τελεστές ή πράξεις. Για παράδειγμα, συνθήκη -1<.г<2 состоит в одновременном выполнении неравенства а>-1 και x<2 и записывается при помощи логического оператора and

και(x >= -1, X< 2)

ή ισοδύναμα χρησιμοποιώντας τη λογική πράξη "και" - &

(x >= -1) & (x< 2)

Οι κύριες λογικές πράξεις και τελεστές και παραδείγματα καταγραφής τους δίνονται στον Πίνακα. 7.2 (οι λογικές εκφράσεις περιγράφονται αναλυτικά στην ενότητα "Λογικές πράξεις με αριθμούς και πίνακες" αυτού του κεφαλαίου).

Πίνακας 7.2. Boolean εκφράσεις

Τύπος έκφρασης Έκφραση Λογικός τελεστής Λογική λειτουργία
Λογικό "και" Α*<3 И к=4 and (х < 3, k==4) (х<3) s (k = 4)
Λογικό "ή" X = Ї ή 2 ή (x == 1, X= 2) (x == 1) I (x == 2)
Αναίρεση "όχι" a * 1,9 όχι (a == 1,9) - (a == 1,9)

^ Σημείωση ^

Οι τελεστές not, και, και ή είναι συναρτήσεις που επιστρέφουν true (λογικό ένα) ή false (λογικό μηδέν). Οποιαδήποτε λογική έκφραση παίρνει τις ίδιες τιμές.

Κατά τον υπολογισμό του αθροίσματος μιας άπειρης σειράς, είναι λογικό να περιοριστεί ο αριθμός των όρων. Εάν η σειρά αποκλίνει λόγω του γεγονότος ότι οι όροι της δεν τείνουν στο μηδέν, τότε η προϋπόθεση για τη μικρότητα του τρέχοντος όρου μπορεί να μην ικανοποιηθεί ποτέ και το πρόγραμμα θα κάνει βρόχο. Εκτελέστε άθροιση περιορίζοντας τον αριθμό των όρων. Προσθέστε ένα όριο στον αριθμό των όρων στη συνθήκη βρόχου while του αρχείου συνάρτησης mysin (βλ. Λίστα 7.6):

(abs(u) > 1.Oe-IO) & (προς<= 100000) или в эквивалентной форме:

και l.Oe-lO, k<= 100000)

^ Σημείωση ^

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

δευτ. «Λογικές εκφράσεις με πίνακες και αριθμούς» αυτού του κεφαλαίου).

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

Χειριστές υποκαταστημάτων

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

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

Η εντολή if μπορεί να χρησιμοποιηθεί στην απλή της μορφή, για να εκτελέσει ένα μπλοκ εντολών όταν πληρούται κάποια συνθήκη ή σε μια κατασκευή if-eiseif-eise για να γράψει αλγόριθμους διακλάδωσης.362

Μέρος II. Υπολογισμός και προγραμματισμός

Επικύρωση επιχειρημάτων εισόδου

Ας ξεκινήσουμε με το απλούστερο παράδειγμα - δημιουργήστε ένα αρχείο συνάρτησης για υπολογισμό

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

Σκεφτείτε τους χειριστές Μ-αρχεία για λεπτομέρειες.

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

VariableName= έκφραση

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

Ρύζι. 1.3.4-1. Παραδείγματα Δήλωσης Εργασίας

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

Χειριστές εισαγωγής δεδομένων.Η εισαγωγή δεδομένων στο Matlab μπορεί να γίνει και με τη χρήση του τελεστή εκχώρησης ( a=5;), και χρησιμοποιώντας τη λειτουργία εισαγωγής πληκτρολογίου:

VariableName=input("Αίτηση");

Αυτή η συνάρτηση εισάγει μια έκφραση από το πληκτρολόγιο και το αποτέλεσμα αποθηκεύεται σε μια μεταβλητή με όνομα ένα. Στο παρακάτω παράδειγμα, σε μια μεταβλητή έναεισάγεται πρώτα μια αριθμητική τιμή και μετά μια αριθμητική έκφραση (Εικ. 1.3.4-2).

Ρύζι. 1.3.4-3. Αξιολόγηση μιας έκφρασης που δίνεται σε συμβολική μορφή

Δήλωση υπό όρους εάν... τέλος. Υπό όρους χειριστή αν V γενική εικόναγράφεται ως εξής:

ανBooleanExpression1

Οδηγίες 1

τον άλλονΣυνθήκη 2

BooleanExpression2

BooleanExpression3

Οι κανόνες για τη σύνταξη λογικών εκφράσεων περιγράφονται στο Θέμα 1.1.

Αυτή η κατασκευή επιτρέπει πολλές συγκεκριμένες παραλλαγές. Το πιο απλό - κομμένο πιρούνι [x]έχει την εξής μορφή:

ανBooleanExpression

Οδηγίες

Θυμηθείτε ότι εάν BooleanExpressionεπιστρέφει ένα boolean 1 (δηλαδή "Αληθινό") εκτελούνται Οδηγίες, που αποτελούν το σώμα της κατασκευής αν...τέλος. Ταυτόχρονα ο χειριστής τέλοςυποδεικνύει το τέλος της λίστας οδηγιών. Οι οδηγίες στη λίστα χωρίζονται με κόμμα ή ερωτηματικό. Αν BooleanExpressionδεν εκτελείται (δίνει boolean τιμή 0 , "Λάθος"), τότε Οδηγίεςεπίσης δεν εφαρμόζονται.

Παρακάτω είναι ένα παράδειγμα χρήσης του απλούστερου περικομμένου κλάδου, που υλοποιείται με χρήση του τελεστή αν(Εικ. 1.3.4-4).

Ρύζι. 1.3.4-5. Παράδειγμα τυπικού κλάδου

Από το παραπάνω παράδειγμα, φαίνεται ότι ο χειριστής ανΜπορεί να είναι είτε σε μία γραμμή είτε σε πολλές γραμμές.

Εξετάστε ένα πιο περίπλοκο παράδειγμα - ένθετο κλαδί. Εξετάστε ένα παράδειγμα

Επιπλέον, προκειμένου να αντικατοπτρίζεται πλήρως η δομή μιας πολύπλοκης διακλάδωσης, χωρίς να νοιαζόμαστε για τη μεταφορά μεγάλων γραμμών εντολών, χρησιμοποιούμε Μ-συνάρτηση (Εικ. 1.3.4-7). Ας επιλέξουμε τα δεδομένα για να ελέγξουμε τον κύριο κλάδο και να στραφούμε στη συνάρτηση raz()με διαφορετικά αρχικά δεδομένα (Εικ. 1.3.4-6).

Ρύζι. 1.3.4-7. Μια συνάρτηση που υλοποιεί ένα ένθετο κλάδο

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

διακόπτηςΕκφραση

υπόθεσηΑνάγνωση_1

Λίστα_οδηγιών_1

υπόθεσητιμή_2

Λίστα_οδηγιών_2

υπόθεσηΤιμή_Ν

Instruction_List_N

σε διαφορετική περίπτωση

List_of_instructions_N+1

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

Μ-η συνάρτηση που υλοποιεί πολλαπλή διακλάδωση φαίνεται στο σχ. 1.3.4-8 και η πρόσβαση σε αυτό με αρχικά δεδομένα που σας επιτρέπουν να ελέγξετε κάθε κλάδο του κλάδου φαίνεται στο σχ. 1.3.4-9.

Ρύζι. 1.3.4-9. Κλήσεις λειτουργιών ΠΟΛΛΑΠΛΩΝ ΧΡΗΣΕΩΝ()

Λειτουργία πολλαπλών λειτουργιών (x,n)δύο παραμέτρους, με τη δεύτερη να παίζει το ρόλο ενός δείκτη που καθορίζει το είδος της λειτουργικής εξάρτησης. Η τιμή της συνάρτησης γράφεται σε μια μεταβλητή y. Αν n=1, τότε εκτελείται το πρώτο case-block, αν 2, τότε το δεύτερο, αν n=2, 3 ή 4, τότε το τρίτο. Εάν η τιμή της μεταβλητής n δεν ταιριάζει με καμία από τις τιμές που αναφέρονται, τότε εκτελείται η εντολή που βρίσκεται μετά τη λέξη-κλειδί. σε διαφορετική περίπτωση.

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

για vag = s:d:e

Οδηγία 1

Οδηγία Ν

Οπου μικρό-την αρχική τιμή της μεταβλητής βρόχου var, ρε-Αύξηση αυτής της μεταβλητής και e -τελική τιμή της μεταβλητής ελέγχου, πάνω από την οποία τελειώνει ο βρόχος. Είναι επίσης δυνατή η εγγραφή στη φόρμα s:e(σε αυτήν την περίπτωση d=l). Η λίστα των εντολών που εκτελούνται στον βρόχο τελειώνει με τη δήλωση τέλος.

Ως παράδειγμα χρήσης του χειριστή για...τέλοςνα υπολογίσετε το άθροισμα των στοιχείων του πίνακα Χ, οι τιμές του οποίου ορίζονται στο παράθυρο εντολών χρησιμοποιώντας τη συνάρτηση m summa()(Εικ. 1.3.4-10), του οποίου η παράμετρος είναι το διάνυσμα Χ. Αριθμός στοιχείων πίνακα Χπου ορίζεται από τη συνάρτηση μήκος. Εκτός από την κλήση μιας συνάρτησης, το παράθυρο εντολών παρέχει τον έλεγχο του αποτελέσματος των υπολογισμών χρησιμοποιώντας την ενσωματωμένη συνάρτηση άθροισμα (x)(Εικ. 1.3.4-11).

Ρύζι. 1.3.4-11. Κλήση λειτουργίας summa()και ενσωματωμένη λειτουργία άθροισμα()

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

Εκτός από απλούς κανονικούς βρόχους στο Matlab, είναι δυνατή η οργάνωση ένθετες θηλιές. Εξετάστε ένα παράδειγμα σχηματισμού ενός δισδιάστατου πίνακα ΕΝΑ,κάθε στοιχείο του οποίου αντιπροσωπεύει το άθροισμα των δεικτών του (Εικ. 1.3.4-12). Έκκληση προς γραφή-αρχείο vziklφαίνεται στο σχ. 1.3.4-13.

Ρύζι. 1.3.4-13. Έκκληση προς γραφή-αρχείο με όνομα vzikl

Ο τελεστής επαναληπτικού βρόχου είναι while...end.Γενική άποψη της δομής ενώ...τέλος ως εξής:

ενώBooleanExpression

Οδηγίες

Ένα χαρακτηριστικό γνώρισμα αυτής της δομής είναι ότι οι εντολές που βρίσκονται στο σώμα της δομής επανάληψης εκτελούνται μόνο εάν ορισμένες BooleanExpression"αληθής". Μόλις η συνθήκη γίνει "false", η δομή επανάληψης εξέρχεται και ο έλεγχος μεταφέρεται στην εντολή που βρίσκεται μετά τη λέξη-κλειδί τέλος.

Ας δώσουμε ένα απλό παράδειγμα (Εικ. 1.3.4-14).


Ρύζι. 1.3.4-14. Πρόγραμμα διαλόγου με χρήση τελεστή ενώ...τέλος

Αυτό το πρόγραμμα, αποθηκευμένο σε Μ-αρχείο με όνομα αστάρι11, χρησιμοποιείται για επανειλημμένα υπολογισμό της περιφέρειας μιας τιμής της ακτίνας που έχει εισαχθεί από τον χρήστη r, όπου το παράθυρο διαλόγου υλοποιείται χρησιμοποιώντας την εντολή εισαγωγή.Γραμμές που σχετίζονται με μεταβλητή είσοδο rκαι ο υπολογισμός της περιφέρειας περιλαμβάνονται στη δομή ελέγχου ενώ...τέλος. Αυτό είναι απαραίτητο για την κυκλική επανάληψη των υπολογισμών κατά την εισαγωγή διαφορετικών τιμών. r. Αντίο r>=0, ο κύκλος επαναλαμβάνεται. Αξίζει όμως να ρωτήσετε r<0 , ο υπολογισμός της περιφέρειας σταματά και ο βρόχος τερματίζεται. Αφού στη δεύτερη γραμμή του προγράμματος η τιμή rέχει οριστεί στο 0, ο βρόχος επαναλαμβάνεται τουλάχιστον μία φορά.

Η εργασία με το πρόγραμμα στο παράθυρο εντολών φαίνεται στην εικ. 1.3.4-15.

Ρύζι. 1.3.4-16. Διακοπή προγράμματος με χρήση δήλωσης Διακοπή

Χειριστής να συνεχίσειμεταφέρει τον έλεγχο στην επόμενη επανάληψη του βρόχου, παρακάμπτοντας τις δηλώσεις που τον ακολουθούν, και σε έναν ένθετο βρόχο, μεταφέρει τον έλεγχο στην επόμενη επανάληψη του κύριου βρόχου. Παρακάτω δίνεται ένα παράδειγμα υπολογισμού του αθροίσματος και του γινομένου θετικών στοιχείων ενός δισδιάστατου πίνακα b(3,3) (Εικ. 1.3.4-17).


Ρύζι. 1.3.4-17. Διακοπή προγράμματος με χρήση δήλωσης να συνεχίσει

Παραδείγματα επίλυσης προβλημάτων χρησιμοποιώντας

M-αρχεία

Παράδειγμα 1.3.5-1. Δίνονται n αριθμοί . Απαιτείται να υπολογιστεί το άθροισμά τους: Οπου

Για την επίλυση του προβλήματος, έχει αναπτυχθεί μια συνάρτηση fb(x), το οποίο υλοποιεί τον αλγόριθμο για τον υπολογισμό της τρέχουσας τιμής της συνάρτησης. Η συνάρτηση έχει μία παράμετρο εισόδου - την τρέχουσα τιμή του στοιχείου πίνακα σικαι μια παράμετρος εξόδου - y(Εικ. 1.3.5-1). Η συνάρτηση καλείται σε βρόχο οργανωμένο για τον υπολογισμό του αθροίσματος (Εικ. 1.3.5-2).

Ρύζι. 1.3.5-2. Ένα πρόγραμμα που υλοποιεί τον υπολογισμό του αθροίσματος των αριθμών

Για να υπολογίσετε το άθροισμα των τιμών συνάρτησης που δημιουργήθηκαν γραφή-αρχείο με όνομα zadashа.μ, στον οποίο ο αριθμός των αριθμών ( n=10) και το διάνυσμα των τιμών τους ( σι), και στη συνέχεια οργανώνεται ένας κανονικός βρόχος για την κλήση των συναρτήσεων fb()και τον υπολογισμό του αθροίσματος.

Οι υπολογισμοί γίνονται με τρέξιμο γραφή-αρχείο πληκτρολογώντας στη γραμμή εντολών του παραθύρου παράθυρο εντολώντο όνομά του zadasha. Τα αποτελέσματα της εφαρμογής του φαίνονται στο σχ. 1.3.5-3.


Ρύζι. 1.3.5-3. εκτόξευση γραφή-αρχείο zadashaγια εκτέλεση

Παράδειγμα 1.3.5-2. Σχηματίστε έναν δισδιάστατο πίνακα a(3,4) από αυθαίρετους αριθμούς. Υπολογίστε και εξάγετε έναν μονοδιάστατο πίνακα b, κάθε στοιχείο του οποίου είναι ο αριθμητικός μέσος όρος των στοιχείων της αντίστοιχης σειράς του πίνακα α.

Στο σχ. Δίνεται 1.3.5-4 γραφή-αρχείο με όνομα zadasha2, όπου εισάγεται ο πίνακας, ΕΝΑ, που αποτελείται από τρεις σειρές και τέσσερις στήλες. Ένας βρόχος οργανώνεται από τον αριθμό των σχηματισμένων στοιχείων πίνακα σικαλώντας μια συνάρτηση sred_ar(). Ένας πίνακας περνά στη συνάρτηση ΕΝΑ, αριθμός σειράς ( Εγώ) και τον αριθμό των στοιχείων στη συμβολοσειρά ( Μ). Εμφάνιση στοιχείων πίνακα σιπαρέχονται στη στήλη.

Ρύζι. 1.3.5-5. Λειτουργία sred_ar(), που υπολογίζει τον αριθμητικό μέσο όρο
στοιχεία συμβολοσειράς πίνακα ένα

Ως αποτέλεσμα της εκτόξευσης γραφή-αρχείο με όνομα zadasha2Έξω από το παράθυρο παράθυρο εντολώνεμφανίζεται μια στήλη με στοιχεία πίνακα σι

Ρύζι. 1.3.5-7. Λειτουργία fab(),υπολογίζοντας την τιμή του i-ου όρου

Ρύζι. 1.3.5-9. Εκκίνηση λειτουργίας sumf()για εκτέλεση


Εργαστηριακή εργασία για το θέμα

«Μέσα αλγορίθμου και προγραμματισμού

σε matlab"

Θέματα προς μελέτη

1) Απόψεις Μ-αρχεία.

2) Δημιουργία και αποθήκευση νέων, και άνοιγμα προηγουμένως δημιουργημένων m-αρχείων.

3) Χαρακτηριστικά γραφή-αρχεία και Μ-λειτουργίες.

4) Εκτέλεση για εκτέλεση γραφή-αρχείο από ένα πρόγραμμα επεξεργασίας κειμένου.

5) Εκτέλεση για εκτέλεση γραφή-αρχείο από το παράθυρο εντολών.

6) Καλεί σε γραφή-αρχεία και m-phλειτουργίες.

7) Εργαλεία γλώσσας προγραμματισμού στο σύστημα Matlab.

8) Βασικοί τελεστές m-language, ο σκοπός και οι μορφές τους .

2. Γενική εργασία

1) Εξερευνήστε θέματα 1.3 (p.p. 1.3.1 – 1.3.5).

2) Επιλέξτε μια μεμονωμένη εργασία από το τραπέζι. 1.3.6-1.

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

4) Εισαγω Και αποθηκεύσετε Μ -Λειτουργεί σε εξωτερικά μέσα.

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

6) Αποθηκεύστε το σενάριο -αρχείο στον τρέχοντα κατάλογο.

7) Σενάριο εντοπισμού σφαλμάτων t-file, εκκινώντας το από ένα πρόγραμμα επεξεργασίας κειμένου με την εντολήΤρέξιμο .

8) Προετοιμάζω Και εισαγωαρχικά δεδομένα για την επίλυση του προβλήματος·

9) Εκτελέστε το σενάριο -αρχείο από τη γραμμή εντολών του παραθύρουπαράθυρο εντολών .

10) Αποθηκεύστε το κείμενο παράθυρο εργασίας σε εξωτερικά μέσα.

11) Υποβάλετε τα αποτελέσματά σας εργασία δασκάλου, απάντησηστα ερωτήματα που τέθηκαν.

12) Πλήρης εντολή τα καθαρίζω όλαγια τον καθαρισμό περιβάλλον εργασίας .

13) Υποβολή Αναφοράς σύμφωνα με την εργασία που εκτελείται .


Παραλλαγές μεμονωμένων εργασιών

Πίνακας 1.3.6-1

Ασκηση
Εισαγάγετε έναν φυσικό αριθμό n και το διάνυσμα των πραγματικών αριθμών Εύρημα: Οπου
Υπολογίζω Οπου

Ορισμός πίνακα , που αποτελείται από ζυγό αριθμό στοιχείων. Κάθε ζευγάρι αριθμών , όπου το i+1 είναι πολλαπλάσιο του δύο, καθορίζει τις συντεταγμένες της κορυφής της πολύγραμμης. Κατασκευάστε μια πολύγραμμη, ενώ συνδέετε την τελευταία κορυφή με την πρώτη
. Υπολογισμός προϊόντος , Οπου
Εισαγάγετε έναν φυσικό αριθμό n και έναν πραγματικό αριθμό x. Υπολογίζω
Εισαγάγετε έναν φυσικό αριθμό n. Βρείτε τη μεγαλύτερη μεταξύ των τιμών , όπου k=1, 2,…,n, καθώς και το άθροισμα όλων των τιμών που λαμβάνονται
Εισαγάγετε έναν φυσικό αριθμό n. Ανάμεσα στα νοήματα , Οπου
(i=1,2,…n), βρείτε όλα τα θετικά και υπολογίστε το άθροισμά τους
Εισαγάγετε έναν φυσικό αριθμό n και ένα διάνυσμα πραγματικών αριθμών . Προσδιορίστε αν υπάρχουν περισσότεροι θετικοί ή αρνητικοί αριθμοί σε ένα διάνυσμα και προσδιορίστε τον μεγαλύτερο από τους αρνητικούς και τον μικρότερο από τους θετικούς αριθμούς
Εισαγάγετε τον πίνακα B(5,7) και σχηματίστε το διάνυσμα C(5) από τα πρώτα μεγαλύτερα στοιχεία των σειρών. Εμφάνιση των στοιχείων του σε σειρά και στήλη
Σχηματίστε ένα διάνυσμα σύμφωνα με τον κανόνα: , όπου k=2,3,…, 7, αν Βρείτε το άθροισμα των τετραγώνων εκείνων των αριθμών που δεν υπερβαίνουν το 2
Εισαγάγετε έναν φυσικό αριθμό n και ένα διάνυσμα πραγματικών αριθμών . Βρείτε τον αριθμό δύο γειτονικών θετικών αριθμών και δύο γειτονικών αριθμών διαφορετικού πρόσημου
Εισαγάγετε τον τετραγωνικό πίνακα A(4,4). Σχηματίστε ένα διάνυσμα X από τα μέγιστα στοιχεία των στηλών του, εμφανίστε τα στοιχεία του στην οθόνη με άμεση και αντίστροφη σειρά
Εισαγάγετε ένα διάνυσμα ακεραίων . Μεταμορφώστε το με τέτοιο τρόπο ώστε να τοποθετούνται πρώτα τα μηδενικά και μετά όλα τα άλλα στοιχεία. Προσδιορίστε το άθροισμα και τον αριθμό των στοιχείων των οποίων οι τιμές είναι πολλαπλάσιο του 5
Εισαγάγετε ένα διάνυσμα πραγματικών αριθμών . Δημιουργήστε έναν πίνακα x από αυτόν, κάθε στοιχείο του οποίου είναι το μέγιστο τριών διαδοχικών στοιχείων στον πίνακα z
Σχηματίστε τον πίνακα A(4,4) σύμφωνα με τον κανόνα:
Βρείτε και εμφανίστε τις τιμές και τους δείκτες δύο πανομοιότυπων στοιχείων. Εάν δεν υπάρχουν, εμφανίστε ένα μήνυμα
Σχηματίστε τον πίνακα D(3,2) σύμφωνα με τον κανόνα: . Δημιουργήστε ένα διάνυσμα από τα αρνητικά στοιχεία του πίνακα που προκύπτει
Καθορίστε έναν φυσικό αριθμό n. Υπολογίστε ποιος από τους πίνακες n επί n περιέχει περισσότερα θετικά στοιχεία εάν τα στοιχεία τους σχηματίζονται σύμφωνα με τον κανόνα: Εμφανίστε τους πίνακες που δημιουργούνται
Εισάγετε τον τετραγωνικό πίνακα των πραγματικών αριθμών A(4,4). Βρείτε το άθροισμα των μεγαλύτερων τιμών των στοιχείων των σειρών του. Σχηματίστε έναν νέο πίνακα Β(4,4) πολλαπλασιάζοντας κάθε στοιχείο του πίνακα Α με το άθροισμα που βρέθηκε και διαιρώντας το με την ορίζουσα του αρχικού πίνακα
Εισάγετε τον πίνακα των πραγματικών αριθμών A(4,7) και λάβετε από αυτόν το διάνυσμα C(4), του οποίου τα στοιχεία είναι: · το μεγαλύτερο από τα στοιχεία της πρώτης σειράς. το μικρότερο από τα στοιχεία της δεύτερης σειράς. ο αριθμητικός μέσος όρος των στοιχείων της τρίτης σειράς· το άθροισμα των στοιχείων της τέταρτης σειράς
Εισαγάγετε έναν φυσικό αριθμό n και έναν πίνακα πραγματικών αριθμών С(n,n). Βρείτε τον αριθμητικό μέσο όρο των μεγαλύτερων και μικρότερων τιμών των στοιχείων του και, αντικαθιστώντας τα διαγώνια στοιχεία με αυτήν την τιμή, εμφανίστε τον πίνακα C στην οθόνη
Εισαγάγετε τους φυσικούς αριθμούς k1, k2 και έναν πραγματικό πίνακα 8x4. Εναλλάξτε στοιχεία των σειρών k1 και k2 στον πίνακα
Εισαγάγετε έναν φυσικό αριθμό n και έναν πίνακα πραγματικών αριθμών С(n,9). Βρείτε τον αριθμητικό μέσο όρο καθεμιάς από τις στήλες που έχουν ζυγούς αριθμούς
Εισάγετε διανύσματα πραγματικών αριθμών x(5), y(6), z(7). Υπολογίστε την τιμή του t σύμφωνα με τον ακόλουθο αλγόριθμο:
Εισάγετε διανύσματα πραγματικών αριθμών x(5). Πάρτε για x=1, 3, 4 τιμές Οπου
Εισάγετε διανύσματα πραγματικών αριθμών x(10). Πάρτε έναν άλλο πίνακα p(10) από αυτόν, τα στοιχεία του οποίου ταξινομούνται σε αύξουσα σειρά
Εισάγετε τον πίνακα των πραγματικών αριθμών A(3,4). Αντικαταστήστε τα στοιχεία της γραμμής του πίνακα με το μέγιστο άθροισμα των τιμών των στοιχείων - κατά ένα, με το ελάχιστο - κατά δύο και ορίστε τα υπόλοιπα στοιχεία του πίνακα ίσα με μηδέν
Σχηματίστε έναν πίνακα A(4,4) σύμφωνα με τον κανόνα Διαγράψτε από αυτόν στήλες που περιέχουν στοιχεία μικρότερα από 10
Σχηματίστε τον πίνακα B(9,3) σύμφωνα με τον κανόνα. Προσδιορίστε το μικρότερο στοιχείο σε κάθε σειρά του πίνακα και γράψτε το στο αντίστοιχο στοιχείο του διανύσματος C. Βγάζετε το διάνυσμα C που προκύπτει
Εισαγάγετε έναν πίνακα πραγματικών αριθμών A(3,4), του οποίου όλα τα στοιχεία είναι διαφορετικά. Σε κάθε σειρά, θα πρέπει να επιλέξετε τις μεγαλύτερες και τις μικρότερες τιμές και να γράψετε το άθροισμα των δεικτών των στηλών στις οποίες βρίσκονται στο αντίστοιχο στοιχείο του διανύσματος С(3)
Εισάγετε τον πίνακα των πραγματικών αριθμών A(4,4). Λάβετε ακολουθίες στοιχείων της κύριας και δευτερεύουσας διαγωνίου, δημιουργήστε διανύσματα B(4) και C(4) από αυτά τα στοιχεία και εμφανίστε τα στην οθόνη

1) Με τη μορφή σχολίων:

Όνομα του εργαστηρίου

Όνομα μαθητή, αριθμός ομάδας

Αριθμός επιλογής

· Ατομική εργασία

2) Πρωτόκολλο υπολογισμών (συνεδριών) στο παράθυρο παράθυρο εντολώνμε τα απαραίτητα σχόλια.

1.3.7. Ερωτήσεις ασφαλείας για το θέμα

1) Τι είναι γραφή-αρχείο και ποια είναι τα χαρακτηριστικά του;

2) Πώς γραφή-εκτελείται το αρχείο;

3) Τι είναι Μ-λειτουργίες Εγώ?

4) Ποια είναι η διαφορά γραφή-αρχείο από Μ-λειτουργίες;

5) Μπορεί m- λειτουργίαέχετε πολλαπλές παραμέτρους εξόδου;

6) Καλέστε στο m- λειτουργίες.

7) Μορφή χειριστή εισαγωγή().

8) Τρόπος χρήσης του χειριστή αν...τέλοςεφαρμογή τυπικής, περικομμένης και ένθετης διακλάδωσης;

9) Μορφή χειριστή πολλαπλών υποκαταστημάτων διακόπτης.

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

11) Διορισμός χειριστών να συνεχίσειΚαι Διακοπή.

12) Ο τελεστής επαναληπτικού βρόχου ενώ...τέλοςκαι τη δομή του.


Ενότητα 2. Τεχνολογία λύσης
υπολογιστικές εργασίες με χρήση MatLab

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

Ο ευκολότερος τρόπος για να δημιουργήσετε έναν βρόχο είναι να χρησιμοποιήσετε
για έκφραση. Παρακάτω είναι ένα απλό παράδειγμα όπου υπολογίζεται και εμφανίζεται το 10! = 10 * 9 * 8 ... * 2 * 1.

f = 1;
για n=2:10
f = f*n;
τέλος

f=
3628800

Ένας βρόχος στο matlab ξεκινά με μια δήλωση for και τελειώνει με μια δήλωση τέλους. Ομάδα
μεταξύ αυτών των παραστάσεων εκτελείται εννέα φορές συνολικά, μία φορά για καθεμία
τιμές n από 2 έως 10. Για να διακόψουμε την ενδιάμεση έξοδο εντός του βρόχου, εμείς
χρησιμοποίησε ερωτηματικό. Για να δείτε το τελικό αποτέλεσμα, χρειάζεστε
εισάγετε f μετά το τέλος του βρόχου. Εάν δεν χρησιμοποιείτε ερωτηματικό, το πρόγραμμα
Το MATLAB θα εμφανίζει κάθε ενδιάμεση τιμή 2!, 3!, κ.λπ.

Στην ενότητα Editor, οι εντολές for και end επισημαίνονται αυτόματα
σε μπλε. Αυτό δίνει καλύτερη αναγνωσιμότητα εάν κάνετε επικόλληση μεταξύ τους
τους εντολές (πώς το κάναμε)? η ενότητα Editor το κάνει αυτό
αυτομάτως. Εάν πληκτρολογήσετε στο παράθυρο εντολών,
Το MATLAB δεν θα εκδώσει νέα γραμμή εντολών >> παρά μόνο εσείς
εισάγετε την εντολή end, η οποία θα κάνει το πρόγραμμα MATLAB να ολοκληρώσει έναν πλήρη βρόχο και
θα εμφανίσει μια νέα γραμμή εντολών.

  • Εάν χρησιμοποιείτε έναν βρόχο σε ένα σενάριο M-file με εφέ ηχώ στην οθόνη, τότε οι εντολές θα επαναλαμβάνονται κάθε φορά σε όλο τον βρόχο. Μπορείτε να το αποτρέψετε εισάγοντας μια εντολή echo off ακριβώς πριν από την πρόταση τέλους και μια εντολή echo on αμέσως μετά από αυτήν. τότε κάθε εντολή στον βρόχο θα αντικατοπτρίζεται μία φορά (εκτός από το τέλος).

Σημείωση: υπάρχουν τρεις τύποι βρόχων στο matlab που δίνονται παρακάτω

1. Ο βρόχος for στο Matlab

a=0;
για i=1:10
a=a+1;
τέλος

2. Ο βρόχος while στο Matlab

a=0;
ενώ α<10
a=a+1;
τέλος

3. Ο βρόχος if στο Matlab

a=10;
αν a==10
"πρώτη περίπτωση"
αλλού
"δεύτερη περίπτωση"
τέλος

ανς =
πρώτη περίπτωση

Επομένως, από τα παραπάνω, μπορούμε να συμπεράνουμε ότι πρέπει να εξετάσετε πολλές πρόσθετες πληροφορίες και εναλλακτικές λύσεις!


Τμήμα: Τεχνολογίες Πληροφορικής

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕMATLAB


χειριστέςMATLAB

· Δηλώσεις βρόχου

ΚύκλοςΓια

Σύνταξη

count=start:step:final

Εντολές MATLAB

Περιγραφή

Το count είναι μια μεταβλητή βρόχου,

start είναι η αρχική του τιμή,

τελική είναι η τελική του αξία,

βήμα - το βήμα κατά το οποίο η μέτρηση αυξάνεται κάθε φορά που εισέρχεται στον βρόχο

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

Παράδειγμα

Έστω ότι απαιτείται η παραγωγή μιας οικογένειας καμπυλών για x€, η οποία δίνεται από μια συνάρτηση ανάλογα με την παράμετρο

y (x, a) \u003d e-ax sin x,

για τιμές παραμέτρων a από -0,1 έως 0,1. Παρακάτω είναι μια λίστα ενός προγράμματος αρχείων για την έξοδο μιας οικογένειας καμπυλών.

Καταχώριση προγράμματος

x = ;

για = -0,1:0,02:0,1

y = exp(-a*x).*sin(x);

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

Κύκλοςενώ

Σύνταξη

ενώ κατάσταση βρόχου

Εντολές MATLAB

Περιγραφή

Ο βρόχος εκτελείται όσο ισχύει η (αληθής) συνθήκη του βρόχου. Οι ακόλουθες σχεσιακές πράξεις επιτρέπονται για να θέσουν την προϋπόθεση για την εκτέλεση ενός κύκλου:

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


Παράδειγμα

Χειριστές υποκαταστημάτων

Υπό όρους χειριστήαν

Σύνταξη

εάν προϋπόθεση

Εντολές MATLAB

Περιγραφή

Εάν η συνθήκη είναι αληθής, τότε εκτελούνται οι εντολές του MATLAB που τοποθετούνται μεταξύ if και end, και αν η συνθήκη δεν είναι αληθής, τότε η μετάβαση γίνεται στις εντολές που βρίσκονται μετά το τέλος.

Παράδειγμα

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

Σύνταξη

εάν συνθήκη 1

elseif συνθήκη 2

………………………

κατάσταση elseif

Περιγραφή

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

Παράδειγμα

Χειριστήςδιακόπτης

Σύνταξη

μεταβλητή διακόπτη

τιμή υπόθεσης 1

τιμή υπόθεσης 2

……………………

υποθετική αξία


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

Παράδειγμα

Ο βρόχος διακόπτει. Εξαιρετικές καταστάσεις.

ΧειριστήςΔιακοπή

Σύνταξη

Η εντολή break χρησιμοποιείται για την οργάνωση κυκλικών υπολογισμών: για...τέλος, ενώ...τέλος. Όταν η συνθήκη

εάν προϋπόθεση

η εντολή break τελειώνει τον βρόχο (for or while) και οι εντολές που βρίσκονται στις γραμμές που ακολουθούν το τέλος εκτελούνται. Για ένθετους βρόχους, το break εξέρχεται από τον εσωτερικό βρόχο.

Εξαίρεση χειρισμού, χειριστήςδοκιμάστεσύλληψη

Σύνταξη

δηλώσεις των οποίων η εκτέλεση

μπορεί να οδηγήσει σε σφάλμα

δηλώσεις που πρέπει να εκτελεστούν

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

μεταξύ προσπάθειας και σύλληψης

Περιγραφή

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

Παράδειγμα

Λειτουργίες εξυπηρέτησης

διαθεμφανίζει το κείμενο ή την τιμή μιας μεταβλητής στο παράθυρο εντολών

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

ισοτιμίαεκτελεί τα περιεχόμενα μιας συμβολοσειράς ή μιας μεταβλητής συμβολοσειράς, όπως οι εντολές του MATLAB

Σαφή- Καταργεί μεταβλητές περιβάλλοντος εργασίας.

Μεlc- διαγράφει το παράθυρο εντολών

Για περισσότερες πληροφορίες σχετικά με αυτές και άλλες λειτουργίες, εκτελέστε τη γραμμή εντολών

βοήθειαόνομα_λειτουργίας

Εργασίες για εργαστηριακές εργασίες

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

Εργασία αριθμός 1

Αυτή η εργασία συνεπάγεται την εύρεση ενός αλγεβρικού πολυωνύμου παρεμβολής βαθμού n για κάποιο σύνολο δεδομένων: P n(Χ) .

Στόχος της εργασίας:

Είναι απαραίτητο να γραφτεί ένα πρόγραμμα για τον υπολογισμό των συντελεστών ενός αλγεβρικού πολυωνύμου παρεμβολής P n(Χ)= ένα 0 + ένα 1 Χ+ … + a n x n.

Μεθοδικές οδηγίες:

Ας έχουμε, για παράδειγμα, το ακόλουθο σύνολο δεδομένων:

Εγώ 0 1 2 3
ΧΕγώ 1,2 1,4 1,6 1,8
y i 8,3893 8,6251 8,9286 8,9703

Πιθανότητα ένα 0 , ένα 1 , …, a nπροσδιορίζονται από τη λύση του συστήματος των εξισώσεων:

Εδώ nείναι η σειρά του πολυωνύμου παρεμβολής,

n+1 είναι ο αριθμός των δοσμένων ζευγών πόντων ( Χ, y),

ένα 0 , ένα 1 ,… a nείναι οι επιθυμητοί συντελεστές του πολυωνύμου P n(Χ)= ένα 0 + ένα 1 Χ+ … + a n x n).

Απαιτήσεις προγράμματος

Ορίστε όρια γραμμής , πάνω στο οποίο οικοδομείται το πολυώνυμο παρεμβολής P(x)

· Ρωτήστε nείναι ο αριθμός των τμημάτων παρεμβολής (ή, ισοδύναμα, ο βαθμός του πολυωνύμου)

Σημείωση: x0, xn, nεισάγεται από το πληκτρολόγιο.

· Για τη λήψη αρχικών δεδομένων (x, y)(αριθμός ζευγών πόντων (x i, y i), πάνω στο οποίο κατασκευάζεται το πολυώνυμο παρεμβολής P(x)n1=n+1) προμηθεύω:

Εισαγωγή τυχαία διατεταγμένων κόμβων x i, i=0, nαπό το πληκτρολόγιο

Υπολογισμός κόμβου x i, i=0, n,που αντιστοιχεί στην ενιαία διάταξη του επιχειρήματος Χστο τμήμα

Στη σελ. 1,2 τιμές y i, i=0, nείτε εισάγεται από το πληκτρολόγιο (εάν η αρχική συνάρτηση είναι άγνωστη), είτε υπολογίζεται από μια δεδομένη συνάρτηση f(x). Η έκφραση που ορίζει τη συνάρτηση εισάγεται από το πληκτρολόγιο και πρέπει να ακολουθεί τους κανόνες για τη γραφή εκφράσεων στο MATLAB

Εισαγωγή δεδομένων ( x i, y i, i=0, n) από το αρχείο

Λύστε ένα σύστημα εξισώσεων για τον προσδιορισμό των συντελεστών του πολυωνύμου P(x)

Δημιουργήστε γραφήματα της αρχικής συνάρτησης πίνακα και του πολυωνύμου P(x)

· Εάν τα αρχικά δεδομένα δίνονται ως συνάρτηση f(x), σχεδιάστε το σφάλμα παρεμβολής /f(x) – P(x)/. Υπολογίστε τη μέγιστη τιμή modulo του σφάλματος παρεμβολής σε ένα δεδομένο διάστημα.

Κατά την εκτέλεση του τελευταίου στοιχείου στο τμήμα πάρτε τουλάχιστον 500 βαθμούς για τους υπολογισμούς

Εργασία αριθμός 2

Παρεμβολή Spline

Στόχος της εργασίας:

Είναι απαραίτητο να δημιουργηθεί ένα πρόγραμμα για τον υπολογισμό των συντελεστών και την κατασκευή μιας συνάρτησης spline S(x), «κολλημένη» από κομμάτια πολυωνύμων 3ης τάξης S Εγώ(Χ), που έχουν ειδική σημείωση:

,

Λειτουργία S Εγώ(Χ) ορίζεται στο τμήμα

Απαιτήσεις προγράμματος

Κατά την εκτέλεση αυτής της εργασίας, πρέπει:

Ορίστε τα όρια του τμήματος στο οποίο είναι χτισμένη η συνάρτηση spline S(x).

· Καθορίστε n – τον ​​αριθμό των τμημάτων παρεμβολής, σε καθένα από τα οποία είναι κατασκευασμένο το κυβικό πολυώνυμο Si(x).

· Σημείωση: Τα x0, xn, n εισάγονται από το πληκτρολόγιο.

Οργανώστε την εισαγωγή των αρχικών δεδομένων (x, y) (τον αριθμό των ζευγών σημείων (xi, yi), πάνω στα οποία είναι δομημένη η συνάρτηση spline S(x), n1=n+1), παρέχοντας:

Εισαγωγή αυθαίρετων κόμβων xi, i=0, n από το πληκτρολόγιο

Υπολογισμός των κόμβων xi, i=0, n, που αντιστοιχούν στην ομοιόμορφη διάταξη του ορίσματος x στο τμήμα

Στη σελ. 1,2 οι τιμές yi, i=0, n είτε εισάγονται από το πληκτρολόγιο (αν η αρχική συνάρτηση είναι άγνωστη) είτε υπολογίζονται από τη δεδομένη συνάρτηση f(x). Η έκφραση που ορίζει τη συνάρτηση εισάγεται από το πληκτρολόγιο και πρέπει να ακολουθεί τους κανόνες για τη γραφή εκφράσεων στο MATLAB

Εισαγωγή δεδομένων (xi, yi, i=0, n) από ένα αρχείο

S1""(x0)=0, S3""(x3)=0

S1"(x0)=f"(x0), S3"(x3)=f"(x3)

S1""(x0)=f "(x0), S3""(x0)=f "(x3)

Για τον προσδιορισμό των συντελεστών ενός φυσικού κυβικού spline (οριακές συνθήκες 1), είναι απαραίτητο να λυθεί το ακόλουθο σύστημα εξισώσεων:

Συντελεστές σ 0 =0, σ n =0

· Σχεδιάστε γραφήματα της αρχικής συνάρτησης και των συναρτήσεων spline και για τους τρεις τύπους συνοριακών συνθηκών.

· Σχεδιάστε γραφήματα συναρτήσεων σφάλματος παρεμβολής spline f(x) – S(x) και για τους τρεις τύπους συνοριακών συνθηκών.

Σημείωση:

Στο πακέτο MATLAB, τα ευρετήρια μονοδιάστατων και δισδιάστατων πινάκων ξεκινούν από το 1 και όχι από το 0. Λάβετε αυτό υπόψη όταν γράφετε ένα πρόγραμμα.