ΚΕΦΑΛΑΙΟ 2: Δηλωτικός Προγραμματισμός

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

Download "ΚΕΦΑΛΑΙΟ 2: Δηλωτικός Προγραμματισμός"

Transcript

1 ΚΕΦΑΛΑΙΟ 2: Δηλωτικός Προγραμματισμός Λέξεις Κλειδιά Διαδικαστικός προγραμματισμός, Δηλωτικός προγραμματισμός, Διαδικαστική γλώσσα προγραμματισμού, Προστακτική γλώσσα προγραμματισμού, Δηλωτική γλώσσα προγραμματισμού. Περίληψη Το κεφάλαιο ξεκινά με την παρουσίαση της διάσημης πλέον "εξίσωσης" του R. Kowalski που περιγράφει την έννοια του δηλωτικού προγραμματισμού. Εξηγεί πως οι γλώσσες που ανήκουν στην κατηγορία αυτή επιτρέπουν στον προγραμματιστή απλά να περιγράφει το προς επίλυση πρόβλημα ενώ οι μηχανισμοί εκτέλεσης να αναλαμβάνουν την επίλυσή του. Η αναπαράσταση του προβλήματος απαιτείται να μην εμφανίζει αμφισημίες και να μπορεί να έχει μια εκφραστική ικανότητα η οποία επιτρέπει την αποδοτική αποτύπωση όλων των πτυχών του προς επίλυση προβλήματος: ένας τέτοιος φορμαλισμός παρέχεται από την κατηγορηματική λογική και τις γλώσσες λογικού προγραμματισμού. Το κεφάλαιο παραθέτει απλά παραδείγματα που τονίζουν την παραπάνω προσέγγιση και αποτελούν έναυσμα για την εισαγωγή στην κατηγορηματική λογική, στο λογικό προγραμματισμό και στη γλώσσα Prolog που ακολουθεί. Μαθησιακοί Στόχοι Το κεφάλαιο αυτό αποτελεί έναν προπομπό για τον τρόπο με τον οποίο σκέφτεται κάποιος που χρησιμοποιεί το λογικό προγραμματισμό για την ανάπτυξη εφαρμογών. Με την ολοκλήρωσή του ο αναγνώστης θα γνωρίζει: τη διαφορά ανάμεσα στο διαδικαστικό και το δηλωτικό προγραμματισμό και των σχετικών γλωσσικών εννοιών και μηχανισμών που καθορίζουν αυτή τη διαφοροποίηση, και τη διπλή δυνατότητα ερμηνείας των προγραμμάτων του λογικού προγραμματισμού (διαδικαστική και δηλωτική). Μονοπάτι Μάθησης Το κεφάλαιο αυτό λειτουργώντας ως προπομπός, αναφέρεται σε έννοιες που θα αναλυθούν διεξοδικά σε επόμενα κεφάλαια του βιβλίου. Ο αναγνώστης μπορεί να επανέλθει για μία δεύτερη ανάγνωση του κεφαλαίου όταν θα έχει εξοικειωθεί με το λογικό προγραμματισμό και την Prolog και θα έχει δοκιμάσει αρκετά προγράμματα από αυτά που αναφέρονται στα επόμενα κεφάλαια. 2.1 Διαδικαστικός και Δηλωτικός Προγραμματισμός Στις συμβατικές γλώσσες προγραμματισμού, όπως η Java και η C/C++, τα προγράμματα υλοποιούν αλγορίθμους, αναμιγνύοντας στον κώδικά τους τη λογική της λύσης του προβλήματος με τη διαδικασία ελέγχου της ροής εκτέλεσης του αλγορίθμου για την επίλυση του συγκεκριμένου προβλήματος. Συνυπάρχουν δηλαδή στον κώδικα του προγράμματος δύο βασικά στοιχεία: Η λογική (logic) του αλγορίθμου, που περιγράφει τι θέλουμε το πρόγραμμα να πετύχει: ποια είναι δηλαδή η λύση του προβλήματος. Ο έλεγχος (control), που περιγράφει τη σειρά των βημάτων που πρέπει να ακολουθηθούν για να βρεθεί η λύση του προβλήματος. Η συνύπαρξη των δύο αυτών στοιχείων για την υλοποίηση ενός αλγορίθμου, περιγράφεται στη συμβολική εξίσωση του R. Kowalski η οποία παρουσιάστηκε το 1979: Αλγόριθμος = Λογική + Έλεγχος (Algorithm = Logic + Control) 11

2 Η εξίσωση αυτή ήρθε να συμπληρώσει μία άλλη πολύ γνωστή συμβολική εξίσωση που είχε εισάγει λίγα χρόνια πριν, το 1976 ο N. Wirth: Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα (Algorithms + Data Structures = Programs) Για να κατανοήσουμε πώς συνδέεται η έννοια της λογικής ενός αλγορίθμου με τον έλεγχο της ροής εκτέλεσής του, ας δούμε για παράδειγμα τον κώδικα υλοποίησης του προβλήματος υπολογισμού του N παραγοντικό (N!) στη γλώσσα Java: Μία αφηρημένη μαθηματική περιγραφή του προβλήματος, που μπορεί να ορίσει τη λογική του αλγορίθμου είναι η εξής: Εάν N = 0 τότε N! = 1. Εάν N>0 τότε N! = 1x2x3x... x(n-1)xn. Το παρακάτω τμήμα κώδικα σε Java υλοποιεί τον αλγόριθμο με τη βοήθεια της μεθόδου factorial: int factorial(int N)throws wronginput { if (N==0) return 1; int NP=1; if (N>0) for (int Counter=1; i<=n; i=i+1) NP=NP*Counter; else throw new wronginput("το παραγοντικό δεν ορίζεται"); return NP;} Ο παραπάνω κώδικας περιλαμβάνει τη σειρά των εντολών που πρέπει να εκτελεστούν για να υπολογιστεί το παραγοντικό ενός δοθέντος αριθμού. Η λογική του αλγορίθμου κρύβεται ανάμεσα στις εντολές ελέγχου της ροής του προγράμματος (επιλογής if-then-else και επανάληψης for ). Ο αναγνώστης για να κατανοήσει τον κώδικα ενός προγράμματος, όπως το παραπάνω, πρέπει να μιμηθεί τη διαδικασία εκτέλεσης του από τη μηχανή, ελέγχοντας βήμα-βήμα τι σημαίνει. Για το λόγο αυτό, ο προγραμματισμός αυτός χαρακτηρίζεται με τον όρο διαδικαστικός προγραμματισμός (procedural programming). Επιπλέον, επειδή κάθε εντολή ερμηνεύεται ως μία διαταγή εκτέλεσης προς τη μηχανή, χρησιμοποιείται εναλλακτικά και ο όρος διατακτικός ή προστακτικός προγραμματισμός (imperative programming). Η πολυπλοκότητα ερμηνείας του κώδικα στις διαδικαστικές γλώσσες προγραμματισμού αυξάνει καθώς αυξάνει το μέγεθος του κώδικα. Αντίθετα, όπως θα περιγράψουμε αναλυτικά στο Kεφάλαιο 6, ο κώδικας της Prolog που υλοποιεί το παραπάνω πρόβλημα του παραγοντικού μπορεί να οριστεί με τη βοήθεια του αναδρομικού ορισμού του ως εξής: factorial(0,1). factorial(n,f):- N>0, N1 is N-1, factorial(n1,f1), F is N*F1. Στο παραπάνω πρόγραμμα απουσιάζουν παντελώς εντολές ελέγχου της ροής του προγράμματος και ο κώδικας της Prolog δεν κάνει τίποτε περισσότερο από το να αποδίδει τον αναδρομικό μαθηματικό ορισμό του Ν παραγοντικού: Εάν N = 0 τότε N! = 1 Εάν N>0 τότε N! =N x (N-1)! Με αυτό τον τρόπο δηλώνεται ο ορισμός του λογικού μόνο μέρους του προβλήματος και με την έννοια αυτή η προσέγγιση αυτή χαρακτηρίζεται ως δηλωτικός προγραμματισμός (declarative programming). Με βάση τα παραπάνω, ως ένα πρώτο συμπέρασμα μπορούμε να αναφέρουμε ότι ο δηλωτικός προγραμματισμός, σε αντίθεση με τον διαδικαστικό, επικεντρώνεται στην περιγραφή του Ποιο είναι το πρόβλημα και όχι στο Πώς αυτό θα επιλυθεί. Προκύπτουν έτσι δύο βασικοί τρόποι να περιγράψουμε τη σημασιολογία μίας γλώσσας προγραμματισμού ή ενός προγράμματος γραμμένου σε μία γλώσσα. (α) Η δηλωτική σημασιολογία (declarative semantics): χαρακτηρίζουμε τη σημασία ενός προγράμματος με βάση 12

3 του τι κάνει και (β) η διαδικαστική σημασιολογία (procedural semantics): χαρακτηρίζουμε τη σημασία ενός προγράμματος με βάση του πως το κάνει ή ισοδύναμα του τι γίνεται στη διάρκεια της εκτέλεσης του προγράμματος. Στη συνέχεια θα αναλύσουμε τα βασικά χαρακτηριστικά των μηχανισμών των γλωσσών προγραμματισμού που συντελούν σε αυτή τη διαφοροποίηση ανάμεσα στις δύο προσεγγίσεις. 2.2 Βασικά χαρακτηριστικά διαφοροποίησης του δηλωτικού από τον διαδικαστικό προγραμματισμό Η προσπάθεια ανάπτυξης προγραμμάτων με τρόπο ώστε να εκφράζεται η λογική (logic) του υπολογισμού χωρίς να περιγράφεται ο έλεγχος της ροής του (control), διατρέχει όλη την ιστορία της εξέλιξης των γλωσσών προγραμματισμού. Έτσι, παραδείγματος χάριν, θα μπορούσε κανείς να συγκρίνει τις πρώτες γλώσσες προγραμματισμού με τη γλώσσα μηχανής ή τη συμβολική γλώσσα (Assembly). Η δυνατότητα του υπολογισμού μίας μαθηματικής έκφρασης με τη βοήθεια μίας εντολής αντικατάστασης στην οποία αυτή παρατίθεται ως έχει στο δεξιό της μέρος, π.χ.: D = B*B-4*A*C /* Υπολογισμός της διακρίνουσας μιας δευτεροβάθμιας εξίσωσης*/ αποτέλεσε μία υψηλού αφαιρετικού επιπέδου περιγραφή του ποια είναι η προς επίλυση έκφραση, στην οποία αποκρύπτεται το πώς αυτή υπολογίζεται στο επίπεδο της περιγραφής του υπολογισμού της, με τη βοήθεια κώδικα γραμμένου σε γλώσσα μηχανής. Επίσης η εισαγωγή των υποπρογραμμάτων στις γλώσσες προγραμματισμού, ο δομημένος προγραμματισμός (structured programming) και στη συνέχεια ο αντικειμενοστρεφής προγραμματισμός (object-oriented programming) αποτέλεσαν τεχνικές ανάπτυξης προγραμμάτων με τις οποίες γίνεται προσπάθεια διαχωρισμού και απόκρυψης του κώδικα υλοποίησης από το τι κάνει η προγραμματιστική δομή που περιγράφει έναν υπολογισμό. Η ποιοτική όμως διαφορά ανάμεσα στον διαδικαστικό προγραμματισμό και στον δηλωτικό προγραμματισμό είναι ότι στην πρώτη περίπτωση ο διαχωρισμός των λεπτομερειών υλοποίησης από το ποιο είναι το προς επίλυση πρόβλημα ή το μέρος ενός προβλήματος, ανατίθεται στον προγραμματιστή μέσω γλωσσικών μηχανισμών ενώ στη δεύτερη περίπτωση η διαδικασία αυτή αναλαμβάνεται από την ίδια τη γλώσσα, στο επίπεδο του μηχανισμού εκτέλεσης της (μέσω του μεταγλωττιστή ή διερμηνέα). Στο δηλωτικό Προγραμματισμό δηλαδή, ο προγραμματιστής δηλώνει τι ισχύει για το πρόβλημα (αντικείμενα, ιδιότητες, συσχετίσεις, περιορισμοί) και το σύστημα, το οποίο μπορεί να είναι είτε ένας μεταγλωττιστής (compiler) είτε ένας διερμηνέας (interpreter), αναλαμβάνει μόνο του να συνδυάσει τις δηλώσεις και να επιλύσει το πρόβλημα. Δεν μπορεί να υπάρξει ένας αυστηρός ορισμός που να ορίσει με απόλυτο τρόπο το ποιες γλώσσες είναι γλώσσες δηλωτικού προγραμματισμού και ποιες όχι. Χαρακτηριστικές όμως κατηγορίες γλωσσών δηλωτικού προγραμματισμού αποτελούν οι γλώσσες λογικού προγραμματισμού, όπως η Prolog, οι γλώσσες συναρτησιακού προγραμματισμού, όπως η Lisp και η Haskell, και οι γλώσσες ερωταποκρίσεων βάσεων δεδομένων, όπως η SQL. Στο Λογικό Προγραμματισμό οι δηλώσεις είναι λογικές εκφράσεις και το σύστημα είναι ένας αποδείκτης θεωρημάτων (theorem prover). Στο Συναρτησιακό Προγραμματισμό οι δηλώσεις είναι ορισμοί συναρτήσεων και το σύστημα είναι μια μηχανή ροής δεδομένων (dataflow machine). Στην SQL ως σύστημα μπορεί να θεωρηθεί ο μηχανισμός βελτιστοποίησης των συστήματος διαχείρισης βάσεων δεδομένων που επεξεργάζεται τις εντολές της γλώσσας ερωτήσεων. Τα ακόλουθα χαρακτηριστικά γλωσσών προγραμματισμού μπορούν να χρησιμοποιηθούν ως βασικά κριτήρια για την κατάταξη τους στην κατηγορία του δηλωτικού προγραμματισμού, καθώς και της διαφοροποίησής τους από τις προστακτικές γλώσσες προγραμματισμού. Τρόπος ορισμού του προβλήματος Όπως έχει αναλυθεί προηγουμένως, οι προστακτικές γλώσσες προγραμματισμού περιγράφουν τους υπολογισμούς που σχετίζονται με την επίλυση ενός προβλήματος με τη βοήθεια αυστηρών ακολουθιών 13

4 εντολών που επικεντρώνονται στο πώς αυτό θα επιλυθεί. Στην ακολουθία αυτών των εντολών εμπεριέχεται από κοινού τόσο το λογικό μέρος (logic) των αλγορίθμων που χρησιμοποιούνται όσο και η διαδικασία της ροής ελέγχου (control) τους. Αντίθετα, στις δηλωτικές γλώσσες τα προγράμματα δομούνται ως σύνολα ορισμών (π.χ. σχέσεων στο λογικό προγραμματισμό ή συναρτήσεων στο συναρτησιακό προγραμματισμό) που προδιαγράφουν σε ένα υψηλό επίπεδο τι είναι αυτό που θα επιλυθεί, επικεντρώνοντας στο λογικό μέρος περιγραφής ενός προβλήματος. Ο τρόπος ορισμού ενός προβλήματος στο δηλωτικό προγραμματισμό, πέραν του ότι συντελεί ο κώδικας που παράγεται να είναι πιο ευανάγνωστος, έχει ευεργετικά αποτελέσματα και στη μείωση του μεγέθους του. Έχει αποδειχθεί ότι το μέγεθος ενός κώδικα που παράγεται από κάποιο προγραμματιστή σε ένα συγκεκριμένο χρονικό διάστημα είναι πρακτικά ίδιο ανεξάρτητα από τη γλώσσα προγραμματισμού που χρησιμοποιείται Όπως θα δούμε στα επόμενα κεφάλαια μία γλώσσα λογικού προγραμματισμού, όπως η Prolog παρέχει το πλεονέκτημα του σύντομου κώδικα, με ευεργετικά αποτελέσματα στην ποιότητα του λογισμικού. Ο ρόλος των μεταβλητών (και η εντολή αντικατάστασης) Οι προστακτικές γλώσσες προγραμματισμού χρησιμοποιούν ευρύτατα τις μεταβλητές οι οποίες αναπαριστάνονται με κάποιο όνομα και αντιστοιχίζονται με τιμές οι οποίες αλλάζουν κατά τη διάρκεια της εκτέλεσης του προγράμματος στα πλαίσια των εκφράσεων που εμφανίζονται. Συνήθως μία έκφραση εμφανίζεται στο δεξιό μέρος μίας εντολής καταχώρησης ή αντικατάστασης (assignment statement) και αφού υπολογιστεί, η τιμή της αλλάζει την τιμή της μεταβλητής που βρίσκεται στο αριστερό μέρος. Η διαδικασία αυτή είναι συνεχής κατά τη διάρκεια εκτέλεσης ενός προγράμματος, κατά την οποία κάθε νέα ανάθεση διαγράφει την παλιά τιμή της μεταβλητής βάζοντας μία νέα στη θέση της. Η διαδικασία αυτή αναφέρεται ως καταστροφική καταχώρηση (destructive assignment) κάνοντας την έννοια της μεταβλητής να μην έχει καμία σχέση με αυτήν που χρησιμοποιούμε στα μαθηματικά. Είναι χαρακτηριστικό το παράδειγμα της εντολής καταχώρησης: Χ=Χ+1; ή X++; η οποία χρησιμοποιείται για να δημιουργηθεί η επόμενη μιας τιμής και να αντιστοιχηθεί με το όνομα μιας μεταβλητής. Αντίθετα, στις δηλωτικές γλώσσες (όπως είναι οι καθαρά συναρτησιακές γλώσσες και οι γλώσσες λογικού προγραμματισμού), σε κάθε μεταβλητή μπορεί να καταχωρηθεί μία και μόνο μία τιμή, η οποία δεν μπορεί να αλλάξει κατά τη διάρκεια της εκτέλεσης. Η διαδικασία αυτή χαρακτηρίζεται ως μη-καταστροφική καταχώρηση (non-destructive assignment). Αν θέλει κανείς να χρησιμοποιήσει την επόμενη τιμή μιας μεταβλητής δεν έχει παρά να τη συσχετίσει με το όνομα μίας νέας μεταβλητής. Η εντολή αντικατάστασης / καταχώρησης αποκαλύπτει μεταξύ άλλων και το πρόβλημα της έλλειψης διαφάνειας αναφοράς (referential transparency): Μία μεταβλητή μέσω της εντολής αντικατάστασης μπορεί να πάρει διαφορετικές τιμές σε διαφορά σημεία του κώδικα του προγράμματος, χάνοντας με αυτό τον τρόπο τις παλιές τιμές. Ας υποθέσουμε ότι έχουμε το παρακάτω τμήμα κώδικα: Χ = Α + Β;... //εντολές που μεσολαβούν Υ = Ζ + Α + Β; Στο ερώτημα αν θα μπορούσαμε να αντικαταστήσουμε το A+B της δεύτερης εντολής αντικατάστασης με το X (όπως θα κάναμε αν λύναμε ένα σύστημα εξισώσεων στην άλγεβρα) η απάντηση είναι σαφώς αρνητική, καθώς θα μπορούσε να συμβεί ένα από τα ακόλουθα: (α) να έχουν αλλάξει οι τιμές των μεταβλητών Χ, Α και Β από κάποια ενδιάμεση εντολή ή κλήση διαδικασίας, (β) η εντολή X = A+B να μην είχε εκτελεστεί, καθώς μπορεί να βρισκόταν σε μία δομή επιλογής if, σε κλάδο που δεν είχε εκτελεστεί. Ως αποτέλεσμα το τι σημαίνουν αυτές οι μεταβλητές εξαρτάται από το σημείο στο οποίο βρίσκονται κάθε φορά, ή με άλλα λόγια αν για κάποια μεταβλητή ρωτήσουμε αυτή σε τι αναφέρεται ή τι τιμή έχει η απάντηση δεν μπορεί να δοθεί χωρίς να εξετάσουμε τι θα συμβεί κατά τη διάρκεια της εκτέλεσης του προγράμματος σε όλο το πεδίο δράσης της. Η έλλειψη διαφάνειας αναφοράς καθιστά πολύ δύσκολη την τροποποίηση και την απόδειξη της ορθότητας ενός προγράμματος προστατικής γλώσσας. 14

5 Το μοντέλο διαχείρισης της μνήμης Ο κώδικας ενός προγράμματος γραμμένου σε μία προστακτική γλώσσα προγραμματισμού παραπέμπει στο αρχικό μοντέλο εκτέλεσης που βασίζεται στη Von Neuman αρχιτεκτονική ενός υπολογιστή. Σύμφωνα με αυτό το μοντέλο η κεντρική μονάδα επεξεργασίας εκτελεί τις εντολές του προγράμματος ανακτώντας και αποθηκεύοντας συνεχώς δεδομένα από και προς μία μνήμη ανάγνωσης - εγγραφής. Το πρόγραμμα δηλαδή για να μεταφέρει δεδομένα από ένα τμήμα του σε ένα άλλο χρησιμοποιεί τη μνήμη ως μεσάζοντα. Αυτός ο τρόπος της μεταφοράς δεδομένων δημιουργεί πολλές φορές παρενέργειες (side effects) και εναπόκειται στον προγραμματιστή να φροντίσει ένα τμήμα προγράμματος να μην τροποποιήσει δεδομένα της μνήμης που χρησιμοποιεί ένα άλλο τμήμα του προγράμματος. Η εισαγωγή μηχανισμών για τον ορισμό και τη χρήση δομών δεδομένων στις προστακτικές γλώσσες προγραμματισμού, παρόλο που έχει περιορίσει τις πιθανότητες των παρενεργειών, δεν έχει αλλάξει το μοντέλο εκτέλεσης που θεωρεί τη μνήμη ως ένα απαραίτητο ενδιάμεσο χώρο για τη μεταφορά δεδομένων. Έτσι, παραδείγματος χάριν, ένας αλγόριθμος ταξινόμησης ενός πίνακα αναδιατάσσει τα δεδομένα του και με την ολοκλήρωση της εκτέλεσής του η αρχική μορφή τους έχει χαθεί. Αν η χρήση των αρχικών δεδομένων χρειάζεται εκ νέου, μετά την ολοκλήρωση της ταξινόμησης είναι στην ευθύνη του προγραμματιστή να αντιγράψει τα αρχικά στοιχεία του πίνακα σε έναν άλλο, να τα αποθηκεύσει δηλαδή στην ουσία σε μία άλλη περιοχή της μνήμης. Οι δηλωτικές γλώσσες προγραμματισμού αποφεύγουν το πρόβλημα των παρενεργειών καθώς δεν χρησιμοποιούν ρητά τη μνήμη ως έναν ενδιάμεσο χώρο αποθήκευσης δεδομένων. Σε ένα πρόγραμμα δηλωτικής γλώσσας ο μόνος τόπος μεταφοράς δεδομένων είναι με πέρασμα παραμέτρων. Στο συναρτησιακό προγραμματισμό το αποτέλεσμα μίας συνάρτησης μπορεί να μεταβιβαστεί σε μία δεύτερη εάν η κλήση της πρώτης έχει τοποθετηθεί ως παράμετρος σε ένα από τα ορίσματα της δεύτερης. Στο λογικό προγραμματισμό η τιμή μιας μεταβλητής μπορεί να περάσει σε μία άλλη είτε μέσω της ενοποίησης, που αποτελεί το μηχανισμό περάσματος παραμέτρων, είτε γιατί η ίδια μεταβλητή διαμοιράζεται σε δύο κλήσεις διαφορετικών κατηγορημάτων, όπως συμβαίνει με τη μεταβλητή X ανάμεσα στα κατηγορήματα p1 και p2 στο παρακάτω παράδειγμα: p(x,y,z,t) :- p1(x,y,z),..., p2(t,x). Τοπικότητα / Πεδίο Δράσης των μεταβλητών Στις προστακτικές γλώσσες προγραμματισμού η οποιαδήποτε διαδικασία υπολογισμού πραγματοποιείται μέσω της εκτέλεσης μίας ακολουθίας εντολών στο πλαίσιο ενός πεδίου δράσης (scope) στο οποίο είναι γνωστές τόσο οι μεταβλητές όσο και οι άλλες οντότητες της γλώσσας. Το πεδίο δράσης είναι συνήθως ευρύ και μπορεί να είναι είτε όλο το πρόγραμμα είτε κάποιο από τα υποπρογράμματά του. Κάθε εντολή αναπαριστά ένα μόνο βήμα ενός αλγορίθμου, το οποίο εκτελείται στο πλαίσιο αυτού του πεδίου δράσης. Ως αποτέλεσμα η ορθότητα μίας μεμονωμένης εντολής δεν μπορεί ελεγχθεί αφεαυτής, καθώς πρέπει να εξεταστεί η συμπεριφορά ολόκληρου του αλγόριθμου μέσα στον οποίο βρίσκεται. Στις δηλωτικές γλώσσες προγραμματισμού το πεδίο δράσης των μεταβλητών περιορίζεται δραστικά σε μικρότερες υπολογιστικές οντότητες. Όπως θα δούμε, στην Prolog το πεδίο δράσης περιορίζεται στο πλαίσιο κάθε μεμονωμένης φράσης του προγράμματος με ευεργετικά αποτελέσματα στον έλεγχο της ορθότητας της. 2.3 Η διπλή ερμηνεία των λογικών προγραμμάτων Ένας από τους λόγους που η Prolog αποτέλεσε μία επιτυχημένη γλώσσα προγραμματισμού είναι η δυνατότητα ερμηνείας των φράσεων Horn του λογικού προγραμματισμού, οι οποίες μπορούν να ερμηνεύονται τόσο δηλωτικά όσο και διαδικαστικά. Ας θεωρήσουμε μία φράση-κανόνα του λογικού προγραμματισμού γραμμένη στην αφαιρετική της μορφή: H :- B 1, B 2,...,B n Με βάση τη δηλωτική σημασιολογία η παραπάνω φράση ερμηνεύεται ως εξής: Εφόσον το B 1 είναι αληθές και το B 2 είναι αληθές και... και το B n είναι αληθές τότε συνεπάγεται ότι και το H είναι αληθές (το, στην παραπάνω φράση ερμηνεύεται ως ο λογικός τελεστής ΚΑΙ/AND). 15

6 Ταυτόχρονα όμως η παραπάνω φράση μπορεί να ερμηνευτεί και διαδικαστικά. Τα H, B 1, B 2,... και B n, ερμηνεύονται ως τα υποπρογράμματα-διαδικασίες (procedures) της γλώσσας, όπου το H θεωρείται η επικεφαλίδα της διαδικασίας και B 1, B 2,..., B n αποτελούν το σώμα της, δηλαδή τον κώδικα που την υλοποιεί. Η εκτέλεση του προγράμματος ξεκινά με την ερώτηση:?- H. που ερμηνεύεται ως η κλήση του υποπρογράμματος H. Για να ολοκληρωθεί η εκτέλεση του υποπρογράμματος H εκτελείται ο κώδικας που το υλοποιεί δηλαδή καλούνται οι διαδικασίες B 1, B 2,... και B n :?- B 1, B 2,...,B n. Στην περίπτωση αυτή το, ερμηνεύεται κατά κάποιο τρόπο ως ο διαχωριστής των κλήσεων με τρόπο αντίστοιχο (αλλά όχι και ισοδύναμο όπως θα δούμε στα επόμενα κεφάλαια) που ερμηνεύεται ο διαχωριστής ; σε διαδικαστικές γλώσσες προγραμματισμού όπως η C++ και η Java. 2.4 Παρατηρήσεις Στον ιδανικό δηλωτικό προγραμματισμό με τη βοήθεια της Prolog στο πρόγραμμα εμφανίζεται αποκλειστικά το λογικό μέρος του και ο έλεγχος του προγράμματος προκύπτει αυτόματα κατά τη διαδικασία εκτέλεσης από το μηχανισμό της γλώσσας. Η περίπτωση αυτή αναφέρεται ως προγραμματισμός με καθαρή (pure) Prolog. Όπως θα δούμε στη συνέχεια, για πρακτικούς λόγους, έχουν προστεθεί στην Prolog μηχανισμοί που μπορούν να καθορίσουν τη διαδικασία ελέγχου της ροής του προγράμματος. Ο προγραμματιστής που θα ασχοληθεί συστηματικά με την ανάπτυξη λογισμικού σε Prolog καλό είναι να γνωρίζει αυτή τη διαφοροποίηση και να χρησιμοποιεί αυτούς τους μηχανισμούς με προσοχή και μόνον όταν είναι απαραίτητο. Για να επανέλθουμε στην εξίσωση του Kowalski (Αλγόριθμος = Λογική + Έλεγχος), καλό είναι ο προγραμματιστής, όταν απαιτηθεί να επέμβει στη διαδικασία του ελέγχου του προγράμματος να το κάνει σε τμήμα κώδικα που είναι ανεξάρτητο από το τμήμα που ορίζει τη λογική του αλγορίθμου επίλυσης του προβλήματος. Ένα βασικό πρόβλημα που αντιμετωπίζουν όσοι προγραμματιστές έρχονται πρώτη φορά σε επαφή με τον δηλωτικό προγραμματισμό, είναι ότι έχουν εθιστεί στην ανάπτυξη κώδικα που περιγράφει με λεπτομέρεια το πώς εκτελείται ένα πρόγραμμα. Το γεγονός αυτό τους κάνει να αισθάνονται χαρούμενοι - ακόμα και περήφανοι που έχουν την τεχνική ικανότητα και την ευελιξία να ελέγχουν με τον κώδικα που παράγουν τις λεπτομέρειες εκτέλεσης ενός προγράμματος και δεν είναι διατεθειμένοι να αφήσουν αυτή τη διαδικασία σε μία μαγική ή κρυφή διαδικασία που θα προκύψει από τον ίδιο μηχανισμό της γλώσσας. Βιβλιογραφία Η αναλυτική περιγραφή του διαχωρισμού ενός αλγορίθμου στο λογικό μέρος του και στο τμήμα που περιγράφει τον έλεγχο της εκτέλεσης του μπορεί να βρεθεί στην ομώνυμη εργασία του Robert Kowalski (Kowalski, 1979). Ο αναγνώστης που θέλει να συγκρίνει τον διαχωρισμό αυτό με την κλασσική προσέγγιση ανάπτυξης αλγορίθμων των διαδικαστικών γλωσσών προγραμματισμού μπορεί να διαβάσει το βιβλίο αναφοράς του Niklaus Wirth (Wirth, 1971). Μία πολύ καλή ανάλυση των εννοιών και των μηχανισμών γλωσσών που σχετίζονται με το δηλωτικό προγραμματισμό και της σύγκρισής τους με τις αντίστοιχες έννοιες των διαδικαστικών γλωσσών μπορεί να βρεθεί στο βιβλίο των Peter Van Roy και Seif Haridi (Van Roy and Haridi, 2004). Εκτενής ανάλυση τόσο της δηλωτικής όσο και της διαδικαστικής ερμηνείας του Λογικού προγραμματισμού μπορεί να βρεθεί στο βιβλίο του Robert Kowalski (Kowalski, 1979b), καθώς και στην εργασία των Van Emden και Kowalski (Van Emden and Kowalski 1976). Kowalski, R. (1979). Algorithm = Logic + control, Communications of the ACM, Vol. 22, No. 7, p.p Kowalski, R. (1979b). Logic for Problem Solving. Prentice Hall PTR, Upper Saddle River, NJ, USA. Van Roy, P. and Haridi, S. (2004). Concepts, Techniques, and Models of Computer Programming, The MIT Press 16

7 Van Emden M. H. and Kowalski R. (1976) The Semantics of Predicate Logic as a Programming Language, Journal of the ACM (JACM), Vol 23, No 4, p.p Wirth N. (1976). Algorithms + Data Structures = Programs. Prentice-Hall Series in Automatic Computation. 17

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

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

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

Κεφάλαιο 1. Εισαγωγή

Κεφάλαιο 1. Εισαγωγή Κεφάλαιο 1 Εισαγωγή Η λέξη Prolog προκύπτει ως συντομογραφία από τις γαλλικές λέξεις «PROgrammation en LOGique» ή κατ αντιστοιχία στην Αγγλική «PROgramming in LOGic» που σημαίνει «προγραμματισμός σε λογική».

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Outline. 4 Object-Oriented Programming

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

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

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

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

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

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

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

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

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

Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Γλώσσες Προγραμματισμού 6.1.1 Γλώσσες μηχανής (1 η γενιά) Η γλώσσα στην οποία ένας ηλεκτρονικός υπολογιστής καταλαβαίνει

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

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

Λογισμικό Υπολογιστών (Software) ΜΥΥ-106 Εισαγωγή Η/Υ και Πληροφορική

Λογισμικό Υπολογιστών (Software) ΜΥΥ-106 Εισαγωγή Η/Υ και Πληροφορική Λογισμικό Υπολογιστών (Software) ΜΥΥ-106 Εισαγωγή Η/Υ και Πληροφορική Αλγόριθμος Κάθε υπολογισμός αποτελείται από μια σειρά, καλά καθορισμένων, σχετικά απλών, βημάτων Η μέθοδος υπολογισμού ονομάζεται αλγόριθμος

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

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης ΠΕΡΙΕΧΟΜΕΝΑ Εντολές επιλογής Εντολές επανάληψης Εισαγωγή Στο προηγούμενο κεφάλαιο αναπτύξαμε προγράμματα, τα οποία ήταν πολύ απλά και οι εντολές των οποίων εκτελούνται η μία μετά την άλλη. Αυτή η σειριακή

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

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

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

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

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

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

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

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Μάθημα 4: Αλγόριθμοι και Γλώσσες Προγραμματισμού Δεκέμβριος 2015 Χ. Αλεξανδράκη

Εισαγωγή στον Προγραμματισμό Μάθημα 4: Αλγόριθμοι και Γλώσσες Προγραμματισμού Δεκέμβριος 2015 Χ. Αλεξανδράκη Εισαγωγή στον Προγραμματισμό Μάθημα 4: Αλγόριθμοι και Γλώσσες Προγραμματισμού Δεκέμβριος 2015 Χ. Αλεξανδράκη Αλγόριθμος (τι είναι) Στα μαθηματικά και την επιστήμη ΗΥ Ο αλγόριθμος είναι η λογική διαδικασία

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

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 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 στην

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

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

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ Η ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΟ ΛΥΚΕΙΟ Εισαγωγή Η μεγάλη ανάπτυξη και ο ρόλος που

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

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

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

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

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων ΠΕΡΙΕΧΟΜΕΝΑ Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων Εισαγωγή Η χρήση των μεταβλητών με δείκτες στην άλγεβρα είναι ένας ιδιαίτερα

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

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

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

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

Κεφάλαιο 2 Λογικός προγραμματισμός Υπολογισμός με λογική

Κεφάλαιο 2 Λογικός προγραμματισμός Υπολογισμός με λογική Κεφάλαιο 2 Λογικός προγραμματισμός Υπολογισμός με λογική Σύνοψη Το κεφάλαιο αυτό χωρίζεται σε δύο ενότητες. Στην πρώτη ενότητα επιχειρείται μια ιστορική αναδρομή στη λογική και τον λογικό προγραμματισμό,

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

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: 1ο ΓΕΛ Καστοριάς Βασικές Έννοιες Αλγορίθμων Δομή Ακολουθίας (κεφ. 2 και 7 σχολικού βιβλίου) 1. Οι μεταβλητές αντιστοιχίζονται από τον μεταγλωττιστή κάθε

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

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

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

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

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

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

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

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

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

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

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ Θέμα Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2016-2017 Πάτρα 3/5/2017 Ονοματεπώνυμο:.. Α1. Να γράψετε στην κόλλα σας τον αριθμό

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης Κεφάλαιο 7 1. Σε τι διαφέρει ο Η/Υ από τις υπόλοιπες ηλεκτρικές και ηλεκτρονικές συσκευές; Που οφείλεται η δυνατότητά του να κάνει τόσο διαφορετικές

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

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

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

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ 1. Έστω ότι ο καθηγητής σας δίνει δύο αριθμούς και σας ζητάει να του πείτε πόσο είναι το άθροισμά τους. Διατυπώστε

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 3: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού

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

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

Διδακτική της Πληροφορικής

Διδακτική της Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 11: Διδακτική της έννοιας της μεταβλητής Σταύρος Δημητριάδης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Συναρτησιακός Προγραμματισμός. Εισαγωγικές Έννοιες

Συναρτησιακός Προγραμματισμός. Εισαγωγικές Έννοιες Συναρτησιακός Προγραμματισμός Εισαγωγικές Έννοιες Κίνητρο Οι συναρτησιακές γλώσσες προγραμματισμού προσφέρονται για «μαζικό» προγραμματισμό: Έχουν σαφείς μαθηματικές ιδιότητες που μπορούν να αξιοποιηθούν

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

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

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

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

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

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

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

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

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

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

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

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

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

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

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

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη. 4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη. Η μετατροπή μιας εντολής επανάληψης σε μία άλλη ή στις άλλες δύο εντολές επανάληψης, αποτελεί ένα θέμα που αρκετές φορές έχει εξεταστεί σε πανελλαδικό

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

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

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

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

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

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

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

Διδακτική της Πληροφορικής ΙΙ

Διδακτική της Πληροφορικής ΙΙ Διδακτική της Πληροφορικής ΙΙ Ομάδα Γ Βότσης Ευστάθιος Γιαζιτσής Παντελής Σπαής Αλέξανδρος Τάτσης Γεώργιος Προβλήματα που αντιμετωπίζουν οι αρχάριοι προγραμματιστές Εισαγωγή Προβλήματα Δυσκολίες Διδακτικό

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ο ΚΕΦΑΛΑΙΟ 1) Τι είναι πρόβλημα (σελ. 3) 2) Τι είναι δεδομένο, πληροφορία, επεξεργασία δεδομένων (σελ. 8) 3) Τι είναι δομή ενός προβλήματος (σελ. 8)

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

Ενότητα 13: Διδασκαλία Οντοκεντρικού Προγραμματισμού. Διδάσκων: Βασίλης Κόμης, Καθηγητής

Ενότητα 13: Διδασκαλία Οντοκεντρικού Προγραμματισμού. Διδάσκων: Βασίλης Κόμης, Καθηγητής Διδακτική της Πληροφορικής: Ερευνητικές προσεγγίσεις στη μάθηση και τη διδασκαλία Μάθημα επιλογής B εξάμηνο, Πρόγραμμα Μεταπτυχιακών Σπουδών Τμήμα Επιστημών της Εκπαίδευσης και της Αγωγής στην Προσχολική

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη

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

Κεφάλαιο 1 Εισαγωγή. Περιεχόμενα. 1.1 Αλγόριθμοι και Δομές Δεδομένων

Κεφάλαιο 1 Εισαγωγή. Περιεχόμενα. 1.1 Αλγόριθμοι και Δομές Δεδομένων Κεφάλαιο 1 Εισαγωγή Περιεχόμενα 1.1 Αλγόριθμοι και Δομές Δεδομένων... 9 1.2 Διατήρηση Διατεταγμένου Συνόλου... 12 1.3 Ολοκληρωμένη Υλοποίηση σε Java... 15 Ασκήσεις... 18 Βιβλιογραφία... 19 1.1 Αλγόριθμοι

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στο Συναρτησιακό Προγραμματισμό

Εισαγωγή στο Συναρτησιακό Προγραμματισμό Εισαγωγή στο Συναρτησιακό Προγραμματισμό Γιάννης Κασσιός Σε αυτό το μάθημα θα εξερευνήσουμε ένα σπουδαίο μοντέλο προγραμματισμού, το συναρτησιακό προγραμματισμό. Θα δούμε το συναρτησιακό προγραμματισμό

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

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

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

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

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

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

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

Θέμα Α Α3.1 ΤΕΛΟΣ 1ΗΣ ΑΠΟ 9 ΣΕΛΙΔΕΣ

Θέμα Α Α3.1 ΤΕΛΟΣ 1ΗΣ ΑΠΟ 9 ΣΕΛΙΔΕΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΛΥΣΕΙΣ ΕΠΑΝΑΛΗΠΤΙΚΟΥ ΔΙΑΓΩΝΙΣΜΑΤΟΣ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2012-2013 Επιμέλεια: Ομάδα Διαγωνισμάτων από το Στέκι των Πληροφορικών Θέμα Α Α1 Α2 1. Μέχρι το 1976

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

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο :

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο : 2. Α/Α Διάλεξης : 1 1. Τίτλος : Εισαγωγή στην Ψηφιακή Τεχνολογία 2. Μαθησιακοί Στόχοι : Λογικές Πύλες και η υλοποίησή τους με τρανζίστορ. Κατασκευή ολοκληρωμένων κυκλωμάτων. 3. Θέματα που καλύπτει : Λογικές

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

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

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

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

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

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

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

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.

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

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

Κεφάλαιο 1 Διαδικαστικός και δηλωτικός προγραμματισμός

Κεφάλαιο 1 Διαδικαστικός και δηλωτικός προγραμματισμός Κεφάλαιο 1 Διαδικαστικός και δηλωτικός προγραμματισμός Σύνοψη Στο κεφάλαιο αυτό γίνεται συγκριτική παρουσίαση, κυρίως μέσω απλών παραδειγμάτων, του διαδικαστικού και του δηλωτικού προγραμματισμού, δύο

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

Υπολογιστική Λογική και Λογικός Προγραμματισμός

Υπολογιστική Λογική και Λογικός Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Υπολογιστική Λογική και Λογικός Προγραμματισμός Ενότητα 1: Εισαγωγή στην Λογική και στον Λογικό Προγραμματισμό. Νίκος Βασιλειάδης, Αναπλ.

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

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

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

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

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

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

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

Σκοπός. Προγραμματίζοντας τον Arduino ΙΙ Εντολή Εκχώρησης & Εντολές. Συλλογή & Επεξεργασία Δεδομένων. Πρόγραμμα. Εντολές Επεξεργασίας Δεδομένων

Σκοπός. Προγραμματίζοντας τον Arduino ΙΙ Εντολή Εκχώρησης & Εντολές. Συλλογή & Επεξεργασία Δεδομένων. Πρόγραμμα. Εντολές Επεξεργασίας Δεδομένων Σκοπός Συλλογή & Επεξεργασία Δεδομένων Προγραμματίζοντας τον Arduino ΙΙ Εντολή Εκχώρησης & Εντολές Ελέγχου. Πρόγραμμα Εντολές Επεξεργασίας Δεδομένων Εντολή Εκχώρησης Εντολές Ελέγχου Λογική συνθήκη Εντολή

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

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

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

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

ιαφάνειες παρουσίασης #1

ιαφάνειες παρουσίασης #1 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

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

Μάριος Αγγελίδης Ενότητες βιβλίου: 2.1, 2.3, 6.1 (εκτός ύλης αλλά χρειάζεται για την συνέχεια) Ώρες διδασκαλίας: 1

Μάριος Αγγελίδης Ενότητες βιβλίου: 2.1, 2.3, 6.1 (εκτός ύλης αλλά χρειάζεται για την συνέχεια) Ώρες διδασκαλίας: 1 Ενότητα 1 Ενότητες βιβλίου: 2.1, 2.3, 6.1 (εκτός ύλης αλλά χρειάζεται για την συνέχεια) Ώρες διδασκαλίας: 1 Τι είναι αλγόριθμος Σύμφωνα με το σχολικό βιβλίο: Ορισμός: Μια πεπερασμένη σειρά ενεργειών, αυστηρά

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

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

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

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