Πληροφορική. Ενότητα 4: Α. Λογικές εκφράσεις (Παραστάσεις και Δείκτες). Β. Δομές Προγραμματισμού. Κωνσταντίνος Καρατζάς Τμήμα Μηχανολόγων Μηχανικών

Σχετικά έγγραφα
Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

Πληροφορική ΙΙ Θεματική Ενότητα 5

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Μηχανολογικό Σχέδιο Ι

Ιστορία της μετάφρασης

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Λογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Εκκλησιαστικό Δίκαιο

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Γενικά Μαθηματικά Ι. Ενότητα 9: Κίνηση Σε Πολικές Συντεταγμένες. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Εκκλησιαστικό Δίκαιο

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Παράκτια Τεχνικά Έργα

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Έλεγχος συνθηκών

Προγραμματισμός και Εφαρμογές Υπολογιστών

Γενικά Μαθηματικά Ι. Ενότητα 1: Συναρτήσεις και Γραφικές Παραστάσεις. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Εισαγωγή στους Αλγορίθμους

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΓΕΝΙΚΗ ΚΑΙ ΑΝΟΡΓΑΝΗ ΧΗΜΕΙΑ

Γενικά Μαθηματικά Ι. Ενότητα 5: Παράγωγος Πεπλεγμένης Συνάρτησης, Κατασκευή Διαφορικής Εξίσωσης. Λουκάς Βλάχος Τμήμα Φυσικής

Δομημένος Προγραμματισμός

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Γενικά Μαθηματικά Ι. Ενότητα 14: Ολοκλήρωση Κατά Παράγοντες, Ολοκλήρωση Ρητών Συναρτήσεων Λουκάς Βλάχος Τμήμα Φυσικής

Γενικά Μαθηματικά Ι. Ενότητα 16: Ολοκλήρωση Τριγωνομετρικών Συναρτήσεων, Γενικευμένα Ολοκληρώματα Λουκάς Βλάχος Τμήμα Φυσικής

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Εισαγωγή στους Υπολογιστές

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Ιστορία της μετάφρασης

Οικονομία των ΜΜΕ. Ενότητα 7: Μορφές αγοράς και συγκέντρωση των ΜΜΕ

Εισαγωγή στους Αλγορίθμους

Βέλτιστος Έλεγχος Συστημάτων

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

Διπλωματική Ιστορία Ενότητα 2η:

Εισαγωγή στην πληροφορική

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Εκκλησιαστικό Δίκαιο

Δομημένος Προγραμματισμός

Γενικά Μαθηματικά Ι. Ενότητα 13: Ακτίνα Σύγκλισης, Αριθμητική Ολοκλήρωση, Ολοκλήρωση Κατά Παράγοντες. Λουκάς Βλάχος Τμήμα Φυσικής

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ. Λογισμός 4. Ενότητα 5: Το Θεώρημα του Fubini. Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών

Χώρος και Διαδικασίες Αγωγής

Διοίκηση Επιχειρήσεων

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

Αξιολόγηση μεταφράσεων ιταλικής ελληνικής γλώσσας

Προγραμματισμός και Εφαρμογές Υπολογιστών

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Οικονομία των ΜΜΕ. Ενότητα 9: Εταιρική διασπορά και στρατηγικές τιμολόγησης

Γενικά Μαθηματικά Ι. Ενότητα 17: Αριθμητική Ολοκλήρωση, Υπολογισμός Μήκους Καμπύλης Λουκάς Βλάχος Τμήμα Φυσικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Πληροφορική. Ενότητα 5: Α. Λογικές εκφράσεις και δείκτες (Β μέρος- Διαχείριση πινάκων). Β. Αριθμητικές μέθοδοι επίλυσης προβλημάτων

Γεωργική Εκπαίδευση Ενότητα 9

Λογισμός 3. Ενότητα 18: Θεώρημα Πεπλεγμένων (Ειδική περίπτωση) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΑΡΙΣΤΟΤΕΛΕΙΟ ΑΝΟΙΚΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΚΑΔΗΜΑΪΚΑ ΘΕΣΣΑΛΟΝΙΚΗΣ ΜΑΘΗΜΑΤΑ Γενικά Μαθηματικά Ι Ενότητα 11 : Ακολουθίες και Σειρές Λουκάς Βλάχος Τμήμα Φυσικής

Προγραμματισμός και Εφαρμογές Υπολογιστών

Διδακτική της Πληροφορικής

Επιμέλεια μεταφράσεων και εκδοτικός χώρος

Εκκλησιαστικό Δίκαιο

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης

Πληροφορική ΙΙ Θεματική Ενότητα 6

Διοικητική Λογιστική

Υπόγεια Υδραυλική και Υδρολογία

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ. Γενικά Μαθηματικά Ι. Ενότητα 6: Ακρότατα Συνάρτησης. Λουκάς Βλάχος Τμήμα Φυσικής

Μηχανολογικό Σχέδιο Ι

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Οδοποιία IΙ. Ενότητα 14: Υπόδειγμα σύνταξης τευχών θέματος Οδοποιίας. Γεώργιος Μίντσης ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Φ 619 Προβλήματα Βιοηθικής

Χώρος και Διαδικασίες Αγωγής

Μηχανολογικό Σχέδιο Ι

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

Αξιολόγηση και ανάλυση της μυϊκής δύναμης και ισχύος

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΓΕΝΙΚΗ ΚΑΙ ΑΝΟΡΓΑΝΗ ΧΗΜΕΙΑ

Διπλωματική Ιστορία. Ενότητα 12η: Ο Β Παγκόσμιος Πόλεμος Η Ευρώπη. του Hitler Ιωάννης Στεφανίδης, Καθηγητής Τμήμα Νομικής Α.Π.Θ.

Εκκλησιαστικό Δίκαιο Ι (Μεταπτυχιακό)

Εισαγωγή στους Αλγορίθμους

Φ 619 Προβλήματα Βιοηθικής

Συμπεριφορά Καταναλωτή

Συμπεριφορά Καταναλωτή

Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Εκκλησιαστικό Δίκαιο Ι (Μεταπτυχιακό)

Στρατηγικό Μάρκετινγκ

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Πληροφορική Ενότητα 4: Α. Λογικές εκφράσεις (Παραστάσεις και Δείκτες). Β. Δομές Προγραμματισμού Κωνσταντίνος Καρατζάς Τμήμα Μηχανολόγων Μηχανικών

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Πληροφορική Τμήμα Μηχανολόγων Μηχανικών 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Πληροφορική Τμήμα Μηχανολόγων Μηχανικών 3

Ο Μ Α Δ Α Ε Φ Α Ρ Μ Ο Γ Ω Ν Σ Υ Σ Τ Η Μ Α Τ Ω Ν Π Λ Η Ρ / Κ Η Σ - Π Ε Ρ Ι Β Α Λ Λ Ο Ν Τ Ι Κ Η Σ Π Λ Η Ρ / ΚΗΣ ( I S A G ) Δ.#7Α: ΠΛΗΡΟΦΟΡΙΚΗ ΛΟΓΙΚΕΣ ΕΚΦΡΑΣΕΙΣ (ΠΑΡΑΣΤΑΣΕΙΣ & ΔΕΙΚΤΕΣ) 17 Μαρτίου 2015 Κώστας Καρατζάς Τμήμα Μηχανολόγων Μηχανικών, ΑΠΘ

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

Σχεσιακοί Τελεστές Τελεστής Συμβολσμός Ίσο == Μικρότερο από < Μικρότερο ή ίσο από <= Μεγαλύτερο από > Μεγαλύτερο ή ίσο από >= Όχι ίσο ~=

Σχεσιακοί τελεστές σε «εκφράσεις» Η χρήση των τελεστών οδηγεί πάντα σε έναν έλεγχο που έχει δύο δυνατά αποτελέσματα: Αληθής Ψευδής

Παράδειγμα >> a=4; b=5; >> a>=b ans??

Παράδειγμα >> a=4; b=5; >> a~=b ans =??

Παράδειγμα >> x='mitsos' >> x=='mitsos' ans = 1 1 1 1 1 1

Παράδειγμα >> a=1:4; >> b=4:-1:1; >> a>b % Τι κάνω εδώ; ans =??

Λογικοί Τελεστές Τελεστής Συνάρτηση Συμβολισμός Λογική σύζευξη and(var1, var2) & Λογική διάζευξη or(var1, var2) Λογική σύζευξη ( βραχυκυκλωμένη ) * && Π.χ. Α=0, Β=1 Α&&Β= f Λογική διάζευξη ( βραχυκυκλωμένη ) Λογική άρνηση not(var1) ~ Λογικό αποκλειστικό xor(var1) xor * http://www.mathworks.com/help/matlab/ref/logicaloperatorsshortcircuit.html

Λογικοί Τελεστές (συνήθως χρησιμοποιούμενοι) Τελεστής Συνάρτηση Συμβολισμός Λογική σύζευξη and(var1, var2) & Λογική διάζευξη or(var1, var2) Λογική σύζευξη ( βραχυκυκλωμένη ) && Λογική διάζευξη ( βραχυκυκλωμένη ) Λογική άρνηση not ~

Πίνακας «αληθείας» Inputs and A & B or A B xor not ~A A B and(a,b) or(a,b) xor(a,b)!α 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0

Πίνακας «αληθείας» Inputs and A & B or A B xor not ~A A B and(a,b) or(a,b) xor(a,b)!α 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0

Λογικοί τελεστές Σύγκριση στοιχείο προς στοιχείο (οι τελεστέοι αποτελούν στοιχεία πινάκων) and, or (&, ) Κάθε στοιχείο κρίνεται ως προς το εάν είναι Μηδέν -> false Όχι μηδέν -> true Το αποτέλεσμα είναι ένας πίνακας λογικών τιμών (0,1) ίδιων διαστάσεων με τα συγκρινόμενα διανύσματα - πίνακες Σύγκριση δύο λογικών τιμών (οι τελεστέοι αποτελούν «βαθμωτά» μεγέθη) βραχυκυκλωμένο and, or (&&, ) Κάθε τιμή κρίνεται ως προς το εάν είναι Μηδέν -> false Όχι μηδέν -> true Το αποτέλεσμα είναι μία λογική τιμή (0,1)

Λογικοί τελεστές Σύγκριση στοιχείο προς στοιχείο (οι τελεστέοι αποτελούν στοιχεία πινάκων) and, or (&, ) Κάθε στοιχείο κρίνεται ως προς το εάν είναι Μηδέν -> false Όχι μηδέν -> true Το αποτέλεσμα είναι ένας πίνακας λογικών τιμών (0,1) ίδιων διαστάσεων με τα συγκρινόμενα διανύσματα - πίνακες Σύγκριση δύο λογικών τιμών (οι τελεστέοι αποτελούν «βαθμωτά» μεγέθη) βραχυκυκλωμένο and, or (&&, ) Κάθε τιμή κρίνεται ως προς το εάν είναι Μηδέν -> false Όχι μηδέν -> true Το αποτέλεσμα είναι μία λογική τιμή (0,1)

Παραδείγματα >> a=1; >> b=2; >> a<0 b>3 ans =?

Παραδείγματα >> a=1; >> b=2; >> a<0 b>3 ans = 0

Παραδείγματα Έστω δυνάμεις F με συνιστώσες Fx και Fy: >> Fx= [ -1 0 1 0 5] >> Fy= [ pi 0 0 0 1] >> Fx & Fy ans =???? Πίνακας

Παραδείγματα Έστω δυνάμεις F με συνιστώσες Fx και Fy: >> Fx= [ -1 0 1 0 5] >> Fy= [ pi 0 0 0 1] >> Fx & Fy ans = 1 0 0 0 1 Πίνακας

Παραδείγματα >> a=-5:5; >> b=5:-1:-5; >> a>zeros(1,11) & b<3*ones(1,11) ans =???? Πίνακας

Παραδείγματα >> a=-5:5; >> b=5:-1:-5; >> a>zeros(1,11) & b<3*ones(1,11) ans = 0 0 0 0 0 0 1 1 1 1 1

Παραδείγματα B = [0 1 2 0] >> ~B ans =???? 1 0 0 1 >> ~~B ans =???? 0 1 1 0 >> B~=0 ans =???? 0 1 1 0

Παραδείγματα A = [0 1 2 3] B = [0 1 2 0] >> xor(a,b) ans =???? 0 0 0 1

Παραδείγματα A = [0 1 2 3] B = [0 1 2 0] >> or(a,b) >> A B ans =???? 0 1 1 1

Παραδείγματα A = [0 1 2 3] B = [0 1 2 0] >> and(a,b) >> A&B ans =???? 0 1 1 0

Λογικοί τελεστές Σύγκριση στοιχείο προς στοιχείο (οι τελεστέοι αποτελούν στοιχεία πινάκων) and, or (&, ) Κάθε στοιχείο κρίνεται ως προς το εάν είναι Μηδέν -> false Όχι μηδέν -> true Το αποτέλεσμα είναι ένας πίνακας λογικών τιμών (0,1) ίδιων διαστάσεων με τα συγκρινόμενα διανύσματα - πίνακες Σύγκριση δύο λογικών τιμών (οι τελεστέοι αποτελούν «βαθμωτά» μεγέθη) βραχυκυκλωμένο and, or (&&, ) Κάθε τιμή κρίνεται ως προς το εάν είναι Μηδέν -> false Όχι μηδέν -> true Το αποτέλεσμα είναι μία λογική τιμή (0,1)

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

Παραδείγματα a = 1 b = 7 >> x = (a ~= 0) && (a/b > 18.5) ans =???? 0 Έστω ότι θέλω να υπολογίσω το x=-b-diakr/2*b μόνο στην περίπτωση που ο παρονομαστής δεν είναι μηδέν και diakr>0

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

Επιπρόσθετοι λογικοί τελεστές & σχετικές εντολές all Είναι όλα τα στοιχεία ενός πίνακα μη μηδενικά ή true? any Είναι κάποια από τα στοιχεία ενός πίνακα μη μηδενικά ή true? false Logical 0 (false) find Βρες θέσεις και τιμές μη μηδενικών στοιχείων islogical Είναι λογικός πίνακας? logical Μετατροπή αριθμητικών τιμών σε λογικές true Logical 1 (true)

Η εντολή find Μία ιδιαίτερα χρήσιμη εντολή του Matlab είναι η εντολή find, η οποία μας δίνει τη δυνατότητα να βρούμε στοιχεία ενός πίνακα που πληρούν μία λογική συνθήκη. Η σύνταξή της είναι: find(λογική έκφραση) και επιστρέφει μία λίστα από θέσεις του πίνακα που πληρούν την λογική έκφραση.

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

Παράδειγμα χρήσης της find Έστω 100 τυχαίοι αριθμοί σε ένα διάνυσμα. Σε ποιές θέσεις του βρίσκονται όσοι είναι > μ+σ? >> x=randn(1,100); Και τώρα τι κάνω? (daydreaming..) Έχω συναρτήσεις για m και σ??? mean(x), std(x)!!!!

Παράδειγμα χρήσης της find Έστω 100 τυχαίοι αριθμοί σε ένα διάνυσμα. Σε ποιές θέσεις του βρίσκονται όσοι είναι > μ+σ? >> x=randn(1,100); Και τώρα τι κάνω? (daydreaming..) >> find(όσα x είναι > μ+σ)) >> find(x>mean(x)+std(x))

Παράδειγμα χρήσης της find Και ποια είναι αυτά τα στοιχεία; >> find(x>mean(x)+std(x)) Χρησιμοποιώ τους δείκτες θέσης στοιχείων! x(δείκτες θέσης στοιχείων) %δηλαδή.. x(find(x>mean(x)+std(x)))

Λογικές Συναρτήσεις

Παραδείγματα >> a=[]; >> isempty(a) ans =? >> a=[1 NaN; 3 4]; >> isnan(a) ans =?? >> a=[1 Inf 3 4]; >> isinf(a) ans =??

Συνοψίζοντας Σχεσιακοί τελεστές: συγκρίνουν δύο ποσότητες. Το αποτέλεσμα είναι true/false Λογικοί τελεστές:ελέγχουν μία παράσταση. Το αποτέλεσμα είναι true/false Σύγκριση στοιχείο προς στοιχείο Σύγκριση λογικών τιμών (βραχυκυκλ.) Λογικές συναρτήσεις: είναικάτι, βρές, κλπ

Κάθε τέλος είναι μία καινούργια αρχή! Κώστας Καρατζάς Τμήμα Μηχανολόγων Μηχανικών, ΑΠΘ

Ο Μ Α Δ Α Ε Φ Α Ρ Μ Ο Γ Ω Ν Σ Υ Σ Τ Η Μ Α Τ Ω Ν Π Λ Η Ρ / Κ Η Σ - Π Ε Ρ Ι Β Α Λ Λ Ο Ν Τ Ι Κ Η Σ Π Λ Η Ρ / ΚΗΣ ( I S A G ) Δ.#7Β: ΠΛΗΡΟΦΟΡΙΚΗ ΔΟΜΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 17 Μαρτίου 2015 Κώστας Καρατζάς Τμήμα Μηχανολόγων Μηχανικών, ΑΠΘ

Δομές Προγραμματισμού Όπως σε όλες τις γλώσσες προγραμματισμού, έτσι και στο Matlab υπάρχουν οι βασικές δομές προγραμματισμού (ελέγχου και επανάληψης).

Δομές Προγραμματισμού Δομή ελέγχου: if και select case Δομή επανάληψης: for και while

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

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

Δομές Ελέγχου

Δομές Ελέγχου Η βασική εντολή ελέγχου είναι η if...else end Μπορούμε να έχουμε εμφωλευμένες δομές ελέγχου. if (συνθήκη 1) ομάδα εντολών 1 else ομάδα εντολών 2 end

Δομές Πολλαπλού Ελέγχου Η βασική εντολή ελέγχου είναι η if..else.. end. Μπορούμε να έχουμε εμφωλευμένες δομές ελέγχου. if (συνθήκη 1) ομάδα εντολών 1 elseif (συνθήκη 2) ομάδα εντολών 2 elseif (συνθήκη 3) ομάδα εντολών 3 else ομάδα εντολών 4 end

Δομές Πολλαπλού Ελέγχου if (συνθήκη 1) ομάδα εντολών 1 else if (συνθήκη 2) ομάδα εντολών 2 else if (συνθήκη 3) ομάδα εντολών 3 else ομάδα εντολών 4 end end end if (συνθήκη 1) ομάδα εντολών 1 elseif (συνθήκη 2) ομάδα εντολών 2 elseif (συνθήκη 3) ομάδα εντολών 3 else ομάδα εντολών 4 end

Παράδειγμα δομής ελέγχου % round: στον εγγύτερο ακέραιο There are 3 in x There are 2 in x There are 2 in x There are 4 in x There are 2 in x There are 2 in x There are 1 in x There are no ones in x

Παράδειγμα δομής ελέγχου 3000 2500 % round: στον εγγύτερο ακέραιο 2000 1500 There are 3 in x 1000 There are 2 in x There are 2 in x There are 4 in x 500 There are 2 in x There are 2 in x There are 1 in x There are no ones in x 0-4 -3-2 -1 0 1 2 3 4

Η δομή switch Χρησιμοποιείται όταν έχουμε έναν προκαθορισμένο αριθμό περιπτώσεων. Η σύνταξη είναι: switch case έκφραση end case περίπτωση 1 ομάδα εντολών 1 case περίπτωση 2 ομάδα εντολών 2 otherwise ομάδα εντολών N

Παράδειγμα χρήσης της εντολής switch web: εντολή που λείπει στο Octave >> visit_site Please, enter site:google

Δομές Επανάληψης

Και τι γίνεται όταν θέλουμε επαναλήψεις? Τι κοινό έχουν: Ένας σκύλος που κυνηγά την ουρά του Ένας μηχανισμός που κινεί προϊόντα σε αυτόματο πωλητή αναψυκτικών Το σύστημα ελέγχου πρόσφυσης σε αυτοκίνητο Κλπ Επαναλήψεις!

Πρόβλημα: Ακολουθία Fibonacci 1 1 2 3 5 8 13 21 34, F1 = 1 F2 = 1 F (n) = F(n-1)+F(n-2) Τι συμβαίνει όταν το n δεν είναι γνωστό εκ των προτέρων, αλλά εισάγεται κατά την εκτέλεση του προγράμματος;

Δομές Επανάληψης Μία διαδικασία που επαναλαμβάνεται αρκετές φορές έως ότου ο λόγος για τον οποίο γίνεται η επανάληψη αυτή εκλείψει, περιγράφεται με......... μία δομή επανάληψης!!!

Δομές Επανάληψης Οι βασικές δομές επανάληψης στο Matlab είναι οι for και while. H for χρησιμοποιείται όταν είναι γνωστός εκ των προτέρων ο αριθμός των επαναλήψεων, ενώ η while όταν δεν είναι γνωστός (χρήση συνθήκης). Η σύνταξη των εντολών είναι: for μετρητής=αρχή : βήμα : τέλος εντολές end while συνθήκη εντολές end Εκτελείται όσες φορές καθορίζει ο μετρητής. Εκτελείται όσο η συνθήκη είναι αληθής Για τις εντολές for και while πρώτα γίνεται ο έλεγχος μετά η εκτέλεση!

Παράδειγμα δομής επανάληψης με for for i=1:2:10 end disp(i^2) for i=[2 4 1 6] end disp(i^2) 1 9 25 49 81 4 16 1 36

Δομές Επανάληψης Η βασικές δομές επανάληψης στο Matlab είναι οι for και while. H for χρησιμοποιείται όταν είναι γνωστός εκ των προτέρων ο αριθμός των επαναλήψεων, ενώ η while όταν δεν είναι γνωστός (χρήση συνθήκης). Η σύνταξη των εντολών είναι: for μετρητής=αρχή : βήμα : τέλος εντολές end while συνθήκη εντολές end Εκτελείται όσες φορές καθορίζει ο μετρητής. Εκτελείται όσο η συνθήκη είναι αληθής

Παράδειγμα χρήσης της εντολής while dt = 0; counter=0; tic t0 = cputime; % έναρξη χρονομέτρησης while (dt<5) % 5 second counter = counter + 1; dt = cputime - t0; end toc -> counter: 6900767

Ποια η τιμή του μετρητή Στο for Στο while

Με τη βοήθεια παραδείγματος.. Fibonacci: F1 = 1 F2 = 1 F (n) = F(n-1)+F(n-2)

function apotelesma = fiboko(n) %upologismos Fibonacci apotelesma=zeros(1,n); %giati??? apotelesma(1)=1; apotelesma(2)=1; for i=3:n apotelesma(i)=apotelesma(i-1)+apotelesma(i-2); end fprintf('timi deikti i: %.0f \n', i) fprintf('teliki timi deikti i: %.0f \n', i) end

fiboko(20) timi deikti i: 20 TELIKI timi deikti i: 20

function apotelesma = fiboko(n) %upologismos FIbonacci apotelesma=zeros(1,n); %giati??? apotelesma(1)=1; apotelesma(2)=1; i=3 while i<=n apotelesma(i)=apotelesma(i-1)+apotelesma(i-2); fprintf('timi deikti i: %.0f \n', i) i=i+1; end fprintf('teliki timi deikti i: %.0f \n', i) end

fiboko(20) timi deikti i: 20 TELIKI timi deikti i: 21

Why is this happening? For: εκτελείται έως ότου ο μετρητής φτάσει στη μέγιστη (καθορισμένη από το χρήστη) τιμή. Αμέσως μετά παύει η εκτέλεση της επανάληψης και το πρόγγραμμα συνεχίζεται While: εκτελείται όσο ισχύει η συνθήκη. Άρα για να περατωθεί η επανάληψη, πρέπει η συνθήκη να γίνει ψευδής.

Από for σε while Μπορώ να μετατρέψω ένα for loop σε ένα while loop μετατρέποντας την επανάληψη σε λογική συνθήκη

for -- > while for i=1:2:10 disp(i^2) end i=1; while i<=10 disp(i^2) i+i+2; end

for -- > while for i=[2 4 1 6] disp(i^2) end i=[2 4 1 6] while i<=noe disp(i^2) noe=noe+1; end

Συνοψίζοντας for: όταν γνωρίζω αριθμό επαναλήψεων while : όταν δεν γνωρίζω αριθμό επαναλήψεων αλλά γνωρίζω συνθήκη ελέγχου Τα while χρησιμοποιούν συνθήκες ελέγχου: συνεχίσουν έως ότου αυτές γίνουν ψευδείς Τα for loops μπορούν να μετατραπούν σε while loops

Και κάτι τελευταίο Μόλις 30 χρόνια πριν! Ένα πρόγραμμα (Fortran) αποτελούμενο από 278 διάτρητες κάρτες. Οι συνδυασμοί στις κάρτες αντιστοιχούσαν σε εντολές Fortran.

Τέλος Κώστας Καρατζάς Τμήμα Μηχανολόγων Μηχανικών, ΑΠΘ

Σημείωμα Αναφοράς Copyright Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, Κωνσταντίνος Καρατζάς. «Πληροφορική. Ενότητα 4: Α. Λογικές εκφράσεις (Παραστάσεις και Δείκτες). Β. Δομές Προγραμματισμού». Έκδοση: 1.0. Θεσσαλονίκη 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: https://opencourses.auth.gr/courses/ocrs328/ Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Πληροφορική Τμήμα Μηχανολόγων Μηχανικών

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά - Παρόμοια Διανομή [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. [1] http://creativecommons.org/licenses/by-sa/4.0/ Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Πληροφορική Τμήμα Μηχανολόγων Μηχανικών

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Τέλος ενότητας Θεσσαλονίκη, Εαρινό Εξάμηνο 2014-2015

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Σημειώματα

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Πληροφορική Τμήμα Μηχανολόγων Μηχανικών