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

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

Αρχές Προγραμματισμού (C). ...γράφοντας σωστά προγράμματα! (IIΙ)

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


Παρουσίαση με θέμα: "Αρχές Προγραμματισμού (C). ...γράφοντας σωστά προγράμματα! (IIΙ)"— Μεταγράφημα παρουσίασης:

1 Αρχές Προγραμματισμού (C)

2 ...γράφοντας σωστά προγράμματα! (IIΙ)

3 -3--3- Συχνά λάθη int n; scanf("%d”, n); αντί int n; scanf ("%d”, &n) : ------------------------------------------------------------------------- int n=1; double d = PI; printf(“%d %f\n”, d, n);

4 -4--4- Συχνά λάθη %f αντί για %lf για double με τη scanf ------------------------------------------------------------------------- int n,c; for (i=0; i<n; i++) c = c + 1; Αρχικοποιήσεις; ------------------------------------------------------------------------- Δουλέψτε βήμα-βήμα το πρόγραμμα. Ψάξτε για λάθη στο αμέσως προηγούμενο βήμα αν όλα ήταν καλά μέχρι πριν.

5 -5--5- Συχνά λάθη Αν βρείτε ένα λάθος, ψάξτε μήπως το έχετε επαναλάβει ------------------------------------------------------------------------- Χρησιμοποιείστε συναρτήσεις Ο έλεγχος μικρών συναρτήσεων βοηθά στον περιορισμό των λαθών γιατί έχετε μικρότερο όγκο κώδικα να ελέγξετε ------------------------------------------------------------------------- Δείξτε τον κώδικά σας σε συναδέλφους σας!

6 -6--6- Συχνά λάθη Χρησιμοποιείστε assertions ή εντολές ελέγχου /* check: test condition, print and die */ void check(char *s) { if (varl > var2) /* ή assert(var1>var2); */ { printf("%s: var1 %d var2 %d\n”, s, var1, var2); fflush(stdout); abort() ; /* signal abnormal termination */ } Ύποπτα σημεία: βρόγχοι, συναρτήσεις (περάσματα σωστών τιμών στις μεταβλητές

7 -7--7- Συχνά λάθη Χρησιμοποιείστε assertions ή εντολές ελέγχου πριν και μετά από μέρη προγράμματος που υποπτεύεστε ότι δεν δουλεύουν σωστά. check("before suspect"); /*... suspect code... */ check("after suspect") ; ------------------------------------------------------------------------- Γράψτε χρήσιμες πληροφορίες για την εκτέλεση του προγράμματος σε ένα αρχείο. Δεν είναι πάντα εύκολο να εμφανίζετε τις πληροφορίες αυτές απ’ευθείας στην οθόνη αν είναι πολλές.

8 -8--8- Συχνά λάθη Χρησιμοποιείστε assertions ή εντολές ελέγχου πριν και μετά από μέρη προγράμματος που υποπτεύεστε ότι δεν δουλεύουν σωστά. ------------------------------------------------------------------------- Προσοχή στις προτεραιότητες! Καλύτερα να χρησιμοποιείτε πάντα παρενθέσεις. if (x & 1 == 0)... Πρώτα θα γίνει η σύγκριση 1==0

9 -9--9- Συχνά λάθη Προσοχή στις συνθήκες των if! x=4; if (x = 5) printf(“YES”) else printf(“NO”); Τυπώνει YES! To = κάνει ανάθεση! ------------------------------------------------------------------------- Προσοχή στους βρόγχους με κενό σώμα for (i=0; i<n; i++); { a[i] = 0; printf(“%d ”, i); } Το ερωτηματικό εδώ κάνει το βρόγχο να έχει κενό σώμα!

10 -10- Συχνά λάθη Προσοχή στο πώς καλείτε συναρτήσεις τις C! Aν δεν θυμάστε τη σειρά, να συμβουλεύεστε πάντα ένα βιβλίο. memset(p, 1, n); /* τοποθετεί n άσσους στο p */ Αν από λάθος γράψετε memset(p, n, 1); τότε θα τοποθετήσει μια φορά την τιμή του n στο p. ------------------------------------------------------------------------- Μην ξεχνάτε να κλείνεται τα αρχεία όταν τελειώνετε την επεξεργασία τους fclose(...)

11 -11- Συχνά λάθη Ποτέ μην επιστρέφετε διευθύνσεις μνήμης τοπικών μεταβλητών! char *msg(int n, char *s) { char buf[100]; sprintf(buf, “error %d: %s\n”, n, s); return buf; } Η διεύθυνση τοπικής μεταβλητής είναι άκυρη όταν τελειώσει η εκτέλεση της συνάρτησης! Χρησιμοποιείστε malloc για το buf ή δηλώστε τη ως static: static char buf[100];

12 -12- Συχνά λάθη Προσοχή στις κλήσεις free για δείκτες! for (p = listp ; p != NULL; p = p->next) free (p) ; /* ΛΑΘΟΣ */ ------------------------------------------------------------------------- Προσοχή στην fopen όταν είστε σε περιβάλλον windows!


Κατέβασμα ppt "Αρχές Προγραμματισμού (C). ...γράφοντας σωστά προγράμματα! (IIΙ)"

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


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