Κυριακή 13 Φεβρουαρίου 2011

Δομημένος Προγραμματισμός Η/Υ σε C: Διαλέξεις 2 - 12 – Σύνταξη, Τελεστές και Τύποι Δεδομένων, Κωδικοποίηση Αλγορίθμων και Δομών Δεδομένων, Πρότυπη Βιβλιοθήκη της C

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΣΕ C
ΘΕΩΡΙΑ

2 - 12: Σύνταξη, Τελεστές και Τύποι Δεδομένων,
Κωδικοποίηση Αλγορίθμων και Δομών Δεδομένων,
Πρότυπη Βιβλιοθήκη της C
ΠΕΡΙΕΧΟΜΕΝΑ


  • ΣΗΜΕΙΩΣΕΙΣ
    • Διαλέξεις δομημένου προγραμματισμού Η/Υ σε C υπάρχουν εδώ (Πάνος Βασιλειάδης, από http://www.cs.uoi.gr/~cs423/)! Στην οθόνη η οποία θα εμφανιστεί, επιλέξτε «File» («Αρχείο» στα ελληνικά) και στη συνέχεια «Download» («Λήψη» στα ελληνικά).


  • ΕΠΙΣΗΜΑΝΣΕΙΣ
    • Διαφορές από τη μεταγενέστερη C++:
      • Στη C δεν υπάρχουν οι τύποι δεδομένων bool και String, ούτε οι δεσμευμένες λέξεις κλειδιά 'true' και 'false'. Η λογική αλήθεια συμβολίζεται με οποιονδήποτε θετικό ακέραιο αριθμό, ενώ το λογικό ψεύδος με την αριθμητική τιμή 0.
      • Στη C δεν υπάρχουν οι τελεστές new και delete (new[] και delete[] για πίνακες). Αντ' αυτών είναι διαθέσιμες μόνον οι συναρτήσεις malloc() και free().
      • Η C δεν υποστηρίζει πρότυπα (templates).
      • Η C δεν υποστηρίζει υπερφόρτωση τελεστών.
      • Η C δεν υποστηρίζει τη βιβλιοθήκη έτοιμων δομών δεδομένων STL.
      • Στη C η είσοδος / έξοδος δεδομένων γίνεται αποκλειστικά μέσω των συναρτήσεων της βιβλιοθήκης stdio.h [printf(), scanf(), fprintf(), fscanf(), puts(), fputs(), putc(), fputc(), getchar() κλπ], ενώ στη C++ συνήθως μέσω της βιβλιοθήκης iostream (cout, cin κλπ).
      • Στη C είναι απαραίτητη η προσθήκη της δεσμευμένης λέξης-κλειδί 'struct' αμέσως πριν από κάθε δήλωση στιγμιοτύπου μίας δομής.
      • Η C έχει μικρότερη σε μέγεθος και υπολογιστικές απαιτήσεις πρότυπη βιβλιοθήκη. Τα μεγάλα προγράμματα σε C συνήθως είναι ελαφρώς ταχύτερα και μεταγλωττίζονται ελαφρώς γρηγορότερα από αντίστοιχης κλίμακας προγράμματα σε C++.
      • Η C είναι αποκλειστικά γλώσσα διαδικαστικού και δομημένου προγραμματισμού, χωρίς φυσικά καμία υποστήριξη αντικειμενοστρέφειας (κλάσεις, αντικείμενα, κληρονομικότητα, πολυμορφισμός,  υποσκέλιση συναρτήσεων, υπερφόρτωση συναρτήσεων, διασυνδέσεις κλπ).
    • Στη C ένα αλφαριθμητικό μπορεί να αποθηκευτεί μόνο σε μονοδιάστατο πίνακα τύπου char (πίνακας χαρακτήρων) και τερματίζεται με τον ειδικό χαρακτήρα '\0' (ΟΧΙ '\n'), ο οποίος καταλαμβάνει μία θέση στον πίνακα.
    • Στη C το όνομα ενός πίνακα είναι δείκτης προς το πρώτο στοιχείο του ο οποίος δεν  δύναται να αλλάξει τιμή. Eπομένως  ο τύπος δεδομένων char[] ισοδυναμεί με τον const char*.
    • Στη C ο χειρισμός των αλφαριθμητικών (αντιγραφή, συνένωση, σύγκριση κλπ) γίνεται με τις συναρτήσεις της βιβλιοθήκης string.h [strcmp(), strcpy(), strcat(), strncat(), strncmp() κλπ], και ΟΧΙ με συνηθισμένους τελεστές οι οποίοι επενεργούν σε μεταβλητές βασικών τύπων δεδομένων (+, =, != κλπ).
    • Κάθε τύπος δεδομένων μπορεί να καταλαμβάνει διαφορετικό πλήθος byte, αναλόγως με την αρχιτεκτονική του υπολογιστή όπου εκτελείται το πρόγραμμα. Από το πόσα byte καταλαμβάνει κάθε μεταβλητή του εν λόγω τύπου όταν αποθηκεύεται στη μνήμη, εξαρτάται το εύρος τιμών που μπορούν να λάβουν οι μεταβλητές αυτού του τύπου κατά τον χρόνο εκτέλεσης.
    • Σε συνηθισμένα PC με επεξεργαστές των 32-bit, ισχύουν τα εξής:


          Τύπος     Byte  Bit                Εύρος τιμών


         short int    2   16          -32,768 -> +32,767          
unsigned short int    2   16                0 -> +65,535     
      unsigned int    4   16                0 -> +4,294,967,295
               int    4   32   -2,147,483,648 -> +2,147,483,647
          long int    4   32   -2,147,483,648 -> +2,147,483,647
       signed char    1    8             -128 -> +127
     unsigned char    1    8                0 -> +255
             float    4   32
            double    8   64
       long double   12   96  
    • Προτεραιότητα τελεστών.
    • Κανόνες αυτόματης ανάθεσης τύπου.

<Β>ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ C ΔΟΜΗΜΕΝΟΣ STRUCTURED PROGRAMMING PROCEDURAL C++ ΔΙΑΔΙΚΑΣΙΕΣ ΣΥΝΑΡΤΗΣΕΙΣ PROCEDURES FUNCTIONS


Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

Αφήστε το σχόλιό σας για την τρέχουσα ανάρτηση: