Συστήματα Επιχειρηματικής Ευφυίας. CPLEX και OPL: ένα λογισμικό επίλυσης προβλημάτων Γραμμικού Προγραμματισμού

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

Download "Συστήματα Επιχειρηματικής Ευφυίας. CPLEX και OPL: ένα λογισμικό επίλυσης προβλημάτων Γραμμικού Προγραμματισμού"

Transcript

1 Συστήματα Επιχειρηματικής Ευφυίας CPLEX και OPL: ένα λογισμικό επίλυσης προβλημάτων Γραμμικού Προγραμματισμού

2 Προβλήματα Γραμμικού Προγραμματισμού Πρόβλημα Γραμμικού Προγραμματισμού - ΓΠ (Linear Programming LP) λέγεται κάθε πρόβλημα μεγιστοποίησης ή ελαχιστοποίησης μιας (αντικειμενικής) συνάρτησης, με ταυτόχρονη ικανοποίηση κάποιων περιορισμών, όπου: Κάθε περιορισμός μπορεί να μοντελοποιηθεί ως γραμμική εξίσωση ή ανίσωση Η αντικειμενική συνάρτηση μπορεί να μοντελοποιηθεί ως γραμμικός συνδυασμός των μεταβλητών του προβλήματος. Πρόβλημα Ακέραιου Προγραμματισμού - ΑΠ (Integer Programming IP) λέγεται κάθε πρόβλημα ΓΠ όπου επιπλέον κάποιες ή όλες από τις μεταβλητές της λύσης πρέπει να λαμβάνουν οπωσδήποτε Ακέραιες τιμές. Πρόβλημα Δυαδικού Προγραμματισμού ΔΠ (Binary Programming BP) λέγεται κάθε πρόβλημα ΓΠ όπου κάποιες ή όλες από τις μεταβλητές του μοντέλου λαμβάνουν την τιμή 0 ή 1. Πρόβλημα Μεικτού Προγραμματισμού λέγεται κάθε πρόβλημα ΓΠ όπου είναι ταυτόχρονα ΑΠ και ΔΠ.

3 Πολυπλοκότητα προβλημάτων ΓΠ Κάθε πρόβλημα ΓΠ επιλύεται σε πολυωνυμικό χρόνο. Αντίθετα, τα προβλήματα Ακέραιου Προγραμματισμού και Δυαδικού Προγραμματισμού (γενικά) δεν επιλύονται σε πολυωνυμικό χρόνο. Με άλλα λόγια είναι NP-Complete (Non polynomial Complete). Χαλάρωση ενός προβλήματος Ακέραιου ή Δυαδικού Προγραμματισμού λέγεται η μέθοδος κατά την οποία επιτρέπουμε σε κάποιες Ακέραιες μεταβλητές (ή και Δυαδικές) να λαμβάνουν Πραγματικές τιμές. Η μέθοδος της χαλάρωσης, κάποιες φορές είναι ευεργετική, καθώς ένα πρόβλημα Ακέραιου ή Δυαδικού Προγραμματισμού, που πρακτικά δεν μπορεί να επιλυθεί, τελικά επιλύεται σε αποδεκτό χρόνο.

4 Γιατί CPLEX; (1) Πολλά προβλήματα που σχετίζονται με τα Συστήματα Επιχειρηματικής Ευφυΐας μοντελοποιούνται ως προβλήματα Γραμμικού (ή Ακέραιου, ή Δυαδικού ή Μεικτού) Προγραμματισμού. Κάποια από τα προβλήματα που διαπραγματεύεται η Υπολογιστική Νοημοσύνη, επίσης μοντελοποιούνται με τον παραπάνω τρόπο. (π.χ. School timetabling, University Course Timetabling, Nurse Rostering κ.ά. ) Αν και σε κάποιες «εύκολες» περιπτώσεις, τα προβλήματα ΓΠ μπορούν να επιλυθούν από τον άνθρωπο (π.χ. με γραφικό τρόπο αναπαράσταση των ανισοτήτων στο Καρτεσιανό επίπεδο), γενικά χρησιμοποιούνται εξειδικευμένα Λογισμικά (εργαλεία) για αυτόν τον σκοπό και ΗΥ.

5 Γιατί CPLEX; (2) Υπάρχουν δωρεάν Λογισμικά (π.χ. Glpk) αλλά και εμπορικά (π.χ. CPLEX, Gurobi) τα οποία είναι γενικά καλύτερα από τα δωρεάν, αλλά κοστίζουν μερικές χιλιάδες δολάρια. Στην συνέχεια θα μελετήσουμε τα βασικά σημεία χρήσης του CPLEX, διότι από σχετική εργασία της ερευνητικής μας ομάδας (Τασσόπουλος, Μπεληγιάννης) που είναι υπό δημοσίευση, προέκυψαν καλύτερα αποτελέσματα του CPLEX έναντι των Glpk και Gurobi, τουλάχιστον για το πρόβλημα school timetabling. Έτσι, επιβεβαιώνεται η «φήμη» του CPLEX ως ένα από τα πιο ισχυρά Λογισμικά επίλυσης αυτού του είδους των προβλημάτων. Επιπλέον η εκμάθηση του CPLEX είναι σχετικά εύκολη.

6 Το λογότυπο του CPLEX Κάνοντας κλικ στη συντόμευση του CPLEX (κάτω - αριστερά), στην επιφάνεια εργασίας, εμφανίζεται για λίγα δευτερόλεπτα η παρακάτω (δεξιά) εισαγωγική οθόνη (λογότυπο). Η συντόμευση του CPLEX στην επιφάνεια εργασίας Το λογότυπο του CPLEX.

7 Η διεπαφή (interface) του CPLEX Πάνω αριστερά: κατάλογος των projects και των αρχείων τους. Πάνω κέντρο-δεξιά: εμφανίζονται τα περιεχόμενα των αρχείων του project. Κάτω κέντρο-δεξιά: εμφανίζονται πληροφορίες που αφορούν στην διάρκεια εκτέλεσης και την τελική λύση.

8 Το interface μετά τη δημιουργία του project με όνομα xxx. Περισσότερες λεπτομέρειες για την δημιουργία project και το interface θα δοθούν στο προσεχές εργαστήριο.

9 Τα 2 αρχεία ενός project και το τμήμα.ops Αφού πρώτα δημιουργήσουμε ένα project για το πρόβλημα που επιχειρούμε να λύσουμε, δημιουργούνται 2 αρχεία: Name.mod και Name.dat. Name είναι το εκάστοτε όνομα του project. Name.mod: σε αυτό γράφουμε συνήθως μόνο το μοντέλο του προβλήματος, χρησιμοποιώντας ειδική γλώσσα (συντακτικό). Τα πραγματικά δεδομένα, συνήθως, δεν γράφονται εδώ. Γίνεται απλώς η δήλωση της δομής τους. Name.dat: εδώ γράφουμε τις τιμές των δεδομένων. Πρέπει να αντιστοιχούν στις δηλώσεις δεδομένων που έγιναν στο αρχείο Name.mod. Δημιουργείται επίσης ένα τμήμα πάνω στην επιφάνεια του interface, με όνομα Name.ops. Name.ops: περιέχει διάφορες επιλογές (options) και ρυθμίσεις, απαραίτητες για το τρέξιμο της εφαρμογής.

10 OPL: Optimization Programming Language Η γλώσσα OPL είναι μια γλώσσα μοντελοποίησης, την οποία καταλαβαίνει ο CPLEX προκειμένου να διαβάσει το μοντέλο του προβλήματος (αρχείο.mod) και τα δεδομένα (αρχείο.dat) Ο σκοπός της χρήσης της OPL είναι: η προτυποποίηση στην διατύπωση ενός συγκεκριμένου μοντέλου. Η ακρίβεια στην μαθηματική διατύπωση των μαθηματικών εκφράσεων. Η απλότητα και η συντομία στην γραφή πολυάριθμων ανισοτήτων και εξισώσεων με λίγες μόνο γραμμές κώδικα.

11 Η βασική δομή ενός μοντέλου OPL (1) Τα σχόλια αρχίζουν με /* και τελειώνουν σε οποιαδήποτε γραμμή με */ Επίσης, κάθε γραμμή που αρχίζει με // θεωρείται γραμμή σχολίων. Τα σχόλια αγνοούνται από τον CPLEX. Κάθε αρχείο.mod (στο οποίο περιγράφουμε το μοντέλο του προβλήματος) περιλαμβάνει τουλάχιστον 2 τμήματα: των δηλώσεων των μεταβλητών και της περιγραφής του μοντέλου. Όταν δηλώνεται μια μεταβλητή στο αρχείο.mod μπορούμε να της αποδώσουμε και τιμή. Αλλιώς, η τιμή μπορεί να αποδοθεί στο αρχείο.dat. Οι μεταβλητές απόφασης δηλώνονται με το πρόθεμα dvar (decision variable) Κάθε γραμμή, είτε στο.mod είτε στο.dat τελειώνει με ένα ;

12 Η βασική δομή ενός μοντέλου OPL (2) Παράδειγμα: /* This is an OPL model example. It is a very simple one */ //First there is the variable declaration part. dvar float+ Gas; //a positive real decision variable is //declared. Its name is Gas. dvar float+ Chloride; //another positive real decision //variable with name Chloride. //Variable declaration part end.

13 Η βασική δομή ενός μοντέλου OPL (3) maximize 40 * Gas + 50 * Chloride; subject to { //The objective function //The beginning of constraint part is declared ctmaxtotal: //The title of the first constraint. Gas + Chloride <= 50; ctmaxtotal2: //The title of the second constraint 3 * Gas + 4 * Chloride <= 180; ctmaxchloride: //The title of the third constraint Chloride <= 40; }//The title of a constraint is not obligatory but it is recommended //for reference purposes. The title is followed by the constraint //itself.

14 Κάποιοι βασικοί Τύποι δεδομένων της OPL Ακέραιοι (int X; ή int Y = 45; όπου X, Y παράμετροι ακέραιου τύπου) Στην OPL παρέχεται το υποσύνολο των ακεραίων maxint έως και maxint, όπου maxint ο μεγαλύτερος ακέραιος που μπορεί να αναπαρασταθεί. Πραγματικοί (float A; ή float B = 3.45; όπου Α, Β πραγματικές παράμετροι.) Συμβολοσειρές (string Name; ή string Name = John ;) Μπορούμε να δηλώσουμε ένα σύνολο από strings: {string} Names = { John, George, Natasha }

15 Βασικές δομές δεδομένων της OPL (1) Διάστημα (range): Ακέραια διαστήματα int lower = 10; int upper = 20; range X = lower.. 2*Upper; range Y = -lower.. 10; /*Ορίζονται δύο (μεταβλητές) διαστήματα X, Y, με ακέραιες τιμές οι οποίες μεταβάλλονται στα αντίστοιχα διαστήματα. */

16 Βασικές δομές δεδομένων της OPL (2) Πραγματικά διαστήματα range float X = ; /*Ορίζεται ένα διάστημα από 1 έως 100 dvar float x in X; /*Ορίζεται μια μεταβλητή απόφασης (decision variable-dvar) x πραγματικού τύπου η οποία παίρνει πραγματικές τιμές στο διάστημα [1.0, 100.0] */

17 Βασικές δομές δεδομένων της OPL (3) One-dimensional arrays (μονοδιάστατοι πίνακες) int a[1..4] = [10, 20, 30, 40]; /* Ορίζεται ένας πίνακας μιας διάστασης με 4 θέσεις για ακεραίους. Οι ακέραιοι (περιεχόμενο) δίνονται την στιγμή της δήλωσης. Θα μπορούσαν να δοθούν στο αρχείο.dat */ float b[0..10]; /*Ορίζεται πίνακας πραγματικών 11 θέσεων. Οι 11 πραγματικοί δεν δίνονται. Θα δοθούν στο αρχείο.dat */

18 Βασικές δομές δεδομένων της OPL (4) Multi-dimensional arrays (πολυδιάστατοι πίνακες) int NodesNo =...; //ορίζεται μια παράμετρος ακέραιου τύπου. //Η τιμή της δίνεται στο.dat ως : NodesNo = 4; int TrucksNo =...; //ορίζεται μια παράμετρος ακέραιου τύπου. //Η τιμή της δίνεται στο.dat ως : TrucksNo = 5; {int} C = asset(1..nodesno); /*ορίζεται ένα σύνολο ακεραίων, από το 0 έως το NodesNo. */ {int} W = asset(1..trucksno); /* ορίζεται ένα σύνολο ακεραίων, από το 1 έως το TrucksNo. */

19 Βασικές δομές δεδομένων της OPL (5) Multi-dimensional arrays (πολυδιάστατοι πίνακες) float TT[i in C][j in C] =...; /*ορίζεται ένας δυσδιάστατος πίνακας πραγματικών, με δείκτες i, j στα αντίστοιχα σύνολα. Οι τιμές του δίνονται στο.dat κατά γραμμές, ως: TT = [ [0, 1.2, 2.3, 1.1], [1.5, 0, 3.4, 1.3], [3.1, 1.2, 0, 1.2], [2.5, 6.7, 3.5, 0]]; */

20 Βασικές δομές δεδομένων της OPL (6) Tuples (νιάδες) tuple triple {int i; int j; int b;} /* ορίζεται μια νιάδα (tuple) με όνομα triple που στην πραγματικότητα είναι διατεταγμένη τριάδα, με μέλη τους ακεραίους i, j, b. */

21 Βασικές δομές δεδομένων της OPL (7) Σύνολα με στοιχεία νιάδες. setof(triple) Triples = {<i,j, b> i, j in C, b in W}; /* ορίζεται ένα σύνολο με όνομα Triples, όπου τα στοιχεία του είναι διατεταγμένες τριάδες τύπου triples. Εδώ ορίζεται και ο τύπος των μελών της τριάδας. */

22 Βασικές δομές δεδομένων της OPL (8) Slicing (μερική άθροιση, ή άθροισμα ως προς ένα μέλος της νιάδας) setof(int) II = {i <i,j,b> in Triples}; setof(int) JJ = {j <i,j,b> in Triples}; setof(int) BB = {b <i,j,b> in Triples}; /*ορίζονται 3 σύνολα ακεραίων (II, JJ και BB) με συγκεκριμένο τρόπο. Τα σύνολα αυτά είναι απαραίτητα για την διαδικασία slicing στα αθροίσματα (βλέπε επόμενες διαφάνειες). */

23 Μεταβλητές απόφασης (1) Πρώτος τρόπος {int} C = asset(1..nodesno); {int} W = asset(1..trucksno); dvar boolean X[i in C][j in C][b in W] ; Αναφερόμαστε στην μεταβλητή ως: Χ[i][j][b] /*Ορίζεται μια δυαδική (boolean) μεταβλητή απόφασης τριών διαστάσεων. Εναλλακτικά, μπορούμε να ορίσουμε την ίδια μεταβλητή απόφασης όπως παρακάτω */

24 Μεταβλητές απόφασης (2) Δεύτερος τρόπος tuple triple {int i; int j; int b;} setof(triple) Triples W}; = {<i,j, b> i, j in C, b in dvar boolean X[Triples]; Αναφερόμαστε στην μεταβλητή ως X[<i, j, b>}

25 Μερικά αθροίσματα με πολυδιάστατες μεταβλητές (1) Έστω η δυαδική μεταβλητή Χ[i][j][b] με τιμή 1 αν το φορτηγό b μεταβαίνει από τον κόμβο i στον j και τιμή 0 αλλιώς. Υποθέτουμε ότι θέλουμε να εξασφαλίσουμε με κάποιον περιορισμό ότι σε κάθε κόμβο j θα υπάρχει το πολύ ένας κόμβος i ώστε κάθε φορτηγό b να μεταβαίνει από τον i στον j. Ο κατάλληλος περιορισμός γράφεται: forall(b in W, j in C) sum(i in C)X[i][j][b] <= 1; //για κάθε φορτηγό b και για //κάθε κόμβο j //μερική άθροιση (μερικό //άθροισμα) ως προς i.

26 Μερικά αθροίσματα με πολυδιάστατες μεταβλητές (2) Ερωτήσεις Τι σημαίνουν οι περιορισμοί: forall(b in W, j in C) sum(i in C)X[i][j][b] == 1; Πώς θα μοντελοποιούσαμε την απαίτηση: από κάθε κόμβο i, κάθε φορτηγό εξέρχεται προς έναν ακριβώς κόμβο j και πως θα μοντελοποιούσαμε την απαίτηση: από κάθε κόμβο i, κάθε φορτηγό εξέρχεται το πολύ μια φορά προς κόμβο j; Να μοντελοποιηθεί η απαίτηση: αν ένα οποιοδήποτε φορτηγό εισέλθει στον κόμβο 4 τότε δεν θα εξέλθει.

27 Slicing (1) Αν αντί για την προηγούμενη αναπαράσταση της δυαδικής μεταβλητής Χ χρησιμοποιήσουμε την ανάλογη αναπαράσταση με τις νιάδες (δηλαδή την X[<i, j, b>] και θέλουμε να γράψουμε τον περιορισμό της προηγούμενης διαφάνειας, δηλαδή να κάνουμε μερική άθροιση ως προς ένα μέλος της διατεταγμένης τριάδας, τότε πρέπει να έχουμε ήδη δηλώσει ένα σύνολο: setof(int) II={i <i,j,b> in Triples}; και μετά να γράψουμε τον περιορισμό ως: forall(b in W) sum(<i,j,b>in Triples: i in II )X[<i,j,b>] <= 1;

28 Slicing (2) Είναι δυνατόν να προσθέσουμε επιπλέον περιορισμούς στην έκφραση forall ή / και στο sum ενός περιορισμού. forall(b in W : b!= 1) //για κάθε φορτηγό διαφορετικό από το 1 sum(<i,j,b>in Triples: i in II && ( j == 3 j >= 6))X[<i,j,b>] <= 1; //μερική άθροιση ως προς i, για j = 3 ή j >= 6 Ερώτηση Πώς ερμηνεύονται οι παραπάνω περιορισμοί;

29 Πολλαπλά αθροίσματα (1) Ερώτηση: Να μοντελοποιηθεί η απαίτηση: τα φορτηγά που εισέρχονται σε οποιονδήποτε κόμβο από οποιονδήποτε κόμβο είναι το πολύ 5. Απάντηση: forall(j in C) sum(i in C, b in W)X[i][j][b] <= 5;

30 Πολλαπλά αθροίσματα (2) Ερώτηση: Να μοντελοποιηθεί η απαίτηση: τα φορτηγά που εισέρχονται σε οποιονδήποτε κόμβο από οποιονδήποτε κόμβο είναι ακριβώς 5. Απάντηση: (a) forall(b in W, j in C) sum(i in C)X[i][j][b] <= 1; (b) forall(j in C) sum(i in C, b in W)X[i][j][b] == 5;

31 Πολλαπλά αθροίσματα (3) Ερώτηση: Στην απάντηση της προηγούμενης διαφάνειας, ποια είναι η σκοπιμότητα των περιορισμών (a); Να αιτιολογήσετε αν είναι απαραίτητοι ή όχι.

32 Το block της main Χρησιμοποιείται για να ελέγξει την ροή εκτέλεσης του CPLEX. Μπορεί να υπάρχει το πολύ ένα main block στο αρχείο.mod Ανεξάρτητα από το σημείο που αναγράφεται στο αρχείο.mod εκτελείται κατά προτεραιότητα. Οι ρυθμίσεις που ενδεχομένως υπάρχουν στην main υπερισχύουν των ρυθμίσεων του CPLEX που έχουν γίνει στο αρχείο.ops και αφορούν το περιβάλλον IDE. Η μορφή ενός main block είναι: main {. }

33 Παράδειγμα ενός main block main { thisoplmodel.generate(); if (cplex.solve()) { var obj=cplex.getobjvalue(); } } Η δήλωση thisoplmodel είναι μια ειδική μεταβλητή του script που αναφέρεται στο συγκεκριμένο instance (στιγμιότυπο)του μοντέλου. Η geneate() είναι μια μέθοδος η οποία δημιουργεί το στιγμιότυπο του μοντέλου. Η cplex είναι μια μεταβλητή του script που αναφέρεται εξ ορισμού στο CPLEX Optimizer instance. Η solve() καλεί έναν αλγόριθμο βελτιστοποίησης του CPLEX. Η gerobjvalue() αντλεί την τιμή της αντικειμενικής συνάρτησης μετά την επίλυση του μοντέλου.

34 Παράδειγμα script που καλεί ένα project main { var proj = new IloOplProject("../../../../../opl/mulprod"); var rc = proj.makerunconfiguration(); rc.oplmodel.generate(); if (rc.cplex.solve()) { writeln("obj = ", rc.cplex.getobjvalue()); } else { writeln("no solution"); } rc.end(); proj.end(); } Καλείται το project mulprod.prj Δημιουργείται το configuration Δημιουργείται το μοντέλο στην μεταβλητή rc. Επιχειρείται η επίλυση του μοντέλου. Κλείνει το μοντέλο και το project

35 Προ-επεξεργασία (Preprocessing) Η προ-επεξεργασία (preprocessing) επιτυγχάνεται με μια ή περισσότερες δομές execute { } που πρέπει να αναγράφονται στο αρχείο.mod πριν την δήλωση minimize ή maximize Η προ-επεξεργασία, αν υπάρχει, εκτελείται εξ ορισμού πριν την επίλυση του μοντέλου και σκοπό έχει την προετοιμασία των δεδομένων.

36 Μετά επεξεργασία (Post processing) (1) Η μετά-επεξεργασία (post processing) επιτυγχάνεται με μια ή περισσότερες δομές execute { } που πρέπει να αναγράφονται στο αρχείο.mod μετά το τμήμα δήλωσης των περιορισμών, δηλαδή μετά το subject to {.. } Ο σκοπός της χρήσης της μετά-επεξεργασίας είναι η εκτύπωση των αποτελεσμάτων και διάφορων πληροφοριών.

37 Μετά επεξεργασία (Post processing) (2) Προφανώς η μετά-επεξεργασία λαμβάνει χώρα μετά την επίλυση του μοντέλου. Η μετά-επεξεργασία δεν εκτελείται εξ ορισμού, αλλά αντίθετα χρειάζεται η εντολή thisoplmodel.postprocess(); για να ενεργοποιηθεί, η οποία αναγράφεται στην main {. }

38 Προγραμματισμός στην execute και την main Οι προγραμματιστικές εντολές που χρησιμοποιούνται στην execute και την main μοιάζουν πολύ με της γλώσσας C. Υπάρχει για παράδειγμα η δομή while { }, η δομή if( ) then {.} else {.}, η δομή for(var i in C){. }, η εντολή break, κ.ά.

39 Εκτύπωση στην οθόνη του IDE του CPLEX Επιτυγχάνεται γράφοντας σε execute block ή στην main την εντολή writeln(); Παράδειγμα: writeln( objective value is, obj); /*θα εκτυπώσει objective value is και στην συνέχεια θα εκτυπώσει την τιμή της μεταβλητής obj. Ακολούθως θα αλλάξει γραμμή. */

40 Χειρισμός αρχείων και εγγραφή σε αρχείο var fp = new IloOplOutputFile("Results.txt"); fp.writeln("this is a text"); fp.writeln("obj value is ", obj); fp.close(); Δημιουργείται ένας «δείκτης» fp προς ένα αρχείο εξόδου με όνομα Results.txt Γράφεται στο αρχείο το κείμενο: This is a text και αλλάζει γραμμή. Γράφεται στο αρχείο το κείμενο: Obj value is, στην συνέχεια γράφεται η τιμή της μεταβλητής obj και αλλάζει γραμμή. Κλείνει το αρχείο που δείχνει ο δείκτης fp, δηλαδή το Results.txt

41 Σας ευχαριστώ για την προσοχή σας

Μοντελοποίηση προβληµάτων

Μοντελοποίηση προβληµάτων Σχεδιασµός Αλγορίθµων Ακέραιος προγραµµατισµός Αποδοτικοί Αλγόριθµοι Μη Αποδοτικοί Αλγόριθµοι Σχεδιασµός Αλγορίθµων Ακέραιος προγραµµατισµός Αποδοτικοί Αλγόριθµοι Μη Αποδοτικοί Αλγόριθµοι Θεωρία γράφων

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

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

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

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

SÔntomec plhroforðec gia to glpsol (glpk)

SÔntomec plhroforðec gia to glpsol (glpk) SÔntomec plhroforðec gia to glpsol (glpk) gpol@di.uoa.gr Genikˆ gia to GLPK kai to glpsol Το GLPK (GNU Linear Programming Kit) είναι μια βιβλιοθήκη συναρτήσεων για τη γλώσσα C/C++ η οποία χρησιμοποιείται

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

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

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

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

Γραµµικός Προγραµµατισµός (ΓΠ)

Γραµµικός Προγραµµατισµός (ΓΠ) Γραµµικός Προγραµµατισµός (ΓΠ) Περίληψη Επίλυση δυσδιάστατων προβληµάτων Η µέθοδος simplex Τυπική µορφή Ακέραιος Προγραµµατισµός Προγραµµατισµός Παραγωγής Προϊόν Προϊόν 2 Παραγωγική Δυνατότητα Μηχ. 4 Μηχ.

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

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

Εισαγωγή στο Γραμμικό Προγραμματισμό Τμήμα Μηχανικών Πληροφορικής ΤΕ 2016-2017 Εισαγωγή στο Γραμμικό Προγραμματισμό Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 15/10/2016 1 Παραδείγματα Που στοχεύει ο Γραμμικός Προγραμματισμός;

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

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

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

Εισαγωγή στο Γραμμικό Προγραμματισμό Τμήμα Μηχανικών Πληροφορικής ΤΕ 2017-2018 Εισαγωγή στο Γραμμικό Προγραμματισμό Φουτσιτζή Γεωργία-Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 15/10/2016 1 Περιεχόμενα Γραμμικός

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

ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Γ.Π.).) (LINEAR PROGRAMMING)

ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Γ.Π.).) (LINEAR PROGRAMMING) ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Γ.Π.).) (LINEAR PROGRAMMING) Δρ. Βασιλική Καζάνα Αναπλ. Καθηγήτρια ΤΕΙ Καβάλας, Τμήμα Δασοπονίας & Διαχείρισης Φυσικού Περιβάλλοντος Δράμας Εργαστήριο Δασικής Διαχειριστικής

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

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

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

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

// MATHIMA 2, // s.boot; s.makewindow.boot; // boot server!

// MATHIMA 2, // s.boot; s.makewindow.boot; // boot server! // ------ MATHIMA 2, 07.03.12 ------ // s.boot; s.makewindow.boot; // boot server! /* Αυτά θα τα δούμε αργότερα, απλώς είπα να τα συμπεριλάβω από τώρα: Server.local.options.blockSize = 16; Server.local.options.sampleRate

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

Γραμμικός Προγραμματισμός και Βελτιστοποίηση (Εργαστήριο 2)

Γραμμικός Προγραμματισμός και Βελτιστοποίηση (Εργαστήριο 2) Τμήμα Μηχανικών Πληροφορικής Γραμμικός Προγραμματισμός και Βελτιστοποίηση (Εργαστήριο 2) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2015 Δρ. Δημήτρης Βαρσάμης Γραμμικός Προγραμματισμός (E 1) Μάρτιος

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 Μ4. Συναρτήσεις, Υπορουτίνες, Ενότητες - Ασκήσεις Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr

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

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

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

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

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

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

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ii ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 1. Εισαγωγή - Βασικές έννοιες....1 1.1 Εσωτερική παράσταση δεδομένων....2 1.1.1 Παράσταση θέσης....3 1.1.2 Μετατροπές μεταξύ συστημάτων διαφορετικών βάσεων....5 1.1.3 Οι αριθμητικές

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

Εφαρμογές Επιχειρησιακής Έρευνας. Δρ. Γεώργιος Κ.Δ. Σαχαρίδης

Εφαρμογές Επιχειρησιακής Έρευνας. Δρ. Γεώργιος Κ.Δ. Σαχαρίδης Εφαρμογές Επιχειρησιακής Έρευνας Δρ. Γεώργιος Κ.Δ. Σαχαρίδης 1 Outline Introduction to mathematical programming Introduction to scheduling Flow shop optimization Scheduling of crude oil Decomposition techniques

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

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

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

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

Α. 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) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

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

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

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

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

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

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

Ακέραιος Γραμμικός Προγραμματισμός

Ακέραιος Γραμμικός Προγραμματισμός Τμήμα Μηχανικών Πληροφορικής ΤΕ 2017-2018 Ακέραιος Γραμμικός Προγραμματισμός Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 12/01/2017 1 Ακέραιος Γραμμικός Προγραμματισμός Όταν για

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

Ακέραιος Γραμμικός Προγραμματισμός

Ακέραιος Γραμμικός Προγραμματισμός Τμήμα Μηχανικών Πληροφορικής ΤΕ 2016-2017 Ακέραιος Γραμμικός Προγραμματισμός Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 12/01/2017 1 Ακέραιος Γραμμικός Προγραμματισμός Όταν για

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

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

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1 ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1 1 Βελτιστοποίηση Στην προσπάθεια αντιμετώπισης και επίλυσης των προβλημάτων που προκύπτουν στην πράξη, αναπτύσσουμε μαθηματικά μοντέλα,

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Αριθμητική Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Δεύτερο Πρόγραμμα 1 / * Second Simple Program : add 2 numbers * / 2

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

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

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

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

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

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

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

Case 10: Ανάλυση Νεκρού Σημείου (Break Even Analysis) με περιορισμούς ΣΕΝΑΡΙΟ

Case 10: Ανάλυση Νεκρού Σημείου (Break Even Analysis) με περιορισμούς ΣΕΝΑΡΙΟ Case 10: Ανάλυση Νεκρού Σημείου (Break Even Analysis) με περιορισμούς ΣΕΝΑΡΙΟ Η «OutBoard Motors Co» παράγει τέσσερα διαφορετικά είδη εξωλέμβιων (προϊόντα 1 4) Ο γενικός διευθυντής κ. Σχοινάς, ενδιαφέρεται

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

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

Εισαγωγή στην πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Παραδείγματα

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

Υπολογισμός - Εντολές Επανάληψης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) 133 244 355 a= b= c= 3 read(d,e) 166 277 3888

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) 133 244 355 a= b= c= 3 read(d,e) 166 277 3888 ΕΡΩΤΗΣΕΙΣ 1. Να αναφέρετε μερικά από τα ιδιαίτερα χαρακτηριστικά της Pascal. 2. Ποιο είναι το αλφάβητο της Pascal; 3. Ποια είναι τα ονόματα-ταυτότητες και σε τι χρησιμεύουν; 4. Σε τι χρησιμεύει το συντακτικό

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

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

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

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Δημιουργία Νέου αρχείου Από το μενού προγραμμάτων ανοίγετε το DEV C++ Επιλέγετε File-> New-> Source File (συντόμευση πληκτρολογίου Ctrl+N)

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

A2. Να γράψετε για κάθε περίπτωση τον αριθμό της πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

A2. Να γράψετε για κάθε περίπτωση τον αριθμό της πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή. ΜΑΘΗΜΑ / ΤΑΞΗ : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ/Γ' ΕΠΑ.Λ. ΗΜΕΡΟΜΗΝΙΑ: 17-1-2016 ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Ι.ΜΙΧΑΛΕΑΚΟΣ-Χ.ΠΑΠΠΑ-Α.ΚΑΤΡΑΚΗ ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας δίπλα

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα

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

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

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

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

Computing. Νοέμβριος Έκδοση 1.0

Computing. Νοέμβριος Έκδοση 1.0 Computing Νοέμβριος 2017 Έκδοση 1.0 Ενότητα Computing Αυτή η ενότητα παραθέτει τις βασικές έννοιες και δεξιότητες που σχετίζονται με την ικανότητα χρήσης υπολογιστικής σκέψης (computational thinking) και

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

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

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

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 Εισαγωγή

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

Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες

Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες Σκοπός της 3ης άσκησης είναι να μάθουμε να φτιάχνουμε και να προσπελαύνουμε λίστες, να δούμε τι διαφορά έχουν από τα tuples και επίσης πώς μπορούμε

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

ΑΚΕΡΑΙΟΣ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΑΚΕΡΑΙΟΣ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΑΚΕΡΑΙΟΣ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ολοκληρωμένη μαθηματική τεχνική βελτιστοποίησης Ευρύτατο φάσμα εφαρμογών Εισαγωγή ακέραιων/λογικών/βοηθητικών μεταβλητών Δυνατότητα γραμμικοποίησης με 0-1 μεταβλητές

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input

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

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

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

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2017-2018 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

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

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

ΠΩΣ ΝΑ ΟΡΙΣΕΤΕ ΚΑΙ ΝΑ ΕΠΙΛΥΣΕΤΕ ΕΝΑ ΠΡΟΓΡΑΜΜΑ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΤΟΝ SOLVER ΤΟΥ EXCEL ΠΩΣ ΝΑ ΟΡΙΣΕΤΕ ΚΑΙ ΝΑ ΕΠΙΛΥΣΕΤΕ ΕΝΑ ΠΡΟΓΡΑΜΜΑ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΤΟΝ SOLVER ΤΟΥ EXCEL 1. Στο Tools menu, click Solver. 2. Εάν η επιλογή Solver δεν είναι διαθέσιµη στο Tools menu, πρέπει να το

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

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

Ο ΗΓΙΕΣ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ LINDO ΚΑΙ ΤΗΝ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΩΝ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ο ΗΓΙΕΣ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ LINDO ΚΑΙ ΤΗΝ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΩΝ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Το LINDO (Linear Interactive and Discrete Optimizer) είναι ένα πολύ γνωστό λογισµικό για την επίλυση προβληµάτων γραµµικού,

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

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

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

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

Λογισµικό (Software SW) Γλώσσες

Λογισµικό (Software SW) Γλώσσες Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ 032 2 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ Ενδιάμεση Εξέταση Ημερομηνία:08/03/10 Διάρκεια: 13:30 15:00 Διδάσκων: Παύλος Αντωνίου Ονοματεπώνυμο: Αριθμός Ταυτότητας: Η εξέταση

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

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2011-2012 Γιάννης Γαροφαλάκης, Καθηγητής Αθανάσιος Ν.Νικολακόπουλος, Υποψήφιος Διδάκτορας 28 Μαρτίου 2012 Περίληψη Σκοπός της παρούσας

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

Συστήματα Επιχειρηματικής Ευφυίας. Το πρόβλημα Nurse rostering Ενδεικτική επίλυση με αλγόριθμο Variable Neighborhood Search (VNS)

Συστήματα Επιχειρηματικής Ευφυίας. Το πρόβλημα Nurse rostering Ενδεικτική επίλυση με αλγόριθμο Variable Neighborhood Search (VNS) Συστήματα Επιχειρηματικής Ευφυίας Το πρόβλημα Nurse rostering Ενδεικτική επίλυση με αλγόριθμο Variable Neighborhood Search (VNS) Έβδομη Διάλεξη Περιεχόμενα (1) Συνοπτική παρουσίαση του προβλήματος Nurse

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

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

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

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

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

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

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

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

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

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή (ως τρόπος οργάνωσης αρχείου) μέγεθος

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Aντώνης Σπυρόπουλος v2_061015 Οροι που

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 M7 Δομές δεδομένων: Πίνακες Δρ. Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr ΕΜΠ/ΣΝΜΜ

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

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

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

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

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

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

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

Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal»

Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal» Ενισχυτική διδασκαλία διδακτικές ενότητες αλγοριθμικής και εισαγωγής στον προγραμματισμό Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal» διδάσκων: χρήστος

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

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

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

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

2. β. Συνθήκη ή επιλογή. 4. δ. Υποπρόγραμμα. 5. ε. ιαδικασία εισόδου ή εξόδου

2. β. Συνθήκη ή επιλογή. 4. δ. Υποπρόγραμμα. 5. ε. ιαδικασία εισόδου ή εξόδου ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΠΑΝΕΛΛHNIΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑ Α A ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙ ΙΚΟΤΗΤΑΣ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑ Α Β ) ΣΑΒΒΑΤΟ 28 ΜΑΪΟΥ 2011 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΟΜΗΜΕΝΟΣ

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

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης Γ7.5 Αλγόριθμοι Αναζήτησης Γ Λυκείου Κατεύθυνσης Εισαγωγή Αλγόριθμος αναζήτησης θεωρείται ένας αλγόριθμος, ο οποίος προσπαθεί να εντοπίσει ένα στοιχείο με συγκεκριμένες ιδιότητες, μέσα σε μία συλλογή από

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων ΕΠΑΛ ΧΡΥΣΟΥΠΟΛΗΣ Γ Πληροφορική- 2015-2016 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων 1 Εισαγωγή Η εντολή Στο 4 ο κεφάλαιο γνωρίσαµε την δοµή πολλαπλής επιλογής στην οποία

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

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ. Κεφάλαιο 3 Μορφοποίηση Προβλημάτων Ακέραιου Προγραμματισμού

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ. Κεφάλαιο 3 Μορφοποίηση Προβλημάτων Ακέραιου Προγραμματισμού ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Κεφάλαιο 3 Μορφοποίηση Προβλημάτων Ακέραιου Προγραμματισμού 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 στην

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

Επιχειρησιακή Έρευνα I

Επιχειρησιακή Έρευνα I Επιχειρησιακή Έρευνα I Operations/Operational Research (OR) Κωστής Μαμάσης Παρασκευή 09:00 12:00 Σημειώσεις των Α. Platis, K. Mamasis Περιεχόμενα EE 1&2 Εισαγωγή Μαθηματικός Προγραμματισμός - Γραμμικός

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

Ενότητα 5: «Εισαγωγή στον Προγραμματισμό. Απλές ασκήσεις με γλώσσα C»

Ενότητα 5: «Εισαγωγή στον Προγραμματισμό. Απλές ασκήσεις με γλώσσα C» Ενισχυτική διδασκαλία διδακτικές ενότητες αλγοριθμικής και εισαγωγής στον προγραμματισμό Ενότητα 5: «Εισαγωγή στον Προγραμματισμό. Απλές ασκήσεις με γλώσσα C» διδάσκων: χρήστος σκουρλάς, cskourlas@teiath.gr

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

Επιχειρησιακή Έρευνα I

Επιχειρησιακή Έρευνα I Επιχειρησιακή Έρευνα I Κωστής Μαμάσης Παρασκευή 09:00 12:00 Σημειώσεις των Α. Platis, K. Mamasis Περιεχόμενα 1. Εισαγωγή 2. Γραμμικός Προγραμματισμός 1. Μοντελοποίηση 2. Μέθοδος Simplex 1. Αλγόριθμός Simplex

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

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

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

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

ΑΦAΙΡΕΤΙΚΟΣ (ή ΑΦΗΡΗΜΕΝΟΣ) ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT) - σύνολο δεδομένων (data, objects) - σύνολο πράξεων στα δεδομένα

ΑΦAΙΡΕΤΙΚΟΣ (ή ΑΦΗΡΗΜΕΝΟΣ) ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT) - σύνολο δεδομένων (data, objects) - σύνολο πράξεων στα δεδομένα Τύπος Δεδομένων: ΑΦAΙΡΕΤΙΚΟΣ (ή ΑΦΗΡΗΜΕΝΟΣ) ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT) - σύνολο δεδομένων (data, objects) - σύνολο πράξεων στα δεδομένα - Ένας ΑΤΔ είναι ένα μαθηματικό μοντέλο (οντότητα)

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

Βελτιστοποίηση κατανομής πόρων συντήρησης οδοστρωμάτων Πανεπιστήμιο Πατρών - Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών

Βελτιστοποίηση κατανομής πόρων συντήρησης οδοστρωμάτων Πανεπιστήμιο Πατρών - Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών Βελτιστοποίηση κατανομής πόρων συντήρησης οδοστρωμάτων Πανεπιστήμιο Πατρών - Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών Πάτρα 17 - Μαΐου - 2017 Παναγιώτης Τσίκας Σκοπός του προβλήματος Σκοπός του προβλήματος,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σχεδιασμός επέκτασης του συστήματος ηλεκτροπαραγωγής με τη χρήση Πολυκριτηριακού Γραμμικού Προγραμματισμού

Σχεδιασμός επέκτασης του συστήματος ηλεκτροπαραγωγής με τη χρήση Πολυκριτηριακού Γραμμικού Προγραμματισμού 3ο Πανελλήνιο Επιστημονικό Συνέδριο Χημικής Μηχανικής Αθήνα,, IούνιοςI 200 Σχεδιασμός επέκτασης του συστήματος ηλεκτροπαραγωγής με τη χρήση Πολυκριτηριακού Γραμμικού Προγραμματισμού Γιώργος Μαυρωτάς Δανάη

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

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

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

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

ΚΕΦΑΛΑΙΟ 10 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ (ή εντολές Ελέγχου και Επιλογής ή εντολές Επιλογής και Απόφασης)

ΚΕΦΑΛΑΙΟ 10 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ (ή εντολές Ελέγχου και Επιλογής ή εντολές Επιλογής και Απόφασης) ΚΕΦΑΛΑΙΟ 10 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ (ή εντολές Ελέγχου και Επιλογής ή εντολές Επιλογής και Απόφασης) Τι είναι οι εντολές Ελέγχου και Επιλογής στην Pascal; Ποιες είναι οι εντολές Ελέγχου και Επιλογής στην Pascal;

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2018-2019 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

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

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

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

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

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου Ανάλυση αλγορίθμων Παράμετροι απόδοσης ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, επικοινωνία (π.χ. σε κατανεμημένα συστήματα) Προσπάθεια υλοποίησης Ανάλυση της απόδοσης Θεωρητική

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

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

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

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

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ. ΤΡΙΤΗ ΔΙΑΛΕΞΗ Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.): Σύνταξη τύπος όνομαα; τύπος όνομαβ{όνομαα}; όνομαβ

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

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή ονάδα Δικτύων και Επικοινωνιών ΗΥ Τομέας Πληροφορικής, αθηματικών και Στατιστικής ΓΕΩΠΟΙΚΟ ΠΑΕΠΙΣΤΗΙΟ ΑΘΗΩ Εισαγωγή στην Επιστήμη των ΗΥ άθημα-4 url: http://openeclass.aua.gr (AOA0) Λογισμικό Υπολογιστή

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

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

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΗΣ Το αναλυτικό πρόγραμμα στο οποίο βασίζεται η εξέταση είναι το αναλυτικό πρόγραμμα του Μαθήματος Κατεύθυνσης Πληροφορική Επιστήμη Η.Υ της Γ Ενιαίου Λυκείου Γενικός Σκοπός Το μάθημα κατεύθυνσης της στη Γ'

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