Άρθρο #1: Γνωριμία με τη C

Επισκόπηση προηγούμενης Θ.Ενότητας Επισκόπηση επόμενης Θ.Ενότητας Πήγαινε κάτω

Άρθρο #1: Γνωριμία με τη C

Δημοσίευση από GReaper Την / Το Κυρ Οκτ 02, 2011 11:49 am

Περιεκτική Ιστορία:
Η αρχική ανάπτυξη της C προέκυψε στα εργαστήρια Bell των AT&T μεταξύ 1969-1973. Ονομάστηκε "C" επειδή τα χαρακτηριστικά της προήλθαν από μια παλαιότερη γλώσσα ονόματι "B", η οποία ήταν μια απλουστευμένη μορφή της BCPL.
Αυτά τα άρθρα θα χρησιμοποιούν κυρίως την έκδοση "ANSI C"( "C89", "C90" ή "ISO/IEC 9899:1990" ). Αν χρησιμοποιούνται χαρακτηριστικά άλλης έκδοσης θα αναφέρονται ειδικά.

Η C είναι μια διαδικαστική γλώσσα προγραμματισμού η οποία χαρακτηρίζεται από απλότητα στην έκφραση, μια πλούσια συλλογή τελεστών και τύπων δεδομένων και ( το πιο γνωστό απ' όλα ) σχεδόν απόλυτη εμπιστοσύνη στον προγραμματιστή. Το τελευταίο την κάνει εξαιρετικά ευέλικτη αλλά και εκνευριστικά επιρρεπή στα λάθη ( και συντακτικά, αλλά κυρίως λογικά ( bugs ) ).
Η C είναι μια κυρίως(?) μεταγλωττίσημη γλώσσα, δηλαδή ο πηγαίος κώδικας( source code ) δίνεται σε ένα πρόγραμμα που λέγεται μεταγλωττιστής( compiler ), το οποίο τον μετατρέπει σε γλώσσα μηχανής, την μόνη αναγνωρίσιμη γλώσσα από μεριάς υπολογιστή. Ακόμα δεν χρειάζεται να αναφέρω πως ακριβώς παράγεται ένα εκτελέσιμο...
Θα χρειαστεί να βρείτε ένα IDE( Intergrated Development Environment ). Αυτά τα περιβάλλοντα, όπως λέει το όνομά τους, περιέχουν πάνω από ένα εργαλείο ανάπτυξης. Συνήθως περιέχουν Μεταγλωττιστή, Αποσφαλματωτή, Συντάκτη με χρωματισμό κειμένου, τις standard βιβλιοθήκες της γλώσσας και πολλά βοηθήματα.
Επειδή είμαι πολύ του free Very Happy , προτείνω Code::Blocks με MinGW( για Windows ).Ορίστε το site τους ( αν δε σας αρέσει η έκδοση της MinGW που έχει μαζί του, μπορείτε να κατεβάσετε μια νεώτερη έκδοση και να ρυθμίσετε το CodeBlocks ).

Λοιπόν, τέρμα τα λόγια, ας δούμε ένα απλό πρώτο προγραμματάκι:
Κώδικας:
#include <stdio.h>

/* Απλό και παραδοσιακό πρόγραμμα γνωριμίας */
int main(void)
{
    printf("Hello World!");
    getchar();

    return 0;
}
Ας δούμε τη κάνει κάθε γραμμή ξεχωριστά:

*) #include <stdio.h>
Η standard συναρτήσεις και διαδικασίες της C είναι οργανωμένες σε αρχεία κεφαλίδες( header files ), τα οποία περιέχουν τα πρωτότυπα( ή δηλώσεις ) των συναρτήσεων/διαδικασιών αυτών. Εδώ περιλαμβάνω το αρχείο "stdio.h", το οποίο περιέχει συναρτήσεις της standard βιβλιοθήκης για είσοδο και έξοδο ( κονσόλα ), μέσα στο πρόγραμμά μου. "#include" είναι μια εντολή προεπεξεργασίας, η οποία πραγματοποιείται πριν απ' τη μεταγλώττιση.

*) /* Απλό και παραδοσιακό πρόγραμμα γνωριμίας */
Η πιο συνηθισμένη μορφή σχολίου στην C. Οτιδήποτε ανάμεσα στα "/*" και "*/" αγνοείται πλήρως απ' τον μεταγλωττιστή. Να θυμάστε ότι αυτά τα σχόλια δεν εμφωλεύουν.
π.χ. "/*/* Διπλό σχόλιο */*/" είναι λάθος, επειδή το τελευταίο "*/" δεν λαμβάνεται ως σχόλιο!!.

*) int main(void)
Αυτή είναι η συνάρτηση από τη οποία το πρόγραμμά μας αρχίζει την εκτέλεσή του. Το όνομά της "main" είναι υποχρεωτικό, ενώ το "(void)" σημαίνει ότι δεν δέχεται καμία παράμετρο. Κάποιοι ίσως σας δείξουν αυτή τη μορφή "int main()" ή "void main()", αλλά να ξέρεται ότι ο τρόπος που δείχνω εγώ είναι ο σωστότερος. Δεν το λέω εγώ, αλλά η ίδια η ANSI C. Αυτή και μόνο αυτή η συνάρτηση μπορεί να υπάρξει και σαν "int main(int argc, char* argv[ ])", η οποία δέχεται σαν παραμέτρους τον αριθμό των λέξεων που περάστηκαν μέσω της γραμμής εντολών + 1, και τις λέξεις( η πρώτη είναι πάντα το όνομα του προγράμματος ).

*) {
Πάντα ο κώδικας συναρτήσεων στη C αρχίζει με αυτό το σύμβολο.

*) printf("Hello World!");
Εδώ καλείται η standard συνάρτηση της C, "printf", η οποία είναι πολύ χρήσιμη στην έξοδο δεδομένων μέσω της κονσόλας και έχει πολλές διαφορετικές χρήσεις. Εδώ της περνάμε σαν παράμετρο μια συμβολοσειρά( string Smile ), η οποία και εκτυπώνεται στη κονσόλα. Σημειώστε ότι σχεδόν όλες( αν όχι όλες ) η εκφράσεις στην C τελειώνουν με το χαρακτήρα του ελληνικού ερωτηματικού( ; ).

*) getchar();
Άλλη μια standard συνάρτηση, η οποία επιστρέφει έναν χαρακτήρα που εισήγαγε ο χρήστης στη κονσόλα. Ουσιαστικά εδώ περιμένει να πατηθεί το [Enter] ( οι επιστρεφόμενες τιμές των συναρτήσεων της C μπορούν να αγνοούνται ).

*) return 0;
Αναγκάζει την "main" να τερματίσει επιστρέφοντας 0 στο λειτουργικό σύστημα, το οποίο σχεδόν πάντα ερμηνεύεται ως επιτυχία.

*) }
Πάντα ο κώδικας συναρτήσεων στη C τελειώνει με αυτό το σύμβολο.

Αυτό ήταν. Αντιγράψτε το πρόγραμμα, μεταγλωττίστε το και τρέξτε το ( Το αρχείο να έχει επέκταση *.c ώστε να μεταγλωττιστεί σαν πρόγραμμα C ). Αλλάξτε το λίγο και δείτε τι διαφορετικό γίνεται. Αν σας βγάλει συντακτικά λάθη, κάνετε αναίρεση ή αντιγράψτε το ξανά και ξαναπροσπαθήστε μέχρι να νομίσετε ότι καταλάβατε πως λειτουργεί ( Αν μπορείτε βεβαίως, προσπαθήστε να ερμηνεύσετε τα λάθη που σας βγάζει ).

Αν νιώσετε πνευματική κόπωση κατά τη διάρκεια, μην ανησυχείσετε, είναι φυσικό! Wink Very Happy

avatar
GReaper
Admin

Αριθμός μηνυμάτων : 16
Ημερομηνία εγγραφής : 01/10/2011
Ηλικία : 25
Τόπος : Σπάρτη

http://procorn.forumgreek.com

Επιστροφή στην κορυφή Πήγαινε κάτω

Επισκόπηση προηγούμενης Θ.Ενότητας Επισκόπηση επόμενης Θ.Ενότητας Επιστροφή στην κορυφή


 
Δικαιώματα σας στην κατηγορία αυτή
Δεν μπορείτε να απαντήσετε στα Θέματα αυτής της Δ.Συζήτησης