Η γλώσσα προγραμματισμού C

Σχετικά έγγραφα
Διαδικασιακός Προγραμματισμός

Προγραµµατισµός Ι Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι Νικόλαος Δ. Τσελίκας

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Κεφάλαιο 1 Εισαγωγή στη C

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Εισαγωγή στον Προγραμματισμό

Γνωριμία με το μάθημα

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Βασικές Αρχές Προγραμματισμού

Εισαγωγή στην γλώσσα προγραμματισμού C

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Ενδεικτική περιγραφή μαθήματος

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα

Η γλώσσα προγραμματισμού C

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Προγραμματισμός I (Θ)

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Δομημένος Προγραμματισμός (ΤΛ1006)

Η γλώσσα προγραμματισμού C

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

Δομημένος Προγραμματισμός

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

Εισαγωγή στον Προγραμματισμό

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Κεφάλαιο : Εισαγωγή στην C: (Διαλέξεις 3-4)

Δομημένος Προγραμματισμός (ΤΛ1006)

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

Δομημένος Προγραμματισμός

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Ανάπτυξη και Σχεδίαση Λογισμικού

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Προγραμματισμό για ΗΜΥ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Δομημένος Προγραμματισμός (ΤΛ1006)

Κεφάλαιο 3.1, : Συναρτήσεις I. (Διάλεξη 11)

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην εξοικείωση με τη διαδικασία κατασκευής ενός Λεξικού Αναλυτή κάνοντας χρήση του lex.

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Διαδικαστικός Προγραμματισμός

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Εισαγωγή στη γλώσσα προγραμματισμού C++

Προγραμματισμός Υπολογιστών

Νικόλαος Μιχαλοδημητράκης Σημειώσεις C (Εργαστήριο) - 1 ο Μέρος 1 ο Μέρος Εισαγωγή Περιβάλλον εργασίας Βασικές Έννοιες

7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #3

Προγραμματισμός Η/Υ (ΤΛ2007 )

είκτες και Πίνακες (2)

Προγραμματισμός Υπολογιστών με C++

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Προγραμματισμός Η/Υ (ΤΛ2007 )

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Μεθόδων Επίλυσης Προβλημάτων

Τύποι Δεδομένων Είσοδος/Έξοδος

ιαδικαστικός Προγραμματισμός

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

Προγραμματισμός Η/Υ (ΤΛ2007 )

Δομημένος Προγραμματισμός (ΤΛ1006)

1. Εισαγωγή βασικά στοιχεία προγράμματος

1η+2η εβδομάδα. 1 Ιστορία της C. 5 Μαρτίου 2012

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Η γλώσσα προγραμματισμού C

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης

TMHMA TEXNΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛ/ΝΙΩΝ Προγραμματισμός Ι ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ , Α ΕΞΑΜΗΝΟ Βασίλης Μποζαντζής. Βασίλης Μποζαντζής

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C

Κεφάλαιο : Εισαγωγή στην C. ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Διαδικασιακός Προγραμματισμός

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

B. Ενσωμάτωση Ιθαγενών Μεθόδων

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Προγραμματισμός Ι (ΗΥ120)

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Ηλεκτρονικοί Υπολογιστές

Προγραμματισμός Η/Υ (ΤΛ2007 )

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

11. Συναρτήσεις (Μέρος Ι)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΕΞΕΤΑΣΗ IOYNIOY 2018 ΘΕΜΑΤΑ Α ΟΝΟΜΑΤΕΠΩΝΥΜΟ:... ΑΕΜ: ΕΞΑΜΗΝΟ:

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

Διδάσκων: Δημήτριος Βαρσάμης

Transcript:

Η γλώσσα προγραμματισμού C Εισαγωγή στη C

Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η γλώσσα ονομάστηκε C, διότι είναι αποτέλεσμα εργασίας για τη δημιουργία μιας άλλης παλαιότερης γλωσσας με όνομα Β (Ken Thompson). Ο βασικός σκοπός της δημιουργίας της γλώσσας C ήταν η χρήση της για την ανάπτυξη του λειτουργικού συστήματος UNIX (πρόδρομος του Linux, Android κλπ). Αναφέρεται συχνά σαν µια γλώσσα «μεσαίου επιπέδου». Είναι αρκετά διαδεδομένη και χρησιμοποιείται για τη δημιουργία λογισμικού τόσο για συστημάτων (system) όσο και για εφαρμογές (applications). 2

Η ιστορία της C 1969-1973: AT&T Bell Labs από Dennis Ritchie ως συνέχεια των BCPL, B (ανάπτυξη του UNIX). 1978: The C Programming Language K&R: Kernigham & Ritchie. Η πρώτη περιγραφή της C. 1983: Σύσταση ANSI Standardization Commitee X3J11. 1989: Οριστικοποίηση και αποδοχή ΑNSI/ISO Standard (ANSI C). 1990: Το ANSI C γίνεται διαθέσιμο στο κοινό. Από τότε όλοι οι C μεταγλωττιστές υποστηρίζουν το συγκεκριμένο πρότυπο. 1990-99: Αναθεώρηση του προτύπου (μικρές αλλαγές, C99). Σήμερα: όλοι οι μεταγλωττιστές της C συμμορφώνονται με το πρότυπο ANSI C και πολλοί με το C99. ANSI: American National Standards Institute 3

Χαρακτηριστικά της C (πλεονεκτήματα) Ευέλικτη (λίγοι περιορισμοί) και πολύ γρήγορη. Λιτή (λίγες δεσμευμένες λέξεις) και απλό συντακτικό. Κώδικας που μεταφέρεται και εκτελείται σε διαφορετικά συστήματα. διαβάζεται και συντηρείται εύκολα Υποστηρίζει τον δομημένο προγραμματισμό και την ύπαρξη και κλήση συναρτήσεων. Υποστηρίζει χαμηλού επιπέδου προγραμματισμό (ακόμα και την ενσωμάτωση assembly κώδικα). Παρέχει έτοιμες συναρτήσεις. Υπάρχει μεγάλη εγκατεστημένη βάση προγραμμάτων. Αποτελεί το πρώτο βήμα για την εκμάθηση κάποιας γλώσσας αντικειμενοστρεφούς προγραμματισμού. 4

Η διαδικασία μεταγλώττισης κώδικα C Συγγραφή και αποθήκευση αρχείου κώδικα (πηγαίο πρόγραμμα) Μεταγλώττιση του πηγαίου κώδικα Δημιουργία «αντικείμενου» κώδικα (object). Δεν είναι μεταγλωττισμένα τμήματα του κώδικα που περιέχονται στις βιβλιοθήκες. Σύνδεση του αντικείμενου κώδικα με τις βιβλιοθήκες (μεταγλώττιση του κώδικα των βιβλιοθηκών) Δημιουργία κώδικα μηχανής (εκτελέσιμο αρχείο) 5

Το "κλασσικό" πρώτο σας πρόγραμμα #include <stdio.h> main() printf(" Hello World \n"); #include <stdio.h> Οδηγία προς τον προεπεξεργαστή που πληροφορεί τον compiler της C, ότι θα γίνει χρήση της βιβλιοθήκης προγραμμάτων stdio.h Η stdio.h είναι μία προκαθορισμένη standard βιβλιοθήκη που αναφέρεται σε κώδικα έχεις να κάνει με την είσοδο και έξοδο δεδομένων (Standard Input Output). Βιβλιοθήκες όπως η stdio.h, περιέχουν προμεταγλωττισμένα υποπρογράμματα (συναρτήσεις) για συγκεκριμένο υπολογιστικό σύστημα και λειτουργικό σύστημα. 6

Η οδηγία #include Υπάρχει σχεδόν πάντα στην αρχή κάθε προγράμματος και περιλαμβάνει οδηγίες προς τον προεπεξεργαστή. Συνήθως, τα αρχεία που περιγράφονται στη οδηγία #include έχουν κατάληξη.h και ονομάζονται αρχεία επικεφαλίδας (header files). Η οδηγία #include ξεκινάει πάντα με το σύμβολο # και ΔΕΝ τελειώνει με ελληνικό ερωτηματικό (;) Κάποιος προγραμματιστής μπορεί να δημιουργήσει δικά του αρχεία επικεφαλίδας (βιβλιοθήκες συναρτήσεων) και να τα συμπεριλάβει (include) στο πρόγραμμά του. Σύνταξη: #include <standard header file> #include programmer s header file 7

Η συνάρτηση (main) #include <stdio.h> main() printf(" Hello World \n"); Το μικρότερο πρόγραμμα main() { Ένα πρόγραμμα της C ξεκινά με την κλήση της κύριας συνάρτησης με όνομα main (κύρια συνάρτηση). MONO MIA συνάρτηση main(). Στην C τα προγράμματα και τα υποπρογράμματα ονομάζονται συναρτήσεις. Το ζευγάρι των παρενθέσεων που ακολουθεί τη λέξη-κλειδί main, υποδεικνύει στον μεταφραστή (compiler) της γλώσσας προγραμματισμού C, ότι πρόκειται για μία συνάρτηση. Οι αγκύλες { και } δηλώνουν την αρχή και το τέλος του προγράμματος, αλλά και όπως θα δούμε στην συνέχεια την αρχή και το τέλος μιας ενότητας του προγράμματος. Οι εντολές της C πρέπει να περιέχονται μέσα σε άγκιστρα. 8

Η printf () #include <stdio.h> main() printf(" Hello World \n"); Στην πραγματικότητα δεν είναι εντολή αλλά συνάρτηση. Βρίσκεται προμεταγλωττισμένη στην βιβλιοθήκη stdio.h Η printf καλείται από την κύρια συνάρτηση main() για να εμφανίσει την σειρά των χαρακτήρων που βρίσκονται μέσα στα εισαγωγικά (δηλαδή το Hello Word). Το \n στο τέλος της εντολής printf (χαρακτήρας διαφυγής ή έλεγχου) δημιουργεί μία νέα γραμμή μετά την εμφάνιση του μηνύματος στην οθόνη. Οι εντολές τελειώνουν πάντα με το ελληνικό ερωτηματικό (;) 9

Ένα πρόγραμμα με σχόλια /* This is a comment ignored by the compiler */ #include <stdio.h> main() printf(" Hello World \n "); printf(" My name is: "); /* A comment is allowed to be continued on another line */ printf("ritsa \n"); // from Computeritsa // single line comments Τα σχόλια περικλείονται μεταξύ των χαρακτήρων /* (αρχή του σχολίου) και */ (τέλος σχολίου) μπορούμε να τα βάλουμε σε οποιοδήποτε σημείο του προγράμματος, αγνοούνται από τον μεταφραστή, και είναι δυνατόν να συνεχίζονται σε άλλη γραμμή. Σχόλια επίσης μπορούν να εισαχθούν στο πρόγραμμα με τη χρήση των // με τη διαφορά ότι αυτού του είδους σχόλια δεν επεκτείνονται σε 2η γραμμή. 10

Το πρώτο σας πρόγραμμα αλλιώς #include <stdio.h> main() printf(" Hello World \n"); #include <stdio.h> void main() printf(" Hello World \n"); return 0; #include <stdio.h> int main() printf(" Hello World \n"); return 0; #include <stdio.h> int main(void) printf(" Hello World \n"); return 0; int: η main() επιστρέφει έναν ακέραιο (integer) ο οποίος δημιουργείται από την return (άλλη συνάρτηση). void: η main() δεν δέχεται ορίσματα 11

Το πρώτο σας πρόγραμμα πολύ πιο αλλιώς #include <stdio.h> int main(void) { char *message[] = {"Hello ", "World"}; int i; for(i = 0; i < 2; ++i) printf("%s", message[i]); printf("\n"); getchar(); } 12

Και ένα πιο δύσκολο Υπολογισμός του 6 παραγοντικό (6!) /* program to find factorial of 6 */ #include <stdio.h> #define VALUE 6 6 είναι η τιμή που δίνουμε στη σταθερά VALUE με την οδηγία #define του προεπεξεργαστή int i, j; main() j=1; for (i=1; i<=value; i++) Χρησιμοποιούνται δύο μεταβλητές (η i και η j) Αρχική τιμή για τη μεταβλητή j Η for είναι μία από τις εντολές επανάληψης j=j*i; H j πολλαπλασιάζεται κατ' επανάληψη με τις τιμές του i printf("the factorial of %d is %d\n", VALUE, j); Τυπώνονται ο αριθμός 6 και το 6 παραγοντικό 13

Παρατηρήσεις Η C είναι μία γλώσσα προγραμματισμού που κάνει διάκριση μεταξύ πεζών και κεφαλαίων γραμμάτων (case sensitive). Άλλο το Printf() και άλλο το printf(). Ένα μήνυμα λάθους που εμφανίζει ένας μεταγλωττιστής μπορεί να μην συμβαίνει στη γραμμή που υποδεικνύει, αλλά στις αμέσως προηγούμενες γραμμές. Αν ο μεταγλωττιστής εμφανίζει πολλά μηνύματα λάθους, τότε προσπαθήστε να βρείτε και να διορθώσετε μόνο το πρώτο λάθος. Μια νέα μεταγλώττιση μπορεί να εμφανίσει λιγότερα ή και καθόλου λάθη. Ο μεταγλωττιστής μπορεί να εμφανίσει μόνο μηνύματα προειδοποίησης (warnings). Καλό είναι να μην τα αγνοείτε. Oι μεταγλωττιστές ανιχνεύουν λανθασμένη εφαρμογή των κανόνων της γλώσσας (π.χ. ορθογραφικά λάθη, συντακτικά λάθη, αδήλωτες μεταβλητές,...) και όχι λάθη λογικής που ενδέχεται να περιέχονται στο πρόγραμμά σας. 14

Στο εργαστήριο Εξοικείωση με το περιβάλλον εργασίας Bloodshed Dev-C++ Σύνταξη, αποθήκευση μεταγλώττιση και εκτέλεση των προγραμμάτων που παρουσιάστηκαν στη διάλεξη της θεωρίας. Δημιουργήστε κάποιο λάθος (π.χ. αφαίρεση ενός ερωτηματικού ή/και μια ανορθόγραφη εντολή/συνάρτηση) και μελετήστε τα μηνύματα λάθους του μεταγλωττιστή. Γράψτε ένα δικό σας πρόγραμμα το οποίο θα τυπώνει: (α) το όνομα και το επώνυμο σας στη ίδια γραμμή και (β) το τμήμα σας σε άλλη γραμμή Αναζητήστε στο διαδίκτυο πηγές και εγχειρίδια εκμάθησης για την γλώσσα προγραμματισμού C. 15

Μεταγλώττιση 16