M i,0 = fw(0, ), 0 i nfl M i,j = min. MinCost = nfl. min

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

Download "M i,0 = fw(0, ), 0 i nfl M i,j = min. MinCost = nfl. min"

Transcript

1 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ( ) Εργασία 3 Αντικείμενο της εργασίας αυτής είναι η βελτιστοποίηση της λειτουργίας ενός ανελκυστήρα. Το πρόβλημα που καλείσθε να επιλύσετε διατυπώνεται στη συνέχεια. Ενας ανελκυστήρας λειτουργεί σε ένα κτήριο με άπειρους ορόϕους (όροϕοι 1, 2, 3,...). Στο ισόγειο (όροϕος 0) βρίσκονται nrid άνθρωποι, καθένας από τους οποίους θέλει να πάει στον όροϕο dests i (1 i nrid). Για κάποιους (τεχνικούς και άλλους λόγους) ο ανελκυστήρας θα ξεκινήσει από το ισόγειο και θα κάνει το πολύ nst στάσεις. Κάθε επιβάτης θα βγει στον όροϕο (κάποια από τις nst στάσεις) που είναι πιο κοντά στον όροϕο που είναι ο προορισμός του και θα πάει από τις σκάλες στον προορισμό του. Κάθε μετάβαση επιβάτη από τις σκάλες από όροϕο σε γειτονικό του όροϕο (είτε ανεβαίνοντας, είτε κατεβαίνοντας) έχει κόστος 1. Ποια είναι η βέλτιστη λύση (συνολικό ελάχιστο κόστος), δηλαδή ποιες στάσεις πρέπει να κάνει ο ανελκυστήρας ώστε οι επιβάτες του να κάνουν τις λιγότερες δυνατές μετακινήσεις με τα πόδια; Μεταξύ λύσεων με το ίδιο κόστος, προτιμώνται εκείνες που ο ανελκυστήρας σταματά σε χαμηλότερους ορόϕους (οι λόγοι μπορεί να είναι ενεργειακής ϕύσης ή για να κάνουν γυμναστική οι επιβάτες και να ανεβαίνουν ορόϕους, αντί να κατεβαίνουν). Να σημειωθεί ότι δεν είναι απαραίτητο όλοι οι επιβάτες να μπουν στον ανελκυστήρα. Κάποιοι μπορεί να πάνε με τα πόδια από το ισόγειο στον προορισμό τους (επειδή αυτός θα είναι πιο κοντά στο ισόγειο απ ότι στην πρώτη στάση του ανελκυστήρα). Επίσης, υπάρχει ενδεχόμενο να υπάρχει λύση στο πρόβλημα με λιγότερες από nst στάσεις, επειδή ο ανελκυστήρας θα σταματήσει σε όλους τους προορισμούς των επιβατών του και το κόστος θα ισούται με 0. Ενα παράδειγμα είναι το εξής. Εστω nrid = 5, nst = 2 και dests = [ ]. Αν ο ανελκυστήρας κάνει τις δύο στάσεις του στους ορόϕους stops = [5 12], τότε το κόστος της λύσης αυτής μπορεί να υπολογισθεί ως εξής. Ο πρώτος επιβάτης με προορισμό τον όροϕο 11 θα βγει στον όροϕο 12 (πλησιέστερη στάση στον προορισμό του) και θα κατέβει με τις σκάλες 1 όροϕο (κόστος ίσο με 1). Ο δεύτερος επιβάτης με προορισμό τον όροϕο 2 δεν θα μπει στον ανελκυστήρα και θα ανέβει δύο ορόϕους με τις σκάλες (κόστος 2). Για τον τρίτο επιβάτη, έχουμε κόστος ίσο με 2 (προορισμός ο όροϕος 7 και στάση ο όροϕος 5). Με όμοιο τρόπο, βρίσκουμε ότι το κόστος για τον τέταρτο επιβάτη είναι 1 και για τον πέμπτο είναι 2. Το συνολικό κόστος για όλους τους επιβάτες ισούται με = 8, που είναι και το κόστος της λύσης αυτής. Ομως, η λύση stops = [7 11] έχει κόστος ίσο με 4 (γιατί;) και μπορεί να αποδειχθεί ότι είναι η βέλτιστη λύση. Σκέψεις για την επίλυση του προβλήματος Οπως αναϕέρθηκε αρχικά, θεωρούμε ότι το κτήριο έχει άπειρους ορόϕους. Ομως, εύκολα παρατηρούμε ότι δεν υπάρχει περίπτωση η βέλτιστη λύση να περιέχει στάση σε όροϕο μεγαλύτερο από τον υψηλότερο προορισμό των επιβατών. Στο προηγούμενο παράδειγμα, δεν έχει νόημα να υπάρχει στάση πάνω από όροϕο 13 (αν υπήρχε τέτοια στάση, θα μπορούσαμε να την μεταϕέρουμε στον όροϕο 13 και η νέα λύση σίγουρα θα έχει μικρότερο κόστος από την προηγούμενη). Για τη συνέχεια, ας συμβολίσουμε τον υψηλότερο προορισμό των επιβατών ως nf l. Η διαχείριση του ενδεχομένου να αρκούν λιγότερες στάσεις από nst, οπότε έχουμε λύση ελαχίστου κόστους ίσου με 0, μπορεί να γίνει με απλό τρόπο. Σκεϕτείτε την περίπτωση nrid = 5, nst = 3 και dests = [ ]. Αρκεί ο ανελκυστήρας να κάνει μόνο μία στάση, στον όροϕο 6 (κόστος 0). Την λύση αυτή θα μπορούσαμε να την αναπαραστήσουμε σαν stops = [0 0 6]. Δηλαδή, θεωρούμε ότι υπάρχουν και επιπλέον, πρακτικά ανύπαρκτες, στάσεις στο ισόγειο. Αν a και b είναι δύο διαδοχικές στάσεις του ανελκυστήρα, ας θεωρήσουμε ότι με fw(a, b) συμβολίζουμε το συνολικό πλήθος των ορόϕων που θα χρειαστεί να περπατήσουν όλοι οι οι επιβάτες που έχουν προορισμούς d πιο ψηλά από τον όροϕο a (a < d) και το πολύ μέχρι τον όροϕο b (d b) για

2 να πάνε στον όροϕο d από τις σκάλες, βγαίνοντας από τον ανελκυστήρα στον όροϕο a ή στον όροϕο b, ανάλογα με το ποιος είναι κοντινότερος στον d. Το b μπορεί να ισούται με, στην περίπτωση που ο όροϕος a είναι ο τελευταίος που θα σταματήσει ο ανελκυστήρας. Επίσης, το a μπορεί να ισούται με 0, στην περίπτωση που το b είναι η πρώτη στάση του ανελκυστήρα. Εχοντας κατά νου και τα προηγούμενα, μπορούμε να προσεγγίσουμε τη λύση του προβλήματος ως εξής. Εστω M i,j το ελάχιστο κόστος για να εξυπηρετηθούν όλοι οι επιβάτες με j ακριβώς στάσεις του ανελκυστήρα, η υψηλότερη από τις οποίες είναι στον όροϕο i. Ισχυριζόμαστε ότι ισχύουν τα εξής: M i,0 = fw(0, ), 0 i nfl M i,j = i min k=0 {M k,j 1 fw(k, ) + fw(k, i) + fw(i, )}, 0 i nfl, 1 j nst Αυτό που περιγράϕουν τα παραπάνω είναι το εξής. Αν ο ανελκυστήρας δεν κινηθεί καθόλου, δηλαδή κάνει j = 0 στάσεις, όλοι οι επιβάτες θα πάνε στους προορισμούς τους από τις σκάλες, οπότε το συνολικό κόστος ισούται με το άθροισμα των ορόϕων που θα περπατήσουν. Το ελάχιστο κόστος M i,j για την περίπτωση όπου η τελευταία από τις j στάσεις (j 0) είναι στον όροϕο i μπορεί να εκϕρασθεί συναρτήσει των ελαχίστων τιμών του κόστους M k,j 1 για τις περιπτώσεις που έχουμε j 1 στάσεις, με την τελευταία από αυτές να είναι σε κάποιο όροϕο k (0 k i). Αυτό που αλλάζει όταν προστεθεί μία επιπλέον στάση στον όροϕο i μετά από κάποια στον όροϕο k είναι το κόστος μετακίνησης από τις σκάλες των επιβατών που έχουν προορισμούς ψηλότερα από τον όροϕο k, γιατί το κόστος όλων των υπολοίπων (με προορισμούς μέχρι και τον όροϕο k) δεν επηρεάζεται. Αν από το ελάχιστο κόστος M k,j 1 αϕαιρέσουμε το κόστος μετακίνησης με τις σκάλες των επιβατών με προορισμούς πάνω από τον όροϕο k και το αντικαταστήσουμε με το κόστος μετακίνησης των επιβατών με προορισμούς επάνω από τον όροϕο k και μέχρι τον όροϕο i συν το κόστος μετακίνησης των επιβατών με προορισμούς επάνω από τον όροϕο i, παίρνουμε το κόστος για j στάσεις με την τελευταία να είναι στον όροϕο i, για το δεδομένο k. Το ελάχιστο από αυτά τα κόστη, για όλα τα πιθανά k, είναι το ελάχιστο κόστος M i,j. Αυτό εκϕράζει η προηγούμενη αναδρομική σχέση. Τελικά, το ελάχιστο κόστος ισούται με MinCost = nfl min i=0 {M i,nst} και η τελευταία στάση του ανελκυστήρα είναι εκείνο το i για το οποίο έχουμε το ελάχιστο στον προηγούμενο τύπο. Πλαίσιο υλοποίησης Στην εργασία αυτή καλείσθε να υλοποιήσετε εναλλακτικές μεθόδους επίλυσης του προβλήματος της βέλτιστης λειτουργίας ανελκυστήρα. Συγκεκριμένα, οι μέθοδοι αυτές είναι: Αναδρομική μέθοδος (recursive REC) Αναδρομική μέθοδος με απομνημόνευση (recursive with memoization MEM) Επαναληπτική μέθοδος με δυναμικό προγραμματισμό (dynamic programming DP) Μέθοδος ωμής βίας (brute force BF) Οι τρεις πρώτες από τις παραπάνω μεθόδους θα βασισθούν στη μαθηματική προσέγγιση που περιγράϕηκε προηγουμένως, ενώ η τελευταία όχι. Ολες οι μέθοδοι θα πρέπει να υλοποιηθούν μέσω της κλήσης από τη main() μίας συνάρτησης με πρωτότυπο

3 int solve(int nrid, int nst, int *dests) όπου nrid είναι το πλήθος των επιβατών, nst το μέγιστο πλήθος στάσεων του ανελκυστήρα και dests ένας πίνακας μεγέθους nrid με τους προορισμούς των επιβατών. Η συνάρτηση θα πρέπει να επιστρέϕει το κόστος της βέλτιστης λύσης. Εννοείται ότι κάθε συνάρτηση solve() θα μπορεί να καλεί άλλες συναρτήσεις, όπου το κρίνετε απαραίτητο. Ολες οι συναρτήσεις solve() που υλοποιούν τις ζητούμενες μεθόδους θα είναι ενταγμένες μέσα στο ίδιο πρόγραμμα (προσοχή, όχι κατ ανάγκη στο ίδιο αρχείο περισσότερα για το θέμα αυτό, στη συνέχεια). Το ποια από αυτές τις συναρτήσεις θα μεταγλωττισθεί ώστε να επιλύεται τελικά το πρόβλημα, θα εξαρτηθεί από το αν έχει ορισθεί κατάλληλη συμβολική σταθερά (REC, MEM, DP ή BF, κατά περίπτωση). Κάθε υλοποίηση συνάρτησης solve() θα πρέπει να την περικλείσετε μέσα στις οδηγίες προς τον προεπεξεργαστή #ifdef συμβολική σταθερά και #endif (δείτε τις σελίδες των σημειώσεων/διαϕανειών του μαθήματος) και είτε να έχετε κάνει #define την κατάλληλη συμβολική σταθερά, είτε να μεταγλωττίσετε το πρόγραμμά σας με την εντολή gcc -D<συμβολική σταθερά>... ώστε να επιλέγεται κάθε ϕορά η κατάλληλη solve() για μεταγλώττιση. Συμπερασματικά, αν υλοποιήσετε όλες τις μεθόδους και το πρόγραμμά σας είναι σε ένα αρχείο elevator.c, θα μπορούσε να έχει αυτή τη μορϕή:... /* #define REC */ /* #define MEM */ /* #define DP */ /* #define BF */... #ifdef REC int solve(int nrid, int nst, int *dests) /* Recursive */ {... } #endif #ifdef MEM int solve(int nrid, int nst, int *dests) {... } #endif /* Recursive with memoization*/ #ifdef DP int solve(int nrid, int nst, int *dests) /* Dynamic programming */ {... } #endif #ifdef BF int solve(int nrid, int nst, int *dests) /* Brute force */ {... } #endif int main(void) {... cost = solve(nrid, nst, dests);... } Οπότε, για να γίνει η μεταγλώττιση της συνάρτησης που επιθυμείτε, είτε μπορείτε να αϕαιρέσετε το σχόλιο από την κατάλληλη #define στην αρχή και να μεταγλωττίσετε κλασικά όπως γνωρίζετε, είτε να κατασκευάσετε τα σχετικά εκτελέσιμα, έχοντας όλες τις #define στο πηγαίο πρόγραμμα σχολιασμένες, ως εξής: gcc -DREC -o elevatorrec elevator.c gcc -DMEM -o elevatormem elevator.c

4 gcc -DDP -o elevatordp elevator.c gcc -DBF -o elevatorbf elevator.c Αναδρομική μέθοδος (30%) Υλοποιήστε τη συνάρτηση solve() που υπολογίζει με αναδρομικό τρόπο το κόστος της βέλτιστης λύσης στη λειτουργία του ανελκυστήρα (εκδοχή REC), σύμϕωνα με τον αναδρομικό τύπο που περιγρά- ϕηκε προηγουμένως, καθώς και κατάλληλη main() που θα την καλεί. Η solve() να εκτυπώνει και την τελευταία στάση του ανελκυστήρα. Η main() να διαβάζει από την πρότυπη είσοδο το πλήθος των επιβατών, το μέγιστο πλήθος των στάσεων του ανελκυστήρα και τους προορισμούς των επιβατών, να καλεί την solve() και να εκτυπώνει το βέλτιστο κόστος της λύσης που βρέθηκε. Στο πρόγραμμά σας δεν επιτρέπεται να ορίσετε άλλον πίνακα εκτός από αυτόν που χρειάζεται για τη ϕύλαξη των προορισμών των επιβατών. Παραδείγματα εκτέλεσης: gcc -DREC -o elevatorrec elevator.c hostname linuxvm07./elevatorrec Last stop at floor 11 Cost is: 4./elevatorrec Last stop at floor 10 Cost is: 5./elevatorrec Last stop at floor 5 Cost is: 0./elevatorrec No elevator stops time./elevatorrec 20 4 Last stop at floor 42 Cost is: u 0.000s 0: % 0+0k 0+0io 0pf+0w time./elevatorrec 20 5 Last stop at floor 42 Cost is: u 0.000s 0: % 0+0k 0+0io 0pf+0w

5 time./elevatorrec 20 6 Last stop at floor u 0.000s 1: % 0+0k 0+0io 0pf+0w time./elevatorrec Last stop at floor 62 Cost is: u 0.832s 3:03: % 0+0k 184+0io 17pf+0w Αναδρομική μέθοδος με απομνημόνευση (10%) Παρατηρήστε ότι στις τέσσερις τελευταίες ενδεικτικές εκτελέσεις της αναδρομικής μεθόδου, ο χρόνος αυξάνει δραματικά. Γιατί συμβαίνει αυτό; Μπορούμε να δούμε ότι εϕαρμόζοντας την αναδρομική σχέση που δόθηκε, τα περισσότερα M ij υπολογίζονται περισσότερες από μία ϕορά το καθένα, αρκετά από αυτά υπερβολικά μεγάλο αριθμό ϕορών. Αυτό το γεγονός προκαλεί μεγάλη καθυστέρηση στην εκτέλεση του προγράμματος. Πώς θα μπορούσαμε να το διορθώσουμε; Αρκεί να χρησιμοποιήσουμε ένα δισδιάστατο πίνακα στον οποίο να αποθηκεύεται κάθε M ij την πρώτη ϕορά που υπολογίζεται και όταν χρειάζεται πάλι, να μην επαναϋπολογίζεται, αλλά να λαμβάνεται η τιμή του από τον πίνακα. Η λογική της βελτιωμένης μεθόδου εξακολουθεί να είναι αναδρομική, βασισμένη στη μαθηματική σχέση που δόθηκε, απλώς κάθε M ij υπολογίζεται ακριβώς μία ϕορά και ϕυλάσσεται στον πίνακα για μελλοντική χρήση. Υλοποιήστε τη συνάρτηση solve() και με βάση αυτήν την προσέγγιση (εκδοχή MEM). Ενδεικτικές εκτελέσεις: gcc -DMEM -o elevatormem elevator.c hostname linuxvm07./elevatormem Last stop at floor 11 Cost is: 4./elevatormem Last stop at floor 10 Cost is: 5./elevatormem Last stop at floor 5 Cost is: 0./elevatormem No elevator stops

6 time./elevatormem 20 4 Last stop at floor 42 Cost is: u 0.000s 0: % 0+0k 0+0io 0pf+0w time./elevatormem 20 5 Last stop at floor 42 Cost is: u 0.000s 0: % 0+0k 0+0io 0pf+0w time./elevatormem 20 6 Last stop at floor u 0.000s 0: % 0+0k 0+0io 0pf+0w time./elevatormem Last stop at floor 62 Cost is: u 0.000s 0: % 0+0k 0+0io 0pf+0w Επαναληπτική μέθοδος με δυναμικό προγραμματισμό (60%) Στην αναδρομική μέθοδο με απομνημόνευση, η λογική του υπολογισμού των M ij είναι με σειρά απόεπάνω-προς-τα-κάτω (top-down), δηλαδή αρχίζουμε από τα μεγάλα j, οπότε απαιτείται ο υπολογισμός των τιμών για μικρότερα j, μετά για ακόμα μικρότερα, κ.ο.κ. μέχρι να ϕτάσουμε στο j = 0, όπου δεν χρειάζεται αναδρομή για τον υπολογισμό τους. Μία αντίστροϕη λογική από αυτή είναι να συμπληρωθεί ο πίνακας των M ij με σειρά από-κάτω-προς-τα-επάνω (bottom-up). Δηλαδή, αρχίζουμε τους υπολογισμούς για j = 0, συνεχίζουμε με j = 1 και τελικά καταλήγουμε στους υπολογισμούς για j = nst. Η προσέγγιση αυτή χαρακτηρίζεται στη βιβλιογραϕία ως δυναμικός προγραμματισμός (dynamic programming). Υλοποιήστε τη συνάρτηση solve() και με βάση τη λογική αυτή (εκδοχή DP). Η συνάρτηση να εκτυπώνει και τις τιμές M ij, μία γραμμή για κάθε j (από 0 έως nst). Επίσης, η συνάρτηση να εκτυπώνει, αντί για την τελευταία στάση του ανελκυστήρα μόνο, όλες τις στάσεις του. Σκεϕτείτε πώς θα μπορούσε να γίνει αυτό. Αρκούν οι τιμές M ij ; Μάλλον όχι. Μία ιδέα, όχι όμως δεσμευτική, είναι να χρησιμοποιηθεί και ένας δεύτερος δισδιάστατος πίνακας, στον οποίο να ϕυλάσσεται για κάθε (i, j) η τιμή του k για την οποία στη στάση j 1 βρέθηκε η ελάχιστη τιμή για το M(i, j), σύμϕωνα με την αναδρομική σχέση που δόθηκε αρχικά. Ενδεικτικές εκτελέσεις: gcc -DDP -o elevatordp elevator.c hostname linuxvm07./elevatordp

7 Elevator stops are: 7 11 Cost is: 4./elevatordp Elevator stops are: Cost is: 5./elevatordp Elevator stops are: 3 5 Cost is: 0./elevatordp No elevator stops time./elevatordp Elevator stops are: Cost is: u 0.004s 0: % 0+0k 0+0io 0pf+0w time./elevatordp

8 Elevator stops are: Cost is: u 0.000s 0: % 0+0k 0+0io 0pf+0w time./elevatordp Elevator stops are: u 0.000s 0: % 0+0k 0+0io 0pf+0w time./elevatordp

9 Elevator stops are: Cost is: u 0.000s 0: % 0+0k 0+0io 0pf+0w Μέθοδος ωμής βίας (20%) Μία εντελώς διαϕορετική μέθοδος για να προσεγγιστεί το πρόβλημα, η οποία δεν βασίζεται στην αναδρομική σχέση που δόθηκε, είναι να κατασκευάζονται συστηματικά όλες οι πιθανές λύσεις, δηλαδή οι δυνατοί συνδυασμοί στάσεων του ανελκυστήρα, για κάθε μία από αυτές να υπολογίζεται το κόστος της και, τελικά, σαν λύση να δοθεί αυτή που έχει το ελάχιστο κόστος. Αν ο μέγιστος αριθμός στάσεων είναι nst, θα πρέπει να εξετασθούν όλες οι λύσεις με 1 στάση, 2 στάσεις, κ.ο.κ., nst στάσεις. Υπενθυμίζεται ότι έχει νόημα να συζητάμε για στάσεις από 1 μέχρι nf l. Υλοποιήστε τη συνάρτηση solve() και με βάση αυτή τη μέθοδο (εκδοχή BF). Η συνάρτηση να εκτυπώνει και τη βέλτιστη λύση που βρέθηκε. Ενδεικτικές εκτελέσεις: gcc -DBF -o elevatorbf elevator.c hostname linuxvm07./elevatorbf Elevator stops are: 7 11 Cost is: 4./elevatorbf Elevator stops are: Cost is: 5./elevatorbf Elevator stops are: 3 5 Cost is: 0./elevatorbf No elevator stops time./elevatorbf 20 4 Elevator stops are: Cost is: u 0.000s 0: % 0+0k 0+0io 0pf+0w time./elevatorbf 20 5 Elevator stops are: Cost is: 20

10 0.336u 0.004s 0: % 0+0k 0+0io 0pf+0w time./elevatorbf 20 6 Elevator stops are: u 0.000s 0: % 0+0k 0+0io 0pf+0w time./elevatorbf Elevator stops are: Cost is: u 0.000s 2: % 0+0k 0+0io 0pf+0w Παραδοτέο Θα πρέπει να δομήσετε το πρόγραμμά σας σε ένα σύνολο από τουλάχιστον δύο πηγαία αρχεία C (με κατάληξη.c) και τουλάχιστον ένα αρχείο επικεϕαλίδας (με κατάληξη.h). Μία ιδέα, όχι δεσμευτική, είναι το ένα πηγαίο αρχείο.c να περιέχει τη συνάρτηση main() του προγράμματος και το άλλο όλες τις υπόλοιπες συναρτήσεις. Για το αρχείο.h, σκεϕτείτε τι περιεχόμενο πρέπει να έχει. Για να παραδώσετε το σύνολο των αρχείων που θα έχετε δημιουργήσει για την εργασία αυτή, ακολουθήστε την εξής διαδικασία. Τοποθετήστε όλα τα αρχεία μέσα σ ένα κατάλογο που θα δημιουργήσετε σε κάποιο σύστημα Linux, έστω με όνομα elevator. Οντας στον κατάλογο που περιέχει τον κατάλογο elevator, δημιουργήστε ένα επιπεδοποιημένο tar αρχείο (έστω με όνομα elevator.tar) που περιέχει τον κατάλογο elevator και όλα του τα περιεχόμενα. Αυτό γίνεται με την εντολή tar cvf elevator.tar elevator. 1 Συμπιέστε το αρχείο elevator.tar, ώστε να δημιουργηθεί το αρχείο elevator.tar.gz. Αυτό γίνεται με την εντολή gzip elevator.tar. 2 Το αρχείο elevator.tar.gz είναι που θα πρέπει να υποβάλετε μέσω του eclass. 3 1 Αν θέλετε να ανακτήσετε την δενδρική δομή που έχει ϕυλαχθεί σε ένα επιπεδοποιημένο tar αρχείο file.tar, αυτό μπορεί να γίνει με την εντολή tar xvf file.tar. 2 Αν θέλετε να αποσυμπιέσετε ένα αρχείο file.gz που έχει συμπιεσθεί με την εντολή gzip, αυτό μπορεί να γίνει με την εντολή gzip -d file.gz. 3 Μην υποβάλετε ασυμπίεστα αρχεία ή αρχεία που είναι συμπιεσμένα σε άλλη μορϕή εκτός από tar.gz (π.χ. rar, 7z, zip, κλπ.), γιατί δεν θα γίνονται δεκτά για αξιολόγηση.

city9 city8 city6 city7 city5 28 city3 25 city1 city0 P ijk =

city9 city8 city6 city7 city5 28 city3 25 city1 city0 P ijk = ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ (2018-19) Εργασία 3 Εστω ότι μας δίνεται ένα σύνολο από πόλεις και τα μήκη των δρόμων που συνδέουν κάποια ζευγάρια από αυτές, όπως ϕαίνεται στο διπλανό σχήμα. Μιλώντας με μαθηματικούς

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

dtw(a, B) = dtw(a n, B m )

dtw(a, B) = dtw(a n, B m ) ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ (2016-17) Εργασία 3 Η εργασία αυτή εντάσσεται στις περιοχές της Επιστήμης των Υπολογιστών που ονομάζονται μηχανική μάθηση (machine learning) και εξόρυξη δεδομένων (data mining),

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

Crossword1.txt, Crossword2.txt, Crossword3.txt, Crossword4.txt και Crossword5.txt, $ cat Crossword1.txt $

Crossword1.txt, Crossword2.txt, Crossword3.txt, Crossword4.txt και Crossword5.txt, $ cat Crossword1.txt $ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ (0-) Εργασία Το πρόβλημα που καλείσθε να αντιμετωπίσετε στην άσκηση αυτή είναι η συμπλήρωση σταυρολέξων. Δεδομένα του προβλήματος είναι ένα κενό σταυρόλεξο, δηλαδή οι διαστάσεις

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

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

ΚΕΦΑΛΑΙΟ 5 ΑΚΟΛΟΥΘΙΕΣ ΑΡΙΘΜΗΤΙΚΗ ΓΕΩΜΕΤΡΙΚΗ ΠΡΟΟΔΟΣ ΑΛΓΕΒΡΑ Β ΛΥΚΕΙΟΥ ΚΕΦΑΛΑΙΟ 5 ΑΚΟΛΟΥΘΙΕΣ ΑΡΙΘΜΗΤΙΚΗ ΓΕΩΜΕΤΡΙΚΗ ΠΡΟΟΔΟΣ ΓΙΑΝΝΗΣ ΠΑΤΕΡΑΣ ΜΑΘΗΜΑΤΙΚΟΣ ΑΛΓΕΒΡΑ Β ΛΥΚΕΙΟΥ ΑΚΟΛΟΥΘΙΕΣ ΚΕΦΑΛΑΙΟ 5 ΑΡΙΘΜΗΤΙΚΗ ΠΡΟΟΔΟΣ ΑΠΑΡΑΙΤΗΤΕΣ ΓΝΩΣΕΙΣ ΘΕΩΡΙΑΣ Ακολουθία ονομάζουμε

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή Στο εργαστήριο αυτό θα μάθουμε για τη χρήση συναρτήσεων με σκοπό την κατασκευή αυτόνομων τμημάτων προγραμμάτων που υλοποιούν μία συγκεκριμένη διαδικασία, τα οποία

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128] ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 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 στην

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

i=1 f i = F i SF [0, f 1 ), [f 1, f 1 + f 2 ), [f 1 + f 2, f 1 + f 2 + f 3 ),..., [f 1 + f f P 1, 1) i 1

i=1 f i = F i SF [0, f 1 ), [f 1, f 1 + f 2 ), [f 1 + f 2, f 1 + f 2 + f 3 ),..., [f 1 + f f P 1, 1) i 1 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ (216-17) Εργασία 4 Πολύ συχνά, ένα υπολογιστικό πρόβλημα έχει περισσότερες από μία λύση. Για παράδειγμα, αν θέλουμε να βρούμε ένα υποσύνολο ενός συνόλου ακεραίων, που το άθροισμα

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

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

Β Ομάδα Ασκήσεων Λογικού Προγραμματισμού Ακαδημαϊκού Έτους Page 1 of 15 ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2016-17 Οι ασκήσεις της ομάδας αυτής πρέπει

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

$ hostname linux29 $ $./purerecrobot 5 6...C..C.C.....C.C..C..C...C. Running purerecursive Maximum number of coins to pick up is: 5 $ $ cat

$ hostname linux29 $ $./purerecrobot 5 6...C..C.C.....C.C..C..C...C. Running purerecursive Maximum number of coins to pick up is: 5 $ $ cat ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ (2015-16) Εργασία 3 Εστω ότι έχουμε ένα ορθογώνιο πλαίσιο n m (n γραμμές και m στήλες), σε κάθε τετραγωνίδιο/κελί του οποίου μπορεί να υπάρχει ή όχι ένα νόμισμα. Ενα ρομπότ

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

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

Β Ομάδα Ασκήσεων Λογικού Προγραμματισμού Ακαδημαϊκού Έτους Page 1 of 10 ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2018-19 Οι ασκήσεις της ομάδας αυτής πρέπει

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

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών,, τα οποίo είναι υποσύνολο του. Υποστηριζόμενες λειτουργίες αναζήτηση(s,x): εισαγωγή(s,x): διαγραφή(s,x): διάδοχος(s,x): προκάτοχος(s,x):

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

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

Α Β Γ static; printf(%c\n, putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf(*); ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2016 (1/2/2016) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

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

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

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

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και Βασίλευε (Divide and

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

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

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

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

Στοχαστικές Στρατηγικές. διαδρομής (1)

Στοχαστικές Στρατηγικές. διαδρομής (1) Στοχαστικές Στρατηγικές η ενότητα: Το γενικό πρόβλημα ελάχιστης διαδρομής () Τμήμα Μαθηματικών, ΑΠΘ Ακαδημαϊκό έτος 08-09 Χειμερινό Εξάμηνο Παπάνα Αγγελική Μεταδιδακτορική ερευνήτρια, ΑΠΘ & Πανεπιστήμιο

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

Αλγοριθμικές Τεχνικές

Αλγοριθμικές Τεχνικές Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Αλγοριθμικές Τεχνικές 1 Τεχνικές Σχεδιασμού Αλγορίθμων Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και

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

Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008

Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008 Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008 Αντικείµενο της εργαστηριακής άσκησης για το 2008 αποτελεί το πρόβληµα της εύρεσης της κατανοµής ϑερµότητας ενός αντικειµένου σε σταθερή

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

21/11/2013 ETY-202 ETY-202 ΎΛΗ & ΦΩΣ 06. Ο ΑΡΜΟΝΙΚΟΣ ΤΑΛΑΝΤΩΤΗΣ. 1396; office Δ013 ΙΤΕ. Στέλιος Τζωρτζάκης

21/11/2013 ETY-202 ETY-202 ΎΛΗ & ΦΩΣ 06. Ο ΑΡΜΟΝΙΚΟΣ ΤΑΛΑΝΤΩΤΗΣ. 1396; office Δ013 ΙΤΕ. Στέλιος Τζωρτζάκης stzortz@iesl.forth.gr 1396; office Δ013 ΙΤΕ 2 ΎΛΗ & ΦΩΣ 06. Ο ΑΡΜΟΝΙΚΟΣ ΤΑΛΑΝΤΩΤΗΣ Στέλιος Τζωρτζάκης Ο ΑΡΜΟΝΙΚΟΣ ΤΑΛΑΝΤΩΤΗΣ 1 3 4 Το δυναμικό του αρμονικού ταλαντωτή Η παραβολική προσέγγιση βρίσκει άμεση

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

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης Στο εργαστήριο αυτό, θα εξοικειωθούμε με τους τύπους δεδομένων που μας παρέχει η γλώσσα C, θα χρησιμοποιήσουμε τις δομές επανάληψης (for, while, do...while),

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

Δυναµικός Προγραµµατισµός (ΔΠ)

Δυναµικός Προγραµµατισµός (ΔΠ) Δυναµικός Προγραµµατισµός (ΔΠ) Περίληψη Δυναµικός Προγραµµατισµός Αρχή του Βέλτιστου Παραδείγµατα Δυναµικός Προγραµµατισµός ΔΠ (Dynamic Programming DP) Μέθοδος σχεδιασµού αλγορίθµων Είναι µια γενική µεθοδολογία

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 17: Λύση Προβλημάτων με Αναδρομή Οι πύργοι του Hanoi Δίνεται ένα χώρος με τρεις θέσεις αποθήκευσης. Δίνεται μια στοίβα από Ν πλάκες σε φθίνον μέγεθος, σε μια από τις τρεις

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

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

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 26 ΑΠΡΙΛΙΟΥ 2012 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΛΥΣΕΙΣ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: 7 Α1. Κάθε σωστή απάντηση

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

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

Λογικός Προγραμματισμός Ασκήσεις Λογικός Προγραμματισμός Ασκήσεις Παναγιώτης Σταματόπουλος Τμήμα Πληροφορικής και Τηλεπικοινωνιών Περιεχόμενα 1. Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2011-12... 3 1.1 Άσκηση 4...

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

Δομές Δεδομένων & Αλγόριθμοι

Δομές Δεδομένων & Αλγόριθμοι Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν

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

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Αναζήτηση. Σειριακή αναζήτηση. Δυαδική Αναζήτηση Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Παραδοχή Στη συνέχεια των διαφανειών (διαλέξεων) η ασυμπτωτική έκφραση (συμβολισμός Ο, Ω, Θ) του χρόνου

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

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

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

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

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων Τεχνικές Σχεδιασµού Αλγορίθµων Αλγόριθµοι Παύλος Εφραιµίδης pefraimi@ee.duth.gr Ορισµένες γενικές αρχές για τον σχεδιασµό αλγορίθµων είναι: ιαίρει και Βασίλευε (Divide and Conquer) υναµικός Προγραµµατισµός

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

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

Λογικός Προγραμματισμός Ασκήσεις Λογικός Προγραμματισμός Ασκήσεις Παναγιώτης Σταματόπουλος Τμήμα Πληροφορικής και Τηλεπικοινωνιών Περιεχόμενα 1. Α Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2007-08... 3 1.1 Άσκηση... 3

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

, ο αριθμός στον οποίο αντιστοιχεί ο 2 καλείται δεύτερος όρος της ακολουθίας και τον συμβολίζουμε συνήθως με

, ο αριθμός στον οποίο αντιστοιχεί ο 2 καλείται δεύτερος όρος της ακολουθίας και τον συμβολίζουμε συνήθως με 5. ΑΚΟΛΟΥΘΙΕΣ Γενικά ακολουθία πραγματικών αριθμών είναι μια αντιστοίχιση των φυσικών αριθμών,,,...,ν,... στους πραγματικούς αριθμούς. Ο αριθμός στον οποίο αντιστοιχεί ο καλείται πρώτος όρος της ακολουθίας

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

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

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

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

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

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

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Εργαστήριο 2: Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας Προγραμματισμού

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

Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Αλγόριθμοι Δυναμικός Προγραμματισμός http://delab.csd.auth.gr/courses/algorithms/ Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Δυναμικός προγραμματισμός Ο Δυναμικός Προγραμματισμός προτάθηκε από τον

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

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

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Αριθμητική Παραγώγιση Εισαγωγή Ορισμός 7. Αν y f x είναι μια συνάρτηση ορισμένη σε ένα διάστημα

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

Στοχαστικές Στρατηγικές

Στοχαστικές Στρατηγικές Στοχαστικές Στρατηγικές 4 η ενότητα: Προβλήματα αντικατάστασης εργαλείων Τμήμα Μαθηματικών, ΑΠΘ Ακαδημαϊκό έτος 2018-2019 Χειμερινό Εξάμηνο Παπάνα Αγγελική Μεταδιδακτορική ερευνήτρια, ΑΠΘ & Πανεπιστήμιο

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

Α. 27 Β. 29 Γ. 45 Δ. 105 Ε. 127

Α. 27 Β. 29 Γ. 45 Δ. 105 Ε. 127 Α - Β Γυμνασίου η Κυπριακή Μαθηματική Ολυμπιάδα Απρίλιος 0. Αν = M = 60, η τιμή του M + N είναι: 5 45 N Α. Β. 9 Γ. 45 Δ. 05 Ε.. Ένα τετράγωνο και ένα τρίγωνο έχουν ίσες περιμέτρους. Το μήκος των τριών

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf(%u\n, x); Β. unsigned char ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

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

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

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

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

ΘΕΜΑΤΑ ΤΕΛΙΚΗΣ ΦΑΣΗΣ

ΘΕΜΑΤΑ ΤΕΛΙΚΗΣ ΦΑΣΗΣ 27 ος ΠΑΝΕΛΛΗΝΙΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Θέμα 1 ο : Παρέες αριθμών ΘΕΜΑΤΑ ΤΕΛΙΚΗΣ ΦΑΣΗΣ [30 Μονάδες] Λέμε ότι δύο φυσικοί αριθμοί είναι στην ίδια παρέα όταν έχουν το ίδιο πλήθος άσων (1) στη δυαδική

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

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for)

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for) 4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for) 4.1 Μετρητές Ένας μετρητής (counter) είναι μία μεταβλητή η οποία ξεκινά με μία αρχική τιμή και αυξάνεται κατά ένα κάθε φορά που εκτελείται. Ο αλγόριθμος για έναν μετρητή

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

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

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

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

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

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

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

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

Β Ομάδα Ασκήσεων Λογικού Προγραμματισμού Ακαδημαϊκού Έτους Page 1 of 10 ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2015-16 Οι ασκήσεις της ομάδας αυτής πρέπει

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

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

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

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

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Σκοπός του μαθήματος Σκοπός του παρόντος μαθήματος είναι να μάθετε να κάνετε εισαγωγή δεδομένων σε πίνακες και περαιτέρω επεξεργασία

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

5 ΠΡΟΟΔΟΙ 5.1 ΑΚΟΛΟΥΘΙΕΣ. Η έννοια της ακολουθίας

5 ΠΡΟΟΔΟΙ 5.1 ΑΚΟΛΟΥΘΙΕΣ. Η έννοια της ακολουθίας 5 ΠΡΟΟΔΟΙ 5.1 ΑΚΟΛΟΥΘΙΕΣ Η έννοια της ακολουθίας Ας υποθέσουμε ότι καταθέτουμε στην τράπεζα ένα κεφάλαιο 10000 ευρώ με ανατοκισμό ανά έτος και με επιτόκιο 2%. Αυτό σημαίνει ότι σε ένα χρόνο οι τόκοι που

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

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Καθηγητής. Γουνόπουλος Άσκηση 1 Σκοπός της εργασίας αυτής είναι η κατανόηση της εσωτερικής λειτουργίας

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

Χαρακτηριστικά αναδροµής

Χαρακτηριστικά αναδροµής Χαρακτηριστικά αναδροµής base case : συνθήκη τερµατισµού της αναδροµής Όταν το πρόβληµα είναι αρκετά µικρό ή απλό ώστε η λύση να είναι άµεση αναδροµικό βήµα : κλήση της ίδιας συνάρτησης για µικρότερη ή

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

Ημερομηνία Ανάρτησης: 08/1/2018 Ημερομηνία Παράδοσης: - Αρχές Γλωσσών Προγραμματισμού

Ημερομηνία Ανάρτησης: 08/1/2018 Ημερομηνία Παράδοσης: - Αρχές Γλωσσών Προγραμματισμού Ημερομηνία Ανάρτησης: 08/1/2018 Ημερομηνία Παράδοσης: - Αρχές Γλωσσών Προγραμματισμού Περιγραφή Προβλήματος Στην εργασία αυτή καλείστε να υλοποιήσετε ένα πρόγραμμα σε Haskell που θα επιλύει το παιγνίδι

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

Δυναμικός προγραμματισμός για δέντρα

Δυναμικός προγραμματισμός για δέντρα ΘΕ5 Ιδιότητες Δέντρων και Αναδρομή για Δέντρα Δυναμικός προγραμματισμός για δέντρα Έστω ότι, για k=1,..., m, το γράφημα Γ k = (V k, E k ) είναι δέντρο. Έστω w V 1... V m, z k V k, για k=1,..., m. Συμβολίζουμε

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

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

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

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

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 1 / 45 Εισαγωγή Ο δυναµικός

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

6 η ΕΝΟΤΗΤΑ ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

6 η ΕΝΟΤΗΤΑ ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΕΙΣΑΓΩΓΗ ΣΤΗN ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ 6 η ΕΝΟΤΗΤΑ ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μ. Καρλαύτης Ν. Λαγαρός Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες Χρήσης Creative

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

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

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

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

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

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

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

καθ. Βασίλης Μάγκλαρης

καθ. Βασίλης Μάγκλαρης ΣΤΟΧΑΣΤΙΚΕΣ ΔΙΕΡΓΑΣΙΕΣ & ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Αίθουσα 005 - Νέα Κτίρια ΣΗΜΜΥ Ε.Μ.Π. Ενισχυτική Μάθηση - Δυναμικός Προγραμματισμός: 1. Markov Decision Processes 2. Bellman s Optimality Criterion 3. Αλγόριθμος

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

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

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

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

Θέματα Εφαρμογών Βάσεων Δεδομένων: Ιδιωτικότητα Δεδομένων

Θέματα Εφαρμογών Βάσεων Δεδομένων: Ιδιωτικότητα Δεδομένων Θέματα Εφαρμογών Βάσεων Δεδομένων: Ιδιωτικότητα Δεδομένων 3. Δυναμικός Προγραμματισμός Ζαγορίσιος Παναγώτης Παπαοικονόμου Χριστίνα Δυναμικός Προγραμματισμός Μέθοδος επίλυσης σύνθετων προβλημάτων. Όπως

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

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

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

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

3η ΕΡΓΑΣΙΑ. 3.1 Αµεσοι µέθοδοι για την Αριθµητική Επίλυση Γραµµικών Συστηµάτων

3η ΕΡΓΑΣΙΑ. 3.1 Αµεσοι µέθοδοι για την Αριθµητική Επίλυση Γραµµικών Συστηµάτων ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟ ΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΤΟΜΕΑΣ ΘΕΩΡΗΤΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ : Αριθµητικές Μέθοδοι και Προγραµµατισµός(ΧΗΜΙΚΟ) Καταληκτική ηµεροµηνία υποβολής

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

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 7 ο Εργαστήριο. Διανύσματα-Πίνακες 2 ο Μέρος

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 7 ο Εργαστήριο. Διανύσματα-Πίνακες 2 ο Μέρος Εργαστήρια Αριθμητικής Ανάλυσης Ι 7 ο Εργαστήριο Διανύσματα-Πίνακες 2 ο Μέρος 2017 Εντολή size Σε προηγούμενο εργαστήριο είχαμε κάνει αναφορά στην συνάρτηση length, και την χρησιμότητα της όταν δουλεύουμε

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

Κεφάλαιο 12: Υδραυλική ανάλυση δικτύων διανομής

Κεφάλαιο 12: Υδραυλική ανάλυση δικτύων διανομής Κεφάλαιο 12: Υδραυλική ανάλυση δικτύων διανομής Εννοιολογική αναπαράσταση δίκτυων διανομής Σχηματοποίηση: δικτυακή απεικόνιση των συνιστωσών του φυσικού συστήματος ως συνιστώσες ενός εννοιολογικού μοντέλου

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

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2010 2011 Δ. Γουνόπουλος Ι. Ιωαννίδης Άσκηση 1: Συγχώνευση Εγγραφών Δυαδικών Αρχείων Προθεσμία: 2 Μαΐου 2011, 5:00μμ

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

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

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

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

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Σχεδίαση Αλγορίθμων Δυναμικός Προγραμματισμός http://delab.csd.auth.gr/~gounaris/courses/ad Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Δυναμικός προγραμματισμός Ο Δυναμικός Προγραμματισμός

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

Αλγόριθμοι για αυτόματα

Αλγόριθμοι για αυτόματα Κεφάλαιο 8 Αλγόριθμοι για αυτόματα Κύρια βιβλιογραφική αναφορά για αυτό το Κεφάλαιο είναι η Hopcroft, Motwani, and Ullman 2007. 8.1 Πότε ένα DFA αναγνωρίζει κενή ή άπειρη γλώσσα Δοθέντος ενός DFA M καλούμαστε

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

max & min Μεθοδολογία - 1 Τα βήματα που συνήθως ακολουθούμε στις τεχνικές εύρεσης max & min είναι τα εξής:

max & min Μεθοδολογία - 1 Τα βήματα που συνήθως ακολουθούμε στις τεχνικές εύρεσης max & min είναι τα εξής: Μεθοδολογία - 1 Τα βήματα που συνήθως ακολουθούμε στις τεχνικές εύρεσης είναι τα εξής: 1. Υπόθεση Ξεκινάμε με μια αυθαίρετη παραδοχή ότι κάποιος από τους αριθμούς που εξετάζουμε είναι ο μέγιστος (ή ο ελάχιστος

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

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

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

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

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

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ Εισαγωγή στις Αρχές της επιστήμης των ΗΥ Ερωτήσεις και ασκήσεις για επανάληψη 1. Τι είναι πρόβλημα (σελ 14) 2. Ποιες είναι οι κατηγορίες προβλημάτων με βάση την επίλυση; Δώστε τον ορισμό για κάθε μια κατηγορία.

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2013-2014 Προθεσµία: 7/1/2014, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης 1 Οδηγίες αποστολής άσκησης Πριν ξεκινήσετε (ΔΙΑΒΑΣΤΕ

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

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

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

Sheet2. Σωστή, και µπράβο που µεριµνήσατε για λίστες διαφορετικών µεγεθών.

Sheet2. Σωστή, και µπράβο που µεριµνήσατε για λίστες διαφορετικών µεγεθών. Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ Δεν κάνει compile και το λάθος είναι σηµαντικό: Το head1 είναι δείκτης σε struct, εποµένως η προσπέλαση πεδίου γίνεται 321 FAIL µε head1->next και όχι head1.next. Επιπλέον, έχετε λάθος

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

ΘΕΜΑΤΑ ΤΕΛΙΚΗΣ ΦΑΣΗΣ

ΘΕΜΑΤΑ ΤΕΛΙΚΗΣ ΦΑΣΗΣ 6 ος ΠΑΝΕΛΛΗΝΙΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Θέμα 1 ο : Άθροισμα ζευγών ΘΕΜΑΤΑ ΤΕΛΙΚΗΣ ΦΑΣΗΣ [30 Μονάδες] Δίνεται μία ακολουθία Ν ακέραιων αριθμών. Θέλουμε να μπορούμε να απαντάμε στο ερώτημα «υπάρχει ζεύγος

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

Αλγόριθμοι Ταξινόμησης Μέρος 1

Αλγόριθμοι Ταξινόμησης Μέρος 1 Αλγόριθμοι Ταξινόμησης Μέρος 1 Μανόλης Κουμπαράκης 1 Το Πρόβλημα της Ταξινόμησης Το πρόβλημα της ταξινόμησης (sorting) μιας ακολουθίας στοιχείων με κλειδιά ενός γνωστού τύπου (π.χ., τους ακέραιους ή τις

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

Εφαρμοσμένη Στατιστική Δημήτριος Μπάγκαβος Τμήμα Μαθηματικών και Εφαρμοσμένων Μαθηματικών Πανεπισ τήμιο Κρήτης 14 Μαρτίου /34

Εφαρμοσμένη Στατιστική Δημήτριος Μπάγκαβος Τμήμα Μαθηματικών και Εφαρμοσμένων Μαθηματικών Πανεπισ τήμιο Κρήτης 14 Μαρτίου /34 Εφαρμοσμένη Στατιστική Δημήτριος Μπάγκαβος Τμήμα Μαθηματικών και Εφαρμοσμένων Μαθηματικών Πανεπιστήμιο Κρήτης 14 Μαρτίου 018 1/34 Διαστήματα Εμπιστοσύνης. Εχουμε δει εκτενώς μέχρι τώρα τρόπους εκτίμησης

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

Αστικά υδραυλικά έργα

Αστικά υδραυλικά έργα Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος Αστικά υδραυλικά έργα Υδραυλική ανάλυση δικτύων διανομής Δημήτρης Κουτσογιάννης, Καθηγητής ΕΜΠ Σχολή Πολιτικών Μηχανικών Άδεια Χρήσης

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

Σε γενικές γραμμές, είναι καλή πρακτική να γράϕουμε προγράμματα C που αποτελούνται από πολλές και μικρές συναρτήσεις, παρά από λίγες και μεγάλες.

Σε γενικές γραμμές, είναι καλή πρακτική να γράϕουμε προγράμματα C που αποτελούνται από πολλές και μικρές συναρτήσεις, παρά από λίγες και μεγάλες. 58 Δομή ενός προγράμματος C Συναρτήσεις Μία συνάρτηση C είναι ένα αυτόνομο, πακεταρισμένο τμήμα προγράμματος που ϕέρει σε πέρας μία διαδικασία η οποία έχει σαϕείς προδιαγραϕές εισόδου και εξόδου και συγκεκριμένο

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

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

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

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

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

Λογικός Προγραμματισμός Ασκήσεις Λογικός Προγραμματισμός Ασκήσεις Παναγιώτης Σταματόπουλος Τμήμα Πληροφορικής και Τηλεπικοινωνιών Περιεχόμενα 1. Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2014-15... 3 1.1 Άσκηση 4...

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

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

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

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

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

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

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

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τµήµα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήµατα (Εργαστήριο) Διδάσκων: I. Τσακνάκης. 7ο Εργαστήριο

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τµήµα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήµατα (Εργαστήριο) Διδάσκων: I. Τσακνάκης. 7ο Εργαστήριο ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τµήµα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήµατα (Εργαστήριο) Διδάσκων: I. Τσακνάκης 7ο Εργαστήριο Συµπίεση αρχείων Χρήση ειδικών χαρακτήρων στην γραµµή εντολών 1 Συµπίεση αρχείων

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

8. Πολλαπλές μερικές παράγωγοι

8. Πολλαπλές μερικές παράγωγοι 94 8 Πολλαπλές μερικές παράγωγοι Οι μερικές παράγωγοι,,, αν υπάρχουν, μιας συνάρτησης : U R R ( U ανοικτό ) είναι αυτές συναρτήσεις από το U στο R, επομένως μπορεί να ορισθεί για αυτές η έννοια της μερικής

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

Πρόγραμμα όρασης. Στη συνέχεια θα περιγράψουμε πώς δουλεύει το ρομπότ.

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

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 17: Λύση Προβλημάτων με Αναδρομή Οι πύργοι του Hanoi Δίνεται ένα χώρος με τρεις θέσεις αποθήκευσης. Δίνεται μια στοίβα από Ν πλάκες σε φθίνον μέγεθος, σε μια από τις τρεις

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

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

Αρχές Προγραμματισμού Αρχές Προγραμματισμού Ενότητα: Εργαστηριακή Άσκηση 1 Παλιουράς Βασίλης, Δερματάς Ευάγγελος Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών 1. Σκοποί ενότητας----------------------------------------------------------------------------------------------------------

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

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007 Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007 Πρόβλημα 1 Το πρώτο πρόβλημα λύνεται με τη μέθοδο του Δυναμικού Προγραμματισμού. Για να το λύσουμε με Δυναμικό Προγραμματισμό

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

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο M. Χατζόπουλος. Προθεσμία: 19/01/2015

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο M. Χατζόπουλος. Προθεσμία: 19/01/2015 Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2013 2014 M. Χατζόπουλος Προθεσμία: 19/01/2015 Σκοπός της εργασίας είναι η κατανόηση της εσωτερικής λειτουργίας

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

./mydiz {-c -a -x -m -d -p -j} <archive-file> <list-of-files/dirs>

./mydiz {-c -a -x -m -d -p -j} <archive-file> <list-of-files/dirs> ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Πληροφορικής και Τηλεπικοινωνιών η Εργασία - Τμήμα: Περιττών Αριθμών Μητρώου Κ: Λειτουργικά Συστήματα Χειμερινό Εξάμηνο 6 Ημερομηνία Ανακοίνωσης: 8 Ιανουαρίου Ημερομηνία Υποβολής:

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59 ΣΕΤ ΑΣΚΗΣΕΩΝ 2 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2009-20010 Προθεσµία: 15/11/09, 23:59 Στόχοι Χρήση συναρτήσεων Χρήση µονοδιάστατων πινάκων Διαχείριση συµβολοσειρών Φορµαρισµένη έξοδος δεδοµένων

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2011-2012 Προθεσµία: 8/1/12, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης Οδηγίες αποστολής άσκησης Πριν ξεκινήσετε (ΔΙΑΒΑΣΤΕ

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

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» 2 ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Προβλήματα ελάχιστης συνεκτικότητας δικτύου Το πρόβλημα της ελάχιστης

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

ΚΕΦΑΛΑΙΟ 4 ο : ΑΝΙΣΩΣΕΙΣ ΤΟ 2 Ο ΘΕΜΑ

ΚΕΦΑΛΑΙΟ 4 ο : ΑΝΙΣΩΣΕΙΣ ΤΟ 2 Ο ΘΕΜΑ ΚΕΦΑΛΑΙΟ 4 ο : ΑΝΙΣΩΣΕΙΣ ΤΟ 2 Ο ΘΕΜΑ Άσκηση 1 Δίνονται οι ανισώσεις: 3x και 2 x α) Να βρείτε τις λύσεις τους (Μονάδες 10) β) Να βρείτε το σύνολο των κοινών τους λύσεων (Μονάδες 15) α) Έχουμε 3x 2x x 2

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