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



Σχετικά έγγραφα
Προγραμματισμός Υπολογιστών

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

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Συναρτήσεις και διαδικασίες

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

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

5 &6. Τύποι δεδομένων, τελεστές και

Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις. ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

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

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

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

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

Κεφάλαιο 2.5: Τύποι Δεδομένων, Τελεστές και Αριθμητικές Εκφράσεις. (Διαλέξεις 5-6)

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Περιεχόμενα. Κεφάλαιο 2.5: Τύποι Δεδομένων, Τελεστές και Αριθμητικές Εκφράσεις. (Διαλέξεις 5-6) Τύποι Δεδομένων. Τελεστές. Αριθμητικές εκφράσεις

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

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

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

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

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

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

Κεφάλαιο 6: Συναρτήσεις IΙΙ Αρθρωτός Προγραμματισμός. Δείκτες (Διάλεξη 14)

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

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

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

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

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

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

Εισαγωγή στον δομημένο προγραμματισμό

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

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

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

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

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

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

Εισαγωγή στην Πληροφορική

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

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

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

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7)

Κεφάλαιο 6: Συναρτήσεις IΙΙ Αρθρωτός Προγραμματισμός. (Διάλεξη 14) Παράδειγμα: Αλλαγή τιμής μεταβλητής μόνο τοπικά

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

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

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

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

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

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

Πρόβλημα 29 / σελίδα 28

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

scanf() scanf() stdin scanf() printf() int float double %lf float

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

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

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7) Είσοδος/ Έξοδος

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

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

Συναρτήσεις στη Visual Basic 6.0

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

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

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

Προγραμματισμός Ι. Θεματική ενότητα 3: Tελεστές. εκφράσεις

Εργαστήριο 08 Εισαγωγή στo Yacc

ΗΥ-150. Προγραμματισμός

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

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

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

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

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

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

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

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

Transcript:

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

Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο προγραμματιστής έχει τον πλήρη έλεγχο και ευθύνεται για τα σφάλματά του

Μεταγλώττιση και εκτέλεση προγραμμάτων

Hello, world! /* Αρχείο hello.c συνέχεια */ #include <stdio.h> #include genlib.h main() { printf( Hello, world.\n ); }

Σχόλια Κείμενο που περικλείεται από τους σημειωτές /* και */. Είναι δυνατόν να εκτείνονται σε πολλές γραμμές Παρέχουν εξηγήσεις για κάποιο τμήμα προγράμματος

Συμπεριλήψεις βιβλιοθηκών Οι γραμμές #include <stdio.h> #include genlib.h Δηλώνουν ότι το πρόγραμμα χρησιμοποιεί δύο βιβλιοθήκες: την πρότυπη βιβλιοθήκη εισόδου/εξόδου (standard input/output) μια γενική βιβλιοθήκη (general library) σχεδιασμένη ειδικά για τα προγράμματα του βιβλίου «Η Τέχνη και η Επιστήμη της C» του Eric Roberts το οποίο θα χρησιμοποιηθεί στο μάθημα. Οι πρότυπες βιβλιοθήκες (ANSI C) περικλείονται με < > ενώ οι επεκτάσεις με τα σύμβολα Τα αρχεία stdio.h και genlib.h ονομάζονται αρχεία επικεφαλίδας (header files).

Το κυρίως πρόγραμμα Το κυρίως πρόγραμμα αποτελείται από τις γραμμές: main() { printf( Hello, world.\n ); } Αυτές οι γραμμές ορίζουν μια συνάρτηση της C. Μια συνάρτηση είναι μια ακολουθία μεμονωμένων βημάτων του προγράμματος που έχουν ομαδοποιηθεί και στην οποία έχει δοθεί ένα όνομα. Τα βήματα που ακολουθεί η συνάρτηση παρατίθενται μέσα σε άγκιστρα {} και ονομάζονται εντολές. Ησυνάρτησηmain είναι μια ειδική συνάρτηση στη γλώσσα C. Κάθε φορά που εκτελείται ένα πρόγραμμα εκτελούνται οι εντολές που περικλείονται μέσα στη συνάρτηση main του προγράμματος. Στο τέλος κάθε εντολής βάζουμε ελληνικό ερωτηματικό (;)

Κλήση συνάρτησης Το κυρίως πρόγραμμα έχει μόνο μια εντολή printf( Hello, world.\n ); Η printf είναι μια συνάρτηση της C. Η επίκληση μιας συνάρτησης με χρήση του ονόματός της ονομάζεται κλήση της συνάρτησης. Με την κλήση μιας συνάρτησης εκτελούνται οι εντολές που έχουν οριστεί μέσα στο σώμα της συνάρτησης αυτής.

Ησυνάρτησηprintf H printf χρησιμοποιείται για την εκτύπωση δεδομένων στην έξοδο του προγράμματος. Δέχεται ως όρισμα ένα αλφαριθμητικό ( Hello, world\n ). Όρισμα είναι πληροφορία που θέτει στη διάθεση μιας συνάρτησης αυτός που την καλεί. Ένα αλφαριθμητικό (string) είναι μια ακολουθία χαρακτήρων (συμβολοσειρά). Ο ειδικός χαρακτήρας \n ονομάζεται αλλαγή γραμμής.

Ένα δεύτερο πρόγραμμα #include <stdio.h> #include genlib.h #include simpio.h main() { int n1, n2, total; printf( This program adds two numbers\n ); printf( 1st number? ); n1 = GetInteger(); printf( 2nd number? ); n2 = GetInteger(); total = n1 + n2; printf( The total is %d\n, total); }

συμπερίληψη νέας βιβλιοθήκης #include simpio.h simplified input/output (απλοποιημένη είσοδος/έξοδος), περιέχει τη δήλωση της συνάρτησης GetInteger.

Δήλωση μεταβλητών Η γραμμή int n1, n2, total; περιέχει τη δήλωση των μεταβλητών n1, n2, total. Μια μεταβλητή αποτελεί ένα όνομα και ένα δεσμευτικό θέσης για κάποια δεδομένα των οποίων η τιμή είναι άγνωστη όταν γράφεται το πρόγραμμα. Μια δήλωση πληροφορεί τον μεταγλωττιστή της C για το όνομα και τον τύπο μιας νέας μεταβλητής. Η χρήση μιας μεταβλητής που δεν έχει δηλωθεί μέσα σε ένα πρόγραμμα αποτελεί συντακτικό λάθος και επισημαίνεται από τον μεταγλωττιστή. Οι μεταβλητές που δηλώνονται σε αυτό το πρόγραμμα έχουν τύπο int (ακέραιος, integer).

Εντολή ανάθεσης n1 = GetInteger(); Παράσταση total = n1 + n2; Μορφοποιημένη έξοδος με την printf printf( The total is %d\n, total);

Τύποι δεδομένων Ακέραιοι αριθμοί int Αριθμοί κινητής υποδιαστολής double Αλφαριθμητικά string Οτύποςstring δεν είναι βασικός τύπος της C. Έχει οριστεί για τις ανάγκες του βιβλίου. Η C χρησιμοποιεί στην πραγματικότητα έναν σύνθετο τύπο για τις συμβολοσειρές.

Ανάγνωση και εκτύπωση των παραπάνω τύπων δεδομένων int n; n = GetInteger(); printf( %d\n, n); double f; f = GetReal(); printf( %g\n, f); string name; name = GetLine(); printf( %s\n, name);

Παραστάσεις Οι υπολογισμοί σε ένα πρόγραμμα πραγματοποιούνται ορίζοντας παραστάσεις. Μια παράσταση αποτελείται από όρους και τελεστές. Κατά την εκτέλεση ενός προγράμματος, η εκτέλεση κάθε πράξης που καθορίζονται σε μια παράσταση ονομάζεται αποτίμηση της παράστασης. Παραδείγματα παραστάσεων: 1 + 2 (n + 2) * (m - 1.5) Mercury

Όροι παραστάσεων Κάθε όρος μπορεί να είναι: Μια σταθερή Μια μεταβλητή Μια κλήση συνάρτησης Μια παράσταση με παρενθέσεις

Σταθερές Ακέραιες 125-1 0 33934 Κινητής υποδιαστολής 32.432 0.23 2.44e6 4.23e-12-4.01e8 Αλφαριθμητικά abcd Hello, world.\n

Μεταβλητές Μια μεταβλητή έχει τρεις σημαντικές ιδιότητες όνομα τιμή τύπο Έγκυρα ονόματα μεταβλητών value _avalue name123 an_integer AnOtherName Μη έγκυρα ονόματα μεταβλητών a*value int while one@variable 1var 32.number

Εντολές ανάθεσης μεταβλητή = παράσταση; Όπου μεταβλητή είναι η μεταβλητή στην οποία θέλουμε να αποδώσουμε τιμή παράσταση είναι η καθοριζόμενη τιμή (αφού αποτιμηθεί η παράσταση Παραδείγματα string msg; msg = Leave your things at the entrance ; n=21;

Τελεστές και τελεστέοι Αριθμητικοί τελεστές + πρόσθεση - αφαίρεση * πολλαπλασιασμός / διαίρεση Παραδείγματα παραστάσεων (2 * x) + (3 * y) Διμελείς (binary) τελεστές Μονομελής (unary) τελεστής - -y -(12.4 / 3.5)

Συνδυασμός ακεραίων και αριθμών κινητής υποδιαστολής Οι παραστάσεις επιτρέπεται να περιέχουν τιμές τύπου int και double ταυτόχρονα. 12 + 3.5 n + 1.1 (το n είναι τύπου int) Κανόνας: Αν ένας τουλάχιστον από τους τελεστέους είναι τύπου double τότε το αποτέλεσμα είναι πάντα τύπου double.

Διαίρεση ακεραίων Όταν σε μια πράξη που ορίζεται από έναν διμελή τελεστή (+, -, *, /) καιοιδύοτελεστέοι είναι ακέραιοι, το αποτέλεσμα είναι ακέραιο. Ο παραπάνω κανόνας έχει ως συνέπεια το αποτέλεσμα της διαίρεσης δυο ακεραίων να είναι ακέραιος (το υπόλοιπο της διαίρεσης αγνοείται). Παράδειγμα: Το αποτέλεσμα της διαίρεσης 3 / 2 είναι 1 και όχι 1.5! Για τον σωστό υπολογισμό γράφουμε 3.0 / 2.0 ή 3.0 / 2 ή 3 / 2.0

Ο τελεστής υπολοίπου Ο τελεστής% επιστρέφει το ακέραιο υπόλοιπο της διαίρεσης του πρώτου τελεστέου με τον δεύτερο. 0 % 3 = 0 3 % 3 = 0 1 % 3 = 1 4 % 3 = 1 2 % 3 = 2 5 % 3 = 2 Και οι δύο τελεστέοι πρέπει να είναι τύπου int. Αποφεύγετε να χρησιμοποιείτε τον τελεστή % με αρνητικούς τελεστέους, καθώς σε αυτή την περίπτωση η συμπεριφορά του προγράμματος ποικίλει από υπολογιστή σε υπολογιστή.

Προτεραιότητα τελεστών Για την αποφυγή της χρήσης παρενθέσεων σε κάθε περίπτωση, ορίζονται κανόνες προτεραιότητας των αριθμητικών παραστάσεων 1. Πρώτα αποτιμώνται οι μονομελείς τελεστές άρνησης 2. Στη συνέχεια αποτιμώνται οι πολλαπλασιαστικοί τελεστές (*,/,%) από αριστερά προς τα δεξιά 3. Στη συνέχεια αποτιμώνται οι προσθετικοί τελεστές επίσης από τα αριστερά προς τα δεξιά.

Προτεραιότητα τελεστών - Παραδείγματα Η παράσταση x * 2 - y / 3 είναι ισοδύναμη με την (x * 2) - (y / 3) Η παράσταση x * 2 % y / 3 είναι ισοδύναμη με την ((x * 2) % y) / 3) Η παράσταση -x * 2 / 5 - y / 3 * 2 είναι ισοδύναμη με την (((-x) * 2) / 5) ((y / 3) * 2)

Μετατροπή τύπων και αποκοπή Στο παρακάτω τμήμα κώδικα int n; n = 2.342 μετά την ανάθεση n = 2.342, το n έχει την τιμή 2. Το κλασματικό μέρος (0.342) αποκόπτεται.

Ρητή μετατροπή τύπων (type cast) Πολλές φορές απαιτούμε την ρητή μετατροπή ενός τύπου σε έναν άλλον, όπως στο παράδειγμα double quot; int num, den; quot = num / (double) den; Σε αυτή την περίπτωση η διαίρεση θα πραγματοποιηθεί με χρήση αριθμών κινητής υποδιαστολής και το υπόλοιπο διατηρείται. Χωρίς τη χρήση του τελεστή ρητής μετατροπής (double) η διαίρεση πραγματοποιείται με χρήση ακεραίων και το υπόλοιπο χάνεται.

Δείτε Το κεφάλαιο 2 του βιβλίου