C/Μάθημα 1ο
Από Βικιεπιστήμιο
| Αρχή | Περιεχόμενα | Επόμενη Ενότητα |
Αυτό το μάθημα είναι το πρώτο μιας σειράς μαθημάτων που θα εμβαθύνουν στην ψυχαγωγία με την γλώσσα προγραμματισμού C. Στα πρώτα μαθήματα, θα παρουσιαστεί η γλώσσα C και μερικές βασικές γνώσεις για τους αρχάριους σε αυτό τον κόσμο. Με αυτό τον τρόπο οι άπειροι χρήστες θα μπορέσουν να ακολουθήσουν τα μαθήματα, και να αποκτήσουν γνώσεις ενός επιπέδου που θα τους επιτρέπει να γράψουν και να καταλάβουν απλές εφαρμογές C. Όταν τα βασικά της γλώσσας επεξηγηθούν, θα σας παρουσιάσουμε νέες έννοιες, τεχνικές και πιο προχωρημένες πρακτικές μέσω παραδειγμάτων.
Στην συνέχεια του μαθήματος θα διακρίνετε λέξεις στις οποίες μπορείτε να πατήσετε πάνω και σας οδηγούν στον ορισμό τους στην Βικιπαίδεια. Καλό θα ήταν να διαβάζετε αυτούς τους ορισμούς για να εξοικειωθείτε με την ορολογία και να γνωρίσετε τα βασικά της πληροφορικής. Έτσι θα σας είναι πιο εύκολη και η κατανόηση της C.
Πίνακας περιεχομένων |
[επεξεργασία] Χαρακτηριστικά της C
Η C είναι μια ιδιαίτερα δημοφιλής γλώσσα προγραμματισμού κυρίως για τον λιτό τρόπο σύνταξης και την ευκολία εκμάθησης της. Είναι γλώσσα μετρίου επιπέδου, ακολουθεί την φιλοσοφία του διαδικαστικού προγραμματισμού, και δεν προσφέρει δυνατότητες αντικειμενοστρέφειας. Παρόλα αυτά, ο απόλυτος έλεγχος που δίδεται στον προγραμματιστή σε συνδυασμό με την ευκολία χρήσης την καθιέρωσαν ως μια πολύ καλή γλώσσα προγραμματισμού.
Μέχρι σήμερα η C έχει χρησιμοποιηθεί και χρησιμοποιείται ακόμα για τον προγραμματισμό ευρέως φάσματος συστημάτων, όπως οι πυρήνες των Unix και Linux, αλλά και αμέτρητων εφαρμογών ανοικτού κώδικα. Αποτελεί μάλιστα βάση για πληθώρα άλλων γλωσσών προγραμματισμού, όπως οι επίσης γνωστές C++ και Java, γεγονός που καθιστά την C απαραίτητη για τον έμπειρο προγραμματιστή.
[επεξεργασία] Hello World
Ας περάσουμε στην πράξη. Το πιο απλό πρόγραμμα, και το εκ των πραγμάτων πρώτο παράδειγμα για κάθε γλώσσα προγραμματισμού είναι το περιβόητο hello world πρόγραμμα. Αυτό είναι μια εφαρμογή που ξεκινάει, δείχνει το μήνυμα 'Hello world', και τερματίζει.
Ο κώδικας εμφανίζεται παρακάτω με τις γραμμές του αριθμημένες. Την αρίθμηση θα την παραλείψετε όταν αντιγράψετε τον κώδικα.
1. // Hello World C Program 2. #include <stdio.h> 3. 4. int main() 5. { 6. printf("Hello World\n"); 7. return 0; 8. }
Ας ρίξουμε μια ματιά στον κώδικα:
- Γραμμή 1η. Είναι ένα σχόλιο που περιγράφει σύντομα τι κάνει το πρόγραμμα. Τα σχόλια αγνοούνται από τον μεταγλωττιστή και δεν επηρεάζουν καθόλου την εκτέλεση, αλλά τοποθετούνται για να είναι πιο εύκολη η κατανόηση του προγράμματος.
- Γραμμή 2η. Γίνεται εισαγωγή του αρχείου επικεφαλίδας (header file) stdio.h (Standard Input/Output Header) το οποίο περιλαμβάνει τις βασικές συναρτήσεις εισόδου και εξόδου. Στην δική μας περίπτωση, το χρειαζόμαστε για να μπορέσουμε να καλέσουμε την συνάρτηση printf().
- Γραμμή 4η. Είναι το σημείο έναρξης κάθε προγράμματος. Η συνάρτηση main() εκτελείται πάντα πρώτη και γι' αυτό συχνά ονομάζεται Κεντρική συνάρτηση. Η main() ως συνάρτηση πρέπει να επιστρέφει ένα αποτέλεσμα, και επειδή βάλαμε int πριν το όνομά της, το αποτέλεσμα πρέπει να είναι ένας ακέραιος αριθμός.
- Γραμμή 5η. Αρχή μιας ομάδας εντολών μέχρι την γραμμή 8. Οι δύο αγκύλες περιέχουν όλες τις εντολές της main() ομαδοποιημένες.
- Γραμμή 6η. Καλείται η συνάρτηση printf(), με παράμετρο(argument) μια σειρά χαρακτήρων. Οι χαρακτήρες στην C τοποθετούνται ανάμεσα σε διπλά εισαγωγικά για να αναγνωρίζονται από τον μεταγλωττιστή. Το \n είναι ένας ειδικός χαρακτήρας που προκαλεί την αλλαγή γραμμής.
- Γραμμή 7η. Τερματίζεται η main(), και επιστρέφεται το 0 (μηδέν) που είναι ακέραιος αριθμός (int).
[επεξεργασία] Σημειώσεις
- Ο παραπάνω κώδικας ονομάζεται πηγαίος (source), ενώ το αρχείο που τον περιέχει ονομάζεται πηγαίο αρχείο.
- Προσέξτε πως κάθε εντολή έχει ένα ελληνικό ερωτηματικό στο τέλος. Αυτό το ερωτηματικό τερματίζει την εντολή που γράφεται πριν από αυτό, και τοποθετείται για να αντιληφθεί ο μεταγλωττιστής το τέλος της. Δεν θα είναι λίγες οι φορές που θα ξεχάσετε να το τοποθετήσετε στο τέλος των εντολών με αποτέλεσμα να μην τρέχει το πρόγραμμά σας.
- Η C κάνει διάκριση μικρών-κεφαλαίων, είναι δηλαδή μια Case Sensitive γλώσσα, και καλό θα ήταν να συνηθίσετε να γράφετε πάντα με μικρά. Γράφοντας κεφαλαία ενδέχεται να παρουσιαστεί λάθος.
- Η stdio.h είναι στην ουσία μια βιβλιοθήκη που περιέχει ορισμούς(declarations) και υλοποιήσεις(implementations) συναρτήσεων. Περιέχονται σ' αυτήν συναρτήσεις όπως η printf(), η scanf() και πολλές άλλες. Η C προσφέρει πολλές διαφορετικές βιβλιοθήκες που περιέχουν έτοιμες συναρτήσεις πολλών λειτουργιών. Φροντίζουμε όμως σε κάθε πρόγραμμα να συμπεριλαμβάνουμε μόνο τις απαραίτητες βιβλιοθήκες.
- Αν τροποποιήσετε τον πηγαίο κώδικα τότε πριν κάνετε μεταγλώττιση πρέπει να κάνετε ξανά Αποθήκευση.
- Τέλος, τα { και } αποκαλούνται συχνά αγκιστράκια και τα " αποκαλούνται αυτάκια.
[επεξεργασία] Μεταγλώττιση και Εκτέλεση
Στα πλαίσια αυτού του μαθήματος θεωρούμε δεδομένη την εξοικείωσή σας με το λειτουργικό σύστημα που χρησιμοποιήτε. Ως εκ τούτου δεν θα αναφερθούμε λεπτομερώς στην πλοήγηση μεταξύ καταλόγων και την δημιουργία ή επεξεργασία αρχείων. Θα καλύψουμε πλήρως μόνο τον τρόπο μεταγλώττισης ενός προγράμματος C και την εκτέλεσή του.
Αρχικά θα πρέπει να δημιουργήσετε ένα αρχείο με κατάληξη .c, για παράδειγμα hello.c. Στο αρχείο αυτό γράφετε ή κάνετε επικόλληση τον κώδικα που παραθέσαμε πιο πάνω και μετά Αποθήκευση. Έπειτα πρέπει να το μεταγλωττίσετε ώστε να μπορεί να εκτελεστεί. Για να μετατραπεί ο κώδικας σε ένα εκτελέσιμο πρόγραμμα χρησιμοποιούμε έναν μεταγλωττιστή (compiler) και μετά έναν συνδετή (linker). Επειδή σήμερα σχεδόν όλοι οι compilers ενσωματώνουν και έναν linker έχει επικρατήσει όλη η διαδικασία να χαρακτηρίζετε μεταγλώττιση (compilation).
[επεξεργασία] Μεταγλώττιση σε Linux
Σε περιβάλλον Linux προτείνουμε την χρήση του compiler-linker gcc. Μπορούμε να τον κατεβάσουμε και να τον εγκαταστήσουμε με την ακόλουθη εντολή (για διανομές βασισμένες στο debian)
Αφού ολοκληρωθεί η εγκατάσταση, ανοίγουμε ένα τερματικό και αφού μεταβούμε στον κατάλογο όπου υπάρχει το πηγαίο αρχείο, η μεταγλώττιση επιτυγχάνετε με την εντολή
που θα καλέσει τον GNU C Compiler (gcc), να μεταγλωττίσει το αρχείο, και να το εξάγει (-ο) σε ένα εκτελέσιμο.
Εφόσον δεν υπάρχει κάποιο λάθος, και ολοκληρωθεί επιτυχώς η μεταγλώττιση τότε με την εντολή
εκτελείται το πρόγραμμα και βλέπουμε τι εμφανίζει στο τερματικό.
[επεξεργασία] Μεταγλώττιση σε Windows
Σε περιβάλλον Windows, προτείνουμε τον Turbo C compiler (για συντομία tc). Όταν ολοκληρωθεί η λήψη του θα έχουμε ένα συμπιεσμένο αρχείο tc201.zip, που περιέχει μέσα 3 φακέλους, Disk1, Disk2, Disk3. Αποσυμπιέζουμε τα περιεχόμενα αυτών τον φακέλων σε ένα φάκελο, και κατόπιν τρέχουμε το αρχείο INSTALL.EXE. Κατά την εγκατάσταση ακολουθούμε τις οδηγίες, και όταν ερωτηθούμε για το οδηγό απ'όπου θα χρειαστούμε τα αρχεία πατάμε το αρχικό γράμμα του σκληρού μας δίσκου (πιθανότατα C). Στην επιλογή Enter the source path πιθανότατα η προεπιλογή θα είναι σωστή, αφού τα αρχεία θα υπάρχουν στον προσωρινό φάκελο που δείχνει. Τέλος επιλέγουμε το Install Turbo C on a Hard Drive. Ο φάκελος στον οποίο το εγκαταστήσαμε εμείς είναι C:\TC αλλά έχετε την ευχέρεια να χρησιμοποιήσετε οποιονδήποτε.
Για να ανοίξετε τον TC, διπλοπατήστε το αρχείο TC.exe . Θα ανοίξει ένα μπλε παράθυρο, με προεπιλεμγένο το μενού File. Πατάμε το ESC και ο κέρσορας κατευθύνεται στον επεξεργαστή. Εκεί μπορούμε να γράψουμε τον κώδικά μας. Ο συγκεκριμένος επεξεργαστής είναι μάλλον παλιός, και για αυτό σας συνιστούμε να χρησιμοποιήσετε ως επεξεργαστή το notepad++ και απλά τα αρχεία που φτιάχνετε τα ανοίγετε μετά με τον TC και τα μεταγλωτίζετε. Για την ώρα όμως δοκιμάστε να γράψετε το Hello World, κατόπιν πατήστε την συντόμευση ALT+C, για να επιλέξετε το μενού Compile, και από εκεί επιλέξτε το Make exe file. Η προεπιλογή είναι να αποθηκευτεί με το όνομα noname.exe, στον ίδιο φάκελο του TC.
Τέλος δεν έχουμε παρά να διπλοπατήσουμε το αρχείο μας. Αν όλα έγιναν σωστά, θα ανοίξει ένα παράθυρο γραμμής εντολών και θα κλείσει αμέσως. Μην ανησυχείτε, απλά εκτέλεσε την εντολή που του δώσαμε και έκλεισε. Αν θέλετε προσθέστε πριν την εντολή return 0; την εντολή getch();. Αυτή η εντολή απλά περιμένει το πάτημα ενός κουμπιού από το πληκτρολόγιο και είναι χρήσιμη όταν θέλετε το πρόγραμμά σας να περιμένει. Για να βγείτε από τον TC πατήστε την συντόμευση ALT+X .
Μόλις εκτελέσατε το πρώτο σας πρόγραμμα! Καλώς ήρθατε.
[επεξεργασία] Ασκήσεις
- Μεταγλωττίστε και εκτελέστε τον παραπάνω κώδικα.
- Τροποποιήστε τον κώδικα ούτως ώστε να εμφανίσει το όνομά σας.
- Αφαιρέστε το σχόλιο από τον κώδικά σας, δείτε αν το πρόγραμμα τρέχει με τον ίδιο τρόπο.
| Αρχή | Περιεχόμενα | Επόμενη Ενότητα |