ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Μερικές χρήσιμες οδηγίες

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

Download "ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Μερικές χρήσιμες οδηγίες"

Transcript

1 ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Μερικές χρήσιμες οδηγίες Ιωάννινα-Κοζάνη, Ιανουάριος Α. Στάδια Ανάπτυξης Γενικά, διακρίνουμε τη φάση της ανάλυσης, του σχεδιασμού και της υλοποίησης. Για το κάθε ένα από αυτά υπάρχει πολλή θεωρία και σχολές για το πώς πρέπει να γίνονται όταν πρόκειται για κάποιο μεγάλο project. Εδώ θα περιοριστούμε βέβαια, σε απλές καιπρακτικές συμβουλές. Ανάλυση Πριν προχωρήσουμε στην υλοποίηση ενός προγράμματος για την επίλυση συγκεκριμένου προβλήματος, αναλύουμε αυτό το πρόβλημα. Όσο καλύτερη η ανάλυση τόσο περισσότερο κόπο γλιτώνουμε όταν αναπτύσσουμε και αργότερα αναβαθμίζουμε το πρόγραμμά μας. Σχεδιασμός Όταν σχεδιάζουμε ένα πρόγραμμα είναι καλό να αναρωτηθούμε: αν χρειαστεί να κάνω κάτι ελαφρά διαφορετικό από αυτό που θέλω τώρα, πόσο εύκολα θα μπορέσω να τροποποιήσω το πρόγραμμά μου για να το πετύχω αυτό; Θα μπορώ να το προσαρμόσω με όσο το δυνατό πιο λίγες αλλαγές σε όσο το δυνατό πιο λίγα σημεία; Ή μήπως θα χρειαστεί να το ξαναγράψω από την αρχή; Πρακτικά, αυτό επιτυγχάνεται με το να επιδιώκουμε να βρούμε τουλάχιστον δύο τρόπους για την υλοποίηση μιας ενέργειας και να διαλέγουμε αυτόν που έχει λιγότερα στοιχεία τα οποία ενδέχεται να αλλάξουν στο μέλλον. Υλοποίηση Αυτό είναι πολύ απλά ο καθαυτό προγραμματισμός. Σε αυτό το σημείο θα πρέπει να πούμε ότι είναι χρήσιμο να σπάζουμε το πρόγραμμά μας σε επιμέρους αρχεία με συναρτήσεις που μπορεί να χρησιμοποιήσουμε και σε άλλα έργα. Όσο μεγαλώνει ένα project και γίνεται πιο πολύπλοκο, με περισσότερα ιεραρχικά επίπεδα, αυξάνεται η ανάγκη να χρησιμοποιούμε αρχεία επικεφαλίδας για να περιλαμβάνουμε συναρτήσεις και άλλα στοιχεία που έχουμε ορίσει, όπου χρειάζεται. Σε ένα αρχείο επικεφαλίδας μπορώ να περιλάβω τα εξής: ορισμούς συμβολικών σταθερών άλλες οδηγίες #include δηλώσεις δομών και ενώσεων δεδομένων που θα μου χρειαστούν στις συναρτήσεις μου δηλώσεις τύπων απαρίθμησης δηλώσεις νέων τύπων (απλών και παραγώγων) με struct και typedef δηλώσεις πρωτότυπων συναρτήσεων εξωτερικές μεταβλητές κλπ. Τα αρχεία επικεφαλίδας είναι καλό να έχουν και το κατάλληλο περιτύλιγμα που τα προφυλάσσει από πολλαπλή συμπερίληψη: #ifndef MYHEADER_H #define MYHEADER_H... (περιεχόμενα του αρχείου)... #endif Όσο πιο μεγάλο το πρόγραμμα τόσο πιο χρήσιμη είναι αυτή η πρακτική. Μερικά πρακτικά θέματα Κρατάμε ένα ημερολόγιο της ανάπτυξης του λογισμικού. Επίσης, καθώς αναπτύσσουμε τις συναρτήσεις μας, καλό είναι να γράφουμε κάπου πώς λειτουργούν και τι κάνουν αυτές, είτε για προσωπική μας χρήση είτε για να βοηθήσουμε όποιον άλλον βασιστεί στο πρόγραμμά μας. Όταν θέλουμε να κάνουμε κάτι πολυσύνθετο, γράφουτε στο χαρτί ή στον ΗΥ με λόγια ένα-ένα τα βήματα που θα κάνουμε 1) πρώτα αυτό 2) μετά εκείνο και τα ακολουθούμε πιστά. Κρατάμε αντίγραφα ασφαλείας του κώδικα που αναπτύσσετε! Δεν είναι αδύνατο να σβήσουμε

2 κατά λάθος το αποτέλεσμα δουλειάς πολλών ημερών! Η C μας δίνει μεγάλη ελευθερία στο στυλ γραφής. Δεν πρέπει να κάνουμε κακή χρήση αυτής της ελευθερίας. Να υιοθετήσουμε ένα ευανάγνωστο ύφος και με αυτό να γράφουμε πάντα τα δικά μας προγράμματα. Επίσης, προσθέτουμε διευκρινιστικά σχόλια σε διάφορα σημεία. Σαν ένας πρακτικός ορισμός μπορεί να ειπωθεί ότι το ιδανικό δομημένο πρόγραμμα είναι αυτό που μπορούμε να το διαβάσουμε από την αρχή μέχρι το τέλος χωρίς το μάτι να πηδήσει σε προηγούμενες ή επόμενες σειρές ούτε μία φορά και στο τέλος να έχουμε καταλάβει 100% τι κάνει. Το να επιτύχουμε πλήρως αυτό το στόχο είναι πρακτικά ανέφικτο, επιδιώκουμε όμως να τείνουμε όσο το δυνατό πιο κοντά στο ιδανικό. Μια συνοπτική παρουσίαση των σταδίων ανάπτυξης μπορεί να είναι και η εξής: ξεκινάμε από απαιτήσεις εισόδου και εξόδου κάνουμε διάγραμμα ροής δεδομένων και καθορίζουμε τις συναρτήσεις Σπάμε το πρόγραμμα σε υποπρογράμματα και αυτά σε μικρότερα, αν χρειαστεί. Αυτά καλό είναι να κυμαίνονται από 20 ως 50 γραμμές κώδικα (περίπου μία οθόνη). Ανάλυση από πάνω προς τα κάτω, υλοποίηση (γράψιμο κώδικα) από κάτω προς τα πάνω. Δηλαδή, αφού έχουμε σχεδιάσει το πρόγραμμα, αρχίζουμε να γράφουμε τις θεμελιωδέστερες συναρτήσεις και μετά αυτές που τις καλούν κ.ο.κ. μέχρι να φτάσουμε στην κορυφή που είναι η main. Μετά, ακολουθεί το στάδιο των διορθώσεων (εδώ μπορεί και να διαπιστώσουμε ότι πρέπει να αλλάξουν διάφορα στοιχεία του σχεδιασμού επειδή δεν είχαμε προβλέψει όσα μπορεί να πάνε στραβά). Β. Δοκιμές και διορθώσεις Αυτό είναι ίσως και το κομμάτι που φοβίζει περισσότερο και φαίνεται σαν η πιο μεγάλη ταλαιπωρία (ίσως όχι άδικα). Γι' αυτό και δίνουμε μεγαλύτερη έκταση σε αυτό το μέρος. Συνηθισμένα λάθη και ύποπτα σημεία Μερικά λάθη είναι τόσο συνηθισμένα (και όχι μόνο μεταξύ των αρχάριων!) ώστε αξίζει να τα καταγράψουμε και να τα ελέγχουμε ως συνήθεις ύποπτους κάθε φορά που κάτι πάει στραβά ακόμη κι όταν δεν πάει κάτι φανερά στραβά! Τα περισσότερα από αυτά θα εκδηλωθούν είτε κατά τη μεταγλώττιση είτε κατά την εκτέλεση, αλλά υπάρχουν και μερικά που θα περάσουν και τα δύο αυτά στάδια και θέλουν ιδιαίτερη προσοχή. Αν κάθε φορά που έχουμε σφάλμα ψάχνουμε πρώτα ανάμεσα σε αυτά, τα συνήθη λάθη, σύντομα θα συνηθίσουμε και θα τα βρίσκουμε κατευθείαν. Ας κάνουμε λοιπόν στον εαυτό μας τις παρακάτω ερωτήσεις: 1. βάλαμε ελληνικό ερωτηματικά (;) στο τέλος κάθε απλής εντολής; μήπως λείπει από καμία; 2. βάλαμε ελληνικό ερωτηματικό στο τέλος της do...while; μήπως λείπει από καμία τέτοια; 3. μήπως κατά λάθος βάλαμε και κανένα παραπανήσιο ελληνικό ερωτηματικό σε καμία σύνθετη εντολή if, for, while; (π.χ. έπρεπε να γράψουμε while(x>0){...διάφορες εντολές...} και γράψαμε while(x>0) ; {...διάφορες εντολές...} που είναι συντακτικά σωστό αλλά τελείως διαφορετικό από εκείνο που θέλαμε! 4. κλείσαμε όλα τα άγκιστρα { και } ; Τα άγκιστρα πάνε πάντα σε ζευγάρια` όποιος ξέρει να βάζει σωστά τα άγκιστρα ξέρει το 50% του δομημένου προγραμματισμού! 5. κλείσαμε όλες τις παρενθέσεις ( και ) ; 6. κλείσαμε όλα τα διπλά εισαγωγικά και ; 7. βάλαμε τη σωστή προδιαγραφή μορφοποίησης στις εντολές printf και scanf (%d για ακέραιους, %f για πραγματικούς, %c για χαρακτήρες, %s για αλφαριθμητικά) ; 8. γράψαμε με τον ίδιο συνδυασμό μικρών και κεφαλαίων ένα όνομα μεταβλητής ή συνάρτησης σε όλη του την εμβέλεια (κύριο πρόγραμμα ή συνάρτηση όπου εμφανίζεται); Όπως δηλώσαμε ένα όνομα, έτσι πρέπει και να εμφανίζεται παντού. Άλλο το abc, άλλο το Abc και άλλο το ABC. 9. μήπως μπερδέψαμε κάπου το 0 (μηδέν) με το Ο (κεφαλαίο όμικρον); 10. έχουμε μία και μόνο μία συνάρτηση main στο πρόγραμμά μας ή κάνοντας copy-paste από εδώ κι από εκεί προσθέσαμε και... διεκδικητή για την αρχηγία του προγράμματος; 11. έχουμε κάνει include το αρχείο επικεφαλίδας που χρειάζεται για τη δουλειά μας; 12. μήπως έχουμε μπερδέψει τα σημεία στίξης (τελεία αντί για κόμμα, κόμμα αντί για τελεία,

3 κόμμα ή τελεία αντί για ελληνικό ερωτηματικό μέσα σε ένα for κλπ) ; 13. μήπως μπερδέψαμε κάποιο άγκιστρο με παρένθεση ή το ανάποδο; 14. μήπως αντί για αγκύλες [ ] στα στοιχεία ενός πίνακα βάλαμε παρενθέσεις ( και ); (συνηθισμένο σφάλμα του διδάσκοντα που επί χρόνια προγραμμάτιζε σε Fortran όπου δεν υπάρχουν αγκύλες!) Σε αυτή την περίπτωση ο μεταγλωττιστής θα νομίσει ότι πρόκειται για κάποια συνάρτηση και πιθανότατα δε θα πει τίποτε! 15. Μήπως έχουμε ξεχάσει να δηλώσουμε κάποια συνάρτηση ή την ορίζουμε μετά τη main χωρίς να προηγείται έστω το πρωτότυπο ή έχουμε ξεχάσει κάποιο δικό μας header file όπου δηλώνουμε τις συναρτήσεις μας; 16. Μήπως έχουμε βάλει τελεστή ανάθεσης (απλό ίσον, =) αντί για τελεστή ελέγχου ισότητας (διπλό ίσον, = =); Π.χ. το if(x == y) και το if(x = y) είναι και τα δύο συντακτικά σωστά και ο μεταγλωττιστής δε θα παραπονεθεί καθόλου! Αλλά το πρώτο σημαίνει: αν το x είναι ίσο με το y, τότε.... Ενώ το δεύτερο σημαίνει: θέσε x ίσο με το y αν τώρα, το x είναι διαφορετικό από μηδέν, τότε.... Καμία σχέση το ένα με το άλλο! 17. Μήπως περνάμε σε μια συνάρτηση ορίσματα κατά τιμή ενώ θέλαμε να τα περάσουμε κατά διεύθυνση; ή το αντίστροφο; 18. Μήπως το όνομα μιας εξωτερικής μεταβλητής είναι ακριβώς ίδιο με αυτό μιας τοπικής; Θυμηθείτε ότι σε μια τέτοια περίπτωση, η τοπική υπερισχύει (overrides) πάνω στην εξωτερική. Οσο πιο τοπική τόσο περισσότερο υπερισχύει και είναι σα να μην υπάρχει η πιο εξωτερική. 19. Μήπως οι αριθμοδείκτες ενός πίνακα έγιναν μεγαλύτεροι από το μέγεθός του ή μικρότεροι από το μηδέν; 20. Μήπως ζητάμε το περιεχόμενο (κάνουμε dereference) ενός δείκτη που δε δείχνει κάπου; Ένα συνηθισμένο σφάλμα εκτέλεσης είναι το λεγόμενο segmentation fault: αυτό οφείλεται σε αναφορά σε περιοχή της μνήμης που δεν έχει δεσμευτεί, π.χ. όταν ένας αριθμοδείκτης ξεπερνά τα όρια ενός πίνακα, για παράδειγμα, έχουμε έναν πίνακα με 5 στοιχεία, example[5] και ζητάμε το έκτο: i = 5;...; x = example[i]; Αλλη συχνή περίπτωση που οδηγεί σε τέτοιο σφάλμα είναι κακή χρήση των δεικτών. Οι δείκτες πρέπει να δείχνουν κάπου (εκτός από NULL) αν θέλουμε να πάρουμε το περιεχόμενό τους. Αν ένας δείκτης δεν έχει οριστεί να δείχνει σε κάποια μεταβλητή θα πάρουμε τέτοιο σφάλμα. Ιδιαίτερα πονηρό σφάλμα είναι εκείνο κατά το οποίο ένας δείκτης έχει τεθεί ίσος με τη διεύθυνση κάποιου άλλου ο οποίος σε κάποια στιγμή γίνεται NULL. Παράδειγμα: int x, **p, *q;... q = &x; p = &q;... q = NULL;... printf( έχουμε και λέμε: %d \n, **p); /* segmentation fault! */ Ενέργειες και πρωτοβουλίες για διόρθωση σφαλμάτων Αφού τελειώσουμε με τα συντακτικά σφάλματα απομένουν τα σφάλματα εκτέλεσης και τα λογικά σφάλματα. Για να τα βρούμε, αν αποτύχει ο έλεγχος με βάση τις ερωτήσεις που δώσαμε πιο πάνω, θα πρέπει να δοκιμάσουμε το πρόγραμμα βάζοντάς του δεδομένα για τα οποία ξέρουμε το αποτέλεσμα (π.χ. από υπολογισμό με το χέρι, από τη θεωρία τη σχετική με το πρόβλημα, από άλλα προγράμματα που ξέρουμε ότι δουλεύουν σωστά για το συγκεκριμένο πρόβλημα και τα συγκεκριμένα δεδομένα κλπ). Αν υποθέσουμε ότι βγαίνει ένα λάθος αποτέλεσμα ή ακόμη και ένα σφάλμα εκτέλεσης και δεν ξέρουμε πού ακριβώς προκύπτει τότε, για να βρούμε την πηγή του, εφαρμόζουμε τη μέθοδο της διχοτόμησης. Αυτή συνίσταται στα εξής βήματα: α) βεβαιωνόμαστε ότι τα δεδομένα εισόδου είναι εν τάξει (π.χ. δεν έχουμε βάλει χαρακτήρα αντί για ακέραιο, τιμή μιας μεταβλητής στη θέση μιας άλλη κλπ). β) τότε το λάθος προφανώς βρίσκεται κάπου μεταξύ της ανάγνωσης δεδομένων και του τέλους του προγράμματος. Βάζουμε κάπου στη μέση του προγράμματος μια εντολή printf για την εκτύπωση μιας ή περισσότερων μεταβλητών που έχουν σχέση με το λάθος που αντιμετωπίζουμε. Έτσι το

4 πρόγραμμα χωρίστηκε σε δύο μέρη. Αν παίρνουμε λογικές και αναμενόμενες τιμές τότε το λάθος βρίσκεται στο δεύτερο μέρος, μετά από την printf, αλλιώς το πρόβλημα βρίσκεται στο πρώτο μέρος, πριν από την printf. γ) Στο μέρος του προγράμματος που εντοπίσαμε εφαρμόζουμε και πάλι την ίδια διαδικασία, δηλαδή βάζουμε μία printf κάπου στη μέση και με τη βοήθειά της διαπιστώνουμε σε ποια υποπεριοχή του προγράμματος εντοπίζεται το λάθος. δ) Συνεχίζοντας έτσι και μπαίνοντας σε καλούμενα υποπρογράμματα αν χρειαστεί, εντοπίζουμε ακριβώς το σημείο όπου παρουσιάζεται το λάθος. Ειδικά στην περίπτωση που εντοπίζουμε λάθος στην κλήση μιας συνάρτησης, πριν μπούμε στο εσωτερικό της, πρέπει να ελέγξουμε αν τα ορίσματα περνάνε μέσω τιμής ή μέσω διεύθυνσης και να βεβαιωθούμε αν είναι αυτό που θέλουμε. Τώρα, έστω ότι εντοπίσαμε πού ακριβώς υπάρχει σφάλμα αλλά δεν καταλαβαίνουμε τι φταίει. Μία λύση είναι να τροποποιήσουμε το πρόγραμμα και να δοκιμάσουμε να κάνουμε αυτό που γίνεται εκεί με κάποιον άλλο ισοδύναμο τρόπο. Αν το λάθος διορθώθηκε τότε είμαστε εν τάξει και επίσης, μπορεί να γίνει φανερό τι έφταιγε. Αν δε διορθώθηκε μπορεί τουλάχιστον να γίνει πιο σαφής η προέλευσή του. Μία άλλη ενέργεια που πρέπει να κάνουμε είναι να ψάξουμε όχι μόνο αυτό που υπάρχει αλλά και αυτό που δεν υπάρχει. Συγκεκριμένα, ας δώσουμε ένα παράδειγμα από πραγματική εμπειρία με τις σειρές ασκήσεων του μαθήματος. Στην έκτη σειρά ασκήσεων υπήρχε η παρακάτω εντολή: vector vec = newvector( ); Η συνάρτηση newvector αρχικοποιούσε μια μεταβλητή τύπου vector όπου vector ήταν μια δομή δεδομένων για την αναπαράσταση διανυσμάτων στο επίπεδο. Ενώ όλο το υποπρόγραμμα ήταν ακριβώς ίδιο με αυτό που δινόταν στο φυλλάδιο (το οποίο ήταν δοκιμασμένο), σε κάποια δοκιμή το πρόγραμμα δεν μεταγλωττιζόταν αλλά σταματούσε με το μήνυμα invalid initializer με αριθμό γραμμής αυτόν της παραπάνω εντολής. Αυτό που είχε συμβεί ήταν ότι στο αντίστοιχο header file έλειπε η δήλωση της συνάρτησης newvector, δηλαδή η παρακάτω γραμμή vector newvector( void ); η οποία είχε σβηστεί κατά λάθος σε κάποιο copy-paste. Εξ αιτίας αυτού του τυχαίου σβησίματος δεν πάει αμέσως το μυαλό στο να ελέγξουμε το αντίστοιχο αρχείο, ωστόσο τέτοια λάθη συμβαίνουν αρκετά συχνά, με πιο συνηθισμένη περίπτωση το να ξεχάσουμε μια προσωρινή, δοκιμαστική αλλαγή που κάναμε προηγουμένως. Τα παραπάνω μας οδηγούν να διατυπώσουμε τους εξής κανόνες: α) όταν εμφανίζεται ένα ακατανόητο πρόβλημα σε μια εντολή, ελέγχουμε αν όλα είναι εν τάξει με τις μεταβλητές, συναρτήσεις κλπ που εμφανίζονται σε αυτή την εντολή (π.χ. οι συναρτήσεις είναι δηλωμένες στα header files, οι μεταβλητές είναι του τύπου που θέλουμε κλπ). β) προσοχή στα copy-paste! γ) ο,τι αλλάζουμε, αφαιρούμε ή προσθέτουμε προσωρινά, θυμόμαστε να το επαναφέρουμε ή διαγράψουμε όταν τελειώσουμε με τις δοκιμές! Άλλες πρακτικές οδηγίες Όταν το πρόγραμμα τυπώνει λάθος αποτελέσματα, πρώτα κυττάζουμε μήπως έχουμε λάθος κωδικό μορφοποίησης σε κάποια εντολή printf ή fprintf, π.χ. θέλουμε να τυπώσουμε ένα float και αντί για %d βάζουμε %f ή θέλουμε να το αλλάξουμε και να τυπώσουμε ένα double αλλά ξεχνάμε να αλλάξουμε το %f σε %lf. Η πρόσθεση δεικτών δεν είναι αποδεκτή πράξη. Αλλά η αφαίρεση είναι αποδεκτή κι έτσι π.χ. μπορούμε να βρούμε τη μεσαία θέση μεταξύ δύο δεικτών ως εξής: mid = low+(high-low)/2; (ενώ το mid = (low+high)/2 θα ήταν λάθος). Έστω ένας πίνακας Α[n]. Τότε τα στοιχεία Α[-1] και Α[n] είναι έξω από τα όρια του πίνακα. Ωστόσο, οι αριθμητικές πράξεις δεικτών που περιλαμβάνουν το πρώτο στοιχείο μετά το τέλος του πίνακα, δηλαδή το A[n], επιτρέπονται και θα λειτουργήσουν σωστά. Γ. Οι μεταγλωττιστές στην πράξη Windows, πρόγραμμα Dev-C++ Οι οδηγίες αυτές βασίστηκαν στην έκδοση , αλλά λίγο-πολύ ισχύουν και για την παλιότερη έκδοση που χρησιμοποιήθηκε στο μάθημα.

5 Έστω ότι θέλουμε να αναπτύξουμε ένα πρόγραμμα που αποτελείται από τρία αρχεία: το pmain.c, το plib.c και το plib.h. Το πρώτο περιέχει την κύρια συνάρτηση (main), το δεύτερο ορίζει κάποιες συναρτήσεις που θα αναπτύξουμε και το τρίτο έχει τις δηλώσεις αυτών των συναρτήσεων και άλλα στοιχεία (εξωτερικές μεταβλητές, ορισμούς συμβολικών σταθερών κλπ). Ακολουθούμε τα εξής βήματα: Αρχείο ---> Νέο > Έργο [Enter]: μας βγάζει σε ένα παράθυρο που έχει διάφορους τύπους εφαρμογών. Διαλέγουμε: Console Application και από κάτω επιλέγουμε C project (ή έργο C). Στο κουτάκι κάτω αριστερά γράφουμε ένα όνομα για το έργο, π.χ. ptest και πατάμε ΟΚ. Μας βγάζει το σχετικό πλαίσιο όπου ζητείται να διαλέξουμε πού θα σώσουμε το project. Αφού διαλέξουμε φάκελλο, μας ανοίγει το project με ένα αρχείο που έχει τα παρακάτω περιεχόμενα: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { system("pause"); return 0; } (στην έκδοση που είχαμε στο μάθημα λείπουν το stdlib.h και το system( PAUSE )). Αριστερά, φαίνεται η δομή του project με τα αρχεία που περιέχει (προς το παρόν ένα με default όνομα main.c). Αυτό το αρχείο που έχει ήδη τη main (εμείς απλώς θα συμπληρώσουμε ο,τι μας χρειάζεται) θα το σώσουμε ως pmain.c Πάμε: Αρχείο ---> Αποθήκευση ως... [Enter] και στο σχετικό πλαίσιο γράφουμε όνομα pmain. Από κάτω από εκεί που βάζουμε το όνομα υπάρχει ο τύπος του αρχείου. Εκεί λέει C source files (*.c). Δεν το αλλάζουμε. Σώζουμε το αρχείο. Τώρα, θα προσθέσουμε το αρχείο plib.c που θα περιέχει τις συναρτήσεις μας. Πάμε: Αρχείο ---> Νέο > Πηγαίο Αρχείο [Enter] Μας βγάζει ερώτηση Να προστεθεί το νέο αρχείο στο έργο; Πατάμε Yes. Στο αριστερό πλαίσιο θα δούμε το νέο αρχείο στη δομή του project ως Ανώνυμο. Το αρχείο αυτό είναι στο προσκήνιο και είναι κενό. Θα το σώσουμε ως plib.c. Πάμε: Αρχείο ---> Αποθήκευση ως... [Enter] και στο σχετικό πλαίσιο γράφουμε όνομα plib. Από κάτω από εκεί που βάζουμε το όνομα υπάρχει ο τύπος του αρχείου. Εκεί λέει C source files (*.c). Δεν το αλλάζουμε. Σώζουμε το αρχείο. Τώρα, θα προσθέσουμε το αρχείο plib.h που θα περιέχει τις δηλώσεις των συναρτήσεων μας. Πάμε: Αρχείο ---> Νέο > Πηγαίο Αρχείο [Enter] Μας βγάζει ερώτηση Να προστεθεί το νέο αρχείο στο έργο; Πατάμε Yes. Στο αριστερό πλαίσιο θα δούμε το νέο αρχείο στη δομή του project ως Ανώνυμο. Το αρχείο αυτό είναι στο προσκήνιο και είναι κενό. Θα το σώσουμε ως plib.h. Πάμε: Αρχείο ---> Αποθήκευση ως... [Enter] και στο σχετικό πλαίσιο γράφουμε όνομα plib. Από κάτω από εκεί που βάζουμε το όνομα υπάρχει ο τύπος του αρχείου. Εκεί λέει C source files (*.c). Πατάμε το μικρό βελάκι για να ανοίξει το πτυσσόμενο μενού και διαλέγουμε Header files (*.h, *.hpp, *.rh, *.hh). Σώζουμε το αρχείο.

6 Προσθέτουμε στο αρχείο plib.h το παρακάτω περιεχόμενο: #ifndef PLIB_H #define PLIB_H #include <stdio.h> void myfunction( void ); #endif Παρατηρείστε ότι περιλάβαμε και το αρχείο stdio.h. Σώζουμε το αρχείο από Αρχείο ---> Αποθήκευση ή από το σχετικό εικονίδιο. Προσθέτουμε στο αρχείο plib.c το παρακάτω περιεχόμενο: #include "plib.h" void myfunction ( void ) { printf("\nthis is a function\n"); } Τώρα καταλαβαίνουμε ότι έπρεπε να μπει κάπου και το stdio.h αφού υπάρχει μία printf. Εμείς επιλέξαμε να το βάλουμε στο plib.h το οποίο μετά κάνουμε include εδώ. Σώζουμε το αρχείο από Αρχείο ---> Αποθήκευση ή από το σχετικό εικονίδιο. Προσθέτουμε στο αρχείο pmain.c το παρακάτω περιεχόμενο (με έντονα γράμματα τα καινούρια στοιχεία που προσθέτουμε): #include <stdio.h> #include <stdlib.h> #include "plib.h" int main(int argc, char *argv[]) { myfunction(); system("pause"); return 0; } Σώζουμε το αρχείο από Αρχείο ---> Αποθήκευση ή από το σχετικό εικονίδιο. Μεταγλώττιση: Εκτέλεση ---> Δημιουργία. Διαβάζουμε τα μηνύματα στο κάτω μέρος. Αν υπάρχει κάποιο μήνυμα λάθους μπορούμε να μεταβούμε στο σημείο στο οποίο αναφέρεται κάνοντας διπλό κλικ στο μήνυμα. Τότε, η αντίστοιχη γραμμή στο πρόγραμμα θα τονιστεί. Εκτέλεση: Εκτέλεση ---> Εκτέλεση ή Εκτέλεση ---> Δημιουργία και Εκτέλεση. UNIX/Linux Για αρκετά μικρές εφαρμογές τα πράγματα είναι πολύ απλά αφού μπορούμε να βάλουμε όλα τα

7 αρχεία μας (πηγαία και επικεφαλίδας) σε ένα κατάλογο, να μεταβούμε εκεί από τη γραμμή εντολών και να τυπώσουμε cc pmain.c plib.c και να πατήσουμε Enter (δε χρειάζεται να περιλάβουμε το plib.h). Το εκτελέσιμο αρχείο θα έχει το όνομα a.out οπότε για να το τρέξουμε αρκεί να τυπώσουμε./a.out και να πατήσουμε Enter. Αν θέλουμε να δώσουμε άλλο όνομα στο αρχείο, π.χ. myprog, μπορούμε να τυπώσουμε: cc pmain.c plib.c -o myprog και μετά, για να το τρέξουμε:./myprog Για πιο μεγάλα projects με πολλά αρχεία πηγαίου κώδικα και επικεφαλίδας μπορούμε να χρησιμοποιήσουμε το make, ένα utility του UNIX/Linux που επιτρέπει να μεταγλωττίζονται μόνο τα αρχεία που τροποποιήσαμε και όχι όλο το πρόγραμμα από την αρχή. Για να τρέξει το make πρέπει να φτιάξουμε ένα αρχείο κειμένου το οποίο λέγεται makefile και περιέχει οδηγίες για το make ώστε να κάνει τη μεταγλώττιση. Το makefile πρέπει να βρίσκεται στον ίδιο κατάλογο με τα άλλα αρχεία μας. Ένα αρχείο makefile για το παράδειγμά μας θα μπορούσε να είναι το εξής:.c.o: cc -c -g $*.c OBJECTS = pmain.o plib.o CMD = test.exe $(CMD): $(OBJECTS) makefile cc -o $(CMD) $(OBJECTS) clean: /bin/rm *.o ## Dependencies pmain.o: plib.h plib.o: plib.h plib.h: Οι γραμμές που αρχίζουν με # είναι σχόλια (και όχι οδηγίες στον προεπεξεργαστή! - αυτό δεν είναι γραμμένο σε γλώσσα C!) Στην αρχή, δίνεται ο κανόνας που λέει οτι ο μεταγλωττιστής (cc) θα κάνει μεταγλώττιση κάθε πηγαίου αρχείου με κατάληξη c. Από αυτά θα προκύψουν τα αντικειμενικά αρχεία με κατάληξη o. Στα αρχεία αυτά δίνουμε συλλογικά το όνομα OBJECTS, ενώ το εκτελέσιμο αρχείο (CMD) θέλουμε να λέγεται test.exe. Οι επόμενες γραμμές λένε ότι ο μεταγλωττιστής (βασικά ο linker) θα πάρει τα εκτελέσιμα και θα τα ενώσει για να δώσει το εκτελέσιμο με το όνομα που ορίσαμε. Μπορούμε να ορίσουμε επίσης και πρόσθετες λειτουργίες όπως με το προσδιοριστικό clean που μπορούμε να το θέσουμε σαν επιλογή στο make και τότε αυτό θα έχει σαν αποτέλεσμα να σβηστούν τα αντικειμενικά αρχεία και να μείνουν μόνο τα πηγαία και το εκτελέσιμο. Τέλος, καθορίζονται και οι εξαρτήσεις, δηλαδή ποιο αρχείο σχετίζεται με ποια, ώστε αν αλλάξουν αυτά να μεταγλωττιστούν εκ νέου και όσα εξαρτώνται από αυτά. Παραδείγματα: Με έναν editor (όπως ο vi, emacs ή gedit) μπορούμε να γράψουμε τα τρία αρχεία pmain.c, plib.c και plib.h που περιγράψαμε πιο πάνω, καθώς και το makefile με τα παραπάνω περιεχόμενα. Αν γράψουμε απλά

8 make και πατήσουμε Enter θα δούμε τα εξής: cc -c -g pmain.c cc -c -g plib.c cc -o test.exe pmain.o plib.o δηλαδή πρώτα μεταγλωττίστηκαν ένα-ένα τα αρχεία c και μετά ενώθηκαν. Η επιλογή -g επιτρέπει να ενσωματωθούν χρήσιμες πληροφορίες για τη χρήση προγραμμάτων αποσφαλμάτωσης (debugging). Η επιλογή -c εμποδίζει το linker να δράσει, δηλαδή να ενώσει το αντικειμενικό αρχείο με τις βιβλιοθήκες πριν μεταγλωττιστούν και τα υπόλοιπα, ώστε να μπορέσει να τα ενώσει όλα μαζί στο τέλος. Αν πάμε να αλλάξουμε ένα αρχείο, π.χ. το plib.c (π.χ. να προσθέσουμε ένα σχόλιο) και μετά ξαναγράψουμε make, θα δούμε το εξής: cc -c -g plib.c cc -o test.exe pmain.o plib.o δηλαδή μόνο το αλλαγμένο αρχείο μεταγλωττίστηκε ξανά. Αν ξανατρέξουμε το make, θα δούμε το εξής: make: `test.exe' is up to date. με προφανές νόημα. Μπορούμε να δοκιμάσουμε και την επιλογή clean: > make clean /bin/rm *.o και αν ξανατρέξουμε το make θα πάρουμε: cc -c -g pmain.c cc -c -g plib.c cc -o test.exe pmain.o plib.o αφού τώρα δεν υπάρχουν μεταγλωττισμένα αρχεία πηγαίου κώδικα (τα σβήσαμε όλα με το clean). Τέλος, αν αλλάξουμε το plib.h από το οποίο εξαρτώνται τα άλλα δύο, όπως περιγράφεται και στο makefile, και τρέξουμε το make θα πάρουμε το εξής: cc -c -g pmain.c cc -c -g plib.c cc -o test.exe pmain.o plib.o αφού λόγω της εξάρτησης πρέπει να ενημερωθούν και τα άλλα δύο αρχεία που έχουν κάνει include το plib.h

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

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

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

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

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

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

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

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

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

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

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

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα Αλφαριθμητικά Πίνακες: μια σύντομη εισαγωγή Πίνακες χαρακτήρων: τα "Αλφαριθμητικά" Πίνακες(Arrays): έννοιες και ορισμοί Ορισμός: Πίνακας (array) = σύνολο μεταβλητών του ιδίου τύπου (int, float, char,...) με ένα κοινό

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Δεύτερη Διάλεξη Βασικά στοιχεία της γλώσσας προγραμματισμού C Μία γλώσσα προγραμματισμού όπως και μια ανθρώπινη γλώσσα μπορεί να μελετηθεί ως προς το αλφάβητό της,

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

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

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

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

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

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

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

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

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω.

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω. Τι είναι το debug μαμα? Με απλά λόγια, debug (αποσφαλμάτωση αλλά που να κάθεσαι να το πεις), είναι η διαδικασία εντοπισμού και διόρθωσης σφαλμάτων που υπάρχουν σε κώδικα (ασχέτως γλώσσας προγραμματισμού).

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 9η εβδομάδα. Κοζάνη, 2 Δεκεμβρίου 2008. Δίνονται παραδείγματα που αποσαφηνίζουν και συμπληρώνουν όσα αναφέρθηκαν στο μάθημα σχετικά με τις δομές

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών

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

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

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

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Τρίτη Διάλεξη Εντολές Επιλογής και Επανάληψης Εντολές επιλογής Εντολή if Η πιο απλή μορφή της if συντάσσεται ως εξής: if ( συνθήκη ) Οι εντολές μέσα στα άγκιστρα αποτελούν

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

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ & ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΑΝΑΠΤΥΞΗΣ BloodShed Dev-C++

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ & ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΑΝΑΠΤΥΞΗΣ BloodShed Dev-C++ ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ & ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΑΝΑΠΤΥΞΗΣ BloodShed Dev-C++ Α. ΠΡΙΝ ΤΗΝ ΕΓΚΑΤΑΣΤΑΣΗ Το πρόγραμμα BloodShed Dev-C++ είναι ένα ολοκληρωμένο περιβάλλον ανάπτυξης* κώδικα για γλώσσες

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

Εισαγωγή στο περιβάλλον Code::Blocks

Εισαγωγή στο περιβάλλον Code::Blocks Εισαγωγή στο περιβάλλον Code::Blocks Στο παρόν εγχειρίδιο παρουσιάζεται η διαδικασία ανάπτυξης, μεταγλώττισης και εκτέλεσης ενός προγράμματος C στο περιβάλλον του Code::Blocks. Η διαδικασία αυτή παρουσιάζεται

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 8η σειρά ασκήσεων. Κοζάνη, 7 Δεκεμβρίου 2007. Κάθε πρόγραμμα εξαρτάται από αλγόριθμους και δομές δεδομένων, αλλά μόνο λίγα απαιτούν κάποια καινοτομία

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

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

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

Ενδεικτική περιγραφή μαθήματος

Ενδεικτική περιγραφή μαθήματος ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Προγραμματισμός Η/Υ Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή: Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές.

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

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

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 5η σειρά ασκήσεων. Κοζάνη, 7 Νοεμβρίου 2007. Άσκηση p5-1 (μεταγλώττιση και εκτέλεση) Δημιουργήστε ένα project, ονομάστε το p5 και δημιουργήστε

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 6η σειρά ασκήσεων. Κοζάνη, 16 Νοεμβρίου 2007. Ας υποθέσουμε ότι θέλουμε να αναπτύξουμε μία εφαρμογή για προβλήματα στα οποία υπεισέρχονται έννοιες

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

Λύσεις για τις ασκήσεις του lab5

Λύσεις για τις ασκήσεις του lab5 Εισαγωγή Λύσεις για τις ασκήσεις του lab5 Επειδή φάνηκε να υπάρχουν αρκετά προβλήματα σχετικά με τον τρόπο σκέψης για την επίλυση των προβλημάτων του lab5, θα συνοδεύσουμε τις λύσεις με αρκετές επεξηγήσεις,

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

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

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

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

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

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

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

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

Βαθμός Σχόλια. lab5 PASS PASS PASS PASS PASS. Οριακά PASS - Καλή δουλειά

Βαθμός Σχόλια. lab5 PASS PASS PASS PASS PASS. Οριακά PASS - Καλή δουλειά Α. Μ. Βαθμός Σχόλια 1183 1194 1238 1239 1240 1241 - Καλή δουλειά 1242 1243 1244 1245 - Κακή χρήση συναρτήσεων. Κάνεις τον ίδιο έλεγχο και εντός και εκτός της συνάρτησης. Θα έπρεπε να έχεις βρεί ένα τρόπο

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

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

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως

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

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

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

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

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

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

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι δείκτες στη C Η έννοια του δείκτη Την έννοια του δείκτη τη συναντήσαμε σε προηγούμενα μαθήματα. Η συνάρτηση scanf(), καταχωρίζει τιμές σε μεταβλητές χρησιμοποιώντας τον τελεστή

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

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

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

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

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

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 2η σειρά ασκήσεων. Κοζάνη, 19 Οκτωβρίου 2007. Δεν ξεχνάμε τα εξής: Case Sensitive!!! Άλλα τα κεφαλαία και άλλα τα μικρά! Με ο,τι τρόπο γράψουμε

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

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

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

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

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

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

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

1.5 ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ μικρόκοσμου «Προγραμματισμός Η/Υ»

1.5 ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ μικρόκοσμου «Προγραμματισμός Η/Υ» 1.5 ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ μικρόκοσμου «Προγραμματισμός Η/Υ» 1. Πήγαινε στο μενού Αρχείο και επίλεξε Άνοιγμα. Άνοιξε το αρχείο sample.x. Ανοίγουν δυο παράθυρα. Παρατήρησε τα ονόματα τους: Πηγαίος κώδικας... και

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Τέταρτη Διάλεξη ΠΙΝΑΚΕΣ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Έστω ότι έχουμε το εξής πρόβλημα: εισάγουμε μια σειρά αριθμών από το πληκτρολόγιο και θέλουμε να βρούμε τον μέγιστο και τον ελάχιστο. Γενικά,

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

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

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

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

Η βασική συνάρτηση προγράμματος main()

Η βασική συνάρτηση προγράμματος main() Η βασική συνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Η συνάρτηση είναι ένα υποπρόγραμμα

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ερωτήσεις Επανάληψης

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ερωτήσεις Επανάληψης Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ερωτήσεις Επανάληψης Α. Ερωτήσεις Στο τέλος δίνονται υποδείξεις για την απάντηση μερικών ερωτήσεων. 01 Ερώτηση: Στις παρακάτω εντολές τι πρόβλημα υπάρχει;

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 3ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΕΚΤΥΠΩΣΗ ΚΕΙΜΕΝΟΥ Ένα κείμενο μπορεί να εκχωρηθεί ως τιμή μιας μεταβλητής

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

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

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

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

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

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

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ασκήσεις Επανάληψης

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ασκήσεις Επανάληψης Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ασκήσεις Επανάληψης Άσκηση 1 Το παρακάτω πρόγραμμα περιέχει μια δομή επανάληψης τύπου for. Να ξαναγραφεί ώστε να έχει ακριβώς την ίδια λειτουργία, χρησιμοποιώντας

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

lab7 PASS -Δεν έχεις καθόλου σχόλια! Διάβασε το φυλλάδιο. PASS -Πολύ καλή εργασία µε σωστά και επεξηγηµατικά σχόλια. -Πρόσεξε την στοίχισή σου!

lab7 PASS -Δεν έχεις καθόλου σχόλια! Διάβασε το φυλλάδιο. PASS -Πολύ καλή εργασία µε σωστά και επεξηγηµατικά σχόλια. -Πρόσεξε την στοίχισή σου! AEM 0001 0002 0003 COMMENTS -Δεν έχεις καθόλου σχόλια! Διάβασε το φυλλάδιο. -Πολύ καλή εργασία µε σωστά και επεξηγηµατικά σχόλια. -Πρόσεξε την στοίχισή σου! -Τυπώνεις 1,2,3 αντί για AVAILABLE, RESERVED,

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 8: Πολυδιάστατοι Πίνακες και Δυναμική Δέσμευση Μνήμης

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις

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

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία Mεταγλωττιστές 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex Σκοπός: Το μάθημα αυτό αναφέρεται: στις κανονικές εκφράσεις στην δομή και το περιεχόμενο του αρχείου-εισόδου του flex Γενικά Θεωρία Κατά την

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 8η εβδομάδα. Κοζάνη, 26 Νοεμβρίου 2008. Οι ασκήσεις αυτής της σειράς βασίζονται σε παραδείγματα από το βιβλίο του Β. Σεφερίδη C για αρχάριους

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

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

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

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 7: Δομές Επανάληψης - Αναγνωσιμότητα 19/10/2015 Επανάληψη εκτέλεσης: while 2 while () lexpr true false body Όσο η λογική συνθήκη επανάληψης lexpr αποτιμάται

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

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

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 4η σειρά ασκήσεων. Κοζάνη, 1 Νοεμβρίου 2007. Πρόγραμμα p4-1 (μεταγλώττιση και εκτέλεση) Πολύ απλό το πρώτο, για προθέρμανση! Πριν πατήσετε enter

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Χαρακτήρες Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι Χαρακτήρες - Εισαγωγή Έως τώρα έχουμε κατά κύριο λόγο χρησιμοποιήσει τους αριθμητικούς τύπους

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

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2 Οικονόμου Βαγγέλησ Διάλεξη Νο 2 Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2 1 Η έννοια τησ μεταβλητήσ έδωςε λύςη ςτο πρόβλημα τησ αναφοράσ ςτην κύρια μνήμη του υπολογιςτή. Οι γλώςςεσ προγραμματιςμού υποςτηρίζουν

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

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

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

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εντολές ελέγχου ροής προγράμματος (if-else & switch) Η εντολή if-else Η εντολή if-else υπάρχει σχεδόν σε όλες τις γλώσσες προγραμματισμού. Χρησιμοποιείται για τον έλεγχο της

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

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Φτάσαμε σιγά σιγά στο τέλος του βιβλίου. Αντί για κάποιον επίλογο σκέφτηκα να συλλέξω κάποια πράγματα που θα ήθελα να πω σε κάποιον ο οποίος αρχίζει

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

Περιεχόμενα. Πρόλογος... 17

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για

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

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

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

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

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

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

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

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

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

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

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Εργαστήριο 4: 4.1 Η Δομή Ελέγχου if Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Γενική Μορφή: Παρατηρήσεις:

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

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Έως τώρα σε ένα πρόγραμμα έχουμε μάθει να εισάγουμε δεδομένα από το πληκτρολόγιο χρησιμοποιώντας την συνάρτηση scanf() και να εκτυπώνουμε δεδομένα

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

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

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο Στο φετινό εργαστήριο του μαθήματος, έχετε τη δυνατότητα να δουλέψετε σε 2 περιβάλλοντα. Ένα σε περιβάλλον UNIX μέσω απομακρυσμένης σύνδεσης σε

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

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα Απλά Προγράμματα Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα Οι Βασικοί κανόνες Κατανόηση

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

1. Τα τμήματα της επιφάνειας εργασίας των Windows

1. Τα τμήματα της επιφάνειας εργασίας των Windows 1. Τα τμήματα της επιφάνειας εργασίας των Windows Εικονίδια συντομεύσεων (αρχείου-φακέλου) Εικονίδια Ανενεργά Ενεργό Επιφάνεια (αρχείου-φακέλου) παράθυρα παράθυρο εργασίας Γραμμή μενού Γραμμή εργαλείων

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Γλώσσα Προγραμματισμού C

Γλώσσα Προγραμματισμού C Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas

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

scanf() scanf() stdin scanf() printf() int float double %lf float

scanf() scanf() stdin scanf() printf() int float double %lf float Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση

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

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2 Εισαγωγή στον προγραμματισμό Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2 Δομή Προγράμματος Όλα τα προγράμματα που γράψαμε έχουν λίγο πολύ την ακόλουθη μορφή: Κάποιος κώδικας εδώ main( ) {

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

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

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

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

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων Απλά Προγράμματα Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα Οι Βασικοί κανόνες Κατανόηση

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

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η 53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η ΠΑΓΚΡΑΤΙ: Φιλολάου & Εκφαντίδου 26 : 210/76.01.470 210/76.00.179 ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς

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