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

Σχετικά έγγραφα
Δομημένος Προγραμματισμός (ΤΛ1006)

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

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

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

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2

Η Γλώσσα C Μία Σφαιρική Ανασκόπηση

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

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

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

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

Γλώσσα Προγραμματισμού C

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

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

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

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

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

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

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

Δεδομένα, Τύποι και Τιμές

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

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

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός

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

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

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

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

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

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

Οντοκεντρικός Προγραμματισμός

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

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

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

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

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

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

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

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

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

ΕΠΛ 032.3: Προγραµµατισµός ΜεθόδωνΕπίλυσηςΠροβληµάτων

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

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

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 4-2

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

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

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

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

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

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

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

Γλώσσα Προγραμματισμού C

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

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

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

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

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

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

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

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

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C

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

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

Προγραμματισμός σε C++

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

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

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

8. Συνθήκες ελέγχου, λογικοί τελεστές

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

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

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

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ ΤΟΥΣ

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

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

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

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

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

Περιεχόμενα. Πρόλογος... 21

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

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

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

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

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

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

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

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

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

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

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

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

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

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

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

Transcript:

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

Hello World /* Αρχείο hello.c * Εµφανίζει στην οθόνη το * µήνυµα hello world */ #include <stdio.h> /* #include genlib.h */ Σχόλια κείµενο µεταξύ /* και */ Συµπεριλήψεις βιβλιοθηκών <...> πρότυπες βιβλιοθήκες προσωπικές βιβλιοθήκες main() { printf( Hello, world.\n ); } Κυρίως πρόγραµµα συνάρτηση (function) main αρχή και τέλος συνάρτησης {..} εντολές (statements)

printf Κλήση της συνάρτησης printf που συµπεριλαµβάνεται στη βιβλιοθήκη stdio.h H printf εµφανίζει δεδοµένα στην οθόνη το όρισµα (argument) της συνάρτησης printf καθορίζει τι ακριβώς θα εµφανίσει στην οθόνη Το Hello, world.\n είναι µια ακολουθία χαρακτήρων ή αλφαριθµητικό (string) To \n είναι ένας ειδικός χαρακτήρας που ονοµάζεται αλλαγή γραµµής (newline)

Πρόγραµµα άθροισης δύο αριθµών /* Αρχείο add2.c * Διαβάζει δύο αριθµούς, τους προσθέτει, και εµφανίζει το * άθροισµά τους. */ #include <stdio.h> main() { int n1, n2, total; Γραµµή δήλωσης (declaration) µεταβλητών (variables) int ακέραιος (integer)

Πρόγραµµα άθροισης δύο αριθµών /* Αρχείο add2.c * Διαβάζει δύο αριθµούς, τους προσθέτει, και εµφανίζει το * άθροισµά τους. */ #include <stdio.h> main() { int n1, n2, total; printf( Aυτό το πρόγραµµα προσθέτει δύο αριθµούς.\n ); printf( 1 ος αριθµός: ); scanf( %d, &n1); Φάση Εισόδου

scanf Κλήση της συνάρτησης scanf που συµπεριλαµβάνεται στη βιβλιοθήκη stdio.h Η scanf διαβάζει δεδοµένα από το πληκτρολόγιο scanf( %d, &n1); Η ακολουθία χαρακτήρων %d προσδιορίζει τι είδους δεδοµένα θα διαβαστούν. Το %d είναι χαρακτήρας µορφoποίησης και σηµαίνει ότι θα διαβαστεί ακέραιος. Το &n1 σηµαίνει ότι ο ακέραιος θα αποθηκευτεί στη µεταβλητή n1 Η σηµασία του & θα εξηγηθεί αργότερα

Πρόγραµµα άθροισης δύο αριθµών /* Αρχείο add2.c * Διαβάζει δύο αριθµούς, τους προσθέτει, και εµφανίζει το άθροισµά τους. */ #include <stdio.h> main() { int n1, n2, total; printf( Aυτό το πρόγραµµα προσθέτει δύο αριθµούς.\n ); printf( 1 ος αριθµός: ); scanf( %d, &n1); printf( 2 ος αριθµός: ); scanf( %d, &n2); total = n1 + n2; Φάση Υπολογισµού

Πρόγραµµα άθροισης δύο αριθµών /* Αρχείο add2.c * Διαβάζει δύο αριθµούς, τους προσθέτει, και εµφανίζει το άθροισµά τους. */ #include <stdio.h> main() { int n1, n2, total; } printf( Aυτό το πρόγραµµα προσθέτει δύο αριθµούς.\n ); printf( 1 ος αριθµός: ); scanf( %d, &n1); printf( 2 ος αριθµός: ); scanf( %d, &n2); total = n1 + n2; printf( Tο άθροισµα είναι %d.\n, total); Φάση Εξόδου %d κωδικός µορφοποίησης (format code) printf( %d + %d = %d, n1, n2, total);

Πρόγραµµα άθροισης 3 αριθµών /* Αρχείο add3.c * Διαβάζει τρεις αριθµούς, τους προσθέτει, και εµφανίζει το άθροισµά τους. */ #include <stdio.h> main() { int n1, n2, n3, total; } printf( Aυτό το πρόγραµµα προσθέτει τρεις αριθµούς.\n ); printf( 1 ος αριθµός: ); scanf( %d, &n1); printf( 2 ος αριθµός: ); scanf( %d, &n2); printf( 3 ος αριθµός: ); scanf( %d, &n3); total = n1 + n2 + n3; printf( Tο άθροισµα είναι %d.\n, total);

Τύποι Δεδοµένων (data type) int integer όλοι οι ακέραιοι (...,-2,-1,0,1,2,...) µέχρι τα όρια που καθορίζονται από το υλικό του υπολογιστή συνήθως -32768...+32767 (16 bit) Αριθµοί κινητής υποδιαστολής (floating-point numbers) float double double-precision floating point 10-38... 10 +38 (32 bit)

Άθροιση 2 δεκαδικών αριθµών /* Αρχείο add2.c * Διαβάζει δύο δεκαδικούς αριθµούς, τους προσθέτει, και εµφανίζει το * άθροισµά τους. */ #include <stdio.h> main() { float n1, n2, total; } printf( Aυτό το πρόγραµµα προσθέτει δύο δεκαδικούς αριθµούς.\n ); printf( 1 ος αριθµός: ); scanf( %f, &n1); printf( 2 ος αριθµός: ); scanf( %f, &n2); total = n1 + n2; printf( Tο άθροισµα είναι %f.\n, total);

Παραστάσεις (expressions) Αποτελείται από όρους (terms) και τελεστές (operators) total = n1 + n2; Κάθε όρος µπορεί να είναι: µια σταθερά µια µεταβλητή κλήση συνάρτησης παράσταση σε παρενθέσεις

Σταθερές (constants) Ακέραιες (π.χ. 1000000) Κινητής Υποδιαστολής (π.χ. 2.5 ή 2.9979Ε+8) Αλφαριθµητικές (π.χ. Hello )

Μεταβλητές (variables) Όνοµα αρχίζει µε γράµµα ή χαρακτήρα υπογράµµισης (_) case sensitive (π.χ. ABC δεν είναι ίδια µεταβλητή µε abc ή Αbc) Όλοι οι χαρακτήρες είναι γράµµατα, ψηφία ή χαρακτήρας υπογράµµισης Δεν µπορεί να είναι κάποια από τις λέξεις κλειδιά (keywords) της C (π.χ. double, int, break, κ.λ.π.) Οποιοδήποτε µήκος αλλά εκλαµβάνει µόνο τους 31 πρώτους χαρακτήρες Καλό είναι το όνοµα που θα δώσουµε να είναι σχετικό µε τη χρήση της µεταβλητής

Λέξεις-Κλειδιά της C auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while

Μεταβλητές (variables) Εντολές Ανάθεσης µεταβλητή = παράσταση; µεταβλητή είναι η µεταβλητή στην οποία θέλετε να αποδώσετε τιµή παράσταση είναι η καθοριζόµενη τιµή Παραδείγµατα n1 = 5; n1 = n2; n1 = 3 + n2;

Τελεστές και τελεστέοι Αριθµητικοί τελεστές (operators) + πρόσθεση - αφαίρεση * πολλαπλασιασµός / διαίρεση Τελεστέοι (operands) οι υπο-παραστάσεις στις οποίες εφαρµόζεται ο τελεστής Μονοµελής τελεστής (unary operator) εφαρµόζεται µόνο σε έναν τελεστέο (π.χ. n1) Διµελής τελεστής (binary operators) εφαρµόζεται σε ένα ζεύγος τελεστέων

Διαίρεση ακεραίων Η διαίρεση 9 / 4 δίνει αποτέλεσµα 2 διότι αγνοεί το υπόλοιπο η διαίρεση δύο ακεραίων είναι ένας ακέραιος Για τον υπολογισµό και του δεκαδικού µέρους 9.0 / 4 9 / 4.0 9.0 / 4.0 τουλάχιστον ένας από τους δύο τελεστέους πρέπει να είναι αριθµός κινητής υποδιαστολής.

Τελεστής Υπολοίπου Τελεστής Υπολοίπου % πρέπει και οι δύο τελεστέοι να είναι ακέραιοι επιστρέφει το υπόλοιπο της διαίρεσης δύο ακεραίων 9 % 4 = 1 0 % 4 = 0 19 % 4 = 3 20 % 4 = 0

Προτεραιότητα τελεστών Κανόνες προτεραιότητας (precedence rules) Μονοµελείς τελεστές Πολλαπλασιαστικοί τελεστές (*, /, %) αν στον ίδιο τελεστέο εφαρµόζονται δύο από αυτούς τους τελεστές, εκτελείται αυτός που βρίσκεται αριστερότερα. Προσθετικοί τελεστές (+, -) πάλι αν στον ίδιο τελεστέο εφαρµόζονται δύο από αυτούς τους τελεστές, εκτελείται αυτός που βρίσκεται αριστερότερα. 2 * x + 3 * y 2 * (x + 3) * y 10 5 2 10 (5 2) average = n1 + n2 / 2 average = (n1 + n2) / 2

Μετατροπή τύπων Από εκατοστά σε πόδια και ίντσες 1 ίντσα=2.54 εκατοστά 1 πόδι=12 ίντσες Κώστας Κουφός: Ύψος 213 εκατοστά 213/2.54=83.858 ίντσες 83.858/12=6.988 πόδια Άρα, 6 πόδια και? ίντσες; Απάντηση, 83.858-12*6=11.858 ίντσες

Μετατροπή τύπων Αρα, Κώστας Κουφός: Ύψος 6 πόδια, 11.858 ίντσες Αν στρογγυλοποιήσουµε: 7 πόδια, 0 ίντσες

Μετατροπή τύπων /* Αρχείο cmtofeet.c * Μετατροπή µήκος σε cm σε πόδια και ίντσες */ #include <stdio.h> main() { float totalinches, cm, inch; int feet; printf( Mετατροπή cm σε πόδια και ίντσες.\n ); printf( Μήκος σε cm: ); scanf( %f, &cm); totalinches = cm / 2.54; feet = totalinches / 12; inch = totalinches feet * 12; printf( %f cm = %d ft %f in\n, cm, feet, inch); }

Μετατροπή τύπων Το πρόγραµµα εκτυπώνει: 213.000000 cm = 6 ft 11.858269 in

Τελεστής ρητής µετατροπής (type cast) Αντί για: feet=totalinches/12; Μπορούσα να έβαζα feet= (int) (totalinches/12); To (int) λέγεται τελεστής ρητής µετατροπής. Εδώ όµως δεν χρειάζεται γιατί η µετατροπή γίνεται αυτοµάτως.

Τελεστής ρητής µετατροπής (type cast) int num, den; float quotient; Έστω num=15 και den=10 quotient = num /den; quotient = num / (float) den; quotient = (float) num / den; Ο τελεστής ρητής µετατροπής (float) έχει υψηλότερη προτεραιότητα από τον τελεστή της διαίρεσης quotient = (float) (num / den);