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

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

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

Transcript

1 Ενότητα 13: Αρθρωτή Ανάπτυξη Προγραμμάτων Καθηγήτρια Μαρία Σατρατζέμη

2 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

3 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

4 Σκοποί ενότητας Να αναγνωρίσετε ότι οι διασυνδέσεις στη C αναπαριστώνται με αρχεία κεφαλίδας. Να μάθετε τους συντακτικούς κανόνες που απαιτούνται για τη συγγραφή ενός αρχείου κεφαλίδας. Να κατανοήσετε την ανάγκη για διάσπαση του κώδικα σε πολλά αρχεία. Να μεταγλωττίζετε και συνδέετε πολλά αρχεία και βιβλιοθήκες κάνοντας χρήση του gcc compiler. 4

5 Προγράμματα πολλαπλών αρχείων Η ενότητα αυτή ασχολείται με προβλήματα που αντιμετωπίζουμε όταν γράφουμε σχετικά μεγάλα προγράμματα. Συνήθως τα μεγάλα προγράμματα είναι χωρισμένα σε αρθρώματα (modules), τα οποία βρίσκονται σε ξεχωριστά αρχεία πηγαίου κώδικα. Η συνάρτηση main() θα βρίσκεται σε ένα αρχείο, έστω main.c, πιθανώς με κάποιες άλλες συναρτήσεις, ενώ τα υπόλοιπα αρχεία θα περιέχουν άλλες συναρτήσεις, αλλά όχι τη συνάρτηση main(). Επίσης μπορούμε να δημιουργήσουμε μια δική μας βιβλιοθήκη, γράφοντας μια ομάδα από συναρτήσεις (χωρίς να υπάρχει συνάρτηση main() σε αυτές), οι οποίες θα βρίσκονται σε ένα (ή περισσότερα) αρθρώματα. Τέτοιες βιβλιοθήκες συναρτήσεων μπορούν να ενσωματωθούν σε διάφορα προγράμματα, με τον ίδιο περίπου τρόπο που ενσωματώνουμε τις συναρτήσεις των πρότυπων βιβλιοθηκών της C. 5

6 Αρχεία κεφαλίδας ή διασυνδέσεις Σε περίπτωση που έχουμε πολλαπλά αρχεία, το κάθε ένα από αυτά θα περιέχει τους ορισμούς των σταθερών, μεταβλητών και συναρτήσεών του, αλλά θα πρέπει (πιθανά) να γνωρίζει και τους αντίστοιχους ορισμούς από τα υπόλοιπα αρχεία. Πώς επιτυγχάνεται η κοινοποίηση αυτών των ορισμών; Η καλύτερη λύση είναι να συλλέξουμε αυτές τις οδηγίες σε ένα αρχείο, και να το ενσωματώνουμε (include) σε καθένα από τα επιμέρους αρχεία. Ένα τέτοιο αρχείο λέγεται αρχείο κεφαλίδας (header file) ή διασύνδεση. Συνήθως τα αρχεία αυτά έχουν την κατάληξη.h. Έχουμε ήδη συναντήσει αρχεία κεφαλίδας, όπως το stdio.h, η δε ενσωμάτωση επιτυγχάνεται με την οδηγία προεπεξεργαστή #include, π.χ. #include <stdio.h> Τα σύμβολα < > σημαίνουν ότι τo αρχείο κεφαλίδας βρίσκεται στον προκαθορισμένο φάκελο των αρχείων κεφαλίδας. 6

7 Διαίρεση Προγράμματος σε Πολλαπλά Αρχεία(1) Οι προγραμματιστές συνήθως προσεγγίζουν ένα πρόβλημα με τη μέθοδο της βηματικής εκλέπτυνσης (stepwise refinement) όπου το πρόβλημα αναλύεται σταδιακά σε επιμέρους προβλήματα, αυτά με τη σειρά τους σε νέα επιμέρους προβλήματα κ.ο.κ. μέχρι να καταλήξουμε σε βήματα που είναι εύκολο να υλοποιηθούν. Ένα αρχείο μπορεί να περιέχει τις συναρτήσεις που ασχολούνται με την επίλυση ενός υπο-προβλήματος, και στη συνέχεια όλες οι σχετικές εντολές συνθέτουν μια βιβλιοθήκη. Γενικά η τεχνική της επιτυχημένης διαίρεσης απαιτεί τον προσεκτικό καθορισμό της διασύνδεσης του αρχείου (ή αρθρώματος ή βιβλιοθήκης) με τα υπόλοιπα προγράμματα έτσι ώστε: o το άρθρωμα να είναι εύκολα επαναχρησιμοποιήσιμο. o όλες οι σχετικές συναρτήσεις να βρίσκονται μαζί. o πιθανές μελλοντικές αλλαγές να επηρεάζουν το εσωτερικό του αρθρώματος και όχι τη διασύνδεση. o πιθανή νέα λειτουργικότητα να μην επηρεάζει την υπάρχουσα διασύνδεση. 7

8 Διαίρεση Προγράμματος σε Πολλαπλά Αρχεία (2) Σε κάθε αρχείο υλοποίησης αρθρώματος τα δεδομένα είναι οργανωμένα με συγκεκριμένο τρόπο. Τυπικά έχουμε: Αρχικά πιθανά #define σταθερών, #include άλλων αρχείων κεφαλίδας και δηλώσεις τύπων δεδομένων (typedef). Δηλώσεις καθολικών μεταβλητών. Οι καθολικές μεταβλητές μπορεί και να οριστούν εδώ. Μια ή περισσότερες συναρτήσεις. Η σειρά είναι σημαντική με την έννοια ότι όποια μεταβλητή ή συνάρτηση χρησιμοποιούμε πρέπει να δηλώνεται πρώτα. Για τις συναρτήσεις ισχύουν τα παρακάτω: o Αν η συνάρτηση ορίζεται και χρησιμοποιείται στο ίδιο αρχείο, ο ορισμός της συνάρτησης πρέπει να προηγείται της χρήσης. o Αν η συνάρτηση που χρησιμοποιείται ορίζεται σε άλλο αρχείο, πρέπει στο αρχείο που γίνεται η χρήση της συνάρτησης να συμπεριλαμβάνεται το αρχείο κεφαλίδας όπου δηλώνεται το πρωτότυπο της συνάρτησης. 8

9 Διαίρεση Προγράμματος σε Πολλαπλά Αρχεία (3) Για κάθε άρθρωμα δημιουργούμε δύο αρχεία. Αυτό με κατάληξη.c που περιλαμβάνει την υλοποίηση και αυτό με κατάληξη.h που περιλαμβάνει τις δηλώσεις: των συναρτήσεων (πρωτότυπα -prototypes), σταθερών, τύπων. Οταν κάποιο πρόγραμμα πρέπει να χρησιμοποιήσει μια συνάρτηση από το άρθρωμά μας, τότε το αρχείο με κατάληξη.h θα πρέπει να συμπεριληφθεί στο τμήμα με τα #include του προγράμματος. Το άρθρωμα είτε θα διατηρείται σε μορφή πηγαίου κώδικα (soure code) και θα μεταγλωττίζεται κάθε φορά ή θα βρίσκεται σε μορφή αντικείμενου κώδικα (object code) και θα συνδέεται μετά τη μεταγλώττιση του προγράμματος. Σε αυτή τη δεύτερη περίπτωση ο αντικείμενος κώδικας μπορεί να φυλάσσεται σε ειδικό φάκελο αρθρωμάτων ή να βρίσκεται στον τρέχοντα φάκελο μεταγλώττισης. 9

10 Σύνοψη Οι συναρτήσεις μιας βιβλιοθήκης γράφονται από κατασκευαστές (implementers) και καλούνται από πελάτες (clients). Στο σημείο στο οποίο συναντώνται οι πελάτες με τους κατασκευαστές ονομάζονται διασυνδέσεις (interface). Στη C οι διασυνδέσεις αναπαριστώνται με αρχεία κεφαλίδας (header files). Τα αρχεία κεφαλίδας που χρησιμοποιούνται ως διασυνδέσεις περιέχουν εκτενή τεκμηρίωση. Τα κριτήρια που πρέπει να πληρεί μια καλά σχεδιασμένη διασύνδεση είναι: o Ενοποιημένο θέμα. Οι συναρτήσεις μιας διασύνδεσης πρέπει να επιλεγούν με τέτοιο τρόπο ώστε να έχουν ένα ενοποιημένο θέμα. Πχ η math.h αποτελείται από μαθηματικές συναρτήσεις. o Απλότητα και απόκρυψη πληροφοριών. Περιορίστε όσο γίνεται το πλήθος των ορισμάτων (απλότητα) των συναρτήσεων. Μη αποκαλύπτετε τις λεπτομέρειες υλοποίησης o Σταθερότητα. Η διασύνδεση παραμένει σταθερή η υλοποίηση της μπορεί να μεταβάλλεται 10

11 Αρχεία κεφαλίδας - διασυνδέσεις (1) Η βασική δομή μιας διασύνδεσης είναι 1. #ifndef _όνομα_h 2. #define _ όνομα_h 3. Τυχόν απαραίτητες γραμμές #include 4. στοιχεία διασύνδεσης 5. #endif Όπου: όνομα είναι το όνομα της διασύνδεσης Για να διασφαλίσετε ότι ο μεταγλωττιστής θα διαβάσει μια διασύνδεση μόνο μια φορά, κάθε διασύνδεση θα πρέπει να περιλαμβάνει πριν από το πρώτο στοιχείο της τις δυο πρώτες γραμμές και στο τέλος του αρχείου διασύνδεσης τη γραμμή 5. η ενότητα γραμμές #include χρησιμοποιείται μόνο αν η ίδια η διασύνδεση απαιτεί άλλες βιβλιοθήκες στοιχεία διασύνδεσης είναι τα πρωτότυπα των συναρτήσεων, οι σταθερές, και οι τύποι που εξάγονται από τη διασύνδεση 11

12 Αρχεία κεφαλίδας - διασυνδέσεις (2) Ένα παράδειγμα που δείχνει τη βηματική εκλέπτυνση του αρχικού κώδικα Αρχικός κώδικας hello.c #include <stdio.h> int main(int argc, char *argv[]) // This is a VERY useful line. printf("hello, world\n"); return 0; 12

13 Μεταγλώττιση & σύνδεση Ο μεταγλωττιστής συμπεριλαμβάνει κατά τη μεταγλώττιση στον πηγαίο κώδικα όλα τα αρχεία συμπερίληψης (#include) (πχ file1.h, file2.h) και παράγει τον αντίστοιχο αντικειμενικό κώδικα (object code) (πχ progr.o) Ο αντικειμενικός κώδικας είναι μεταγλωττισμένο σε γλώσσα μηχανής πηγαίο πρόγραμμα χωρίς όμως να συμπεριλαμβάνει και τον κώδικα των συναρτήσεων της βιβλιοθήκης που έχουν χρησιμοποιηθεί. Το πρόγραμμα σύνδεσης (linker) προσθέτει στον αντικειμενικό κώδικα τον κώδικα των συναρτήσεων που χρησιμοποιήθηκαν. Ο κώδικας των συναρτήσεων βιβλιοθήκης (πχ. lib.a) βρίσκεται σε ένα ή περισσότερα αρχεία βιβλιοθήκης της C. Το λειτουργικό αποτέλεσμα του linker είναι ένα αυτόνομο εκτελέσιμο αρχείο (πχ progr.exe). 13

14 Αρχεία κεφαλίδας διασυνδέσεις (1) Δημιουργία νέας συνάρτησης hello.c #include <stdio.h> int main(int argc, char *argv[]) // This is a VERY useful line. printf("hello, world\n"); return 0; #include <stdio.h> void do_something_useful(void); int main(int argc, char *argv[]) // Call the VERY useful function. do_something_useful(); return 0; void do_something_useful(void) printf("hello, world\n"); 14

15 Αρχεία κεφαλίδας - διασυνδέσεις (2) Μεταφορά σε νέο αρχείο (1) hello.c #include <stdio.h> void do_something_useful(void); int main(int argc, char *argv[]) // Call the VERY useful function. do_something_useful(); return 0; void do_something_useful(void) printf("hello, world\n"); useful.h void do_something_useful(void); useful.c #include <stdio.h> void do_something_useful(void) printf("hello, world\n"); 15

16 Αρχεία κεφαλίδας - διασυνδέσεις (3) Μεταφορά σε νέο αρχείο (2) hello.c (αρχείο πελάτης) #include "useful.h" int main(int argc, char *argv[]) // Call the VERY useful function. do_something_useful(); return 0; useful.h (διασύνδεση) void do_something_useful(void); useful.c (υλοποίηση διασύνδεσης) #include <stdio.h> #include "useful.h" void do_something_useful(void) printf("hello, world\n"); 16

17 Αρχεία κεφαλίδας μεταγλώττιση & σύνδεση (1) Το αρχείο hello.c ενσωματώνει το αρχείο κεφαλίδας stdio.h, από το προκαθορισμένο φάκελο, και το αρχείο κεφαλίδας useful.h από τον φάκελο μεταγλώττισης. Η συνάρτηση main() καλεί τη συνάρτηση do_something_useful() που υλοποιείται στο αρχείο useful.c αλλά το πρωτότυπο της δηλώνεται στο αρχείο κεφαλίδας useful.h. Η μεταγλώττιση των αρχείων γίνεται είτε μέσω ενός Ολοκληρωμένου Περιβάλλοντος Προγραμματισμού (IDE) o Δημιουργείτε Project o Προσθέτετε στο project τα αρχεία σας (αρχεία κεφαλίδας, αρχεία υλοποίησης, αρχείο με τη main()) o Ζητάτε Rebuild All ή make (με τη βοήθεια της οποίας γίνεται η μεταγλώττιση και σύνδεση). Μπορεί να γίνει και από τη κονσόλα (γραμμή εντολών) δίνοντας την εντολή gcc -o helloappl hello.c useful.c Οπότε δημιουργείται το εκτελέσιμο αρχείο helloappl.exe 17

18 Μεταγλώττιση (compile) & σύνδεση (linking) από την κονσόλα 1.gcc -c hello.c μεταγλώττιση και δημιουργία του hello.o 2.gcc -c useful.c μεταγλώττιση και δημιουργία του useful.o 3.gcc hello.o useful.o σύνδεση (linking) των παραπάνω object files σε ένα εκτελέσιμο με το προκαθορισμένο όνομα a.exe Ή σε μια εντολή μεταγλώττιση & σύνδεση πολλών αρχείων αντί για τις gcc hello.c useful.c δημιουργείται το εκτελέσιμο a.exe Εκτέλεση του a.exe a a Αρχεία κεφαλίδας μεταγλώττιση hello, world Πιέστε ένα ένα πλήκτρο για για συνέχεια..... & σύνδεση (2) Δες το πχ στο φάκελο Hello (μεταγλώττιση, σύνδεση, εκτέλεση από κονσόλα /wxdevcpp Ή αν θέλουμε πολλά αρχεία να μεταγλωττιστούν και να γίνει σύνδεση τους σε ένα εκτελέσιμο με άλλο όνομα εκτός από το προκαθορισμένο gcc o helloappl hello.c useful.c δημιουργείται το εκτελέσιμο helloappl.exe 18

19 Μεταγλώττιση & σύνδεση ξεχωριστών αρχείων(1) #include <stdio.h> #include <stdlib.h> void book() printf ("H glossa C se bathos\n"); #include <stdio.h> #include <stdlib.h> void thanks(char *name) printf ("Thanks %s!\n", name); intro.c Το εκτελέσιμο αρχείο gcc βρίσκεται στο φάκελο c:\dev-cpp\bin. Για να μπορούμε να το εκτελούμε απ οποιοδήποτε φάκελο θα πρέπει να συμπεριλάβουμε στο path του περιβάλλοντος το συγκεκριμένο φάκελο 1. Η επιλογή c εξαναγκάζει το μεταγλωττιστή να κάνει μόνο μεταγλώττιση (και όχι σύνδεση) του πηγαίου αρχείου 2. Την επιλογή ο ακολουθεί το όνομα του τελικού εκτελέσιμου αρχείου 3.Το C:\*****\ δηλώνει τη διαδρομή στον ΗΥ σας μέχρι το φάκελο separate #include <stdio.h> #include <stdlib.h> #include "myfunc.h" int main() book(); thanks("nikos"); system("pause"); return 0; C:\>path %path%;c:\dev-cpp\bin C:\>cd C:\*****\separate C:\*****\separate>gcc -c main.c C:\*****\separate>gcc -c intro.c C:\*****\separate>gcc -c bye.c C:\*****\separate>gcc -o all main.o intro.o bye.o C:\*****\separate>all H glossa C se bathos Thanks Nikos! Πιέστε ένα πλήκτρο για συνέχεια main.c Δες το πχ στο φάκελο separate (μεταγλώττιση, σύνδεση, εκτέλεση από κονσόλα /wxdevcpp 19

20 Μεταγλώττιση & σύνδεση ξεχωριστών αρχείων(2) gcc -c file1.c παράγεται το file1.o gcc o file file1.o file2.o file3.o παράγεται το file.exe 20

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

22 Δημιουργία δικών μας βιβλιοθηκών (1o πχ)(1) Αυτός είναι ο κώδικας της συνάρτησης που θα γίνει βιβλιοθήκη. Είναι μια απλή συνάρτηση που επιστρέφει το μέσο όρο δύο πραγματικών αριθμών. Το όνομα του αρχείου του πηγαίου κώδικα είναι calc_mean.c #include <stdio.h> double mean(double a, double b) return (a+b) / 2; Το αντίστοιχο αρχείο κεφαλίδας λέγεται calc_mean.h double mean(double, double); Δες το πχ στο φάκελο Lib1 (μεταγλώττιση, σύνδεση, εκτέλεση από κονσόλα /wxdevcpp 22

23 Δημιουργία δικών μας βιβλιοθηκών (1o πχ)(2) Μια βιβλιοθήκη είναι βασικά ένα σύνολο από αρχεία αντικειμενικού κώδικα που έχουν μεταγλωττιστεί (ή αντιγραφεί) σε ένα ενιαίο αρχείο. Αυτό το ενιαίο αρχείο είναι η βιβλιοθήκη. Το αρχείο δημιουργείται με την εφαρμογή του archiver (ar) Πρώτα το αρχείο του πηγαίου κώδικα (υλοποίηση της διασύνδεσης) μεταγλωττίζεται σε αρχείο αντικείμενου κώδικα, όπως ακριβώς και στη περίπτωση των πολλαπλών αρχείων: gcc -c calc_mean.c Κατόπιν, η καλείται η εφαρμογή ar για να παράγει τη βιβλιοθήκη με όνομα πχ. libmean.a με βάση το αρχείο του αντικείμενου κώδικα calc_mean.o. ar rcs libmean.a calc_mean.o Tο όνομα της βιβλιοθήκης ξεκινά με το πρόθεμα lib και έχει επέκταση.a. Είναι προφανές ότι στα δύο παραπάνω βήματα θα μπορούσαμε να έχουμε περισσότερα από ένα αρχεία πηγαίου ή αντικείμενου κώδικα ως είσοδο των εφαρμογών gcc και ar αντίστοιχα. 23

24 Χρήση της βιβλιοθήκης (1) Το όνομα του αρχείου του πηγαίου κώδικα είναι main.c (αρχείο πελάτης που χρησιμοποιεί τη βιβλιοθήκη). #include <stdio.h> #include "calc_mean.h" int main(int argc, char *argv[]) double v1, v2, m; v1 = 5.2; v2 = 7.9; m = mean(v1, v2); printf("the mean of %3.2f and %3.2f is %3.2f\n", v1, v2, m); return 0; Σύνδεση με τη βιβλιοθήκη: gcc main.c libmean.a -o statically_linked Δημιουργείται το εκτελέσιμο αρχείο statically_linked.exe 24

25 Χρήση της βιβλιοθήκης (2) Σύνδεση με τη βιβλιοθήκη : gcc main.c libmean.a -o statically_linked ή gcc main.c -lmean -o statically_linked Η συντόμευση -l μπορεί να χρησιμοποιηθεί για να μη χρειάζεται να προσδιοριστεί πλήρως το όνομα της βιβλιοθήκης (πρόθεμα lib και επέκταση.a), δηλαδή γράφουμε αντί για libmean.a -> -lmean -Llibrary search path : Η επιλογή -L μπαίνει πριν από τη διαδρομή library search path που περιγράφει τον φάκελο που βρίσκεται το αντικειμενικό αρχείο της εξωτερικής βιβλιοθήκης (.a), εφόσον βέβαια δεν βρίσκεται είτε στο προκαθορισμένο φάκελο εγκατάστασης βιβλιοθηκών του gcc (πχ. c:\dev-cpp\lib φάκελος βιβλιοθηκών) είτε στον τρέχοντα φάκελο. -Ιinclude path : Η επιλογή -Ι μπαίνει πριν από τη διαδρομή include path που περιγράφει τον φάκελο που βρίσκεται το αρχείο κεφαλίδας της εξωτερικής βιβλιοθήκης (.h), εφόσον βέβαια δεν βρίσκεται είτε στο προκαθορισμένο φάκελο εγκατάστασης αρχείων κεφαλίδας του gcc (πχ. c:\dev-cpp\include φάκελος αρχείων κεφαλίδας) είτε στον τρέχοντα φάκελο. 25

26 Δημιουργία δικών μας βιβλιοθηκών (2o πχ) #include <stdio.h> #include <stdlib.h> void book() printf ("H glossa C se bathos\n"); #include <stdio.h> #include <stdlib.h> intro.c #include <stdio.h> #include <stdlib.h> #include "myfunc.h" int main() int i; for (i=1;i<=5;i++) book(); return 0; test.c void thanks(char *name) printf ("Thanks %s!\n", name); bye,c void book(); void thanks(char *name); myfunc.h ar cr mylib.a intro.o bye.o gcc test.c mylib.a -o neo neo H glossa C se bathos H glossa C se bathos H glossa C se bathos H glossa C se bathos H glossa C se bathos 26

27 gcc compiler Για μια πλήρη αναφορά στις επιλογές και στη χρήση του μεταγλωττιστή gcc, μπορείτε να ανατρέξετε στο δικτυακό τόπο An Introduction to GCC- Network Theory Ltd 27

28 Εφαρμογή Στο φάκελο ch08 σας δίνετε το αρχείο random.c που αποτελεί την υλοποίηση της διασύνδεσης random.h. Γράψτε το κώδικα για τη διασύνδεση random.h Το crapts.c χρησιμοποιεί τη διασύνδεση random.h. Δημιουργήστε το εκτελέσιμο αρχείο του crapts.c o Με εντολές από τη κονσόλα o Μέσω του περιβάλλοντος wx-devcpp Δημιουργήστε τη βιβλιοθήκη με όνομα libmyrandom.a Δημιουργήστε το εκτελέσιμο αρχείο από το crapts.c κάνοντας χρήση της βιβλιοθήκης libmyrandom.a o Με εντολές από τη κονσόλα o Μέσω του περιβάλλοντος wx-devcpp Αποθηκεύστε το αρχείο κεφαλίδας στο φάκελο myincludedir και τη βιβλιοθήκη libmyrandom.a στο φάκελο mylibdir 28

29 Παράμετροι γραμμής εντολής Οι συναρτήσεις στη C μπορούν να έχουν παραμέτρους μέσω των οποίων η συνάρτηση που τις καλεί μπορεί να μεταβιβάσει κάποιες πληροφορίες. Τι γίνεται με τη συνάρτηση main() ; Μπορεί να έχει παραμέτρους; Πως θα μεταβιβάσουμε τιμές σ αυτές τις παραμέτρους; H συνάρτηση main() μπορεί να έχει ΜΟΝΟ ΔΥΟ συγκεκριμένες παραμέτρους οι οποίες παίρνουν τιμές από τη γραμμή εκτέλεσης του προγράμματος στο περιβάλλον του λειτουργικού συστήματος Οι παράμετροι αυτοί είναι οι arg argv[] main(int argc, char *argv[]) 29

30 Παράμετροι της main(1) main(int argc, char *argv[]) Η παράμετρος argc μεταβιβάζει στη main() το πλήθος των παραμέτρων με τις οποίες καλείται το πρόγραμμα. Η τιμή της argc είναι τουλάχιστον 1, δεδομένου ότι στο πλήθος των παραμέτρων υπολογίζεται και το όνομα του προγράμματος. Η παράμετρος argv[] είναι ένας πίνακας που περιέχει δείκτες σε char. Η πρώτη θέση μνήμης του πίνακα argv[] δείχνει σε ένα σύνολο χαρακτήρων το οποίο περιέχει το όνομα του εκτελέσιμου αρχείου του προγράμματος, όπως αυτό δίνεται στη γραμμή εντολών (π.χ. test). Οι υπόλοιποι δείκτες στις θέσεις μνήμης του πίνακα argv[], δείχνουν σε σύνολα χαρακτήρων που περιέχουν τις παραμέτρους με τις οποίες έχει κληθεί από τη γραμμή εντολών το πρόγραμμα. 30

31 Παράμετροι της main(2) Ένα παράδειγμα Έστω το παρακάτω πρόγραμμα test.c. Μετά τη μεταγλώττιση προκύπτει το εκτελέσιμο test.exe. Αν το εκτελέσουμε test arxeio 1234 Edoses 3 parametrous test arxeio 1234 Πιέστε ένα πλήκτρο για συνέχεια... #include <stdio.h> #include <stdlib.h> main(int argc,char *argv[]) int i; printf("edoses %d parametrous\n",argc); for(i=0;i<argc;i++) //puts(argv[i]); printf("%s\n",argv[i]); system("pause"); Δοκιμάστε τa πχ στο φάκελο main_parameters 1. To test.c 2. Το 15_space. Το 15_space διαβάζει κείμενο από ένα αρχείο εισόδου και το γράφει σε ένα αρχείο εξόδου απαλείφοντας τα κενά διαστήματα. (στο wx-devcpp Execute->Parameters εισάγετε τις 2 παραμέτρους και μετά Run) 31

32 Τέλος Ενότητας

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1 Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα Προγραμματισμός II 1 lalis@inf.uth.gr Χρήση λογισμικού που ήδη υπάρχει Τα πολύπλοκα συστήματα αναπτύσσονται σταδιακά, «χτίζοντας» πάνω σε υπάρχουσα λειτουργικότητα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CE121 Προγραµµατισµός 2. Εισαγωγή σε Makefiles. CE121 -

CE121 Προγραµµατισµός 2. Εισαγωγή σε Makefiles. CE121 - CE121 Προγραµµατισµός 2 Εισαγωγή σε Makefiles 1 Η διαδικασία µεταγλώττισης myprog.c gcc myprog 2 Η διαδικασία µεταγλώττισης myprog.c preprocessor (cc1) /tmp/cczxt.i assembler (as) compiler (cc1) /tmp/cczxt.o

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

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

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

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

Προεπεξεργαστής C. Προγραμματισμός Ι 1

Προεπεξεργαστής C. Προγραμματισμός Ι 1 Προεπεξεργαστής C Προγραμματισμός Ι lalis@inf.uth.gr 1 Βασική ιδέα Ο προεπεξεργαστής (pre-proccesor) της C είναι ένα πρόγραμμα που εκτελείται και μετασχηματίζει τον πηγαίο κώδικα πριν αυτός δοθεί στον

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Eισαγωγή στον Προγραμματισμό

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Eισαγωγή στον Προγραμματισμό ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Eισαγωγή στον Προγραμματισμό Ενότητα 1: Εισαγωγή στην γλώσσα C και στο περιβάλλον Dev C/C++ Κ. Κουκουλέτσος Τμήμα: Τμήμα Υπολογιστικών

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

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

Διαδικαστικός Προγραμματισμός Διαδικαστικός Προγραμματισμός Ενότητα 8: Παραδείγματα με μονοδιάστατους πίνακες, συναρτήσεις, δείκτες, πέρασμα παραμέτρων με αναφορά Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό με C++ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό με C++ Ενότητα # 6: Συναρτήσεις Κωνσταντίνος Κουκουλέτσος Τμήμα Αυτοματισμού Άδειες Χρήσης Το παρόν

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

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

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

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

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

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

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

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

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

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

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

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Εισαγωγή στη C θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 7: Συναρτήσεις Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προεπεξεργαστής Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαδικασία Μεταγλώττισης πρόγραµµα επεξεργασίας κειµένου if a

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

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

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

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

Βιβλιοθήκες Αφηρημένοι τύποι δεδομένων. Προγραμματισμός II 1

Βιβλιοθήκες Αφηρημένοι τύποι δεδομένων. Προγραμματισμός II 1 Βιβλιοθήκες Αφηρημένοι τύποι δεδομένων Προγραμματισμός II 1 lalis@inf.uth.gr Βιβλιοθήκες Τμήματα λογισμικού ευρύτερης χρησιμότητας που έχουν σχεδιαστεί με σκοπό να διευκολύνουν την ανάπτυξη πολλών διαφορετικών

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

Προγραμματισμός Ι. Πολλαπλά Αρχεία. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Πολλαπλά Αρχεία. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Πολλαπλά Αρχεία Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Πολλαπλά Αρχεία Όταν γράφουμε μεγάλα προγράμματα θέλουμε να έχουμε ανεξάρτητα κομμάτια κώδικα

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C Τµήµα Πληροφορικής και Τηλεπικοινωνιών Περιεχόµενα Εισαγωγή Πρόγραµµα Φάσεις Υλοποίησης µε χρήση του εργαλείου DEV C + + οµή Προγράµµατος Η συνάρτηση main Μεταβλητές Τι είναι

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

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

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

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό με C++ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό με C++ Ενότητα # 7: Συναρτήσεις και Πίνακες Κωνσταντίνος Κουκουλέτσος Τμήμα Αυτοματισμού Άδειες Χρήσης

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

make Προγραμματισμός II 1

make Προγραμματισμός II 1 make Προγραμματισμός II 1 lalis@inf.uth.gr myprog.c preprocessor (cc1) /tmp/cczxt.i assembler (as) compiler (cc1) /tmp/cczxt.o /tmp/cczxt.s linker (ld) myprog Προγραμματισμός II 2 lalis@inf.uth.gr Δοκιμάστε

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

Προγραμματισμός Η/Υ. Ενότητα 3: Top Down Σχεδιασμός

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

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

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

Αντικειμενοστραφής Προγραμματισμός 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αντικειμενοστραφής Προγραμματισμός Ενότητα 5 : Δομή Προγράμματος C++ Ιωάννης Τσούλος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο Τμήμα Μηχανικών Πληροφορικής

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Μεταφραστές Εισαγωγή Διδάσκων: Επικ. Καθ. Γεώργιος Μανής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

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

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

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C Οι συναρτήσεις τι είναι Πρόκειται για ανεξάρτητα τμήματα ενός προγράμματος (υποπρογράμματα) που επιτελούν συγκεκριμένες εργασίες. Καλούνται από το κυρίως

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

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

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα 9: Συναρτήσεις Εμβέλεια Κουκουλέτσος Κώστας Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστικών Συστημάτων

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

B. Ενσωμάτωση Ιθαγενών Μεθόδων

B. Ενσωμάτωση Ιθαγενών Μεθόδων B. Ενσωμάτωση Ιθαγενών Μεθόδων Στο τέλος αυτού του κεφαλαίου θα μπορείτε: Να δημιουργείτε κώδικα Java που θα φορτώνει βιβλιοθήκες και θα καλεί ιθαγενείς μεθόδους (native methods). Να χρησιμοποιείτε τη

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

(programming interfaceή/και application programming interface API).

(programming interfaceή/και application programming interface API). Προγραµµατισµός Ι (ΗΥ120) ιάλεξη 21: Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα - Βιβλιοθήκες Επαναχρησιµοποίηση κώδικα Μεγάλο «στοίχηµα» στην βιοµηχανία λογισµικού. Ιδανικά, δεν χρειάζεται να ξαναγράψουµε

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

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Βασικά χαρακτηριστικά αναπτύχθηκε ως επέκταση της C το 1979 υπερσύνολο της C γλώσσα γενικού σκοπού, γρήγορη, Αντικειμενοστραφής προγραμματισμός (Object

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

CE121 Προγραµµατισµός 2. Εισαγωγή σε Makefiles. CE121 -

CE121 Προγραµµατισµός 2. Εισαγωγή σε Makefiles. CE121 - CE121 Προγραµµατισµός 2 Εισαγωγή σε Makefiles 1 Η διαδικασία µεταγλώττισης myprog.c gcc myprog 2 Η διαδικασία µεταγλώττισης myprog.c preprocessor (cc1) /tmp/cczxt.i assembler (as) compiler (cc1) /tmp/cczxt.o

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

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Εισαγωγή στον Προγραµµατισµό Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Συναρτήσεις 19.11.16 Β. Ντουφεξή 2 Προβλήματα: Οσο μεγαλώνουν τα προγράμματα, γίνονται πιο πολύπλοκα.

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 18: Ο προεπεξεργαστής της C. Βασική ιδέα Ο προεπεξεργαστής (pre-proccesor) της C είναι ένα πρόγραμμα που εκτελείται και μετασχηματίζει τον πηγαίο κώδικα πριν αυτός δοθεί

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

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

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 3: Εισαγωγή και Εμφάνιση Δεδομένων Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 19: Ο προεπεξεργαστής της C. Βασική ιδέα Ο προεπεξεργαστής (pre-proccesor) της C είναι ένα πρόγραμμα που εκτελείται και μετασχηματίζει τον πηγαίο κώδικα πριν αυτός δοθεί

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

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++ ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση του περιβάλλοντος Dev C++ το οποίο θα χρησιμοποιηθεί για την υλοποίηση

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C Οι συναρτήσεις τι είναι Πρόκειται για ανεξάρτητα τμήματα ενός προγράμματος (υποπρογράμματα) που επιτελούν συγκεκριμένες εργασίες. Καλούνται από το κυρίως

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

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

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

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

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Μεταγλωττιστές Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

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

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

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

Ενότητες στην C Τεχνική Υλοποίησης Αφαιρετικών Τύπων Δεδομένων στην C

Ενότητες στην C Τεχνική Υλοποίησης Αφαιρετικών Τύπων Δεδομένων στην C Ενότητες στην C Τεχνική Υλοποίησης Αφαιρετικών Τύπων Δεδομένων στην C Δυσκολία: Προγράμματα που λύνουν «πραγματικά προβλήματα» μπορεί να είναι μεγάλα (χιλιάδες ή εκατομμύρια γραμμές κώδικα). Κανείς δεν

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

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

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

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

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

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

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

Προεπεξεργαστής της C. C Preprocessor. Προγραμματισμός II 1

Προεπεξεργαστής της C. C Preprocessor. Προγραμματισμός II 1 Προεπεξεργαστής της C C Preprocessor Προγραμματισμός II 1 lalis@inf.uth.gr Τι κάνει ο προεπεξεργαστής; Ο προεπεξεργαστής (pre-proccesor) της C είναι ένα πρόγραμμα που μετασχηματίζει τον πηγαίο κώδικα προτού

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

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

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

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

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

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

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

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

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα 8: Συναρτήσεις Κουκουλέτσος Κώστας Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστικών Συστημάτων Άδειες

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 8: Αρχεία και Δομές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν

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

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

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

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

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

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

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

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό με C++ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό με C++ Ενότητα # 10: Constructors και Destructors Κωνσταντίνος Κουκουλέτσος Τμήμα Αυτοματισμού Άδειες

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

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 1: Εισαγωγή Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 3: Είσοδος / Έξοδος, Βασικοί Τύποι, Δήλωση Μεταβλητών Ένα Ακόμα Παράδειγμα #include int main(int argc, char* argv[]) { } putchar('h'); putchar('e'); putchar('l');

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 4: Έλεγχος Ροής. Κ.

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 4: Έλεγχος Ροής. Κ. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό Ενότητα 4: Έλεγχος Ροής Κ. Κουκουλέτσος Τμήμα: Τμήμα Υπολογιστικών Συστημάτων Άδειες Χρήσης Το παρόν

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

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΜΕΘΟΔΟΙ ΕΠΙΛΥΣΗΣ ΜΕ Η/Υ 3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB Ν.Δ. Λαγαρός Μ. Φραγκιαδάκης Α. Στάμος Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες Χρήσης Creative

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

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

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

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

Επεξεργασία Αρχείων Κειµένου

Επεξεργασία Αρχείων Κειµένου Επεξεργασία Αρχείων Κειµένου Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αρχεία Κειµένου Γενικά Συναρτήσεις Επεξεργασίας Αρχείων Κειµένου ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Αρχεία Γενικά

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT)

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

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 20: Ο προεπεξεργαστής της C. Βασική ιδέα Ο προεπεξεργαστής (pre-proccesor) της C είναι ένα πρόγραμμα που εκτελείται και μετασχηματίζει τον πηγαίο κώδικα πριν αυτός δοθεί

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου

Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου 1 Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου Λειτουργικά Συστήματα 7ο εξάμηνο ΣΗΜΜΥ ακ έτος 2015-2016 http://wwwcslabecentuagr/courses/os CSLab National Technical University of Athens Εργαστήριο

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

Διαδικασία Ανάπτυξης Λογισμικού

Διαδικασία Ανάπτυξης Λογισμικού Διαδικασία Ανάπτυξης Λογισμικού Ανάλυση Απαιτήσεων (προϋποθέτει κατανόηση του προβλήματος και τη συλλογή πληροφοριών και των απαιτήσεων από το σύστημα) Σχεδιασμός (ορισμός διεργασιών για να ικανοποιηθούν

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:04 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων

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

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( ) ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 3: Είσοδος και Έξοδος Δεδομένων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό Ενότητα 3: Είσοδος και Έξοδος Δεδομένων Κ. Κουκουλέτσος Τμήμα: Τμήμα Υπολογιστικών Συστημάτων Άδειες

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

Ηλεκτρονικοί Υπολογιστές

Ηλεκτρονικοί Υπολογιστές ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 9: Πίνακες στη C++ Ζαχαρούλα Ανδρεοπούλου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

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

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

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

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

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

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

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

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

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

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 5: MPI_Reduce Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

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

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C: (Διαλέξεις 3-4)

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C: (Διαλέξεις 3-4) Κεφάλαιο 2.1-2.4: Εισαγωγή στην C (Διαλέξεις 3-4) Περιεχόμενα Εισαγωγή στην C: Σύνταξη και Σημασιολογία σχόλια μεταβλητές και σταθερές τύποι δεδομένων Μετά αυτές τις δυο διαλέξεις θα μπορείτε να γράψετε

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 1 Διδάσκουσα καθηγήτρια: Ε.Κατσίρη 1 Υπεύθυνος εργαστηρίου: Α.Γαζής 2 Για την εγγραφή στο μάθημα, στην πλατφόρμα του Eclass -1/2- ΒΗΜΑ 1 Σύνδεση στο eclass BHMA 2 Eπιλογή:

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

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

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

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

Αρχεία Κεφαλίδων ΑΡΧΕΙΑ ΚΕΦΑΛΙΔΩΝ. Γεώργιος Παπαϊωάννου ( )

Αρχεία Κεφαλίδων ΑΡΧΕΙΑ ΚΕΦΑΛΙΔΩΝ. Γεώργιος Παπαϊωάννου ( ) ΑΡΧΕΙΑ ΚΕΦΑΛΙΔΩΝ Γεώργιος Παπαϊωάννου (2013 14) gepap@aueb.gr Περιγραφή: Πολλαπλά αρχεία κώδικα Αρχεία κεφαλίδων Τελευταία ενημέρωση: Ιούλιος 2013 Εισαγωγή 2 Στη C/C++ τον κώδικά μας τον οργανώνουμε συνήθως

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

ΔΗΜΙΟΥΡΓΙΑ & ΧΡΗΣΗ ΒΙΒΛΙΟΘΗΚΩΝ

ΔΗΜΙΟΥΡΓΙΑ & ΧΡΗΣΗ ΒΙΒΛΙΟΘΗΚΩΝ ΔΗΜΙΟΥΡΓΙΑ & ΧΡΗΣΗ ΒΙΒΛΙΟΘΗΚΩΝ Γεώργιος Παπαϊωάννου (2017-18) gepap@aueb.gr Περιγραφή: Τι είναι οι βιβλιοθήκες Δημιουργία βιβλιοθηκών Σύνδεση βιβλιοθηκών Τελευταία ενημέρωση: Οκτώβριος 2017 2 Compilation

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

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

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

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

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

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

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