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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Το αλφαριθμητικό (string)
Advertisements

Προγραμματισμός Ι Προτάσεις ελέγχου ροής Ο πιο συνηθισμένος τρόπος εκτέλεσης είναι ο ακολουθιακός: δύο ή περισσότερες προτάσεις βρίσκονται διατεταγμένες.
Ένα απλό πρόγραμμα σε C /* ********************************************* * This program prints out the sentence “This is a test.” * *********************************************
ΜΑΘΗΜΑ: ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Ιουνίου 2014Δευτέρα, 30 Ιουνίου 2014Δευτέρα, 30 Ιουνίου 2014Δευτέρα, 30 Ιουνίου 2014Τμ.
Εκκίνηση του MATLAB.
Μάθημα 2 Εισαγωγή στην Επιστήμη των Η/Υ ΙΙ
Εργαστήριο Λειτουργικών Συστημάτων Φροντιστήριο 2– Εισαγωγή στη Bash Ντίρλης Νικόλαος.
Αναδρομη και static Γραψετε την συναρτηση sequence_size που διαβαζει μια απροσδιοριστου μεγεθους σειρας και υπολογιζει και τυπωνει το μεγεθος της. int.
Γλώσσα Προγραμματισμού
Τύποι πραγματικών αριθμών
Εντολες Επιλογης (Selection)
Εισαγωγή στο MATLAB.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Συναρτήσεις Κληση/Επιστροφη Παραμετροι
Βρόχος με συνθήκη εισόδου στη C, οδηγούμενος από μετρητή: for
ΗΥ-150 Προγραμματισμός Εντολές Ελέγχου Ροής.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΗΜΥ 100 Εισαγωγή στην Τεχνολογία 7 Νοεμβρίου 2008 Στυλιανή Πετρούδη ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ.
ΜΕΤΑΒΛΗΤΕΣ - ΤΥΠΟΙ ΜΑΘΗΜΑ 3.
ΕΠΑΝΑΛΗΨΗΕΠΑΝΑΛΗΨΗ ΠΡΟΓΡΑΜΜΑΤΑ. ΠΡΟΓΡΑΜΜΑ 1 ΕΞΗΓΗΣΤΕ ΤΙ ΕΞΟΔΟ ΠΑΡΑΓΕΙ ΤΟ ΠΑΡΑΚΑΤΩ ΠΡΟΓΡΑΜΜΑ #include int main() { char ch; int i; float fl; printf("dose.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Ολυμπιάδα Πληροφορικής
Ολυμπιάδα Πληροφορικής
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΙΑΔΙΚΑΣΤΙΚΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ – ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
Άσκηση 1. Θεωρούμε το ακόλουθο κομμάτι κώδικα int i,j; double result, a[110][4]; for(i=0; i
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αρχεία.
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Εντολές Ελέγχου Ροής.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
Μετατροπή Εκφράσεων σε C
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Ξενοφών Ζαμπούλης ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Επανάληψη.
Διαφάνειες παρουσίασης #2
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
Εντολές Επιλογής και Αποφάσεων
2/28/00epl-1311 Παραδειγματα Aλγοριθμων Αριθμος λεξεων που διαβαστηκαν απο εισοδο Εκτυπωση περιφερειας τετραγωνων με * Υπολογισμος exp(x,n) = 1 + x/1!
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Αρχεία.
ΘΠ06 - Μεταγλωττιστές Ενδιάμεσος Κώδικας – Μεταφραστικά Σχήματα.
Επιστημονικός Υπολογισμός Ι Πρώτο Εργαστήριο Εισαγωγή στο matlab 15 Οκτωβρίου 2010 Γιώργος Δρακόπουλος ΤΜΗΥΠ.
ΗΥ150 – ΠρογραμματισμόςΞ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Αρχεία.
Δημιουργία προγράμματος ερωτηματολογίου Πολλαπλής Επιλογής Α. Σχεδίαση Φόρμας.
ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 1 getchar() /* char_count.c A program to count characters of input. */ main() { int c ; int count = 0; while.
ΗΥ150 – ΠρογραμματισμόςΞενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
Βασικά στοιχεία της Java
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις (μέρος δεύτερο) και Μεταβλητές.
Κεφάλαιο 3 Τύποι Δεδομένων - Τελεστές. Πρωτογενείς τύποι δεδομένων: int, float, double, chars ΤύποςΌνομαΜέγεθος byte 8-bit signed, short 16-bit.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Προγραμματισμός ΗΥ Ενότητα 2: Συναρτήσεις Εισόδου ⁄ Εξόδου. Διδάσκων: Ηλίας Κ Σάββας, Αναπληρωτής Καθηγητής.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ «Εισαγωγή στον οντοκεντρικό προγραμματισμό (βασική εισαγωγή στο περιβάλλον εργασίας)» Ρουσσάκης Ιωάννης, ΤΕΙ Κρήτης,
Αντικειμενοστραφής Προγραμματισμός Ι
Βρόχος Do … Loop Σκοπός Μαθήματος Χρήση Do… Loop για την εκτέλεση μιας ομάδας εντολών μέχρι να εκπληρωθεί μια συγκεκριμένη συνθήκη.
Χαρακτήρες και συμβολοσειρές
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Συναρτήσεις.
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ Η εντολή if if ( παράσταση) εντολή επόμενη εντολή.
for (παράσταση_1; παράσταση_2; παράσταση_3)
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
Ταξινόμηση Ορισμός: Δοθέντων των στοιχείων a1,a2,… ,an η ταξινόμηση συνίσταται στην αντιμετάθεση της θέσης των στοιχείων ώστε να τοποθετηθούν με μια νέα.
Τεχνολογία και Προγραμματισμός Υπολογιστών
ΣΥΝΑΡΤΗΣΕΙΣ (Functions)
ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΤΗ C
Μανασσάκης Βασίλης Καθηγητής Πληροφορικής
ΜΟΡΦΕΣ ΔΟΜΩΝ ΕΠΑΝΑΛΗΨΗΣ
Μανασσάκης Βασίλης Καθηγητής Πληροφορικής
ΗΥ-150 Προγραμματισμός Αναδρομή (1/2).
Μεταγράφημα παρουσίασης:

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

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

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

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

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

Συχνά λάθη Χρησιμοποιείστε 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 */ } Ύποπτα σημεία: βρόγχοι, συναρτήσεις (περάσματα σωστών τιμών στις μεταβλητές

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

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

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

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