Δηζαγωγή ζηε γιώζζα C Παξνπζίαζε 3 ε : Δίζνδνο/ Έμνδνο - Σπλαξηήζεηο - Pointers

Σχετικά έγγραφα
Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

Constructors and Destructors in C++

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

(Ενδεικηικές Απανηήζεις) ΘΔΜΑ Α. Α1. Βιέπε απόδεημε Σει. 262, ζρνιηθνύ βηβιίνπ. Α2. Βιέπε νξηζκό Σει. 141, ζρνιηθνύ βηβιίνπ

Ενδεικτικά Θέματα Στατιστικής ΙΙ

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

f '(x)g(x)h(x) g'(x)f (x)h(x) h'(x) f (x)g(x)

Γ ΣΑΞΖ ΔΝΗΑΗΟΤ ΛΤΚΔΗΟΤ ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΘΔΣΗΚΩΝ ΚΑΗ ΟΗΚΟΝΟΜΗΚΩΝ ΠΟΤΓΩΝ ΤΝΑΡΣΖΔΗ ΟΡΗΑ ΤΝΔΥΔΗΑ (έως Θ.Bolzano) ΘΔΜΑ Α

ΣΥΣΤΗΜΑΤΑ ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 1. Να ιπζνύλ ηα ζπζηήκαηα. 1 0,3x 0,1y x 3 3x 4y 2 4x 2y ( x 1) 6( y 1) (i) (ii)

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γευηέρα 11 Ηουνίου 2018 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

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

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

ΔΝΓΔΙΚΣΙΚΔ ΛΤΔΙ ΣΑ ΜΑΘΗΜΑΣΙΚΑ ΠΡΟΑΝΑΣΟΛΙΜΟΤ 2017

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ

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

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

ΚΔΦ. 2.4 ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

Μηα ζπλάξηεζε κε πεδίν νξηζκνύ ην Α, ζα ιέκε όηη παξνπζηάδεη ηοπικό μέγιζηο ζην, αλ ππάξρεη δ>0, ηέηνην ώζηε:

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙΜΟ Α ΛΤΚΔΙΟΤ. Ημεπομηνία: 10/12/11 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΔΙΝΟΜΔΝΔ ΛΤΔΙ

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο

ΟΣΑ Επηρεηξεζηαθή Ννεκνζύλε. Ελόηεηα: Ad1.2.2 «Ση θξύβεηαη» πίζω από κηα Επηρεηξεζηαθή Αλαθνξά (report): XML & XSD γηα αξράξηνπο

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

ΘΔΜΑ 1 ο Μονάδες 5,10,10

ΓΙΑΙΡΔΣΟΣΗΣΑ. Οπιζμόρ 1: Έζηω d,n. Λέκε όηη ν d δηαηξεί ηνλ n (ζπκβνιηζκόο: dn) αλ. ππάξρεη c ηέηνην ώζηε n. Θεώπημα 2: Γηα d,n,m,α,b ηζρύνπλ:

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ ΣΔΣΑΡΣΖ 25 ΜΑΨΟΤ 2016 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΑΡΥΔ ΟΗΚΟΝΟΜΗΚΖ ΘΔΧΡΗΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ - ΔΠΗΛΟΓΖ

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

ΔΝΓΔΙΚΤΙΚΔΣ ΛΥΣΔΙΣ ΣΤΑ ΜΑΘΗΜΑΤΙΚΑ ΚΑΤΔΥΘΥΝΣΗΣ Γ ΛΥΚΔΙΟΥ ΓΔΥΤΔΡΑ 27 ΜΑΪΟΥ 2013

ΜΑΘΗΜΑ / ΤΑΞΗ : ΗΛΕΚΤΡΟΛΟΓΙΑ/Γ ΛΥΚΕΙΟΥ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08/09/2014

Σχεδίαση Γλωσσών & Μεταγλωττιστζς

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη

ΔΡΓΑΙΑ 1. Γιαδικησακά πληροθοριακά σζηήμαηα. Ομάδα Δργαζίας: Μεηαπηστιακοί Φοιηηηές. ηέθανος Κονηοβάς ΑΔΜ :283. Πάζτος Βαζίλειος ΑΔΜ :288

Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική ΑΔ

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

Master Class 3. Ο Ν.Ζανταρίδης προτείνει θέματα Μαθηματικών Γ Λσκειοσ ΘΕΜΑ 1.

Σήκαηα Β Α Γ Γ Δ Λ Η Σ Ο Ι Κ Ο Ν Ο Μ Ο Υ Γ Ι Α Λ Δ Ξ Η - ( 2 ) ΕΙΣΑΓΨΓΗ ΣΤΙΣ ΤΗΛΕΠΙΚΟΙΝΨΝΙΕΣ

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

α) ηε κεηαηόπηζε x όηαλ ην ζώκα έρεη κέγηζην ξπζκό κεηαβνιήο ζέζεο δ) ην κέγηζην ξπζκό κεηαβνιήο ηεο ηαρύηεηαο

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

Γεωμεηπικοί Τόποι Σςμμεηπίερ Α Λυκείου - Γεωμετρία

4) Να γξάςεηε δηαδηθαζία (πξόγξακκα) ζηε Logo κε όλνκα θύθινο πνπ ζα ζρεδηάδεη έλα θύθιν. Λύζε Γηα θύθινο ζηθ επαλάιαβε 360 [κπ 1 δε 1] ηέινο

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

Άζθεζε 2ε ΤΣΗΜΑΣΑ ΔΛΔΓΥΟΤ ΑΝΟΙΚΣΟΤ ΒΡΟΥΟΤ ΚΑΙ MATLAB

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γεσηέρα 10 Ηοσνίοσ 2019 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ: έζησ

ΣΕΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΕΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ Ρέππα Μαξγαξίηα

x x 15 7 x 22. ΘΔΜΑ Α 3x 2 9x 4 3 3x 18x x 5 y 9x 4 Α1. i. . Η ιύζε είλαη y y x 3y y x 3 2x 6y y x x y 6 x 2y 1 y 6

ΠΔΡΗΓΡΑΦΖ ΛΔΗΣΟΤΡΓΗΚΟΣΖΣΑ ΥΔΓΗΟΤ ΑΡΗΘΜ. 1

3 ΑΠΙΔ ΑΘΖΔΗ ΘΟΚΟΙΟΓΗΑ ΠΟΤ ΑΛΣΗΚΔΣΩΠΗΕΟΛΣΑΗ ΚΔ ΦΤΗΘΖ ΘΑΗ ΚΑΘΖΚΑΣΗΘΑ ΙΤΘΔΗΟΤ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

Οργάνωση και Δομή Παρουσιάσεων

Παπαγωγόρ Καμπύλερ Κόζηοςρ

Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD

ΓΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη:Γςνάμειρ μεταξύ ηλεκτπικών φοπτίων

ΒΗΜΑ 2. Εηζάγεηε ηνλ Κωδηθό Πξόζβαζεο πνπ ιακβάλεηε κε SMS & δειώλεηε επηζπκεηό Όλνκα Πξόζβαζεο (Username) θαη ην ζαο

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

ΓΗΜΟΙΑ ΟΙΚΟΝΟΜΙΚΗ ΣΟΜΟ Γ

Αιγόξηζκνη Δνκή επηινγήο. Απιή Επηινγή ύλζεηε Επηινγή. Εηζαγσγή ζηηο Αξρέο ηεο Επηζηήκεο ησλ Η/Τ. introcsprinciples.wordpress.

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

ΓΙΑΓΩΝΙΣΜΑ ΣΤΑ ΜΑΘΗΜΑΤΙΚΑ 133. Ύλη: Σσναρηήζεις-Σηαηιζηική Θέμα 1

Κεθάλαιο 7. Πξνζθνξά ηνπ θιάδνπ Μ. ΨΥΛΛΑΚΗ

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

Πξνγξακκαηηζκόο Ι. Δείθηεο. Κσλζηαληίλνο Τζεξπέο. (βαζηζκέλν ζηηο δηαθάλεηεο ηνπ θ. Δεκήηξε Μηραήι)

ΔΠΙΣΡΟΠΗ ΓΙΑΓΩΝΙΜΩΝ 74 ος ΠΑΝΔΛΛΗΝΙΟ ΜΑΘΗΣΙΚΟ ΓΙΑΓΩΝΙΜΟ ΣΑ ΜΑΘΗΜΑΣΙΚΑ Ο ΘΑΛΗ 19 Οκηωβρίοσ Δνδεικηικές λύζεις

Πξνγξακκαηηζκόο Θ. Δπλακηθή Δηαρείξηζε Μλήκεο. Κσλζηαληίλνο Τζεξπέο. (βαζηζκέλν ζηηο δηαθάλεηεο ηνπ θ. Δεκήηξε Μηραήι)

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

Ανάπηςξη Δθαπμογών ζε Ππογπαμμαηιζηικό Πεπιβάλλον

Intel Accelerate Your Code

Τηλζφωνο: Ε-mail: Ώρες διδασκαλίας: 16:00 19:15 μμ

Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots)

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

EL Eνωμένη στην πολυμορυία EL A8-0046/319. Τροπολογία

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

x x x x tan(2 x) x 2 2x x 1

(γ) Να βξεζεί ε ρξνλνεμαξηώκελε πηζαλόηεηα κέηξεζεο ηεο ζεηηθήο ηδηνηηκήο ηνπ ηειεζηή W.

f x 2xln x x x 2ln x 1 x f x 0 x 2ln x 1 0 2ln x 1 0 ln x ln e x e

Εγκατάσταση του πακέτου XAMPP. Β Τεχνική Σχολή Λεμεςοφ Σχολική χρονιά Άριςτοσ Παςιάσ

Τ ξ ε ύ ο ξ π ς ξ σ ξ ο ί ξ σ _ Ι ε ο α μ ε ι κ ό π

ΣΟ ΑΠΛΟ ΕΚΚΡΕΜΕ. Σν απιό εθθξεκέο απνηειείηαη από κηα κάδα m ζηελ άθξε αβαξνύο. λήκαηνο κήθνπο L,ηνπ νπνίνπ ην άιιν άθξν είλαη εμαξηεκέλν ζε αθιόλεην

Να ζρεδηαζζεί ην θαηεπζπλόκελν γξάθεκα πνπ νξίδεηαη από ηνλ εμήο πίλαθα γεηηλίαζεο.

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΗΜΕΡΗΣΙΩΝ

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Κινητός και Διάχυτος Υπολογισμός (Mobile & Pervasive Computing)

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο:

ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX

66. Ομογενής ράβδος ποσ περιζηρέθεηαι

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο.

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

Transcript:

Δηζαγωγή ζηε γιώζζα C Παξνπζίαζε 3 ε : Δίζνδνο/ Έμνδνο - Σπλαξηήζεηο - Pointers κυ θαη Χεθηαθόο Έιεγρνο Σρνιή Μεραλνιόγωλ Μεραληθώλ ΔΜΠ Δξγαζηήξην Απηνκάηνπ Διέγρνπ

Δίζνδνο/ Έμνδνο Βαζηθό output Σπλάξηεζε printf. Φξεζηκνπνηείηαη γηα ηελ πξνβνιή πιεξνθνξηώλ από ην πξόγξακκα πξνο ην ρξήζηε (έμνδνο). Τν πξώην όξηζκα είλαη έλα string, ην νπνίν, εθηόο από θείκελν, πεξηέρεη θαη εηδηθέο αθνινπζίεο ζπκβόιωλ. Αθνινπζνύλ νη κεηαβιεηέο, ηωλ νπνίωλ ε ηηκή πξόθεηηαη λα πξνβιεζεί. printf( This is a simple text.\n ); printf( You have %d attempts left\n, ats); float pi=3.14159; char str[] = PI ; printf( %4s s value is: %8.2f\n, str, pi); %d αθέξαηνο %f float, d ou ble %s string %c έλαο ραξαθηήξαο %4s string, εθηππώλεηαη κε ΤΟΥΛΑΦΙΣΤΟΝ 4 ραξαθηήξεο

Δίζνδνο/ Έμνδνο Βαζηθό input Σπλάξηεζε scanf. Φξεζηκνπνηείηαη γηα ηελ εηζαγωγή πιεξνθνξηώλ από ην ρξήζηε πξνο ην πξόγξακκα (είζνδνο). Τν πξώην όξηζκα είλαη θαη εδώ έλα string, ην νπνίν πεξηιακβάλεη εηδηθέο αθνινπζίεο ζπκβόιωλ. Αθνινπζνύλ pointers ζηηο κεηαβιεηέο, ηωλ νπνίωλ ε ηηκή πξόθεηηαη λα νξηζηεί. int age; char name[20]; printf("enter your name followed by your age: "); scanf("%[ a-za-z]%d", name, &age); printf("hello %s, you are %d years old\n", name, age); %[] ζύλνιν από ζπγθεθξηκέλνπο ραξαθηήξεο

Σπλαξηήζεηο Σπλαξηήζεηο Οη ζπλαξηήζεηο επηηξέπνπλ ηε δεκηνπξγία απηνηειώλ κνλάδωλ θώδηθα, νη νπνίεο κπνξνύλ λα θιεζνύλ από δηάθνξα ζεκεία ηνπ πξνγξάκκαηνο, θαη βνεζνύλ ζηε ζπλεθηηθόηεηα θαη θαζαξόηεηα ηνπ ινγηζκηθνύ (DRY). Οη ζπλαξηήζεηο έρνπλ α) όλνκα, β) ηύπν (αληηζηνηρεί ζηελ επηζηξεθόκελε κεηαβιεηή ή ζε void) θαη γ) νξίζκαηα (κε ηύπν ην θαζέλα). Η εληνιή return ζηακαηά ηελ εθηέιεζε ηεο ζπλάξηεζεο θαη, κε εμαίξεζε ηηο void ζπλαξηήζεηο, επηζηξέθεη ηελ ηηκή πνπ ηελ αθνινπζεί ωο ηηκή ηεο ζπλάξηεζεο. double min_of_two(double a, double b) { if (a<b) return a; return b;

Σπλαξηήζεηο Σπλαξηήζεηο θαη κεηαβιεηέο Οη κεηαβιεηέο ηωλ ζπλαξηήζεωλ έρνπλ ηνπηθή ηζρύ (scope). Μία ζπλάξηεζε, θαηά θαλόλα, δελ αιιάδεη ηελ ηηκή κίαο «εμωηεξηθή» κεηαβιεηήο. void pr(int a) { printf("value: %d\n",a); a = a + 1; printf("new value: %d\n",a); int main() { int i = 3; pr(i); printf("value in main(): %d\n",i);

Μεηαβιεηέο θαη κλήκε Όηαλ δειώλνπκε κία κεηαβιεηή απηόκαηα δεζκεύεηαη θάπνηα πεξηνρή ηεο κλήκεο char c; int a; char tc[5]; int ta[2]; Τν κέγεζνο ηεο κλήκεο πνπ δεζκεύεηαη (δειαδή πόζα bytes) εμαξηάηαη από ηνλ ηύπν ηεο κεηαβιεηήο 101 c 201 202 203 204 a 301 302 303 304 305 tc[0] tc[1] tc[2] tc[3] tc[4] 401 402 403 404 405 406 407 408 ta[0] ta[1]

Pointers Ο pointer a_ptr ζε κία κεηαβιεηή a είλαη έλαο αθέξαηνο (int) αξηζκόο, ν νπνίνο είλαη ίζνο κε ηε δηεύζπλζε ηνπ πξώηνπ byte ηεο κλήκεο πνπ έρεη δεζκεπηεί γηα ηε κεηαβιεηή απηή (βι. πξνεγνύκελε δηαθάλεηα). Ο pointer a_ptr ζε κία κεηαβιεηή ηύπνπ type έρεη πάληα ηύπν type*. char c; 101 c &c = 101 int a; char tc[5]; 201 202 203 204 a 301 302 303 304 305 tc[0] tc[1] tc[2] tc[3] tc[4] &a = 201 &tc= 301 &(tc[3])= 304 int ta[2]; &(ta[1])= 405 401 402 403 404 405 406 407 408 ta[0] ta[1]

Αο ηα πάξνπκε κε ηε ζεηξά: Pointers Έζηω όηη έρνπκε νξίζεη κία κεηαβιεηή int: int a=5; Άξα έρνπλ δεζκεπηεί 4 bytes από ηε δηαζέζηκε κλήκε γηα ηε κεηαβιεηή a: 201 202 203 204 Γηα λα θηηάμνπκε έλαλ pointer ζηε κεηαβιεηή απηή νξίδνπκε κία άιιε κεηαβιεηή ηύπνπ «pointer ζε int», δειαδή int*, θαη ζέηνπκε ωο ηηκή ηεο ηε δηεύζπλζε ηνπ πρώτου byte ηεο κεηαβιεηήο a int* a_ptr = &a; Η ηηκή ηεο κεηαβιεηήο a_ptr ζα είλα ηώξα: 201

Pointers Έζηω όηη ν pointer ptr γλωξίδνπκε όηη «δείρλεη» ζε κία κεηαβιεηή ηύπνπ double, δειαδή πεξηέρεη ηε δηεύζπλζε ηνπ πξώηνπ byte ηεο κεηαβιεηήο. Γηα λα βξνύκε ηελ πξαγκαηηθή ηηκή ηεο κεηαβιεηήο πξέπεη, αληίζηξνθα, λα γίλεη «dereferencing» ηνπ pointer ωο εμήο: printf( %f\n, *ptr); Με άιια ιόγηα, γηα λα πεξάζνπκε από κία κεηαβιεηή ζηνλ αληίζηνηρν pointer ρξεζηκνπνηνύκε ην ραξαθηήξα & (am persand) double* a_ptr = &a; Δλώ γηα λα πεξάζνπκε από ηνλ pointer ζηελ αληίζηνηρε κεηαβιεηή ρξεζηκνπνηνύκε ην ραξαθηήξα * (asterisk) double b = *b_ptr;

Pointers θαη πίλαθεο Δπεηδή ζηε C νη πίλαθεο ηνπνζεηνύληαη πάληα ζε ζπλερή ηκήκαηα ηεο κλήκεο, γλωξίδνληαο ηνλ pointer πνπ δείρλεη ζην 1 ν ζηνηρείν ελόο πίλαθα έρνπκε πξόζβαζε ζε όια ηνπ ηα ζηνηρεία. int tbla[3] = {10, 20, 30; int* ptr_tbla = &(tbla[0]); Ή αιιηώο: int* ptr_tbla = tbla; αθνύ tbla == &(tbla[0]) Θα ηζρύεη πάληα: *(tbla + i) = tbla[i] Καη βέβαηα: tbla + i = &(tbla[i])

Pointers Η ρξήζε pointers καο επηηξέπεη ηελ ηξνπνπνίεζε κεηαβιεηώλ από ζπλαξηήζεηο: void set(int* y, int x){ *y = x; void main(){ int y; int x = 10; set(&y, x); printf( y = %d\n, y); Η set() ιέγεηαη όηη παίξλεη ην y κατ αναφοπά (by reference) ελώ ην x κατά τιμή ή κατ αξία (by valu e).

Γπλακηθή δέζκεπζε κλήκεο Γελ είλαη αλαγθαίν ν pointer λα αληηζηνηρίδεηαη πάληα ζε κηα ππάξρνπζα κεηαβιεηή, κπνξεί λα ρξεζηκνπνηεζεί θαη απηόλνκα. Γηα ην ζθνπό απηό ην πξόγξακκα δεηάεη από ην ζύζηεκα κία θαηάιιειε πεξηνρή κλήκεο. Η δέζκεπζε ηεο κλήκεο γίλεηαη κε ηελ εληνιή malloc, ελώ ζηε ζπλέρεηα ε απνδέζκεπζή ηεο κε ηελ εληνιή free. int *ptr, i; ptr = malloc(5*sizeof(int)); // μνήμη για 5 ακεραίοσς for (i = 0; i < 5; i++){ *(ptr + i) = i; for (i = 0; i < 5; i++){ printf("%d\n",*(ptr + i)); free(ptr);

Γπλακηθή δέζκεπζε κλήκεο Η δπλακηθή δέζκεπζε κλήκεο ζηε γιώζζα C ρξεζηκνπνηείηαη ζρεδόλ απνθιεηζηηθά έλαληη ηεο ζηαηηθήο δέζκεπζεο. Τα βαζηθά πιενλεθηήκαηά ηεο είλαη δύν: Μεηά ηε ρξήζε ηεο ε κλήκε κπνξεί λα απνδεζκεπηεί θαη λα επαλαρξεζηκνπνηεζεί κε άιιν ηξόπν Τν κέγεζνο ηεο κλήκεο πνπ δεζκεύεηαη κπνξεί λα πξνζδηνξηζηεί δπλακηθά, δειαδή κε ηε ρξήζε αθέξαηεο κεηαβιεηήο, θαη δελ είλαη απαξαίηεην λα είλαη γλωζηό ηε ζηηγκή πνπ γξάθεηαη ν θώδηθαο ηνπ πξνγξάκκαηνο. char *str; int n;... scanf( %d, &n);... str = malloc(n*sizeof(char));