ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1"

Transcript

1 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 1 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή Περιεχόμενο μαθήματος: Αλγοριθμική επίλυση προβλημάτων Προγραμματισμός με MATLAB Εφαρμογές σε μαθηματικά και μη προβλήματα Ανάπτυξη προγραμμάτων: MATLAB Octave Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Είσοδος ( 0 δεδομένα) Έξοδος ( 1 αποτελέσματα) Ορισμένος (περιέχει σαφείς οδηγίες) Κάθε οδηγία, μεμονωμένα: εξαιρετικά απλή Καλύπτει όλες τις δυνατές καταστάσεις Εξασφαλίζει τον τερματισμό (πεπερασμένος αριθμός βημάτων ή χρόνος) Πρόγραμμα: Ακριβής διατύπωση ενός αλγορίθμου σε μια γλώσσα προγραμματισμού. Υπολογιστική επίλυση προβλήματος: 1) Ανάλυση δεδομένων του προβλήματος 2) Μαθηματική διατύπωση του προβλήματος 3) Ανάπτυξη του αλγόριθμου (σχεδιασμός ή επιλογή κατάλληλου αλγόριθμου (συνήθως: ένα πρόβλημα πολλοί αλγόριθμοι) 4) Διατύπωση αλγόριθμου σε γλώσσα προγραμματισμού: πρόγραμμα 5) Εκτέλεση προγράμματος για συγκεκριμένα δεδομένα 6) Ερμηνεία αποτελεσμάτων Βασικές αλγοριθμικές ενέργειες Είσοδος / Έξοδος Πράξεις ή αναθέσεις τιμών σε μεταβλητές Έλεγχος ποσοτήτων επιλογή δράσης Επαναληπτική εκτέλεση Τερματισμός ver Τμήμα Μαθηματικών ΕΚΠΑ 1

2 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 1 Θέμα εισαγωγικού μαθήματος: Μετατροπή μαθητικών τύπων σε πρόγραμμα υπολογιστή. Πρόβλημα: Το εμβαδόν σφαίρας ακτίνας r δίνεται από τη σχέση: A = 4 π r 2. Πώς αυξάνεται το A όταν αυξάνεται το r κατά δr; i) δα = 4 π (r + δr) 2 4 π r 2 ii) δα = 4 π (2r + δr) δr iii) δα = 4 π r δr Ας δούμε πρώτα ένα πρόγραμμα που να υπολογίζει απλά το A: % Το script SurfArea % r: η ακτίνα της σφαίρας % A: το εμβαδόν της σφαίρας r = input('δώσε την ακτίνα r:'); A = 4* *r*r; fprintf('το εβδαδόν ισούται με %f.\n', A); Η βασική δομή ενός προγράμματος: είσοδος Υπολογισμοί έξοδος Τα βασικά στοιχεία του: Μεταβλητές θέσεις μνήμης για την αποθήκευση τιμών - Έχουν όνομα και τιμή η οποία μπορεί να μεταβληθεί. - Για να χρησιμοποιηθούν σε ένα πρόγραμμα, πρέπει πρώτα να έχουν πάρει κάποια τιμή (να έχουν αρχικοποιηθεί). ver Τμήμα Μαθηματικών ΕΚΠΑ 2

3 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 1 - Τα ονόματα ξεκινάνε με γράμμα και μπορούν να περιέχουν γράμματα, αριθμούς και _ καλό είναι τα ονόματα να είναι περιγραφικά (π.χ., mesos_oros) υπάρχει διάκριση μετακύ κεφαλαίων και πεζών Εκφράσεις υπολογισμοί που οδηγούν σε κάποια τιμή. Αποτελούν συνδυασμούς μεταβλητών, σταθερών, τελεστών και συναρτήσεων. - Σταθερές: αριθμητικές ποσότητες που δεν αλλάζουν Ειδική σταθερά: pi π Παριστάνονται και σε εκθετική μορφή: ο αριθμός x 10 y xey ή xey Π.χ., 500 5e2 2.5e E-31-4e10 - Αριθμητικοί τελεστές: Μονομελείς: πρόσημα + και - Διμελείς: +, -, *, /, ^ - Υπολογισμός εκφράσεων: Προτεραιότητα πράξεων: 1. παρενθέσεις, αρχίζοντας από τις εσωτερικές 2. *, / 3. +, - Πράξεις στο ίδιο επίπεδο προτεραιότητας: από αριστερά προς τα δεξιά. Εντολές εκχώρησης ο τρόπος εισόδου τιμών στις μεταβλητές. Πραγματοποιούνται με τον τελεστή εκχώρησης = Γενική μορφή: μεταβλητή = έκφραση Βήματα: i) Υπολογίζεται η τιμή της έκφρασης στα δεξιά του τελεστή εκχώρησης ii) Η τιμή αποθηκεύεται στη μεταβλητή στα αριστερά του τελεστή εκχώρησης ver Τμήμα Μαθηματικών ΕΚΠΑ 3

4 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 1 Π.χ. x = 2 * 3.14; y = x + 1; [Το x έχει ήδη πάρει κάποια τιμή, οπότε είναι ok. Διαφορετικά θα ήταν λάθος!] y = y + 1; [Σωστό! Είναι εντολή εκχώρησης και όχι αλγεβρική εξίσωση] A = 4* *r*r; [Εντολή εκχώρησης από το πρόγραμμα] Τώρα γνωρίζουμε ότι μπορεί να γραφεί καλύτερα: A = 4*pi*r^2; Είσοδος ανάγνωση δεδομένων από το πληκτρολόγιο - Με τη συνάρτηση input: μεταβλητή = input('συμβολοσειρά') όνομα μεταβλητής κείμενο σε μονά εισαγωγικά π.χ., r = input('δώσε την ακτίνα r: ') Εμφανίζεται η συμβολοσειρά στην οθόνη και περιμένει πληκτρολόγηση Με το πάτημα του ENTER, ό,τι έχει πληκτρολογηθεί εκχωρείται (αποθηκεύεται) στη μεταβλητή στα αριστερά του =. Έξοδος εμφάνιση αποτελεσμάτων στην οθόνη Με τη συνάρτηση disp() disp(έκφραση) ή disp('μήνυμα') π.χ., disp(x) εμφανίζει την τιμή της μεταβλητής x disp(2+3) 5 disp('hello') Hello disp(x,y) ΛΑΘΟΣ! Η disp δέχεται μόνο ένα όρισμα. Με τη συνάρτηση fprintf() fprintf('συμβολοσειρά με τελεστές προσαρμογής', λίστα μετ/τών) Η συμβολοσειρά: κείμενο που θα εμφανιστεί στην έξοδο Οι τελεστές προσαρμογής: ειδικοί τελεστές που καθορίζουν τον τρόπο και τη θέση εμφάνισης των τιμών των μεταβλητών που βρίσκονται στη λίστα μεταβλητών. Τελεστής αλλαγής γραμμής: \n ver Τμήμα Μαθηματικών ΕΚΠΑ 4

5 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 1 - Τελεστές προσαρμογής της fprintf: Εισάγονται με το σύμβολο % Συνηθέστεροι: %f %d %e %g κανονική δεκαδική μορφή για ακέραιους εκθετική μορφή γενική μορφή (συντομότερη δυνατή μορφή) Γενικά: %w.df εκτύπωση σε w συνολικά θέσεις με d δεκαδικά ψηφία. Π.χ., r = 6367; A = 4*pi*r^2; fprintf('το εμβαδόν σφαίρας με ακτίνα %f είναι %f\n', r,a); Το εμβαδόν σφαίρας με ακτίνα είναι fprintf('το εμβαδόν σφαίρας με ακτίνα %g είναι %e\n', r,a); Το εμβαδόν σφαίρας με ακτίνα 6367 είναι e+08 fprintf('το εμβαδόν σφαίρας με ακτίνα %10.2f είναι %10.3e\n', r,a); Το εμβαδόν σφαίρας με ακτίνα είναι _5.094e+08 Σχόλια - Ξεκινάνε από το σύμβολο % μέχρι το τέλος της γραμμής - Πολύ σημαντικά για την επεξήγηση ενός script ή τμημάτων κώδικα Το script SurfArea αποθηκεύεται ως: SurfArea.m Εκτελείται ως: >> SurfArea ver Τμήμα Μαθηματικών ΕΚΠΑ 5

6 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 1 Το πρόγραμμα για την επίλυση του αρχικού προβλήματος (πώς αυξάνεται το εμβαδόν σφαίρας (δα) όταν αυξάνεται η ακτίνα κατά δr): % Script Eg1_1 % Αύξηση εμβαδού επιφάνειας % Είσοδος δεδομένων r = input('δώσε την ακτίνα (χιλιόμετρα):'); delta_r = input('δώσε την αύξηση (χιλιοστά):'); fprintf('ακτίνα σφαίρας = %12.6f χιλιόμετρα\n', r) fprintf('αύξηση ακτίνας = %12.6f χιλιοστά\n\n', delta_r) disp('αύξηση εμβαδού επιφάνειας:') dr = delta_r/10^6; % μετατροπή mm σε km % Μέθοδος 1 delta_a1 = (4*pi*(r + dr)^2 4*pi*r^2)*10^6; fprintf('\n Μέθοδος 1: %15.6f τετρ/κά μέτρα\n', delta_a1) % Μέθοδος 2 delta_a2 = (4*pi*(2*r + dr)*dr)*10^6; fprintf(' Μέθοδος 2: %15.6f τετρ/κά μέτρα\n', delta_a2) % Μέθοδος 3 delta_a3 = (8*pi*r*dr)*10^6; fprintf(' Μέθοδος 3: %15.6f τετρ/κά μέτρα\n', delta_a3) Αποθήκευση ως Eg1_1.m Εκτέλεση: >> Eg1_1 Παράδειγμα εξόδου για είσοδο: 6367 και 1.234: Ακτίνα σφαίρας = χιλιόμετρα Αύξηση ακτίνας = χιλιοστά Αύξηση εμβαδού επιφάνειας: Μέθοδος 1: Μέθοδος 2: Μέθοδος 3: τετρ/κά μέτρα τετρ/κά μέτρα τετρ/κά μέτρα Σφάλματα παραδοχών του προγράμματος: (αν υποθέσουμε ότι προσπαθούσαμε να υπολογίσουμε την αύξηση του εμβαδού της Γης) Η Γη δεν είναι τέλεια σφαίρα, είναι ελλειψοειδές. Η εσωτερική σταθερά pi ισούται με και προφανώς όχι ακριβώς με το π. Σφάλματα υπολογισμών: δημιουργούνται κάθε φορά που γίνεται κάποια αριθμητική πράξη. Έτσι εξηγείται και το διαφορετικό αποτέλεσμα των Μεθόδων 1 και 2, οι οποίες είναι μαθηματικά ισοδύναμες. Σφάλματα προσεγγίσεων: όταν επιλέγουμε να προσεγγίσουμε τη λύση ενός προβλήματος, όπως π.χ. με τη Μέθοδο 3. ver Τμήμα Μαθηματικών ΕΚΠΑ 6

7 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 1 Κάποια επιπλέον στοιχεία: Μορφοποίηση εξόδου με την εντολή format: format short: εμφάνιση τιμών σε δεκαδική μορφή με 5 ψηφία. format long: εμφάνιση τιμών σε δεκαδική μορφή με 15 ψηφία. format short e: εμφάνιση τιμών σε επιστημονική μορφή με 5 ψηφία. format long e: εμφάνιση τιμών σε επιστημονική μορφή με 15 ψηφία. format: επαναφορά στην προεπιλεγμένη μορφή (short) Πολλαπλές εντολές ανά γραμμή x = 5; disp(x); y = x^2; Ισοδύναμα: x = 5; disp(x); y = x^2; Έλεγχος εμφάνισης με το ; x = 5; disp(x); Ισοδύναμα: x = 5 Συνέχεια εντολής σε επόμενη γραμμή Με τον τελεστή... Π.χ., x = (4*pi*(r+dr)^2 4*pi*r^2)*10^6; Ισοδύναμα: x = (4*pi... *(r+dr)^2 4*pi*r^2)... *10^6; ver Τμήμα Μαθηματικών ΕΚΠΑ 7

8 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 2 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 2 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή Έλεγχος συνθηκών - if Ας μελετήσουμε το πρόβλημα του υπολογισμού του ελάχιστου της συνάρτησης στο διάστημα [ L, R ]. Έτσι, θα πάρουμε μια ιδέα για τους ελέγχους συνθηκών. Γνωρίζουμε πως το ελάχιστο βρίσκεται στο κρίσιμο σημείο x c = b 2. 2 f ( x) x bx c Αν το x c [L,R ], τότε το ελάχιστο είναι το f ( x c ). Αν το x c [L,R ], τότε το ελάχιστο είναι είτε το f ( L ), είτε το f (R). Να γραφεί πρόγραμμα, το οποίο να ζητάει τους πραγματικούς αριθμούς L, R, b και c και να εμφανίζει το ελάχιστο της f ( x ) στο [ L, R ], καθώς και την τιμή του x στην οποία εμφανίζεται. Υπάρχουν 3 περιπτώσεις: (1) (2) (3) x c > R L x c R x c < L min = f(r) min = f(x c ) min = f(l) Ο ψευδοκώδικας του αλγορίθμου: if x c < L εμφάνισε f(l) και L else if L x c R εμφάνισε f(x c ) και x c else εμφάνισε f(r) και R Για να μετατρέψουμε τον ψευδοκώδικα σε πρόγραμμα MATLAB χρειαζόμαστε: i. μια δομή γλώσσας που να επιτρέπει τη σύγκριση τιμών, ii. μια δομή γλώσσας που να εκτελεί το κατάλληλο τμήμα κώδικα, ανάλογα με το αποτέλεσμα της σύγκρισης. ver Τμήμα Μαθηματικών ΕΚΠΑ 1

9 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 2 Άρα, υπάρχει η ανάγκη, ένα πρόγραμμα να μην εκτελείται πάντα σειριακά: αλλά έτσι: ή έτσι: κτλ. Δηλαδή, διάφορα τμήματα κώδικα εκτελούνται υπό συνθήκη. Στο MATLAB, αυτό γίνεται με την εντολή if. Η πιο βασική της μορφή είναι η δομή if-else: Σύνταξη της if-else: if λογική_έκφραση τμήμα κώδικα που εκτελείται αν η λογική έκφραση είναι αληθής else τμήμα κώδικα που εκτελείται αν η λογική έκφραση είναι ψευδής ver Τμήμα Μαθηματικών ΕΚΠΑ 2

10 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 2 Λογικές ( Boolean) εκφράσεις: Όπως οι αριθμητικές εκφράσεις (πράξεις) όταν υπολογίζονται παράγουν αριθμητικές τιμές, οι λογικές εκφράσεις παράγουν την τιμή true (Αληθές) ή false (Ψευδές). Το false αντιστοιχεί στο 0 (και το 0 στο false). Το true αντιστοιχεί στο 1 (και οποιαδήποτε μη μηδενική τιμή αντιστοιχεί στο true). Οι λογικές εκφράσεις υλοποιούνται με σχεσιακούς τελεστές (έναντι των αριθμητικών τελεστών των αριθμητικών εκφράσεων). Μαθηματικά MATLAB < < <= > > >= = == ~= Παράδειγμα της εντολής if: Εκτελείται αν η συνθήκη είναι αληθής. Εκτελείται αν η συνθήκη είναι ψευδής. x=5; y=2; if (x>y) disp( Το x είναι μεγαλύτερο του y. ); else disp( Το x είναι μικρότερο ή ίσο του y. ); Λογικές Πράξεις: Οι λογικές πράξεις υλοποιούνται με τους λογικούς τελεστές: Σύζευξη (ΚΑΙ AND): && Διάζευξη (Ή OR): Άρνηση (ΔΕΝ NOT): ~ διμελείς τελεστές Στο αρχικό παράδειγμα, ας υποθέσουμε ότι θέλουμε να εμφανίσουμε τα f( x c ) και x c αν είμαστε στην περίπτωση (2), (δηλαδή αν το x c [L,R ] ) ή ένα πληροφοριακό μήνυμα σε αντίθετη περίπτωση. Για να ελέγξουμε εάν το x R. c x c [L,R ], απαιτούνται δύο συγκρίσεις: πρέπει το xc L ΚΑΙ το ver Τμήμα Μαθηματικών ΕΚΠΑ 3

11 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 2 xc = -b/2; if xc>=l && xc<=r fxc = c-(b/2)^2; fprintf('f(xc) = %6.3f xc = %6.3f\n', fxc,xc) else disp('είτε xc < L, είτε xc > R') Πίνακας αληθείας: p q p&&q p q true true true true true false false true false true false true false false false false Αν το p είναι true, τότε το ~p είναι false. Αν το p είναι false, τότε το ~p είναι true. Προτεραιότητα τελεστών: πρώτα οι αριθμητικοί τελεστές μετά οι σχεσιακοί τελεστές και η άρνηση μετά οι διμελείς λογικοί τελεστές Άλλες δομές του if: Σκέτο if : if λογική έκφραση π.χ. if L>R κώδικας temp = L; L = R; R = temp; if elseif : if λογική έκφραση 1 κώδικας elseif λογική έκφραση 2 κώδικας elseif λογική έκφραση 3 κώδικας else κώδικας... Εκτελείται, αν η λογική έκφραση 1 είναι true. Εκτελείται, αν η λογική έκφραση 1 είναι false και η λογική έκφραση 2 είναι true. Εκτελείται, αν η λογική έκφραση 1 είναι false και η λογική έκφραση 2 είναι false, αλλά η λογική έκφραση 3 είναι true. Εκτελείται, αν όλες οι παραπάνω λογικές εκφράσεις είναι false. ver Τμήμα Μαθηματικών ΕΚΠΑ 4

12 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 2 Ας δούμε τώρα το πρόγραμμα για το αρχικό μας πρόβλημα, δηλαδή της εύρεσης του ελάχιστου 2 της συνάρτησης f ( x) x bx c στο διάστημα [ L, R ]. % Script Eg1_2 % % min της x^2+bx+c στο [L,R] % Είσοδος δεδομένων b=input('δώσε το b: '); c=input('δώσε το c: '); L=input('Δώσε το L: '); R=input('Δώσε το R, με L<R: '); fprintf('δευτεροβάθμια: x^2+bx+c, b = %5.2f, c = %5.2f \n', b, c); fprintf('διάστημα: [L,R], L = %5.2f, R = %5.2f \n \n', L, R); %Υπολογισμός κρίσιμου σημείου xc= - b/2; if xc < L % Το min είναι στο αριστερό όριο fl = L^2+b*L+c; fprintf('x ελαχιστοποίησης = %5.2f \n', L) fprintf('ελάχιστη τιμή της f = %5.2f \n', fl) elseif L <= xc && xc <=R % Το min στο κρίσιμο σημείο fxc = c (b/2)^2; fprintf('x ελαχιστοποίησης = %5.2f \n', xc) fprintf('ελάχιστη τιμή της f = %5.2f \n', fxc) else % Το min στο δεξί όριο fr = R^2 + b*r +c fprintf('x ελαχιστοποίησης = %5.2f \n', R) fprintf('ελάχιστη τιμή της f = %5.2f \n', fr) Μια βελτίωση της δομής του προγράμματος: Διαχωρισμός της εξόδου από τους υπολογισμούς + : Λιγότερη πληκτρολόγηση (των εντολών εξόδου) : Ίσως ανάγκη δημιουργίας επιπλέον μεταβλητών... xc= - b/2; if xc < L xmin = L; elseif L <= xc && xc <=R xmin = xc; else xmin = R; fmin = xmin^2 + b*xmin +c; fprintf('x ελαχιστοποίησης = %5.2f \n', xmin) fprintf('ελάχιστη τιμή της f = %5.2f \n', fmin) 1 φορά! ver Τμήμα Μαθηματικών ΕΚΠΑ 5

13 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 2 Παρατηρούμε εδώ, πως χρησιμοποιήσαμε ως επιπλέον μεταβλητή το xmin, αλλά επειδή κάναμε τον υπολογισμό του min της f έξω από το if, αντικαταστήσαμε τις τρεις μεταβλητές fl, fxc και fr με μία (fmin). Κάποια επιπλέον στοιχεία: min και max: Εύρεση ελάχιστου / μέγιστου μεταξύ δύο τιμών (μεταβλητών ή αριθμητικών εκφράσεων) Σύνταξη: min(αριθμητική έκφραση 1, αριθμητική έκφραση 2) Αν x πραγματικός αριθμός: floor(x) στρογγυλοποίηση προς το -. ceil(x) στρογγυλοποίηση προς το +. round(x) στρογγυλοποίηση προς το πλησιέστερο fix(x) στρογγυλοποίηση προς το 0 Αν x, y θετικοί ακέραιοι: rem(x,y) υπόλοιπο της διαίρεσης του x με το y. [Μπορεί να εφαρμοστεί και σε πραγματικές τιμές] Άλλες χρήσιμες συναρτήσεις: sqrt(x) x abs(x) x exp(x) e x log(x) ln( x) log10(x) log(x) sin(x) ημ(x) cos(x) συν(x) tan(x) εφ(x) rand( ) τυχαίος αριθμός στο (0,1) Shortcircuiting Σε μια σύνθετη λογική έκφραση, το 2 ο μέρος υπολογίζεται μόνο όταν δε μπορεί να βγει συμπέρασμα (να υπολογιστεί το αποτέλεσμα) μόνο από το 1 ο. ver Τμήμα Μαθηματικών ΕΚΠΑ 6

14 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 2 Άρα στη λογική έκφραση ( ΛΕ ): ΛΕ1 && ΛΕ2 η ΛΕ2 υπολογίζεται μόνο εάν η ΛΕ1 είναι true. Αυτό συμβαίνει διότι αν η ΛΕ1 ήταν false, το αποτέλεσμα θα ήταν ούτως ή άλλως false. Ομοίως, στη λογική έκφραση: ΛΕ1 ΛΕ2 η ΛΕ2 υπολογίζεται μόνο εάν η ΛΕ1 είναι false. Καταλήγουμε επομένως στο συμπέρασμα πως είναι προτιμότερο να συντάσσεται πρώτα η έκφραση που δε δημιουργεί προβλήματα, π.χ., (x~=0) && (y/x==0) και η απλούστερη από τις δύο εκφράσεις, για παράδειγμα: (x>1) (3*x^2-2*x < y/(x^2 + 2)). Π.χ., η έκφραση (3==7) && (2==(3/0)) θα επέστρεφε ως αποτέλεσμα false (0) και όχι σφάλμα, που κάποιος θα περίμενε. Ένα παράδειγμα σύνθετης λογικής έκφρασης είναι ο έλεγχος για το εάν ένα έτος είναι δίσεκτο. Ένα έτος θεωρείται δίσεκτο εάν διαιρείται με το 4 αλλά όχι με το 100 ή αν διαιρείται με το 400. Ο τρόπος που θα εκφράζαμε τη λογική αυτή έκφραση είναι: (rem(year,4) == 0 && rem(year,100) ~= 0) rem(year,400) == 0 ή καλύτερα: rem(year,400) == 0 (rem(year,4) == 0 && rem(year,100) ~= 0) Σύγκριση λογικών μεταβλητών με τις τιμές true / false: Παρακάτω, βλέπουμε δύο παραδείγματα, στα οποία χρησιμοποιούνται δύο λογικές μεταβλητές (isleapyear και iseven) και μία ακέραια μεταβλητή (n). Παράδειγμα 1: Αντί της: if isleapyear == true προτιμάται η: if isleapyear. Παράδειγμα 2: Αντί της : if rem(n,2) == 0 iseven = true; else iseven = false; προτιμάται η: iseven = (rem(n,2) == 0);. ver Τμήμα Μαθηματικών ΕΚΠΑ 7

15 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 3 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 3 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ Πρόβλημα: Για δεδομένο αριθμό Α, μα βρεθεί η A. Γεωμετρική αναδιατύπωση: Για θετικό αριθμό Α, να βρεθεί τετράγωνο με εμβαδόν Α. - Μια αρχική ιδέα: W = 1 L = A - Παρατήρηση: Η απάντηση είναι μεταξύ του L και του W: W < S < L S - Βασική ιδέα: W L L 1 = L+W 2 W 1 W 1 = A L 1 L1 επανάληψη: L 2 = L 1 +W 1 2 W 2 W 2 = A L 2 L2 ver Τμήμα Μαθηματικών ΕΚΠΑ 1

16 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 3 Ένα πρώτο script: Α = input('a:'); L0 = A; W0 = A/L0; L1 = (L0+W0)/2; W1 = A/L1; L2 = (L1+W1)/2; W2 = A/L2; L3 = (L2+W2)/2; W3 = A/L3; L4 = (L3+W3)/2; W4 = A/L4; Δεν υπάρχει λόγος να δημιουργηθούν όλες αυτές οι μεταβλητές: Α = input('a:'); L = A; W = A/L; L = (L+W)/2; W = A/L; L = (L+W)/2; W = A/L; L = (L+W)/2; W = A/L; L = (L+W)/2; W = A/L; Άρα: ανάγκη δομής που επαναλαμβάνει κώδικα για συγκεκριμένο αριθμό επαναλήψεων Ο βρόχος for for <τιμές μετρητή επανάληψης> εντολές που θα επαναληφθούν; Συνήθης μορφή for: for <μετ/τη> = <Α.Τ.>:[Βήμα]:<Τ.Τ.> <εντολές> Σημειολογία: < > : υποχρεωτικό μέρος [ ] : προαιρετικό μέρος Όταν το βήμα είναι μοναδιαίο: for <μετ/τη> = <Α.Τ.>:<Τ.Τ.> <εντολές> Άρα το προηγούμενο παράδειγμα: Α = input('a:'); L = A; W = A/L; for k = 1:4 L = (L+W)/2; W = A/L; ver Τμήμα Μαθηματικών ΕΚΠΑ 2

17 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 3 και πιο γενικά Α = input('a:'); nsteps = input('nsteps:'); L = A; W = A/L; for k = 1:nSteps; L = (L+W)/2; W = A/L; Άλλα παραδείγματα: for i=1:10 disp(i); for odd = 1:2:100 disp(odd); for even = 2:2:100 disp(even); for countdown = 10:-1:0 disp(countdown); for i=1:10 x=rand; fprintf('%.3f\n',x); Υπολογισμός αθροίσματος: Ν: sum = 0; for i=1:n sum = sum+i; disp(sum); Υπολογισμός γινομένου: 1*2*3* *Ν: prod = 1; for i=1:n prod = prod*i; disp(prod); ver Τμήμα Μαθηματικών ΕΚΠΑ 3

18 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 3 Πρόβλημα: Ένα κλαδί μοναδιαίου μήκους κόβεται σε τυχαίο σημεία. Τι μήκος θα έχει κατά μέσο όρο το μικρότερο κομμάτι; Προσομοίωση: η αναπαράσταση ενός πειράματος ή μιας φυσικής διεργασίας με τη χρήση ενός προγράμματος (μοντέλο). % μία δοκιμή του πειράματος breakpt = rand; if breakpt < 0.5 shortpiece = breakpt; else shortpiece = 1-breakPt; breakpt = rand; shortpiece = min(breakpt, 1-breakPt); Αλγόριθμος λύσης του προβλήματος: - Επανάληψη του πειράματος n φορές - Υπολογισμός μέσου όρου - Εμφάνιση αποτελέσματος n = 10000; % αριθμός δοκιμών total = 0; % τρέχον άθροισμα για το μήκος for i=1:n breakpt = rand; shortpiece = min(breakpt, 1-breakPt); total = total+shortpiece; avglength = total/n; fprintf('το μέσο μήκος είναι %.2f\n', avglength); Παράδειγμα: μ.ο. 10 αριθμών από τον χρήστη: n=10; total=0; for k=1:n num = input('δώσε έναν αριθμό:'); total = total+num; avg = total/n; fprintf('μέσος όρος: %.3%f\n', avg); ver Τμήμα Μαθηματικών ΕΚΠΑ 4

19 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 3 Πρόβλημα: Προσέγγιση του π με τη μέθοδο Monte Carlo L L/2 Ρίχνουμε n βελάκια στο τετράγωνο hit: το βελάκι μέσα στον κύκλο Το ποσοστό των hits προσεγγίζει τον λόγο των δύο εμβαδών: Άρα: for i=1:n % ρίχνω το βελάκι i % αν το βελάκι είναι μέσα στον κύκλο: % hits = hits+1 mypi = 4*hits/n; Ας υποθέσουμε ότι έχουμε τον μοναδιαίο κύκλο με κέντρο (0,0): Ένα σημείο (x,y) είναι hit εάν x 2 +y 2 1 Πρέπει να βρεθεί τρόπος να παράγουμε τυχαία σημεία στο τετράγωνο. Θέλουμε: -1<x<1 και -1<y<1, δηλαδή εύρος = 2 και διάστημα (-1, 1). Η rand δίνει τυχαίους αριθμούς στο διάστημα (0, 1) (εύρος = 1). Με rand x 2 εύρος 2, αλλά στο διάστημα (0, 2). Άρα: 2*rand-1 τυχαίοι αριθμοί στο (-1, 1). ver Τμήμα Μαθηματικών ΕΚΠΑ 5

20 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 3 Το script: n = 10000; hits = 0; for i=1:n %ρίχνω το βελάκι i x = 2*rand-1; y = 2*rand-1; % ελέγχω αν είναι hit if x^2 + y^2 <= 1 hits = hits+1; mypi = 4*hits/n; Πρόβλημα: Έστω n σημεία πάνω στον μοναδιαίο κύκλο. Όσο αυξάνεται το n (τα σημεία), το Α n αυξάνεται και το Β n μειώνεται και προσεγγίζουν το Ε του κύκλου, δηλαδή το π. Άρα, ο μέσος όρος τους αποτελεί μια καλή προσέγγιση του π: π A n +B n, με το σφάλμα να εξαρτάται από την απόλυτη διαφορά των δύο εμβαδών. 2 Μας ενδιαφέρει ποια είναι η μικρότερη τιμή του n (n * ) για την οποία ικανοποιείται η σχέση: A n* B n* δ, όπου δ η ανοχή σφάλματος π.χ. δ= Αλγόριθμος: Δώσε την ανοχή σφάλματος δ και θέσε n=3. Υπολόγισε τα Α 3, Β 3 και το όριο του σφάλματος Β 3 -Α 3 Όσο το όριο του σφάλματος > δ, επανέλαβε: Αύξησε το n κατά 1 Ενημέρωσε τα Α n και Β n και το όριο του σφάλματος. Θέσε n * = n και εμφάνισε το A n * +B n* 2 (προσέγγιση του π). ver Τμήμα Μαθηματικών ΕΚΠΑ 6

21 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 3 Ο αλγόριθμος αυτός δεν μπορεί να υλοποιηθεί με for γιατί δεν είναι γνωστός εκ των προτέρων ο αριθμός των επαναλήψεων. Για τέτοιες επαναλήψεις υπάρχει ο βρόχος while. Ο βρόχος while while <λογική συνθήκη> <εντολές> Σημαντικό: Πρέπει κάποια από τις εντολές να μεταβάλλει τη συνθήκη ώστε κάποτε να γίνεται false, διαφορετικά: ατέρμονας βρόχος. Το script: delta = input('δώσε το δ:'); n = 3; A_n = (n/2)*sin(2*pi/n); B_n = n*tan(pi/n); errorbound = B_n A_n; while errorbound>delta n = n+1; A_n = (n/2)*sin(2*pi/n); B_n = n*tan(pi/n); errorbound = B_n A_n; nstar = n; mypi = (A_n + B_n)/2; fprintf(...); Άλλα παραδείγματα: - Άθροισμα άγνωστων πλήθους θετικών αριθμών: sum = 0; x = input('δώσε θετικό αριθμό:'); while x>0 sum = sum+x; x = input('δώσε θετικό αριθμό ή μη-θετικό αριθμό για τερματισμό'); disp(sum); Αν θέλαμε να εμφανίσουμε και πόσοι αριθμοί δόθηκαν; ver Τμήμα Μαθηματικών ΕΚΠΑ 7

22 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 3 - Άθροισμα ψηφίων ακεραίου: Για τον ακέραιο n: Εύρεση τελευταίου ψηφίου: rem(n,10) π.χ. rem(1975,10) 5 Αποκοπή τελευταίου ψηφίου: fix(n/10) π.χ. fix(1975/10) 197 n = input('δώσε ακέραιο:'); dsum = 0; while n>0 % αν βάζαμε n>=0: ατέρμονες επαναλήψεις dsum =dsum+rem(n,10); n = fix(n/10); fprintf('το άθροισμα των ψηφίων του %g είναι %g\n', n,dsum); Σχέση for και while: for μετ/τη = ΑΤ:Β:ΤΤ εντολές; μετ/τη = AT; while μετ/τη <= ΤΤ εντολές; μετ/τη = μετ/τη + Β; To while μπορεί να χρησιμοποιηθεί πάντα. Το for προτιμάται όταν το πλήθος των επαναλήψεων είναι γνωστό. Όταν το πλήθος των επαναλήψεων είναι άγνωστο: while Π.χ., χρόνια για διπλασιασμό κεφαλαίου 1000 ευρώ με ετήσιο επιτόκιο 5%. money = 1000; years = 0; while money < 2000 money = money * 1.05; years = years + 1; disp(years); Πιο γενικό: money = input('κεφάλαιο?'); years = 0; goal = 2*money; while money < goal ver Τμήμα Μαθηματικών ΕΚΠΑ 8

23 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 3 Η εντολή break Π.χ. υπολογισμός γινομένου αγνώστου πλήθους αριθμών: Χωρίς break OfData=0; prod=1; x=input('δώσε αριθμό:'); while x~=ofdata prod=prod*x; x=input( Δώσε αριθμό ή... 0 για τερματισμό ); disp(prod); Με break OfData=0; prod=1; while true x=input( Δώσε αριθμό... ή 0 για τερματισμό ); if x==ofdata break; prod=prod*x; disp(prod); H break τερματίζει τις επαναλήψεις for ή while που το εκτελούν. Ένθετα for (nested) N = input('n?'); for i=1:n for j=1:n if i<j fprintf('.'); else fprintf('*'); fprintf('\n'); π.χ. για Ν=5: * * * * *. * * * *.. * * *... * *.... * ver Τμήμα Μαθηματικών ΕΚΠΑ 9

24 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή ΣΥΝΑΡΤΗΣΕΙΣ Συνάρτηση ονομάζεται ένα τμήμα κώδικα (ή υποπρόγραμμα) το οποίο κάνει μια συγκεκριμένη διεργασία και μπορεί να καλείται από ένα πρόγραμμα (ή από μια άλλη συνάρτηση). Π.χ. x = y = 2 * sqrt(x) sqrt 10 Ουσιαστικά: x sqrt x (Η sqrt είναι μια εσωτερική συνάρτηση του MATLAB) Ένα script καλεί μια συνάρτηση Η ροή του προγράμματος μεταφέρεται προσωρινά στις εντολές της συνάρτησης Εκτελούνται οι εντολές της συνάρτησης Η ροή του προγράμματος επιστρέφει στο script Όπως προαναφέρθηκε, μια συνάρτηση μπορεί να καλεί με τη σειρά της άλλες συναρτήσεις. Ο τρόπος λειτουργίας μιας συνάρτησης δεν ενδιαφέρει τον χρήστη. Αυτό που τον ενδιαφέρει είναι ο τρόπος χρήσης της, δηλαδή: το όνομά της τι δέχεται τι επιστρέφει ver Τμήμα Μαθηματικών ΕΚΠΑ 1

25 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 Λόγοι ύπαρξης συναρτήσεων: Βοηθούν στη λογική σχεδίαση των προγραμμάτων Είναι «μαύρα κουτιά» που απλά χρησιμοποιούνται χωρίς να είναι απαραίτητη η γνώση της λειτουργίας τους Αποφυγή επανάληψης κώδικα στο ίδιο πρόγραμμα Επαναχρησιμοποίηση κώδικα σε άλλα προγράμματα Ευκολότερη τροποποίηση κώδικα Είδη συναρτήσεων: Εσωτερικές συναρτήσεις του MATLAB (sqrt, fprintf κλπ) Ορισμένες από τον προγραμματιστή Σχεδιασμός συναρτήσεων: Όνομα Είσοδος / έξοδος interface (περιβάλλον επικοινωνίας) Αλγόριθμος Στο MATLAB: function έξοδος = όνομα (είσοδος) επικεφαλίδα % σχόλια περιγραφής προδιαγραφές <κώδικας>.. σώμα συνάρτησης. Παράδειγμα: Υλοποίηση της γεωμετρικής προσέγγισης της A με δημιουργία συνάρτησης. Α MySqrt A ver Τμήμα Μαθηματικών ΕΚΠΑ 2

26 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 To script που είχε δημιουργηθεί (για δεδομένο Α): nsteps = 10; L = A; W = A/L; for i =1 : nsteps L = (L+W) / 2; W = A/L; Όμως, αυτή η υλοποίηση δεν αντιμετωπίζει την περίπτωση Α=0. Νέο script (για δεδομένο Α): nsteps = 10; if A==0 s = 0; else L = A; W = A/L; for i =1:nSteps L = (L+W) / 2; W = A/L; s = L; Μετατροπή του script σε συνάρτηση: function s = MySqrt (A) % A ένας μη αρνητικός πραγματικός αριθμός και s μια προσέγγιση % της τετραγωνικής του ρίζας nsteps = 10; if A==0 s = 0; else L = A; W = A/L; for i =1 : nsteps L = (L+W) / 2; W = A/L; s = L; Η συνάρτηση πρέπει να αποθηκευτεί στο αρχείο MySqrt.m Ας δούμε τώρα πως γίνεται η κλήση της συνάρτησης από ένα script: x = 100; y = MySqrt(x); disp(y); ver Τμήμα Μαθηματικών ΕΚΠΑ 3

27 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 Γενικά, κλήση συνάρτησης: μεταβλητή = όνομα (είσοδος); Άρα, γενικά: ορίσματα Δημιουργία συνάρτησης: function[έξοδος1, έξοδος2, ] = όνομα (παράμετρος_εισόδου1, παράμετρος_εισόδου2, ) Αποθήκευση: όνομα.m Κλήση / εκτέλεση συνάρτησης: [έξοδος1, έξοδος2, ] = όνομα (όρισμα1, όρισμα2, ); Όταν καλείται μια συνάρτηση, το όρισμαχ παίρνει τη θέση της παραμέτρου_εισόδουχ. Τοπικές μεταβλητές: Είναι οι μεταβλητές που ορίζονται (δημιουργούνται) μέσα σε κάποια συνάρτηση. Υπάρχουν μόνο μέσα στη συνάρτηση (Δημιουργούνται όταν καλείται η συνάρτηση / παύουν να υπάρχουν όταν η συνάρτηση επιστρέφει) Οι παράμετροι εισόδου έχουν ουσιαστικά τα ίδια χαρακτηριστικά με τις τοπικές μεταβλητές: Δημιουργούνται όταν καλείται η συνάρτηση, μέσω της αρχικοποίησής τους με τις τιμές των ορισμάτων. Παύουν να υπάρχουν όταν η συνάρτηση επιστρέφει. Υποσυναρτήσεις : συναρτήσεις που καλούνται από άλλες συναρτήσεις. Παράδειγμα: Να γραφεί συνάρτηση binomial που να υπολογίζει τον διωνυμικό συντελεστή δύο μη αρνητικών ακεραίων n και k (όπου n k): n n! k k! ( n k)! Παρατηρούμε πως ο υπολογισμός παραγοντικού χρειάζεται τρεις φορές, άρα θα ήταν χρήσιμο να υλοποιηθεί σε μία «υποσυνάρτηση» την οποία θα χρησιμοποιεί η συνάρτηση binomial. ver Τμήμα Μαθηματικών ΕΚΠΑ 4

28 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 function f = fact(n) f=1; for i=2:n f=f*i; fact.m Οπότε, η συνάρτηση binomial: function x = binomial (a,b) x = fact(a) / (fact(b) * fact(a-b)); binomial.m Κλήση: >> binomial (10, 2) ans = 45 >> a = binomial (10, 3) a = 120 ver Τμήμα Μαθηματικών ΕΚΠΑ 5

29 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 5 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 5 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή Πίνακες (Arrays) [1/2] Δομές δεδομένων για την αποθήκευση δεδομένων υπό ένα κοινό όνομα Η αποθήκευσή τους σε πίνακες βοηθάει κυρίως τη διαχείριση τους Διάκριση πινάκων: Μονοδιάστατοι πίνακες (1-D) Δισδιάστατοι πίνακες (2-D) Τρισδιάστατοι πίνακες (3-D) κτλ. 1-D 2-D D Α) Μονοδιάστατοι πίνακες (Διανύσματα - Vectors): Πρόκειται για διατεταγμένα στοιχεία ίδιου τύπου. Έχουν όνομα και μέγεθος (πλήθος στοιχείων). Π.χ.: Μέσες θερμοκρασίες ημέρας για μία εβδομάδα: Δ Τα Τ Π Π Σ Κ Αποθήκευση σε μονοδιάστατο πίνακα (διάνυσμα) Τ: Τ(1) Τ(2) Τ(3) Τ(4) Τ(5) Τ(6) Τ(7) Οι θέσεις του διανύσματος είναι αριθμημένες (δείκτες) Οι δείκτες ξεκινούν από το 1. Το μέγεθος (μήκος ή πλήθος στοιχείων) δίνεται από την εντολή: length(t) (στην περίπτωσή μας length(t) 7) ver Τμήμα Μαθηματικών ΕΚΠΑ 1

30 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 5 Δημιουργία διανυσμάτων: 1) Άμεσα από τον προγραμματιστή: α) Α = [ ]; Β = [ ]; β) Με τον τελεστή : για πίνακες με ισαπέχουσες τιμές: C = ΑρχικήΤιμή:Βήμα:ΤελικήΤιμή; π.χ. C = 0:5:20; C = [ ]; D = 5:8; D = [ ]; 2) Μέσω εσωτερικών συναρτήσεων του MATLAB: x = rand(1,10) διάνυσμα με 10 τυχαία στοιχεία y = zeros(1,5) διάνυσμα με 5 μηδενικά στοιχεία z = ones(1,20) διάνυσμα με 20 στοιχεία ίσα με 1 Πρόσβαση στα στοιχεία ενός διανύσματος: όνομα(δείκτης) Ο δείκτης είναι πάντα ακέραια τιμή ή μεταβλητή ή αριθμητική έκφραση και δηλώνει τη θέση στο διάνυσμα (ξεκινώντας από το 1). π.χ.: >> Α = [ ]; >> Α(2) (Τυπώνει 5) >> x = A(4); >> disp(x); (Τυπώνει 0) π.χ.: Εμφάνιση όλων των στοιχείων του Α: for i = 1:length(A) fprintf('το %gο στοιχείο του Α είναι το %g.',i,a(i)); Τυπώνει: Το 1o στοιχείο του Α είναι το 2. Το 2o στοιχείο του Α είναι το 5. Το 3o στοιχείο του Α είναι το 3. Το 4o στοιχείο του Α είναι το 0. Το 5o στοιχείο του Α είναι το 1. ver Τμήμα Μαθηματικών ΕΚΠΑ 2

31 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 5 Είσοδος/Έξοδος διανυσμάτων: Είσοδος (ανά στοιχείο): for i = 1:10 message = sprintf('δώσε το στοιχείο %g',i); A(i) = input(message); Η συνάρτηση sprintf είναι ίδια με την fprintf, αλλά αποθηκεύει το αποτέλεσμά της σε μια συμβολοσειρά. Μπορεί να χρησιμοποιηθεί για την εμφάνιση "μορφοποιημένου" κειμένου στην εντολή input, όπως παραπάνω. Είσοδος ολόκληρου πίνακα: A = input('δώσε τον πίνακα Α'); Ο χρήστης δίνει: >>[ ] Έξοδος (ανά στοιχείο): for i = 1:10 fprintf(a(%g) = %g\n',i,a(i)); %ή πιο απλά: disp(a(i)); Έξοδος ολόκληρου πίνακα: disp(a); Παραδείγματα διανυσμάτων: Μέση τιμή θερμοκρασιών και θερμοκρασιακές διαφορές: T = input('δώσε τον πίνακα θερμοκρασιών: '); sum = 0; for i = 1:length(T) sum = sum + T(i); mt = sum/length(t); fprintf('η μέση θερμοκρασία είναι %g.\n',mt); for i = 1:length(T) DT(i) = T(i) - mt; disp('θερμοκρασιακές διαφορές: '); disp(dt); ver Τμήμα Μαθηματικών ΕΚΠΑ 3

32 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 5 Μέγιστο κι ελάχιστο διανύσματος: list = input('δώσε το διάνυσμα: '); small = list(1); large = list(1); for i = 2:length(list) if list(i)<small small = list(i); else if list(i)>large large = list(i); Γιατί δεν χρησιμοποιήθηκαν 2 ανεξάρτητα if; Εσωτερικό γινόμενο διανυσμάτων: % έστω διανύσματα x, y ίδιου μήκους p = 0; for i = 1:length(x) p = p + x(i)*y(i); Αρχικοποίηση διανυσμάτων: α) for i = 1:100 x(i) = i; %εντολές που δεσμεύουν μνήμη Εικόνα της μνήμης: ver Τμήμα Μαθηματικών ΕΚΠΑ 4

33 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 5 β) (με δημιουργία ολόκληρου του διανύσματος πριν την αρχικοποίηση) x = zeros(1,100); for i = 1:100 x(i) = i; %εντολές που δεσμεύουν μνήμη Εικόνα της μνήμης: Ταξινόμηση διανύσματος με τον αλγόριθμο της επιλογής (selection sort): 1. Ξεκίνα από την πρώτη θέση. 2. Βρες το ελάχιστο στοιχείο από τη θέση αυτή και μετά. 3. Ενάλλαξε (swap) τα στοιχεία της θέσης που ξεκίνησες και της θέσης του ελάχιστου. 4. Πήγαινε στην επόμενη θέση και επανάλαβε το Βήμα 2, μέχρι να φτάσεις στην προτελευταία θέση. Υλοποίηση με συνάρτηση: function v = selection(v) for i = 1:length(v)-1 minindex = i; % έστω ότι το στοιχείο αυτό είναι το ελάχιστο %αναζήτηση του ελάχιστου: for j = i+1:length(v) if v(j)<v(minindex) minindex = j; % η θέση του ελάχιστου στοιχείου if minindex ~= i; % αν βρέθηκε κάποιο μικρότερο στοιχείο temp = v(i); v(i) = v(minindex); v(minindex) = temp; ver Τμήμα Μαθηματικών ΕΚΠΑ 5

34 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 5 Ταξινόμηση διανύσματος με τον αλγόριθμο εισαγωγής (insertion sort): 1. Ξεκίνα από τo δεύτερο στοιχείο. 2. Σύγκρινε το στοιχείο με ένα-ένα τα στοιχεία που βρίσκονται αριστερά του μέχρι να βρεις (άρα while-loop) κάποιο μικρότερό το κι όσο βρίσκεις κάποιο μεγαλύτερό του, ενάλλασσέ τα. 3. Πήγαινε στο επόμενο στοιχείο και επανάλαβε το Βήμα 2. Υλοποίηση με συνάρτηση: function v = insertion(v) for i = 2:length(v) j = i; while j>1 && v(j-1)>v(j) temp = v(i); v(j) = v(j-1); v(j-1) = temp; j = j 1; Γραμμική αναζήτηση (linear search): Ξεκινώντας από το πρώτο στοιχείο, σύγκρινε ένα-ένα τα στοιχεία του διανύσματος με το προς αναζήτηση στοιχείο (key), μέχρι να το βρεις. Υλοποίηση με συνάρτηση: function pos = linearsearch(v,key) loc = 1; % η τρέχουσα θέση αναζήτησης pos = -1; % η θέση του στοιχείου αναζήτησης % Θα επιστρέψει -1 αν δε βρεθεί hit = false; % flag για το αν έχει βρεθεί το προς αναζήτηση στοιχείο % (δεν είναι απαραίτητο) while loc<=length(v) && ~hit if v(loc)==key pos = loc; hit = true; else loc = loc + 1; ver Τμήμα Μαθηματικών ΕΚΠΑ 6

35 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 5 Δυαδική αναζήτηση (binary search): Προϋπόθεση: Η λίστα πρέπει να είναι ταξινομημένη! 1. Σύγκρινε το αναζητούμενο στοιχείο με το μεσαίο στοιχείο της λίστας 2. Όσο αυτά διαφέρουν και υπάρχουν ακόμα στοιχεία στη λίστα: αν είναι μικρότερο του στοιχείου, επανάλαβε το Βήμα 1 για το αριστερό τμήμα της λίστας. αν είναι μεγαλύτερο του στοιχείου, επανάλαβε το Βήμα 1 για το δεξί τμήμα της λίστας. Υλοποίηση με συνάρτηση: function pos = binarysearch(v,key) left = 1; % το αριστερό άκρο της τρέχουσας λίστας right = length(v); % το δεξί άκρο της τρέχουσας λίστας pos = -1; hit = false; while left<=right && ~hit mid = fix((left+right)/2); if v(mid)==key pos = mid; hit = true; elseif key<v(mid) right = mid 1; else left = mid + 1; Το κόσκινο του Ερατοσθένη (3 ος αιώνας π.χ.): Αλγόριθμος για τη εύρεση των πρώτων αριθμών από το 2 έως το N. 1. Γράψε όλους τους αριθμούς από το 2 έως το N. 2. Κύκλωσε τον πρώτο διαθέσιμο αριθμό (θα είναι πρώτος). 3. Διέγραψε τα πολλαπλάσιά του. 4. Πήγαινε στο Βήμα 2. π.χ.: για N=10 έχουμε: ver Τμήμα Μαθηματικών ΕΚΠΑ 7

36 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 5 Υλοποίηση με συνάρτηση: function primes = eratosthenis(n) P = 1:N % η λίστα των αριθμών P(1) = 0; % Όσοι διαγράφονται θα γίνονται 0. Το 1 ΔΕΝ είναι πρώτος. for i = 2:sqrt(N) if P(i) % αν το i δεν έχει διαγραφεί for j = 2*i:i:N % πήγαινε σε κάθε πολλαπλάσιο του i P(i) = 0; % και διέγραψέ το % Μέτρημα των πρώτων αριθμών που βρέθηκαν NP = 0; for i = 2:N if P(i) NP = NP + 1; primes = zeros(1,np); k = 0; for i = 2:N if P(i) k = k + 1; primes(k) = i; Δημιουργία διανύσματος με τη συνάρτηση linspace linspace(αρχική_τιμή, Τελική_Τιμή, πλήθος_στοιχείων) Π.χ., x = linspace(0, 2*pi, 9); [ ] Πράξεις με διανύσματα: Έστω τα διανύσματα: a = [10 8-5] b = [2 4 1] c = 5*a c: [ ] c = a/2 c: [ ] ver Τμήμα Μαθηματικών ΕΚΠΑ 8

37 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 5 c = -a c: [ ] c = 1./a c: [ ] c = a+5 c: [ ] c = a.^2 c: [ ] c = a+b c: [ ] c = a-b c: [8 4-6] c = a.*b c: [ ] c = a./b c: [5 2-5] Έστω το διάνυσμα v = [2 5 7] v(4) = 8; v: [ ] v(6) = 10; v: [ ] v(2:4) [5 7 8] v([4 6]) [8 10] [v(1:2) v([4 6])] [ ] Διανύσματα και γραφικές παραστάσεις: Να γραφεί πρόγραμμα που να εμφανίζει τη γραφική παράσταση της συνάρτησης x 2 ημ(5 x) e f (x)= στο διάστημα [-2, 3]. 1+x 2 Ένα πιο απλό πρόβλημα: σχεδίαση του ημ(x) στο [0, 2π]. Με το χέρι, θα παράγαμε έναν πίνακα τιμών, π.χ.: Στη συνέχεια θα συνδέαμε τα αντίστοιχα 5 σημεία: (0, 0), (1.571, 1), (3.142, 0), (4.712, -1), (6.283, 0) ver Τμήμα Μαθηματικών ΕΚΠΑ 9

38 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 5 Αν δημιουργήσουμε 9 δειγματοληπτικά σημεία αντί για 5: θα προκύψει το εξής: Για τη γραφική αποτύπωση μιας συνάρτησης y = f(x) σε ένα διάστημα [L, R]: 1. Δημιουργία πίνακα με τις τιμές του x από το δεδομένο διάστημα. 2. Δημιουργία πίνακα με τις τιμές του y που αντιστοιχούν (μέσω της f) στις τιμές του x. 3. Συνένωση των σημείων που ορίζονται από τα ζεύγη xy και εμφάνιση της γραμμής που προκύπτει. x = linspace(0,2*pi,9); y = sin(x); plot(x,y); Π.χ., το ακόλουθο script σχεδιάζει το ημ(x) για διάφορα πλήθη δειγματοληπτικών σημείων: for n = 25:25:500 x = linspace(0,2*pi,n); y = sin(x); plot(x,y); title(sprintf('n = %3d', n)); pause; ver Τμήμα Μαθηματικών ΕΚΠΑ 10

39 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 5 Script για τη σχεδίαση της αρχικής συνάρτησης: x = linspace(2,3,100); y1 = 5*x; y2 = sin(y1); y3 = -x; y4 = y3/2; y5 = exp(y4); y = sin(5*x).*exp(-x/2)./(1+x.^2); y6 = y2.*y5; y7 = x.^2; y8 = 1+y7; y = y6./y8; plot(x,y); Πολλαπλά γραφήματα: plot(x,y1,x,y2,x,y3,...) Η συνάρτηση plot με παραμέτρους μορφοποίησης: plot(x,y,'xyz') X: τύπος γραμμής Υ: τύπος σημείων Ζ: χρώμα σημείων και γραμμής ver Τμήμα Μαθηματικών ΕΚΠΑ 11

40 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 5 Επιλογές: X: - : Y:. o + x * Z: b (μπλε) w (άσπρο) c (γαλάζιο) m (μωβ) r (κόκκινο) y (κίτρινο) g (πράσινο) k (μαύρο) π.χ., plot(x,y,'-or'); κόκκινη συνεχής γραμμή με σημεία-κύκλους Βασικές εντολές γραφήματος: Τίτλος γραφήματος: title('...'); Τίτλος άξονα x: xlabel('...'); Τίτλος άξονα y: ylabel('...'); ver Τμήμα Μαθηματικών ΕΚΠΑ 12

41 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 6 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 6 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή Πίνακες (Arrays) [2/2] B) Δισδιάστατοι πίνακες γραμμές στήλες Δημιουργία πινάκων: - A = [1 2 3; 4 5 6]; [ ] - B = [ ]; [ ] - C(3,2) = 5; [ ] - D1 = ones(4,3); - D2 = rand(10,5);... [ ] Πρόσβαση σε συγκεκριμένο στοιχείο ενός πίνακα: όνομα(γραμμή, στήλη) π.χ.: B(2,1) 4 ver Τμήμα Μαθηματικών ΕΚΠΑ 1

42 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 6 Αναφορά σε ολόκληρες γραμμές ή στήλες: B(:,2) [ 2 5] (δεύτερη στήλη) B(1,:) [1 2 3] (πρώτη γραμμή) Αναφορά σε συγκεκριμένα τμήματα ενός πίνακα: π.χ.: Ε = [ ]; E(2:3,3:4) [ ] Ακόμα και σε μη-συνεχόμενα στοιχεία, π.χ. E(:,[2,4]) [ ] Είσοδος στοιχείο ανά στοιχείο: for i = 1:10 for j = 1:5 A(i,j) = input('δώσε στοιχείο:'); Είσοδος ολόκληρου πίνακα: A = input('δώσε τον πίνακα Α'); [ ; ; ]; Η συνάρτηση size: Αν Α δισδιάστατος πίνακας p q, τότε: [a, b] = size(a); a = p, b = q size(a,1) p (γραμμές) size(a,2) q (στήλες) ver Τμήμα Μαθηματικών ΕΚΠΑ 2

43 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 6 A = [ones(1,3); 1:3] [ ] Β = [ones(1,3); 1:4] ΛΑΘΟΣ! Α(1,4) = 5; [ ] Α(2,7) = 8; [ ] Παραδείγματα: Υπολογισμός μέσου όρου γραμμής: function v = avgrows(a) % Συνάρτηση που επιστρέφει διάνυσμα με τους μέσους όρους % των στοιχείων της κάθε γραμμής δισδιάστατου πίνακα. [r, c] = size(a); v = zeros(r,1); % διάνυσμα-στήλη για τους μέσους όρους for i = 1:r sum = 0; for j = 1:c sum = sum + A(i,j); v(i) = sum/c; Πολλαπλασιασμός πίνακα με διάνυσμα function [y, err] = matvec(a, x) % Υπολογισμός y = Ax με A R_m n, x R_n, y R_m [m, n] = size(a); err = 0; if size(x,1)~= n, err = 1; return; ; y = zeros(m,1); for i = 1:m sum = 0; for j = 1:n sum = sum + A(i,j)*x(j); y(i) = sum; ver Τμήμα Μαθηματικών ΕΚΠΑ 3

44 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 6 Γινόμενο πινάκων function [C, err] = matmat(a, B) % Υπολογισμός: C = AB με A R_m n, B R_n k, C R_m k [m, n] = size(a); k = size(b,2); err = 0; if size(b,1)~=n, err=1; return; ; C = zeros(m,k); for i = 1:m for j = 1:k sum = 0; for l = 1:n sum = sum + A(i,l)*B(l,j); C(i,j) = sum; Πρόβλημα: Το έτος Υ, έστω τέσσερα νησιά S 1, S 2, S 3 και S 4 με ένα εκατομμύριο κατοίκους το καθένα, καθώς και ο πίνακας πιθανοτήτων μετάβασης: Πρός: Από: S 1 S 2 S 3 S 4 S S S S Να υπολογιστεί η κατανομή του πληθυσμού το έτος Υ+5. Λύση: Μετά από ένα χρονικό βήμα, ο πληθυσμός π.χ. του S 1 είναι: ΝέοςΠλ S 1 =P S1 --> S 1 Πλ S1 +P S 2 --> S 1 Πλ S2 +P S3 --> S 1 Πλ S3 +P S4 --> S 1 Πλ S 4 Διάνυσμα με τιμές πληθυσμών στην αρχή κάποιου χρονικού βήματος: x: 4 1, όπου x(i) ο πληθυσμός του S i στην αρχή και y: 4 1, όπου y(i) ο πληθυσμός του S i στο τέλος ενός χρονικού βήματος Ο πίνακας μετάβασης μπορεί να αποθηκευτεί σε έναν 2-D πίνακα: P = [ ; ; ; ]; ver Τμήμα Μαθηματικών ΕΚΠΑ 4

45 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 6 Για τον νέο πληθυσμό κάθε νησιού: for i=1:4 y(i) = P(i,1)*x(1)+P(i,2)*x(2)+P(i,3)*x(3)+P(i,4)*x(4); Ο παραπάνω αλγόριθμος, αν εκτελεστεί 5 φορές θα μας δώσει τους ζητούμενους πληθυσμούς μετά από 5 έτη. Αν είχαμε γενικά n νησιά: for i=1:n %υπολογισμός του y(i) Αντιγραφή της γραμμής i του P σε ένα διάνυσμα r: for j=1:n r(j) = P(i,j); Υπολογισμός αθροίσματος: s = 0; for j = 1:n s = s + r(j)*x(j); y(i) = s; y(i) = 0; for j = 1:n y(i) = y(i) + P(i,j)*x(j); και για τα n νησιά: for i = 1:n y(i) = 0; for j = 1:n y(i) = y(i) + P(i,j)*x(j); Επειδή η διαδικασία αυτή θα πρέπει να επαναλαμβάνεται για κάθε έτος, μπορεί να αποτελέσει μια συνάρτηση: function y = Transition(P,x) [n,n] = size(p); y = zeros(n,1); for i = 1:n for j = 1:n y(i) = y(i) + P(i,j)*x(j); Οπότε, ο υπολογισμός των πληθυσμών για N βήματα: for k = 1:N x = Transition(P,x); ver Τμήμα Μαθηματικών ΕΚΠΑ 5

46 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 7 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 7 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή Αναδρομή (Recursion) Αναδρομή: όταν μία συνάρτηση καλεί τον εαυτό της. Πρόγραμμα για τον υπολογισμό του n! i) Χωρίς αναδρομή (fact1.m): function nfact = fact1(n) nfact = 1; for i=2:n nfact = nfact*i; ii) Με αναδρομή (fact2.m): function nfact = fact2(n) if n==0 nfact = 1; else nfact = n*fact2(n-1); Βασική περίπτωση: επιστρέφει τιμή χωρίς αναδρομική κλήση Αναδρομικό βήμα: n*fact2(n-1) Η ακολουθία των αναδρομικών κλήσεων (άρα των ορισμάτων των κλήσεων αυτών) θα πρέπει να συγκλίνει στη βασική περίπτωση (εδώ, το n να γίνει τελικά 0). Όταν π.χ. καλέσουμε την fact2 για τον αριθμό 5: >> x = fact2(5); γίνεται το εξής: ver Τμήμα Μαθηματικών ΕΚΠΑ 1

47 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 7 fact2(5) fact2(4) fact2(3) fact2(2) fact2(1) fact2(0) nfact = 1 επιστρέφεται στην κλήση fact2(1) nfact = 1*1 = 1 επιστρέφεται στην κλήση fact2(2) nfact = 2*1 = 2 κτλ.. nfact = 3*2 = 6 nfact = 4*6 = 24 nfact = 5*24 = 120 Κάποια προβλήματα της αναδρομής: Υπολογισμός του H (n-αρμονικός) n 2 3 n function h = harm1(n) if n==1 h = 1; else h = harm1(n-1) + 1/n; ΠΡΟΒΛΗΜΑ: Μεγάλες απαιτήσεις μνήμης. Ο αντίστοιχος επαναληπτικός αλγόριθμος χρειάζεται ελάχιστη μνήμη: function h = harm2(n) h = 1; for i = 1:n h = h + 1/i; ver Τμήμα Μαθηματικών ΕΚΠΑ 2

48 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 7 Υπολογισμός αριθμών Fibonacci F n = F n-1 + F n-2, για n>2, με F 1 = 1 και F 2 = 2. function f = fib1(n) if n==1 f = 1; ή: elseif n==2 f = 2; else if n<=2 f = n; f = fib1(n-1)+fib1(n-2); ΠΡΟΒΛΗΜΑ: Περιττή επανάληψη υπολογισμών. Π.χ., για τον υπολογισμό του F 50 : Η fib1(1) καλείται πάνω από 20 δις φορές!... Άρα, ο επαναληπτικός αλγόριθμος είναι πολύ πιο αποδοτικός: function f = fib2(n) x = 1; y = 2; for i = 1:n f = x; x = y; y = f + x; ver Τμήμα Μαθηματικών ΕΚΠΑ 3

49 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 8 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 8 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή Συστήματα αρίθμησης Bits & Bytes Bit: η μικρότερη μονάδα πληροφορίας o μία από δύο πιθανές καταστάσεις (ναι / όχι, αληθές / ψευδές, on / off) κωδικοποίηση σε 0 ή 1 δυαδικό σύστημα Το δυαδικό σύστημα επιτρέπει την κατασκευή εξαρτημάτων που έχουν 2 μόνο καταστάσεις υψηλή / χαμηλή τάση (chips) φορά μαγνητικού πεδίου (δίσκοι) ανάκλαση ή όχι φωτεινής δέσμης (CD-ROM, DVD κτλ) παρουσία ή όχι ηλεκτρικού φορτίου (flash) Η πληροφορία αποθηκεύεται και επεξεργάζεται σαν bits. Byte: 8 bits που λειτουργούν ως μία ενιαία μονάδα Δεκαδικό σύστημα Βάση το ψηφία: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ένα δεκαδικό ψηφίο εκφράζει μία από δέκα πιθανές επιλογές (μετράει 10 πράγματα, έχει 10 διακριτές τιμές) δύο δεκαδικά ψηφία εκφράζουν μία από 100 πιθανές επιλογές κτλ. π.χ., 1975 = = ver Τμήμα Μαθηματικών ΕΚΠΑ 1

50 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 8 Δυαδικό σύστημα Βάση το 2 2 ψηφία: 0, 1 (bits) ένα δυαδικό ψηφίο εκφράζει μία από δύο πιθανές επιλογές (μετράει 2 πράγματα, έχει 2 διακριτές τιμές) δύο δυαδικά ψηφία εκφράζουν μία από 4 πιθανές επιλογές κτλ. π.χ., = = = 25 (στο δεκαδικό) Δεκαδικοί σε δυαδικούς Ανάλυση σε δυνάμεις του 2: π.χ., 42 = = = = Διαδοχικές διαιρέσεις με 2 (μόνο για ακέραιους) Πηλίκο Υπόλοιπο Οι δυαδικοί αριθμοί είναι «ογκώδεις» Οκταδικοί: 0, 1, 2, 3, 4, 5, 6, 7 Δεκαεξαδικοί: 0-9, A, B, C, D, E, F 2-δικό 8-δικό: κάθε δυαδική τριάδα ένα οκταδικό στοιχείο δικό 16-δικό: κάθε δυαδική τετράδα ένα δεκαεξαδικό στοιχείο Β Α 3. B C 4 ver Τμήμα Μαθηματικών ΕΚΠΑ 2

51 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 8 Αριθμητική στο δυαδικό σύστημα (γενικά) Η πρόσθεση στηρίζεται στους κανόνες: = 0, = 1, = 1, και = 10 π.χ., Ο πολλαπλασιασμός γίνεται όπως και στο δεκαδικό σύστημα: 1001 x Αναπαράσταση πραγματικών αριθμών o Υπολογισμοί με πολύ μεγάλους και πολύ μικρούς αριθμούς, π.χ.: μάζα ηλεκτρονίου: gr μάζα ήλιου: gr Αναπαράσταση σταθερής υποδιαστολής ( fixed-point): Για τους παραπάνω αριθμούς, απαιτούνται: 34 ψηφία 28 ψηφία ακέραιο μέρος δεκαδικό μέρος υποδιαστολή Ανάγκη για σύστημα αναπαράστασης όπου το εύρος των αριθμών είναι ανεξάρτητο από το πλήθος των σημαντικών ψηφίων: αναπαράσταση κινητής υποδιαστολής (floating-point) ver Τμήμα Μαθηματικών ΕΚΠΑ 3

52 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 8 Αναπαράσταση κινητής υποδιαστολής: Από εκθετική μορφή: n = f 10 e με 0.1 f < 1 ή f = 0 όπου f κλασματικό μέρος (mantissa), e εκθέτης (exponent) Για το f: Χρειάζεται αποθήκευση μόνο των δεκαδικών του ψηφίων (αποθηκεύεται ως ακέραιος). Άρα, για την αναπαράσταση ενός πραγματικού, χρησιμοποιούνται 2 ακέραιοι: f και e. π.χ., ο αποθηκεύεται ως f = και e = +1. Έστω αναπαράσταση με 3-ψήφιο f και 2-ψήφιο e: Αναπαράσταση μεγεθών από έως (με 5 ψηφία (3+2) και 2 πρόσημα) : 3 5 Μεγάλοι αρνητικοί αριθμοί < Αρνητικοί αριθμοί από έως Μικροί αρνητικοί αριθμοί με μέτρο < Το μηδέν Μικροί θετικοί αριθμοί με μέτρο < Θετικοί αριθμοί ανάμεσα σε και Μεγάλοι θετικοί αριθμοί > Οι περιοχές 1, 3, 5, 7 δεν έχουν υπολογιστική αναπαράσταση. ver Τμήμα Μαθηματικών ΕΚΠΑ 4

53 ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 8 IEEE 754 Standard για αναπαράσταση / υπολογισμούς κινητής υποδιαστολής o Δύο ακρίβειες: 32-bit: 64-bit: Ειδικά σύμβολα: -Inf, +Inf: περιοχές 1 και 7 αντίστοιχα NaN: για αδύνατες πράξεις, π.χ. 0 / 0, 0, / Δυνατότητα αναπαράστασης και κάποιων αριθμών στις περιοχές 3 και 4. Αναπαράσταση χαρακτήρων Κωδικοποιούνται σαν ακέραιοι: χαρακτήρας ακέραιος Υπάρχουν διάφορα σύνολα χαρακτήρων: ASCII, Unicode, κτλ. ASCII (American Standard Code for Information Interchange): Έχει 256 χαρακτήρες απεικόνιση στους ακέραιους π.χ., a 97, B 66, Οι πρώτοι 128 χαρακτήρες είναι οι πιο σημαντικοί : μη λατινικά αλφάβητα και γραφικά σύμβολα. Unicode: χαρακτήρες. Οι 128 πρώτες θέσεις είναι ίδιες με του ASCII. ver Τμήμα Μαθηματικών ΕΚΠΑ 5

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 5

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 5 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 5 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή Πίνακες (Arrays) [1/2] Δομές δεδομένων για την αποθήκευση δεδομένων υπό

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 3

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 3 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 3 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ Πρόβλημα: Για δεδομένο αριθμό Α, μα βρεθεί η A. Γεωμετρική

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή Περιεχόμενο μαθήματος: Αλγοριθμική επίλυση προβλημάτων Προγραμματισμός

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 2

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 2 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 2 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή Έλεγχος συνθηκών - if Ας μελετήσουμε το πρόβλημα του υπολογισμού του ελάχιστου

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 5: Πίνακες [1/2] (Διανύσματα)

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 5: Πίνακες [1/2] (Διανύσματα) ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 5: Πίνακες [1/2] (Διανύσματα) Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 5 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Δομές επανάληψης

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Δομές επανάληψης ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Δομές επανάληψης Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 3 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 1: Εισαγωγή

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 1: Εισαγωγή ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 1: Εισαγωγή Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Έλεγχος συνθηκών ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Έλεγχος συνθηκών Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 2 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή ΣΥΝΑΡΤΗΣΕΙΣ Συνάρτηση ονομάζεται ένα τμήμα κώδικα (ή υποπρόγραμμα) το

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 8 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4 Σημειώσεις βασισμένες στο

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Πίνακες [2/2] (Δισδιάστατοι)

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Πίνακες [2/2] (Δισδιάστατοι) ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Πίνακες [2/2] (Δισδιάστατοι) Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 6 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 Τμήμα θεωρίας: Α.Μ. 8, 9 Κάθε Πέμπτη, 11πμ-2μμ, ΑΜΦ23. Διδάσκων: Ντίνος Φερεντίνος Γραφείο 118 email: kpf3@cornell.edu Μάθημα: Θεωρία + προαιρετικό

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6 ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6 ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ Bits & Bytes Bit: η μικρότερη μονάδα πληροφορίας μία από δύο πιθανές καταστάσεις (ναι / όχι, αληθές / ψευδές, n / ff) κωδικοποίηση σε 0 ή 1 δυαδικό σύστημα

Διαβάστε περισσότερα

Το πρόβλημα: Εμβαδόν σφαίρας

Το πρόβλημα: Εμβαδόν σφαίρας Το πρόβλημα: Εμβαδόν σφαίρας Θέλουμε να γράψουμε ένα πρόγραμμα που θα υπολογίζει το εμβαδόν Α μιας σφαίρας, ακτίνας r. Για παράδειγμα, έστω πως έχουμε την σφαίρα της γης, η οποία έχει ως γνωστόν ακτίνα

Διαβάστε περισσότερα

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Αριθµητική υπολογιστών

Αριθµητική υπολογιστών Αριθµητική υπολογιστών Μιχάλης ρακόπουλος Υπολογιστική Επιστήµη & Τεχνολογία, #03 1 εκαδικό σύστηµα αρίθµησης Βάση το 10. 10 ψηφία: 0 1 2 3 4 5 6 7 8 9 1 δεκαδικό ψηφίο εκφράζει 1 από 10 πιθανές επιλογές

Διαβάστε περισσότερα

Αριθμητική Ανάλυση & Εφαρμογές

Αριθμητική Ανάλυση & Εφαρμογές Αριθμητική Ανάλυση & Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Υπολογισμοί και Σφάλματα Παράσταση Πραγματικών Αριθμών Συστήματα Αριθμών Παράσταση Ακέραιου

Διαβάστε περισσότερα

Σε πολλά (κυρίως µαθηµατικά) προβλήµατα (π.χ. ανάλυση πειραµάτων, στατιστική επεξεργασία, γραφικές παραστάσεις, επίλυση γραµµικών συστηµάτων, κ.α.

Σε πολλά (κυρίως µαθηµατικά) προβλήµατα (π.χ. ανάλυση πειραµάτων, στατιστική επεξεργασία, γραφικές παραστάσεις, επίλυση γραµµικών συστηµάτων, κ.α. Πίνακες (arrays) 1 οµές δεδοµένων Σε πολλά (κυρίως µαθηµατικά) προβλήµατα (π.χ. ανάλυση πειραµάτων, στατιστική επεξεργασία, γραφικές παραστάσεις, επίλυση γραµµικών συστηµάτων, κ.α.): Ανάγκη για αποθήκευση/διαχείριση

Διαβάστε περισσότερα

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 23 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 2ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος I/O 24 Βασική βιβλιοθήκη συναρτήσεων εισόδου/εξόδου #include Η συνάρτηση εξόδου printf printf("συμβολοσειρά

Διαβάστε περισσότερα

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Συναρτήσεις 60 Ροή ελέγχου Είναι η σειρά µε την οποία εκτελούνται οι εντολές. Μέχρι τώρα, «σειριακή»,

Διαβάστε περισσότερα

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

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

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων Πληροφορικής 2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών 3. Ο αλγόριθμος

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

Διαβάστε περισσότερα

A A A B A ΦΥΛΛΑ ΙΟ ΘΕΜΑΤΩΝ 1/2. Μέϱος A. Πολλαπλές επιλογές (20%) Σειριακός αριθµός : 100 Πληροφορική Ι Εξέταση Φεβρουαρίου 2019

A A A B A ΦΥΛΛΑ ΙΟ ΘΕΜΑΤΩΝ 1/2. Μέϱος A. Πολλαπλές επιλογές (20%) Σειριακός αριθµός : 100 Πληροφορική Ι Εξέταση Φεβρουαρίου 2019 Σειριακός αριθµός : 100 Πληροφορική Ι Εξέταση Φεβρουαρίου 2019 Απαντήσεις Πολλαπλής Επιλογής Ε Ω : 1 2 3 4 5 A A A B A ΦΥΛΛΑ ΙΟ ΘΕΜΑΤΩΝ 1/2 Τα ϑέµατα της εξέτασης δίνονται σε 2 ϕυλλάδια (ένα για κάϑε διδάσκοντα).

Διαβάστε περισσότερα

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

Διαβάστε περισσότερα

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

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

Διαβάστε περισσότερα

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

Διαβάστε περισσότερα

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75 1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75 2. Έστω x = [2 5 1 6] α. Προσθέστε το 16 σε κάθε στοιχείο β. Προσθέστε το 3 σε κάθε στοιχείο που βρίσκεται σε μονή θέση.

Διαβάστε περισσότερα

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

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης: Ορολογία bit (binary digit): δυαδικό ψηφίο. Τα δυαδικά ψηφία είναι το 0 και το 1 1 byte = 8 bits word: η θεμελιώδης μονάδα σύμφωνα με την οποία εκπροσωπούνται οι πληροφορίες στον υπολογιστή. Αποτελείται

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

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

Διαβάστε περισσότερα

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

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στην Πληροφορική & τον Προγραμματισμό Ενότητα 3 η : Κωδικοποίηση & Παράσταση Δεδομένων Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα

Διαβάστε περισσότερα

Θέματα Προγραμματισμού Η/Υ

Θέματα Προγραμματισμού Η/Υ Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 1: Εισαγωγή Θεματική Ενότητα: Εισαγωγή στον Προγραμματισμό ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική

Διαβάστε περισσότερα

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 26 ΑΠΡΙΛΙΟΥ 2012 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ

Διαβάστε περισσότερα

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει

Διαβάστε περισσότερα

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Δρ. Δημήτρης Βαρσάμης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

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

Διαβάστε περισσότερα

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια: Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται

Διαβάστε περισσότερα

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ ) Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ. 25 48) Τι είναι αλγόριθμος; Γ ΛΥΚΕΙΟΥ Αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρονικό διάστημα,

Διαβάστε περισσότερα

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

Διαβάστε περισσότερα

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit! Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 25-6 Πράξεις με δυαδικούς αριθμούς (αριθμητικές ) http://di.ionio.gr/~mistral/tp/csintro/ Αριθμοί Πράξεις με δυαδικούς αριθμούς

Διαβάστε περισσότερα

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος 2012-13 Κων/νος Φλώρος Απλοί τύποι δεδομένων Οι τύποι δεδομένων προσδιορίζουν τον τρόπο παράστασης των

Διαβάστε περισσότερα

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 9ο Aντώνης Σπυρόπουλος Σφάλματα στρογγυλοποίησης

Διαβάστε περισσότερα

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 1 ο Εργαστήριο. Εισαγωγή στο Matlab

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

Διαβάστε περισσότερα

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

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

Διαβάστε περισσότερα

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι:

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι: ΑΕσΠΠ 1 / 8 I. ΑΛΓΟΡΙΘΜΟΣ 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι: i. Είσοδος : χρήση μιας μεταβλητής που δεν έχει πάρει προηγουμένως τιμή. ii. Έξοδος : ο αλγόριθμος δεν εμφανίζει

Διαβάστε περισσότερα

Πράξεις με δυαδικούς αριθμούς

Πράξεις με δυαδικούς αριθμούς Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 25-6 Πράξεις με δυαδικούς αριθμούς (αριθμητικές πράξεις) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Πράξεις με δυαδικούς

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Πίνακες (arrays)

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Πίνακες (arrays) ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Πίνακες (arrays) Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Πίνακες (arrays) 1 οµές δεδοµένων Σε πολλά (κυρίως µαθηµατικά) προβλήµατα (π.χ. ανάλυση πειραµάτων,

Διαβάστε περισσότερα

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα; Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο Τι θα τυπωθεί στον παρακάτω κώδικα; Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο Τι θα τυπωθεί στον παρακάτω κώδικα; Χωρίς να αλλάξουμε τον τύπο των a,b,

Διαβάστε περισσότερα

Πληροφορική. Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Πληροφορική. Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Πληροφορική Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής Άδειες Χρήσης

Διαβάστε περισσότερα

Βρόχοι. Εντολή επανάληψης. Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή. Πρόβλημα. Πώς θα υπολογίσουμε το άθροισμα των ακέραιων ;

Βρόχοι. Εντολή επανάληψης. Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή. Πρόβλημα. Πώς θα υπολογίσουμε το άθροισμα των ακέραιων ; Εντολή επανάληψης Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή Πρόβλημα Πώς θα υπολογίσουμε το άθροισμα των ακέραιων 1 5000; Ισοδύναμοι υπολογισμοί του Ισοδύναμοι υπολογισμοί του Ισοδύναμοι υπολογισμοί

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

Θέματα Προγραμματισμού Η/Υ

Θέματα Προγραμματισμού Η/Υ Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 7: Θεματική Ενότητα: Δομές επανάληψης ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική Ενότητα 7 Δομές επανάληψης

Διαβάστε περισσότερα

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 5 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 5 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ.   url: στους Ηλεκτρονικούς Υπολογιστές 5 ο Μάθημα Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ email: leo@mail.ntua.gr url: http://users.ntua.gr/leo Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ Κεφαλαία και μικρά γράμματα ελληνικού αλφαβήτου: Α Ω και α ω Κεφαλαία και μικρά γράμματα λατινικού αλφαβήτου: A Z και a z Αριθμητικά ψηφία: 0 9 Ειδικοί χαρακτήρες: + - * / =. ( ),! & κενός

Διαβάστε περισσότερα

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

2. ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. 2.1 Αριθμητικά συστήματα 2. ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ 2.1 Αριθμητικά συστήματα Κάθε πραγματικός αριθμός χ μπορεί να παρασταθεί σε ένα αριθμητικό σύστημα με βάση β>1 με μια δυναμοσειρά της μορφής, -οο * = ± Σ ψ β " (2 1) η - ν

Διαβάστε περισσότερα

Τμήμα Μαθηματικών, ΕΚΠΑ. Ακαδ. έτος

Τμήμα Μαθηματικών, ΕΚΠΑ. Ακαδ. έτος ½ ½ ÈÐ ÖÓ ÓÖ Á Javaµ Τμήμα Μαθηματικών, ΕΚΠΑ Ακαδ. έτος 2007 2008 ¾ È Ö Õ Ñ ÒÓ Ñ Ñ ØÓ Εισαγωγή στην πληροφορική με έμφαση σε: αρχιτεκτονική και αριθμητική υπολογιστών αλγοριθμική επίλυση προβλημάτων βασικές

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Νέο Πρόγραμμα

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 3: Πίνακες, βρόχοι, συναρτήσεις 1 Ιουνίου 2017 Το σημερινό εργαστήριο

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Κ. Δεμέστιχας Εργαστήριο Πληροφορικής Γεωπονικό Πανεπιστήμιο Αθηνών Επικοινωνία μέσω e-mail: cdemest@aua.gr, cdemest@cn.ntua.gr 1 2. ΑΡΙΘΜΗΤΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΜΕΡΟΣ Α 2 Τεχνολογία

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

Διαβάστε περισσότερα

Το πρόβλημα. Έχουμε έναν κύκλο με μοναδιαία ακτίνα. Η εξίσωσή του θα είναι:

Το πρόβλημα. Έχουμε έναν κύκλο με μοναδιαία ακτίνα. Η εξίσωσή του θα είναι: Το πρόβλημα 1 x y Έχουμε έναν κύκλο με μοναδιαία ακτίνα. Η εξίσωσή του θα είναι: x 2 + y 2 = 1 2 Το πρόβλημα Για n=6 Εάν βάλουμε πάνω στην περιφέρειά του n σημεία, σε ίση απόσταση μεταξύ τους και τα ενώσουμε,

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Κ. Δεμέστιχας Εργαστήριο Πληροφορικής Γεωπονικό Πανεπιστήμιο Αθηνών Επικοινωνία μέσω e-mail: cdemest@aua.gr, cdemest@cn.ntua.gr 3. ΑΡΙΘΜΗΤΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΜΕΡΟΣ Β Παράσταση Προσημασμένων

Διαβάστε περισσότερα

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

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

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

Διαβάστε περισσότερα

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

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 4 η Τελεστές Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης

Διαβάστε περισσότερα

1.4 Αριθμητική υπολογιστών και σφάλματα

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

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 3 Λειτουργίες σε Bits, Αριθμητικά Συστήματα Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Φύση υπολογιστών Η

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 8/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 8/11/07 Συμπλήρωμα προηγούμενης εβδομάδας: ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 8/11/07 Τι συμβαίνει όταν στην ίδια έκφραση υπάρχει πάνω από

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

Διαβάστε περισσότερα

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ Εισαγωγή στην γλώσσα προγραμματισμού Ακαδημαϊκό έτος 2016-2017, Εαρινό εξάμηνο Οι σημειώσεις βασίζονται στα συγγράμματα: A byte of Python (ελληνική

Διαβάστε περισσότερα

Ψευδοκώδικας. November 7, 2011

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

Διαβάστε περισσότερα

! Δεν μπορούν να λυθούν όλα τα προβλήματα κάνοντας χρήση του παρ/λου προγ/σμου ΑΡΧΗ ΝΑΙ Διάβα σε a Εκτύπ ωσε a > a 0 ΟΧΙ ΤΕΛΟΣ Σύμβολα διαγράμματος ροής 1 Ακέραιος τύπος 14 0-67 2 Πραγματικός τύπος

Διαβάστε περισσότερα

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

Διαβάστε περισσότερα

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

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ ) Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ. 147 159) Για τις γλώσσες προγραμματισμού πρέπει να έχουμε υπόψη ότι: Κάθε γλώσσα προγραμματισμού σχεδιάζεται για συγκεκριμένο σκοπό, δίνοντας ιδιαίτερη

Διαβάστε περισσότερα

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Εντολές ελέγχου και επανάληψης

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Εντολές ελέγχου και επανάληψης ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Εντολές ελέγχου και επανάληψης Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Εντολές ελέγχου και επανάληψης 13 Μερικά χρήσιµα «εργαλεία»... για οποιεσδήποτε εκφράσεις

Διαβάστε περισσότερα

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

Πρόβλημα 29 / σελίδα 28 Πρόβλημα 29 / σελίδα 28 Πρόβλημα 30 / σελίδα 28 Αντιμετάθεση / σελίδα 10 Να γράψετε αλγόριθμο, οποίος θα διαβάζει τα περιεχόμενα δύο μεταβλητών Α και Β, στη συνέχεια να αντιμεταθέτει τα περιεχόμενά τους

Διαβάστε περισσότερα

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

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης: Ορολογία bit (binary digit): δυαδικό ψηφίο. Τα δυαδικά ψηφία είναι το 0 και το 1 1 byte = 8 bits word: η θεμελιώδης μονάδα σύμφωνα με την οποία εκπροσωπούνται οι πληροφορίες στον υπολογιστή. Αποτελείται

Διαβάστε περισσότερα

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

Εισαγωγή στην Πληροφορική ΓΕΝΙΚΟ ΤΜΗΜΑ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ TEI ΧΑΛΚΙ ΑΣ Εισαγωγή στην Πληροφορική 1 Περιεχόµενα - Κωδικοποιήσεις - Αριθµητικά Συστήµατα 2 Ηλεκτρονικός Υπολογιστής Είπαµε ότι είναι, µία Ηλεκτρονική Μηχανή, που δουλεύει κάτω από τον έλεγχο εντολών αποθηκευµένων

Διαβάστε περισσότερα

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Εργαστήριο 3: 3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Η C++, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες.

Διαβάστε περισσότερα

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Στέλιος Τιμοθέου ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΑ ΘΕΜΑΤΑ ΜΑΣ ΣΗΜΕΡΑ Συστήματα αρίθμησης Δυαδικό αριθμητικό

Διαβάστε περισσότερα

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

Διαβάστε περισσότερα

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ 1 Τύποι δεδομένων Η γλώσσα προγραμματισμού C++ υποστηρίζει τους παρακάτω τύπους δεδομένων: 1) Ακέραιοι αριθμοί (int). 2) Πραγματικοί αριθμοί διπλής ακρίβειας

Διαβάστε περισσότερα

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

ΘΕΜΑ : ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ. ΔΙΑΡΚΕΙΑ: 1 περιόδους. 22/1/ :11 Όνομα: Λεκάκης Κωνσταντίνος καθ. Τεχνολογίας ΘΕΜΑ : ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ ΔΙΑΡΚΕΙΑ: 1 περιόδους 22/1/2010 10:11 καθ. Τεχνολογίας 22/1/2010 10:12 Παραδείγματα Τι ονομάζουμε αριθμητικό σύστημα? Το σύνολο από ψηφία (αριθμοί & χαρακτήρες). Που χρησιμεύουν

Διαβάστε περισσότερα

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Πώς δημιουργούμε πρόγραμμα Η/Υ; 1. Ανάλυση του προβλήματος 2. Επινόηση & Σχεδιασμός

Διαβάστε περισσότερα

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Μεταβλητές Μεταβλητή ονομάζεται ένα μέγεθος

Διαβάστε περισσότερα

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι χρειάζεται η εντολή DO ; ΕΠΑΝΑΛΗΨΕΙΣ ΕΝΤΟΛΗ DO. Όταν απαιτείται να εκτελεστεί πολλές φορές το ίδιο τμήμα ενός προγράμματος.

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι χρειάζεται η εντολή DO ; ΕΠΑΝΑΛΗΨΕΙΣ ΕΝΤΟΛΗ DO. Όταν απαιτείται να εκτελεστεί πολλές φορές το ίδιο τμήμα ενός προγράμματος. ΥΠΟΛΟΓΙΣΤΕΣ Ι Τι χρειάζεται η εντολή DO ; ΕΠΑΝΑΛΗΨΕΙΣ ΕΝΤΟΛΗ DO Όταν απαιτείται να εκτελεστεί πολλές φορές το ίδιο τμήμα ενός προγράμματος. Τετριμμένο παράδειγμα: Κατασκευάστε πρόγραμμα που θα εμφανίζει

Διαβάστε περισσότερα

Η Δομή Επανάληψης. Εισαγωγή στην δομή επανάληψης Χρονική διάρκεια: 3 διδακτικές ώρες

Η Δομή Επανάληψης. Εισαγωγή στην δομή επανάληψης Χρονική διάρκεια: 3 διδακτικές ώρες Η Δομή Επανάληψης Εισαγωγή στην δομή επανάληψης Χρονική διάρκεια: 3 διδακτικές ώρες Οι 2 πρώτες διδακτικές ώρες στην τάξη Η τρίτη διδακτική ώρα στο εργαστήριο Γενικός Διδακτικός Σκοπός Ενότητας Να εξοικειωθούν

Διαβάστε περισσότερα

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ. ΤΡΙΤΗ ΔΙΑΛΕΞΗ Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.): Σύνταξη τύπος όνομαα; τύπος όνομαβ{όνομαα}; όνομαβ

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 4

ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 4 ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 4 Λίστες (Lists) Λίστα (list) στην Python ονομάζεται μια δυναμική δομή δεδομένων (στην πραγματικότητα, ένα αντικείμενο) που περιέχει πολλαπλά δεδομένα. Ουσιαστικά, η λίστα

Διαβάστε περισσότερα

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράµµατα «γράφονται» χρησιµοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαµβάνει

Διαβάστε περισσότερα

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή Κεφάλαιο. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας Περιεχόμενα. Αριθμητικά συστήματα. Μετατροπή αριθμών από ένα σύστημα σε άλλο.3 Πράξεις στο δυαδικό σύστημα.4 Πράξεις στο δεκαεξαδικό σύστημα.5

Διαβάστε περισσότερα