Πξνγξακκαηηζκόο Ι (ΗΥ120)

Σχετικά έγγραφα
Προγραμματισμός Ι (ΗΥ120)

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

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

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

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

Πξνγξακκαηηζκόο Ι (ΗΥ120)

Constructors and Destructors in C++

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΞΙΣΩΣΕΙΣ. (iv) (ii) (ii) (ii) 5. Γηα ηηο δηάθνξεο ηηκέο ηνπ ι λα ιπζνύλ νη εμηζώζεηο : x 6 3 9x

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

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

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

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

ΕΞΙΣΩΣΕΙΣ. Α. Πρωτοβάθμιεσ Εξιςώςεισ. Β. Διερεφνηςη Εξιςώςεων. 1x είναι αδφνατθ. x 1 x 1. Άλγεβρα Α Λυκείου

ΛΙΜΝΗ ΤΣΑΝΤ. Σρήκα 1. Σρήκα 2

2.4 Βαζικές ζσνιζηώζες/ ενηολές ενός αλγορίθμοσ

Αντισταθμιστική ανάλυση

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

Εςθςή ζςζηήμαηα επισειπήζεων και αξιολόγηζη

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

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

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

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

Α Ο Κ Η Α Μ Α Ζ Η Η Ρ Η ( S E A R C H )

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

Επωηήζειρ Σωζηού Λάθοςρ ηων πανελλαδικών εξεηάζεων Σςναπηήζειρ

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ

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

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

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

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

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

Άσκηση 1 - Μοπυοποίηση Κειμένου

Δξγαιεία Καηαζθεπέο 1 Σάμε Σ Δ.Κ.Φ.Δ. ΥΑΝΙΧΝ ΠΡΧΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ. ΔΝΟΣΗΣΑ 11 ε : ΦΧ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Φαθόο κε ζσιήλα.

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

Διαφορές μεταξύ αξιών και αναφορών #1

ΣΟ ΤΣΖΜΑ ΔΛΑΣΖΡΗΟ - ΩΜΑ

ΜΗΧΑΝΟΛΟΓΙΚΟ ΣΧΔΓΙΟ ΙΙ

γηα ηνλ Άξε Κσλζηαληηλίδε

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

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

ΠΑΝΕΛΛΑΔΙΚΕ ΕΞΕΣΑΕΙ Γ ΣΑΞΗ ΗΜΕΡΗΙΟΤ ΓΕΝΙΚΟΤ ΛΤΚΕΙΟΤ & ΠΑΝΕΛΛΗΝΙΕ ΕΞΕΣΑΕΙ Γ ΣΑΞΗ ΗΜΕΡΗΙΟΤ ΕΠΑΛ (ΟΜΑΔΑ Β )

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

ΗΥ-100 Ειζαγωγή ζηην Επιζηήμη Υπολογιζηών

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

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

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

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

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

ΓΔΧΜΔΣΡΙΑ ΓΙΑ ΟΛΤΜΠΙΑΓΔ

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report.

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) FritzBox Fon WLAN Annex B ( )

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

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

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

Σειεζηέο, Δθθξάζεηο Πξνηάζεηο, Δληνιέο Διέγρνπ Ρνήο

ΓΗΑΓΩΛΗΠΚΑ ΠΡΝ ΚΑΘΖΚΑ ΔΞΗΙΝΓΖΠ ΑΟΣΔΠ ΝΗΘΝΛΝΚΗΘΖΠ ΘΔΩΟΗΑΠ

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

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

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

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

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

Φςζική Πποζαναηολιζμού Γ Λςκείος. Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο

Εισαγωγή στοςρ κβαντικούρ ςπολογιστέρ και αλγόπιθμοςρ. Γηδάζθωλ : Φνπληνπιάθεο Αληώληνο

Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο κόζηος ανά μονάδα παραγωγής. Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο ζηαθερό κόζηος ανά μονάδα παραγωγής

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

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΕΚΦΩΝΗΣΕΙΣ. Διάρκεια: 3 ώρες Ημερομηνία: 12/5/2019 Έκδοση: 1 η. Τα sites blogs που συμμετέχουν (σε αλφαβητική σειρά):

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

Έλαο πίνακας σσμβόλων ππνζηεξίδεη δύν βαζηθέο ιεηηνπξγίεο:

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

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

ΦΥΣΙΚΗ ΤΩΝ ΡΕΥΣΤΩΝ. G. Mitsou

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

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

A. Αιιάδνληαο ηε θνξά ηνπ ξεύκαηνο πνπ δηαξξέεη ηνλ αγωγό.

Intel Accelerate Your Code

10). ΣΤΠΟΠΟΙΗΜΕΝΕ ΠΑΡΟΥΕ ΜΣ ΚΑΙ ΥΣ

Transcript:

Πξνγξακκαηηζκόο Ι (ΗΥ120) Γηάιεμε 9: Σπλαξηήζεηο

Οξηζκόο ζπλαξηήζεωλ <ηύπορ> <όνομα> (<ηςπικέρ παπάμεηποι>) { /* δήλωζη μεηαβληηών */ /* ενηολέρ ελέγσος/επεξεπγαζίαρ */ 2 o Μηα ζπλάξηεζε νξίδεηαη δίλνληαο (α) ηνλ ηύπν ηνπ απνηειέζκαηνο πνπ επηζηξέθεη (void αλ δελ επηζηξέθεη ηηκή), (β) ην όλνκα ηεο, (γ) ηελ ιίζηα κε ηηο «ηππηθέο» παξακέηξνπο ηεο, θαη (δ) ην ζώκα ηεο. o Τα (α), (β), (γ) απνηεινύλ ηελ επηθεθαιίδα θαη ην (δ) ηνλ θώδηθα / ζώκα (body) ηεο ζπλάξηεζεο. o Μηα ζπλάξηεζε κπνξεί λα δειωζεί (μερωξηζηά) κέζω ηεο επηθεθαιίδαο ηεο, κε ηελ πινπνίεζε ηεο λα δίλεηαη ζε παξαθάηω ζεκείν ηνπ θώδηθα (ή αθόκα θαη ζε δηαθνξεηηθό αξρείν).

Επηζηξνθή απνηειέζκαηνο o Η επηζηξνθή απνηειέζκαηνο κηαο ζπλάξηεζεο γίλεηαη κε ηελ εληνιή return(<ηιμή>) o Αλ απηή δελ ππάξρεη ή ρξεζηκνπνηεζεί ρωξίο θάπνηα ηηκή, ηόηε ε ζπλάξηεζε επηζηξέθεη κηα ηπραία ηηκή. o Καη ν κεηαγιωηηηζηήο εκθαλίδεη κηα πξνεηδνπνίεζε. o Όηαλ εθηειεζζεί ε εληνιή return ηεξκαηίδεηαη απηόκαηα θαη ε εθηέιεζε ηεο ζπλάξηεζεο. o Η εληνιή return κπνξεί λα ππάξρεη ζε πνιιά ζεκεία ηνπ ζώκαηνο ηεο ζπλάξηεζεο o Φξεηάδεηαη πξνζνρή έηζη ώζηε λα επηζηέθεηαη ην επηζπκεηό απνηέιεζκα ζε θάζε πεξίπηωζε. o Η θπξίωο ζπλάξηεζε main επηζηξέθεη ηελ ηηκή ηεο ζην πεξηβάιινλ εθηέιεζεο (ιεηηνπξγηθό ζύζηεκα). 3

Κιήζε ζπλάξηεζεο o Η θιήζε κηαο ζπλάξηεζεο πξαγκαηνπνηείηαη δίλνληαο ην όλνκα ηεο ζπλάξηεζεο, θαη ζε παξελζέζεηο κηα ηηκή γηα θάζε κηα από ηηο ηππηθέο παξακέηξνπο ηεο, ρξεζηκνπνηώληαο ην, ωο δηαρωξηζηηθό. o Αλ κηα ζπλάξηεζε επηζηξέθεη απνηέιεζκα, ηόηε ε θιήζε ηεο ζπλάξηεζεο απνηειεί έθθξαζε απνηίκεζεο πνπ δίλεη ηηκή ηνπ αληίζηνηρνπ ηύπνπ. o Μηα θιήζε ζπλάξηεζεο κπνξεί λα ρξεζηκνπνηεζεί γηα ηελ αλάζεζε ηηκήο ζε κεηαβιεηή o ή/θαη ζαλ ηκήκα έθθξαζεο ζε ζπλδπαζκό κε θαηάιιειν ηειεζηή o πνπ κπνξεί λα ρξεζηκνπνηεζεί γηα ηηκέο ηνπ ηύπνπ πνπ επηζηξέθεη ε ζπλάξηεζε. 4

/* σπολογισμός μέγιστης τιμής 2 ακεραίων */ #include <stdio.h> int max2(int x, int y) { if (x > y) { return(x); else { return(y); 5 int main(int argc, char *argv[]) { int in1, in2, max; printf("enter 2 ints: "); scanf("%d %d", &in1, &in2); max = max2(in1, in2); printf( max = %d\n", max); return(0);

/* σπολογισμός μέγιστης τιμής 2 ακεραίων */ #include <stdio.h> 6 int max2(int x, int y) { if (x > y) { return(x); return(y); int main(int argc, char *argv[]) { int in1, in2, max; printf("enter 2 int: "); scanf("%d %d", &in1, &in2); max = max2(in1, in2); printf( max = %d\n", max); return(0);

/* σπολογισμός μέγιστης τιμής 2 ακεραίων */ #include <stdio.h> int max2(int x, int y) { int z; 7 if (x > y) { z = x; else { z = y; return(z); int main(int argc, char *argv[]) { int in1,in2, max; printf("enter 2 int: "); scanf("%d %d", &in1, &in2); max = max2(in1, in2); printf( max = %d\n", max);

Παξάκεηξνη ζπλάξηεζεο 8 o Οη παξάκεηξνη πνπ νξίδνληαη θαηά ηελ πινπνίεζε κηαο ζπλάξηεζεο νλνκάδνληαη ηππηθέο παξάκεηξνη. o Τα νλόκαηα ηνπο είλαη ζπκβνιηθά, έηζη ώζηε ν θώδηθαο ηεο ζπλάξηεζεο λα κπνξεί λα επεμεξγαζηεί ηηο ηηκέο πνπ πεξληνύληαη ζηελ θιήζε, θαη ν ηύπνο ηνπο απιά πξνζδηνξίδεη ηνλ ηύπν ηωλ ηηκώλ πνπ πξέπεη λα δνζνύλ ζαλ παξάκεηξνη θαηά ηελ θιήζε. o Οη ηηκέο πνπ δίλνληαη όηαλ θαιείηαη κηα ζπλάξηεζε, γηα θάζε κηα από ηηο ηππηθέο παξακέηξνπο ηεο νλνκάδνηαη πξαγκαηηθέο παξάκεηξνη. o Γηα θάζε θιήζε, ε ίδηα ζπλάξηεζε κπνξεί λα δέρεηαη δηαθνξεηηθέο πξαγκαηηθέο παξακέηξνπο γηα ηηο ίδηεο ηππηθέο παξακέηξνπο.

Πέξαζκα παξακέηξωλ θαζ απνηίκεζε o Γηα θάζε ηππηθή παξάκεηξν ηύπνπ Τ κηαο ζπλάξηεζεο κπνξεί θαηά ηελ θιήζε λα δνζεί ζαλ πξαγκαηηθή παξάκεηξνο κηα νπνηαδήπνηε ηηκή ηύπνπ Τ. o Αλ ζαλ παξάκεηξνο θιήζεο, αληί γηα ζπγθεθξηκέλε ηηκή, δνζεί κηα έθθξαζε, ηόηε απηή ζα απνηηκεζεί θαη ζαλ πξαγκαηηθή παξάκεηξνο ηεο θιήζεο ζα πεξαζηεί ην απνηέιεζκα ηεο έθθξαζεο. o Πηζαλέο παξάκεηξνη θιήζεο γηα ηππηθή παξάκεηξν Τ: o θπξηνιεθηηθό ηύπνπ Τ o κεηαβιεηή ηύπνπ Τ o έθθξαζε πνπ απνηηκάηαη ζε ηηκή Τ 9 o Σαλ παξάκεηξνο θιήζεο κηαο ζπλάξηεζεο κπνξεί λα δνζεί κηα θιήζε ζπλάξηεζεο ηύπνπ Τ.

/* σπολογισμός μέγιστης τιμής 2 ακεραίων */ #include <stdio.h> int max2(int x, int y) { if (x > y) { return(x); else { return(y); τσπικές παράμετροι, τα ονόματα των οποίων τρησιμοποιούνται για να γίνεται αναυορά στις τιμές ποσ θα περαστούν όταν κληθεί η σσγκεκριμένη σσνάρτηση επιστρευόμενη τιμή 10 int main(int argc, char *argv[]) { int in1, in2, max; printf("enter 2 int: "); scanf("%d %d", &in1, &in2); max = max2(in1, in2); printf( max = %d\n", max); πραγματικές παράμετροι, ποσ είναι οι τιμές ποσ περνιούνται στην κλήση σσνάρτησης αποθήκεσση τιμής ποσ επιστρέυεται για τις τιμές ποσ περάστηκαν ως παράμετροι

#include <stdio.h> int max2(int x, int y) { if (x > y) { return(x); else { return(y); 11 int main(int argc, char* argv[]) { int in1, in2, in3; printf("enter 3 int: "); scanf("%d %d %d", &in1, &in2, &in3); printf("%d\n", max2(in1, in2)); printf("%d\n", max2(in1 + in2, 25); printf("%d\n", max2(in1, max2(in2, in3)) );

Παξάκεηξνη θαη ηνπηθέο κεηαβιεηέο o Κάζε ζπλάξηεζε κπνξεί λα δειώλεη λέεο δηθέο ηεο (ηνπηθέο) κεηαβιεηέο πνπ ρξεζηκνπνηεί γηα ηνπο δηθνύο ηεο ζθνπνύο (επηζπκεηή επεμεξγαζία). o Οη ηππηθέο παξάκεηξνη αληηζηνηρνύλ ζε εηδηθέο ηνπηθέο κεηαβιεηέο πνπ ρξεζηκνπνηνύληαη γηα ηελ απνζήθεπζε (θαη πξόζβαζε) ηωλ πξαγκαηηθώλ παξακέηξωλ θαηά ηελ θιήζε ηεο ζπλάξηεζεο. o Σηηο αξρηθέο εθδόζεηο ηεο γιώζζαο C, ε δήιωζε ηωλ ηππηθώλ παξακέηξωλ κηαο ζπλάξηεζεο γηλόηαλ (ζρεδόλ) όπωο γηα ηηο ηνπηθέο κεηαβιεηέο. o Οη ηππηθέο παξάκεηξνη δελ κπνξεί λα έρνπλ ην ίδην όλνκα κε ηνπηθέο κεηαβιεηέο νύηε ην αληίζηξνθν (δηαθνξεηηθά δελ ζα ππήξρε ηξόπνο δηαρωξηζκνύ αλάκεζα ζηελ ηππηθή παξάκεηξν θαη ηελ ηνπηθή κεηαβιεηή κε ην ίδην όλνκα κέζα από ηνλ θώδηθα ηεο ζπλάξηεζεο). 12

Εκβέιεηα κεηαβιεηώλ o Οη ηνπηθέο κεηαβιεηέο (θαη ηππηθέο παξάκεηξνη) νξίδνληαη ζηα πιαίζηα κηαο ζπλάξηεζεο θαη είλαη πξνζπειάζηκεο (νξαηέο) κόλν από ηνλ θώδηθα ηεο. o Οη θαζνιηθέο κεηαβιεηέο νξίδνληαη ζηελ αξρή ηνπ θεηκέλνπ ηνπ πξνγξάκκαηνο έμω από ηηο ζπλαξηήζεηο (θαη έμω από ηελ main) θαη είλαη πξνζπειάζηκεο (νξαηέο) κέζα από θάζε ζπλάξηεζε. o Αλ κηα ηνπηθή κεηαβιεηή (ή ηππηθή παξάκεηξνο) κηαο ζπλάξηεζεο έρεη ην ίδην όλνκα κε κηα θαζνιηθή κεηαβιεηή, ηόηε; o Απνθξύπηεη ηελ θαζνιηθή κεηαβιεηή θαη ηελ θαζηζηά κε πξνζπειάζηκε γηα ηνλ θώδηθα ηεο ζπλάξηεζεο. 13

int a, b, c; 14 void f(int b) { int a, d;...... int main(int argc, char *argv[]) { int c;......

#include <stdio.h> int a = 0, b = 0, c = 0; void f(int b) { int a, d; a = b--; c = a*b; d = c-1; printf("f: a=%d, b=%d, c=%d, d=%d\n", a, b, c, d); 15 int main(int argc, char *argv[]) { int c = 1, d = 1; c = a + b; b = b + 1; printf("main: a=%d, b=%d, c=%d, d=%d\n", a, b, c, d); f(c); printf("main: a=%d, b=%d, c=%d, d=%d\n", a, b, c, d); c = a + b; b = b + 1; f(a); printf("main: a=%d, b=%d, c=%d, d=%d\n", a, b, c, d);

Σπλαξηήζεηο θαη θαζνιηθέο κεηαβιεηέο o Η αιιαγή κηαο θαζνιηθήο κεηαβιεηήο κέζα από κηα ζπλάξηεζε ζπληζηά κηα (θιαζηθή) παξελέξγεηα. o Απηή ε αιιαγή δελ κπνξεί λα εληνπηζηεί ρωξίο λα δηαβάζνπκε ηνλ θώδηθα ηεο ζπλάξηεζεο. o Φπζηθά νη θαζνιηθέο κεηαβιεηέο ππάξρνπλ αθξηβώο γηα απηό ην ιόγν, δειαδή γηα λα επηηξέπνπλ ηελ επηθνηλωλία αλάκεζα ζε δηαθνξεηηθέο ζπλαξηήζεηο. o Απηή ε ιύζε πξέπεη λα επηιέγεηαη κε ζύλεζε (θαη λα ηεθκεξηώλεηαη θαηάιιεια, π.ρ. ζύληνκν ζρόιην) o όηαλ ην επηζπκεηό απνηέιεζκα δελ κπνξεί λα επηηεπρζεί (κε απιό ηξόπν) κε πέξαζκα θαηάιιειωλ παξακέηξωλ θαη επηζηξνθή απνηειεζκάηωλ. 16

προγραμματισμός με παρενέργειες void f() { θαζνιηθέο κεηαβιεηέο 17 προγραμματισμός τωρίς παρενέργειες int f() { τοπικές μεταβλητές return(); 17

Δηάξθεηα δωήο κεηαβιεηώλ 18 o Οη θαζνιηθέο κεηαβιεηέο είλαη κόληκεο, δειαδή πθίζηαληαη θαη θξαηάλε ηηο ηηκέο ηνπο θαζ όιε ηελ δηάξθεηα ηεο εθηέιεζεο ηνπ πξνγξάκκαηνο. o Οη ηνπηθέο κεηαβιεηέο είλαη πξνζωξηλέο, δειαδή πθίζηαληαη θαη θξαηάλε ηηο ηηκέο ηνπο κόλν όζν θξαηά ε εθάζηνηε εθηέιεζε ηεο ζπλάξηεζεο. o Εμαίξεζε: ηνπηθέο κεηαβιεηέο κε ηνλ πξνζδηνξηζκό static είλαη κόληκεο, δειαδή θξαηνύλ ηελ ηηκή ηνπο αλάκεζα ζηηο εθηειέζεηο ηεο ζπλάξηεζεο. o Οη static ηνπηθέο κεηαβιεηέο πξέπεη πάληα λα αξρηθνπνηνύληαη o Η εληνιή αξρηθνπνίεζεο εθηειείηαη κηα θνξά όηαλ ε ζπλάξηεζε θιεζεί γηα πξώηε θνξά.

#include <stdio.h> void f() { 19 static int a = 0; a++; printf("f: a=%d\n", a); int main(int argc, char *argv[]) { f(); f(); f();

Eθηέιεζε ζπλάξηεζεο Όηαλ κηα ζπλάξηεζε Α θαιεί κηα άιιε ζπλάξηεζε Β, ε εθηέιεζε ηνπ θώδηθα ηεο «θαινύζαο» ζπλάξηεζεο ζηακαηά κέρξη λα νινθιεξωζεί ε εθηέιεζε ηνπ θώδηθα ηεο «θιεζείζαο» ζπλάξηεζεο: 1. Η εθηέιεζε ηεο ζπλάξηεζεο Α ζηακαηά ζην ζεκείν όπνπ γίλεηαη ε θιήζε ηεο ζπλάξηεζεο Β. 2. Αξρηθνπνηνύληαη νη παξάκεηξνη θαη ηνπηθέο κεηαβιεηέο ηεο ζπλάξηεζεο Β. 3. Αξρίδεη ε εθηέιεζε ηνπ θώδηθα ηεο ζπλάξηεζεο Β (πνπ κπνξεί λα θαιέζεη θαη άιιεο ζπλαξηήζεηο). 4. Όηαλ ηεξκαηίδεηαη ε εθηέιεζε ηεο ζπλάξηεζεο Β, ε εθηέιεζε ζπλερίδεηαη ζηελ ζπλάξηεζε Α κε ηελ ακέζωο επόκελε εληνιή, κεηά ηελ θιήζε ηεο Β. 20

Πιαίζην εθηέιεζεο ζπλάξηεζεο Ο ίδηνο θώδηθαο ηεο ζπλάξηεζεο εθηειείηαη θάζε θνξά ζε έλα δηαθνξεηηθό πιαίζην εθηέιεζεο (ζε έλαλ μερωξηζηό «κηθξόθνζκν»). Τν πιαίζην εθηέιεζεο δεκηνπξγείηαη (εθ λένπ) πξηλ αξρίζεη ε εθηέιεζε ηνπ θώδηθα ηεο ζπλάξηεζεο θαη θαηαζηξέθεηαη όηαλ νινθιεξωζεί ε εθηέιεζε ηεο. Γηα θάζε θιήζε, δεκηνπξγείηαη έλα θαηλνύξγην θαη μερωξηζηό πιαίζην εθηέιεζεο, πνπ δελ έρεη ζρέζε κε πξνεγνύκελα πιαίζηα εθηέιεζεο. 21 Τν πιαίζην εθηέιεζεο ρξεζηκεύεη γηα ηελ απνζήθεπζε ηωλ ηνπηθώλ κεηαβιεηώλ θαη ηωλ πξαγκαηηθώλ παξακέηξωλ γηα ηελ ζπγθεθξηκέλε θιήζε.

void f1() { <A> void f2() { <B> f1(); <C> int main(){ <D> f2(); <E> κλήση main 22

void f1() { <A> void foo2() { <B> f1(); <C> int main(){ <D> f2(); <E> κλήση main εκτέλεση D 23

void f1() { <A> void f2() { <B> f1(); <C> int main(){ <D> f2(); <E> κλήση main εκτέλεση D κλήση f2 24

void f1() { <A> void foo2() { <B> f1(); <C> int main(){ <D> f2(); <E> κλήση main εκτέλεση D κλήση f2 εκτέλεση B 25

void f1() { <A> void f2() { <B> f1(); <C> int main(){ <D> f2(); <E> κλήση main εκτέλεση D κλήση f2 εκτέλεση B κλήση f1 26

void f1() { <A> void f2() { <B> f1(); <C> int main(){ <D> f2(); <E> κλήση main εκτέλεση D κλήση f2 εκτέλεση B κλήση f1 εκτέλεση A 27

void f1() { <A> void f2() { <B> f1(); <C> int main(){ <D> f2(); <E> κλήση main εκτέλεση D κλήση f2 εκτέλεση B κλήση f1 εκτέλεση A επιστρουή 28

void f1() { <A> void f2() { <B> f1(); <C> int main(){ <D> f2(); <E> κλήση main εκτέλεση D κλήση f2 εκτέλεση B κλήση f1 εκτέλεση A επιστρουή εκτέλεση C 29

void f1() { <A> void f2() { <B> f1(); <C> int main(){ <D> f2(); <E> κλήση main εκτέλεση D κλήση f2 εκτέλεση B κλήση f1 εκτέλεση A επιστρουή εκτέλεση C επιστρουή 30

void f1() { <A> void f2() { <B> f1(); <C> int main(){ <D> f2(); <E> κλήση main εκτέλεση D κλήση f2 εκτέλεση B κλήση f1 εκτέλεση A επιστρουή εκτέλεση C επιστρουή εκτέλεση Ε 31

void f1() { <A> void f2() { <B> f1(); <C> int main(){ <D> f2(); <E> κλήση main εκτέλεση D κλήση f2 εκτέλεση B κλήση f1 εκτέλεση A επιστρουή εκτέλεση C επιστρουή εκτέλεση Ε επιστρουή 32

Δέζκεπζε κλήκεο κεηαβιεηώλ Η κλήκε ηωλ κόληκωλ (θαζνιηθώλ θαη ηνπηθώλ) κεηαβιεηώλ είλαη ζηαηηθή, θαη δεζκεύεηαη γηα όιε ηελ δηάξθεηα ηεο εθηέιεζεο ηνπ πξνγξάκκαηνο. Η κλήκε ηωλ πξνζωξηλώλ (ηνπηθώλ) κεηαβιεηώλ κηαο ζπλάξηεζεο είλαη δπλακηθή Δεζκεύεηαη / απνδεζκεύεηαη καδί κε ην αληίζηνηρν πιαίζην εθηέιεζεο. Η δηαρείξηζε ηεο ηνπηθήο κλήκεο ηωλ ζπλαξηήζεωλ γίλεηαη κέζω ηνπ κεραληζκνύ ηεο ζηνίβαο. Υπνζηεξίδεηαη ε ελαιιάμ ή/θαη αιπζηδωηή εθηέιεζε ζπλαξηήζεωλ κε ηνπο ιηγόηεξνπο δπλαηνύο πόξνπο θαη ηελ κεγαιύηεξε δπλαηή ηαρύηεηα εθηέιεζεο. 33

Σηνίβα Γεζκεύεηαη έλα (κεγάιν) ζπλερόκελν ηκήκα κλήκεο, πνπ ρξεζηκνπνηείηαη ζύκθωλα κε ηελ ινγηθή ηεο ζηνίβαο (Last In First Out - LIFO queue) γηα ηελ απνζήθεπζε ηωλ ηηκώλ ηωλ παξακέηξωλ θαη ηνπηθώλ κεηαβιεηώλ ηωλ ζπλαξηήζεωλ. Kαη ηωλ θαηαρωξεηώλ ηεο CPU κεηαμύ θιήζεωλ δηαθνξεηηθώλ ζπλαξηήζεωλ Τν όξην ηεο κλήκεο ηεο ζηνίβαο πνπ ρξεζηκνπνηείηαη αλά πάζα ζηηγκή ππνδεηθλύεηαη από έλα εηδηθό δείθηε (πνπ δηαρεηξίδεηαη ην πεξηβάιινλ εθηέιεζεο) πνπ νλνκάδεηαη stack pointer. Κάζε θνξά πνπ γίλεηαη κηα λέα θιήζε θαη θάζε θνξά πνπ ηεξκαηίδεηαη κηα θιήζε, ε ηηκή ηνπ stack pointer αιιάδεη ώζηε λα δείρλεη ζην ηξέρωλ πιαίζην εθηέιεζεο. 34

int v1; κλήση main void f1(int v2) { int v3; void f2(int v4) { int v5; f1(); στατική μνήμη v1 στοίβα 35 int main(){ int v6; f2(); SP v6 πλαίσιο main

int v1; εκτέλεση main void f1(int v2) { int v3; void f2(int v4) { int v5; f1(); στατική μνήμη v1 στοίβα 36 int main(){ int v6; f2(); SP v6 πλαίσιο main

int v1; κλήση f2 void f1(int v2) { int v3; void f2(int v4) { int v5; f1(); int main(){ int v6; f2(); στατική μνήμη v1 SP στοίβα v5 v4 v6 πλαίσιο f2 πλαίσιο main 37

int v1; εκτέλεση f2 void f1(int v2) { int v3; void f2(int v4) { int v5; f1(); int main(){ int v6; f2(); στατική μνήμη v1 SP στοίβα v5 v4 v6 πλαίσιο f2 πλαίσιο main 38

int v1; κλήση f1 void f1(int v2) { int v3; void f2(int v4) { int v5; f1(); int main(){ int v6; f2(); στατική μνήμη v1 SP στοίβα v3 v2 v5 v4 v6 πλαίσιο f1 πλαίσιο f2 πλαίσιο main 39

int v1; εκτέλεση f1 void f1(int v2) { int v3; void f2(int v4) { int v5; f1(); int main(){ int v6; f2(); στατική μνήμη v1 SP στοίβα v3 v2 v5 v4 v6 πλαίσιο f1 πλαίσιο f2 πλαίσιο main 40

int v1; επιστρουή f1 void f1(int v2) { int v3; void f2(int v4) { int v5; f1(); int main(){ int v6; f2(); στατική μνήμη v1 SP στοίβα v3 v2 v5 v4 v6 πλαίσιο f2 πλαίσιο main 41

int v1; εκτέλεση f2 void f1(int v2) { int v3; void f2(int v4) { int v5; f1(); int main(){ int v6; f2(); στατική μνήμη v1 SP στοίβα v3 v2 v5 v4 v6 πλαίσιο f2 πλαίσιο main 42

int v1; επιστρουή f2 void f1(int v2) { int v3; void f2(int v4) { int v5; f1(); int main(){ int v6; f2(); στατική μνήμη v1 SP στοίβα v3 v2 v5 v4 v6 πλαίσιο main 43

int v1; εκτέλεση main void f1(int v2) { int v3; void f2(int v4) { int v5; f1(); int main(){ int v6; f2(); στατική μνήμη v1 SP στοίβα v3 v2 v5 v4 v6 πλαίσιο main 44

Υπεξρείιηζε ζηνίβαο Tν κέγεζνο ηεο ζηνίβαο ελόο πξνγξάκκαηνο είλαη (ζπλήζωο) πεξηνξηζκέλν Γηαηί; Υπάξρεη πεξίπηωζε έλα πξόγξακκα λα εμαληιήζεη ηελ κλήκε ηεο ζηνίβαο ηνπ, κε απνηέιεζκα απηή λα ππεξρεηιίζεη (stack overflow): 1. Γίλνληαη πνιιέο αιπζηδωηέο θιήζεηο ζπλάξηεζεο. 2. Τν κέγεζνο ηωλ ηνπηθώλ κεηαβιεηώλ κηαο ζπλάξηεζεο είλαη κεγάιν, θαη δελ ρωξά ζηελ ζηνίβα. Τόηε ην πξόγξακκα ηεξκαηίδεηαη κε κήλπκα ιάζνπο Παξόκνην κε απηό ζηελ πεξίπηωζε ηεο πξόζβαζεο ζε κε επηηξεπηή ζέζε κλήκε, π.ρ. κέζω δείθηε. 45