Κεφάλαιο 4: Μεταβλητές, Εκφράσεις, Εντολές. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

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

Download "Κεφάλαιο 4: Μεταβλητές, Εκφράσεις, Εντολές. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών"

Transcript

1 Κεφάλαιο 4: Μεταβλητές, Εκφράσεις, Εντολές Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

2 Μεταβλητές (1) Μεταβλητή: Αφαιρετική αναπαράσταση διεύθυνσης μνήμης, ή συλλογής διευθύνσεων μνήμης του Η/Υ. Αναγνωριστικό ή Όνομα (id): Συνδυασμός από αλφαριθμητικούς χαρακτήρες. Είναι ένα μόνο από τα συστατικά μιας μεταβλητής. Είναι συστατικό και άλλων δομών: Υποπρογράμματα, παράμετροι, Σχεδιαστικά θέματα για τα ονόματα: Μορφή. Διάκριση πεζών/κεφαλαίων γραμμάτων, άλλοι περιορισμοί. Δεσμευμένες Λέξεις vs Λέξεις Κλειδιά.

3 Μεταβλητές (2) Χ = 2.5; «Χ είναι το όνομα (id) μιας θέσης (ή θέσεων) μνήμης που περιέχει(-ουν) πλέον τον αριθμό 2.5» Και η πρόταση αυτή δεν είναι πλήρης Μία μεταβλητή Μ αποτελείται από 4 στοιχεία:

4 Μεταβλητές (3) Όνομα Διεύθυνση(-σεις) μνήμης (αναφορά) Μ Τιμή Ιδιότητες Τύπος τιμών Χρόνος ζωής Εύρος Λειτουργίες Εμβέλεια Αναφορά (μνήμη) Όνομα Ιδιότητες Τιμή

5 Μεταβλητές (4) Η σχέση ονόματος διεύθυνσης δεν είναι αμφιμονοσήμαντη. Α. Ίδιο όνομα Διαφορετικές διευθύνσεις Σε ένα πρόγραμμα, σε κάθε μία από δύο συναρτήσεις f 1, f 2, μπορεί να ορίζεται μία μεταβλητή (τοπική) με το όνομα Χ. Όταν μία συνάρτηση f καλείται αναδρομικά, κάθε κλήση της f ορίζει διαφορετικές θέσεις μνήμης (και άρα μεταβλητές), για τα ονόματα που είναι τοπικές μεταβλητές της f. Αν η συνάρτηση f με τοπική μεταβλητή την Υ, κληθεί από τις συναρτήσεις f 1, f 2, η Υ θα έχει συνδεθεί με διαφορετικές μνήμες στις f 1, f 2

6 Μεταβλητές (5) Β. Διαφορετικά ονόματα Ίδια διεύθυνση Ψευδωνυμία (κακό για αναγνωσιμότητα ) Μπορεί να δημιουργηθεί με διάφορους τρόπους: Άμεσα Στη FORTRAN με την εντολή EQUIVALENCE Στις C, C++ με union variables Έμμεσα Με την κλήση υποπρογραμμάτων (by reference) Με τη χρήση pointers

7 Μεταβλητές (6) Ψευδωνυμία X Y

8 Μεταβλητές (7) Μία μεταβλητή Χ έχει 2 χρήσεις. Στην εντολή ανάθεσης: Χ = Χ + 1 l-value r-value l-value (left value): Αναφορά στη θέση μνήμης r-value (right value): Αποαναφοροποίηση για να πάρουμε την τιμή Ουσιαστικά ο τελεστής = της εντολής ανάθεσης, είναι ένας τελεστής που δέχεται 2 ορίσματα: τιμή (r-value) και αναφορά (l-value)

9 Μεταβλητές (8) Αποαναφοροποίηση (dereferencing): Πρόσβαση στη θέση μνήμης, και λήψη της υπάρχουσας τιμής. Στις περισσότερες γλώσσες, ο r-value ρόλος μιας μεταβλητής, συνάγεται εμμέσως από τη θέση της μεταβλητής, δηλαδή όταν βρίσκεται δεξιά από τον τελεστή ανάθεσης = Υπάρχουν γλώσσες, στις οποίες υπάρχει ρητή δήλωση του r-value ρόλου. Π.χ. στην BLISS: X :=.X + 1

10 Δέσμευση (1) Δέσμευση (Binding): Συσχέτιση δύο οντοτήτων. Π.χ. ιδιότητας με μεταβλητή, operation με σύμβολο. Χρόνος Δέσμευσης (Binding Time): Ο χρόνος που γίνεται η δέσμευση. Έχουμε τους εξής Χρόνους Δέσμευσης: 1) Χρόνος Σχεδιασμού της Γλώσσας 2) Χρόνος Υλοποίησης της Γλώσσας 3) Χρόνος Γραφής του Προγράμματος 4) Χρόνος Μετάφρασης του Προγράμματος 5) Χρόνος Σύνδεσης του Προγράμματος 6) Χρόνος Φόρτωσης του Προγράμματος 7) Χρόνος Εκτέλεσης του Προγράμματος

11 Δέσμευση (2) Διάφορες οντότητες δεσμεύονται σε διάφορους χρόνους: Ένα σύμβολο (π.χ. *) με μία operation, στο χρόνο (1) Ένας Τύπος Δεδομένων (π.χ. int) με εύρος τιμών, στο (2) Ένα όνομα (π.χ. A) με μία έννοια, στο (3) Μία μεταβλητή με ένα Τύπο Δεδομένων, στο (4) Μία Συνάρτηση βιβλιοθήκης με τον κώδικα χρήστη, στο (5) Μία μεταβλητή με θέση(-εις) μνήμης, στο (6) Μία μεταβλητή με τιμή, στο (7)

12 Δέσμευση (3) Παράδειγμα: Στον κώδικα int count; count = count + 5; υπάρχουν (μεταξύ άλλων) οι δεσμεύσεις: Το σύνολο των πιθανών Τύπων Δεδομένων του count, (1) Ο Τύπος Δεδομένων του count στο πρόγραμμά μας, (4) Το σύνολο των πιθανών τιμών του count, (2) Η τιμή του count στο πρόγραμμά μας, (7) Το σύνολο των πιθανών εννοιών του +, (1) Η έννοια του + στο πρόγραμμά μας, (4) Η εσωτερική αναπαράσταση του 5, (2)

13 Δέσμευση (4) Διάρκεια Ζωής της δέσμευσης: Η χρονική περίοδος μεταξύ της δημιουργίας και της καταστροφής μιας δέσμευσης (π.χ. ενός ονόματος και μιας μεταβλητής) Διάρκεια Ζωής αντικειμένου: Η χρονική περίοδος μεταξύ της δημιουργίας και της καταστροφής του αντικειμένου (π.χ. μεταβλητής) Δεν συμπίπτουν απαραίτητα: Ένα αντικείμενο μπορεί να έχει μεγαλύτερη διάρκεια από αυτήν της δέσμευσης. Π.χ. όταν μια μεταβλητή μεταβιβάζεται με αναφορά σε μια υπορουτίνα, η δέσμευση του ονόματος της παραμέτρου και της μεταβλητής έχει μικρότερη διάρκεια από αυτήν της μεταβλητής. Μία δέσμευση μπορεί να έχει μεγαλύτερη διάρκεια από αυτήν του αντικειμένου. Π.χ. αν ένα αντικείμενο που έχει δημιουργηθεί με new στην C++, μεταβιβαστεί ως παράμετρος με & και μετά καταστραφεί με delete πριν επιστρέψει η υπορουτίνα, έχουμε αιωρούμενη αναφορά (dangling reference).

14 Δέσμευση (5) Στατική Δέσμευση: Όταν γίνεται πριν το χρόνο εκτέλεσης του προγράμματος (6) και δεν αλλάζει κατά τη διάρκεια της εκτέλεσης. Δυναμική Δέσμευση: Αλλιώς. Α. Δέσμευση Μεταβλητής με Τύπο Δεδομένων (ΤΔ) Στατική Δέσμευση Με Ρητή (explicit) δήλωση Π.χ. στη C: int A; Με Έμμεση (implicit) δήλωση Π.χ. στη συναρτησιακή γλώσσα ML (Meta Language):

15 Δέσμευση (6) Οι ΤΔ των εκφράσεων καθορίζονται από τις (τυχούσες) σταθερές: Στην εντολή fun circ(r) = 3.14 * r * r, το circ θεωρείται real Στην εντολή fun times(x) = 10 * x, το times θεωρείται integer Αν δεν συνάγεται ο ΤΔ, συντακτικό λάθος. Π.χ στο fun sq(x) = x * x χρειάζεται να γίνει ρητή δήλωση: fun sq(x): int = x * x ή fun sq(x: int) = x * x ή fun sq(x) = (x: int) * x Τώρα, όλες οι γλώσσες (εκτός ML, Perl) έχουν ρητή δήλωση. Perl: $a (βαθμωτός (array ΤΔ), διαφορετικές μετ/τές. Ορισμένες αρχικές γλώσσες είχαν ένα είδος έμμεσης δήλωσης. Π.χ. στην FORTRAN αν υπήρχε id που δεν είχε δηλωθεί ρητά, συναγόταν έμμεσα ο ΤΔ ως εξής: Αν το όνομα αρχίζει από I, J, K, L, M, N είναι INTEGER Αλλιώς είναι REAL

16 Δέσμευση (7) Δυναμική Δέσμευση Η μεταβλητή δεσμεύεται με ΤΔ κάθε φορά που παίρνει τιμή, δηλαδή όταν είναι l-value. Δεσμεύεται με τον ΤΔ που έχει η τιμή της μεταβλητής r-value, ή της έκφρασης που είναι δεξιά του = Γλώσσες: APL, SNOBOL, PHP, JavaScript ΘΕΤΙΚΑ: Ευελιξία Δυνατότητα για generic συναρτήσεις ΑΡΝΗΤΙΚΑ: Δεν υπάρχει δυνατότητα εντοπισμού λαθών στη μετάφραση Μεγάλο κόστος για έλεγχο των ΤΔ κατά την εκτέλεση

17 Δέσμευση (8) B. Δέσμευση Μεταβλητής με Διεύθυνση(-εις) Μνήμης Εκχώρηση (allocation): Η διαδικασία δέσμευσης της μεταβλητής με Δ/νση Μνήμης από τις διαθέσιμες. Αποδέσμευση (de-allocation): Η διαδικασία αποδέσμευσης και επιστροφής της μνήμης στις διαθέσιμες. Διάρκεια Ζωής: Ο χρόνος κατά τον οποίο η μεταβλητή είναι δεσμευμένη με διεύθυνση(-εις) μνήμης. Δηλαδή: Διάρκεια Ζωής = (Χρόνος Αποδέσμευσης) (Χρόνος Εκχώρησης)

18 Δέσμευση (9) Με βάση τον τρόπο δέσμευσης και τους χρόνους εκχώρησης και αποδέσμευσης, έχουμε διαφορετικού τύπου μεταβλητές: Static Variables Η εκχώρηση γίνεται πριν την εκτέλεση του προγράμματος και δεν αλλάζει στη διάρκειά της. Global μεταβλητές. Στις C, C++, Java με static. Η Pascal όχι. Στις αρχικές FORTRAN (από Ι ως και IV), όλες οι μεταβλητές static. Πολλές φορές είναι history sensitive. ΠΛΕΟΝΕΚΤΗΜΑ: Αποδοτικές (μικρό overhead) ΜΕΙΟΝΕΚΤΗΜΑ: Μικρή ευελιξία (όχι αναδρομικότητα)

19 Δέσμευση (10) Stack Dynamic Variables Η εκχώρηση γίνεται όταν «εκτελείται» η εντολή δήλωσης της μεταβλητής (ο ΤΔ είναι στατικά συνδεδεμένος) Στη C και στη C++ είναι τέτοιες οι μεταβλητές Στην αρχή εκτέλεσης του υποπρογράμματος γίνεται εκχώρηση της τοπικής μεταβλητής, αποδέσμευση μόλις λήξει η εκτέλεση. Εκχώρηση από την run-time stack μνήμη (οργανωμένη) Εκχώρηση και Αποδέσμευση με τρόπο Last-In First-Out (LIFO), συνήθως σε συνδυασμό με κλήση υπ/τος. ΜΕΙΟΝΕΚΤΗΜΑ: Δεν μπορούν να είναι history sensitive. ΠΛΕΟΝΕΚΤΗΜΑ: Αναδρομή

20 Δέσμευση (11) Εκχώρηση Αποδέσμευση ΠΑΡΑΔΕΙΓΜΑ: Η run-time stack, αφού το Main έχει καλέσει τη συνάρτηση Α, η οποία με τη σειρά της έχει καλέσει τη συνάρτηση Β Function B Function A Main Program

21 Δέσμευση (12) Explicit Heap Dynamic Variables Είναι ανώνυμα αντικείμενα των οποίων οι διευθύνσεις εκχωρούνται και αποδεσμεύονται με εντολές που εκτελούνται κατά την εκτέλεση του προγράμματος. Χρησιμοποιούν τη heap storage: Ανοργάνωτη συλλογή θέσεων μνήμης με «απρόβλεπτη» χρήση. Οι μεταβλητές αυτές μπορούν να προσπελασθούν μόνο από pointers ή objects. Εκχώρηση και Αποδέσμευση σε οποιαδήποτε χρονική στιγμή. Στην Java όλα τα objects είναι explicit heap dynamic variables

22 Δέσμευση (13) Implicit Heap Dynamic Variables Γίνεται εκχώρηση από την heap storage μόνο όταν η μεταβλητή παίρνει τιμή με εντολή ανάθεσης (l-value). Μαζί δεσμεύονται με τη μεταβλητή όλες οι ιδιότητες του ΤΔ της τιμής (δυναμική δέσμευση της μεταβλητής με ΤΔ) Ουσιαστικά είναι μόνο ονόματα που δεσμεύονται με ότι θέλουμε. APL, ALGOL-68 ΘΕΤΙΚΑ: Ευελιξία Δυνατότητα για generic συναρτήσεις ΑΡΝΗΤΙΚΑ: Μεγάλο κόστος για συντήρηση των δυναμικών ιδιοτήτων κατά την εκτέλεση

23 Σταθερές (1) Είναι «μεταβλητές» που δεσμεύονται με τιμή, μόνο όταν δεσμεύονται με μνήμη. Η τιμή δεν μπορεί να αλλάξει με εντολή ανάθεσης. C, C++ : const int s = 100; Pascal : const s = 100; Η αρχική C δεν είχε σταθερές. Όμως ο C preprocessor περιλαμβάνει macro: #define LEN 100 : αντικαθίστανται όλες οι εμφανίσεις του LEN με το 100 (named literal)

24 Σταθερές (2) Οι σταθερές βοηθούν την αναγνωσιμότητα και την αξιοπιστία του προγράμματος. Εύκολη αλλαγή μεγέθους arrays και άλλων δομών. Στην Ada υπάρχει μεγάλη ευελιξία: MAX: constant integer := 2 * WIDTH + 1; (dynamic)

25 Αρχικές Τιμές Μεταβλητών Αρχικοποίηση: Δέσμευση μεταβλητής με τιμή, τη στιγμή που δεσμεύεται με μνήμη (όπως η σταθερά). Διαφορά από σταθερά: Η σταθερά δεν αλλάζει τιμή. FORTRAN: REAL PI, DATA PI / / C: int i = 0; float e = 1.0e-5; Pascal: Όχι Ada: SUM: integer := 0; (Σταθερά: SUM: constant integer := 0; ) ALGOL 68: int first := 10; (Σταθερά: int first = 10; ) Κακή αναγνωσιμότητα

26 Εκφράσεις (1) Βασικός τρόπος προσδιορισμού υπολογισμών σε μια ΓΠ Τρεις κατηγορίες Εκφράσεων: 1. Αριθμητικές 2. Σχεσιακές 3. Λογικές

27 Εκφράσεις (2) 1. Αριθμητικές Εκφράσεις Κατασκευές από: Τελεστές (operators) Τελεστέους (operands) Παρενθέσεις Κλήσεις Συναρτήσεων Π.χ. Α + (Β * C D) SYN(X) Τελεστές: Μοναδιαίοι (unary) π.χ. Χ Δυαδικοί (binary) π.χ. Χ + Υ Τριαδικοί (ternary) π.χ. Α? Β : C

28 Εκφράσεις (3) Η σειρά υπολογισμών σε μια αριθμητική έκφραση καθορίζεται από τα εξής: Α. Ιεραρχία Τελεστών FORTRAN Pascal C Ada ** * / div mod Postfix ** abs * / + - Prefix * / mod + - Unary - Unary + - * / % Binary + - Binary + -

29 Εκφράσεις (4) B. Associativity (Σειρά υπολογισμών στο ίδιο επίπεδο ιεραρχίας) ΓΕΝΙΚΑ: Από αριστερά προς τα δεξιά Εκτός από την ύψωση σε δύναμη: Α**Β**C FORTRAN: από δεξιά προς αριστερά Ada: δεν υπάρχει κανόνας, χρειάζονται παρενθέσεις

30 Εκφράσεις (5) FORTRAN Αριστερά: * / + - Δεξιά: ** Pascal Αριστερά: Όλα C C++ Ada Αριστερά: postfix (++ --) * / % binary (+ -) Δεξιά: prefix (++ --) unary - Αριστερά: * / % binary (+ -) Δεξιά: unary - Αριστερά: Όλα εκτός ** Χωρίς κανόνα: ** Γ. Παρενθέσεις Αλλάζουν τη σειρά υπολογισμού των Α και Β

31 Εκφράσεις (6) Εκφράσεις υπό συνθήκη Μπορούν να χρησιμοποιηθούν όπως κάθε έκφραση Π.χ. ο τριαδικός τελεστής των C, C++, Java: <έκφραση_1>? <έκφραση_2> : <έκφραση_3> (αν <έκφραση_1> = TRUE, τότε <έκφραση_2>, αλλιώς <έκφραση_3>) μπορεί να χρησιμοποιηθεί και σε εντολή ανάθεσης: if (c == 0) then av = 0 else av = sum/count av = (c==0)? 0 : sum/count

32 Εκφράσεις (7) Παράδειγμα: Μ = (Vg < Va)? Vg : Va B = (M < 5)? M : 0.7 * Vg * Va Ο βαθμός σας στο μάθημα Vg = Βαθμός γραπτού Va = Βαθμός άσκησης B = (((Vg < Va)? Vg : Va) < 5)? ((Vg < Va)? Vg : Va ) : 0.7 * Vg * Va

33 Εκφράσεις (8) 2. Σχεσιακές Εκφράσεις (Relational Expressions) Αποτελούνται από: Σχεσιακούς Τελεστέους (Αριθμητικές ή Λογικές Εκφράσεις) Σχεσιακούς Τελεστές Η τιμή τους είναι Boolean (εκτός από τη C) Σχεσιακός Τελεστής: Συγκρίνει τις τιμές δύο τελεστέων.

34 Εκφράσεις (9) Σχεσιακοί Τελεστές Λειτουργία Pascal Ada C FORTRAN 77 Ίσο = = ==.EQ. Άνισο <> /=!=.NE. Μεγαλύτερο από > > >.GT. Μικρότερο από < < <.LT. Μεγαλύτερο ή ίσο >= >= >=.GE. Μικρότερο ή ίσο <= <= <=.LE.

35 Εκφράσεις (10) H FORTRAN αρχικά χρησιμοποιούσε τα παραπάνω σύμβολα, διότι οι διατρητικές μηχανές δεν είχαν τα σύμβολα < > Από τη FORTRAN 90 και μετά, χρησιμοποιεί τα σύμβολα της Pascal, με == για το «ίσο» Με ποια σειρά θα εκτελεστεί το παρακάτω; Α + 1 > Β * 2 (Α + 1) > (Β * 2) Σειρά: Οι σχεσιακοί τελεστές έχουν χαμηλότερη προτεραιότητα από τους αριθμητικούς.

36 Εκφράσεις (11) Οι JavaScript και ΡΗΡ έχουν δύο ακόμα σχεσιακούς τελεστές: === και!== Διαφέρουν από τα == και!= ως προς το ότι δεν κάνουν μετατροπή τύπου κατά τη σύγκριση. Π.χ. 7 == 7 και == 0 είναι true δηλαδή, μετατροπή του 7 σε 7 και του σε 0 (!) 7 === 7 και === 0 είναι false Αντίστοιχα η Ruby έχει το eql? για έλεγχο ισότητας χωρίς μετατροπή τύπου. Χρησιμοποιεί και το === αλλά μόνο στο when της εντολής case ( )

37 Εκφράσεις (12) 3. Λογικές Εκφράσεις (Boolean Expressions) Αποτελούνται από: Boolean Τελεστέους, δηλαδή: Boolean Μεταβλητές Boolean Σταθερές (π.χ. TRUE, FALSE) Σχεσιακές Εκφράσεις (έχουν Boolean τιμή) Boolean Τελεστές Η τιμή τους είναι Boolean (εκτός από τη C) Boolean Τελεστής: Εκτελεί Boolean πράξη (AND, OR, NOT) στις τιμές δύο Boolean τελεστέων.

38 Εκφράσεις (13) Ιεραρχία Boolean Τελεστών Pascal Ada C FORTRAN 77 NOT NOT!.NOT. AND AND, OR &&.AND. OR.OR. Οι αριθμητικές εκφράσεις είναι τελεστέοι σε σχεσιακές εκφράσεις, οι σχεσιακές εκφράσεις σε λογικές, και οι λογικές σε σχεσιακές. Συνεπώς χρειαζόμαστε ιεράρχηση όλων των τελεστών και των τριών τύπων εκφράσεων.

39 Εκφράσεις (14) Ιεραρχία όλων των Τελεστών FORTRAN 77 C Pascal **! NOT * / Postfix ++, -- * / div mod AND + - Prefix ++, OR.EQ..NE..GT..LT..LE..GE. Unary - = <> < <= > >=.NOT. * / %.AND. Binary + -.OR. < <= > >= ==!= &&

40 Εκφράσεις (15) Παράδειγμα στη FORTRAN 77: A+B.GT.2*C.AND.K.NE.0 Σειρά: [(A+B).GT.(2*C)].AND.(K.NE.0) Στην Pascal, οι Boolean τελεστές έχουν υψηλότερη προτεραιότητα από τους σχεσιακούς. Έτσι, η έκφραση Α > 5 OR A < 0 είναι απαράδεκτη. Πρέπει να γραφεί: (Α > 5) OR (A < 0)

41 Εκφράσεις (16) Boolean τιμές Στις περισσότερες γλώσσες: TRUE, FALSE Java: Οι boolean τιμές είναι 1 bit (αρκεί). Δεν συνδέεται με int Τύπο Δεδομένων C++ : Έχει Τύπο Δεδομένων bool. Συνδέεται με int. C : Δεν έχει Boolean Τύπο Δεδομένων. Χρησιμοποιούνται αριθμητικές τιμές: 0 FALSE άλλο TRUE (παράγει το 1 για TRUE) Η έκφραση A > B > 4 είναι νόμιμη στις C, C++ 1 2

42 Εκφράσεις (17) Υπολογισμός Περιορισμένης Έκτασης (Short Circuit Evaluation) Υπολογισμός μιας έκφρασης, χωρίς να χρειάζεται να υπολογιστούν όλοι οι τελεστέοι. Α. Σε αριθμητικές εκφράσεις: (4 * Α) * (Β / 3-1) Τι επίπτωση υπάρχει εδώ; Αν Α = 0, δεν χρειάζεται να υπολογιστεί το (Β / 3-1). Δύσκολο να εντοπιστεί Χρησιμοποιείται σπάνια

43 Εκφράσεις (18) Β. Σε λογικές εκφράσεις: (Α >= 0) AND (B < 10) Αν Α < 0, τότε (Α >= 0) = FALSE και δεν χρειάζεται να υπολογιστεί το (B < 10) Πιθανές Παράπλευρες Συνέπειες (Side Effects): (A > B) && (B++/2) Το B θα αλλάζει τιμή (Β++), μόνο όταν Α > Β C, C++, Java χρησιμοποιούν υπολογισμό περιορισμένης έκτασης

44 Εντολές Ανάθεσης (1) Μηχανισμοί με τους οποίους ο χρήστης αλλάζει δυναμικά τη σύνδεση μεταβλητών με τιμές. 1. Απλή Ανάθεση Γενική σύνταξη: <μεταβλητή-στόχος> <τελεστής ανάθεσης> <έκφραση> Οι FORTRAN, BASIC, PL/1, C, C++ χρησιμοποιούν ως τελεστή ανάθεσης το = Μπορεί να δημιουργηθεί σύγχυση αν χρησιμοποιείται και ως σχεσιακός τελεστής (PL/1, BASIC). Π.χ. στην PL/1: A = B = C : Βάζει ως τιμή του Α, την Boolean τιμή της σχεσιακής έκφρασης Β = C

45 Εντολές Ανάθεσης (2) Η ALGOL και στη συνέχεια οι Pascal, Ada χρησιμοποίησαν το := Οι FORTRAN, Pascal, Ada χρησιμοποιούν την εντολή ανάθεσης, μόνο ως κανονική εντολή ανάθεσης. Στις C, C++, Java, χρησιμοποιείται και ως δυαδικός τελεστής: Μπορεί να χρησιμοποιηθεί μέσα σε εκφράσεις. 2. Πολλαπλές μεταβλητές στόχος PL/1: SUM, TOTAL = 0 C, C++ : SUM = COUNT = 0 (πρώτα COUNT = 0, μετά SUM = COUNT)

46 Εντολές Ανάθεσης (3) 3. Μεταβλητές στόχος υπό συνθήκη C, C++ : FLAG? COUNT1 : COUNT2 = 0 ( if FLAG then COUNT1 = 0 else COUNT2 = 0) 4. Περιληπτικές εντολές ανάθεσης Πρώτη η ALGOL 68, ακολούθησε η C: A+=B A = A + B

47 Εντολές Ανάθεσης (4) 5. Μοναδιαίος τελεστής ανάθεσης SUM = ++COUNT COUNT = COUNT + 1 SUM = COUNT SUM = COUNT++ SUM = COUNT COUNT = COUNT + 1 COUNT++ COUNT = COUNT + 1 Όταν εφαρμόζονται δύο μοναδιαίοι τελεστές ανάθεσης στον ίδιο τελεστέο, η σειρά είναι από δεξιά προς αριστερά: -- COUNT++ -- (COUNT++)

48 Εντολές Ανάθεσης (5) 6. Εντολή ανάθεσης ως έκφραση (C, C++, Java) Η εντολή ανάθεσης δημιουργεί ένα αποτέλεσμα (η τιμή που παίρνει η μεταβλητή στόχος). Συνεπώς, μπορεί να χρησιμοποιηθεί ως έκφραση, ή ως τελεστέος σε μια άλλη έκφραση. while (CH = getchar()!= EOF) { } Σύγκριση νέου χαρακτήρα με EOF, και το αποτέλεσμα (0 ή 1) δίνεται ως τιμή στο CH. Ο τελεστής ανάθεσης είναι χαμηλότερης προτεραιότητας από σχεσιακούς τελεστές. Αλλιώς: while ((CH = getchar())!= EOF) { } Τώρα, πρώτα θα πάρει τιμή το CH, μετά θα συγκριθεί η τιμή αυτή με το EOF.

49 Εντολές Ανάθεσης (6) Μειονέκτημα χρήσης εντολής ανάθεσης ως δυαδικός τελεστής: Ένα είδος side effect. Αποτέλεσμα, δύσκολες στην ανάγνωση εκφράσεις. Π.χ. a = b + (c = d / b) -1 Σειρά εκτέλεσης: c = d / b temp = b + c a = temp - 1

50 Εντολές Ανάθεσης (7) Στη C είναι αποδεκτές οι δύο παρακάτω εντολές; Τι αποτέλεσμα θα έχουν; 1. if (X == Y) then A = 1 else A = 0; 2. if (X = Y) then A = 1 else A = 0; Αποτέλεσμα: 1. Θα ελεγχθεί η ισότητα των X, Y. Αν Χ = Υ τότε Α=1. 2. Θα ελεγχθεί η τιμή που θα πάρει το X. Αν δεν είναι 0, τότε Α=1. Αν είναι 0, τότε Α=0. Η Java επιτρέπει μόνο Boolean εκφράσεις στην εντολή if, οπότε δεν επιτρέπεται η 2.

51 Δομές και Εντολές Ελέγχου Ροής Προγράμματος (1) Ο έλεγχος ροής προγράμματος μπορεί να γίνει σε τρία διαφορετικά επίπεδα: Α. Μέσα σε μια έκφραση, με βάση την ιεραρχία των τελεστών και τους κανόνες προτεραιότητας. Β. Μεταξύ εντολών. Γ. Μεταξύ των τμημάτων του προγράμματος Το Α (το έχουμε εξετάσει) είναι το «χαμηλότερο» επίπεδο. Τώρα θα δούμε το Β.

52 Δομές και Εντολές Ελέγχου Ροής (2) Σε ένα πρόγραμμα, εκτός από: Υπολογισμό εκφράσεων Ανάθεση τιμών χρειάζονται: 1. Τρόποι επιλογής μεταξύ εναλλακτικών επιλογών 2. Τρόποι επαναληπτικής εκτέλεσης ομάδων εντολών Για τα 1, 2 χρειαζόμαστε Εντολές Ελέγχου ΔΟΜΗ ΕΛΕΓΧΟΥ: Εντολή Ελέγχου + Ομάδα εντολών που ελέγχει

53 Δομές και Εντολές Ελέγχου Ροής (3) Έχει αποδειχθεί θεωρητικά, ότι μια Γλώσσα Προγραμματισμού χρειάζεται μόνο: Είτε εντολή GOTO με επιλογή Είτε εντολή επιλογής 1 από 2, και λογικά ελεγχόμενη εντολή επανάληψης A. ΣΥΝΘΕΤΕΣ ΕΝΤΟΛΕΣ ALGOL, Pascal: begin <εντολή_1>.. <εντολή_κ> end C, C++, Java: { <εντολή_1>.. <εντολή_κ> }

54 Δομές και Εντολές Ελέγχου Ροής (4) B. ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ I. Δύο Επιλογών Σχεδιαστικά Θέματα: Μορφή και τύπος της έκφρασης που ελέγχει την επιλογή. Επιλογή απλής εντολής, ακολουθίας εντολών, ή σύνθετης εντολής; Τρόπος υλοποίησης φωλιασμένων (nested) επιλογών. Αρχικά στη FORTRAN: IF <Boolean expression> <εντολή> Για πολλαπλές εντολές: IF (FLAG.NE. 1) GO TO 20 I = 1 J = 2 20 CONTINUE (Αρνητική λογική, δύσκολη ανάγνωση)

55 Δομές και Εντολές Ελέγχου Ροής (5) Στη συνέχεια, η ALGOL: if <Boolean expression> then <εντολή_1> else <εντολή_2> Οι <εντολή_1> και <εντολή_2> μπορούν να είναι και Σύνθετες Εντολές Όλες οι γλώσσες στη συνέχεια, ακολουθούν την ίδια λογική

56 Δομές και Εντολές Ελέγχου Ροής (6) II. Πολλαπλών Επιλογών Μπορεί να κατασκευαστεί από 2 επιλογών, αλλά Βοηθάει αναγνωσιμότητα και ευκολία γραφής Αρχικά FORTRAN: IF <αριθμ_έκφραση> L1, L2, L3 αν <0 =0 >0 Η ALGOL-W εισήγαγε την εντολή case C, C++, Java: switch (<έκφραση_int>) { case <const_expres_int_1> : <εντολή_1> ; case <const_expres_int_n> : <εντολή_n> ; break; [default : <εντολή_n+1>] }

57 Δομές και Εντολές Ελέγχου Ροής (7) C: switch (index) { case 1: case 3: d+=1; s+=index; break; case 2 : case 4: e+=1; v+=index; break; default: printf( Error ); } Pascal: case index of 1, 3: begin d:=d+1; s:=s+index end; 2, 4: begin e:=e+1; v:=v+index end else writeln( Error ) end

58 Δομές και Εντολές Ελέγχου Ροής (8) C. ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ Βασική λειτουργία των γλωσσών προγ/σμού. Κάνουν μια εντολή (ή ομάδα εντολών) να εκτελεστεί 0, 1 ή περισσότερες φορές. Οι Συναρτησιακές γλώσσες χρησιμοποιούν την αναδρομή για επανάληψη. Οι βασικές κατηγορίες εντολών επανάληψης, καθορίστηκαν από τις απαντήσεις των σχεδιαστών σε δύο βασικά ερωτήματα:

59 Δομές και Εντολές Ελέγχου Ροής (9) Πως ελέγχεται η επανάληψη; Λογικά ελεγχόμενη (logically controlled) Με μέτρηση (counter controlled) Που θα εμφανίζεται ο μηχανισμός ελέγχου στο βρόχο; Στην αρχή (pre-test) Στο τέλος (post-test)

60 Δομές και Εντολές Ελέγχου Ροής (10) I. Επανάληψη με Μέτρηση Μεταβλητή Βρόχου (ΜΒ) : Συντηρεί την τιμή μέτρησης. Περιλαμβάνει επίσης: Αρχική Τιμή Τελική Τιμή Παράμετροι βρόχου (ΠΒ) Διαφορά Διαδοχικών Τιμών Σχεδιαστικά Θέματα: Τύπος και εύρος τιμών της ΜΒ. Η τιμή της ΜΒ στο τέλος της επανάληψης. Μπορεί η ΜΒ και οι ΠΒ να αλλάξουν μέσα στο βρόχο, και πως επηρεάζεται ο έλεγχος; Οι ΠΒ υπολογίζονται 1 φορά, ή σε κάθε επανάληψη;

61 Δομές και Εντολές Ελέγχου Ροής (11) C: Γενική μορφή: for (<έκφραση_1> ; <έκφραση_2> ; <έκφραση_3>) <Σώμα_Βρόχου> <έκφραση_1> : Ορίζεται η ΜΒ και η Αρχική τιμή της. Υπολογίζεται 1 φορά στην αρχή. <έκφραση_2> : Έλεγχος βρόχου. Υπολογίζεται πριν από κάθε εκτέλεση του βρόχου. Σχεσιακή έκφραση (αν = 0, τότε τέλος). <έκφραση_3> : Διαφορά διαδοχικών τιμών. Εκτελείται μετά από κάθε εκτέλεση. Αυξάνει τη Μεταβλητή Βρόχου. Π.χ. for (index=0; index<=10; index++) sum = sum + list[index];

62 Δομές και Εντολές Ελέγχου Ροής (12) Οι <έκφραση_2> και <έκφραση_3> μπορούν να είναι εντολές, ή πολλαπλές εντολές (χωρίζονται με,). Όλες οι <εκφράσεις> είναι προαιρετικές. Η default τιμή της <έκφραση_2> είναι TRUE (δηλαδή, 1). Των άλλων, τίποτα. Οι ΜΒ, ΠΒ μπορούν να αλλάξουν μέσα στο σώμα του βρόχου. Μπορεί να γίνει «είσοδος» στο σώμα του βρόχου. Ουσιαστικά είναι λογικά ελεγχόμενη επανάληψη. C++ : Η <έκφραση_2> μπορεί να είναι και Boolean. Η <έκφραση_1> μπορεί να περιλαμβάνει ορισμούς μεταβλητών [ π.χ. for (int count = 0 ; ) ], με εμβέλεια το σώμα του βρόχου (σε παλιότερες υλοποιήσεις της C++, η εμβέλεια ήταν ως το τέλος της περιβάλλουσας συνάρτησης). Java : Η <έκφραση_2> είναι μόνο Boolean. Η <έκφραση_1> μπορεί να περιλαμβάνει ορισμούς μεταβλητών, με εμβέλεια το σώμα του βρόχου.

63 Δομές και Εντολές Ελέγχου Ροής (13) II. Λογικά Ελεγχόμενη Επανάληψη Είναι πιο γενικές εντολές επανάληψης από τις εντολές επανάληψης με μέτρηση. C, C++, Java: Έχουν και pre-test και post-test λογικά ελεγχόμενες επαναλήψεις: Pre-test: while (i >= 0) { } Post-test: do { } while (value > 0) Διαφορά: Η post-test θα εκτελεστεί τουλάχιστον 1 φορά. Java: Η έκφραση ελέγχου πρέπει να είναι Boolean. Δεν έχει goto, οπότε δεν γίνεται «είσοδος» στο σώμα του βρόχου.

64 Δομές και Εντολές Ελέγχου Ροής (14) III. Μηχανισμοί Ελέγχου του Χρήστη Ορισμένες γλώσσες, όπως η Ada, έχουν βρόχους χωρίς έλεγχο της επανάληψης με μέτρηση ή λογικό: loop if sum >= 100 then exit; (ή exit when sum >= 100) end loop Υπό-Συνθήκη (conditional), ή Χωρίς Συνθήκη (unconditional) exit: exit [<label>] [when <συνθήκη>]

65 Δομές και Εντολές Ελέγχου Ροής (15) C, C++, Java: Unconditional unlabeled break C, C++, Java: Παράλειψη εντολών που ακολουθούν: continue Java: Unconditional labeled break και continue Παράδειγμα: while (sum < 1000) { getnext(value); if (value < 0) continue; } sum += value; (αν value < 0, στην αρχή του βρόχου) break; (δεν εκτελείται ποτέ ) (αν value 0, έξοδος από το βρόχο)

66 Δομές και Εντολές Ελέγχου Ροής (16) D. ΔΙΑΚΛΑΔΩΣΗ ΧΩΡΙΣ ΣΥΝΘΗΚΗ (unconditional branching) Εντολή goto : Μεγάλη συζήτηση για τη χρησιμότητά της. Η Java δεν έχει

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 4: Μεταβλητές, Εκφράσεις, Εντολές Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Μεταβλητές (1) Μεταβλητή: Αφαιρετική

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

Κεφάλαιο 4: Μεταβλητές, Εκφράσεις, Εντολές. Γιάννης Γαροφαλάκης ΤΜΗΥΠ - Πανεπιστήµιο Πατρών

Κεφάλαιο 4: Μεταβλητές, Εκφράσεις, Εντολές. Γιάννης Γαροφαλάκης ΤΜΗΥΠ - Πανεπιστήµιο Πατρών Κεφάλαιο 4: Μεταβλητές, Εκφράσεις, Εντολές Αρχές Γλωσσών Προγραµµατισµού και Μεταφραστών Μεταβλητές (1) Μεταβλητή: Αφαιρετική αναπαράσταση διεύθυνσης µνήµης, ή συλλογής διευθύνσεων µνήµης του Η/Υ. Αναγνωριστικόή

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Κεφάλαιο 7: Υποπρογράμματα Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ορισμός Αφαίρεση με χρήση υποπρογραμμάτων (subprogram abstraction) είναι η αντιστοίχιση ενός συνόλου εισόδων σε ένα σύνολο εξόδων

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

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

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

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

Κεφάλαιο 7: Υπορουτίνες

Κεφάλαιο 7: Υπορουτίνες Κεφάλαιο 7: Υπορουτίνες Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction) είναι η αντιστοίχιση ενός συνόλου εισόδων σε ένα σύνολο εξόδων που μπορεί

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

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

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

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

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

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

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές

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

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 7: Υπορουτίνες Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction)

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

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

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

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

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β.1 Τύποι Δεδομένων Όλες οι γλώσσες προγραμματισμού (πρέπει να) υποστηρίζουν πέντε (5) πρωταρχικούς τύπους δεδομένων: char (character) int (integer)

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

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

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης Στόχοι και αντικείμενο ενότητας Έλεγχος ροής προγράμματος (βλ. ενότητα #4) Δομή επανάληψης #5.. Εντολές Επανάληψης Προτάσεις επανάληψης Εντολές while, do while Εντολή for Περί βρόχων (loops) Τελεστές,

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

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

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

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

Η γλώσσα προγραμματισμού Strange

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Εκφράσεις και Λίγες Εντολές Οι εκφράσεις της C Τελεστές Απλές και σύνθετες εντολές Εντολές ελέγχου (επιλογής) Εισαγωγή σε

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

Στόχοι και αντικείμενο ενότητας. Βασικές κατασκευές ΓΠ. Έλεγχος ροής προγράμματος. #4.. Εντολές Επιλογής

Στόχοι και αντικείμενο ενότητας. Βασικές κατασκευές ΓΠ. Έλεγχος ροής προγράμματος. #4.. Εντολές Επιλογής Στόχοι και αντικείμενο ενότητας Βασικές κατασκευές Γλωσσών Προγραμματισμού (ΓΠ) Δομές ελέγχου ροής προγράμματος #4.. ντολές πιλογής Προτάσεις διακλάδωσης υπό συνθήκη ντολές if, if Φωλιασμένα (nested) if

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

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών Λειτουργικά Αριστείδης Ηλίας Συστήματα Ι Φ ρ ο ν τ ι σ τ ή ρ ι ο Shell Scripting Εισαγωγή Ένα shell script είναι μια λίστα εντολών που εκτελούνται ακολουθιακά Εκτελούνται ανάλογα με το κέλυφος και για

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

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

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

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

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

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

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

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Τελεστές - Κατηγορίες Εκφράσεις - Κατηγορίες Υπολογισμός εκφράσεων Προτάσεις - Κατηγορίες

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Hello World /* Αρχείο hello.c * Εµφανίζει στην οθόνη το * µήνυµα hello world */ #include

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 6: Εμβέλεια, Δέσμευση Μνήμης Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Ορισμοί (1) Εμβέλεια ενός ονόματος (Scope),

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 4ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΟΙ ΤΕΛΕΣΤΕΣ ΣΥΓΚΡΙΣΗΣ Με τους τελεστές σύγκρισης, συγκρίνουμε τις

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

procedure P ( < pars > ) < type> f( < pars > ) begin { < local vars > < local vars > < procedure body> < procedure body> end; }

procedure P ( < pars > ) < type> f( < pars > ) begin { < local vars > < local vars > < procedure body> < procedure body> end; } Σχεδίαση Γλωσσών & Μεταγλωττιστές Ενότητα 2: Εμβέλεια Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που

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

οµές Επιλογής Εντολές if και switch

οµές Επιλογής Εντολές if και switch οµές Επιλογής Εντολές if και switch οµή Ελέγχου Control Structure Ένας συνδυασµός ατοµικών εντολών σε µία λογική µονάδα, όπου υπάρχει µόνο ένα σηµείο εισόδου και ένα σηµείο εξόδου. οµή Ελέγχου για Επιλογή

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

Εισαγωγή στη γλώσσα προγραμματισμού C++

Εισαγωγή στη γλώσσα προγραμματισμού C++ Εισαγωγή στη γλώσσα προγραμματισμού C++ Περιβάλλον Εργασίας 2 Περιβάλλον Εργασίας 1. Χρήση απλού κειμενογράφου και Μεταγλωττιστή 2. Ολοκληρωμένα Περιβάλλοντα Εργασίας (Integrated Development Environments)

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

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD) Η Γλώσσα Pascal Χαρακτηριστικά Τύποι Δεδοµένων Δοµή προγράµµατος 1. Βασικές έννοιες Χαρακτηριστικά της γλώσσας Pascal Γλώσσα προγραµµατισµού Συντακτικό Σηµασιολογία Αλφάβητο της γλώσσας Pascal (Σύνολο

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

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

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Έλεγχος ροής Δομή επιλογής (if, switch) Δομές επανάληψης (while, do-while, for) Διακλάδωση

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL )Βασικά στοιχεία Αναγνωριστικά (Identifiers) Τα αναγνωριστικά είναι ονόματα με τα οποία μπορούμε να αναφερόμαστε σε αποθηκευμένες

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

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Μάθημα 7 - Υποπρογράμματα Εργαστήριο 11 Ο TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Βασικές Έννοιες: Υποπρόγραμμα, Ανάλυση προβλήματος, top down σχεδίαση, Συνάρτηση, Διαδικασία, Παράμετρος, Κλήση συνάρτησης, Μετάβαση

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

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor ΕισαγωγήστουςΗ/Υ PHP Hypertext Preprocessor ΤιείναιηPHP; PHP είναιµία server-based scripting language σχεδιασµένη ειδικά για το web. Σε µία html σελίδα µπορούµε να ενσωµατώσουµε php κώδικα που εκτελείται

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

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13) Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις Επανάληψη για την ενδιάμεση εξέταση (Διάλεξη 13) 13-1 Πρόβλημα 1 Γράψετε τον ορισμό μίας συνάρτησης η οποία υπολογίζει το μέγιστο 2 ακεραίων αριθμών και

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

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

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

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

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Παύλος Εφραιμίδης 1 Βασικά Στοιχεία της γλώσσας Τύποι Δεδομένων Η έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) iti τύπους δεδομένων δδ αναφορές 2 Βασικά Στοιχεία της

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

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

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

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

Δομές ελέγχου ροής προγράμματος

Δομές ελέγχου ροής προγράμματος Δομές ελέγχου ροής προγράμματος Υπάρχουν δύο είδη δομών ελέγχου ροής (control flow): Οι δομές επιλογής και Οι δομές επανάληψης Δομές ελέγχου ροής προγράμματος Είδος δομής Δομές επιλογής Δομή ελέγχου ροής

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης Εντολές Ελέγχου 2 Γενικά Εντολές λήψης αποφάσεων Επιτρέπουν στο πρόγραμμα να εκτελεί διαφορετικές

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

Προγραμματισμός PASCAL

Προγραμματισμός PASCAL Προγραμματισμός PASCAL 1 PASCAL Η PASCAL σχεδιάστηκε από τον Worth το 1968 στη Ζυρίχη, αρχικά σαν εργαλείο για τη διδασκαλία προγραμματισμού. Είναι γλώσσα για σειριακό προγραμματισμό. 2 Απλή και εύκολη

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

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου Σκοπός και περίγραμμα της Ενότητας 4 Σκοπός της παρουσίασης Να μελετήσουμε τις συναρτήσεις που ελέγχουν την ροή και την εκτέλεση ενός προγράμματος Σύνοψη

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

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή Αντίρριο, 05/04/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» To δεύτερο μέρος της εργασίας έχει ως στόχο την ανάπτυξη του συντακτικού αναλυτή με χρήση του bison / byacc. Στο

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

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

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

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

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

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

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γιώργος Δημητρίου Μάθημα 8 ο Μετάφραση Οδηγούμενη από τη Σύνταξη Ο ΣΑ καλεί τις ρουτίνες που εκτελούν τη σημασιολογική ανάλυση και παράγουν τον ενδιάμεσο κώδικα Σημασιολογικές πληροφορίες μπορούν να μεταφέρονται

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

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

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

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

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ Λογικός τύπος ( ) Ο τύπος είναι κατάλληλoς για την αναπαράσταση ποσοτήτων που μπορούν να πάρουν δύο μόνο τιμές (π.χ. ναι/όχι, αληθές/ψευδές, ). Τιμές ή Δήλωση Εκχώρηση Ισοδυναμία με ακέραιους

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

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8) Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις (Διάλεξη 8) 8-1 Τι θα δούμε σήμερα Η εντολή if else Η εντολή if else ιf - -else H εντολή switch Λογικές παραστάσεις Σχεσιακοί

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

Η γλώσσα προγραμματισμού EEL

Η γλώσσα προγραμματισμού EEL Προγραμματιστική άσκηση: Η γλώσσα προγραμματισμού EEL Η EEL (Early Experimental Language) είναι μια μικρή γλώσσα προγραμματισμού. Παρόλο που οι προγραμματιστικές της ικανότητες είναι μικρές, η εκπαιδευτική

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 ❶ Προετοιµασία για το 1 ο Εργαστήριο

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Η ΓΛΩΣΣΑ PASCAL ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Απλοί ή στοιχειώδης Τ.Δ. Ακέραιος τύπος Πραγματικός τύπος Λογικός τύπος Χαρακτήρας Σύνθετοι Τ.Δ. Αλφαριθμητικός 1. Ακέραιος (integer) Εύρος: -32768 έως 32767 Δήλωση

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

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

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

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

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

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

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές Μεταβλητές 2 Δήλωση μεταβλητών Η δήλωση (declaration) πληροφορεί το μεταγλωττιστή για το όνομα και

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

Μεταγλωττιστές. Σημασιολογική Ανάλυση. Εργαστήριο 9. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι

Μεταγλωττιστές. Σημασιολογική Ανάλυση. Εργαστήριο 9. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι Μεταγλωττιστές Εργαστήριο 9 Σημασιολογική Ανάλυση Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2016-2017 Σύνταξη και Σημασιολογία Σε οποιαδήποτε γλώσσα (προγραμματισμού ή μη) υπάρχουν δύο βασικές

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

Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές»

Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» Η εργασία έχει ως στόχο τον σχεδιασμό και την υλοποίηση ενός μεταγλωττιστή για την γλώσσα Ciscal, χρησιμοποιώντας

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

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

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες: Εργαστήριο Java Διδάσκουσα: Πρέντζα Ανδριάνα aprentza@unipi.gr Εργαστηριακοί Συνεργάτες: Γεωργιοπούλου Ρούλα Λύβας Χρήστος roulageorio@ssl-unipi.gr clyvas@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες

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

Υπολογισμός - Εντολές Ελέγχου

Υπολογισμός - Εντολές Ελέγχου Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Ελέγχου ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

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

a = 10; a = k; int a,b,c; a = b = c = 10;

a = 10; a = k; int a,b,c; a = b = c = 10; C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ 1. Ποιες από τις παρακάτω εντολές είναι σωστές; α) if A + B

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

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) Γιάννης Σαμωνάκης 1 Περιεχόμενα Τι είναι η PHP Που μπορεί να χρησιμοποιηθεί

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

Pascal. 15 Νοεμβρίου 2011

Pascal. 15 Νοεμβρίου 2011 Pascal 15 Νοεμβρίου 011 1 Procedures σε Pascal Στην Pascal μπορούμε να ορίσουμε διαδικασίες (procedures). Αυτές είναι ομάδες εντολών οι οποίες έχουν ένα όνομα. Γράφοντας το όνομα μιας διαδικασίας μπορούμε

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Πέμπτη (5 η ) τρίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/

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

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2 Εισαγωγή στην C Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Σύνταξη και Σηµασιολογία της C Σχολιασµός Μεταβλητές / Σταθερές Τύποι εδοµένων και Τελεστές Βιβλίο µαθήµατος: Chapter 2,, Sec.

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

Βασικές Αρχές Προγραμματισμού

Βασικές Αρχές Προγραμματισμού Βασικές Αρχές Προγραμματισμού Κεφάλαιο 2 ΗγλώσσαC Ιστορική Αναδρομή ΗανάπτυξητηςC ξεκίνησε το 1972 στα εργαστήρια Bell από τον Dennis Ritchie με σκοπό την ανάπτυξη ενός λειτουργικού συστήματος για τον

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

Διάλεξη 6: Δείκτες και Πίνακες

Διάλεξη 6: Δείκτες και Πίνακες Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 6: Δείκτες και Πίνακες (Κεφάλαιο 12, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 6-1 Περιεχόμενο

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

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

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 ΙΣΤΟΡΙΚΑ Παρουσιάστηκε το 1970 από το Niklaus Wirth Προγενέστερη γλώσσα ήταν η Algol 60 Είναι δομημένη γλώσσα προγραμματισμού υψηλού

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

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

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

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

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

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

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

Προγραμματισμό για ΗΜΥ

Προγραμματισμό για ΗΜΥ ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 3 Εισαγωγή στην C Θέματα ιάλεξης Σύνταξη και Σημασιολογία

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

3. Εκφράσεις και έλεγχος ροής

3. Εκφράσεις και έλεγχος ροής 3. Εκφράσεις και έλεγχος ροής Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να διακρίνετε ανάμεσα σε μεταβλητές μέλη και αυτόματες μεταβλητές Να περιγράφετε την αρχικοποίηση των μεταβλητών μελών Να αναγνωρίζετε

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις της C Τα Λοιπά Στοίβα και μηχανισμός κλήσης Αναδρομικές συναρτήσεις Στατικές μεταβλητές Άλλα θέματα Μηχανισμός

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

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Μεταγλωττιστής Πρόγραμμα Διαβάζει προγράμματα δεδομένης γλώσσας (πηγαία γλώσσα) και τα μετατρέπει

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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 Τι συμβαίνει όταν στην ίδια έκφραση υπάρχει πάνω από

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

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

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

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

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

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

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

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

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

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

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

ιαδικαστικός Προγραμματισμός ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ιαδικαστικός Προγραμματισμός Α Εξάμηνο Μάθημα 2 ο : Εντολές ελέγχου > εντολές υπό συνθήκη Στόχοι μαθήματος Να κατανοήσετε τη σχέση μεταξύ εντολών και παραστάσεων. Να αναγνωρίζετε

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

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL ΓΕΝΙΚΗ ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ Program Ονομα_προγραμματος; «πρόγραμμα» Πρόγραμμα 1 Program Lesson1_Program1; Write('Hello World!!!'); {σχόλια} Επεξήγηση Προγράμματος Program Lesson1_Program1;

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

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

Προγραμματισμός Ι. Θεματική ενότητα 4: Έλεγχος ροής Προτάσεις υπό συνθήκη διακλάδωσης

Προγραμματισμός Ι. Θεματική ενότητα 4: Έλεγχος ροής Προτάσεις υπό συνθήκη διακλάδωσης Θεματική ενότητα 4: Έλεγχος ροής Προτάσεις υπό συνθήκη διακλάδωσης Προτάσεις ελέγχου ροής Ο πιο συνηθισμένος τρόπος εκτέλεσης είναι ο ακολουθιακός: δύο ή περισσότερες προτάσεις βρίσκονται διατεταγμένες

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011 Τελεστής σύντοµης ανάθεσης Τελεστής σύντοµης ανάθεσης (shorthand assignment operator) µεταβλητή = µεταβλητή τελεστής

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Μεταβλητές-Σταθερές-Παράμετροι Τα στοιχεία

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

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY Mία γλώσσα προγραμματισμού συνίσταται από ένα περιορισμένο υποσύνολο της αγγλικής γλώσσας και το οποίο αποτελείται από εκφράσεις σαφώς ορισμένες, χωρίς παρερμηνεία.

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

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 5 Δομές Ελέγχου Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομές Ελέγχου Οι Boehm και Jacopini απέδειξαν ότι οποιοσδήποτε αλγόριθμος

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1

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

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός

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

Εντολές επιλογής Επαναλήψεις (if, switch, while)

Εντολές επιλογής Επαναλήψεις (if, switch, while) Εντολές επιλογής Επαναλήψεις (if, switch, while) Οι σημειώσεις αυτές έχουν σαν στόχο την μάθηση εντολών επιλογής (if, switch, while) που ελέγχουν τη ροή εκτέλεσης ενός προγράμματος. Πρώτα όμως, είναι αναγκαίο

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

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

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

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