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

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

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

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

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

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

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

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

Constructors and Destructors in C++

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η/Υ A ΤΑΞΕΩΣ ΑΕ Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ

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

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

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

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

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

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

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

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

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

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

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

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

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

242 - Ειζαγωγή ζηοσς Η/Υ

Δομή ππογπάμμαηορ ζηη C++

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

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

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

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

ΑΡΥΔ ΟΙΚΟΝΟΜΙΚΗ ΘΔΩΡΙΑ ΛΤΔΙ ΓΙΑΓΩΝΙΜΑΣΟ ΚΔΦΑΛΑΙΟΤ 2

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

ΠΛΗ36. Άσκηση 1. Άσκηση 2. Οη δηεπζύλζεηο ησλ 4 σλ ππνδηθηύσλ είλαη νη αθόινπζεο. Υπνδίθηπν Α: /27 Υπνδίθηπν Β:

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

Image J Plugin particle tracker για παρακολούθηση της κίνησης σωματιδίων

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

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

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

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

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

Intel Accelerate Your Code

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

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

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

Αιγόξηζκνη Δθρώξεζε, Δίζνδνο θαη Έμνδνο ηηκώλ Γνκή αθνινπζίαο. Δηζαγσγή ζηηο Αξρέο ηεο Δπηζηήκεο ησλ Η/Υ

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.

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

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

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

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

Εξγαζηήξην Πιεξνθνξηθήο

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

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

Ηλεκηπονικά Απσεία και Διεπαθέρ

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

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

Σηα παξαδείγκαηα πνπ αθνινπζνύλ ρξεζηκνπνηήζεθαλ ην JQUIZ, ην JCROSS θαη ην JMATCH, πνπ αλαιπηηθά πεξηγξάθνληαη παξαθάηω.

ΔΦΑΡΜΟΜΔΝΑ ΜΑΘΗΜΑΣΙΚΑ ΣΗ ΧΗΜΔΙΑ Ι ΘΔΜΑΣΑ Α επηέκβξηνο Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(x,y) =

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

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Ειζαγωγή ζηη Φωηογραθία. Χριζηάκης Σαζεΐδης EFIAP

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

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

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

ΑΕΠΠ 1o Επαναληπηικό Διαγώνιζμα

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

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

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

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

Έλεγτος Ορθογραθίας - Γραμμαηικής. Ορθογραθικός και Γραμμαηικός Έλεγτος

1. Άζξνηζκα. Να ππνινγηζηεί ην άζξνηζκα κε ηελ ηερληθή ηεο εμίζσζεο αζξνίζκαηνο. Χξεζηκνπνηνύκε ηνλ ηύπν: ( ) ( )

Δξγαιεία Καηαζθεπέο 1 Σάμε Δ Δ.Κ.Φ.Δ. ΥΑΝΗΩΝ ΠΡΩΣΟΒΑΘΜΗΑ ΔΚΠΑΗΓΔΤΖ. ΔΝΟΣΖΣΑ 2 ε : ΤΛΗΚΑ ΩΜΑΣΑ ΔΡΓΑΛΔΗΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Ογθνκεηξηθό δνρείν

Κόληξα πιαθέ ζαιάζζεο κε δηαζηάζεηο 40Υ40 εθ. Καξθηά 3 θηιά πεξίπνπ κε κήθνο ηξηπιάζην από ην πάρνο ηνπ μύινπ θπξί κεγάιν θαη ππνκνλή

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη

Η επιζκόπηζη ηης έμμιζθης ενηολής ζηην Αλλοδαπή. Καηεξίλα Γαιαλνπνύινπ, Intellectual Property Manager, Microsoft Ειιάο Α.Ε.

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

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

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

ΣΧΕΣΕΙΣ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ

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

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

ΕΠΑΝΑΛΗΠΣΙΚΕ ΑΠΟΛΤΣΗΡΙΕ ΕΞΕΣΑΕΙ Γ ΣΑΞΗ ΗΜΕΡΗΙΟΤ ΕΝΙΑΙΟΤ ΛΤΚΕΙΟΤ ΠΑΡΑΚΕΤΗ 4 ΙΟΤΛΙΟΤ ΑΕΠΠ

Πξώην εξγαζηεξηαθό κάζεκα. Αξρηηεθηνληθή Η/Υ Ι

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

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

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

Transcript:

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

Η Αλάγθε Οκαδνπνίεζεο Πνιιέο θνξέο έρνπκε πιεξνθνξίεο δηαθνξεηηθνύ ηύπνπ νη νπνίεο όκσο έρνπλ κεγάιε ζρέζε κεηαμύ ηνπο. Παξάδεηγκα Θέινπκε λα θξαηήζνπκε κηα ζπιινγή από θνηηεηέο όπνπ ν θάζε θνηηεηήο έρεη αξηζκό κεηξώνπ όλνκα ειηθία Υαξνθόπεην Παλεπηζηήκην 2/44

Εγγξαθέο Η C καο παξέρεη ηελ δπλαηόηεηα λα θηηάμνπκε εγγξαθέο νη νπνίεο νκαδνπνηνύλ άιινπο ηύπνπο. 1 struct student 2 { 3 int AM ; 4 char name [ 4 0 ] ; 5 int age ; 6 }; Η δήισζε απηή θηηάρλεη κηα εγγξαθή ε νπνία πεξηέρεη 2 αθεξαίνπο θαη 1 πίλαθα κε 40 ραξαθηήξεο. Αθνύ νξίζνπκε απηή ηελ εγγξαθή κπνξνύκε λα δειώζνπκε κεηαβιεηέο κε ηύπν απηήλ ηελ εγγξαθή. Υαξνθόπεην Παλεπηζηήκην 3/44

Εγγξαθέο 1 #include < s t d i o. h> 2 3 struct student 4 { 5 int AM ; 6 char name [ 4 0 ] ; 7 int age ; 8 }; 9 10 main ( ) 11 { 12 struct student s1 ; 13 14 return 0 ; 15 } Αθνύ νξίζνπκε κηα εγγξαθή, κπνξνύκε λα δειώζνπκε κεηαβιεηέο κε ηύπν ηελ εγγξαθή απηή. Ο θώδηθαο νξίδεη κηα κεηαβιεηή κε ηύπν ηελ εγγξαθή struct student θαη όλνκα s1. Υαξνθόπεην Παλεπηζηήκην 4/44

Εγγξαθέο 1 #include < s t d i o. h> 2 3 struct student 4 { 5 int AM ; 6 char name [ 4 0 ] ; 7 int age ; 8 }; 9 10 main ( ) 11 { 12 struct student s1 ; 13 14 return 0 ; 15 } Δειώλνληαο ηελ κεηαβιεηή s1 έρνπκε νπζηαζηηθά δειώζεη κηα κεηαβιεηή πνπ πεξηέρεη 2 αθεξαίνπο θαη 1 πίλαθα 40 ραξαθηήξσλ. Υαξνθόπεην Παλεπηζηήκην 5/44

Αξρηθνπνίεζε Εγγξαθώλ Όπσο όιεο νη κεηαβιεηέο ζηελ C νη εγγξαθέο δελ αξρηθνπνηνύληαη θαηά ηελ δήισζε. Μπνξνύκε όκσο λα ηηο αξρηθνπνηήζνπκε κε ηξόπν παξόκνην κε απηόλ πνπ ρξεζηκνπνηνύκε γηα ηνπο πίλαθεο. 1 #include < s t d i o. h> 2 3 struct student 4 { 5 int AM ; 6 char name [40] ; 7 int age ; 8 }; 9 10 main ( ) 11 { 12 struct student s1 = { 1, "John", 20}; 13 14 return 0 ; 15 } Υαξνθόπεην Παλεπηζηήκην 6/44

Πξνζπέιαζε Εγγξαθώλ Οη εγγξαθέο είλαη κηα ζπιινγή κεηαβιεηώλ. Σηο κεηαβιεηέο απηέο κπνξνύκε λα ηηο πξνζπειάζνπκε. Γηα λα πξνζπειάζνπκε κηα κεηαβιεηή ζε κηα εγγξαθή ρξεζηκνπνηνύκε ην όλνκα ηεο κεηαβιεηήο ηεο εγγξαθήο, κηα ηειεία θαη κεηά ην όλνκα ηεο κεηαβιεηήο πνπ ζέινπκε λα πξνζπειάζνπκε. Υαξνθόπεην Παλεπηζηήκην 7/44

Πξνζπέιαζε Εγγξαθώλ 1 #include < s t d i o. h> 2 3 struct student 4 { 5 int AM ; 6 char name [ 4 0 ] ; 7 int age ; 8 }; 9 10 main ( ) 11 { 12 struct student s1 = { 1, "John", 21}; 13 14 printf ( "AM = %d\n", s1. AM ) ; 15 printf ( "name = %s\n", s1. name ) ; 16 printf ( "age = %d\n", s1. age ) ; 17 18 return 0 ; 19 } Γξάθνληαο s1.name έρνπκε πξόζβαζε ζηελ κεηαβιεηή name πνπ βξίζθεηαη κέζα ζηελ εγγξαθή s1. Με ηνλ ίδην ηξόπν κπνξνύκε λα θάλνπκε αλάζεζε. Γηα παξάδεηγκα γξάθνληαο s1.age = 22 κπνξνύκε λα αιιάμνπκε ηελ ειηθία. Υαξνθόπεην Παλεπηζηήκην 8/44

Πξνζπέιαζε Εγγξαθώλ 1 #include < s t d i o. h> 2 3 struct student 4 { 5 int AM ; 6 char name [ 4 0 ] ; 7 int age ; 8 }; 9 10 main ( ) 11 { 12 struct student s1 = { 1, "John", 21} 13 struct student s2 = { 2, "Mary ", 23} 14 15 printf ( "AM = %d\n", s1. AM ) ; 16 printf ( "name = %s\n", s1. name ) ; 17 printf ( "age = %d\n", s1. age ) ; 18 printf ( "\n" ) ; 19 20 printf ( "AM = %d\n", s2. AM ) ; 21 printf ( "name = %s\n", s2. name ) ; 22 printf ( "age = %d\n", s2. age ) ; 23 24 return 0 ; 25 } Δειώλνληαο δύν εγγξαθέο student έρνπκε δύν μερσξηζηά ζύλνια κεηαβιεηώλ, έλα γηα θάζε θνηηεηή. s1.name είλαη ην όλνκα ηνπ 1νπ θνηηεηή, ηνπ δεύηεξνπ. Υαξνθόπεην Παλεπηζηήκην 9/44

Εγγξαθέο θαη Πίλαθεο Η ρξεζηκόηεηα ησλ δνκώλ θαίλεηαη αθόκε παξαπάλσ ζε ζπλδπαζκό κε ηελ ρξήζε πηλάθσλ. Μπνξνύκε λα δειώζνπκε π.ρ έλα πίλαθα κε 100 θνηηεηέο. struct student array [ 1 0 0 ] ; Υαξνθόπεην Παλεπηζηήκην 10/44

Εγγξαθέο θαη Πίλαθεο 1 #include < s t d i o. h> 2 3 struct student { 4 int AM ; 5 char name [ 4 0 ] ; 6 int age ; 7 }; 8 9 main ( ) 10 { 11 int i ; 12 struct student a [ 3 ] = { 13 {1, "Mary", 21}, 14 {2, "John", 22}, 15 {3, "Helen", 18}, 16 }; 17 18 for ( i = 0; i< 3; i++) { 19 printf ( "AM=%d, name=%s, age=%d\n", 20 a[i ]. AM, a[i ]. name, a[i ]. age ); 21 } 22 23 return 0 ; 24 } Με ηελ ρξήζε πηλάθσλ κπνξνύκε λα θξαηάκε ζπιινγέο από εγγξαθέο θαη λα ηηο ρεηξηδόκαζηε κε επαλαιήςεηο. Υαξνθόπεην Παλεπηζηήκην 11/44

Εγγξαθέο θαη Δείθηεο Όπσο κε όινπο ηνπο ηύπνπο, κπνξνύκε λα νξίζνπκε έλα δείθηε ζε κηα εγγξαθή. 1 #include < s t d i o. h> 2 3 struct student { 4 int AM ; 5 char name [ 4 0 ] ; 6 int age ; 7 }; 8 9 main ( ) 10 { 11 struct student s = { 1, "Mary", 21}; 12 struct student * ptr = &s ; 13 14 return 0 ; 15 } Υαξνθόπεην Παλεπηζηήκην 12/44

Πξνζπέιαζε Εγγξαθώλ κέζσ Δεηθηώλ Η πξόζβαζε όκσο ησλ κειώλ κηαο εγγξαθήο κέζσ ελόο δείθηε δελ γίλεηαη πιένλ κε ηνλ ηειεζηή κέινπο εγγξαθήο (ηειεία), αιιά κε ηνλ ηειεζηή δείθηε εγγξαθήο (->) όπσο θαίλεηαη παξαθάησ. 1 #include < s t d i o. h> 2 3 struct student { 4 int AM ; 5 char name [ 4 0 ] ; 6 int age ; 7 }; 8 9 main ( ) 10 { 11 struct student s = { 1, "Mary", 21}; 12 struct student * ptr = &s ; 13 14 printf ( "AM=%d, name=%s, age=%d\n", ptr >AM, ptr >name, ptr >age ) ; 15 16 return 0 ; 17 } Υαξνθόπεην Παλεπηζηήκην 13/44

Πξνηεξαηόηεηα Σειεζηώλ 1 παρενθέζεις: (), [],., >, expr++ ή expr Τπνινγίδνληαη πξώηα, από ηα αξηζηεξά πξνο ηα δεμηά. Εάλ ππάξρνπλ έλζεηεο ππνινγίδνληαη πξώηα νη εζσηεξηθέο. 2 μοναδιαίοι ηελεζηές: +,, ++expr, expr,!, θαη & Τπνινγίδνληαη από δεμηά πξνο ηα αξηζηεξά. 3 πολλαπλαζιαζμός, διαίρεζη και σπόλοιπο:, /, ή % Τπνινγίδνληαη δεύηεξα από αξηζηεξά πξνο ηα δεμηά. 4 πρόζθεζη, αθαίρεζη: + ή Εάλ ππάξρνπλ πνιινί, ππνινγίδνληαη από ηα αξηζηεξά πξνο ηα δεμηά. 5 Στεζιακοί: <, >, <=, >= Τπνινγίδνληαη από ηα αξηζηεξά πξνο ηα δεμηά. 6 Ιζόηηηας: ==,! = Τπνινγίδνληαη από ηα αξηζηεξά πξνο ηα δεμηά. 7 λογικό AND: && Από αξηζηεξά πξνο ηα δεμηά. 8 λογικό OR: Από αξηζηεξά πξνο ηα δεμηά. 9 εκτώρηζης: =, + =, =, =, / =, % = Από δεμηά πξνο ηα αξηζηεξά. Υαξνθόπεην Παλεπηζηήκην 14/44

Αλαπαξάζηαζε Εγγξαθώλ ζηε Μλήκε Η αλαπαξάζηαζε ησλ δνκώλ ζηελ κλήκε είλαη σο ζπιινγή ησλ κεηαβιεηώλ πνπ απνηεινύληαη. Πξέπεη όκσο λα παίξλνπκε ππόςε καο πσο νη ππνινγηζηέο δηαβάδνπλ από ηελ κλήκε ζε πνιιαπιάζηα ησλ 4 bytes (ή ησλ 8 ζε 64-bit αξρηηεθηνληθέο). Ο κεηαγισηηηζηήο ινηπόλ, γηα λα επηηύρεη κέγηζηε ηαρύηεηα πξνζζέηεη πνιιέο θνξέο θαη δηάθνξα άρξεζηα bytes, ηα νπνία ρξεζηκεύνπλ ώζηε λα ππάξρεη ζσζηή επζπγξάκκηζε. ηόρνο ηνπ κεηαγισηηηζηή είλαη γηα βαζηθνύο ηύπνπο (int, float, θ.η.ι) λα κελ δεηάεη 2 θνξέο πιεξνθνξία από ηελ κλήκε. Υαξνθόπεην Παλεπηζηήκην 15/44

Αλαπαξάζηαζε Εγγξαθώλ ζηε Μλήκε Ελώ έλαο αθέξαηνο έρεη κέγεζνο 4 bytes θαη έλαο ραξαθηήξαο έρεη κέγεζνο 1 byte, ε παξαθάησ εγγξαθή struct test { char a ; int b ; }; Σν πξόβιεκα είλαη πσο έλαο αθέξαηνο πξέπεη λα μεθηλάεη ζε πνιιαπιάζην ηνπ 4. έρεη κέγεζνο 8 bytes, αθνύ ν κεηαγισηηηζηήο πξνζζέηεη 3 αθόκε κεηά ηνλ ραξαθηήξα a. Υαξνθόπεην Παλεπηζηήκην 16/44

Αλαπαξάζηαζε Εγγξαθώλ ζηε Μλήκε Ελώ έλαο αθέξαηνο έρεη κέγεζνο 4 bytes θαη έλαο ραξαθηήξαο έρεη κέγεζνο 1 byte, ε παξαθάησ εγγξαθή struct test { char a ; char b ; char c ; int z ; }; Σν πξόβιεκα είλαη πσο έλαο αθέξαηνο πξέπεη λα μεθηλάεη ζε πνιιαπιάζην ηνπ 4. έρεη κέγεζνο 8 bytes, αθνύ ν κεηαγισηηηζηήο πξνζζέηεη 1 αθόκε κεηά ηνλ ραξαθηήξα c. Υαξνθόπεην Παλεπηζηήκην 17/44

Υξήζε Εγγξαθώλ κε πλαξηήζεηο Μπνξνύκε λα πεξάζνπκε εγγξαθέο ζε ζπλαξηήζεηο όπσο νπνηαδήπνηε άιιε κεηαβιεηή. 1 #include < s t d i o. h> 2 3 struct student { 4 int AM ; 5 char name [ 2 0 ] ; 6 int age ; 7 }; 8 9 void print ( struct student s ) 10 { 11 printf ( "AM=%d, name=%s, age=%d\n", s. AM, s. name, s. age ) ; 12 } 13 14 main ( ) 15 { 16 struct student s = { 1, "John", 20}; 17 print ( s ) ; 18 19 return 0 ; 20 } Υαξνθόπεην Παλεπηζηήκην 18/44

Υξήζε Εγγξαθώλ κε πλαξηήζεηο Πξνζνρή όκσο γηαηί νη εγγξαθέο ρξεζηκνπνηνύλ θιήζε κέζσ ηηκήο (call by value). 1 #include < s t d i o. h> 2 #include < s t r i n g. h> 3 4 struct student { 5 int AM ; 6 char name [ 2 0 ] ; 7 int age ; 8 }; 9 10 void setname ( struct student t, char * name ) 11 { 12 strcpy ( t. name, name ) ; 13 } 14 15 main ( ) 16 { 17 struct student s = { 1, "John", 20}; 18 setname ( s, "Fred" ) ; 19 printf ( "name = %s\n", s. name ) ; 20 21 return 0 ; 22 } Όιε ε εγγξαθή αληηγξάθεηαη θαη νη αιιαγέο ηεο ζπλάξηεζεο θαηαζηξέθνληαη κε ην ηέινο ηεο ζπλάξηεζεο. Σν πξόγξακκα ηππώλεη name = John Υαξνθόπεην Παλεπηζηήκην 19/44

Υξήζε Εγγξαθώλ κε πλαξηήζεηο 1 #include < s t d i o. h> 2 #include < s t r i n g. h> 3 4 struct student { 5 int AM ; 6 char name [ 2 0 ] ; 7 int age ; 8 }; 9 10 void setname ( struct student * t, char * name ) 11 { 12 strcpy ( t >name, name ) ; 13 } 14 15 main ( ) 16 { 17 struct student s = { 1, "John", 20}; 18 setname(&s, "Fred" ) ; 19 printf ( "name = %s\n", s. name ) ; 20 21 return 0 ; 22 } Γηα θιήζε κέζσ αλαθνξάο πξέπεη λα δώζνπκε δείθηε. Σν πξόγξακκα ηππώλεη name = Fred Υαξνθόπεην Παλεπηζηήκην 20/44

Απηναλαθνξά Εγγξαθώλ Μία εγγξαθή δελ κπνξεί λα πεξηέρεη ηνλ εαπηό ηεο. Μπνξεί όκσο λα πεξηέρεη έλα δείθηε ζηνλ εαπηό ηεο. struct node { int data ; struct node * next ; }; data data Υαξνθόπεην Παλεπηζηήκην 21/44

Δεκηνπξγία Καηλνύξησλ Σύπσλ (typedef) Η C καο παξέρεη ηελ δπλαηόηεηα λα θηηάμνπκε δηθνύο καο ηύπνπο. Γηα παξάδεηγκα ζέινπκε λα θηηάμνπκε έλα ηύπν θνηηεηή ν νπνίνο λα πεξηέρεη ηνλ αξηζκό κεηξώνπ, ην όλνκα θαη ηελ ειηθία. 1 2 struct stud 3 { 4 int AM ; 5 char name [ 4 0 ] ; 6 int age ; 7 }; 8 9 typedef struct stud student ; Οπζηαζηηθά ε δεζκεπκέλε ιέμε typedef καο επηηξέπεη λα δειώζνπκε ζπλώλπκα ηύπσλ. Υαξνθόπεην Παλεπηζηήκην 22/44

Δεκηνπξγία Καηλνύξησλ Σύπσλ (typedef) Πιένλ κπνξνύκε λα γξάςνπκε απεπζείαο main ( ) { student s1, s2 ; } return 0 ; γηα λα δειώζνπκε δπν κεηαβιεηέο ηύπνπ student. Υαξνθόπεην Παλεπηζηήκην 23/44

Δεκηνπξγία Καηλνύξησλ Σύπσλ (typedef) Μπνξνύκε λα ζπλδπάζνπκε ηελ δήισζε ηεο εγγξαθήο κε ηελ δεκηνπξγία ζπλώλπκνπ. typedef struct { int AM ; char name [ 4 0 ] ; int age ; } student ; main ( ) { student s1, s2 ; } return 0 ; Υαξνθόπεην Παλεπηζηήκην 24/44

Δεκηνπξγία Καηλνύξησλ Σύπσλ (typedef) Πξνζνρή, ην typedef κπνξνύκε λα ην ρξεζηκνπνηήζνπκε γηα νπνηνδήπνηε ηύπν. typedef long mytype ; main ( ) { mytype x = 1 0 0 ; } return 0 ; Παξαπάλσ δεκηνπξγνύκε έλα ζπλώλπκν κε όλνκα mytype γηα ηνλ ηύπν long. Υαξνθόπεην Παλεπηζηήκην 25/44

Δεκηνπξγία Καηλνύξησλ Σύπσλ (typedef) Πξνζνρή, ην typedef κπνξνύκε λα ην ρξεζηκνπνηήζνπκε γηα νπνηνδήπνηε ηύπν. 1 #include < s t d i o. h> 2 3 typedef void (*funcptr)(int ) ; 4 5 void foo ( int x ) 6 { 7 printf ( "%d\n", x ) ; 8 } 9 10 int main ( ) 11 { 12 funcptr f = &foo ; 13 (*f)(5); 14 15 return 0 ; 16 } Εδώ δειώλνπκε έλα ζπλώλπκν κε όλνκα funcptr γηα ηνλ ηύπν δείθηε ζε ζπλάξηεζε πνπ επηζηξέθεη void θαη δέρεηαη έλα αθέξαην. Υαξνθόπεην Παλεπηζηήκην 26/44

Παξάδεηγκα Εγγξαθώλ Ρεηνί Αξηζκνί Θέινπκε λα θηηάμνπκε κηα κηθξή βηβιηνζήθε πνπ λα ππνζηεξίδεη ηελ ρξήζε ξεηώλ (rational) αξηζκώλ. Οη ξεηνί αξηζκνί είλαη απηνί πνπ κπνξνύλ λα γξαθνύλ σο θιάζκα δύν αθεξαίσλ όπνπ ν παξαλνκαζηήο είλαη δηάθνξνο ηνπ κεδέλ. Ξεθηλάκε κε ηνλ νξηζκό ηνπ ηύπνπ: 1 #include < s t d i o. h> 2 #include < s t d l i b. h> 3 4 typedef struct { 5 int a, p ; 6 } rational ; Υαξνθόπεην Παλεπηζηήκην 27/44

Παξάδεηγκα Εγγξαθώλ Ρεηνί Αξηζκνί Παξέρνπκε κηα ζπλάξηεζε κε παξακέηξνπο δύν αθεξαίνπο a θαη p ε νπνία καο επηζηξέθεη ηνλ ξεηό αξηζκό. 7 rational rational_create ( int a, int p ) 8 { 9 if ( p == 0) { 10 printf ( "Division by zero!\n" ) ; 11 abort ( ) ; 12 } 13 if ( p < 0) { 14 p = p; 15 a = a; 16 } 17 rational x ; 18 x.a = a; 19 x.p = p; 20 return x ; 21 } Η ζπλάξηεζε θάλεη έιεγρν ώζηε ν παξαλνκαζηήο λα είλαη δηάθνξνο ηνπ κεδελόο. Υαξνθόπεην Παλεπηζηήκην 28/44

Παξάδεηγκα Εγγξαθώλ Ρεηνί Αξηζκνί Παξέρνπκε επίζεο δπν ζπλαξηήζεηο: κία γηα ηελ δεκηνπξγία ηνπ ξεηνύ κεδέλ θαη κία γηα λα βξνύκε ηνλ αληίζεην ελόο ξεηνύ αξηζκνύ 22 rational rational_zero ( ) 23 { 24 rational x = { 0, 1}; 25 return x ; 26 } 27 28 rational rational_minus ( rational a ) 29 { 30 a.a = a. a ; 31 return a ; 32 } Υαξνθόπεην Παλεπηζηήκην 29/44

Παξάδεηγκα Εγγξαθώλ Ρεηνί Αξηζκνί ηελ ζπλέρεηα πινπνηνύκε πξόζζεζε θαη αθαίξεζε δύν ξεηώλ αξηζκώλ. 33 rational rational_add ( rational a, rational b ) 34 { 35 rational t ; 36 t.p = a.p * b.p; 37 t.a = a.a * b.p + b.a * a.p; 38 return t ; 39 } 40 41 rational rational_subtract ( rational a, rational b ) 42 { 43 return rational_add ( a, rational_minus ( b ) ) ; 44 } Η ζπλάξηεζε ηεο αθαίξεζεο γηα επθνιία ρξεζηκνπνηεί ηηο ζπλαξηήζεηο πξόζζεζεο θαη ππνινγηζκνύ ηνπ αληηζέηνπ. Υαξνθόπεην Παλεπηζηήκην 30/44

Παξάδεηγκα Εγγξαθώλ Ρεηνί Αξηζκνί Παξαθάησ θαίλεηαη ε πινπνίεζε κηαο ζπλάξηεζεο πνπ ππνινγίδεη ηνλ αληίζηξνθν ελόο αξηζκνύ. 45 rational rational_inverse ( rational a ) 46 { 47 if ( a. a == 0) { 48 printf ( "Zero does not have an inverse!\n" ) ; 49 abort ( ) ; 50 } 51 rational x ; 52 x.a = a.p; 53 x.p = a.a; 54 return x ; 55 } Υαξνθόπεην Παλεπηζηήκην 31/44

Παξάδεηγκα Εγγξαθώλ Ρεηνί Αξηζκνί Παξέρνπκε επίζεο δπλαηόηεηα πνιιαπιαζηαζκνύ δύν ξεηώλ ή ελόο ξεηνύ κε έλαλ αθέξαην. 56 rational rational_scalar_multiply ( rational a, int s ) 57 { 58 a.a = a.a * s; 59 return a ; 60 } 61 62 rational rational_multiply ( rational a, rational b ) 63 { 64 rational t ; 65 t.a = a.a * b.a; 66 t.p = a.p * b.p; 67 return t ; 68 } Υαξνθόπεην Παλεπηζηήκην 32/44

Παξάδεηγκα Εγγξαθώλ Ρεηνί Αξηζκνί Σέινο κηα ζπλάξηεζε εθηύπσζεο θαη είκαζηε έηνηκνη γηα λα ρξεζηκνπνηήζνπκε ηελ βηβιηνζήθε καο. 69 void rational_print ( rational a ) 70 { 71 printf ( "%d/%d", a. a, a. p ) ; 72 } 73 74 int main ( ) 75 { 76 rational r1 = rational_create ( 1, 5); 77 rational r2 = rational_create ( 1, 3); 78 rational r3 = rational_add ( r1, r2 ) ; 79 r3 = rational_scalar_multiply ( r3, 2); 80 rational_print ( rational_inverse ( r3 ) ) ; 81 82 return 0 ; 83 } Σν παξαπάλσ πξόγξακκα εθηππώλεη ηνλ ξεηό αξηζκό: 1 (1 5 +3) 2 Υαξνθόπεην Παλεπηζηήκην 33/44

Ελώζεηο union Πνιιέο θνξέο ζέινπκε λα θξαηήζνπκε 2 ή πεξηζζόηεξεο κεηαβιεηέο δηαθνξεηηθνύ ηύπνπ, αιιά δελ ηηο ρξεηαδόκαζηε ηαπηόρξνλα. Γηα λα κελ ράλνπκε ρώξν, ε C καο παξέρεη ηελ ένωζη. union { float a ; int b ; char str [ 2 0 ] ; }; Η ζύληαμε είλαη παξόκνηα κε ηηο εγγξαθέο, αιιά ηα κέιε κηαο έλσζεο κνηξάδνληαη ηνλ απνζεθεπηηθό ρώξν. ην παξαπάλσ παξάδεηγκα κπνξνύκε λα απνζεθεύζνπκε είηε θάηη ζην a, είηε θάηη ζην b, είηε ζην str. Υαξνθόπεην Παλεπηζηήκην 34/44

Ελώζεηο union #include < s t d i o. h> union example { float a ; int b ; char str [ 2 0 ] ; }; main ( ) { union example var ; var. a = 5.0; var. b = 3; // here var.b = 3 but var.a =?? } return 0 ; Αλαζέηνληαο θάηη ζην a θαη κεηά ζην b, νπζηαζηηθά γξάθνπκε επάλσ ζην a. Υαξνθόπεην Παλεπηζηήκην 35/44

Ελώζεηο union Ο πξνγξακκαηηζηήο είλαη ππεύζπλνο ώζηε λα γξάθεη θαη λα δηαβάδεη ζσζηά από κηα έλσζε. #include < s t d i o. h> Σν πξόγξακκα ηππώλεη union number { int: 100 int x ; double: 0.000000 float y ; }; int: 1120403456 double: 100.000000 main ( ) { union number t ; t.x = 100; printf ( "int: %d\n", t. x ) ; printf ( "double: %f\n", t. y ) ; printf ( "\n" ) ; t.y = 100.0; printf ( "int: %d\n", t. x ) ; printf ( "double: %f\n", t. y ) ; } return 0 ; Υαξνθόπεην Παλεπηζηήκην 36/44

Ελώζεηο πρλά θάικαηα Πξνζνρή γηαηί κηα έλσζε κπνξεί λα αξρηθνπνηεζεί κόλν κε κηα ηηκή ηνπ ίδηνπ ηύπνπ κε ην πξώην κέινο ηεο έλσζεο. #include < s t d i o. h> Σν πξόγξακκα ηππώλεη union number { int: 2 int x ; double: 0.000000 float y ; }; int: 1120403456 double: 100.000000 main ( ) { union number t = {2.34}; / / ERROR printf ( "int: %d\n", t. x ) ; printf ( "double: %f\n", t. y ) ; printf ( "\n" ) ; t.y = 100.0; printf ( "int: %d\n", t. x ) ; printf ( "double: %f\n", t. y ) ; } return 0 ; Υαξνθόπεην Παλεπηζηήκην 37/44

ηαζεξέο Απαξίζκεζεο enum Η C καο παξέρεη έλα αθόκε ηύπν νξηζκέλν από ηνλ ρξήζηε, ηελ απαρίθμηζη. Μηα απαξίζκεζε είλαη έλα ζύλνιν αθέξαησλ ζηαζεξώλ πνπ αλαπαξίζηαληαη από πξνζδηνξηζηηθά. Απηέο νη ζηαζεξέο απαξίζκεζεο είλαη, ζηελ νπζία, ζπκβνιηθέο ζηαζεξέο ησλ νπνίσλ νη ηηκέο κπνξνύλ λα ηεζνύλ απηνκάησο. Υαξνθόπεην Παλεπηζηήκην 38/44

ηαζεξέο Απαξίζκεζεο enum Μηα απαξίζκεζε νξίδεηαη κε ηελ ιέμε θιεηδί enum. enum months { JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC }; Υαξνθόπεην Παλεπηζηήκην 39/44

ηαζεξέο Απαξίζκεζεο enum #include < s t d i o. h> Σν πξόγξακκα ηππώλεη enum months { 0 JAN, FEB, MAR, APR, MAY, JUN, 1 JUL, AUG, SEP, OCT, NOV, DEC 2 }; 3 4 main ( ) 5 { 6 enum months month ; 7 8 for ( month = JAN ; month <= DEC ; month++) 9 printf ( "%d\n", month ) ; 10 11 return 0 ; } Οη ζηαζεξέο είλαη νπζηαζηηθά αθέξαηνη. Η γιώζζα C μεθηλάεη ην κέηξεκα από ην 0. Υαξνθόπεην Παλεπηζηήκην 40/44

ηαζεξέο Απαξίζκεζεο enum Μπνξνύκε όκσο λα επεξεάζνπκε ηηο ηηκέο, π.ρ #include < s t d i o. h> Σν πξόγξακκα ηππώλεη enum months { 3 JAN = 3, FEB, MAR, APR, MAY, JUN, 4 JUL, AUG, SEP, OCT, NOV, DEC 5 }; 6 7 main ( ) 8 { 9 enum months month ; 10 11 for ( month = JAN ; month <= DEC ; month++) 12 printf ( "%d\n", month ) ; 13 14 return 0 ; } Υαξνθόπεην Παλεπηζηήκην 41/44

ηαζεξέο Απαξίζκεζεο enum Μπνξνύκε κέρξη θαη δηπιέο ηηκέο λα δώζνπκε: #include < s t d i o. h> Σν πξόγξακκα ηππώλεη enum months { JAN = 3 JAN = 3, JANUARY = 3, FEB = 5 FEB = 5, FEBRUARY = 5, MAR = 6 MAR, APR = 9 APR = 9, APRIL = 9, MAY = 10 MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC }; main ( ) { enum months month ; printf ( "JAN = %d\n", JAN ) ; printf ( "FEB = %d\n", FEB ) ; printf ( "MAR = %d\n", MAR ) ; printf ( "APR = %d\n", APR ) ; printf ( "MAY = %d\n", MAY ) ; } return 0 ; Υαξνθόπεην Παλεπηζηήκην 42/44

ηαζεξέο Απαξίζκεζεο θάικα #include < s t d i o. h> Σν πξόγξακκα ηππώλεη enum months { JAN = 3 JAN = 3, JANUARY = 3, FEB = 5 FEB = 5, FEBRUARY = 5, MAR = 6 MAR, APR = 2 APR = 2, APRIL = 2, MAY = 3 MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC }; Πξνζνρή γηαηί έηζη έρνπκε ίδηα ηηκή π.ρ κεηαμύmay θαη JAN. main ( ) { enum months month ; printf ( "JAN = %d\n", JAN ) ; printf ( "FEB = %d\n", FEB ) ; printf ( "MAR = %d\n", MAR ) ; printf ( "APR = %d\n", APR ) ; printf ( "MAY = %d\n", MAY ) ; } return 0 ; Υαξνθόπεην Παλεπηζηήκην 43/44

ηαζεξέο Απαξίζκεζεο Παξάδεηγκα Υξήζεο 1 #include < s t d i o. h> 2 #include < s t d l i b. h> 3 4 typedef enum { 5 HEADS = 0, 6 TAILS = 1 7 } side ; 8 9 char sidetochar ( side s ) { 10 return s == HEADS? 'H' : 'T' ; 11 } 12 13 side flipcoin ( ) { 14 return ( rand ( ) % 2 )? TAILS : HEADS ; 15 } 16 17 main ( ) 18 { 19 int i ; 20 for ( i = 0; i < 20; i++) 21 printf ( "%2c", sidetochar ( flipcoin ( ) ) ) ; 22 23 return 0 ; 24 } Υαξνθόπεην Παλεπηζηήκην 44/44