Γλώσσες Προγραµµατισµού

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

Download "Γλώσσες Προγραµµατισµού"

Transcript

1 Γλώσσες Προγραµµατισµού

2

3 ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα EΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Τόµος ' Γλώσσες Προγραµµατισµού ΚΛΕΑΝΘΗΣ ΘΡΑΜΠΟΥΛΙ ΗΣ Επίκουρος Καθηγητής τµήµατος Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών Πανεπιστηµίου Πατρών ΠATPA 2000

4 ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Τόµος ' Γλώσσες Προγραµµατισµού Συγγραφή ΚΛΕΑΝΘΗΣ ΘΡΑΜΠΟΥΛΙ ΗΣ Επίκουρος Καθηγητής τµήµατος Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών Πανεπιστηµίου Πατρών Κριτική Ανάγνωση ΕΛΠΙ Α ΚΕΡΑΥΝΟY Καθηγήτρια Τµήµατος Πληροφορικής Πανεπιστηµίου Κύπρου Ακαδηµαϊκός Υπεύθυνος για την επιστηµονική επιµέλεια του τόµου ΠANAΓIΩTHΣ ΠINTEΛAΣ Καθηγητής Tµήµατος Mαθηµατικών Πανεπιστηµίου Πατρών Επιµέλεια στη µέθοδο της εκπαίδευσης από απόσταση ΓΕΡΑΣΙΜΟΣ ΚΟΥΣΤΟΥΡΑΚΗΣ Γλωσσική Επιµέλεια IΩANNHΣ ΘEOΦIΛAΣ Τεχνική Επιµέλεια ΕΣΠΙ ΕΚ ΟΤΙΚΗ Ε.Π.Ε. Καλλιτεχνική Επιµέλεια Σελιδοποίηση TYPORAMA Συντονισµός ανάπτυξης εκπαιδευτικού υλικού και γενική επιµέλεια των εκδόσεων ΟΜΑ Α ΕΚΤΕΛΕΣΗΣ ΕΡΓΟΥ ΕΑΠ / ISBN: Kωδικός Έκδοσης: ΠΛH 10/4 Copyright 2000 για την Ελλάδα και όλο τον κόσµο ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Οδός Παπαφλέσσα & Υψηλάντη, Πάτρα Τηλ: (0610) , Φαξ: (0610) Σύµφωνα µε το Ν. 2121/1993, απαγορεύεται η συνολική ή αποσπασµατική αναδηµοσίευση του βιβλίου αυτού ή η αναπαραγωγή του µε οποιοδήποτε µέσο χωρίς την άδεια του εκδότη.

5 ÂÚÈ fiìâó K º π 1 EÈÛ ÁˆÁ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Η γλώσσα προγραµµατισµού στη διαδικασία ανάπτυξης συστηµάτων λογισµικού Σκοπός, Προσδοκώµενα αποτελέσµατα, Eισαγωγικές παρατηρήσεις Τεχνολογία Λογισµικού Ιστορική αναδροµή στη διαδικασία ανάπτυξης λογισµικού Η διαδικασία ανάπτυξης λογισµικού ως διαδικασία παραγωγής µοντέλων Η διεργασία σαν βασικό δοµικό στοιχείο στη διαδικασία ανάπτυξης λογισµικού Η φάση της υλοποίησης Σκοπός, Προσδοκώµενα αποτελέσµατα, Eισαγωγικές παρατηρήσεις Τα βήµατα της φάσης της υλοποίησης Συγγραφή πηγαίου κώδικα Μεταγλώττιση Σύνδεση ιαδικασία ανάπτυξης παραδειγµάτων Μορφές προγραµµατισµού και ιστορία γλωσσών Σκοπός, Προσδοκώµενα αποτελέσµατα, Μορφές προγραµµατισµού Ιστορία των γλωσσών προστακτικού προγραµµατισµού Ιστορία της C Γιατί C; Σύνοψη Bιβλιογραφία κεφαλαίου... 34

6 6 ø E PO PAMMATI MOY K º π 2 ÓÙ ÎÙÈÎfi ÏÒÛÛ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Tι είναι το αλφάβητο µιας γλώσσας προγραµµατισµού; H έννοια του συντακτικού Tο λεξιλόγιο της γλώσσας εσµευµένες λέξεις Λέξεις κλειδιά Aναγνωριστές Συντακτικά Σηµασιολογικά λάθη Σύνοψη Bιβλιογραφία κεφαλαίου K º π 3 MÂÙ ÏËÙ Ù ıâú T appleôè Â ÔÌ ÓˆÓ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Eισαγωγή στις έννοιες της µεταβλητής, της σταθερής και του τύπου δεδοµένων Σκοπός, Προσδοκώµενα αποτελέσµατα, Eισαγωγικές παρατηρήσεις Τι είναι µεταβλητή; ήλωση µεταβλητής Τι είναι οι τύποι δεδοµένων; ήλωση µεταβλητών στη C Μεταβλητές που δεν αλλάζουν τιµή Η έννοια της σταθερής Oι τύποι δεδοµένων στη γλώσσα C Σκοπός, Προσδοκώµενα αποτελέσµατα, Eισαγωγικές παρατηρήσεις Τύπος χαρακτήρα Το πρώτο πρόγραµµά σας Τύπος ακεραίου Τύποι πραγµατικών αριθµών Σύνοψη Bιβλιογραφία κεφαλαίου... 67

7 EPIEXOMENA 7 K º π 4 Ó ÎÂ Â ÎÙÂ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Tύπος πίνακα ήλωση Πίνακα Αναφορά στοιχείου Πίνακα Το αλφαριθµητικό σαν πίνακας χαρακτήρων Αλφαριθµητική σταθερά Πολυδιάστατοι πίνακες O τύπος του δείκτη ήλωση δείκτη Ανάθεση τιµής σε δείκτη Τελεστές που έχουν σχέση µε δείκτες Σχέση δεικτών µε πίνακες Σύνοψη Bιβλιογραφία κεφαλαίου K º π 5 TÂÏÂÛÙ EÎÊÚ ÛÂÈ ÚÔÙ ÛÂÈ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις O τελεστής στη γλώσσα προγραµµατισµού Έκφραση Συµβολισµοί στο σχηµατισµό εκφράσεων Κατηγορίες εκφράσεων της C Υπολογισµός τιµής έκφρασης ένδρο αφηρηµένης σύνταξης Mετατροπές τύπων Υπονοούµενες µετατροπές Ρητές µετατροπές Πρόταση Σύνθετη πρόταση Προτάσεις Προεπεξεργαστή Oι τελεστές της C... 93

8 8 ø E PO PAMMATI MOY Αριθµητικοί τελεστές Τελεστές ανάθεσης Συσχετιστικοί τελεστές Λογικοί τελεστές &&, και! Τελεστές Μνήµης Ο τελεστής µετατροπής τύπου Τελεστής sizeof Τελεστές διαχείρισης bits Υποθετικός Τελεστής Σύνοψη Bιβλιογραφία κεφαλαίου K º π 6 AÊ ÈÚÂÙÈÎfiÙËÙ ÛÙÈ ÈÂÚÁ Û Â Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Aφαιρετικότητα στις διεργασίες Aρθρωτός σχεδιασµός Συναρτήσεις ήλωση συνάρτησης Κλήση συνάρτησης Ορισµός συνάρτησης Επεξήγηση του µηχανισµού κλήσης συνάρτησης H βασική βιβλιοθήκη της C Σύνοψη Bιβλιογραφία κεφαλαίου K º π 7 ÚÔÙ ÛÂÈ EÏ Á Ô PÔ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις H διαµόρφωση της ροής ελέγχου προγράµµατος οµηµένος προγραµµατισµός Προτάσεις διακλάδωσης υπό συνθήκης Προτάσεις επανάληψης Προτάσεις διακλάδωσης χωρίς συνθήκη

9 EPIEXOMENA Προτάσεις ελέγχου ροής στη C Eισαγωγικές παρατηρήσεις Πρόταση if Η πρόταση switch Πρόταση επανάληψης while Πρόταση επανάληψης do while Πρόταση επανάληψης for Επιλογή βρόχου Ένθετοι βρόχοι Προτάσεις break, continue και goto Σύνοψη Bιβλιογραφία κεφαλαίου K º π 8 ÚÔ ˆÚËÌ Ó Ì Ù Ó ÚÙ ÛÂˆÓ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Eµβέλεια ονοµάτων ιάρκεια µεταβλητών Εµβέλεια ονοµάτων ιάρκεια µεταβλητών Οργάνωση προγράµµατος Mεταβίβαση παραµέτρων Aναδροµικότητα Σύνοψη Bιβλιογραφία κεφαλαίου K º π 9 AÊ ÈÚÂÙÈÎfiÙËÙ ÛÙ Â ÔÌ Ó Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις H έννοια της δοµής Ορισµός δοµής ήλωση µεταβλητών Απόδοση αρχικών τιµών Αναφορά στα µέλη δοµής Ένθεση δοµών Πέρασµα δοµής σε συνάρτηση

10 10 ø E PO PAMMATI MOY 9.8 Πίνακες δοµών είκτες σε δοµές Σύνοψη Bιβλιογραφία κεφαλαίου K º π 10 H ÏÒÛÛ ÚÔÁÚ ÌÌ ÙÈÛÌÔ Pascal Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Γενικά Τύποι δεδοµένων Μορφή προγράµµατος Pascal Αφαιρετικότητα στις διεργασίες ιαµόρφωση της ροής εκτέλεσης προγράµµατος Σύνοψη Bιβλιογραφία κεφαλαίου Aπαντήσεις ασκήσεων αυτοαξιολόγησης Aπαντήσεις ραστηριοτήτων Bιβλιογραφία Γλωσσάρι όρων

11 EÈÛ ÁˆÁ ÎÔapplefi Σκοπός του κεφαλαίου είναι να προσδιορίσει το ρόλο των γλωσσών προγραµµατισµού στη διαδικασία ανάπτυξης λογισµικού και να κάνει µια σύντο- µη αναφορά, αφενός µεν στην εξέλιξη των γλωσσών προγραµµατισµού, αφετέρου δε στις σηµαντικότερες κατηγορίες στις οποίες αυτές κατατάσσονται. 1 º π ÚÔÛ ÔÎÒÌÂÓ appleôùâï ÛÌ Ù Όταν θα έχετε µελετήσει το κεφάλαιο αυτό θα µπορείτε να: περιγράψετε µε δικά σας λόγια τη διαδικασία ανάπτυξης λογισµικού αναφέροντας τις κυριότερες φάσεις της, προσδιορίσετε το ρόλο που διαδραµατίζει µια γλώσσα προγραµµατισµού στη διαδικασία αυτή, αιτιολογήσετε γιατί η φάση της υλοποίησης δεν είναι αρκετή για την ανάπτυξη ενός συστήµατος λογισµικού, χρησιµοποιήσετε τα κατάλληλα εργαλεία για τη συγγραφή πηγαίου κώδικα και την παραγωγή του αντίστοιχου εκτελέσιµου. ŒÓÓÔÈ ÎÏÂÈ È κύκλος ζωής λογισµικού µοντέλο ζωής λογισµικού µεθοδολογία φάση ανάλυσης φάση σχεδιασµού φάση υλοποίησης µεταγλώττιση πηγαίος κώδικας εκτελέσιµος κώδικας µοντέλο υλοποίησης µορφή προγραµµατισµού προστακτικός προγραµµατισµός ÈÛ ÁˆÁÈÎ Ú ÙËÚ ÛÂÈ Το κεφάλαιο αυτό περιλαµβάνει τρεις ενότητες. Στην πρώτη, εισάγονται βασικές έννοιες της διαδικασίας ανάπτυξης συστηµάτων λογισµικού, όπως τις ορίζει ο κλάδος της επιστήµης που υποστηρίζει τη διαδικασία αυτή, και προσδιορίζεται ο ρόλος της γλώσσας προγραµµατισµού. Στη δεύτερη, περιγράφε-

12 12 KEºA AIO 1: EI A ø H ται η διαδικασία ανάπτυξης προγράµµατος, µε ταυτόχρονη αναφορά στα εργαλεία που την υποστηρίζουν. Το κεφάλαιο ολοκληρώνεται µε µια σύντο- µη αναφορά στην ιστορία των γλωσσών προγραµµατισµού και στις διάφορες µορφές προγραµµατισµού που αυτές υποστηρίζουν.

13 ø ƒ ƒ ªª π ª À π π π À À ª ø π ªπ À ÁÏÒÛÛ appleúôáú ÌÌ ÙÈÛÌÔ ÛÙË È ÈÎ Û Ó appleù ÍË Û ÛÙËÌ ÙˆÓ ÏÔÁÈÛÌÈÎÔ ÎÔapplefi Σκοπός της ενότητας είναι να περιγράψει εν συντοµία βασικές έννοιες της διαδικασίας ανάπτυξης συστήµατος λογισµικού και να κάνει σαφή το ρόλο που οι γλώσσες προγραµµατισµού διαδραµατίζουν στη διαδικασία αυτή. ÚÔÛ ÔÎÒÌÂÓ appleôùâï ÛÌ Ù Όταν θα έχετε µελετήσει την ενότητα θα µπορείτε να: αναφέρετε 3 τουλάχιστον από τις φάσεις της διαδικασίας ανάπτυξης λογισµικού, αναφέρετε ποιος είναι ο στόχος των µοντέλων του κύκλου ζωής λογισµικού, αναφέρετε ποιος είναι ο στόχος των µεθοδολογιών, περιγράψετε µε µια φράση τι είναι γλώσσα προγραµµατισµού, δώσετε 6 τουλάχιστον παραδείγµατα διεργασιών, δώσετε τον ορισµό της υπολογιστικής διεργασίας, δώσετε 4 τουλάχιστον παραδείγµατα διεργασιών που µπορούν να αυτο- µατοποιηθούν. ÈÛ ÁˆÁÈÎ Ú ÙËÚ ÛÂÈ Καθηµερινά, η µία µετά την άλλη οι ανθρώπινες δραστηριότητες αυτοµατοποιούνται µε τη χρήση υπολογιστών. Οι υπολογιστές αυτοί, γενικού ή ειδικού σκοπού, αυτοµατοποιούν πλήρως ή κατά µέρος, όλο και περισσότερες εργασίες του ανθρώπου. Απλές εργασίες, όπως συγγραφή κειµένου, έκδοση κοινοχρήστων αλλά και πιο σύνθετες, όπως πρόβλεψη καιρού και έλεγχος τηλεπικοινωνιακών κέντρων, υποστηρίζονται πλέον από υπολογιστές µε τα κατάλληλα συστήµατα λογισµικού. Επιχειρήσεις, αλλά ακόµη και εθνικά αµυντικά συστή- µατα, βασίζουν την ύπαρξή τους σε ειδικά συστήµατα λογισµικού, απαιτώντας από αυτά αυξηµένη αξιοπιστία. Συστήµατα λογισµικού διαδραµατίζουν βασικό ρόλο στην εξέλιξη όλων σχεδόν των κλάδων της επιστήµης. Το µέγεθος και η πολυπλοκότητα των σηµερινών συστηµάτων µεγαλώνει µέρα µε τη µέρα και αντίστοιχα και οι απαιτήσεις από τη διαδικασία ανάπτυξής τους. Η ανάπτυξη συστηµάτων λογισµικού έχει γίνει πλέον µια πολύ σύνθετη διαδικασία.

14 14 KEºA AIO 1: EI A ø H Μπορούµε να παραλληλίσουµε τη διαδικασία ανάπτυξης προϊόντων λογισµικού µε αυτήν της ανέγερσης κτιρίων. Για την ανέγερση ενός µικρού κτιρίου, είναι πιθανόν, να µην ακολουθηθούν αυστηρές διαδικασίες και να µην εµπλακούν µηχανικοί, µε αµφίβολα όµως σε κάθε περίπτωση, αποτελέσµατα. Όσο όµως το µέγεθος του κτιρίου γίνεται µεγαλύτερο, τόσο πιο επιτακτική είναι η ανάγκη εµπλοκής µηχανικών στη διαδικασία ανέγερσής του. Η δηµιουργία ενός συνόλου σχεδίων και προγραµµατισµού δουλειάς πριν την έναρξη της κατασκευής, είναι άκρως απαραίτητη. εν µπορεί να διανοηθεί κανείς, την κατασκευή των σύγχρονων σηµερινών κτισµάτων, χωρίς την ύπαρξη µελέτης αρχιτεκτονικών, στατικών, θερµοµόνωσης και, γιατί όχι, ακόµη και πρωτοτύπου (µακέτας). Όλα αυτά, έχουν τη δική τους βαρύτητα και θέση στη διαδικασία της ανέγερσης του κτιρίου. Αντίστοιχα, για την παραγωγή ενός σύγχρονου συστήµατος λογισµικού, είναι απαραίτητη η υιοθέτηση σαφώς ορισµένων βηµάτων, που θα επιτρέπουν την ταυτόχρονη ικανοποίηση της πληθώρας των απαιτήσεων, που τα σύγχρονα συστήµατα έχουν. Οι απαιτήσεις αυτές, που τις περισσότερες φορές είναι αντιµαχόµενες µεταξύ τους, καθιστούν το έργο του δηµιουργού λογισµικού εξαιρετικά σύνθετο. Στην προσπάθειά του αυτή, έρχεται να τον στηρίξει ο κλάδος της επιστήµης του Μηχανικού Λογισµικού, που είναι γνωστός ως Τεχνολογία Λογισµικού [1] (Software Engineering). [1] Xρησιµοποιείται ο όρος Τεχνολογία Λογισµικού, γιατί έχει επικρατήσει στην ελληνική βιβλιογραφία παρότι δεν αποδίδει σωστά τον αντίστοιχο αγγλικό όρο. Ένας πιο δόκι- µος όρος είναι «Μηχανίκευση ή Μηχανιστική Λογισµικού».

15 ø ƒ ƒ ªª π ª À π π π À À ª ø π ªπ À  ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ Η επιστήµη της Τεχνολογίας Λογισµικού είναι η εφαρµογή επιστηµονικών αρχών για το µεθοδικό µετασχηµατισµό ενός προβλήµατος σε µια λειτουργούσα λύση λογισµικού και για τη µετέπειτα συντήρησή του για το διάστη- µα που αυτό είναι χρήσιµο. Η επιστήµη αυτή, της οποίας το αντικείµενο θα µελετήσετε σε βάθος στην θεµατική ενότητα 4.1 «Tεχνολογία Λογισµικού Ι», ορίζει, αφενός µεν ένα σύνολο από µοντέλα κύκλου ζωής λογισµικού (Software life cycle models), αφετέρου δε ένα σύνολο από µεθοδολογίες. Τα µοντέλα ζωής λογισµικού, µεταξύ των οποίων το µοντέλο καταρράκτη (waterfall model) [Boehm 76] και το σπειροειδές µοντέλο (spiral model) [Boehm 88], περιγράφουν τον κύκλο ζωής λογισµικού, τη διαδικασία δηλαδή, η οποία αρχίζει από τη σύλληψη της ιδέας και τελειώνει όταν το προϊόν δεν είναι πλέον διαθέσιµο για χρήση. Οι τρεις πρώτες φάσεις, όπως τις ορίζει η πλειοψηφία των µοντέλων είναι οι εξής: Φάση Ανάλυσης (Analysis), η οποία περιλαµβάνει την κατανόηση του προβλήµατος και καταγραφή των απαιτήσεων από το σύστηµα. Φάση Σχεδιασµού (Design), η οποία περιλαµβάνει το σχεδιασµό µιας λειτουργούσας λύσης. Φάση Υλοποίησης (Implementation), η οποία περιλαµβάνει την ανάπτυξη του εκτελέσιµου κώδικα. Αντίθετα, µια µεθοδολογία ορίζει τα επιµέρους βήµατα που πρέπει να εκτελέσει ο δηµιουργός λογισµικού σε µια συγκεκριµένη συνήθως φάση της διαδικασίας ανάπτυξης. Για παράδειγµα, η µεθοδολογία της οµηµένης Ανάλυσης (Structured Analysis/SA) ορίζει τον τρόπο µε τον οποίο προσεγγίζουµε τη φάση της κατανόησης και καταγραφής απαιτήσεων του συστήµατος πûùôúèî Ó ÚÔÌ ÛÙË È ÈÎ Û Ó appleù ÍË ÏÔÁÈÛÌÈÎÔ Η διαδικασία που οι δηµιουργοί λογισµικού ακολουθούσαν τα πρώτα χρόνια της εµφάνισης των υπολογιστών, χαρακτηρίζεται πλήρως από το όνοµα code and fix που αποδόθηκε στο µοντέλο το οποίο αργότερα την αναπαράστησε. Η διαδικασία χαρακτηρίζεται από δύο βασικά βήµατα: συγγραφή κώδικα και διόρθωση των προβληµάτων του κώδικα. Καµία ενέργεια δε γινόταν για απαιτήσεις, σχεδιασµό, έλεγχο και συντήρη-

16 16 KEºA AIO 1: EI A ø H ση, µε αποτέλεσµα σύντοµα να γίνουν εµφανή τα προβλήµατα της διαδικασίας. Το σηµαντικότερο από αυτά, ήταν ότι µετά από ένα αριθµό διορθώσεων (επεµβάσεων) στον κώδικα, αυτός έχανε κάθε µορφή δόµησης µε απαγορευτικά πλέον κόστη συντήρησης. Η διαπίστωση του προβλήµατος αυτού οδήγησε στην υιοθέτηση µίας φάσης πριν την κωδικοποίηση η οποία ονο- µάστηκε φάση σχεδιασµού. Στη συνέχεια, διαπιστώθηκε ότι ακόµη και καλοσχεδιασµένα συστήµατα ήταν πολλές φορές άχρηστα, γιατί δεν κάλυπταν τις απαιτήσεις του χρήστη. Αυτό οδήγησε στην υιοθέτηση µιας επιπλέον φάσης πριν από την φάση του σχεδιασµού, της φάσης της ανάλυσης. Το αποτέλεσµα ήταν περί το 1959 να διακριθούν οι παραπάνω φάσεις, δια- µορφώνοντας το κατά στάδια µοντέλο (stage wise), από το οποίο προήλθε το µοντέλο του καταρράκτη (waterfall model). Παράλληλα, διαπιστώθηκε ότι το κόστος διόρθωσης του κώδικα ήταν πολύ µεγάλο, εξαιτίας της µηδαµινής προετοιµασίας για έλεγχο και τροποποιήσεις. Η διαπίστωση αυτή, οδήγησε σε αναγνώριση της ανάγκης για προετοιµασία για τις ενέργειες αυτές πριν από τη συγγραφή κώδικα È ÈÎ Û Ó appleù ÍË ÏÔÁÈÛÌÈÎÔ Û Ó È ÈÎ Û apple Ú - ÁˆÁ ÌÔÓÙ ÏˆÓ Τα παραπάνω οδηγούν στην αναπαράσταση της διαδικασίας ανάπτυξης λογισµικού όπως αυτή δίνεται στο σχήµα 1.1. Σύµφωνα µε την αναπαράσταση αυτή, η διαδικασία ξεκινά από το ονοµαζόµενο ιδεατό µοντέλο (conceptual model) και ολοκληρώνεται µε τη δηµιουργία του µοντέλου υλοποίησης (implementation model). Το ιδεατό µοντέλο, είναι αυτό που έχει στο µυαλό του ο χρήστης πριν αρχίσει τη διαδικασία ανάπτυξης του συστήµατος, ενώ το µοντέλο υλοποίησης είναι σε µορφή που µπορεί να εκτελέσει ο υπολογιστής και αυτή δεν είναι άλλη από την γλώσσα µηχανής (machine language) [1]. Η µετάβαση από το ιδεατό µοντέλο στο µοντέλο υλοποίησης γίνεται σταδιακά και µε την παρεµβολή δύο άλλων µοντέλων: του µοντέλου ανάλυσης και του µοντέλου σχεδιασµού. Το µοντέλο σχεδιασµού, µεταξύ των άλλων, ορίζει επακριβώς τις επιµέρους υπολογιστικές διεργασίες που πρέπει να εκτελέσει ο υπολογιστής για την ικανοποίηση των καταγεγραµµένων απαιτήσεων του χρήστη, καθώς και τα επί µέρους βήµατα της κάθε διεργασίας [2]. Μπορούµε να πούµε ότι είναι µια [1] Mια σηµειογραφία που άµεσα κατανοεί ο υπολογιστής. [2] H διεργασία αποτελεί το βασικό δοµικό στοιχείο των παραδοσιακών µεθοδολογιών ανάπτυξης συστηµάτων λογισµικού.

17 ø ƒ ƒ ªª π ª À π π π À À ª ø π ªπ À Iδεατό µοντέλο 2. Mοντέλο ανάλυσης 6 Get_Input Error_Message Input Kind_Of_Input Error_Message Aνάλυση Number 3 Process_Inputs Activate_Display_Result 4 Display_Result Number Number Number Output Error_Message 2 Store_Number Number Number 7 Get_Stored_Number Numbers_To_Be_Processed Error_Message Σχεδιασµός Πολωνική αριθµοµηχανή «Mήνυµα λάθους» type ώσε αποτέλεσµα Calculator.exe Aποθήκευσε τελεστέο s num num s Kάνε πράξεις num «αποτέλεσµα» Yλοποίηση s atof() push() pop() Πρόσθεσε Aφαίρεσε Πολλαπλασίασε ιαίρεσε 1. Mοντέλο υλοποίησης 3. Mοντέλο σχεδιασµού περιγραφή του τρόπου επίλυσης ενός προβλήµατος [1] ή εκτέλεσης µιας εργασίας. Για την περιγραφή των επί µέρους βηµάτων της κάθε διεργασίας, η επιστήµη του Software Engineering προτείνει ένα σύνολο από τεχνικές, µεταξύ των οποίων τα δοµηµένα αγγλικά (structured English) ή τα αντίστοιχα δοµηµένα ελληνικά, που εµείς θα χρησιµοποιήσουµε στα πλαίσια αυτού του βιβλίου, τα διαγράµµατα ροής (flow charts) καθώς και άλλες τεχνικές που θα γνωρίσετε στην θεµατική ενότητα 4.1. Τέλος, η φάση της υλοποίησης έχει σαν στόχο τη µετατροπή του µοντέλου σχεδιασµού σε µοντέλο υλοποίησης. Στη µετατροπή αυτή, που θα δούµε αναλυτικά στη συνέχεια, η γλώσσα προγραµµατισµού διαδραµατίζει το σηµαντικότερο ρόλο. Ì 1.1. Μοντέλα στη διαδικασία ανάπτυξης λογισµικού. [1] H προσέγγιση ή η µέθοδος που χρησιµοποιείται για την επίλυση ενός προβλήµατος αποτελεί τον αλγόριθµο

18 18 KEºA AIO 1: EI A ø H ÈÂÚÁ Û Û Ó ÛÈÎfi ÔÌÈÎfi ÛÙÔÈ Â Ô ÛÙË È ÈÎ Û Ó appleù ÍË ÏÔÁÈÛÌÈÎÔ Στην καθηµερινή µας οµιλία χρησιµοποιούµε πολύ συχνά ονόµατα διεργασιών. Η παρακάτω φράση «Παρακαλώ φτιάξε ένα νες µέτριο µε γάλα και σερβίρισέ το στο 5» χρησιµοποιεί τα ονόµατα των διεργασιών «φτιάξε ένα νες» και «σερβίρισε» για να αναθέσει την εκτέλεση του έργου που οι διεργασίες αυτές προσδιορίζουν στο άτοµο στο οποίο απευθύνεται η πρόταση. Ο όρος «διεργασία» αναφέρεται σε ένα σύνολο βηµάτων που µπορεί να εκτελέσει µια οντότητα του φυσικού κόσµου για να φέρει εις πέρας ένα απλό ή σύνθετο έργο. Στη συγκεκριµένη περίπτωση που η διεργασία εκτελείται από έναν υπολογιστή ονοµάζεται «υπολογιστική διεργασία». Σαν παραδείγµατα διεργασιών µπορούν να αναφερθούν οι παρακάτω: 1. H διεργασία του υπολογισµού του µέσου όρου δεδοµένων αριθµών. 2. H διεργασία της ανεύρεσης των πελατών µιας επιχείρησης που έχουν υπερβεί το όριο πίστωσης. 3. H διεργασία της ανεύρεσης των φοιτητών της δανειστικής βιβλιοθήκης, οι οποίοι έχουν υπερβεί το χρονικό όριο δανεισµού. 4. H διεργασία του καθαρισµού ρούχων. 5. H διεργασία της ετοιµασίας φαγητού. Ορισµένες από τις παραπάνω διεργασίες µπορούν να ανατεθούν στον υπολογιστή όπως οι 1, 2 και 3, άλλες όπως οι 4 και 5 όχι, τουλάχιστον µέχρι σήµερα. Η διεργασία καθαρισµού των ρούχων, για παράδειγµα, µπορεί να υποστηριχθεί εν µέρει από µια µηχανή. Η περιγραφή µιας διεργασίας πρέπει να δίνεται σαν ένα σύνολο από βήµατα σε µορφή που µπορεί να κατανοήσει και εποµένως, να εκτελέσει η οντότητα στην οποία ανατίθεται η εκτέλεσή της. Για παράδειγµα, αν η διεργασία πρόκειται να εκτελεστεί από ένα άνθρωπο, αυτή θα πρέπει να περιγραφεί σε µία από τις οµιλούµενες γλώσσες (Ελληνική, Αγγλική, κ.λπ.). Αν η διεργασία πρόκειται να εκτελεστεί από έναν υπολογιστή, η περιγραφή θα πρέπει να γίνει σε µία σηµειογραφία που άµεσα ή έµµεσα κατανοεί ο υπολογιστής. Άµεσα κατανοεί µόνο τη γλώσσα µηχανής, αλλά η περιγραφή µιας διεργασίας µε τη γλώσσα αυτή είναι σχεδόν αδύνατη για τα σηµερινά, πολύπλοκα και αυξηµένων απαιτήσεων, συστήµατα. Εποµένως, η µόνη επιλογή είναι αυτή της έµµεσης κατανόησης. Λέµε ότι ο υπολογιστής κατανοεί έµµεσα τις γλώσσες προγραµµατισµού γιατί µια περιγραφή µε αυτές µπορεί αυτόµατα να µεταγλωττιστεί σε γλώσσα

19 º À π 19 µηχανής και, άρα, να γίνει κατανοητή από τον υπολογιστή. Μπορούµε να πούµε λοιπόν, ότι µια γλώσσα προγραµµατισµού είναι µία συστηµατική σηµειογραφία (notation) µε την οποία περιγράφουµε υπολογιστικές διεργασίες. Θεωρήστε τη διαδικασία υπολογισµού της µέσης θερµοκρασίας του µήνα από τις µέσες ηµερήσιες θερµοκρασίες. Καταγράψτε βασικές υπολογιστικές διεργασίες που ένα σύστηµα πρέπει να εκτελέσει για να την φέρει σε πέρας. ÕÛÎËÛË ÙÔ ÍÈÔÏfiÁËÛË Ê ÛË ÙË ÏÔappleÔ ËÛË ÎÔapplefi Σκοπός της ενότητας είναι να περιγράψει τα επί µέρους βήµατα που πρέπει να ακολουθήσετε, για να δηµιουργήσετε ένα πρόγραµµα που θα µπορεί να εκτελέσει ο υπολογιστής σας. ÚÔÛ ÔÎÒÌÂÓ appleôùâï ÛÌ Ù Όταν θα έχετε ολοκληρώσει την ενότητα θα µπορείτε να: κατασκευάσετε τον εκτελέσιµο κώδικα για έναν πηγαίο κώδικα που θα σας δοθεί, αναφέρετε τα βασικά βήµατα για τη δηµιουργία του εκτελέσιµου κώδικα, αναφέρετε ποια εργαλεία χρησιµοποιούνται στη διαδικασία αυτή, εξηγήσετε το ρόλο της βιβλιοθήκης στη διαδικασία αυτή. ÈÛ ÁˆÁÈÎ Ú ÙËÚ ÛÂÈ Η φάση της υλοποίησης µπορεί να θεωρηθεί σαν µία σύνθετη διεργασία, η οποία λαµβάνει σαν είσοδο το µοντέλο σχεδιασµού [1] και έχει σαν έξοδο τον εκτελέσιµο κώδικα. Η διεργασία αυτή µπορεί να ανατεθεί σε µια οντότητα του πραγµατικού κόσµου για να την φέρει σε πέρας. Η οντότητα αυτή είναι συνήθως ο προγραµµατιστής, ο οποίος, όπως φαίνεται στο σχήµα 1.2, χρησιµοποιεί τη γνώση της γλώσσας προγραµµατισµού, τις γενικότερες γνώσεις του για προγραµµατισµό και τον υπολογιστή σαν εργαλείο για να τον υποστηρίξει στο δύσκολο αυτό έργο. Στη συνέχεια, θα περιγράψουµε τα επιµέρους βήµατα που πρέπει να ακολουθήσει ο προγραµµατιστής, για τη δηµιουργία του εκτελέσιµου κώδικα. [1] Για απλά προβλήµατα το µοντέλο αυτό δηµιουργείται στο µυαλό του προγραµµατιστή.

20 20 KEºA AIO 1: EI A ø H γνώση της γλώσσας προγραµµατισµού text Editor Compiler γνώσεις προγραµµατισµού Linker Debuger MTA get message Send auto responce handle delivery options update alt. recipient update auto responce text Prepear auto responce Put auto responce Prepear delivered message Put message in mailbox design model implementation model Ì 1.2 Ο προγραµµατιστής εκτελώντας την διεργασία της φάσης της υλοποίησης Ì Ù ÙË Ê ÛË ÙË ÏÔappleÔ ËÛË Το σχήµα 1.3 αναπαριστά µε την τεχνική σχεδιασµού flow chart, τη διεργασία της φάσης της υλοποίησης. Μπορούµε να διακρίνουµε τις παρακάτω βασικές επί µέρους διεργασίες: 1. συγγραφή πηγαίου κώδικα 2. µεταγλώττιση πηγαίου κώδικα 3. σύνδεση τµηµάτων που αποτελούν το µοντέλο υλοποίησης (εκτελέσιµο κώδικα) 4. έλεγχος καλής λειτουργίας Οι διεργασίες αυτές, που διαφοροποιούνται ανάλογα µε το υπολογιστικό σύστηµα αλλά και το συγκεκριµένο µεταγλωττιστή, είναι πλήρως ή εν µέρει αυτοµατοποιηµένες. Για παράδειγµα, η διεργασία της συγγραφής κώδικα υποστηρίζεται εν µέρει από τον υπολογιστή, απαιτεί όµως ουσιαστική συµ-

21 º À π 21 µετοχή του προγραµµατιστή [1]. Αντίθετα, η διεργασία της µεταγλώττισης είναι πλήρως αυτοµατοποιηµένη και απαιτεί από τον προγραµµατιστή µόνο την ενεργοποίηση του µεταγλωττιστή. Σε κάθε περίπτωση, για τη διεξαγωγή στην πράξη της φάσης της υλοποίησης, απαιτείται αναφορά στα εγχειρίδια του λειτουργικού συστήµατος για οδηγίες σχετικές µε τη µεταγλώττιση και σύνδεση (linking) αλλά και στα αντίστοιχα εγχειρίδια του µεταγλωττιστή για πληροφορίες σχετικά µε τη διαδικασία της µεταγλώττισης. Aρχή Eπεξεργασία πηγαίου κώδικα example.c Mεταγλώττιση πηγαίου κώδικα ναι Συντακτικά λάθη; example.obj Bιβλιοθήκες object αρχεία όχι Σύνδεση Eκτέλεση example.exe ναι Λάθη; ÁÁÚ Ê appleëá Ô ÎÒ ÈÎ όχι Tέλος Ì 1.3 H διεργασία της φάσης της υλοποίησης Στο πρώτο αυτό βήµα, ο προγραµµατιστής επιλέγοντας µία από τις διαθέσιµες γλώσσες προγραµµατισµού και χρησιµοποιώντας έναν επεξεργαστή κειµένου [2] (text editor), δηµιουργεί ένα αρχείο που περιέχει τον πηγαίο κώδικα του προγράµµατός του. Η C επιβάλει την αποθήκευση του πηγαίου [1] Tα περισσότερα CASE εργαλεία υποστηρίζουν αυτόµατη παραγωγή µέρους του πηγαίου κώδικα από το µοντέλο σχεδιασµού. [2] Προσέξτε υπάρχει διαφορά µεταξύ text editor και word processor. Έχει επικρατήσει να αποδίδονται µε τον ίδιο ελληνικό όρο επεξεργαστής κειµένου.

22 22 KEºA AIO 1: EI A ø H κώδικα [1] σε ένα αρχείο µε επέκταση.c. Στα πλαίσια του παραδείγµατός µας, γράψτε τον παρακάτω πηγαίο κώδικα [2] χωρίς να ασχοληθείτε µε τη σηµασία του πηγαίου κώδικα. Αποθηκεύστε τον στο αρχείο example.c. /* A Simple C Program */ #include <stdio.h> main( ) { printf("hello, world");i } ªÂÙ ÁÏÒÙÙÈÛË Η διεργασία της µεταγλώττισης είναι, όπως αναφέραµε, πλήρως αυτοµατοποιηµένη. Ο προγραµµατιστής αρκεί να ενεργοποιήσει τον µεταγλωττιστή ενηµερώνοντάς τον µε το όνοµα του αρχείου που θέλει να µεταγλωττίσει και µε ένα σύνολο από παραµέτρους που καθορίζουν τις απαιτήσεις του από τον µεταγλωττιστή. Η ενεργοποίηση του µεταγλωττιστή γίνεται απλά εκτελώντας το πρόγραµµα του µεταγλωττιστή, όπως το λειτουργικό σας σύστηµα ορίζει. Για τον τρόπο µε τον οποίο µπορείτε να ενηµερώσετε τον µεταγλωττιστή για τις ιδιαίτερες απαιτήσεις που έχετε από αυτόν, π.χ., παραγωγή κώδικα µε βελτιστοποίηση ως προς το χρόνο εκτέλεσης ή ως προς το µέγεθος του κώδικα, ή συµπερίληψη πληροφορίας εκσφαλµάτωσης κ.λπ., ενηµερωθείτε από το εγχειρίδιο χρήσης του ή τις on line οδηγίες του. Σε ένα γραφικό περιβάλλον, τα παραπάνω εκτελούνται συνήθως µέσα από τις επιλογές ενός µενού που παρέχει το περιβάλλον ανάπτυξης. Αντίθετα, σε ένα παραδοσιακό περιβάλλον µε γραµµή εντολής (command line) η ενεργοποίηση του µεταγλωττιστή έχει τη µορφή: <όνοµα µεταγλωττιστή> [<λίστα παραµέτρων>] <όνοµα αρχείου> Για παράδειγµα, για το µεταγλωττιστή της WATCOM [3] στο MSDOS, η εντολή wcc example [1] Σε επόµενο κεφάλαιο, θα δούµε ότι ο πηγαίος κώδικας οργανώνεται σε περισσότερα του ενός αρχεία, καθώς και τους λόγους που επιβάλουν µια τέτοια οργάνωση. [2] Tο κλασικό πια παράδειγµα που ο Dennis Ritchie είχε στην αντίστοιχη ενότητα του ιστορικού κειµένου [Kernighan 74]. [3] Πρόκειται για µια εκπαιδευτική έκδοση του εµπορικού µεταγλωττιστή Watcom C/C++.

23 º À π 23 ενεργοποιεί το µεταγλωττιστή, ο οποίος µεταγλωττίζει το αρχείο example.c, και σε περίπτωση µη ανεύρεσης λαθών, τυπώνει στην οθόνη τα παρακάτω: WATCOM C Optimizing Compiler Version 8.5e Copyright by WATCOM Systems Inc. 1984, All rights reserved. WATCOM is a trademark of WATCOM Systems Inc. example.c: 4 lines, 0 warnings, 0 errors Code size: 17 και παράγει το αρχείο example.obj. Αντίθετα, στην περίπτωση ανεύρεσης λαθών, το αποτέλεσµα της διεργασίας της µεταγλώττισης είναι µια λίστα µε τα λάθη που εντόπισε ο µεταγλωττιστής. Τα λάθη αυτά έχουν σχέση µε το συντακτικό της γλώσσας και είναι γνωστά σαν συντακτικά λάθη (syntax errors). Παρακάτω, δίνεται η αναφορά του µεταγλωττιστή για την περίπτωση που λείπει η αγκύλη στο τέλος του πηγαίου κώδικα. example.c(4): Error! E1077: Missing '}' example.c: 4 lines, 0 warnings, 1 errors Στην περίπτωση αυτή, θα πρέπει να εντοπίσετε τα λάθη, µε τη βοήθεια της πληροφορίας που αναφέρει ο µεταγλωττιστής, και χρησιµοποιώντας τον text editor να τα διορθώσετε. Στη συνέχεια, επαναλαµβάνετε τη διαδικασία της µεταγλώττισης µέχρι την επιτυχή έκβασή της Ó ÂÛË H διεργασία της σύνδεσης που ακολουθεί είναι και αυτή πλήρως αυτοµατοποιηµένη και εκτελείται από τον υπολογιστή µε τη βοήθεια του προγράµµατος του συνδέτη (Linker). Ο προγραµµατιστής θα πρέπει να ενεργοποιήσει το συνδέτη και να ορίσει τις παραµέτρους της διεργασίας της σύνδεσης. Στα περισσότερα περιβάλλοντα ανάπτυξης, ο συνδέτης καλείται αυτόµατα µετά από επιτυχή µεταγλώττιση χωρίς τη µεσολάβηση του προγραµµατιστή [1]. Το αποτέλεσµα της σύνδεσης είναι η δηµιουργία του εκτελέσιµου κώδικα ή η αναφορά τυχόν προβληµάτων, όπως για παράδειγµα, αδυναµία εντοπισµού µιας συνάρτησης ή µιας εξωτερικής µεταβλητής. Ο εκτελέσιµος κώδικας αποθηκεύεται σε αρχείο που έχει το όνοµα του αρχείου πηγαίου κώδικα και επέκταση.exe (για Dos και Windows). [1] Eνηµερωθείτε για το τρόπο λειτουργίας του δικού σας συστήµατος.

24 24 KEºA AIO 1: EI A ø H Ο συνδέτης έχει τη δυνατότητα να συνδέσει περισσότερα του ενός αρχεία αντικείµενου κώδικα (object code), των οποίων µάλιστα, ο αντίστοιχος πηγαίος κώδικας δεν είναι αναγκαστικά στην ίδια γλώσσα προγραµµατισµού. Αναζητεί επιπλέον, σε βιβλιοθήκες τα σώµατα των συναρτήσεων που ο προγραµµατιστής χρησιµοποίησε στο πρόγραµµά του (Στο θέµα αυτό θα αναφερθούµε αναλυτικά στο κεφάλαιο περί συναρτήσεων. ες ένθετο πλαίσιο για βιβλιοθήκη). Για τον WATCOM µεταγλωττιστή, η εντολή wcl example έχει σαν αποτέλεσµα την ενεργοποίηση του µεταγλωττιστή και στη συνέχεια του συνδέτη, ο οποίος δίνει µια αναφορά της παρακάτω µορφής: WATCOM Linker Version 7.0 Copyright by WATCOM Systems Inc. 1985, All rights reserved. WATCOM is a trademark of WATCOM Systems Inc. loading object files searching libraries creating a DOS executable και παράγει το αρχείο example.exe, το οποίο αποτελεί το µοντέλο υλοποίησης, ή αλλιώς, τον εκτελέσιµο κώδικα του προγράµµατος, τον οποίο µπορείτε να εκτελέσετε για να διαπιστώσετε την ορθή λειτουργία του. Η πρόταση example στη γραµµή διαταγών του DOS δίνει εντολή στο λειτουργικό να φορτώσει και εκτελέσει το αρχείο example.exe. Στην οθόνη θα έχετε το παρακάτω αποτέλεσµα: hello, world Τα πιθανά λάθη που θα εµφανιστούν, εντοπίζονται, διορθώνονται και η διεργασία µεταγλώττισης και σύνδεσης επαναλαµβάνεται µέχρι την επιτυχή λειτουργία του προγράµµατος. ªÂÙ ÁÏÒÙÙÈÛË Μεταγλώττιση είναι η διαδικασία της µετάφρασης υψηλού επιπέδου περιγραφής, όπως περιγραφή σε Basic, Pascal, C, σε γλώσσα µηχανής που αποτελεί µορφή κατανοητή από τον υπολογιστή. Η µεταγλώττιση, αποτελεί µια σύνθετη και χρονοβόρο για τον άνθρωπο διεργασία και για το λόγο αυτό την ανέθεσε στον υπολογιστή.

25 º À π 25 µè ÏÈÔı ÎË Κατά τη συγγραφή προγραµµάτων ο προγραµµατιστής έχει τη δυνατότητα να επαναχρησι- µοποιεί (reuse) έτοιµα κοµµάτια κώδικα, τα οποία είτε έχει ο ίδιος αναπτύξει και χρησιµοποιήσει στο παρελθόν είτε προσφέρονται από άλλους δηµιουργούς λογισµικού. Τα έτοιµα αυτά τµήµατα κώδικα είναι συνήθως µε τη µορφή µονάδων (συναρτήσεων, κλάσεων) µε την κάθε µονάδα να εκτελεί µια συγκεκριµένη διεργασία, η οποία όσο γενικότερη είναι τόσο µεγαλύτερες είναι οι πιθανότητες επαναχρησιµοποίησής της. Οι µονάδες αυτές είναι οργανωµένες κατά λογικές κατηγορίες µε κάθε λογική κατηγορία να συνθέτει µια βιβλιοθήκη που χαρακτηρίζεται από ένα όνοµα. Κάθε µεταγλωττιστής της C συνοδεύεται από τη βασική βιβλιοθήκη της γλώσσας (standard C library), η οποία περιέχει ένα σύνολο από συναρτήσεις που υλοποιούν πολύ βασικές διεργασίες. Μια τέτοια συνάρτηση είναι η printf, η οποία υλοποιεί τη διεργασία της εξόδου µορφοποιηµένης πληροφορίας στην κύρια έξοδο του υπολογιστή (συνήθως οθόνη). Στη C, για να χρησιµοποιήσετε µια συνάρτηση της βασικής βιβλιοθήκης είναι απαραίτητο να συµπεριλάβετε στον πηγαίο κώδικα ένα ή περισσότερα αρχεία επικεφαλίδας (header files), όπως ορίζει το εγχειρίδιο χρήσης της βιβλιοθήκης για κάθε συνάρτησή της. Για παράδειγµα, για τη χρήση της printf πρέπει να περιλάβετε στην αρχή του πηγαίου κώδικα την πρόταση #include <stdio.h> È ÈÎ Û Ó appleù ÍË apple Ú ÂÈÁÌ ÙˆÓ Για την ανάπτυξη των προγραµµάτων που χρησιµοποιούνται σαν παραδείγ- µατα στα επόµενα κεφάλαια του βιβλίου, θα ξεκινάµε αµέσως τη συγγραφή του πηγαίου κώδικα χωρίς να ασχολούµαστε καθόλου, στις περισσότερες περιπτώσεις, µε τα µοντέλα ανάλυσης και σχεδιασµού. Και αυτό γιατί, αφενός µεν στόχος της θεµατικής αυτής ενότητας είναι ο προγραµµατισµός, αφετέρου δε δεν έχετε ακόµη τις απαραίτητες γνώσεις για να δηµιουργήσετε τα µοντέλα ανάλυσης και σχεδιασµού, αντικείµενο που θα καλύψετε σε άλλη θεµατική ενότητα, αργότερα. Επιπλέον, τα παραδείγµατά µας είναι συνήθως απλά και δεν απαιτούν από τη φύση τους, την επισταµένη δηµιουργία των µοντέλων αυτών. Σε ορισµένες περιπτώσεις, πιθανόν να χρησιµοποιήσουµε τα δοµηµένα ελληνικά σαν πρώτη µορφή περιγραφής πριν από τη δηµιουργία πηγαίου κώδικα. Aς σηµειωθεί πως αυτό το τελευταίο αποτελεί µέρος της φάσης σχεδιασµού.

26 26 KEºA AIO 1: EI A ø H ÕÛÎËÛË ÙÔ ÍÈÔÏfiÁËÛË 1.2 Τοποθετήστε τις παρακάτω διεργασίες που έχουν σχέση µε την ανάπτυξη και εκτέλεση ενός προγράµµατος σε σωστή χρονική σειρά. 1. αποθήκευση πηγαίου κώδικα 2. σύνδεση 3. αναφορά λαθών από µεταγλωττιστή 4. εκτέλεση προγράµµατος 5. συγγραφή πηγαίου κώδικα 6. µεταγλώττιση 7. εµφάνιση αποτελεσµάτων προγράµµατος 8. αναφορά λαθών από συνδέτη Ú ÛÙËÚÈfiÙËÙ 1.1 Ακολουθήστε τη διαδικασία δηµιουργίας εκτελέσιµου κώδικα για το πρόγραµµα που έχει σαν πηγαίο κώδικα τον παρακάτω. #include <stdio.h> main() { int num1 = 10; int num2 = 20; int sum; sum = num1 + num2; printf( ÙÔ ıúôèûì ÙÔ %d Ì ÙÔ %d Â Ó È: %d, num1, num2, sum); } Στη συνέχεια, εκτελέστε το για να ελέγξετε την ορθή λειτουργία του. Το αποτέλεσµα της εκτέλεσης µπορείτε να δείτε στο τέλος του βιβλίου. Ú ÛÙËÚÈfiÙËÙ 1.2 Αναζητήστε στον υπολογιστή σας το ευρετήριο όπου έχει εγκατασταθεί ο C µεταγλωττιστής σας. Εντοπίστε και καταγράψτε τα εκτελέσιµα αρχεία του µεταγλωττιστή και του συνδέτη. Κάντε το ίδιο για τις βιβλιοθήκες που τον συνοδεύουν. Τέλος, αναζητήστε τα αρχεία επικεφαλίδας και δείτε το περιεχόµενο του αρχείου math.h. Σχολιάστε το. Τα δικά µας σχόλια θα βρείτε στο τέλος του βιβλίου.

27 ª ƒº ƒ ƒ ªª π ª À π π ƒπ ø ø ªÔÚÊ appleúôáú ÌÌ ÙÈÛÌÔ Î È ÈÛÙÔÚ ÁψÛÛÒÓ ÎÔapplefi Ο σκοπός της ενότητας είναι να κάνει µια σύντοµη αναφορά στις εναλλακτικές µορφές προγραµµατισµού (programming paradigms) [1] και, ταυτόχρονα, µια ιστορική αναδροµή στην γλώσσα προστακτικού προγραµµατισµού C, αιτιολογώντας παράλληλα την επιλογή της στα πλαίσια αυτού του βιβλίου. ÚÔÛ ÔÎÒÌÂÓ appleôùâï ÛÌ Ù Όταν θα έχετε µελετήσει την ενότητα, θα µπορείτε να : αναφέρετε 4 τουλάχιστον µορφές προγραµµατισµού, περιγράψετε τη διαφορά µεταξύ προστακτικού και δηλωτικού προγραµ- µατισµού, αναφέρετε τουλάχιστον 4 γλώσσες που υποστηρίζουν την προστακτική µορφή προγραµµατισµού, αναφέρετε τη βασική διαφορά µεταξύ των γλωσσών Pascal και Prolog, αναφέρετε 6 τουλάχιστον λόγους για τους οποίους επιλέχθηκε να χρησι- µοποιηθεί η C στο παρόν βιβλίο ªÔÚÊ appleúôáú ÌÌ ÙÈÛÌÔ Μορφή ή στυλ προγραµµατισµού (programming paradigm/programming style) είναι µια συλλογή από έννοιες, οι οποίες προσδιορίζοντας έναν ορισµένο τρόπο σκέψης και, άρα, έκφρασης της λύσης, επηρεάζουν το σχεδιασµό των προγραµµάτων. Εάν µπορούµε να δοµήσουµε τη λύση ενός προβλήµατος µε τις βασικές έννοιες µιας µορφής προγραµµατισµού, τότε µόνο µπορούµε να χρησιµοποιήσουµε µια γλώσσα προγραµµατισµού που υποστηρίζει τη συγκεκριµένη µορφή προγραµµατισµού για να υλοποιήσουµε τη λύση. Ορισµένες γλώσσες (βλέπε Πίνακα 1.1), εισήγαγαν νέα στυλ προγραµµατισµού, νέους δηλαδή τρόπους σκέψης στον προγραµµατισµό. Οι µορφές που υποστηρίζουν προγραµµατισµό υψηλού επιπέδου, µπορούν να διακριθούν σε τρεις κατηγορίες [Ambler 92]: [1] Στην ελληνική βιβλιογραφία χρησιµοποιείται ευρέως ο όρος µοντέλα προγραµµατισµού.

28 28 KEºA AIO 1: EI A ø H Ó Î 1.1 Γλώσσες που εισήγαγαν βασικά στυλ προγραµµατισµού. Γλώσσα FORTRAN Lisp Simula Prolog Στυλ προγραµµατισµού προστακτικό συναρτησιακό αντικειµενοστρεφές λογικό Operational, µε βασικό χαρακτηριστικό την βήµα προς βήµα περιγραφή της πορείας εξεύρεσης µιας λύσης. Στην κατηγορία αυτή ανήκουν ο προστακτικός (imperative), ο αντικειµενοστρεφής (object oriented) καθώς και ο συναρτησιακός (functional) προγραµµατισµός. Demonstrational, γνωστή και σαν programming by example [1], είναι η µορφή προγραµµατισµού που επεξηγεί τη λύση µε χρήση συγκεκριµένων παραδειγµάτων και αφήνει στο σύστηµα να γενικεύσει για άλλες περιπτώσεις. Ορισµένοι τη θεωρούν υποκατηγορία της operational µορφής προγραµµατισµού. Σαν παραδείγµατα γλωσσών αυτής της κατηγορίας αναφέρονται η PT [Hsia 88] και η Metamouse [Maulsby 89]. Definitional, µε βασικό χαρακτηριστικό την έκθεση των χαρακτηριστικών της λύσης, τα οποία συνήθως περιορίζουν το πεδίο τιµών της, χωρίς αυτό να συνοδεύεται από περιγραφή του τρόπου εξεύρεσής της. Στην κατηγορία αυτή, ανήκουν ο λογικός προγραµµατισµός (logic programming), ο βασισµένος σε περιορισµούς προγραµµατισµός (constraint programming), ο λογικός βασισµένος σε περιορισµούς προγραµµατισµός (Constraint Logic Programming) και µια όψη του συναρτησιακού προγραµµατισµού [2]. Ο συναρτησιακός προγραµµατισµός περιλαµβάνει την έννοια της συνάρτησης (function) σαν βασικό δοµικό στοιχείο. Στην πράξη, οι γλώσσες που υποστηρίζουν αυτό το στυλ προγραµµατισµού περιλαµβάνουν και δοµικά στοιχεία προστακτικού προγραµµατισµού. Eπίσης, οι περισσότερες προστακτικές και αντικειµενοστρεφείς γλώσσες έχουν υιοθετήσει κάποια µορφή συνάρτησης, χωρίς όµως αυτό να σηµαίνει πως υποστηρίζουν πλήρως τη συναρ- [1] Programming by Example Home Page [2] Ένα καλό παράδειγµα σύγχρονης συναρτησιακής γλώσσας αποτελεί η Haskell.

29 ª ƒº ƒ ƒ ªª π ª À π π ƒπ ø ø 29 τησιακή µορφή προγραµµατισµού. Στην πράξη, µία γλώσσα προγραµµατισµού σπάνια υποστηρίζει µια µόνο µορφή προγραµµατισµού. Συνήθως, δανείζεται έννοιες από περισσότερες µορφές και σαν αποτέλεσµα, υποστηρίζει περισσότερα από ένα στυλ προγραµµατισµού. Για παράδειγµα, η C++ υλοποιεί βασικές έννοιες από το προστακτικό και το αντικειµενοστρεφές παράδειγµα. Η ML από το συναρτησιακό και το προστακτικό, η CLOS αποτελεί επέκταση της συναρτησιακής γλώσσας Lisp εισάγοντας έννοιες της αντικειµενοστρεφούς µορφής, η Prolog++ αποτελεί επέκταση της γλώσσας λογικού προγραµµατισµού Prolog εισάγοντας έννοιες του αντικειµενοστρεφούς παραδείγµατος, κ.ο.κ. Γλώσσες όπως οι Pascal, Ada, Algol, Fortran και C υποστηρίζουν την προστακτική µορφή προγραµµατισµού. Ο προγραµµατιστής µε τις γλώσσες αυτές προσδιορίζει, βήµα προς βήµα την πορεία επίλυσης του προβλήµατος. Χρησιµοποιεί µεταβλητές, για να αναπαραστήσει τα δεδοµένα και ενέργειες (actions), που αποτελούν τις βασικές µονάδες του προστακτικού στυλ προγραµµατισµού, για να αλλάξει τις τιµές των µεταβλητών [Sethi 97]. Αντίθετα, µε την Prolog ο προγραµµατιστής δουλεύει στην definitional ή declarative κατηγορία µορφών προγραµµατισµού. Σύµφωνα µε αυτή, ο προγραµµατιστής δεν περιγράφει στον υπολογιστή πώς να λύσει το πρόβληµα, αλλά τον εφοδιάζει µε όλη τη διαθέσιµη πληροφορία που είναι απαραίτητη σε κάποιον για να λύσει το πρόβληµα. Το σύστηµα χρησιµοποιεί αυτή την πληροφορία µε το δικό του τρόπο για να οδηγηθεί στην ανεύρεση της λύσης [1]. Η προµήθεια ενός χάρτη της περιοχής για την ανεύρεση της πορείας για συγκεκριµένο προορισµό, αποτελεί χαρακτηριστικό παράδειγµα δηλωτικής (declarative) µορφής, σε αντίθεση µε τις σαφείς οδηγίες κατεύθυνσης (π.χ., τρία τετράγωνα παρακάτω δεξιά, µετά από δύο τετράγωνα αριστερά, κ.λπ.) που αποτελούν προστακτική µορφή. Μία µορφή προγραµµατισµού που, τα τελευταία χρόνια, γνωρίζει µεγάλη εξάπλωση γιατί υπόσχεται να δώσει (και ήδη δίνει) λύσεις σε πολλά από τα προβλήµατα της διαδικασίας ανάπτυξης λογισµικού και όχι µόνο [2], είναι η Αντικειµενοστρεφής Προσέγγιση [3] (ΑΠ). Η ΑΠ θεωρεί το σύστηµα σαν συνά- [1] Aυτό γίνεται για παράδειγµα διαµέσου του ενσωµατωµένου inference Engine της Prolog. [2] Bλέπε αντικειµενοστρεφή συν σχεδιασµό (co design) υλικού λογισµικού. [3] Στην πράξη υπάρχει αντικειµενοστρεφής προστακτική αλλά και αντικειµενοστρεφής δηλωτική µορφή.

30 30 KEºA AIO 1: EI A ø H θροιση αντικειµένων (objects) διαφόρων κατηγοριών (classes),τα οποία αλληλεπιδρούν µεταξύ τους για την παροχή των εξυπηρετήσεών του. Ο αντικει- µενοστρεφής προστακτικός προγραµµατισµός, πρώτα ορίζει τα κατάλληλα για το πρόβληµα αντικείµενα και, στη συνέχεια, τα χρησιµοποιεί για να περιγράψει βήµα προς βήµα την εξεύρεση της λύσης. Παραδείγµατα γλωσσών που υποστηρίζουν τη µορφή αυτή προγραµµατισµού, που αποτελεί το αντικείµενο της θεµατικής ενότητας 6.4, είναι οι Smalltalk, C++, Object Pascal και Java πûùôú ÙˆÓ ÁψÛÛÒÓ appleúôûù ÎÙÈÎÔ appleúôáú ÌÌ ÙÈÛÌÔ Η ιστορία των γλωσσών προστακτικού προγραµµατισµού υψηλού επιπέδου, αρχίζει το 1957 µε την εµφάνιση της FORTRAN (FORmula TRANslation), µιας γλώσσας φτιαγµένης για µαθηµατικούς υπολογισµούς. Η γλώσσα εξακολουθεί και σήµερα να αποτελεί την πιο δηµοφιλή επιλογή µεταξύ των επιστηµόνων και των µηχανικών. H διάδοχος της FORTRAN, η ALGOL, κυριάρχησε στη δεκαετία του 60 σε βαθµό που η κατηγορία των προστακτικών γλωσσών να αναφέρεται σαν ALGOL οικογένεια, από όπου και ο όρος ALGOL like. Στην πράξη, η γλώσσα περισσότερο θαυµάστηκε παρά υιοθετήθηκε, αντίθετα µε τις απογόνους της, Pascal και C, που υιοθετήθηκαν ευρέως. Αµφότερες εµφανίστηκαν στις αρχές της δεκαετίας του 70 και, η µεν Pascal σχεδιάστηκε σαν εκπαιδευτική γλώσσα από τον Nicklaus Wirth, η δε C σαν γλώσσα προγραµµατισµού συστήµατος (system programming) από τον Dennis Ritchie. Και οι δύο, εξελίχθηκαν σε γενικού σκοπού (general purpose) προστακτικές γλώσσες και επηρέασαν σε µεγάλο βαθµό επόµενες γλώσσες προστακτικού προγραµµατισµού µεταξύ των οποίων οι Modula, Concurrent Pascal και Ada (από την Pascal) και C++ και Java (από την C). Μεταξύ των γλωσσών που υιοθετήθηκαν σε µεγάλο βαθµό θα πρέπει να αναφέρουµε και την COBOL (Common Business Oriented Language) µε µεγάλη απήχηση στον επιχειρηµατικό κόσµο, καθώς και την BASIC (Beginners All purpose Symbolic Instruction Code) που, αν και σχεδιάστηκε για εκπαίδευση αρχαρίων στο προγραµµατισµό, εξελίχθηκε σε γενικού σκοπού γλώσσα. Το σχήµα 1.4, παρουσιάζει ένα τµήµα του γενεαλογικού δένδρου των γλωσσών προγραµµατισµού, όπου µπορείτε να δείτε τις σηµαντικότερες γλώσσες προγραµµατισµού και τον τρόπο µε τον οποίο αυτές επηρέασαν την εξέλιξη των υπολοίπων. Για µια σύντοµη αναδροµή στην ιστορία των γλωσσών προγραµµατισµού

31 ª ƒº ƒ ƒ ªª π ª À π π ƒπ ø ø 31 σάς συνιστώ να ανατρέξετε στο [Horowitz 84] ή [Horowitz 95] ή στο [Sethi 97]. Για ακόµη περισσότερα, µπορείτε να αναφερθείτε στο [Wexelblat 81] ή στο πιο πρόσφατο [Bergin 96]. Επίσης, στη διεύθυνση unige.ch/cgi bin/langlist και, κάτω από τον τίτλο «The Language List», µπορείτε να δείτε µία προσπάθεια δηµιουργίας µίας λίστας όλων των γνωστών γλωσσών προγραµµατισµού. FORTRAN Lisp BASIC ALGOL Common Lisp CLOS Prolog Smalltalk ML Eiffel Standard ML Self Simula UCSD Pascal Java Mesa Pascal Object Pascal Delphi Ada Modula C++ BCPL C Visual C++ B Objective C Ada 95 Ì 1.4. Μέρος του γενεαλογικού δένδρου των γλωσσών προγραµµατισµού. Ανατρέξτε στη βιβλιογραφία τη σχετική µε την ιστορία των γλωσσών προγραµµατισµού και γράψτε ένα κείµενο (1 µε 2 σελίδες), στο οποίο θα αναφέρεστε ιστορικά στις σηµαντικότερες, κατά τη γνώµη σας, γλώσσες προγραµµατισµού και στον τρόπο µε τον οποίο αυτές επηρέασαν την εξέλιξη των υπολοίπων. Ú ÛÙËÚÈfiÙËÙ πûùôú ÙË C Η γλώσσα C σχεδιάστηκε και αναπτύχθηκε το 1972 στα ΑΤ&Τ Bell Labs από τον Dennis Ritchie. Βασίστηκε στην BCPL [M. Richard, 1967] αλλά και στην απόγονο της Β [Thompson 72], την οποία ανέπτυξε ο Ken Thompson και το διάστηµα εκείνο χρησιµοποιούσε στην ανάπτυξη της νέας έκδοσης του λειτουργικού συστήµατος UNIX [1]. Ο Dennis Ritchie, προσθέτοντας και αφαιρώντας στοιχεία από την B µε στόχο να την αποµακρύνει από το υλικό, [1] Oι µέχρι τότε εκδόσεις του UNIX ήταν γραµµένες σε γλώσσα Assembly.

32 32 KEºA AIO 1: EI A ø H δηµιούργησε µια νέα γλώσσα που την ονόµασε C (η γλώσσα µετά την B). Η C όντας ευέλικτη και αποδοτική, χρησιµοποιήθηκε το 1973 για να ξαναγραφεί το µεγαλύτερο τµήµα του UNIX σε έναν PDP 11. Στη συνέχεια, και για χρόνια, χρησιµοποιήθηκε αποκλειστικά για system programming στο UNIX. Η πρώτη επίσηµη τεκµηρίωση της γλώσσας έκανε την εµφάνισή της µόλις το 1977, µε τίτλο «The C Programming Language» από τους Brian Kernighan και Dennis Ritchie. H τεκµηρίωση αυτή αποτέλεσε για χρόνια το «ευαγγέλιο» των προγραµµατιστών της C και είναι γνωστό σαν «white book» ή K&R πρότυπο [Kernighan 78]. Με την πάροδο των χρόνων, η γλώσσα άρχισε να χρησιµοποιείται και σε άλλα πεδία εφαρµογών εκτός του system programming για το οποίο σχεδιάστηκε, κατακτώντας ένα πολύ µεγάλο µέρος της αγοράς, µε αποτέλεσµα να θεωρείται στις αρχές τις δεκαετίας του 90 µία από τις επικρατέστερες γλώσσες. Σε αυτό, συνέτειναν και τα πολλά πλεονεκτήµατά της, όσον αφορά ευελιξία, αποδοτικότητα, φορητότητα και ταχύτητα εκτέλεσης, σε σύγκριση µε άλλες ανάλογες γλώσσες όπως Fortran, Basic, Pascal. Βέβαια, η γλώσσα γνώρισε πολλές αλλαγές από την πρώτη και γνωστή σαν K&R έκδοση. Οι αλλαγές αυτές οδήγησαν στη δεύτερη έκδοση της γλώσσας που είναι γνωστή σαν ANSI C πρότυπο [ANSI 88] [Kernighan 88]. Μια πολύ καλή αναφορά στην εξέλιξη της γλώσσας γίνεται στο άρθρο [Ritchie 93] È Ù C; Η επιλογή της C για τη διδασκαλία της προστακτικής µορφής προγραµµατισµού στο παρόν βιβλίο, έγινε για ένα σύνολο από λόγους που παρουσιάζονται παρακάτω: Eίναι σχετικά µικρή και εύκολη στην εκµάθηση. Yποστηρίζει top down και modular σχεδιασµό αλλά και δοµηµένο (structured) προγραµµατισµό. Eίναι αποτελεσµατική (efficient) παράγοντας συµπαγή και γρήγορα στην εκτέλεση προγράµµατα. Eίναι φορητή (portable), ευέλικτη (flexible) και ισχυρή (powerful). ε βάζει περιορισµούς, γεγονός πάντως που πολλές φορές αποβαίνει σε βάρος της. Aποτελεί µε την C++ την ευρύτερα χρησιµοποιούµενη γλώσσα σε ερευνητικά και αναπτυξιακά προγράµµατα.

33 ª ƒº ƒ ƒ ªª π ª À π π ƒπ ø ø 33 Yπάρχει µια πολύ µεγάλη εγκατεστηµένη βάση εφαρµογών που αναπτύχθηκαν µε τη γλώσσα αυτή και πρέπει να συντηρούνται και να εξελίσσονται. H C µπορεί να χρησιµοποιηθεί σαν χαµηλού επιπέδου γλώσσα προγραµ- µατισµού επιτρέποντας άµεση πρόσβαση στους πόρους του υπολογιστή και άρα στην αποτελεσµατική και χωρίς overhead αξιοποίησή τους. Ταυτόχρονα, µπορεί να χρησιµοποιηθεί και σαν γλώσσα υψηλού επιπέδου, καθώς η πληθώρα των διαθέσιµων βιβλιοθηκών υπερκαλύπτει τις απαιτήσεις ανάπτυξης λογισµικού εφαρµογής (Application Software). H γνώση της C αποτελεί ένα πολύ καλό εφόδιο για την εκµάθηση της Java. ÓÔ Ë Στο κεφάλαιο αυτό, αναφέραµε τις βασικές έννοιες της διαδικασίας ανάπτυξης λογισµικού και προσδιορίσαµε το ρόλο που διαδραµατίζει η γλώσσα προγραµµατισµού στη διαδικασία αυτή. Παρά το γεγονός ότι, τα πρώτα χρόνια της ζωής των ηλεκτρονικών υπολογιστών η γλώσσα προγραµµατισµού αποτέλεσε το κύριο εργαλείο για την ανάπτυξη λογισµικού, στη συνέχεια, αυτή περιορίστηκε σαν βασικό εργαλείο µόνο της φάσης της υλοποίησης, επηρεάζοντας βέβαια σηµαντικά και τη φάση του σχεδιασµού. Η ιστορία των γλωσσών προγραµµατισµού έχει να παρουσιάσει µια µεγάλη ποικιλία γλωσσών. Ορισµένες από αυτές, όπως οι Fortran, Lisp, Simula και Prolog, εισήγαγαν νέα στυλ προγραµµατισµού, νέους δηλαδή τρόπους σκέψης στη φάση του προγραµµατισµού. Άλλες πάλι αποτελούν απογόνους επιτυχηµένων γλωσσών όπως η C++ που αποτελεί απόγονο της C στην οποία πρόσθεσε τα πλεονεκτήµατα της Simula. Η οικογένεια των γλωσσών του προστακτικού προγραµµατισµού ξεκινά µε τη Fortran. C και Pascal αποτελούν επιτυχηµένες γενικού σκοπού γλώσσες αυτής της οικογένειας και επιλέχτηκαν να χρησιµοποιηθούν στα πλαίσια του βιβλίου για την παρουσίαση των βασικών στοιχείων του προστακτικού προγραµµατισµού. Ιδιαίτερα, χρησιµοποιείται η C, η οποία, αφενός µεν κυριάρχησε την περασµένη δεκαετία, αφ ετέρου δε αποτέλεσε τη βάση για γλώσσες που κυριαρχούν (C++) ή διαφαίνεται ότι θα κυριαρχήσουν (Java) την επόµενη δεκαετία.

34 34 KEºA AIO 1: EI A ø H µè ÏÈÔÁÚ Ê ÎÂÊ Ï Ô [ANSI 88] Περισσότερες πληροφορίες για το πρωτότυπο ISO/IEC 9899 µπορείτε να βρείτε στο δια δίκτυο στη διεύθυνση dk/jtc1/sc22/wg14/. [Bergin 96] Bergin Thomas, Gibson Richard, «History of Programming Languages», Addison Wesley, Το βιβλίο αποτελεί σηµαντική προσπάθεια συγκέντρωσης πολλών σηµαντικών γλωσσών και συνιστάται για κάθε αναγνώστη που εµπλέκεται στη χρήση ή ανάπτυξη γλωσσών προγραµµατισµού. Είναι βασισµένο στα πρακτικά του δεύτερου ACM SIGPLAN συνεδρίου «History of Programming Languages». Περιλαµβάνει περίληψη των πρακτικών του συνεδρίου, καθώς και άρθρα των σηµαντικότερων συντελεστών στο χώρο των γλωσσών προγραµµατισµού: Frederick Brooks, Alain Colmerauer, Richard Gabriel, Ralph Griswold, Per Brinch, Hansen, Alan Kay, C. H. Lindsey, Barbara Liskov, Richard Nance, Elizabeth Rather, Dennis Ritchie, Jean Sammet, Guy Steele, Bjarne Stroustrup, William Whitaker, και Niklaus Wirth. Μεταξύ των γλωσσών που ιδιαίτερα αναφέρονται είναι οι C, C++, Smalltalk,Pascal, Ada, Prolog, Lisp, ALGOL 68, FORMAC, CLU, Icon, Forth και Concurrent Pascal. [Boehm 76] Boehm W. Barry, «Software Engineering» IEEE Trans. Comput., vol. C 25, pp , Dec [Boehm 88] Boehm W. Barry, «A Spiral Model of Software Development and Enhancement» IEEE Computer, vol. 21, no 5, p.61 72, May [Horowitz 84] Horowitz Ellis, «Βασικές αρχές γλωσσών προγραµµατισµού», Εκδόσεις Κλειδάριθµος, Το βιβλίο είναι µετάφραση της δεύτερης Αµερικάνικης έκδοσης του «Fundamentals of Programming Languages» Horowitz Ellis, Computer Science Press, 1984

35 BIB IO PAºIA 35 [Horowitz 95] Horowitz Ellis, «Fundamentals of Programming Languages», Third edition, Computer Science Press, [Hsia 88] Hsia, Y. T., Ambler A., «Programming Through Pictorial transformations», Proc. Int l Conf. Computer Languages 88, IEEE CS Press, Los Alamitos, Calif., Order No. 1988, pp [Kernighan 88] Η δεύτερη έκδοση του βιβλίου «The C Programming Language» κυκλοφόρησε το 1988 καλύπτοντας πλέον την ANSI C. Αποτελεί το πλέον έγκυρο βιβλίο µετά το ISO/IEC 9899, πολύ καλό για αναφορά αλλά πολύ δύσκολο για να χρησιµοποιηθεί για εκµάθηση της γλώσσας. Ελληνική έκδοση σε µετάφραση από τον Κλειδάριθµο [Maulsby 89] Maulsby D. L., Witten H., «Inducing Programs in a Direct Manipulation Environment», Proc. CHI 89, ACM Press, New York, 1989, pp [Ritchie 93] Ritchie M. Dennis, «The Development of the C Language», ACM SIGPLAN Notices, March 93, p Το άρθρο δίνει µια πολύ καλή αναφορά στην εξέλιξη της γλώσσας C. [Sethi 97] Sethi Ravi, «Programming Languages: Concepts and Constructs» 2 nd Edition, Addison Wesley, Reprinted with corrections, April, [Wexelblat 81] Wexelblat L. Richard, «History of Programming Languages», Los Angeles, Περιέχει τα πρακτικά του πρώτου ACM SIGPLAN συνεδρίου «History of Programming Languages» Los Angeles on June 1 3, Καταγράφει τις γλώσσες προγραµµατισµού που δηµιουργήθηκαν το τέλος της δεκαετίας 60 (1967) και παρέµεναν σε χρήση µέχρι το 1977, επη-

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ E π A π π ª π EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ TfiÌÔ ' KÏ ÓıË Ú ÌappleÔ Ï Ë ÏÒÛÛ ÚÔÁÚ ÌÌ ÙÈÛÌÔ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

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

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ E π A π π ª π EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ TfiÌÔ A' HÏ appleèù ÎË EÈÛ ÁˆÁ ÛÙËÓ EappleÈÛÙ ÌË ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Μάριος Αραποστάθης Καθηγητής πληροφορικής Βαρβάκειου Λύκειου http://users.sch.gr/mariosarapostathis 6.1 Η έννοια του

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

Tεχνολογία Λογισµικού II

Tεχνολογία Λογισµικού II Tεχνολογία Λογισµικού II ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα ΣΧΕ ΙΑΣΜΟΣ ΛΟΓΙΣΜΙΚΟΥ Τόµος B' Tεχνολογία Λογισµικού II BAΣIΛEIOΣ

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

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

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

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία σημαντικά στάδια: 1. Τον ακριβή προσδιορισμό του προβλήματος. 2. Την ανάπτυξη

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

E π A π π ª π. Â È ÛÌfi ÔÁÈÛÌÈÎÔ. TfiÌÔ ' ÏÒÛÛÂ ÚÔÁÚ ÌÌ ÙÈÛÌÔ II. KÏÂ ÓıË Ú ÌappleÔ Ï Ë. (AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊ ÚÔÁÚ ÌÌ ÙÈÛÌfi )

E π A π π ª π. Â È ÛÌfi ÔÁÈÛÌÈÎÔ. TfiÌÔ ' ÏÒÛÛÂ ÚÔÁÚ ÌÌ ÙÈÛÌÔ II. KÏÂ ÓıË Ú ÌappleÔ Ï Ë. (AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊ ÚÔÁÚ ÌÌ ÙÈÛÌfi ) E π A π π ª π Â È ÛÌfi ÔÁÈÛÌÈÎÔ TfiÌÔ ' KÏÂ ÓıË Ú ÌappleÔ Ï Ë ÏÒÛÛÂ ÚÔÁÚ ÌÌ ÙÈÛÌÔ II (AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊ ÚÔÁÚ ÌÌ ÙÈÛÌfi ) ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών

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

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

Εισαγωγή στον προγραμματισμό Ενότητες: Εισαγωγή στον προγραμματισμό Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Ιεραρχική Σχεδίαση Τμηματικός Προγραμματισμός Δομημένος προγραμματισμός

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

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.

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

Κεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 1 Προγραμματισμός Υπολογιστή Καραμαούνας Πολύκαρπος 1 7.1 Η προγραμματιζόμενη μηχανή Από τις βασικότερες διαφορές ανάμεσα στον υπολογιστή και στις περισσότερες ηλεκτρονικές συσκευές είναι η δυνατότητα

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εισαγωγή Κώστας Στεργίου Τι είναι ο Η/Υ; Ένας ηλεκτρονικός υπολογιστής (Η/Υ) είναι

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

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραµµα σπουδών "ΠΛΗΡΟΦΟΡΙΚΗ" - Θ.Ε. ΠΛΗ11 Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@cs.ntua.gr

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

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

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Προγραµµατισµός Η/Υ Ο προγραµµατισµός είναι η διατύπωση του αλγορίθµου σε µορφή κατανοητή από τον Η/Υ ώστε να τον εκτελέσει («τρέξει» όπως λέµε στην ορολογία της

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

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

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

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

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

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

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

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

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ ' MÈ Ï ÓÔ ËÌ. XÚÈÛÙÔ Ô Ï ÎË B ÛÂÈ Â ÔÌ ÓˆÓ

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ ' MÈ Ï ÓÔ ËÌ. XÚÈÛÙÔ Ô Ï ÎË B ÛÂÈ Â ÔÌ ÓˆÓ E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ TfiÌÔ ' MÈ Ï ÓÔ ËÌ. XÚÈÛÙÔ Ô Ï ÎË B ÛÂÈ Â ÔÌ ÓˆÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα

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

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 7.1. Ανάπτυξη Προγράµµατος Τι είναι το Πρόγραµµα; Το Πρόγραµµα: Είναι ένα σύνολο εντολών για την εκτέλεση ορισµένων λειτουργιών από τον υπολογιστή.

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

Προγραµµατισµός Ι Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι Νικόλαος Δ. Τσελίκας

Προγραµµατισµός Ι Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι Νικόλαος Δ. Τσελίκας Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Αναδροµή Σύντοµη Αναδροµή Η γλώσσα προγραµµατισµού C είναι µία γλώσσα

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

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ 2.3.1.1. Παπαγιάννη Νάσια Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ 1 περιλαμβάνει: Η έννοια του προγράμματος Επίλυση προβλήματος 1. Ακριβή προσδιορισμό

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

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1 ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια. ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια. Τον ακριβή προσδιορισμό του προβλήματος. Την ανάπτυξη του αντίστοιχου αλγορίθμου.

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟ ΛΑΘΟΣ Σημειώστε αν είναι σωστή ή

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

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

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

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

Κεφάλαιο 1: Εισαγωγή. Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών. Γιάννης Γαροφαλάκης ΤΜΗΥΠ - Πανεπιστήμιο Πατρών

Κεφάλαιο 1: Εισαγωγή. Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών. Γιάννης Γαροφαλάκης ΤΜΗΥΠ - Πανεπιστήμιο Πατρών Κεφάλαιο 1: Εισαγωγή Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών Εισαγωγή (1) Γιατί υπάρχουν τόσες πολλές Γλώσσες Προγραμματισμού (ΓΠ); o Εξέλιξη έχουμε μάθει καλύτερους τρόπους να κάνουμε πράγματα

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

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Προγραμματισμός Η/Υ Προτεινόμενα θέματα εξετάσεων Εργαστήριο Μέρος 1 ό ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Ιανουάριος 2011 Καλογιάννης Γρηγόριος Επιστημονικός/ Εργαστηριακός

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΩΝ ΜΕ ΥΠΟΛΟΓΙΣΤΗ: Στάδιο 1: Ακριβής Προσδιορισμός του Προβλήματος Στάδιο 2: Ανάπτυξη του Αντίστοιχου Αλγόριθμου Στάδιο 3: Διατύπωση του αλγόριθμου

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

E π A π π ª π. Ú ÌÌÈÎfi ÚÔÁÚ ÌÌ ÙÈÛÌfi. MÔÓÙÂÏÔappleÔ ËÛË. TfiÌÔ A' M ÓÔ PÔ ÌÂÏÈÒÙË Î È ÚÔÛÔÌÔ ˆÛË

E π A π π ª π. Ú ÌÌÈÎfi ÚÔÁÚ ÌÌ ÙÈÛÌfi. MÔÓÙÂÏÔappleÔ ËÛË. TfiÌÔ A' M ÓÔ PÔ ÌÂÏÈÒÙË Î È ÚÔÛÔÌÔ ˆÛË E π A π π ª π Ú ÌÌÈÎfi ÚÔÁÚ ÌÌ ÙÈÛÌfi Î È MÔÓÙÂÏÔappleÔ ËÛË TfiÌÔ A' M ÓÔ PÔ ÌÂÏÈÒÙË MÔÓÙÂÏÔappleÔ ËÛË Î È ÚÔÛÔÌÔ ˆÛË ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Κεφάλαιο 1 Εισαγωγή στη C

Κεφάλαιο 1 Εισαγωγή στη C Κεφάλαιο 1 Εισαγωγή στη C 1.1 Ιστορία της C Η γλώσσα προγραμματισμού C δημιουργήθηκε στα εργαστήρια Bell στις αρχές της δεκαετίας του 70 για να μεταφερθεί το λειτουργικό σύστημα Unix από ένα σύστημα DEC

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

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Κεφάλαιο 6ο Εισαγωγή στον Προγραµµατισµό Μέρος Πρώτο (6.1, 6.2 και 6.3) Α. Ερωτήσεις Σωστού Λάθους 1. Η γλώσσα µηχανής είναι µία γλώσσα υψηλού επιπέδου.

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

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις Προγραµµατισµός Η/Υ Ανασκόπηση - Ορισµοί Περιεχόµενα Ο κύκλος ανάπτυξης προγράµµατος Περιγραφή προβλήµατος Ανάλυση προβλήµατος Λογικό ιάγραµµα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραµµατισµού

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

Προγραµµατισµός Η/Υ. Μέρος2

Προγραµµατισµός Η/Υ. Μέρος2 Προγραµµατισµός Η/Υ Μέρος2 Περιεχόμενα Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής Αλγόριθμος Ψευδοκώδικας Παραδείγματα Αλγορίθμων Γλώσσες προγραμματισμού 2 Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 1ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Ορισμός Wikipedia.org 2 Δομημένος προγραμματισμός (structured programming) ή διαδικαστικός προγραμματισμός (procedural

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

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr Κανόνες Ομαλής Λειτουργίας Ερχόμαστε στην ώρα μας Δεν καπνίζουμε και τρώμε εντός της αίθουσας

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

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

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

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

Θεωρία Πληροφορίας και Kωδικοποίησης

Θεωρία Πληροφορίας και Kωδικοποίησης Θεωρία Πληροφορίας και Kωδικοποίησης Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστηµονική

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Καθηγητής Πληροφορικής ΠΕ19 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6 ο : ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ Η έννοια του προγράμματος

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις

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

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ B' ÂÈÙÔ ÚÁÈÎ ÛÙ Ì Ù I

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ B' ÂÈÙÔ ÚÁÈÎ ÛÙ Ì Ù I E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ TfiÌÔ B' ÏÔ apple Ú ÎË ÂÈÙÔ ÚÁÈÎ ÛÙ Ì Ù I ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα APXEΣ TEXNOΛOΓIAΣ

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 1: Εισαγωγή στη C - Αλγόριθμοι Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

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

ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË

ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË E π A π π ª π ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË TfiÌÔ A' B Û ÏÂÈÔ KfiÌË È ÎÙÈÎ ÙË ÏËÚÔÊÔÚÈÎ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα

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

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Ποιες γλώσσες αναφέρονται ως φυσικές και ποιες ως τεχνητές; Ως φυσικές γλώσσες αναφέρονται εκείνες οι οποίες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων,

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

E π A π π ª π. ÚÔÁÚ ÌÌ ÙÈÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. TfiÌÔ A' Â È ÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. AÁÁÂÏfiappleÔ ÏÔ

E π A π π ª π. ÚÔÁÚ ÌÌ ÙÈÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. TfiÌÔ A' Â È ÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. AÁÁÂÏfiappleÔ ÏÔ E π A π π ª π ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ TfiÌÔ A' X Ú Ï ÌappleÔ AÁÁÂÏfiappleÔ ÏÔ Â È ÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IAΣΦAΛIΣH

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

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό ΚΕΦΑΛΑΙΟ VI Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου σημαντικά στάδια. Τον ακριβή προσδιορισμό του προβλήματος. Την ανάπτυξη του αντίστοιχου αλγορίθμου.

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1 ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 03/01/09 Χαράλαμπος Τζόκας 1 Πρόγραμμα - Προγραμματισμός Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης

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

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται

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

Προγραμματισμός Η/Υ. Ενότητα 1: Εισαγωγή στον Προγραμματισμό

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

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

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

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος

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

Εισαγωγή. Ανάπτυξη Συστημάτων Λογισμικού. Οργάνωση μαθήματος. #1. Εισαγωγή στον Προγραμματισμό

Εισαγωγή. Ανάπτυξη Συστημάτων Λογισμικού. Οργάνωση μαθήματος. #1. Εισαγωγή στον Προγραμματισμό Εισαγωγή #. Εισαγωγή στον Προγραμματισμό Στόχοι Απόκτηση δεξιοτήτων στην επίλυση προβλημάτων με διαδικαστικό τρόπο (μέσω προγραμματισμού) Ανάπτυξη αλγοριθμικής σκέψης Θεμελίωση βασικών αρχών προγραμματισμού,

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

Εισαγωγή στον δομημένο προγραμματισμό

Εισαγωγή στον δομημένο προγραμματισμό Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 1 η : Εισαγωγή Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη

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

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

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

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

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

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

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

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

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

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

Γλώσσες Προγραμματισμού Μεταγλωττιστές

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

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

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 1ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΓΙΑΤΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ; Στα μαθηματικά και στη φυσική συχνά έχουμε

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

EÈ ÈÎ Ì Ù ÁÈ ÙËÓ ÔÈfiÙËÙ

EÈ ÈÎ Ì Ù ÁÈ ÙËÓ ÔÈfiÙËÙ E π A π π ª π EÈ ÈÎ Ì Ù ÁÈ ÙËÓ ÔÈfiÙËÙ TfiÌÔ B' NÈÎfiÏ Ô TÚ ÏÈ EappleÈıÂÒÚËÛË ÛÙËÌ ÙˆÓ ÁÈ ÙËÓ ÔÈfiÙËÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IAΣΦAΛIΣH ΠOIOTHTAΣ

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

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

Πληροφορική 2. Γλώσσες Προγραμματισμού

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

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

E π A π π ª π. È ÎÚÈÙ M ıëì ÙÈÎ. Î È M ıëì ÙÈÎ ÔÁÈÎ. TfiÌÔ A' È ÎÚÈÙ M ıëì ÙÈÎ ÂÒÚÁÈÔ BÔ ÚÔ

E π A π π ª π. È ÎÚÈÙ M ıëì ÙÈÎ. Î È M ıëì ÙÈÎ ÔÁÈÎ. TfiÌÔ A' È ÎÚÈÙ M ıëì ÙÈÎ ÂÒÚÁÈÔ BÔ ÚÔ E π A π π ª π È ÎÚÈÙ M ıëì ÙÈÎ Î È M ıëì ÙÈÎ ÔÁÈÎ TfiÌÔ A' ÂÒÚÁÈÔ BÔ ÚÔ È ÎÚÈÙ M ıëì ÙÈÎ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛΗΡΟΦΟΡΙΚΗ Θεµατική Eνότητα

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

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

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

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

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ E π A π π ª π ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ TfiÌÔ E' AÓ Ú T fiáèô ÛÂÈ ÚÔÌËıÂ Ù AÁÔÚ ÛÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IAΣΦAΛIΣH ΠOIOTHTAΣ Θεµατική

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

Είναι μια αλληλουχία κατάλληλων οδηγιών(εντολών) που εκτελεί ο υπολογιστής για την επίλυση ενός προβλήματος.

Είναι μια αλληλουχία κατάλληλων οδηγιών(εντολών) που εκτελεί ο υπολογιστής για την επίλυση ενός προβλήματος. Û ØÓÒ ÔÖÓ Ö ÑÑ Ø Ñ ¾ Ç Ö ÐÓ ØÛÒ ÙÔÓÐÓ ØôÒ Ο υπολογιστής είναι εργαλείο επίλυσης προβλημάτων λόγω: ταχύτητας υπολογισμού και μεγέθους μνήμης γενικής χρησιμότητας μέσω της έννοιας του προγραμματισμού. Η

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

6. Εισαγωγή στον προγραµµατισµό

6. Εισαγωγή στον προγραµµατισµό 6. Εισαγωγή στον προγραµµατισµό 6.1 Η έννοια του προγράµµατος. 6.2 Ιστορική αναδροµή. 6.2.1 Γλώσσες µηχανής. ΗΜ04-Θ1Α 1. Ένα πρόγραµµα σε γλώσσα µηχανής είναι µια ακολουθία δυαδικών ψηφίων. 5. Ένα πρόγραµµα

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

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

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

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

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες:

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες: Άσκηση 5Α_5 26/3/2003 11.5. Άσκηση 5A - [αναγνώριση αντικειµένων-διάγραµµα κλάσεων] [Σε αντικατάσταση της άσκησης 5 του κεφαλαίου 11] 11.5.1. Περιγραφή Η άσκηση αυτή είναι η πρώτη από µία σειρά ασκήσεων

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στην FORTRAN Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Fortran FORmula TRANslation: (Μία από τις πρώτες γλώσσες τρίτης γενιάς) Εκδόσεις FORTRAN (1957) FORTRAN II (1958) FORTRAN III

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

OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ

OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ E π A π Δ π Δ ª π OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ Aı Ó ÛÈÔ X ÛÈ Îfi ËÌ ÙÚÈÔ ÂÔ ˆÚ ÎfiappleÔ ÏÔ TfiÌÔ ' XÚÔÓÈÎfi Î È OÈÎÔÓÔÌÈÎfi ÚÔÁÚ ÌÌ ÙÈÛÌfi ŒÚÁˆÓ Xρονικός και Oικονομικός Προγραμματισμός Έργων Σημείωση Το

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β Καβακλή Χειμερινό Εξάμηνο 2001 Στόχοι του Μαθήματος! Ανάπτυξη αναλυτικής

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

B ÛÈÎ EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ

B ÛÈÎ EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ E π A π π ª π B ÛÈÎ EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ TfiÌÔ E' Aı Ó ÛÈÔ apple ÚÁ ÚË ÂÈÁÌ ÙÔÏË ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IΣΦAΛIΣH

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

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1 Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1 6.3 Φυσικές και τεχνητές γλώσσες Μια γλώσσα γενικά προσδιορίζεται από: 1. Το αλφάβητο: το σύνολο των στοιχείων που χρησιμοποιεί

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

K ÓÔ.ÛÂÏÈ.(168ÛÂÏ.) :13 ÂÏ 1 (M ÚÔ ÙÛ ÁÎÔ) Eπιστήµη Eπιφανειών

K ÓÔ.ÛÂÏÈ.(168ÛÂÏ.) :13 ÂÏ 1 (M ÚÔ ÙÛ ÁÎÔ) Eπιστήµη Eπιφανειών K ÓÔ.ÛÂÏÈ.(168ÛÂÏ.) 18-10-06 09:13 ÂÏ 1 (M ÚÔ ÙÛ ÁÎÔ) Eπιστήµη Eπιφανειών Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως

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

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης H ΓΛΩΣΣΑ C Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Α. Θεωρία 1. Κύκλος Ανάπτυξης Προγράµµατος 1. Συγγραφή και Μεταγλώττιση ενός προγράµµατος 2. Εκτέλεση του προγράµµατος

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

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

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 6: Αλγόριθμοι / Προγραμματισμός Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

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

ΠαράδειγµαΠρογραµµατισµού

ΠαράδειγµαΠρογραµµατισµού Προγραµµατισµός Η/Υ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Μεθοδολογία Προγραµµατισµού Αφαιρετικότητα Ροή Ελέγχου/ εδοµένων Βιβλίο µαθήµατος: Chapter 1,, Sec. 4-54 ΕΠΛ 131 Αρχές Προγραµµατισµού

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

ΕΠΛ 034: Εισαγωγήστον ΠρογραµµατισµόγιαΗΜΥ

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

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

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ E π A π π ª π ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ TfiÌÔ ' AÓ Ú T fiáèô TÔ KfiÛÙÔ ÙË ÔÈfiÙËÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IAΣΦAΛIΣH ΠOIOTHTAΣ Θεµατική

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Κεφάλαιο 6 «Εισαγωγή στον Προγραμματισμό» Στέφανος Ουγιάρογλου Διαφάνειες από υλικό του Χ. Μουρατίδη Προγραμματισμός Η/Υ Ο προγραμματισμός είναι η διατύπωση

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

Π ρ ο γ ρ α μ μ α τ ι σ μ ό ς Β α σ ι κ έ ς έ ν ν ο ι ε ς Ι σ τ ο ρ ι κ ή α ν α δ ρ ο μ ή Η έννοια του προγράμματος Ιστορική αναδρομή

Π ρ ο γ ρ α μ μ α τ ι σ μ ό ς Β α σ ι κ έ ς έ ν ν ο ι ε ς Ι σ τ ο ρ ι κ ή α ν α δ ρ ο μ ή Η έννοια του προγράμματος Ιστορική αναδρομή Προγραμματισμός Βασικές έννοιες Ιστορική αναδρομή Η έννοια του προγράμματος Η περιγραφή της λύσης ενός προβλήματος, ως γνωστόν, γίνεται με τη βοήθεια ενός αλγορίθμου. Έτσι οι εντολές ενός προγράμματος

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

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

Προγραμματισμός και Εφαρμογές Υπολογιστών Προγραμματισμός και Εφαρμογές Υπολογιστών Ενότητα 1: Αλγόριθμοι και Επίλυση Προβλημάτων Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης Διδάσκων: Κ.Π. Γιαλούρης Μαθησιακοί Στόχοι Ενότητας Απόκτηση αναλυτικής και

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

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

Εισαγωγή στην γλώσσα προγραμματισμού C Εισαγωγή στην γλώσσα προγραμματισμού C Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο

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

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ E π A π π ª π ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ TfiÌÔ A' ˆÎÚ ÙË K ÙÛÈÎ AÛÊ ÏÂÈ YappleÔÏÔÁÈÛÙÒÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH

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

Μέρος Α. Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ. Το σηµερινό µάθηµα. Λογισµικό συστηµάτων & εφαρµογών

Μέρος Α. Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ. Το σηµερινό µάθηµα. Λογισµικό συστηµάτων & εφαρµογών ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΙΟΙΚΗΣΗΣ Το σηµερινό µάθηµα ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ιδάσκων: Πέτρος Βασιλικός Λογισµικό Υπολογιστικών Συστηµάτων Λογισµικό & Προγράµµατα συστηµάτων

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

Από τον αλγόριθμο στην ανάπτυξη προγράμματος

Από τον αλγόριθμο στην ανάπτυξη προγράμματος Από τον αλγόριθμο στην ανάπτυξη προγράμματος 2 [ 23 ] 2. Από τον αλγόριθμο στην ανάπτυξη προγράμματος Στόχοι Μετά την μελέτη του κεφαλαίου θα μπορούμε να: περιγράφουμε την πορεία από τον αλγόριθμο στο

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

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου 49 Διδακτικές ενότητες 6.1 Γλώσσες και εργαλεία προγραμματισμού 6.2 Σύγχρονα προγραμματιστικά περιβάλλοντα Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν την ανάγκη ύπαρξης τόσο

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

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β. Καβακλή Χειμερινό Εξάμηνο 2001 1 Δοκιμή Έλεγχος Αλγορίθμου Για να

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