Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Επιπλέον στοιχεία της C.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Επιπλέον στοιχεία της C."— Μεταγράφημα παρουσίασης:

1 ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Επιπλέον στοιχεία της C

2 ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 2 Πρόγραμμα σε Διαφορετικά Αρχεία Οργανώνουμε καλύτερα τον κώδικα Χρήσιμα σε μεγάλα προγράμματα – Παράδειγμα (human tracking) linker header files – #include “myheader.h” extern – extern void myfunction();

3 ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 3 header files – Παράδειγμα - “myAlloc.h” #include #define Pi 3.1415927 //Orismos Domwn typedef struct Level { int level; struct List *head; struct List *tail; struct Level *next; } Level; typedef struct List { float **image; int l,c; struct List *next; } List; //Orismos global metablhtwn int globalVariable; //prototypes sunarthsewn void **Alloc2D(int dimx, int dimx_bytes, int dimy, int dimy_bytes); int **FreeInt(int **I, int dimx); Level *AllocTree(int depth, int l, int c); Level *FreeTree(Level *root);

4 ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 4 Ορίσματα στη γραμμή εντολής int main(int argc, char *argv[]) { int number; if (argc != 2) { printf(“Usage:%s number\n”,argv[0]); exit(0); } number = atoi(argv[1]); … } int main(int argc, char *argv[]) argc: # Ορισμάτων argv: Ορίσματα Παράδειγμα > a.out 10 20 test.txt //argc = 4 //argv[0] = “a.out” //argv[1] = “10” //argv[2] = “20” //argv[3] = “test.txt”

5 ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 5 Χειρισμός Bits (1101) 2 = 1 x 2 3 + 1 x 2 2 + 0 x 2 1 + 1 x 2 0 = (13) 10 (A3F) 16 = 10 x 16 2 + 3 x 16 1 + 15 x 16 0 = (2623) 10

6 ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 6 Χειρισμός Bits Οι τελεστές των bits εφαρμόζονται σε κάθε bit των ακεραίων τιμών και είναι: ~ (ΣΥΜΠΛΗΡΩΜΑ) ~1 = 0 ~0 = 1 – ~(10011010) = (01100101) & (AND) 0 & 1 = 0 1 & 1 = 1 – (10010011) & (00111101) = (00010001) | (OR) 0 | 1 = 1 0 | 0 = 0 – (10010011) | (00111101) = (10111111) ^ (XOR) 1 ^ 1 = 0 1 ^ 0 = 1 – (10010011) ^ (00111101) = (10101110)

7 ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 7 Χειρισμός Bits Τελεστές ολίσθησης > – x << y ολισθαίνει το αριστερά κατά y θέσεις bit Τα νέα bits είναι 0 (10001010) << 2 = (00101000) int a = 1; int b; b = a << 2; /* assigns 4 to b */ a <<= 2; /* changes a to 4 */

8 ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 8 Χειρισμός Bits Τελεστές ολίσθησης > – x >> y ολισθαίνει το δεξιά κατά y θέσεις bit Αν το x είναι unsigned, τα νέα bits είναι 0 Αλλιώς, τα νέα bits διατηρούν το πρόσημο (ανάλογα με την αρχιτεκτονική της μηχανής) (10001010) >> 2 = (00100010) (unsigned) (10001010) >> 2 = (11100010) (signed – sign extension)

9 ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 9 Χειρισμός Bits - Παραδείγματα Πόσα bits του x είναι 1; int getBitsEqualToOne(int x) { int n; for (n = 0; x != 0; ++n) x &= x-1; return n; }

10 ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 10 Χειρισμός Bits - Παραδείγματα Μετατροπή σε “δυαδικό” string του ακεραίου n, και εκτύπωση του. void printBinary(int n) { int i; int size = 8 * sizeof(int); char *ps = (char *)malloc(size+1); for (i = size - 1; i >= 0; i--, n >>= 1) ps[i] = (01 & n) + '0'; ps[size] = '\0'; printf(“%s\n”,ps); free(ps); }


Κατέβασμα ppt "ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Επιπλέον στοιχεία της C."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google