ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MATLAB



Σχετικά έγγραφα
ΑΛΓΟΡΙΘΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MATLAB

ΚΕΦΑΛΑΙΟ 1 Ψηφιακός Κόσμος

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

Β1.1 Αναπαράσταση Δεδομένων και Χωρητικότητα Μονάδων Αποθήκευσης

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB

ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ

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

Κεφάλαιο 4: Λογισμικό Συστήματος

Τετάρτη 5-12/11/2014. ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ

Λειτουργικά Συστήματα (Λ/Σ)

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τα επιμέρους τμήματα Η ΟΜΗ TOY ΥΠΟΛΟΓΙΣΤΗ. Αναπαράσταση μεγεθών. Αναλογική αναπαράσταση ΚΕΝΤΡΙΚΗ ΜΝΗΜΗ ΜΟΝΑ Α ΕΛΕΓΧΟΥ

ΕΙΣΑΓΩΓΗ ΣΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Microsoft WINDOWS (95-98-NT-2000-XP)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB

Εισαγωγή στην Αριθμητική Ανάλυση

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στην Πληροφορική ΓΕΝΙΚΟ ΤΜΗΜΑ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ TEI ΧΑΛΚΙ ΑΣ

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

Κεφάλαιο 2.4: Εργασία με εικονίδια

ΣΗΜΕΙΩΣΕΙΣ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7 Κεφάλαιο 1: Windows XP Κεφάλαιο 2: Επιφάνεια εργασίας (desktop)... 15

2. ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. 2.1 Αριθμητικά συστήματα

Τυπικές χρήσεις της Matlab

Το «κλειστό» σύστημα. Ανοικτές επικοινωνίες... Εισαγωγή στην Τεχνολογία της Πληροφορικής. Εισαγωγή στην τεχνολογία της πληροφορικής

Μάθημα 2: Παράσταση της Πληροφορίας

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 2ο Αναπαράσταση Δεδομένων

ΠΛΗΡΟΦΟΡΙΚΉ. Μάθημα 7

Παραδείγματα Δεδομένων: Οι τιμές στο κυλικείο, μια λίστα από ονόματα, τα σήματα της τροχαίας.

ΠΡΟΒΛΗΜΑ ΕΠΕΓΕΡΓΑΣΙΑ. (Είναι οι σκέψεις και οι πράξεις που κάνουμε για να λυθεί το πρόβλημα) ΕΙΣΟΔΟΥ - ΕΞΟΔΟΥ

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 5

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30

Προγραμματισμός Ι (HY120)

Βασική δοµή και Λειτουργία Υπολογιστή

Αναπαράσταση Μη Αριθμητικών Δεδομένων

ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6

! Δεδομένα: ανεξάρτητα από τύπο και προέλευση, στον υπολογιστή υπάρχουν σε μία μορφή: 0 και 1

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης

Βασικές Έννοιες της Πληροφορικής

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

Λιβανός Γιώργος Εξάμηνο 2017Β

ΦΥΛΛΟ ΠΛΗΡΟΦΟΡΙΩΝ. Μονάδες μέτρησης χωρητικότητας μνήμης - Η περιφερειακή μνήμη

ΘΕΜΑ : ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ. ΔΙΑΡΚΕΙΑ: 1 περιόδους. 22/1/ :11 Όνομα: Λεκάκης Κωνσταντίνος καθ. Τεχνολογίας

Σημειώσεις : Χρήστος Μουρατίδης. Κάντε κλικ για έναρξη

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΚΕΦΑΛΑΙΟ 1 Βασικές Έννοιες της Πληροφορικής

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Λειτουργικά Συστήματα Ι - Εργαστήριο

Ψηφιακά Κυκλώματα Ι. Μάθημα 1: Δυαδικά συστήματα - Κώδικες. Λευτέρης Καπετανάκης

4 η γενιά ( δεκαετία 70 έως σήμερα) Δομικό Στοιχείο : Ολοκληρωμένο κύκλωμα ή τσιπ μεγάλης κλίμακας ολοκλήρωσης.

Μαλούτα Θεανώ Σελίδα 1

Εισαγωγή στον Προγραμματισμό

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

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

ΑΕΠΠ Ερωτήσεις θεωρίας

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

Εισαγωγή στην επιστήμη των υπολογιστών. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ και Μετατροπές Αριθμών

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

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (TP-105)

Αναπαράσταση Δεδομένων. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Πληροφορική 2. Δομές δεδομένων και αρχείων

ΠΕΡΙΕΧΟΜΕΝΑ 1 ΚΕΦΑΛΑΙΟ ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΑΠΟ ΤΗΝ ΑΡΧΑΙΟΤΗΤΑ ΜΕΧΡΙ ΣΗΜΕΡΑ Ιστορική αναδρομή Υπολογιστικές μηχανές

MATLAB Desktop (Επιφάνεια Εργασίας MATLAB) [1.]

7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Αναπαράσταση δεδομένων

Περιεχόµενα. I Βασικές Γνώσεις 1

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ B.2.M3 Κύρια και Βοηθητική Μνήμη

[2] Υπολογιστικά συστήματα: Στρώματα. Τύποι δεδομένων. Μπιτ. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

Εισαγωγή στους Η/Υ & Εφαρμογές

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Το Λειτουργικό Σύστημα MS-DOS

ΕΠΙΜΕΛΕΙΑ: ΚΩΣΤΑΣ ΔΕΛΗΜΑΡΗΣ - ΧΡΗΣΗ ΗΥ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ

0 κ. Αντης Χατζηβασιλείου, Διευθυντής της Εταιρείας DATACOM παραδίδει στον κ. Σάββα Πετρίδη ένα Η.Υ. δώρο στην ΚΕΕΒ για τις μηχανογραφικές ανάγκες

Μόνιμη Αποθήκευση Δεδομένων στον Η/Υ

Εργαστήριο του Μαθήματος: ΕΠΛ 001: Εισαγωγή στην Επιστήμη της Πληροφορικής

MULTIPLE CHOICE REVISION: ΜΑΘΗΜΑ 1-2

ΠΛΗΡΟΦΟΡΙΚΗ. Β Γυμνασίου Σχολικό έτος

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

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

1 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ ΣΤΗ ΧΡΗΣΗ ΗΥ

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας

Πρόβλημα 29 / σελίδα 28

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Μαλούτα Θεανώ Σελίδα 1

Transcript:

Γιάννης Καλατζής ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MATLAB ` ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΘΕΩΡΙΑ 2011

Το εγχειρίδιο αυτό περιέχει τις βασικές αρχές προγραμματισμού των ηλεκτρονικών υπολογιστών, χωρίς καμία προαπαιτούμενη γνώση, για χρήση κυρίως από προπτυχιακούς σπουδαστές τμημάτων μηχανικών και θετικών επιστημών. Ως γλώσσα προγραμματισμού επιλέχθηκε αυτή του περιβάλλοντος MATLAB της εταιρείας MathWorks. Παρόλ αυτά, ο κύριος στόχος δεν είναι η εκμάθηση του MATLAB, αλλά του γενικού αλγοριθμικού προγραμματισμού, και γι αυτό παραλείπονται αρχικά πολλές από τις εξαιρετικά χρήσιμες και ιδιαίτερες δυνατότητες του MATLAB (οι οποίες όμως αναφέρονται στη συνέχεια σε ιδιαίτερες παραγράφους). Αντίθετα, δίνεται έμφαση στην ανάπτυξη απλού κώδικα, ώστε οι σπουδαστές να διδαχτούν τις γενικές αρχές του προγραμματισμού, και να μπορούν εύκολα αν επιθυμούν να προχωρήσουν στην εκμάθηση μιας κλασσικής γλώσσας προγραμματισμού, όπως η C, με την οποία εξάλλου το MATLAB μοιράζεται πολλά κοινά στοιχεία. Η επιλογή του MATLAB ως εργαλείου εκμάθησης προγραμματισμού Η/Υ έγινε λόγω της ευκολίας στη σύνταξη της γλώσσας προγραμματισμού του καθώς και του σύγχρονου γραφικού του περιβάλλοντος, δυο στοιχεία που ελκύουν και δεν αποθαρρύνουν τον αρχάριο. Ταυτόχρονα, δίνεται η δυνατότητα στους σπουδαστές να εξοικειωθούν με ένα πολύ δυνατό εργαλείο ανάπτυξης προγραμμάτων και εφαρμογών, που αποτελεί σημαντική γνώση τόσο για αρκετά από τα υπόλοιπα μαθήματά τους κατά τη διάρκεια των σπουδών τους, όσο και κατά την σταδιοδρομία τους ως μηχανικών τεχνολογίας ιατρικών οργάνων και βιοϊατρικής τεχνολογίας, ενώ τέλος αποτελεί σημαντικό ερευνητικό εργαλείο στην περίπτωση που επιλέξουν να ασχοληθούν με την ακαδημαϊκή έρευνα.

ΠΕΡΙΕΧΟΜΕΝΑ 1 Γενικά περί Ηλεκτρονικών Υπολογιστών... 7 1.1 Ο ηλεκτρονικός υπολογιστής... 7 1.2 Φυσική δομή Η/Υ: Υλικό (hardware)... 7 1.3 Λειτουργία Η/Υ: Λογισμικό (software)... 8 1.4 Δυαδικό σύστημα...9 1.5 Κωδικοποίηση χαρακτήρων σε αριθμούς: ASCII και Unicode... 11 1.6 Οργάνωση αρχείων... 12 Ονόματα αρχείων... 12 Είδη αρχείων... 12 Μορφή αρχείων... 13 Σύστημα οργάνωσης αρχείων... 13 Βασικές εντολές γραμμής εντολών (command prompt)... 14 Ερωτήσεις... 15 Ασκήσεις... 15 2 Αλγόριθμοι και Προγραμματισμός... 16 2.1 Αλγόριθμοι... 16 Αλγόριθμοι και προγραμματισμός... 16 Βασικά στοιχεία αλγορίθμων... 16 2.2 Γλώσσες προγραμματισμού... 17 2.3 Δημιουργία ενός προγράμματος... 17 Ερωτήσεις... 18 Ασκήσεις... 18 3 Το περιβάλλον και ο τρόπος λειτουργίας του MATLAB... 19 3.1 Το περιβάλλον του MATLAB... 19 Περιγραφή παραθύρων του Desktop... 20 3.2 Ο τρόπος λειτουργίας του MATLAB... 21 Προγράμματα στο MATLAB: Scripts και Functions... 22 Δημιουργία, αποθήκευση και εκτέλεση προγράμματος στο MATLAB... 22 3.3 Συνοπτική παρουσίαση εντολών γενικής χρήσης του MATLAB: general... 23 Ερωτήσεις... 24 4 Βασικά στοιχεία προγραμματισμού... 25 4.1 Στοιχεία του κώδικα ενός προγράμματος... 25 4.2 Μεταβλητές... 26 Ονόματα μεταβλητών... 26 Τύποι μεταβλητών... 26 Μετατροπή μεταβλητών σε άλλους τύπους... 27 Υπέρβαση ορίων τύπου μεταβλητής... 27 Ειδικές μεταβλητές... 27 4.3 Τελεστές και Πράξεις... 28 Αριθμητικές πράξεις / Αριθμητικοί τελεστές... 28 Συγκριτικές πράξεις / Συγκριτικοί (σχεσιακοί) τελεστές... 28 Λογικές πράξεις / Λογικοί τελεστές... 29 4.4 Συνοπτική παρουσίαση τελεστών και ειδικών χαρακτήρων του MATLAB: ops... 29 Ερωτήσεις... 30

Ασκήσεις... 30 5 Βασικές εντολές... 33 5.1 Γενικά... 33 Διαχωρισμός εντολών... 33 Συνέχιση εντολής στην επόμενη σειρά... 33 Εσοχές (indent)... 33 Σχόλια... 33 5.2 Εντολή ανάθεσης... 34 5.3 Εντολές μορφοποίησης του Command Window... 35 5.4 Εντολές μεταβλητών... 36 5.5 Εντολές εισόδου δεδομένων από τo πληκτρολόγιο... 37 5.6 Εντολές εξόδου αποτελεσμάτων στην οθόνη (στο Command Window)... 38 Ερωτήσεις... 40 Ασκήσεις... 40 6 Εντολές διακλάδωσης της ροής ενός προγράμματος... 42 6.1 Εντολή επιλογής IF... 42 6.2 Εντολή επιλογής SWITCH... 44 6.3 Συνοπτική παρουσίαση εντολών προγραμματισμού του MATLAB: lang... 44 Ερωτήσεις... 45 Ασκήσεις... 45 7 Επαναληπτικοί βρόχοι... 47 7.1 Εντολή επανάληψης FOR... 47 7.2 Εντολή επανάληψης WHILE... 48 7.3 Εντολή διακοπής επαναληπτικού βρόχου: BREAK... 49 7.4 Εντολή μετάβασης στην επόμενη επανάληψη βρόχου: CONTINUE... 49 7.5 Συνοπτική παρουσίαση εντολών προγραμματισμού του MATLAB: lang... 49 7.6 Μεταβλητές συγκεκριμένης χρήσης... 50 7.7 Βασικά παραδείγματα εφαρμογής εντολών επιλογής και επανάληψης... 52 α) Εύρεση μέσης τιμής... 52 β) Εύρεση μέγιστης (ή ελάχιστης) τιμής... 52 γ) Απαρίθμηση... 53 δ) Έλεγχος εγκυρότητας κατά την εισαγωγή τιμών... 54 Ερωτήσεις... 55 Ασκήσεις... 55 8 Πίνακες... 57 8.1 Γενικά για τους πίνακες... 57 8.2 Μονοδιάστατοι πίνακες... 58 8.3 Δισδιάστατοι πίνακες... 59 8.4 Συναρτήσεις πινάκων... 61 8.5 Σύγκριση ισότητας πινάκων... 64 8.6 Συνοπτική παρουσίαση απλών εντολών χειρισμού πινάκων του MATLAB: elmat... 64 Ερωτήσεις... 65 Ασκήσεις... 65 9 Ιδιαίτερος χειρισμός των πινάκων στο MATLAB... 67 9.1 Δημιουργία πινάκων... 67 9.2 Τελεστής «:» και χρήση του ως τελικού δείκτη... 67 9.3 Αναφορά στα στοιχεία πίνακα με μοναδικό δείκτη... 68

9.4 Εύρεση στοιχείων πίνακα υπό συνθήκες - συνάρτηση find... 69 9.5 Συναρτήσεις και τελεστές χειρισμού πινάκων... 70 9.6 Πράξεις πινάκων...72 Αλγεβρικές πράξεις πινάκων... 72 Στοιχείο-προς-στοιχείο πολλαπλασιαστικές πράξεις πινάκων στο MATLAB... 73 9.7 Χρήσιμες συναρτήσεις για υπολογισμό μεγεθών από τα στοιχεία ενός πίνακα... 73 9.8 Συναρτήσεις ταξινόμησης πίνακα... 74 9.9 Δημιουργία ειδικών πινάκων... 75 9.10 Σύγκριση ισότητας πινάκων... 76 9.11 Συνοπτική παρουσίαση εντολών και συναρτήσεων πινάκων και διαδικασιών γραμμικής άλγεβρας με το σύστημα βοηθείας του MATLAB: elmat και matfun... 77 10 Συμβολοσειρές... 78 10.1 Ανάθεση τιμών συμβολοσειράς... 78 10.2 Συναρτήσεις συμβολοσειρών... 78 10.3 Συνοπτική παρουσίαση συναρτήσεων συμβολοσειρών του MATLAB: strfun... 80 Ερωτήσεις... 81 Ασκήσεις... 81 11 Συναρτήσεις... 84 11.1 Γενικά... 84 11.2 Τοπικές μεταβλητές... 84 11.3 Δημιουργία και κλήση συνάρτησης... 85 Ορισμός συνάρτησης... 85 Κλήση συνάρτησης... 85 Έξοδος από συνάρτηση (εντολή return)... 85 11.4 Υποσυναρτήσεις...85 11.5 Σειρά αναζήτησης μιας συνάρτησης... 85 11.6 Δομή ενός αρχείου συνάρτησης... 86 11.7 Εμφωλευμένες συναρτήσεις (nested functions)... 88 11.8 Ανώνυμες συναρτήσεις (anonymous functions)... 89 Ερωτήσεις... 90 Ασκήσεις... 90 12 Δομές... 92 12.1 Απλή δομή... 92 12.2 Πίνακας Δομών (Structure Array)... 93 12.3 Ιδιαίτερα είδη δομών του MATLAB: Πίνακες Κελιών (Cell Arrays)... 94 Συναρτήσεις για cell arrays... 95 Ερωτήσεις... 96 Ασκήσεις... 97 13 Αρχεία... 98 13.1 Είδη αρχείων... 98 13.2 Άνοιγμα και κλείσιμο αρχείου... 98 13.3 Αρχεία κειμένου...99 13.4 Δυαδικά αρχεία... 101 13.5 Έλεγχος του δείκτη θέσης σε αρχείο... 102 13.6 Παραδείγματα τρόπου εργασίας με αρχεία κειμένου... 103 13.7 Ιδιαίτερες συναρτήσεις του MATLAB για χειρισμό αρχείων... 105 13.8 Ιδιαίτερες συναρτήσεις του MATLAB για το χειρισμό των φακέλων και του Current Directory.. 106 Ερωτήσεις... 107 Ασκήσεις... 107

14 Γραφικά... 109 14.1 Διαγράμματα... 109 Καμπύλη σε 2 διαστάσεις της μορφής y=f(x)... 109 Επιφάνεια σε 3 διαστάσεις της μορφής z=f(x,y)... 111 Καμπύλη σε 2 διαστάσεις της μορφής f(x,y)=0... 113 Επιφάνεια σε 3 διαστάσεις της μορφής f(x,y,z)=0... 114 Καμπύλη σε 3 διαστάσεις της μορφής x=f(t), y=g(t), z=h(t)... 115 14.2 Συναρτήσεις παραμετροποίησης γραφημάτων... 116 Γενικές συναρτήσεις γραφικών... 116 Άξονες... 117 Επισημείωση γραφημάτων... 118 Γλώσσα TeX... 118 Εμφάνιση πολλών γραφημάτων σε ένα figure... 119 14.3 Εικόνες... 120 Ψηφιακές εικόνες... 120 Εικόνες τόνων του γκρι... 120 Έγχρωμες εικόνες... 120 Ψηφιακές εικόνες και πίνακες... 120 Συναρτήσεις χειρισμού ψηφιακών εικόνων... 121 14.4 Λήψη συντεταγμένων σημείων γραφήματος... 123 14.5 Συνοπτική παρουσίαση συναρτήσεων γραφικών του MATLAB: graphics, graph2d, graph3d, specgraph... 124 15 Συναρτήσεις γενικής χρήσης... 125 15.1 Εντολές βοήθειας... 125 15.2 Αρχεία εντολών εκκίνησης και τερματισμού του MATLAB... 125 15.3 Συναρτήσεις διακοπής και επαναφοράς της ροής του προγράμματος... 125 15.4 Μαθηματικές συναρτήσεις... 126 15.5 Συναρτήσεις χρόνου... 128 16 Αποσφαλμάτωση και βελτιστοποίηση προγράμματος... 129 16.1 Είδη σφαλμάτων... 129 16.2 Εργαλεία αποσφαλμάτωσης στο MATLAB... 130 16.3 Βελτιστοποίηση χρόνου εκτέλεσης προγράμματος (profiler)... 131 16.4 Συνοπτική παρουσίαση εντολών προγραμματισμού και αποσφαλμάτωσης του MATLAB: lang131 17 Δημιουργία και εκτέλεση αυτόνομης εφαρμογής... 132 17.1 Δημιουργία αυτόνομης εφαρμογής... 132 17.2 Εκτέλεση της αυτόνομης εφαρμογής... 132 Εκτέλεση της αυτόνομης εφαρμογής σε απομακρυσμένο υπολογιστή... 132 Εγκατάσταση του MATLAB Component RunTime (MCR)... 133 18 Το MATLAB και η C... 134 18.1 Γρήγορος οδηγός του MATLAB για προγραμματιστές γλώσσας C... 134 18.2 Διαφορές και αντιστοιχίες μεταξύ MATLAB και C... 135 Αρχεία προγραμμάτων MATLAB... 135 Εκτέλεση προγραμμάτων... 135 Μεταβλητές... 135 Πίνακες... 136 Εντολές... 136 Συναρτήσεις... 136 Σχόλια... 137 Βοήθεια (Help) στη σύνταξη των εντολών... 137

1.1 Ο ηλεκτρονικός υπολογιστής 1 Γενικά περί Ηλεκτρονικών Υπολογιστών Ο ηλεκτρονικός υπολογιστής είναι μια διάταξη η οποία τροφοδοτείται με ηλεκτρικά σήματα, τα επεξεργάζεται, και εξάγει ως αποτέλεσμα τα επεξεργασμένα σήματα. Με άλλα λόγια, ο υπολογιστής μετασχηματίζει την πληροφορία ή το πληροφοριακό περιεχόμενο ενός σήματος (όπως, για παράδειγμα, μια μηχανή είναι μια διάταξη η οποία μετασχηματίζει την ενέργεια από μια μορφή σε άλλη). Πρόγραμμα ονομάζεται μια σειρά εντολών προς τον υπολογιστή (για την είσοδο των δεδομένων, για την επεξεργασία τους καθώς και για την έξοδο των αποτελεσμάτων), που προετοιμάζονται, ομαδοποιούνται και αποθηκεύονται στον υπολογιστή ώστε να εκτελεστούν όποτε επιθυμεί ο χρήστης του υπολογιστή. Είσοδος Επεξεργασία Έξοδος Καθολικός υπολογιστής: Οι επεξεργαστές των σύγχρονων ηλεκτρονικών υπολογιστών είναι εφοδιασμένοι με κατάλληλες ομάδες εντολών, ώστε να μπορούν θεωρητικά να επιλύσουν οποιοδήποτε αλγοριθμικό πρόβλημα, αρκεί να τροφοδοτηθούν με το κατάλληλο πρόγραμμα. Διατάξεις με αυτήν την ιδιότητα ονομάζονται καθολικοί υπολογιστές. Οι ηλεκτρονικοί υπολογιστές αποτελούνται από το υλικό (hardware) και το λογισμικό (software). Ως υλικό εννοούμε τα φυσικά μέρη από τα οποία αποτελείται ο υπολογιστής, ενώ ως λογισμικό εννοούμε το σύνολο των εντολών με τις οποίες λειτουργεί και επεξεργάζεται τις πληροφορίες. Στην πραγματικότητα το λογισμικό σε στοιχειώδες επίπεδο δεν είναι τίποτε άλλο παρά μεταβολές ηλεκτρικών σημάτων στο υλικό, δηλαδή στα ηλεκτρονικά κυκλώματα του επεξεργαστή και της μνήμης του υπολογιστή. 1.2 Φυσική δομή Η/Υ: Υλικό (hardware) Συσκευές εισόδου: Για εισαγωγή εντολών και δεδομένων (π.χ. πληκτρολόγιο, ποντίκι). Κεντρική μονάδα επεξεργασίας (Central Processing Unit, CPU): Για την επεξεργασία των δεδομένων, μέσω των εντολών του προγράμματος. Η επεξεργασία γίνεται από τον επεξεργαστή με τη βοήθεια της κύριας μνήμης (μνήμη RAM, Random Access Memory). Η μνήμη RAM είναι προσωρινή, δηλ. τα δεδομένα της χάνονται με διακοπή της τροφοδοσίας. Συσκευές εξόδου: Για την έξοδο των αποτελεσμάτων (π.χ. οθόνη, εκτυπωτής). Μόνιμα αποθηκευτικά μέσα: Για τη μόνιμη αποθήκευση των προγραμμάτων, των δεδομένων εισόδου και των αποτελεσμάτων εξόδου (π.χ. μαγνητικά μέσα: σκληρός δίσκος, δισκέτα, μνήμες τύπου flash, ψηφιακές ταινίες, ή οπτικά μέσα: CD, DVD, BLU RAY). Στους σύγχρονους προσωπικούς Η/Υ οι σκληροί δίσκοι χρησιμεύουν επίσης και για «εικονική» αύξηση της μνήμης RAM (ενώ παρόμοια δυνατότητα υπάρχει και στις μνήμες τύπου flash). Τα μόνιμα αποθηκευτικά μέσα χρησιμεύουν τόσο ως συσκευές εισόδου όσο και ως συσκευές εξόδου. Συσκευές εισόδου (πληκτρολόγιο, ποντίκι) Μονάδα επεξεργασίας (επεξεργαστής, κύρια μνήμη RAM) Μόνιμα αποθηκευτικά μέσα (σκληρός δίσκος) Συσκευές εξόδου (οθόνη, εκτυπωτής)

8 Προγραμματισμός Ηλεκτρονικών Υπολογιστών σε περιβάλλον MATLAB 1.3 Λειτουργία Η/Υ: Λογισμικό (software) BIOS: Κατά την εκκίνηση του υπολογιστή τον έλεγχο αναλαμβάνει ένα μικρό κομμάτι βασικών εντολών που ελέγχουν την καλή λειτουργία των βασικών υποσυστημάτων εισόδου και εξόδου του υπολογιστή. Οι αρχικές αυτές βασικές εντολές αποτελούν το BIOS (Basic Input-Output System), το οποίο είναι αποθηκευμένο σε ένα τμήμα μιας μικρής μόνιμης μνήμης (μνήμη ROM, Read Only Memory). Λειτουργικό σύστημα: Στη συνέχεια τον έλεγχο αναλαμβάνει το λειτουργικό σύστημα, το βασικότερο κομμάτι του λογισμικού των σύγχρονων ηλεκτρονικών υπολογιστών. Ο ρόλος του λειτουργικού συστήματος είναι (α) να ελέγχει τη ροή των δεδομένων από και προς τις συσκευές εισόδου-εξόδου, τον επεξεργαστή, την κύρια μνήμη και τα μόνιμα αποθηκευτικά μέσα, (β) να φροντίζει για την ορθή επικοινωνία των υπόλοιπων προγραμμάτων με τον υπολογιστή, και (γ) να συντονίζει την επικοινωνία με άλλους υπολογιστές (δίκτυα υπολογιστών). Οι περισσότεροι προσωπικοί υπολογιστές χρησιμοποιούν σήμερα το λειτουργικό σύστημα Microsoft Windows. Ένα από τα παλαιότερα και ισχυρότερα λειτουργικά συστήματα είναι το Unix που, μαζί με την παραλλαγή του Linux, χρησιμοποιείται μέχρι και σήμερα, από προσωπικούς υπολογιστές για ακαδημαϊκή έρευνα μέχρι πολύ ισχυρούς υπολογιστές ιδιαίτερα απαιτητικών εφαρμογών. Προγράμματα εφαρμογών: Το ανώτερο τμήμα της λειτουργίας του υπολογιστή είναι τα προγράμματα εφαρμογών που απευθύνονται στον τελικό χρήστη του υπολογιστή. Ως παραδείγματα εφαρμογών μπορούν να αναφερθούν: Εφαρμογές γραφείου (που περιλαμβάνουν προγράμματα επεξεργασίας κειμένου, λογιστικών φύλλων και παρουσιάσεων). Προγράμματα προβολής και επεξεργασίας εικόνας, κινούμενης εικόνας (video) και ήχου. Γλώσσες προγραμματισμού (δηλαδή προγράμματα δημιουργίας νέων προγραμμάτων). ΛΟΓΙΣΜΙΚΟ (SOFTWARE) Εφαρμογές τελικού χρήστη Λειτουργικό σύστημα B.I.O.S. ΥΛΙΚΟ (HARDWARE) Συσκευές εισόδου CPU Συσκευές εξόδου HD RAM

Γενικά περί Ηλεκτρονικών Υπολογιστών 9 1.4 Δυαδικό σύστημα Στο σύνηθες σύστημα αρίθμησης, που έχει βάση το 10, κάθε αριθμός απεικονίζεται ως μια σειρά ψηφίων (από 0 έως 9) που καθένα πολλαπλασιάζεται με μια δύναμη του 10. Παράδειγμα: 5204 = 5 1000 + 2 100 + 0 10 + 4 1 = 5 10 3 + 2 10 2 + 0 10 1 + 4 10 0 Παρόμοια, σε ένα σύστημα αρίθμησης με βάση το 2, ένας αριθμός απεικονίζεται ως μια σειρά ψηφίων (0 ή 1) που καθένα πολλαπλασιάζεται με μια δύναμη του 2. Παράδειγμα: 13 = 1 8 + 1 4 + 0 2 + 1 1 = 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0 = 1101 (2). Η λειτουργία του υπολογιστή στηρίζεται στο δυαδικό σύστημα αρίθμησης, διότι εσωτερικά ο υπολογιστής λειτουργεί με σειρές ηλεκτρικών σημάτων, που για λόγους απλότητας σχεδιασμού και μεγαλύτερης αξιοπιστίας είναι αποκλειστικά δύο ειδών («απουσία» ή «παρουσία» ρεύματος ή τάσης, π.χ. 0Volt ή +5Volt) που συμβολίζονται ως 0 ή 1. Bits & Bytes: Bit (σύμβολο b, binary digit, δυαδικό ψηφίο), ονομάζεται κάθε ένα από τα ψηφία 0 ή 1. Byte (σύμβολο Β) ονομάζεται μια ακολουθία από 8 bit: 1 Byte = 8 bit (1B = 8b). Για τα πολλαπλάσια του bit συνήθως χρησιμοποιείται το 1000, ενώ για τα πολλαπλάσια του Byte συνήθως χρησιμοποιείται το 1024 (που τυπικά λέγεται Kibi (kilo binary) και αρχικά είχε επιλεχθεί γιατί είναι δύναμη του 2 (1024=2 10 ), ενώ ταυτόχρονα είναι κοντά στο 1000): Πολλαπλάσια bit (b) Byte (B) Kilo (k) 1 kb = 1000 b = 10 3 b 1 KiB = 1024 B = 2 10 B Mega (M) 1 Mb = 1000 kb = 10 6 b 1 MiB = 1024 kib = 2 20 B Giga (G) 1 Gb = 1000 Mb = 10 9 b 1 GiB = 1024 MiB = 2 30 B Tera (T) 1 Tb = 1000 Gb = 10 12 b 1 TiB = 1024 GiB = 2 40 B Π.χ. Σε σύνδεση ADSL ταχύτητας 1024 kbps, η ταχύτητα μεταφοράς είναι 1024 kbits per sec, δηλαδή 1024000 bits/sec = 1024000/8 Bytes/sec = 128000 B/s = 128000/1024 kib/s = 125 kib/s Μετατροπή από δυαδικό σε δεκαδικό σύστημα αρίθμησης: Τα ψηφία 0/1 σε ένα δυαδικό αριθμό πολλαπλασιάζονται με διαδοχικές δυνάμεις του 2, ξεκινώντας από τη δύναμη 0 στο δεξί μέρος. Παράδειγμα: Μετατροπή του δυαδικού 01101001 σε δεκαδική μορφή: 01101001 (2) =0 2 7 + 1 2 6 + 1 2 5 + 0 2 4 + 1 2 3 + 0 2 2 + 0 2 1 + 1 2 0 =64+32+0+8+0+0+1 = 105 (10) Μετατροπή από δεκαδικό σε δυαδικό σύστημα αρίθμησης: 1 ος τρόπος: Γράφουμε τις δυνάμεις του 2 (με αντίστροφη σειρά) και στη συνέχεια βρίσκουμε ποιες από αυτές τις δυνάμεις πρέπει να προσθέσουμε για να σχηματίσουμε τον αριθμό. Στις θέσεις αυτών των δυνάμεων βρίσκεται το ψηφίο «1», και στις θέσεις των υπόλοιπων συνάμεων το ψηφίο «0». Παράδειγμα: Μετατροπή του δεκαδικού 105 σε δυαδική μορφή: Γράφουμε τις δυνάμεις του 2 με αντίστροφη σειρά, και μετά γράφουμε «1» κάτω από όσες πρέπει να προσθέσουμε για να σχηματιστεί το 105 και «0» κάτω από τις υπόλοιπες: 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 128 64 32 16 8 4 4 1 0 1 1 0 1 0 0 1 Ή, αλλιώς: 105 (10) = 64+32+0+8+0+0+1 = 1 2 6 +1 2 5 +0 2 4 +1 2 3 +0 2 2 +0 2 1 +1 2 0 = 1101001 (2)

10 Προγραμματισμός Ηλεκτρονικών Υπολογιστών σε περιβάλλον MATLAB 2 ος τρόπος: Ο αριθμός, και στη συνέχεια τα διαδοχικά πηλίκα, διαιρούνται συνεχώς με το 2 μέχρι το πηλίκο να γίνει 0. Τότε τα διαδοχικά υπόλοιπα των διαιρέσεων, σε αντίστροφη σειρά, είναι ο αριθμός σε δυαδική μορφή. Παράδειγμα: Μετατροπή του 13 σε δυαδική μορφή: 13 6 3 1 0 1 0 1 1 Το 13, και μετά τα διαδοχικά πηλίκα, διαιρούνται με το 2. Τα πηλίκα γράφονται από κάτω και τα διαδοχικά υπόλοιπα δεξιά. Όταν το πηλίκο γίνει 0, η δυαδική αναπαράσταση του αριθμού είναι η δεξιά στήλη, σε αντίστροφη σειρά: 13 (10) = 1101 (2) Συνήθως χρησιμοποιούνται πολλαπλάσια του 1 Byte (δηλ. των 8 bits), οπότε αν χρειαστεί συμπληρώνουμε με 0, δηλαδή ο παραπάνω αριθμός γράφεται ως: 00001101 (2) = 0 2 7 + 0 2 6 + 0 2 5 + 0 2 4 + 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0 = 13 (10) Οκταδικό και Δεκαεξαδικό σύστημα Η ανάλυση σε δυνάμεις βάσης εφαρμόζεται σε όλα τα θεσιακά συστήματα αρίθμησης (όπως στο δεκαδικό σύστημα, π.χ. 5204 = 5 10 3 + 2 10 2 + 0 10 1 + 4 10 0 ), δηλαδή σε αυτά στα οποία η θέση ενός ψηφίου καθορίζει την «αξία» του, και συγκεκριμένα τον εκθέτη της δύναμης με την οποία πολλαπλασιάζεται (σε αντίθεση π.χ. με το ρωμαϊκό σύστημα αρίθμησης: XII = 12, XIV = 14, C = 100, ). Κάθε αριθμός μπορεί να εκφραστεί σε σύστημα αρίθμησης οποιασδήποτε βάσης (Ν). Τότε, η απεικόνιση του αριθμού γίνεται με μια σειρά ψηφίων (από 0 έως Ν-1), που καθένα πολλαπλασιάζεται με μια δύναμη του Ν. Στον προγραμματισμό, εκτός από το δυαδικό, χρησιμοποιούνται επίσης το οκταδικό (octal) και το δεκαεξαδικό σύστημα (hexadecimal, hex): Οκταδικό σύστημα: Τα 8 ψηφία του είναι τα 0, 1, 2, 3, 4, 5, 6, 7. Π.χ.: 204 (10) = 3 8 2 + 1 8 1 + 4 8 0 = 314 (8) Δεκαεξαδικό σύστημα: Απαιτούνται 16 ψηφία (από 0 έως 15), έτσι χρησιμοποιούνται τα συνήθη ψηφία 0 έως 9, καθώς και τα λατινικά γράμματα A έως F ως σύμβολα των 10 έως 15. Δηλαδή, τα 16 ψηφία του είναι τα 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Π.χ.: 172831 (10) = 2 16 4 + 10 16 3 +3 16 2 + 1 16 1 + 15 16 0 = 2A31F (16)

Γενικά περί Ηλεκτρονικών Υπολογιστών 11 1.5 Κωδικοποίηση χαρακτήρων σε αριθμούς: ASCII και Unicode Ο ηλεκτρονικός υπολογιστής είναι ένας αριθμητικός υπολογιστής. Έτσι, η χρήση άλλων συμβόλων (π.χ. γραμμάτων του αλφαβήτου) από τον υπολογιστή γίνεται μέσω της αντιστοίχισής τους σε αριθμούς. ASCII: Η συνηθέστερη κωδικοποίηση χαρακτήρων σε αριθμούς είναι μέσω του κώδικα ASCII (American Standard Code for Information Interchange), ο οποίος χρησιμοποιεί 7 bits, αντιστοιχώντας έτσι συνολικά 2 7 =128 χαρακτήρες ή σύμβολα στους αριθμούς 0 έως 127. Στους χαρακτήρες 0 έως 31 και 127 του κώδικα ASCII βρίσκονται μη εκτυπώσιμοι κωδικοί που εκτελούν στοιχειώδεις λειτουργίες (π.χ.: 0=null character, 7=bell, 8=backspace, 9=tab, 10=line feed, 13= return, 27=escape, 127=delete). Στις άλλες θέσεις βρίσκονται τα γράμματα του λατινικού αλφαβήτου (a z, A Z), τα ψηφία (0 9) και διάφορα σύμβολα. Στον παρακάτω πίνακα (τμήμα του πλήρους πίνακα ASCII) φαίνονται οι εκτυπώσιμοι χαρακτήρες του κώδικα ASCII: 32 (space) 51 3 70 F 89 Y 108 l 33! 52 4 71 G 90 Z 109 m 34 " 53 5 72 H 91 [ 110 n 35 # 54 6 73 I 92 \ 111 o 36 $ 55 7 74 J 93 ] 112 p 37 % 56 8 75 K 94 ^ 113 q 38 & 57 9 76 L 95 _ 114 r 39 ' 58 : 77 M 96 ` 115 s 40 ( 59 ; 78 N 97 a 116 t 41 ) 60 < 79 O 98 b 117 u 42 * 61 = 80 P 99 c 118 v 43 + 62 > 81 Q 100 d 119 w 44, 63? 82 R 101 e 120 x 45-64 @ 83 S 102 f 121 y 46. 65 A 84 T 103 g 122 z 47 / 66 B 85 U 104 h 123 { 48 0 67 C 86 V 105 i 124 49 1 68 D 87 W 106 j 125 } 50 2 69 E 88 X 107 k 126 ~ Exted ASCII: Επέκταση του ASCII αποτελεί το Exted ASCII, που χρησιμοποιεί 8 bits (επομένως έχει δυνατότητα για αντιστοίχιση 2 8 =256 θέσεων). Οι πρώτες 128 (0-127) θέσεις του Exted ASCII έχουν την ίδια αντιστοίχιση με αυτήν του 7-bit ASCII, ενώ οι θέσεις 128 έως 255 εκχωρούνται σε επιπλέον χαρακτήρες άλλων αλφαβήτων (πλην του αγγλικού) και απλών γραφικών συμβόλων. Συχνά το Exted ASCII αναφέρεται απλά ως ASCII. Unicode: Πλήρη λύση για την κωδικοποίηση των χαρακτήρων όλων των αλφαβήτων διεθνώς καθώς και πάρα πολλών επιπλέον συμβόλων προσφέρει η κωδικοποίηση Unicode, η οποία είναι 16-bit κι έτσι μπορεί να κωδικοποιήσει συνολικά 2 16 =65536 χαρακτήρες ή σύμβολα (π.χ. οι χαρακτήρες του ελληνικού μονοτονικού αλφαβήτου βρίσκονται στις θέσεις 900-974, το σύμβολο του ευρώ ( ) στη θέση 8364 κλπ).

12 Προγραμματισμός Ηλεκτρονικών Υπολογιστών σε περιβάλλον MATLAB 1.6 Οργάνωση αρχείων Ένα αρχείο είναι μια ομάδα πληροφοριών αποθηκευμένη με ένα όνομα σε κάποιο αποθηκευτικό μέσο. Ονόματα αρχείων Τα ονόματα των αρχείων αποτελούνται από δύο μέρη, το κυρίως όνομα και την επέκταση, που χωρίζονται μεταξύ τους από μία τελεία (.). Η επέκταση χρησιμοποιείται από εμάς και από τα προγράμματα για τη διάκριση του είδους του αρχείου. Στο λειτουργικό σύστημα MS-DOS, το κυρίως όνομα πρέπει να είναι από 1 μέχρι 8 χαρακτήρες και η επέκταση από 0 μέχρι 3 χαρακτήρες. Οι χαρακτήρες του ονόματος ή της επέκτασης μπορεί να είναι λατινικά γράμματα (a z, A Z), ψηφία (0 9) ή σύμβολα (όλοι οι εκτυπώσιμοι χαρακτήρες του 7-bit ASCII, εκτός από τα \ / : *? " < >. και το κενό διάστημα (space), το οποίο πολλές φορές στα γραπτά κείμενα το συμβολίζουμε ως ). Στο λειτουργικό σύστημα Microsoft Windows ο μόνος περιορισμός μήκους χαρακτήρων είναι ότι το κυρίως όνομα μαζί με την επέκταση αλλά και μαζί με τη λογική διαδρομή -pathαποθήκευσής του στο δίσκο είναι μέχρι 255 χαρακτήρες. Επιπλέον, επιτρέπονται σχεδόν όλοι οι εκτυπώσιμοι χαρακτήρες του Unicode, όπως και οι ελληνικοί ή άλλων γλωσσών χαρακτήρες, η τελεία (.) και το κενό διάστημα, με εξαίρεση τους \ / : *? " < > οι οποίοι α- παγορεύονται. Το DOS και τα Windows δεν κάνουν διάκριση μεταξύ πεζών και κεφαλαίων γραμμάτων στα ονόματα των αρχείων (σε αντίθεση π.χ. με τα Unix και Linux). Είδη αρχείων Εκτελέσιμα αρχεία: Είναι αρχεία εντολών προς τον υπολογιστή. Η επέκτασή τους είναι συνήθως.exe ή.com («προγράμματα», executables, commands),.bat (batch files ή αρχεία δέσμης, περιέχουν μια ομάδα («δέσμη») απλών εντολών του λειτουργικού συστήματος), κλπ. Βοηθητικά αρχεία: Είναι αρχεία υποβοηθητικά για τη λειτουργία των προγραμμάτων ή του λειτουργικού συστήματος. Αρχεία δεδομένων: Είναι αρχεία που δημιουργούνται από εμάς συνήθως, με τη βοήθεια ενός εκτελέσιμου αρχείου (προγράμματος). Η κατάληξή τους, για λόγους οργάνωσης και ευκολίας, εξαρτάται από το πρόγραμμα που τα δημιούργησε και που μπορεί να τα αναγνώσει και τα εμφανίσει τα περιεχόμενά τους. Παραδείγματα:.DOC: Έγγραφα (documents), από το MS-Word..PDF: Έγγραφα (documents), από το Adobe Acrobat..XLS: Λογιστικά φύλλα (spreadsheets), από το MS-Excel..TXT: Αρχεία απλού κειμένου (plain text). Μπορούν να δημιουργηθούν και να αναγνωστούν από απλά προγράμματα που λέγονται διορθωτές (editors), όπως π.χ. το Notepad..C: Κώδικας προγράμματος γλώσσας προγραμματισμού C. Είναι απλό αρχείο κειμένου και μπορεί να δημιουργηθεί από απλό διορθωτή, όπως το Notepad, ή συνηθέστερα από το διορθωτή ενός περιβάλλοντος για ανάπτυξη προγραμμάτων σε γλώσσα C..M: Κώδικας προγράμματος γλώσσας προγραμματισμού MATLAB. Είναι απλό αρχείο κειμένου και μπορεί να δημιουργηθεί από απλό διορθωτή, όπως το Notepad, ή συνηθέστερα από το διορθωτή του περιβάλλοντος MATLAB..HTML: Αρχείο ιστοσελίδας. Είναι απλό αρχείο κειμένου και μπορεί να δημιουργηθεί από απλό διορθωτή, όπως το Notepad, ή συνηθέστερα από πιο εξειδικευμένα προγράμματα

Γενικά περί Ηλεκτρονικών Υπολογιστών 13 (π.χ. MS-FrontPage), ενώ αναπαράγεται με τα προγράμματα πλοήγησης στο διαδίκτυο (π.χ. Internet Explorer)..BMP,.JPG,.TIF, GIF: Αρχεία εικόνων. Δημιουργούνται και διαβάζονται από προγράμματα επεξεργασίας εικόνων, όπως το Paint ή το Adobe Photoshop, ή από τα προγράμματα που χειρίζονται τις συσκευών εισόδου εικόνας (ψηφιακές κάμερες κλπ)..wav: Αρχεία ήχου. Δημιουργούνται συνήθως από τα προγράμματα που χειρίζονται τις συσκευές εισόδων ήχου (μικρόφωνο κλπ) και αναπαράγονται ή επεξεργάζονται από κατάλληλα προγράμματα (Windows Media Player, WinAmp κλπ)..mpg,.avi: Αρχεία video. Δημιουργούνται συνήθως από τα προγράμματα που χειρίζονται τις συσκευές εισόδων ήχου και εικόνας και αναπαράγονται ή επεξεργάζονται από κατάλληλα προγράμματα (Windows Media Player, QuickTime κλπ). Μορφή αρχείων Αρχεία κειμένου (text files): Περιέχουν απλό κείμενο χωρίς καμία μορφοποίηση (π.χ. αρχεία με κατάληξη.bat,.txt,.c,.m,.html), με απλούς χαρακτήρες του κώδικα ASCII. Δυαδικά αρχεία (binary files): Οι πληροφορίες που περιέχουν είναι σε στοιχειώδη δυαδική μορφή, μη αναγνώσιμη με άμεσο ή απλό τρόπο. Αν είναι εκτελέσιμα αρχεία (με επέκταση π.χ..exe), δεν μπορούμε να δούμε τις εντολές που περιέχουν, παρά μόνο να τα εκτελέσουμε και να δούμε το αποτέλεσμα. Αν είναι αρχεία δεδομένων (π.χ. με επεκτάσεις.doc,.xls,.pdf) μπορούμε να δούμε τα περιεχόμενά τους μόνο με το κατάλληλο πρόγραμμα που τα δημιούργησε ή που μπορεί να αναγνωρίσει την κωδικοποίηση των πληροφοριών τους (MS- Word, MS-Excel, Adobe Acrobat αντίστοιχα). Σύστημα οργάνωσης αρχείων Μόνιμα αποθηκευτικά μέσα: Τα αρχεία αποθηκεύονται μόνιμα σε μαγνητικούς δίσκους όπως σκληρούς δίσκους και (πολύ σπάνια πλέον) εύκαμπτες δισκέτες, σε οπτικούς δίσκους όπως CD και DVD εγγραφής (R) ή μόνο ανάγνωσης (ROM), σε μαγνητοοπτικούς δίσκους όπως CD και DVD επανεγγραφής (RW), σε μνήμες flash (USB sticks, SSD) ή σε μαγνητικές ταινίες. Τα ονόματα των μόνιμων αποθηκευτικών μέσων αποτελούνται από έναν λατινικό χαρακτήρα (πεζό ή κεφαλαίο) ακολουθούμενο από άνω-κάτω τελεία (:). Παραδείγματα: A:, B: Δισκέτα (Floppy disk, FDD). Χωρητικότητα 1.44MB (σχεδόν σε αχρηστία πλέον). C: Δίσκος συστήματος (σκληρός δίσκος, hard disk drive, HDD, π.χ. 80GB - 2TB ή «δίσκος» SSD, solid state drive, 32GB-256GB). Στο δίσκο αυτό εγκαθίσταται συνήθως το λειτουργικό σύστημα και οι εφαρμογές. D:, E:, F:, Z: Επιπλέον σκληροί δίσκοι ή SSD, συσκευές ανάγνωσης για CD (650-800MB) και για DVD (4.77GB, σπανιότερα 2 επιπέδων ή και 2 πλευρών), μνήμες flash (π.χ. 256MB- 32GB, συνήθως συνδεόμενες στις θύρες USB), ψηφιακές μαγνητικές ταινίες (digital tapes). Κατάλογοι/Φάκελοι: Για καλύτερη οργάνωση, τα αρχεία ομαδοποιούνται σε καταλόγους (directories, στο DOS) ή αλλιώς σε φακέλους (folders, στα Windows). Τα ονόματα των καταλόγων/φακέλων ακολουθούν τους ίδιους κανόνες με τα ονόματα των αρχείων (π.χ. 8+3 στο DOS ή 255 χαρακτήρες στα Windows), όμως για να τους ξεχωρίζουμε τους δίνουμε συνήθως όνομα με κεφαλαία γράμματα και χωρίς επέκταση (π.χ. MSDOS, WINDOWS, WINNT, SYSTEM κλπ), χωρίς αυτό να είναι υποχρεωτικό (π.χ. My Documents, Program Files κλπ). Η δομή των καταλόγων/φακέλων είναι «δενδροειδής». Ο αρχικός φάκελος λέγεται ριζικός (root) και συμβολίζεται με το σύμβολο «\» (ανάποδη κάθετος, backslash). Το ίδιο σύμβολο χρησιμοποιείται για να χωρίζουν και οι υποφάκελοι μεταξύ τους. Η ακολουθία των υποφακέλων λέγεται διαδρομή (path).

14 Προγραμματισμός Ηλεκτρονικών Υπολογιστών σε περιβάλλον MATLAB Π.χ. Έστω η δομή φακέλων του διπλανού σχήματος. Στην περίπτωση αυτή υπάρχουν οι εξής κατάλογοι: C:\ C:\ (root) Windows C:\Windows\ C:\Program Files\ C:\Program Files\Matlab71\ C:\Program Files\Matlab71\work\ C:\My Documents\ C:\My Documents\Letters\ C:\My Documents\Photos\ Program Files My Documents Matlab71 Letters Photos work Βασικές εντολές γραμμής εντολών (command prompt) Εντολές καταλόγων (φακέλων): Ο τρέχων φάκελος (current folder) συμβολίζεται με μια τελεία (.), ενώ ο φάκελος του αμέσως ανωτέρω επιπέδου (parent folder) με δύο τελείες (..). dir = εμφάνιση στην οθόνη μιας λίστας των ονομάτων των αρχείων και των υποκαταλόγων (υποφακέλων) που περιέχει ο τρέχων κατάλογος (φάκελος). md (make directory) = δημιουργία ενός καταλόγου (φακέλου). rd (remove directory) = διαγραφή ενός (άδειου, για λόγους ασφαλείας) καταλόγου (φακέλου). cd (change directory) = αλλαγή του τρέχοντος καταλόγου (φακέλου). Π.χ.1: dir *.txt = εμφάνιση των αρχείων με επέκταση.txt Π.χ.2: Αν είμαστε στο C:\DATA\ και δώσουμε md LETTERS και μετά cd LETTERS, τότε θα βρεθούμε στον C:\DATA\LETTERS\. Με cd.. θα βρεθούμε ξανά στο C:\DATA\ Εντολές αρχείων: Ο χαρακτήρας «?» χρησιμοποιείται για να δηλώσει μόνο έναν οποιονδήποτε χαρακτήρα, ενώ ο χαρακτήρας «*» χρησιμοποιείται για να δηλώσει οποιουσδήποτε και οσουσδήποτε χαρακτήρες. Π.χ.: *.txt = όλα τα αρχεία με επέκταση.txt, *.* = όλα τα αρχεία (με οποιαδήποτε επέκταση), *. = όλα τα αρχεία χωρίς επέκταση May*.doc = May1.doc, May2.doc, May14.doc, MayLettr.doc, κλπ. May??.doc = May01.doc, May_K.doc κλπ. (αλλά όχι May1.doc, MayLettr.doc κλπ.) copy = αντιγραφή αρχείων (π.χ. copy *.txt a:\ σημαίνει αντιγραφή όλων των αρχείων με επέκταση.txt στη δισκέτα a:, ενώ copy c:\programs\prog1.m. σημαίνει α- ντιγραφή του prog1.txt από το φάκελο c:\programs\ στον τρέχοντα φάκελο ) del = διαγραφή αρχείων (π.χ. del *.* σημαίνει διαγραφή όλων των αρχείων) ren = μετονομασία αρχείων (π.χ. ren john.doc john1.doc (προφανής μετονομασία), ενώ ren *.txt *.m σημαίνει μετονομασία όλων των αρχείων με επέκταση.txt σε αρχεία με το ίδιο όνομα αλλά με επέκταση.m. (εντολή κατάλληλη για μαζική αλλαγή επέκτασης).

Γενικά περί Ηλεκτρονικών Υπολογιστών 15 Ερωτήσεις 1.1 Τι είναι ένας υπολογιστής, και τι ένας καθολικός υπολογιστής; 1.2 Από ποια γενικά τμήματα αποτελείται η φυσική δομή (hardware) ενός ηλεκτρονικού υπολογιστή, και ποιος ο ρόλος του καθενός; 1.3 Από ποια γενικά τμήματα αποτελείται το λογισμικό (software) ενός ηλεκτρονικού υπολογιστή, και ποιος ο ρόλος του καθενός; 1.4 Τι ονομάζουμε bit και τι byte; 1.5 Να αναφερθούν 4 πολλαπλάσια του bit και του byte. 1.6 Τι είναι τα θεσιακά συστήματα αρίθμησης; Να αναφερθούν 3 παραδείγματα. 1.7 Τι είναι η κωδικοποιήσεις ASCII και Unicode; Πόσα bits χρησιμοποιούν τα ASCII, Exted ASCII και Unicode, και κατά συνέπεια πόσοι είναι οι χαρακτήρες που μπορούν να κωδικοποιηθούν σε αυτά; 1.8 Ποια είναι τα γενικά είδη των ηλεκτρονικών αρχείων; Σε ποιες μορφές μπορούν να είναι αποθηκευμένα τα περιεχόμενα των αρχείων; 1.9 Να περιγρεφεί συνοπτικά η δομή του συστήματος αρχείων των συνηθισμένων λειτουργικών συστημάτων (DOS, Windows, Unix, Linux κλπ). 1.10 Οι χαρακτήρες * και? είναι επιτρεπτοί για χρήση σε ονόματα αρχείων; Τι αντιπροσωπεύουν αυτοί οι χαρακτήρες, όταν χρησιμοποιούνται σε εντολές του λειτουργικού συστήματος που αναφέρονται σε ονόματα αρχείων; Ασκήσεις 1.11 Να βρεθούν οι δεκαδικές αναπαραστάσεις των παρακάτω αριθμών του δυαδικού συστήματος: 110101, 101, 00101, 1111111 1.12 Να βρεθούν οι δυαδικές αναπαραστάσεις των παρακάτω αριθμών του δεκαδικού συστήματος (οι δυαδικοί αριθμοί να γραφτούν με 8 bits = 1 Byte): 128, 255, 0, 1 1.13 Να βρεθούν οι δεκαδικές αναπαραστάσεις των παρακάτω αριθμών του δεκαεξαδικού συστήματος: 0, 1, 9, A, F, 10, 11, 12, 19, 1A, 1F, 20, 2A, FF 1.14 Να βρεθούν οι δεκαεξαδικές αναπαραστάσεις των παρακάτω αριθμών του δεκαδικού συστήματος: 0, 15, 16, 255, 256

2.1 Αλγόριθμοι Αλγόριθμοι και προγραμματισμός 2 Αλγόριθμοι και Προγραμματισμός Αλγόριθμος είναι μια πεπερασμένη σειρά βημάτων για την επίλυση ενός προβλήματος. Ο προγραμματισμός δεν είναι παρά η κατάλληλη «μετάφραση» ενός αλγορίθμου στις ε- ντολές μιας γλώσσας προγραμματισμού. Ή αλλιώς, ένα πρόγραμμα είναι πάντα η «υλοποίηση» ενός αλγορίθμου στον υπολογιστή. Για παράδειγμα, η υλοποίηση του βήματος «τύπωσε στην οθόνη τη λέξη Hello!» στη γλώσσα προγραμματισμού του MATLAB μπορεί να γίνει με την εντολή: fprintf('hello!'); Βασικά στοιχεία αλγορίθμων Τα βασικά στοιχεία ενός αλγορίθμου, με τα οποία αποδεικνύεται ότι μπορεί να λυθεί οποιοδήποτε πρόβλημα (και μπορούν να χρησιμοποιηθούν κατά την δημιουργία οποιουδήποτε προγράμματος), είναι: 1. Ανάθεση 2. Επιλογή 3. Επανάληψη Τα παραπάνω στοιχεία εφαρμόζονται και στα 3 τμήματα ενός προγράμματος, δηλαδή στην είσοδο των δεδομένων, στην επεξεργασία τους και στην έξοδο των αποτελεσμάτων. Παράδειγμα: Επίλυση πρωτοβάθμιας εξίσωσης: Ανάθεση Θέσε την τιμή της μεταβλητής a ίση με 3. Είσοδος Ανάθεση Θέσε την τιμή της μεταβλητής b ίση με 12. Είσοδος Επιλογή Αν a 0, Ανάθεση Επιλογή Αν a=0, Επιλογή Θέσε στη μεταβλητή x το πηλίκο -b/a. Τύπωσε στην οθόνη την τιμή της x. Επεξεργασία Έξοδος Αν b=0, τύπωσε στην οθόνη το μήνυμα «Η εξίσωση Έξοδος είναι αόριστη». Επιλογή Αν b 0, τύπωσε στην οθόνη το μήνυμα «Η εξίσωση Έξοδος είναι αδύνατη». Άσκηση: Να κατασκευαστεί παρόμοιος αλγόριθμος που να επιλύει τη δευτεροβάθμια εξίσωση. Παράδειγμα: Εύρεση του αθροίσματος S των ακεραίων από 1 έως N: Ανάθεση Ζήτησε από το πληκτρολόγιο έναν θετικό ακέραιο και θέσε την Είσοδος τιμή του στη μεταβλητή N. Ανάθεση Θέσε στη μεταβλητή S την αρχική τιμή 0. Επεξεργασία Επανάληψη Επανάλαβε την παρακάτω διαδικασία θέτοντας διαδοχικά την τιμή της μεταβλητής i από 1 έως N Ανάθεση Θέσε στη μεταβλητή S την προηγούμενη τιμή της Επεξεργασία αυξημένη κατά i Τύπωσε την τιμή της μεταβλητής S. Έξοδος Άσκηση: Να βελτιωθεί ο παραπάνω αλγόριθμος, ώστε η ακολουθία να ξεκινάει από οποιοδήποτε ακέραιο k και να προχωράει με οποιοδήποτε βήμα a. Τα k και a πρέπει να δίνονται από το πληκτρολόγιο, όπως το N (στο προηγούμενο παράδειγμα ήταν k=1 και a=1).

Αλγόριθμοι και Προγραμματισμός 17 2.2 Γλώσσες προγραμματισμού Γλώσσα προγραμματισμού είναι ένα σύνολο εντολών, από τις οποίες επιλέγονται όσες α- παιτούνται και τοποθετούνται με κατάλληλη σειρά κατά τη συγγραφή ενός προγράμματος. Γλώσσα μηχανής είναι ο τρόπος ελέγχου του υπολογιστή με σειρές δυαδικών ψηφίων (0 ή 1). Όπως καταλαβαίνουμε, ακόμα και οι απλούστερες εντολές προς τον υπολογιστή δημιουργούν πολύ μακρές σειρές δυαδικών ψηφίων, με αποτέλεσμα να είναι πρακτικά αδύνατος ο προγραμματισμός σε γλώσσα μηχανής. Για το λόγο αυτό, είναι αναγκαίος ο συμβολισμός των εντολών σε μια «γλώσσα» πιο κατανοητή και πιο εύχρηστη από τον άνθρωπο. Assembly είναι μια συμβολική γλώσσα για τον έλεγχο του υπολογιστή, στην οποία γίνεται απ ευθείας αντιστοίχιση των βασικότερων εντολών της γλώσσας μηχανής σε πιο εύχρηστα σύμβολα. Το αποτέλεσμα ενός προγράμματος σε assembly είναι πολύ γρήγορο καθώς είναι πολύ κοντά στη γλώσσα μηχανής. Παρόλ αυτά, η assembly δεν παύει να είναι ακόμη πολύ στοιχειώδης και δύσχρηστη, όπως φαίνεται στο παρακάτω παράδειγμα: Γλώσσα C, PASCAL, MATLAB Γλώσσα Assembly Γλώσσα Μηχανής c = a + b add $c, $a, $b 10001110 01101010 00000000 00001100 http://www.edu.physics.uoc.gr/~ph150/source/4-1.html Γλώσσες προγραμματισμού ανωτέρου επιπέδου: Για να γίνει δυνατή η κατασκευή προγραμμάτων για επίλυση συνθετότερων προβλημάτων αναπτύχθηκαν γλώσσες ανωτέρου επιπέδου, όπως Basic, Cobol, Fortran, Pascal, C, C++, Python κλπ. Η Basic θεωρείτο κατάλληλη για εισαγωγή στον προγραμματισμό, η Cobol εξειδικεύεται σε εμπορικές εφαρμογές, η Fortran είναι βελτιστοποιημένη σε αριθμητική ανάλυση, ενώ η Pascal και η C είναι πλούσιες γενικές γλώσσες για πολλών ειδών εφαρμογές. Επιπλέον, έχουν αναπτυχθεί και γλώσσες για ε- ξειδικευμένες περιοχές, όπως Lisp (τεχνητή νοημοσύνη), Matlab και Mathematica (τεχνικός και επιστημονικός προγραμματισμός), Java (διαδικτυακός προγραμματισμός και επικοινωνία συσκευών) κλπ. Την τελευταία δεκαετία έχει γίνει ανάπτυξη των παραπάνω γλωσσών σε περιβάλλον Windows και έχουν εμπλουτιστεί με πολλές «βιβλιοθήκες» (σύνολα εντολών και συναρτήσεων) για επαγγελματική ανάπτυξη εφαρμογών. 2.3 Δημιουργία ενός προγράμματος 1. Δημιουργία του αλγορίθμου: Μετά από ανάλυση των απαιτήσεων του προβλήματος και διαίρεσή του σε απλά τμήματα γίνεται η κατασκευή του αλγορίθμου (στο «χαρτί» ή νοητά, ανάλογα με την πολυπλοκότητα, καθώς ο προγραμματιστής έχει πάντα στο μυαλό του, ενσυνείδητα ή υποσυνείδητα, τα βήματα που πρόκειται να ακολουθήσει). 2. Γράψιμο του κώδικα του προγράμματος: Αυτό γίνεται σε χρησιμοποιώντας απλά προγράμματα στον υπολογιστή, ειδικά για να συγγραφή απλού κειμένου, που λέγονται διορθωτές (editors). Το κείμενο που δημιουργείται από το διορθωτή και που περιέχει τις εντολές του προγράμματος λέγεται πηγαίος κώδικας (source code) ή απλά κώδικας του προγράμματος. 3. Μεταγλώττιση (compilation) ή διερμηνεία (interpretation): Είναι η μετατροπή του προγράμματος από τη μορφή του πηγαίου κώδικα στη γλώσσα μηχανής, έτοιμο να εκτελεστεί από τον υπολογιστή. Αυτό γίνεται με τη χρήση ειδικών προγραμμάτων που λέγονται μεταγλωττιστές (compilers) ή διερμηνείς (interpreters) της γλώσσας που χρησιμοποιούμε. Η διαφορά μεταξύ τους είναι ότι ο compiler δημιουργεί ένα πρόγραμμα που μπορεί να τρέξει αυτόνομα στον υπολογιστή (εκτελέσιμο αρχείο), ενώ ο interpreter εκτελεί το πρόγραμμα γραμμή-γραμμή, συνήθως μέσα από το περιβάλλον του interpreter. Κατά τη διάρκεια της τελευταίας διαδικασίας εμφανίζονται και τα τυχόν σφάλματα (bugs) του προγράμματος, οπότε εδώ πρέπει να προστεθεί και η πολύ σημαντική διαδικασία της α- ποσφαλμάτωσης (debugging).

18 Προγραμματισμός Ηλεκτρονικών Υπολογιστών σε περιβάλλον MATLAB Ερωτήσεις 2.1 Τι είναι αλγόριθμος; Ποια η σχέση ενός αλγόριθμου με ένα πρόγραμμα στον υπολογιστή; 2.2 Τι από τα παρακάτω πλησιάζει περισσότερο την έννοια του αλγορίθμου: [ ] Ένα πρόγραμμα στον υπολογιστή. [ ] Οι εντολές ενός προγράμματος στον υπολογιστή. [ ] Τα απλά βήματα ενός προγράμματος στον υπολογιστή. [ ] Τα απλά βήματα για την επίλυση ενός προβλήματος. 2.3 Ένα πρόγραμμα στον υπολογιστή: [ ] Είναι ένας αλγόριθμος. [ ] Είναι η υλοποίηση ενός αλγορίθμου. [ ] Δεν έχει καμία σχέση με έναν αλγόριθμο. [ ] Αποτελεί τη βάση για την κατασκευή ενός αλγόριθμου. 2.4 Ποια είναι τα βασικά στοιχεία ενός αλγορίθμου; 2.5 Ποια είναι τα βήματα κατά τη δημιουργία ενός προγράμματος στον υπολογιστή; 2.6 Τι είναι η γλώσσα μηχανής και τι η assembly; Να αναφερθούν τρία παραδείγματα γλωσσών προγραμματισμού, με το πεδίο στο οποίο συνήθως χρησιμοποιούνται. 2.7 Να σημειωθούν ποιες από τις παρακάτω είναι γλώσσες προγραμματισμού ανωτέρου ε- πιπέδου: [ ] Basic [ ] Assembly [ ] Γλώσσα μηχανής [ ] Fortran [ ] Pascal [ ] C Ασκήσεις 2.8 Χρησιμοποιώντας τα βασικά στοιχεία ενός αλγορίθμου (ανάθεση, επιλογή, επανάληψη), να γραφτούν τα απλά βήματα με τα οποία ένας αλγόριθμος υπολογίζει το n- παραγοντικό (n!=1 2 3 n), αν το n είναι θετικός ακέραιος, ή τυπώνει μήνυμα «Ακατάλληλος αριθμός» σε αντίθετη περίπτωση. 2.9 Να γραφτεί ένας αλγόριθμος που υπολογίζει το μέσο όρο μιας ομάδας αριθμών. 2.10 (i) Να γραφτεί ένας αλγόριθμος που υπολογίζει και τυπώνει κατάλληλο μήνυμα με (α) το μέγιστο και (β) τον ελάχιστο αριθμό από ένα δοσμένο σύνολο. (ii) Να βελτιωθούν οι παραπάνω αλγορίθμοι, ώστε σε περίπτωση πολλαπλής εμφάνισης του μεγίστου ή του ελαχίστου να τυπώνουν και το πλήθος αυτών των επαναλήψεων (π.χ. «Ο ελάχιστος α- ριθμός είναι το -12 και εμφανίζεται 2 φορές»). 2.11 Δίνεται ένα σύνολο από βαθμολογίες φοιτητών. Να γραφτεί κατάλληλος αλγόριθμος ο οποίος βρίσκει το πλήθος των φοιτητών που πέρασαν το μάθημα (βαθμός 5) καθώς και των φοιτητών που αρίστευσαν (βαθμός 8.5).

3 Το περιβάλλον και ο τρόπος λειτουργίας του MATLAB Το MATLAB είναι μια γλώσσα προγραμματισμού ανώτερου επιπέδου, με εγγενείς ιδιαίτερες δυνατότητες χειρισμού πινάκων και απεικόνισης γραφικών. Ταυτόχρονα, περιέχει μια σειρά από έτοιμες συναρτήσεις που μπορούν να χρησιμοποιηθούν σε προγράμματα διαφόρων εφαρμογών. Το MATLAB χρησιμοποιείται παγκοσμίως για ανάπτυξη ακόμη και ιδιαιτέρως απαιτητικών ερευνητικών, τεχνικών και μηχανολογικών εφαρμογών. Όσα αναφέρονται στη συνέχεια βασίζονται στην έκδοση 7.1 του MATLAB, αν και τα περισσότερα ισχύουν και για προηγούμενες καθώς και επόμενες εκδόσεις. 3.1 Το περιβάλλον του MATLAB Μετά την πρώτη εγκατάσταση και εκτέλεση του MATLAB, εμφανίζεται το γραφικό περιβάλλον αλληλεπίδρασης με το χρήστη, που ονομάζεται Επιφάνεια Εργασίας (Desktop) του MATLAB, όπως φαίνεται στο σχήμα: Στο Desktop του MATLAB μπορούν να βρίσκονται τα εξής τμήματα (παράθυρα), που μπορούμε να επιλέξουμε την εμφάνισή τους ή όχι από την επιλογή Desktop του μενού, όπως φαίνεται στην παραπάνω εικόνα: Command Window Command History Current Directory Workspace Help Profiler Αν και δεν φαίνονται στην παραπάνω εικόνα, μπορεί επίσης να είναι «ανοιχτό» το παράθυρο του Διορθωτή (Editor), που χρησιμεύει για να γράφουμε προγράμματα σε MATLAB, ενώ τέλος μπορεί να υπάρχουν και παράθυρα απεικόνισης γραφικών (Figures), δηλαδή εικόνων, γραφικών παραστάσεων ή άλλων γραφημάτων: Editor Figure

20 Προγραμματισμός Ηλεκτρονικών Υπολογιστών σε περιβάλλον MATLAB Περιγραφή παραθύρων του Desktop Παρακάτω περιγράφονται τα παράθυρα που μπορεί να βρίσκονται ανοιχτά ή όχι στο Desktop του MATLAB, με σειρά σπουδαιότητας που έχουν σε σχέση με τους σκοπούς του εγχειριδίου αυτού: Editor Χρήση: Για συγγραφή και επεξεργασία κώδικα προγράμματος. Στον Editor μπορούν να βρίσκονται «ανοιχτά» ένα ή περισσότερα παράθυρα με προγράμματα. Ένα νέο παράθυρο για συγγραφή κώδικα δημιουργείται με την επιλογή New M-File του μενού File (συντόμευση πληκτολογίου: Control-N). Command Window Κύρια χρήση: (α) Εμφάνιση αποτελεσμάτων εκτύπωσης κειμένου στην οθόνη (όπου στη συνέχεια αναφέρεται «εκτύπωση στην οθόνη» θα εννοείται «εκτύπωση στο Command Window»). (β) Άμεση εκτέλεση εντολών. Με τον τρόπο αυτό μπορεί να δοκιμάζεται ο τρόπος λειτουργίας μιας εντολής πριν χρησιμοποιηθεί σε πρόγραμμα. Άλλες χρήσεις: Συνδυάζοντας τα δύο προηγούμενα μπορεί να γίνει αποσφαλμάτωση των προγραμμάτων. Επίσης, γράφοντας help εντολή δίνεται μια σύντομη περιγραφή λειτουργίας της συγκεκριμένης εντολής (ενώ με doc εντολή εμφανίζεται το παράθυρο Help με πολύ περισσότερες δυνατότητες βοήθειας για την εντολή αυτή). Τα δύο παραπάνω παράθυρα είναι τα περισσότερο χρήσιμα στην αρχή, οπότε συνιστάται να υπάρχουν μόνο αυτά μέχρι κάποιος να εξοικειωθεί με το MATLAB (τα άλλα παράθυρα μπορούν αρχικά να «κλείσουν», και να «ξανανοίξουν» αν χρειαστεί, από το μενού Desktop). Help Εμφάνιση βοήθειας για όλο το περιβάλλον, τις εντολές, τις συναρτήσεις και τα toolbox του MATLAB. Η έννοια για την οποία θέλουμε βοήθεια είτε ανευρίσκεται στην καρτέλα Contents, είτε γράφεται σε κατάλληλο πεδίο που βρίσκεται στην καρτέλα Index. Ιδιαιτέρως σημαντικό είναι το τμήμα Getting Started, ακολουθώντας τα βήματα του οποίου μπορεί κάποιος να μάθει εύκολα τις δυνατότητες του MATLAB. Το παράθυρο του Help μπορεί να εμφανιστεί και από το μενού Help. Workspace Εμφανίζονται οι μεταβλητές του MATLAB που βρίσκονται στη μνήμη του υπολογιστή. Έτσι μπορούμε να δούμε συνεχώς τις τιμές τους, ακόμα και κατά τη διάρκεια εκτέλεσης ενός προγράμματος, διότι το παράθυρο αυτό ενημερώνεται σε πραγματικό χρόνο. Current Directory Εκεί εμφανίζονται όλα τα αρχεία που βρίσκονται στο Current Directory. Command History Εμφανίζονται όλες οι προηγούμενες εντολές που έχουμε δώσει στο Command Window. Αυτό χρησιμεύει όταν εργαζόμαστε κυρίως από το Command Window (αντί του Editor). Profiler Πρόκειται για το παράθυρο μιας ενσωματωμένης εφαρμογής η οποία μας δίνει το χρόνο που απαιτείται για την εκτέλεση κάθε εντολής και συνάρτησης σε ένα πρόγραμμα. Είναι μια πολύ χρήσιμη εφαρμογή όταν θέλουμε να βρούμε τα σημεία στα οποία υπάρχουν καθυστερήσεις. Ένα παράθυρο μπορεί να μετακινηθεί σε άλλη θέση μετά από πίεση και μετακίνηση με το α- ριστερό πλήκτρο του ποντικιού στην μπάρα τίτλου του (που είναι μια οριζόντια ράβδος στο άνω τμήμα του παραθύρου με τον τίτλο του αριστερά, π.χ. ). Επίσης, με τα κουμπιά, ή που βρίσκονται στο δεξί μέρος της μπάρας τίτλου μπορεί να γίνει αποσύνδεση (undock) του παραθύρου από το Desktop, σύνδεση (dock) του παραθύρου στο Desktop, ή κλείσιμο του παραθύρου αντίστοιχα.

Το περιβάλλον προγραμματισμού του MATLAB 21 3.2 Ο τρόπος λειτουργίας του MATLAB Εντολές: Το MATLAB λειτουργεί με εντολές, οι οποίες είτε δίνονται απ ευθείας στο Command Window, είτε γράφονται σε κώδικα προγράμματος με τη βοήθεια του Editor. Μεταβλητές και Workspace: Οι μεταβλητές είναι θέσεις στη μνήμη του υπολογιστή, οι οποίες περιέχουν τιμές που μεταβάλλονται με τη βοήθεια εντολών. Οι μεταβλητές βρίσκονται σε μια περιοχή της μνήμης του MATLAB που ονομάζεται Workspace. Current Directory και Path: Για να μπορεί να εκτελεστεί ένα πρόγραμμα, πρέπει αυτό να βρίσκεται σ ένα φάκελο που λέγεται Τρέχων Κατάλογος (Current Directory) (φαίνεται σ ένα ειδικό χώρο κάτω από το μενού, βλ. παρακάτω εικόνα). Π.χ. το Current Directory μπορεί να είναι C:\Program Files\Matlab\work ή C:\My Documents\Matlab Για καλύτερη οργάνωση, τα προγράμματα που φτιάχνει ο χρήστης μπορούν να αποθηκευτούν και σε διαφορετικούς φακέλους (δηλαδή όχι μόνο στο Current Directory). Τότε, για να μπορούν να εκτελεστούν, πρέπει η διαδρομή αυτών των φακέλων να προστεθεί σε μια ειδική ομάδα που λέγεται Path (και βρίσκεται στο μενού File Set Path). Το MATLAB ελέγχει αρχικά το Current Directory, και μετά ελέγχει το Path με τη σειρά προτεραιότητας όπως φαίνεται στο File Set Path. Η σειρά προτεραιότητας μπορεί να αλλάξει με Move Up ή Move Down (βλ. παρακάτω εικόνα). Συναρτήσεις και Toolboxes: Στο MATLAB υπάρχουν μια σειρά από συναρτήσεις (δηλαδή σύνολα εντολών που εμπλουτίζουν τις λειτουργίες του). Οι συναρτήσεις του MATLAB είναι οργανωμένες σε ομάδες, κάθε μια σχετική με μια εξειδικευμένη θεματική περιοχή. Κάθε ομάδα τέτοιων συναρτήσεων ονομάζεται Toolbox (π.χ. Statistics, Signal Processing, Image Processing, Communications, Financial,, όπως φαίνεται στην παρακάτω εικόνα).

22 Προγραμματισμός Ηλεκτρονικών Υπολογιστών σε περιβάλλον MATLAB Προγράμματα στο MATLAB: Scripts και Functions Τα αρχεία προγραμμάτων στο MATLAB ονομάζονται m-files, καθώς έχουν επέκταση.m. Το MATLAB διακρίνει δύο είδη m-files: Scripts (προγράμματα) και functions (συναρτήσεις). Scripts: Ακολουθίες εντολών. Μοιράζονται το τρέχον workspace, δηλαδή μπορούν να χρησιμοποιήσουν μεταβλητές που ήδη υπάρχουν στο workspace, και οι μεταβλητές που δημιουργούν παραμένουν με τις τιμές τους στο workspace. Functions: Ακολουθίες εντολών, που όμως δεν «τρέχουν» από μόνες τους (όπως τα scripts) αλλά «καλούνται» με το όνομά τους από άλλα προγράμματα ή από το Command Window. Μπορούν να δεχθούν τιμές μεταβλητών ως είσοδο και να εξάγουν νέες τιμές ως έξοδο. Δημιουργούν το δικό τους ανεξάρτητο workspace, που είναι εντελώς απομονωμένο από του υπόλοιπου συστήματος, και «αντιλαμβάνονται» μόνο τις μεταβλητές που εισάγονται ως είσοδοι καθώς και αυτές που δημιουργούνται στο εσωτερικό τους. Έτσι ο κώδικας είναι «καθαρότερος» και τα σφάλματα λιγότερα. Δημιουργία, αποθήκευση και εκτέλεση προγράμματος στο MATLAB Ο κώδικας ενός προγράμματος στο MATLAB γράφεται με τη βοήθεια του ενσωματωμένου Editor. Με τη βοήθεια της επιλογής File του μενού μπορούμε να δημιουργήσουμε ένα νέο αρχείο προγράμματος (File New M-File), να το αποθηκεύσουμε (File Save ή Save As ) ή να ανοίξουμε (File Open ) ένα υπάρχον αρχείο. Προσοχή: Οι εντολές αφορούν κάθε φορά το ενεργό παράθυρο (διακρίνεται από την έγχρωμη μπλε μπάρα τίτλου). Για παράδειγμα, για αποθήκευση του προγράμματος πρέπει να είναι ενεργό το παράθυρο του Editor, και όχι π.χ. του Command Window. Όταν γραφτεί ο κώδικας, το πρόγραμμα εκτελείται («τρέχει») με την επιλογή Run του μενού Debug (συντόμευση πληκτρολογίου: F5). Η αποθήκευση γίνεται τότε αυτόματα, εκτός από την πρώτη φορά, οπότε ζητείται το όνομα του αρχείου του προγράμματος. Το όνομα του αρχείου πρέπει να περιέχει μόνο λατινικά γράμματα (a z, A Z), αριθμητικά ψηφία (0 9) και κάτω παύλα (_, underscore), καθώς και ο πρώτος χαρακτήρας να είναι γράμμα (είναι οι ίδιοι περιορισμοί με αυτούς των ονομάτων των μεταβλητών βλ. και 4.2). Σε αντίθετη περίπτωση, το αρχείο πιθανόν να αποθηκευτεί, αλλά δεν θα μπορεί να χρησιμοποιηθεί σωστά από το MATLAB. Κατά τη συγγραφή του ο κώδικας πρέπει να αποθηκεύεται τακτικά (με τη συντόμευση πληκτρολογίου: Ctrl+S, ή πατώντας στο κατάλληλο εικονίδιο: ). Χρήσιμες είναι επίσης και οι λειτουργίες Copy-Paste (Ctrl+C και Ctrl+V) και Undo (Ctrl+Z).

Το περιβάλλον προγραμματισμού του MATLAB 23 3.3 Συνοπτική παρουσίαση εντολών γενικής χρήσης του MATLAB: general Λίστα με τις εντολές γενικής χρήσης του MATLAB εμφανίζεται στο Command Window με την εντολή help general (ή στο παράθυρο της Βοήθειας με doc general).

24 Προγραμματισμός Ηλεκτρονικών Υπολογιστών σε περιβάλλον MATLAB Ερωτήσεις 3.1 Ποιο παράθυρο της Επιφάνειας Εργασίας (Desktop) του MATLAB πρέπει να ανοιχθεί, ώστε: - να εκτελεστεί απ ευθείας μια εντολή:... - να δοκιμαστεί ο τρόπος λειτουργίας μιας εντολής:... - να γραφτούν πολλές εντολές που να εκτελεστούν αργότερα:... - να αποθηκευτεί σειρά διαδοχικών εντολών στο δίσκο:... - να βρεθεί μια εντολή που δώσατε προηγουμένως:... - να ζητηθεί πλήρη βοήθεια για μια εντολή:... - να γίνει διαχείριση των αρχείων του τρέχοντος καταλόγου εργασίας:... - να δείτε τις τιμές των μεταβλητών:... (Μπορεί να υπάρχει το ίδιο παράθυρο σε περισσότερες από μία απαντήσεις) 3.2 Σε ποιο από τα παράθυρα του Desktop του MATLAB μπορούν να γραφτούν εντολές α) οι οποίες μπορούν να εκτελεστούν απ ευθείας;... β) οι οποίες να συνθέτουν κώδικα προγράμματος;... 3.3 Να περιγραφεί η λειτουργία του Command Window. 3.4 Τι είναι το workspace του MATLAB; Τι περιέχει το αντίστοιχο παράθυρο; 3.5 Να περιγραφεί συνοπτικά ο τρόπος λειτουργίας του MATLAB, και συγκεκριμένα: α) Πού γράφονται οι εντολές και πώς εκτελούνται; β) Πού αποθηκεύονται οι μεταβλητές με τις τιμές τους; γ) Τι είναι το Current Directory και τι το Path, και ποιος ο ρόλος καθενός; 3.6 Τι είναι τα Toolboxes; 3.7 Τι είναι τα scripts και τι οι functions; 3.8 Να γραφτεί ένα πλεονέκτημα των συναρτήσεων (functions) σε σχέση με τα απλά προγράμματα (scripts). 3.9 Ποιοι είναι οι περιορισμοί για ένα όνομα αρχείου με κώδικα προγράμματος σε MAT- LAB; 3.10 Ποια από τα παρακάτω ονόματα αρχείου με κώδικα MATLAB είναι αποδεκτά: [ ] program1.m Αν όχι, γιατί; [ ] _program.m Αν όχι, γιατί; [ ] 1program.m Αν όχι, γιατί; [ ] 1_program.m Αν όχι, γιατί; [ ] my program.m Αν όχι, γιατί; [ ] my-program.m Αν όχι, γιατί; [ ] my_program.m Αν όχι, γιατί; [ ] my_program.c Αν όχι, γιατί; [ ] προγραμμα.m Αν όχι, γιατί;

4.1 Στοιχεία του κώδικα ενός προγράμματος 4 Βασικά στοιχεία προγραμματισμού Τα στοιχεία που χρησιμοποιούνται κατά τη συγγραφή του κώδικα ενός προγράμματος είναι οι μεταβλητές, οι τελεστές και οι εντολές. Συνοπτικά: Μεταβλητές: Αντιστοιχούν σε θέσεις στη μνήμη του υπολογιστή για προσωρινή αποθήκευση δεδομένων και αποτελεσμάτων. Οι βασικοί τύποι μεταβλητών είναι μεταβλητές χαρακτήρων, αριθμητικές μεταβλητές (ακέραιες και "κινητής υποδιαστολής") και λογικές μεταβλητές: Μεταβλητές χαρακτήρα (character variables): Είναι μεταβλητές στις οποίες αποθηκεύονται γράμματα της αλφαβήτου, αριθμητικά ψηφία και διάφορα σύμβολα (π.χ. 'a', '3', '!'). Σειρές συνεχόμενων χαρακτήρων σχηματίζουν τις συμβολοσειρές (ή αλφαριθμητικές μεταβλητές ή strings), π.χ. 'Hello'. Ακέραιες μεταβλητές (integer variables): Είναι αριθμητικές μεταβλητές στις οποίες αποθηκεύονται ακέραιοι, π.χ. 3, 54, -21, 0. Μεταβλητές κινητής υποδιαστολής (floating point variables): Είναι μεταβλητές στις ο- ποίες αποθηκεύονται αριθμοί με δεκαδικά ψηφία, π.χ. 4.022, -21.77, 0.5, 1.0. Λογικές μεταβλητές: Είναι μεταβλητές στις οποίες αποθηκεύονται οι λογικές τιμές true ή false («αλήθεια» ή «ψεύδος»), και αποδίδονται με 1 ή 0 αντίστοιχα. Τελεστές: Είναι σύμβολα που παριστάνουν πράξεις ή συναρτήσεις με τις οποίες ο υπολογιστής συσχετίζει τις μεταβλητές (π.χ. κάνει αριθμητικές πράξεις με αυτές, τις συγκρίνει κλπ). Οι βασικοί τελεστές είναι: Αριθμητικοί: +, -, *, /, ^ Συγκριτικοί: == (ίσο), ~= (άνισο), >= (μεγαλύτερο ή ίσο), <=, >, < Λογικοί: & (και), (ή), ~ (όχι) Εντολές: Είναι οι οδηγίες προς τον υπολογιστή. Στις εντολές πρέπει να συμπεριλάβουμε και τις συναρτήσεις, που είναι σύνολα εντολών (ή άλλων συναρτήσεων) που συμπεριφέρονται ως μια νέα εντολή, που δέχεται ως είσοδο τιμές μεταβλητών και εξάγει νέες τιμές. Οι συναρτήσεις επεκτείνουν πάρα πολύ τις δυνατότητες προγραμματισμού, και εκτός από τις ενσωματωμένες συναρτήσεις του MATLAB, μπορεί ο προγραμματιστής να δημιουργήσει και τις δικές του. Οι βασικότερες εντολές είναι: Ανάθεση: = π.χ. a = 4; b = 2*a; a = a + 1; Επιλογή: if και switch π.χ. if(a~=0), x=b/a; Επανάληψη: for και while π.χ. for i=1:10, sum = sum + i; Βασικές συναρτήσεις εισόδου-εξόδου είναι: Είσοδος (εισαγωγή τιμών από το πληκτρολόγιο): input π.χ. w = input('input your weight'); Έξοδος (εκτύπωση στην οθόνη): disp και fprintf π.χ. disp(x); fprintf('the weight is %d',x); Στη συνέχεια θα αναπτυχθούν αναλυτικότερα τα περί μεταβλητών, τελεστών και εντολών.