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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

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

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

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

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

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

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

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Eισαγωγή στον Προγραμματισμό

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

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

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

Αρχιτεκτονική Υπολογιστών

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

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

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

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

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

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

Στοιχειώδης προγραμματισμός σε C++

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

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

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

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 9: Συναρτήσεις Εμβέλεια

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 3: Είσοδος και Έξοδος Δεδομένων

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Προέλευση της Pazcal ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

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

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

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

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

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

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

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

Λογιστικές Εφαρμογές Εργαστήριο

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

Αρχιτεκτονική Υπολογιστών

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

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

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

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

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

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

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

Βιομηχανικοί Ελεγκτές

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

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

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

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

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

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

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

2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό

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

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

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

Αρχιτεκτονική υπολογιστών

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

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

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

Προγραμματισμός Η/Υ. Ενότητα 3: Top Down Σχεδιασμός

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

Transcript:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Εισαγωγή στη C θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε.

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

C, assembly, machine code Code in C void swap(int a,int b) { tmp = a; a = b; b = tmp; } /* end swap() */ Assembly language program MOV MOV MOV MOV r2,r0 r0,r1 r1,r2 pc,r14 Machine language code 0xe1a02000 0xe1a00001 0xe1a01002 0xe1a0f00e

Compiler, Linker, Loader C program Compiler Assembly Assembly Assembler Obj Library Object Linker Executable Loader Memory

Επεξεργαστής και μνήμη CPU PC Register File instruction instruction instruction instruction instruction instruction instruction ALU data data data data data data Memory

Επεξεργαστής και μνήμη (2)

Σε τι μεταφράζονται οι εντολές της C Η εντολή a = a + b; μεταφράζεται στον επεξεργαστή ARM σε ldr r0, mem0 ldr r1, mem1 add r0, r0, r1 str mem0, r0

Πως εκτελούνται οι εντολές της γλώσσας μηχανής start Fetch Next Instruction Decode Instruction Execute Instruction end FETCH DECODE EXECUTE

Πρόγραμμα «Hello world!» #include <stdio.h> int main (void) { printf( Hello world!\n ); } return 0;

#include <stdio.h> Με την οδηγία #include <όνομα_αρχείου> ο compiler ενσωματώνει τα περιεχόμενα του αρχείου στον κώδικα του προγράμματος

Σχόλια Δύο τρόποι: /*.. γραμμές.. */ και // σχόλιο μιάς γραμμής

Μνήμη και μεταβλητές Η μνήμη RAM ενός υπολογιστή αποτελείται από εκατομμύρια θέσεις αποθήκευσης δεδομένων που έχουν διαδοχική διεύθυνση Π.χ. 32 GB μνήμη -> 32*10^9 bytes μνήμη Κάθε μεταβλητή χαρακτηρίζεται από τη διεύθυνση μνήμης που αποθηκεύεται και (λόγω του τύπου της) ένα αριθμό από συνεχόμενα bytes που δεσμεύονται για αυτήν Η τιμή μιας μεταβλητής είναι το περιεχόμενο αυτών των bytes ερμηνευόμενα σύμφωνα με το «συμβόλαιο» του τύπου της

Τύποι Μεταβλητών στη C

Ονόματα μεταβλητών Τα ονόματα των μεταβλητών στη C μπορούν να περιέχουν γράμματα, αριθμούς και επιτρέπεται επίσης ο ειδικός χαρακτήρας «_». Ο πρώτος χαρακτήρας δεν επιτρέπεται να είναι αριθμός. Γίνεται διάκριση μεταξύ κεφαλαίων και πεζών γραμμάτων.

Δήλωση μεταβλητών Η δήλωση των μεταβλήτών γίνεται ως: <τύπος μεταβλητής> όνομα ; Π.χ. int a; float a, b, c; unsigned char a;

Εκχώρηση τιμής Η εκχώρηση γίνεται με το «=». Π.χ. int a; a=5; Η αρχική τιμή μπορεί να γίνει ταυτόχρονα με τη δήλωση. Π.χ. int a=5; Ειδικά θέματα: int a=0100; // ekxwrhsh binary int a=0x10; // ekxwrhsh hex int a=5, b=10; // ekxwrhsh pollwn int a=10.9; // a=10 a=5e-3; // a=5*10^-3

Σταθερές Σταθερές. Π.χ. const int a = 10; #define N 100

Type cast Το type cast μετατρέπει προσωρινά τον τύπο μιας μεταβλητής. Π.χ. float a; a=(float)1/2; float a; a=(float)i/j;

printf Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται λίστα παραμέτρων. Η πρώτη και μόνη υποχρεωτική παράμετρος είναι το αλφαριθμητικό μορφοποίησης. Π.χ. printf( hello world\n ); printf( h taxythta einai u=%6.2lf kai h thesh einai s=%6.2lf, a, x);

printf () και χαρακτήρες μετατροπής Το προσδιοριστικό μετατροπής αρχίζει με % και ακολουθείται με χαρακτήρα Το lf (long float) χρησιμοποιείται για τον τύπο double

scanf Η συνάρτηση scanf() χρησιμοποιείται για την είσοδο δεδομένων από το αρχείο εισόδου stdin (standard input stream) το οποίο εξ ορισμού συνδέεται με το πληκτρολόγιο. Η συνάρτηση scanf() δέχεται λίστα παραμέτρων. Η πρώτη είναι το αλφαριθμητικό μορφοποίησης και ακολουθούν οι διευθύνσεις μνήμης των μεταβλητών στις οποίες θα καταχωρηθούν τα δεδομένα που θα πληκτρολογήσει ο χρήστης. Π.χ. float a; scanf( %f, &a); char a[100]; scanf( %s, a); int a; float b; scanf( %d%f, &a, &b);

Τελεστές (1) Τελεστής εκχώρησης. Π.χ. a=5; a=b=5; Αριθμητικοί τελεστές. Π.χ. a=a+2; a=b/4; a=b%2; b=a++; b=++a; b=--a;

Τελεστές (2) Τελεστές σύγκρισης. Π.χ. a==5; a>5; a>=5; a!=5; Προσοχή: Μία έκφραση χαρακτηρίζεται ψευδής (false) όταν η τιμή της είναι μηδέν (0) και αληθής (true) όταν η τιμή της είναι διαφορετική από το μηδέν. Π.χ. if (5) { } if (a=0) { } a=(b>5) + (c!=6); if (a) { // είναι ισοδύναμο με το if (a!=0) }

Τελεστές (3) Συνδιαστικοί τελεστές. Π.χ. a*=b; // a=a*b Λογικοί τελεστές. Π.χ. (a==0) && (b==0) (a==0) (b==0) Υπάρχουν επίσης bit τελεστές (&,, ^,~,>>,<<)

Τελεστές (4)

Τέλος Ενότητας