Γλώσσες προγραμματισμού

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

Download "Γλώσσες προγραμματισμού"

Transcript

1 1 Γλώσσες προγραμματισμού 1.1. Εισαγωγή Τα προγράμματα των υπολογιστών είναι μαγεία εν δράσει. Το κάθε πρόγραμμα μοιάζει με ένα περίπλοκο, αλλά και καλαίσθητο, μαγικό ξόρκι. και το καλύτερο είναι ότι με την εκτέλεση ενός προγράμματος ανακαλύπτουμε ότι τελικά τα μάγια πιάνουν! Ακόμα και όταν το πρόγραμμά μας δεν κατορθώνει ακριβώς αυτό που είχαμε κατά νου, εντούτοις κάτι κατορθώνει πράγμα που σίγουρα δεν ισχύει για τα περισσότερα ξόρκια. Και η απόλαυση αυτής της έμπρακτης μαγείας είναι η δύναμη που ωθεί πολλούς αρχάριους στον προγραμματισμό, και που συνεχίζει να ανταμείβει τους έμπειρους προγραμματιστές. Ο συγγραφέας, τουλάχιστον, βιώνει αμείωτη αυτήν την απόλαυση εδώ και 20 χρόνια ενασχόλησης με τον προγραμματισμό. Το βιβλίο αυτό πραγματεύεται τις γλώσσες προγραμματισμού. Περιέχει διδακτικές εισαγωγές σε τρεις γλώσσες προγραμματισμού: την ML, την Java και την Prolog. 1 Οι γλώσσες αυτές είναι πολύ διαφορετικές μεταξύ τους, και αν γνωρίσετε έστω και ένα τμήμα καθεμίας από αυτές, θα έχετε τρία σαφώς διαφορετικά στίγματα στη διάθεσή σας για να «πλοηγηθείτε» στις αρχές των γλωσσών προγραμματισμού. Εάν θελήσετε να ασχοληθείτε και πρακτικά με αυτές τις γλώσσες, δεν θα δυσκολευτείτε καθόλου: υπάρχουν καλές και δωρεάν υλοποιήσεις και για τις τρεις τους, σε ποικιλία υπολογιστικών πλαισίων. Ανάμεσα στα διδακτικά κεφάλαια θα βρείτε κεφάλαια με περισσότερο φιλοσοφικό προσανατολισμό, τα οποία πραγματεύονται με πιο αφηρημένο τρόπο διάφορα σοβαρά ζητήματα που αφορούν τις γλώσσες προγραμματισμού. Αν και αυτά τα κεφάλαια έχουν πιο αφηρημένο χαρακτήρα, δεν απαιτούν ιδιαίτερο μαθηματικό υπόβαθρο. Οι γλώσσες προγραμματισμού στηρίζονται, βέβαια, σε πολύ ενδιαφέροντα και ιδιαίτερα κομψά μαθηματικά, αλλά προσφέρουν επίσης άφθονο υλικό μελέτης το οποίο δεν απαιτεί μαθηματικές γνώσεις δυσπρόσιτες ή και αδιάφορες σε πολλούς αναγνώστες. 1 Στα έντυπα εγχειρίδια των παλαιότερων γλωσσών, τα ονόματα των γλωσσών αναγράφονταν συνήθως με κεφαλαία γράμματα: FORTRAN, COBOL και BASIC. Στα νεώτερα εγχειρίδια, ακόμη και σε αυτά που αφορούν διαλέκτους των παλαιότερων γλωσσών, τα ονόματα αναγράφονται συνήθως σε μικτή γραφή: Fortran. Η σύμβαση που ακολουθούμε σε αυτό το βιβλίο είναι η εξής: για τα ονόματα που προφέρονται σαν λέξεις (π.χ. Java και Prolog) χρησιμοποιούμε μικτή γραφή, ενώ για τα ονόματα που προφέρονται σαν ακολουθίες γραμμάτων του αγγλικού αλφαβήτου (όπως η ML, που προφέρεται «εμ-ελ»), χρησιμοποιούμε κεφαλαιογράμματη γραφή.

2 2 ΚΕΦΑΛΑΙΟ 1 ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πριν συνεχίσετε όμως, θα πρέπει να λάβετε υπ όψιν ότι το βιβλίο αυτό προϋποθέτει ικανοποιητική γνώση μίας τουλάχιστον γλώσσας προγραμματισμού, σε επίπεδο που αντιστοιχεί περίπου σε μια εισαγωγή διάρκειας δύο διδακτικών εξαμήνων. Δεν έχει σημασία ποια γλώσσα γνωρίζετε. Εάν όμως δεν έχετε προγραμματίσει ποτέ στη ζωή σας, τότε αυτό το βιβλίο δεν είναι ό,τι καταλληλότερο για να αρχίσετε. Στο υπόλοιπο αυτού του εισαγωγικού κεφαλαίου θα εξετάσουμε εκείνα τα στοιχεία που κάνουν τις γλώσσες προγραμματισμού ένα τόσο ενδιαφέρον θέμα: την εκπληκτική ποικιλία αυτών των γλωσσών, τις παράξενες αντιμαχίες που προκαλούν, την αξιοπερίεργη εξέλιξή τους, και τις πολλαπλές διασυνδέσεις τους με τους υπόλοιπους κλάδους της πληροφορικής Η εκπληκτική ποικιλία Ένα από τα στοιχεία που κάνουν τις γλώσσες προγραμματισμού τόσο γοητευτικό αντικείμενο μελέτης είναι η ποικιλομορφία τους. Ας ρίξουμε μια ματιά σε τέσσερεις γλώσσες που ανήκουν σε εντελώς ανόμοια είδη. οι τρεις από αυτές είναι οι βασικές γλώσσες με τις οποίες θα ασχοληθούμε σε αυτό το βιβλίο. Προστακτικές γλώσσες Ας δούμε ένα παράδειγμα προστακτικής γλώσσας, της γλώσσας C. Πρόκειται για μια συνάρτηση factorial(n), που υπολογίζει το παραγοντικό (factorial) ενός φυσικού αριθμού n: int factorial(int n) { int sofar = 1; while (n > 0) sofar *= n--; return sofar; Το παραπάνω παράδειγμα περιέχει τις δύο «σφραγίδες γνησιότητας» κάθε προστακτικής γλώσσας: την τιμοδότηση και την επανάληψη. Η εντολή «sofar *= n--;» της γλώσσας C τιμοδοτεί τη μεταβλητή sofar. Η μεταβλητή αυτή έχει κάποια τρέχουσα τιμή η οποία μεταβάλλεται κάθε φορά που πραγματοποιείται μια τιμοδότηση. Η εντολή επιδρά επίσης στη μεταβλητή n, μειώνοντας κάθε φορά την τιμή της κατά μία μονάδα. Ο βρόχος «while» επαναλαμβάνει διαρκώς την εντολή. Τελικά, σε κάποιο βήμα αυτής της επανάληψης, η τρέχουσα τιμή της μεταβλητής n θα γίνει μηδέν, και η επανάληψη θα σταματήσει. Καθώς οι τιμές των μεταβλητών αλλάζουν σε κάθε βήμα, η σειρά εκτέλεσης των εντολών του προγράμματος έχει καίρια σημασία. Οι έννοιες που μόλις αναφέραμε είναι τόσο στοιχειώδεις, που περνούν απαρατήρητες από τους περισσότερους προγραμματιστές της γλώσσας C: για αυτούς είναι προφανές ότι η σειρά εκτέλεσης των εντολών παίζει καίριο ρόλο, και εξίσου προφανές ότι οι τιμές των μεταβλητών μεταβάλλονται. Υπάρχουν όμως πολλές γλώσσες προγραμ ματισμού για τις οποίες όλα τα παραπάνω δεν έχουν κανένα νόημα. γλώσσες στις οποίες δεν υπάρχουν ούτε τιμοδοτικές εντολές, ούτε επαναληπτικές εντολές, ούτε η έννοια της αλλαγής της «τρέχουσας τιμής» μιας μεταβλητής.

3 1.2 Η ΕΚΠΛΗΚΤΙΚΗ ΠΟΙΚΙΛΙΑ 3 Συναρτησιακές γλώσσες Ας δούμε την ίδια συνάρτηση (του παραγοντικού) υλοποιημένη στη γλώσσα ML: fun factorial x = if x <= 0 then 1 else x * factorial(x-1); Το παραπάνω παράδειγμα περιλαμβάνει δύο από τις «σφραγίδες γνησιότητας» των συναρτησιακών γλωσσών: την αναδρομή και τις μονότιμες μεταβλητές 2. Η αναδρομή είναι μια προγραμματιστική τεχνική τόσο φυσική στους προγραμματιστές της ML, όσο φυσικές είναι οι επαναληπτικές εντολές στους προγραμματιστές της C. Η ίδια συνάρτηση υλοποιημένη στη γλώσσα Lisp θα είχε ως εξής: (defun factorial (x) (if (<= x 0) 1 (* x (factorial (- x 1))))) Όπως βλέπετε, η Lisp έχει ιδιόρρυθμη σύνταξη. Αυτή η συντακτική διαφορά είναι όμως επιφανειακή. Σε βαθύτερο επίπεδο, η συνάρτηση factorial γραμμένη στη Lisp και η συνάρτηση factorial γραμμένη στην ML σχετίζονται μεταξύ τους πολύ περισσότερο απ όσο σχετίζεται η καθεμία από αυτές με τη συνάρτηση factorial γραμμένη στη γλώσσα C: και οι δύο είναι γραμμένες στο συναρτησιακό ύφος, χωρίς τιμοδοτικές ή επαναληπτικές εντολές. Τα δύο παραπάνω παραδείγματα ίσως φαίνονται πιο κομψά από την εκδοχή της C, αλλά μια τέτοια σύγκριση δεν είναι δίκαιη. Το συναρτησιακό είδος προγραμματισμού ταιριάζει ιδιαίτερα σε συναρτήσεις όπως αυτή του παραγοντικού. Σε άλλα είδη προβλημάτων, όπως π.χ. ο πολλαπλασιασμός πινάκων, το πλεονέκτημα θα το είχαν οι προστακτικές γλώσσες προγραμματισμού. Λογικοκεντρικές γλώσσες Η συνάρτηση του παραγοντικού, ενώ είναι το καταλληλότερο παράδειγμα για τη γλώσσα ML, είναι ίσως το χειρότερο για την Prolog. Παρά ταύτα ας δούμε τι μορφή έχει στην Prolog: factorial(x,1) :- X =:= 1. factorial(x,f) :- X > 1, NewX is X - 1, factorial(newx,newf), F is X * NewF. 2 Σ.τ.Μ.: Μεταβλητές από το variables όσο βέβαια τα συμφραζόμενα επιτρέπουν να ονομάζεται «μεταβλητή» κάτι που μένει σταθερό. Οι «μεταβλητές» των συναρτησιακών γλωσσών (όπως η ML) είναι ακριβέστερα επώνυμες σταθερές, γι αυτό ο σχετικός όρος της ML, που θα δοθεί αργότερα, είναι val από το value = τιμή και όχι var, από το variable = μεταβλητή.

4 4 ΚΕΦΑΛΑΙΟ 1 ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Οι πρώτες δύο γραμμές εκφράζουν έναν κανόνα που επιτρέπει στο σύστημα της Prolog να συμπεράνει ότι όταν το X ισούται με 1 το παραγοντικό του X είναι 1. Οι υπόλοιπες πέντε γραμμές κώδικα καθορίζουν έναν γενικό τρόπο για να διαπιστώνει κανείς ότι το παραγοντικό του X ισούται με κάποια δεδομένη τιμή. Συγκεκριμένα: «Για να αποδείξεις ότι το παραγοντικό του X ισούται με F, αρκεί να κάνεις τα εξής: να αποδείξεις ότι το X είναι μεγαλύτερο του 1. να αποδείξεις ότι το NewX είναι μικρότερο του X κατά 1. να αποδείξεις ότι το παραγοντικό του NewX ισούται με NewF. και τέλος να αποδείξεις ότι το F ισούται με X επί NewF». Η διατύπωση ενός προγράμματος μέσω κανόνων λογικού συμπερασμού είναι η «σφραγίδα γνησιότητας» του λογικού προγραμματισμού. Αν και αυτό το είδος προγραμματισμού δεν είναι το καταλληλότερο για τον υπολογισμό μαθηματικών συναρτήσεων, υπάρχουν κατηγορίες προβλημάτων στα οποία υπερέχει ξεκάθαρα. Παραδείγματα τέτοιων προβλημάτων θα δούμε από το Κεφάλαιο 19 και παρακάτω. Οντοστρεφείς γλώσσες Η συνάρτηση του παραγοντικού γραμμένη στη γλώσσα Java φαίνεται σχεδόν ίδια με την εκδοχή της στη γλώσσα C. Η Java όμως είναι μια οντοστρεφής γλώσσα, πράγμα που σημαίνει ότι αφ ενός είναι προστακτικού τύπου, και αφ ετέρου έχει σχεδιαστεί ώστε να διευκολύνει την επίλυση των διαφόρων προβλημάτων μέσω οντοτήτων (ή, αλλιώς, αντικειμένων). Ονομάζουμε οντότητα μια (συνήθως μικρή) δέσμη δεδομένων η οποία «γνωρίζει» πώς να χειρίζεται τον εαυτό της. Για παράδειγμα, ας δούμε τον ορισμό σε Java μιας οντότητας που φέρει έναν ακέραιο αριθμό, και «γνωρίζει» πώς να αναφέρει τόσο τον αριθμό αυτό, όσο και το παραγοντικό του. public class MyInteger { private int value; public MyInteger(int value) { this.value = value; public int getvalue() { return value; public MyInteger getfactorial() { return new MyInteger(factorial(value)); private int factorial(int n) { int sofar = 1; while (n > 1) sofar *= n--; return sofar; Το παραπάνω παράδειγμα οντοστρεφούς προγραμματισμού φαίνεται φλύαρο σε σχέση με τα προηγούμενα, αλλά και πάλι η σύγκριση δεν είναι δίκαιη: ο οντοστρε

5 φής προγραμματισμός έχει σχεδιαστεί ώστε να διευκολύνει την οργανωμένη σύνταξη προγραμμάτων πολύ μεγάλου μεγέθους, και ως εκ τούτου δεν φανερώνει τα προτερήματά του σε παραδείγματα μικρού μεγέθους. Είδαμε λοιπόν παραδείγματα από τέσσερεις οικογένειες γλωσσών: τις προστακτικές (όπως η C), τις συναρτησιακές (όπως η ML), τις λογικοκεντρικές (όπως η Prolog), και τις οντοστρεφείς (όπως η Java). Κάθε γλώσσα προγραμματισμού μπορεί, με λίγη προσπάθεια, να καταταγεί σε κάποια από αυτές τις τέσσερεις κατηγορίες. Αυτές οι κατηγορίες δεν είναι όμως προσδιορισμένες με αυστηρότητα, και γι αυτό δεν είναι πάντοτε σαφές ποιoς είναι ο ορθότερος τρόπος ταξινόμησης μιας γλώσσας. Υπάρχουν πάμπολλες γλώσσες που κινούνται στα όρια μεταξύ των κατηγοριών αυτών. Στην πράξη συναντάμε περισσότερες κατηγορίες γλωσσών, όχι μόνο αυτές τις τέσσερεις. Οι διάφορες γλώσσες προγραμματισμού έχουν κατά καιρούς χαρακτηριστεί ως εφαρμοστικές, συγχρονικές, περιοριστικές, δηλωτικές, οριστικές, διαδικαστικές, σεναριογραφικές, μονοτιμοδοτικές και πάει λέγοντας. Μάλιστα, ορισμένες από αυτές είναι τόσο ιδιόμορφες που η ένταξή τους σε μια κατηγορία στερείται νοήματος. Ας εξετάσουμε π.χ. τη γλώσσα Forth. Ο προγραμματισμός της συνάρτησης του παραγοντικού σε αυτή τη γλώσσα θα είχε ως εξής: : FACTORIAL 1 SWAP BEGIN?DUP WHILE TUCK * SWAP 1- REPEAT ; Η Forth είναι μια στοιβoστρεφής γλώσσα, όπως λ.χ. η PostScript είναι σελιδοστρεφής. Η μονολεκτική εντολή SWAP της Forth εναλλάσσει τα δύο κορυφαία στοιχεία της στοίβας που διατηρεί η γλώσσα αυτή. Θα μπορούσαμε να αποκαλέσουμε την Forth προστακτική γλώσσα, αλλά αυτό δεν θα είχε ιδιαίτερο νόημα, καθώς έχει ελάχιστα κοινά στοιχεία με τις περισσότερες άλλες προστακτικές γλώσσες. Θεωρήστε επίσης την APL. Για να εκφραστεί η συνάρτηση παραγοντικού στη γλώσσα αυτή, αρκεί η παρακάτω έκφραση: / ι X Η APL φημίζεται για τη χρήση πάμπολλων ειδικών χαρακτήρων που απουσιάζουν από τα συνηθισμένα πληκτρολόγια. Η παραπάνω έκφραση δηλώνει ότι το X θα πρέπει να αναπτυχθεί σε μια ακολουθία διαδοχικών ακεραίων από το 1 έως το X, και όλοι αυτοί οι αριθμοί να πολλαπλασιαστούν μεταξύ τους. (Στην πράξη, δεν θα χρειαζόσασταν αυτήν την έκφραση, διότι στην APL μπορούμε να δηλώσουμε το παραγοντικό του X απλώς ως!x.) Θα μπορούσαμε να αποκαλέσουμε την APL συναρτησιακή γλώσσα, αλλά και πάλι δεν θα είχε νόημα: η APL έχει ελάχιστα κοινά σημεία με τις περισσότερες άλλες συναρτησιακές γλώσσες Οι παράξενες αντιμαχίες 1.3 ΟΙ ΠΑΡΑΞΕΝΕΣ ΑΝΤΙΜΑΧΙΕΣ 5 Υπάρχουν κάποια γνωστικά αντικείμενα που φαίνονται εκ του φυσικού τους αμφιλεγόμενα: η βιολογική εξέλιξη, η αρχική Μεγάλη Έκρηξη του σύμπαντος, η ανθρώπινη σεξουαλικότητα γενικά, οποιοδήποτε θέμα απασχολεί τακτικά την επιστημονική στήλη της εφημερίδας The New York Times είναι βέβαιο ότι θα προκαλέσει

6 6 ΚΕΦΑΛΑΙΟ 1 ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ πολλές αντιδικίες. Ισχύει όμως το ίδιο και για τις γλώσσες προγραμματισμού; Το δικό μας πεδίο μελέτης σπάνια διεισδύει μέχρι τα πρωτοσέλιδα των εφημερίδων, και είναι μάλλον ελάχιστοι αυτοί που το γνωρίζουν και που ενδιαφέρονται για αυτό. Παρά ταύτα, και παραδόξως, το θέμα των γλωσσών προγραμματισμού εγείρει συχνά θερμότατες διαμάχες. Κατ αρχάς, για κάθε γλώσσα προγραμματισμού θα βρείτε οπαδούς της πρόθυμους να υπερασπιστούν αυτήν την προτίμησή τους ενάντια σε κάθε άλλη γλώσσα. Μερικοί οπαδοί της ML «είναι στα μαχαίρια» με οπαδούς της γλώσσας Haskell. Οι οπαδοί της Forth θα πικραθούν, χωρίς πάντως να εκπλαγούν, όταν διαπιστώσουν ότι κρατούν άλλο ένα εγχειρίδιο που αγνοεί τη δική τους αγαπημένη γλώσσα. Διάφοροι οπαδοί της Prolog είναι αδύνατον να κατανοήσουν για ποιο λόγο ο λογικός προγραμματισμός δεν έχει υιοθετηθεί από όλους τους προγραμματιστές. Και υπάρχουν οπαδοί της Fortran πλήρως πεπεισμένοι ότι η δική τους προτίμηση δεν είναι μόνο η πρώτη ιστορικά, αλλά και η πρώτη σε σπουδαιότητα γλώσσα υψηλού επιπέδου. Ανάμεσα στους θιασώτες της ίδιας γλώσσας ανακύπτουν διαμάχες άλλου είδους. Τα πρότυπα των γλωσσών προγραμματισμού αναπτύσσονται συχνά μέσω διεθνών επιτροπών. Ποιοι είναι οι «εγγυητές», και ποιοι συμμετέχουν τελικά σε τέτοιες διαδικασίες αποφάσεων; Τι πρόκειται και τι δεν πρόκειται να συμπεριληφθεί στην επόμενη επίσημη έκδοση μιας γλώσσας; Η ανάπτυξη των προδιαγραφών για κάποια γλώσσα προγραμματισμού συχνά είναι διαδικασία εντυπωσιακά αργή, περίπλοκη και... μνησίκακη. Αυτό που ενδιαφέρει περισσότερο εμάς είναι οι συχνές διαφωνίες που αφορούν τους θεμελιώδεις ορισμούς. Έχουμε ήδη χρησιμοποιήσει τον όρο οντοστρεφής, ο οποίος είναι ένας από τους πιο έντονα αμφιλεγόμενους όρους. Ποιες ακριβώς ιδιότητες θα πρέπει να έχει μια γλώσσα ώστε να μπορεί να θεωρηθεί οντοστρεφής; Εμείς θα παρακάμψουμε αυτό το ερώτημα, παραθέτοντας μόνο μια άτυπη περιγραφή των οντοστρεφών γλωσσών. Θα αποφύγουμε γενικότερα να δώσουμε απολύτως αυστηρούς ορισμούς για τέτοιους αμφιλεγόμενους όρους, για δύο λόγους. Πρώτον, θα ήταν κάπως υποκριτικό να ισχυριστούμε ότι υπάρχει καν ορισμός, τη στιγμή που στην πραγματικότητα υπάρχουν πολλοί και ασύμβατοι ορισμοί. Και δεύτερον, διότι οι αυστηροί ορισμοί δεν θα είχαν πρακτική χρησιμότητα: ένας αυστηρός ορισμός λ.χ. για τον όρο «οντοστρεφής» απλώς θα πυροδοτούσε διαμάχες της μορφής: «η δική μου γλώσσα μου είναι οντοστρεφής ενώ η δική σου δεν είναι». Για τα ζητήματα που μας ενδιαφέρουν σε αυτό το βιβλίο, οι άτυπες περιγραφές είναι πιο χρήσιμες. Κάποιες γλώσσες είναι πράγματι πιο οντοστρεφείς από κάποιες άλλες, αλλά θα αφήσουμε τέτοια ζητήματα στη κρίση του αναγνώστη. 3 3 Στους μαθηματικούς κύκλους, η ανταλλαγή σκληρών αλλά και ασαφών επιχειρημάτων αποκαλείται συχνά «βατραχομυομαχία». Την έκφραση αυτή είχε χρησιμοποιήσει ως γνωστόν ο Albert Einstein για να χαρακτηρίσει μια έντονη διαμάχη μεταξύ των μαθηματικών David Hilbert και L.E.J. Brouwer, την οποία είχε αποκαλέσει στα γερμανικά «Frosch-Mäuse-Krieg» (δηλ. βατραχομυομαχία). Ο όρος προέρχεται από έναν γνωστό αρχαιοελληνικό μύθο: χρησιμοποιείται σε μια ελληνιστική παρωδία της Ιλιάδας που φέρει τον τίτλο Βατραχομυομαχία. Οι παράξενες αντιμαχίες στις γλώσσες προγραμματισμού ανήκουν συχνά στο είδος των βατραχομυομαχιών.

7 1.4. Η αξιοπερίεργη εξέλιξη 1.5 ΟΙ ΠΟΛΛΑΠΛΕΣ ΔΙΑΣΥΝΔΕΣΕΙΣ 7 Οι ερευνητές του κλάδου επινοούν διαρκώς καινούργιες γλώσσες προγραμματισμού. Ίσως όχι ακριβώς καινούργιες, αφού οι σχεδιαστές γλωσσών στηρίζονται σε ιδέες από προηγούμενες γλώσσες. Ο σχεδιαστής μιας νέας γλώσσας, όμως, έχει λυμένα τα χέρια του, διότι δεν δεσμεύεται από προβλήματα συμβατότητας με τυχόντα προϋπάρχοντα προγράμματα. Κάποιες νέες γλώσσες αποκτούν ευρεία απήχηση, κάποιες άλλες παρακμάζουν. Είτε καθιερωθούν είτε όχι, οι καινούργιες γλώσσες διαμορφώνουν το πλαίσιο των ιδεών από το οποίο θα προέλθουν οι επόμενες γενεές γλωσσών. Η διαδικασία σχεδίασης μιας νέας γλώσσας είναι αργή και έχει αυξητικό χαρακτήρα. Όλες σχεδόν οι γλώσσες, ακόμα και οι πιο νέες, αναπτύσσουν διάφορες «διαλέκτους». Λίγο πρωτύτερα μνημονεύσαμε τη σεβάσμια γλώσσα Fortran, στην πράξη όμως δεν υπάρχει «η» Fortran. Σε πρώτη φάση υπήρξαν τα αρχικά σχέδια και οι πρώτες υλοποιήσεις της Fortran από την εταιρεία IBM, που χρονολογούνται από τα μέσα της δεκαετίας του Ακολούθησε μια σειρά από πρότυπα: Fortran I, Fortran II, Fortran III, Fortran IV, Fortran 66, Fortran 77, Fortran 90, Fortran 95, και, πιθανόν Fortran Τα νέα πρότυπα παραγκωνίζουν τα παλαιά με βραδύ ρυθμό και σε ορισμένες περιπτώσεις ποτέ: πολλοί προγραμματιστές χρησιμοποιούν ακόμα την Fortran 77. Για κάθε διάλεκτο πιθανόν να υπάρχουν διαφορετικές υλοποιήσεις για τα διάφορα συστήματα λογισμικού και υλισμικού, καθεμία από τις οποίες διευκρινίζει το αρχικό πρότυπο με διαφορετικό τρόπο. Επιπλέον, εμφανίζονται διάλεκτοι που εξυπηρετούν εξειδικευμένους σκοπούς: π.χ. έχουν εμφανιστεί πάνω από δέκα διάλεκτοι της Fortran που προσθέτουν σε αυτήν ειδικές γλωσσικές δυνατότητες για παράλληλο προγραμματισμό. Είτε απότομα είτε βαθμιαία, οι γλώσσες προγραμματισμού μεταβάλλονται. Και μάλιστα πολύ πιο γρήγορα απ ό,τι οι φυσικές γλώσσες. Εάν ασχοληθείτε με τον προγραμματισμό σε μακροπρόθεσμη βάση, τότε είναι σχεδόν βέβαιο ότι θα πρέπει διαρκώς να μαθαίνετε νέες διαλέκτους και νέες γλώσσες. Θα ήταν πιο εύκολο να είχαμε μια παντοτινά αναλλοίωτη γλώσσα, βολική όσο τα ήδη φορεμένα ρούχα μας. Αφού αυτό όμως δεν είναι εφικτό, ας απολαύσουμε τουλάχιστον την ιστορία των γλωσσών προγραμματισμού καθώς εκτυλίσσεται μέσα στον χρόνο Οι πολλαπλές διασυνδέσεις Το βιβλίο αυτό πραγματεύεται τις ίδιες τις γλώσσες προγραμματισμού, και όχι τον καθαυτό προγραμματισμό, δηλαδή το πώς να γράφετε καλά προγράμματα. Μερικές φορές βέβαια θα σχολιάσουμε και ζητήματα που αφορούν το προγραμματιστικό ύφος, διότι οι γλώσσες δεν μένουν ουδέτερες σε αυτό το θέμα. Κάθε γλώσσα 4 Οι επιτροπές τυποποίησης συχνά είναι υπεραισιόδοξες ως προς τις ονομασίες που δίνουν στα σχέδιά τους: Το πρότυπο Fortran 90 ονομάστηκε διαδοχικά Fortran 82, 8X, και 88, πριν κυκλοφορήσει τελικά ως Fortran 90 (εντός του 1991!). Το πρότυπο Fortran 2000 είχε ανακοινωθεί ότι θα κυκλοφορήσει εντός του 2002.

8 8 ΚΕΦΑΛΑΙΟ 1 ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ υποστηρίζει κάποιο ιδιαίτερο ύφος προγραμματισμού, δηλαδή μια συγκεκριμένη προσέγγιση στο πώς να λύνουμε προβλήματα με αλγοριθμικό τρόπο. Η συσχέτιση γλωσσών προγραμματισμού και προγραμματιστικής πρακτικής έχει αντίκτυπο και στα δύο. Από τη μία πλευρά, οι γλώσσες προγραμματισμού κατευθύνουν τον προγραμματιστή προς ένα συγκεκριμένο ύφος προγραμματισμού. Οι οντοστρεφείς γλώσσες, όπως η Java, ωθούν τους προγραμματιστές να χρησιμοποιούν οντότητες. Οι συναρτησιακές γλώσσες, όπως η ML, οδηγούν τους προγραμματιστές προς ένα ύφος προγραμματισμού που βασίζεται σε πολλές μικρές συναρτήσεις. Οι λογικοκεντρικές γλώσσες, όπως η Prolog, ενθαρρύνουν τους προγραμματιστές να εκφράζουν τη λύση των προβλημάτων ως αναζήτηση σε ένα λογικώς προσδιορισμένο σύνολο ενδεχόμενων λύσεων. Το να γράφετε προγράμματα σε ύφος αναντίστοιχο με τη γλώσσα που χρησιμοποιείτε είναι μεν εφικτό, αλλά σίγουρα δεν είναι καλή πρακτική. Μπορείτε να συντάξετε προστακτικά προγράμματα με βρόχους και τιμοδοτήσεις ακόμα και στην ML (αν και αυτό το βιβλίο δεν πρόκειται να σας εξηγήσει πώς γίνεται αυτό!). Μπορείτε να γράψετε προγράμματα Java τα οποία δεν δημιουργούν ούτε μία οντότητα και απλώς ενσωματώνουν έναν μεγάλο όγκο συνηθισμένου προστακτικού κώδικα στον ορισμό μιας μοναδικής κλάσης οντοτήτων. Στην Java, όπως και σε οποιαδήποτε άλλη γλώσσα που υποστηρίζει αναδρομή, είναι δυνατόν να γράψετε συναρτησιακά προγράμματα χωρίς επαναληπτικές εντολές ή τιμοδοτήσεις. Όλα τα παραπάνω όμως δεν είναι παρά οι εξαιρέσεις που επιβεβαιώνουν τον κανόνα: όταν προγραμματίζετε σε ύφος αφύσικο προς τη γλώσσα εργασίας, όταν δηλαδή αντιμάχεστε τον χαρακτήρα αυτής της γλώσσας, θα νοιώσετε ότι η ίδια η γλώσσα αντιστέκεται. Από την άλλη πλευρά, η προγραμματιστική πρακτική οδηγεί συχνά τους προγραμματιστές προς νέες ιδέες όσον αφορά τις γλώσσες. Για παράδειγμα, ο John McCarthy εισήγαγε στη Lisp την αναδρομή και τις υποθετικές εκφράσεις, διότι διαπίστωσε ότι ήταν απαραίτητες για τις εφαρμογές τεχνητής νοημοσύνης που ανέπτυσσε. Οι «κλάσεις» και οι «οντότητες» εισήχθησαν στη Simula διότι οι σχεδιαστές της, Kristen Nygaard και Ole-Johan Dahl, τις χρειάζονταν για τις μεγάλες προσομοιώσεις που υλοποιούσαν. Στο Κεφάλαιο 24 θα αναφέρουμε και άλλα τέτοια περιστατικά από την ιστορία των γλωσσών προγραμματισμού. Οι γλώσσες προγραμματισμού διαπλέκονται όχι μόνον με την προγραμματιστική πρακτική, αλλά και με πολλούς άλλους κλάδους της επιστήμης των υπολογιστών. Η εξέλιξη των γλωσσών καθοδηγεί, και επίσης καθοδηγείται από, την εξέλιξη του υλισμικού. Η θεωρία τυπικών γλωσσών και αυτομάτων, ένας από τους πιο μαθηματικοποιημένους κλάδους της επιστήμης των υπολογιστών, έχει πολλές εφαρμογές στον ορισμό και την υλοποίηση γλωσσών προγραμματισμού. Τα λειτουργικά συστήματα αλληλεπιδρούν στενά με τις γλώσσες προγραμματισμού. Όλοι οι τομείς εφαρμογών (τεχνητή νοημοσύνη, δίκτυα, βάσεις δεδομένων, επιχειρηματικές εφαρμογές, αριθμητικοί υπολογισμοί, κ.ο.κ.) καταθέτουν τη δική τους άποψη για το ζήτημα της σχεδίασης των γλωσσών προγραμματισμού.

9 1.6. Σύντομο σχόλιο για τις Διεπαφές για Προγραμματισμό Εφαρμογών Οι σύγχρονες εμπορικές γλώσσες προγραμματισμού υποστηρίζονται από μεγάλες και τυποποιημένες βιβλιοθήκες έτοιμου κώδικα, τις λεγόμενες Διεπαφές για Προγραμματισμό Εφαρμογών (ΔιΠΕ). Μια ΔιΠΕ είναι δυνατόν να περιέχει κώδικα που υλοποιεί βασικές δομές δεδομένων (στοίβες, ουρές, πίνακες διασποράς, κ.λπ.), διδιάστατα και τριδιάστατα γραφικά, γραφιστικές διεπαφές εργασίας, υποστήριξη δικτύου, διαχείριση αρχείων, κρυπτογράφηση και ασφάλεια, και πολλές άλλες υπηρεσίες. Η αφομοίωση των περιεχομένων και του τρόπου χρήσης κάποιας ΔιΠΕ είναι από τα βασικά καθήκοντα των μαχόμενων προγραμματιστών. Η έντυπη περιγραφή των προδιαγραφών μιας γλώσσας συχνά έχει μικρότερο μέγεθος από την έντυπη τεκμηρίωση μιας ΔιΠΕ. Αναφέρουμε εδώ τις Διεπαφές για Προγραμματισμό Εφαρμογών για να τις αγνοήσουμε. Αν και είναι σημαντικότατες, δεν είναι το αντικείμενό μας. Στα διδακτικά κεφάλαια αυτού του βιβλίου περί ML, Java και Prolog θα βρείτε αρκετές πληροφορίες ώστε να είστε σε θέση να λύνετε απλά προβλήματα. Για την ανάπτυξη εφαρμογών μεγάλης κλίμακας θα χρειαστείτε βαθύτερη γνώση των αντίστοιχων ΔιΠΕ, η οποία δεν εμπίπτει στους στόχους αυτού του βιβλίου Ανακεφαλαίωση 1.7 ΑΝΑΚΕΦΑΛΑΙΩΣΗ 9 Στο κεφάλαιο αυτό εξηγήσαμε ορισμένους λόγους για τους οποίους ο συγγραφέας είναι γοητευμένος από τις γλώσσες προγραμματισμού. Πολλοί αναγνώστες ενός βιβλίου παραλείπουν να διαβάσουν το εισαγωγικό κεφάλαιο, φοβούμενοι ότι θα είναι ασαφές και βαρετό, γεμάτο γενικότητες γύρω από ένα θέμα για το οποίο δεν γνωρίζουν ακόμα τίποτα συγκεκριμένο. Το δικό μας εισαγωγικό κεφάλαιο δεν αποτελεί εξαίρεση, αλλά τουλάχιστον ήταν σύντομο. Στο κεφάλαιο αυτό περιγράψαμε επίσης τη δομή αυτού του βιβλίου: είναι ένα μείγμα από πρακτικά-διδακτικά και θεωρητικά κεφάλαια. Όλα τα κεφάλαια αυτού του βιβλίου εκτός από το πρώτο και το τελευταίο έχουν στο τέλος τους κάποιες ασκήσεις. Πολλά περιλαμβάνουν και μια ενότητα με βιβλιογραφικές υποδείξεις για περαιτέρω μελέτη. Το επόμενο κεφάλαιο είναι το πρώτο από τα θεωρητικά. Ασχολείται με το πώς ορίζουμε τη σύνταξη μιας γλώσσας προγραμματισμού. (Το πρώτο πρακτικό διδακτικό κεφάλαιο είναι το 5, και αφορά τη συναρτησιακή γλώσσα ML.)

ΣΥΓΧΡΟΝΕΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΣΥΓΧΡΟΝΕΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Adam Brooks Webber University of Winsconsin - Milwaukee ΣΥΓΧΡΟΝΕΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Μια πρακτική εισαγωγή Μετάφραση επιστημονική επιμέλεια: Γεώργιος Φρ. Γεωργακόπουλος Ιωάννης Παπαδόγγονας E-BOOK

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

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

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

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

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ Μ. Γρηγοριάδου Ρ. Γόγουλου Ενότητα: Η Διδασκαλία του Προγραμματισμού Περιεχόμενα Παρουσίασης

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

ΛΟΓΙΣΜΟΣ ΜΙΑΣ ΜΕΤΑΒΛΗΤΗΣ, ΕΣΠΙ 1

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

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

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

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ Α) Να γράψετε στο τετράδιό σας τον αριθμό κάθε πρότασης και δίπλα το γράμμα "Σ", αν είναι σωστή, ή το γράμμα "Λ", αν είναι λανθασμένη. (Μονάδες 25) 1. Ένα αδόμητο πρόβλημα είναι ταυτόχρονα και ανοικτό

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

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 5.1 Επίδοση αλγορίθμων Μέχρι τώρα έχουμε γνωρίσει διάφορους αλγόριθμους (αναζήτησης, ταξινόμησης, κ.α.). Στο σημείο αυτό θα παρουσιάσουμε ένα τρόπο εκτίμησης της επίδοσης (performance) η της αποδοτικότητας

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

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

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

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

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

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

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

Τύποι δεδομένων, τελεστές, μεταβλητές

Τύποι δεδομένων, τελεστές, μεταβλητές Τύποι δεδομένων, τελεστές, μεταβλητές Βασικά στοιχεία της γλώσσας Η Java χαρακτηρίζεται από ένα αρκετά καλά οργανωμένο σύνολο εντολών κι ένα μέρος της επιτυχίας της οφείλεται στα διάφορα APIs (βιβλιοθήκες)

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

Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις

Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις Σύνοψη Σκοπός του κεφαλαίου αυτού είναι η εισαγωγή του αναγνώστη στη φιλοσοφία του συναρτησιακού προγραμματισμού. Ο συναρτησιακός προγραμματισμός

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

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

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

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

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

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

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

τις αναδρομικές ακολουθίες (recursive sequences) στις οποίες ορίζαμε

τις αναδρομικές ακολουθίες (recursive sequences) στις οποίες ορίζαμε Κεφάλαιο 9: Αναδρομή Ο τρόπος με τον οποίο σκεφτήκαμε και σχεδιάσαμε τις συναρτήσεις στο προηγούμενο κεφάλαιο ακολουθούσε τη φιλοσοφία του προγραμματισμού που είχαμε αναπτύξει σε όλο το προηγούμενο βιβλίο.

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

Η ΑΕΠΠ IN A GLANCE! ΦΡΟΝΤΙΣΤΗΡΙΑ ΠΟΛΥΜΕΝΗ

Η ΑΕΠΠ IN A GLANCE! ΦΡΟΝΤΙΣΤΗΡΙΑ ΠΟΛΥΜΕΝΗ Η ΑΕΠΠ IN A GLANCE! Κατανομή μονάδων: 40 μονάδες το 1 ο Θέμα, από 20 τα υπόλοιπα τρία. Μην χαίρεστε όμως γιατί η «καθαρή» θεωρία περιορίζεται συνήθως- σε 5 ερωτήσεις σωστού ή λάθους και σε 1-2 ερωτήσεις

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Σάββατο, 4 Ιουνίου 2005 ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ Γ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1o Α. 1. Να αναφέρετε ονοµαστικά τα κριτήρια που πρέπει απαραίτητα να ικανοποιεί ένας αλγόριθµος.

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

Περίγραμμα. Διαδικαστικά. Εργαστήρια Τεχνικών Προγραμματισμού 21/2/2017. ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού

Περίγραμμα. Διαδικαστικά. Εργαστήρια Τεχνικών Προγραμματισμού 21/2/2017. ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού http://eclass.di.uoa.gr/d419/ Τμήμα Αρτίων ΑΜ Αίθουσα A2 Τετάρτη 11-13 και Πέμπτη 11-13 Περίγραμμα Διαδικαστικά (Εργασίες, Εξετάσεις, κλπ) Ένταξη στο Πρόγραμμα

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

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων; ΦΡΟΝΤΙΣΤΗΡΙΑΚΟΣ ΟΡΓΑΝΙΣΜΟΣ ΘΕΜΑ Α ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ 01/03/2015 Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1.

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

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

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

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

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

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

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΣΕΠΤΕΜΒΡΙΟΥ 2015 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 6 ΘΕΜΑ

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

Σχέδια μαθημάτων για την δημιουργία συναρτήσεων υπολογισμού του ΜΚΔ και του ΕΚΠ στην MSWLogo

Σχέδια μαθημάτων για την δημιουργία συναρτήσεων υπολογισμού του ΜΚΔ και του ΕΚΠ στην MSWLogo Σχέδια μαθημάτων για την δημιουργία συναρτήσεων υπολογισμού του Μέγιστου Κοινού Διαιρέτη (ΜΚΔ) και του Ελάχιστου Κοινού Πολλαπλασίου (ΕΚΠ) δύο αριθμών, με την γλώσσα προγραμματισμού Logo Κογχυλάκης Σ.

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ 2005

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ 2005 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ 2005 ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ 1ο Α. 1. Να αναφέρετε ονοµαστικά τα κριτήρια που πρέπει απαραίτητα

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ - ΓΛΩΣΣΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Τεχνικές Σχεδίασης Αλγορίθμων Εισαγωγή στον Προγραμματισμό - ΓΛΩΣΣΑ Επιμέλεια: Ομάδα Διαγωνισμάτων από Το στέκι των πληροφορικών ο Θέμα 1 Α. α) Ποια είναι

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

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

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

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

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού http://eclass.di.uoa.gr/d419/ Τμήμα Αρτίων ΑΜ Αίθουσα A2 Τετάρτη 11-13 και Πέμπτη 11-13 Γιάννης Κοτρώνης domes@di.uoa.gr Περίγραμμα Διαδικαστικά (Εργασίες,

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

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

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

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

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

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

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

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

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

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

Αρχές Προγραμματισμού Υπολογιστών

Αρχές Προγραμματισμού Υπολογιστών Αρχές Προγραμματισμού Υπολογιστών Ανάπτυξη Προγράμματος Β ΕΠΑΛ Τομέας Πληροφορικής Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Κύκλος ανάπτυξης προγράμματος/λογισμικού Η διαδικασία ανάπτυξης λογισμικού,

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

Για Ι από 2 μέχρι 10 με_βήμα 0 S S+I Τέλος_επανάληψης Εμφάνισε S Μονάδες 5

Για Ι από 2 μέχρι 10 με_βήμα 0 S S+I Τέλος_επανάληψης Εμφάνισε S Μονάδες 5 ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Σ ΗΜΕΡΗΣΙΟΥ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΣΑΒΒΑΤΟ 4 ΙΟΥΝΙΟΥ 2005 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

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

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

Outline. 4 Object-Oriented Programming

Outline. 4 Object-Oriented Programming Προγραμματισμός Ηλεκτρονικών Υπολογιστών Φιλοσοφίες γλωσσών προγραμματισμού Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Ιανουάριος 2016 ιδάσκων: Στάθης Ζάχος ( CoReLab

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

Σήμερα. Εργαστήρια Τεχνικών Προγραμματισμού. Διαδικαστικά 19/3/2015. ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού

Σήμερα. Εργαστήρια Τεχνικών Προγραμματισμού. Διαδικαστικά 19/3/2015. ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού http://eclass.di.uoa.gr/d419/ domes@di.uoa.gr Τμήμα Α - A2 Τετάρτη 11-13 και Πέμπτη 11-13 Τμήμα Β -Α2 Τετάρτη 15-17 και Πέμπτη 16-18 Παρακολουθείτε όποιο Τμήμα

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

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

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

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

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

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

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

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

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

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

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

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

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

A) Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-10 και δίπλα τη λέξη Σωστό, αν είναι σωστή, ή τη λέξη Λάθος, αν είναι

A) Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-10 και δίπλα τη λέξη Σωστό, αν είναι σωστή, ή τη λέξη Λάθος, αν είναι ΠΡΟΣΟΜΟΙΩΣΗ ΑΠΟΛΥΤΗΡΙΩΝ ΕΞΕΤΑΣΕΩΝ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΤΑΡΤΗ 27 ΑΠΡΙΛΙΟΥ 2011 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1ο A) Να γράψετε στο τετράδιό σας

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

Γράφοντας ένα σχολικό βιβλίο για τα Μαθηματικά. Μαριάννα Τζεκάκη Αν. Καθηγήτρια Α.Π.Θ. Μ. Καλδρυμίδου Αν. Καθηγήτρια Πανεπιστημίου Ιωαννίνων

Γράφοντας ένα σχολικό βιβλίο για τα Μαθηματικά. Μαριάννα Τζεκάκη Αν. Καθηγήτρια Α.Π.Θ. Μ. Καλδρυμίδου Αν. Καθηγήτρια Πανεπιστημίου Ιωαννίνων Γράφοντας ένα σχολικό βιβλίο για τα Μαθηματικά Μαριάννα Τζεκάκη Αν. Καθηγήτρια Α.Π.Θ. Μ. Καλδρυμίδου Αν. Καθηγήτρια Πανεπιστημίου Ιωαννίνων Εισαγωγή Η χώρα μας απέκτησε Νέα Προγράμματα Σπουδών και Νέα

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

Παραλλαγές στη Δομή Επανάληψης

Παραλλαγές στη Δομή Επανάληψης Παραλλαγές στη Δομή Επανάληψης Υποδειγματικό Σενάριο Γνωστικό αντικείμενο: Πληροφορική Δημιουργός: ΠΑΝΑΓΙΩΤΗΣ ΤΣΑΚΩΝΑΣ ΙΝΣΤΙΤΟΥΤΟ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΠΟΛΙΤΙΚΗΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ, ΕΡΕΥΝΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ Σημείωση

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

Αναδρομή Ανάλυση Αλγορίθμων

Αναδρομή Ανάλυση Αλγορίθμων Αναδρομή Ανάλυση Αλγορίθμων Παράδειγμα: Υπολογισμός του παραγοντικού Ορισμός του n! n! = n x (n - 1) x x 2 x 1 Ο παραπάνω ορισμός μπορεί να γραφεί ως n! = 1 αν n = 0 n x (n -1)! αλλιώς Παράδειγμα (συνέχ).

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

ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΗ ΔΙΟΙΚΗΣΗ ΚΑΙ ΣΤΗΝ ΟΙΚΟΝΟΜΙΑ 9 Ο ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΟΣΤΟΛΙΑ ΠΑΓΓΕ Περιεχόμενα 2 Η λειτουργία του υπολογιστή Κατηγορίες Εντολών Μορφή Εντολών

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Πρώτοι αριθμοί ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Ένας ακέραιος μεγαλύτερος του 1 είναι πρώτος αν έχει ακριβώς δύο διαιρέτες (τη μονάδα και τον εαυτό του). Πρόβλημα: έλεγχος

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

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

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΣΑΒΒΑΤΟ 4 ΙΟΥΝΙΟΥ 2005 ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΣΑΒΒΑΤΟ 4 ΙΟΥΝΙΟΥ 2005 ΘΕΜΑ 1ο Α. 1. Να αναφέρετε ονοµαστικά τα κριτήρια που πρέπει απαραίτητα να ικανοποιεί ένας αλγόριθµος. Μονάδες 5 2. Ποιο κριτήριο

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

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

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

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

ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α.

ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α. ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α. 1. Αν το Α έχει την τιµή 10 και το Β την τιµή 20 τότε η έκφραση (Α > 8 ΚΑΙ Β < 20) Ή (Α > 10 Ή Β = 10) είναι αληθής 2. Σε περίπτωση εµφωλευµένων βρόχων, ο εσωτερικός

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

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΣΕΠΤΕΜΒΡΙΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α :

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

5.1. Προσδοκώμενα αποτελέσματα

5.1. Προσδοκώμενα αποτελέσματα 5.1. Προσδοκώμενα αποτελέσματα Όταν θα έχεις ολοκληρώσει τη μελέτη αυτού του κεφαλαίου θα έχεις κατανοήσει τις τεχνικές ανάλυσης των αλγορίθμων, θα μπορείς να μετράς την επίδοση των αλγορίθμων με βάση

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

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

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

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

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ 1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Τάξη: Γ Μάθημα: Πληροφορική Εξεταστέα ύλη: Παρ11.1 & 11.2 Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών που περιγράφει τη διαδικασία

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

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή. ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα

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

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 1: Εισαγωγή- Χαρακτηριστικά Παραδείγματα Αλγορίθμων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

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

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

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

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

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

Για Ι από 2 μέχρι 10 με_βήμα 0 S S+I Τέλος_επανάληψης Εμφάνισε S Μονάδες 5

Για Ι από 2 μέχρι 10 με_βήμα 0 S S+I Τέλος_επανάληψης Εμφάνισε S Μονάδες 5 ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Σ ΗΜΕΡΗΣΙΟΥ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΣΑΒΒΑΤΟ 4 ΙΟΥΝΙΟΥ 2005 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΟ 2 2.4 Βασικές συνιστώσες/εντολές ενός αλγορίθμου 2.4.1 Δομή ακολουθίας ΚΕΦΑΛΑΙΟ 7 7.1 7.9 Σταθερές (constants): Προκαθορισμένες τιμές που παραμένουν

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

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

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

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

Δοκιμή και Αποσφαλμάτωση Testing and Debugging

Δοκιμή και Αποσφαλμάτωση Testing and Debugging Δοκιμή και Αποσφαλμάτωση Testing and Debugging XVI-1 Ο μεταγλωττιστής εντοπίζει τα συντακτικά λάθη ενός προγράμματος. Δεν είναι όμως σε θέση να εντοπίσει λάθη στη λογική του προγράμματος. δεδομένα πρόγραμμα

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

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

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

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

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

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

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

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

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

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

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

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

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

Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής.

Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. Κεφάλαιο 2 - Πρόβλημα 2.1.1. Η έννοια του προβλήματος Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. 2.1.2. Κατηγορίες προβλημάτων

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

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

ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 ο Α. Δίνεται η εντολή εκχώρησης: τ κ < λ Ποιες από τις παρακάτω προτάσεις είναι σωστές και ποιες λάθος. Να δικαιολογήσετε

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

Για Ι από 2 μέχρι 10 με_βήμα 0 S S+I Τέλος_επανάληψης Εμφάνισε S Μονάδες 5

Για Ι από 2 μέχρι 10 με_βήμα 0 S S+I Τέλος_επανάληψης Εμφάνισε S Μονάδες 5 ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΣΑΒΒΑΤΟ 4 ΙΟΥΝΙΟΥ 2005 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ)

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

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

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

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

Παιδαγωγικές δραστηριότητες μοντελοποίησης με χρήση ανοικτών υπολογιστικών περιβαλλόντων

Παιδαγωγικές δραστηριότητες μοντελοποίησης με χρήση ανοικτών υπολογιστικών περιβαλλόντων Παιδαγωγικές δραστηριότητες μοντελοποίησης με χρήση ανοικτών υπολογιστικών περιβαλλόντων Βασίλης Κόμης, Επίκουρος Καθηγητής Ερευνητική Ομάδα «ΤΠΕ στην Εκπαίδευση» Τμήμα Επιστημών της Εκπαίδευσης και της

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ Γ ΛΥΚΕΙΟΥ - 02/05/2014 ΘΕΜΑ Α Α1. Έστω ο παρακάτω αλγόριθμος ταξινόμησης: Για κ από.. μέχρι 19 Για λ από 19 μέχρι κ με_βήμα -1

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

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

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

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Οι εντολές ελέγχου της ροής ενός προγράμματος. Κεφάλαιο ΙΙI: Οι εντολές ελέγχου της ροής ενός προγράμματος 31 Εντολές ελέγχου της ροής Στο παρόν κεφάλαιο ασχολούμαστε με την σύνταξη των εντολών της C οι οποίες εισάγουν λογική και ελέγχουν την ροή εκτέλεσης

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

Η Απουσία του Χρόνου Σελίδα.1

Η Απουσία του Χρόνου Σελίδα.1 Η Απουσία του Χρόνου Σελίδα.1 (Επιφυλλίδα Οπισθόφυλλο) Ο Εαυτός και η Απουσία του Χρόνου Δεν είναι καθόλου συνηθισμένο να γίνονται συζητήσεις και αναφορές για την Απουσία του Χρόνου ακόμη και όταν υπάρχουν,

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

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΦΕΒΡΟΥΑΡΙΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α :

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

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

ΚΡΙΤΗΡΙΑ ΒΑΘΜΟΛΟΓΗΣΗΣ ΓΡΑΠΤΩΝ ΕΡΓΑΣΙΩΝ ΣΥΝΟΠΤΙΚΟΣ ΠΙΝΑΚΑΣ ΚΡΙΤΗΡΙΑ ΒΑΘΜΟΛΟΓΗΣΗΣ ΓΡΑΠΤΩΝ ΕΡΓΑΣΙΩΝ ΣΥΝΟΠΤΙΚΟΣ ΠΙΝΑΚΑΣ Ποιότητα ιδεών 5 Δομή 1.5 Παρουσίαση / Γλωσσική έκφραση 1.5 Έρευνα 2 Α: ΠΟΙΟΤΗΤΑ ΙΔΕΩΝ (5 μονάδες) Ο φοιτητής κατανοεί άριστα τη διατύπωση της

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Εργαστήριο 6 Εντολές Επανάληψης Η δομή Επιλογής στη PASCAL H δομή Επανάληψης στη PASCAL. Ρεύμα Εισόδου / Εξόδου.. Ρεύμα Εισόδου / Εξόδου. To πρόγραμμα γραφικών gnuplot. Γραφικά στη PASCAL. Σκοπός 6.1 ΕΠΙΔΙΩΞΗ

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

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

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

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

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

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

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

Σενάριο 13. Προγραμματίζοντας ένα Ρομπότ

Σενάριο 13. Προγραμματίζοντας ένα Ρομπότ Σενάριο 13. Προγραμματίζοντας ένα Ρομπότ Ταυτότητα Σεναρίου Τίτλος: Προγραμματίζοντας ένα Ρομπότ Γνωστικό Αντικείμενο: Πληροφορική Διδακτική Ενότητα: Ελέγχω-Προγραμματίζω τον Υπολογιστή Τάξη: Γ Γυμνασίου

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

8 FORTRAN 77/90/95/2003

8 FORTRAN 77/90/95/2003 ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1: Εισαγωγή... 17 1.1. Ανασκόπηση της ιστορίας των υπολογιστών... 18 1.2. Πληροφορία και δεδομένα... 24 1.3. Ο Υπολογιστής... 26 1.4. Δομή και λειτουργία του υπολογιστή... 28 1.5.

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

Πειραματιζόμενοι με αριθμούς στο περιβάλλον του Microworlds Pro: διαθεματική προσέγγιση περί «πολλαπλασίων και διαιρετών»

Πειραματιζόμενοι με αριθμούς στο περιβάλλον του Microworlds Pro: διαθεματική προσέγγιση περί «πολλαπλασίων και διαιρετών» Πειραματιζόμενοι με αριθμούς στο περιβάλλον του Microworlds Pro: διαθεματική προσέγγιση περί «πολλαπλασίων και διαιρετών» μια Νίκος Δαπόντες Φυσικός Δευτεροβάθμιας Εκπαίδευσης Το περιβάλλον Microworlds

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

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΕΡΛΙΑΟΥΝΤΑΣ ΣΤΕΦΑΝΟΣ, ΠΕ19 ΚΕΦΑΛΑΙΟ 3 Αλγόριθμοι 3. Αλγόριθμοι 2 3. Αλγόριθμοι 3.1 Η έννοια του αλγορίθμου 3.2 Χαρακτηριστικά αλγορίθμου 3.3 Ανάλυση αλγορίθμων

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

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα. i Π Ρ Ο Λ Ο Γ Ο Σ Το βιβλίο αυτό αποτελεί μια εισαγωγή στα βασικά προβλήματα των αριθμητικών μεθόδων της υπολογιστικής γραμμικής άλγεβρας (computational linear algebra) και της αριθμητικής ανάλυσης (numerical

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

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

ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ 1. ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦ. ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ Καράκιζα Τσαμπίκα 1. ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦ. 2ο-8ο:ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εισαγωγή στην εντολή «για» (2.4.5, 8.2.3) 2. ΤΑΞΗ: Γ Γενικού Λυκείου (τεχνολογική

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

Ενδεικτικές Ερωτήσεις Θεωρίας

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

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