Η Γλώσσα C - Μάθημα 3

Dimitris Psounis
Dimitris PsounisTeacher & Manager at Δημήτρης Ψούνης - Υπηρεσίες Εκπαίδευσης
H ΓΛΩΣΣΑ C
Μάθηµα 3:
Μεταβλητές και Σταθερές
∆ηµήτρης Ψούνης
Περιεχόµενα Μαθήµατος
Α. Μεταβλητές
1. Ονόµατα Μεταβλητών
2. Τύποι ∆εδοµένων
1. Τύποι Αριθµητικών ∆εδοµένων
1. Προσηµασµένοι Ακέραιοι
2. Μη Προσηµασµένοι Ακέραιοι
3. Πραγµατικοί Αριθµοί
2. Άλλοι Τύποι ∆εδοµένων
3. ∆ήλωση Μεταβλητών
1. Εντολή ∆ήλωσης Μεταβλητών
2. Παραδείγµατα
3. ∆ήλωση µε Αρχικοποίηση
4. Που δηλώνουµε τις µεταβλητές
4. Συνώνυµα τύπων δεδοµένων
1. Η λέξη κλειδί typedef
Β. Σταθερές
1. Αριθµητικές Σταθερές
2. Συµβολικές Σταθερές
1. Η οδηγία #define
2. H λέξη-κλειδί const
Γ. Ασκήσεις
2∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Στόχος του Μαθήµατος
3∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Κάθε πρόγραµµα αποθηκεύει δεδοµένα στην µνήµη προκειµένου να τα χρησιµοποιήσει για να
κάνει τους υπολογισµούς του.
Η C χρησιµοποιεί δύο τρόπους για να αποθηκεύσει τα δεδοµένα της:
Τις µεταβλητές, που είναι θέσεις αποθήκευσης δεδοµένων στις οποίες µπορούµε να
παρέµβουµε και να αλλάξουµε την τιµή τους, όσες φορές θέλουµε κατά τη διάρκεια
εκτέλεσης του προγράµµατος.
Τις σταθερές, που είναι θέσεις αποθήκευσης δεδοµένων στις οποίες δεν µπορούµε να
παρέµβουµε και σε όλη την διάρκεια του προγράµµατος έχουν την ίδια τιµή. Την τιµή αυτή
την δηλώνουµε στην αρχή του προγράµµατος
Πρέπει να διαχωρίσουµε εξαρχής στο µυαλό µας, ότι κάθε µεταβλητή έχει το όνοµα της
(π.χ η µεταβλητή x), που έχει µία θέση µνήµης (π.χ. η x είναι στη θέση µνήµης 1000),
στην οποία αποθηκεύεται η τιµή της µεταβλητής (π.χ x=3) και έχει και έναν τύπο
δεδοµένων (π.χ η x είναι ακέραια)
x c y
2 64
1000 1004 1008
A. Μεταβλητές
1. Ονόµατα Μεταβλητών
4∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Κάθε µεταβλητή έχει ένα όνοµα. Μπορούµε να χρησιµοποιήσουµε (σχεδόν) οποιοδήποτε όνοµα
θέλουµε, σεβόµενοι τους ακόλουθους κανόνες:
Το όνοµα µπορεί να χρησιµοποιεί τους ακόλουθους χαρακτήρες (και µόνον αυτούς)
Γράµµατα (a-z, A-Z)
Ψηφία (0-9)
Το underscore ( _ )
Το όνοµα υποχρεωτικά πρέπει να ξεκινάει µε γράµµα ή µε underscore (όχι ψηφίο).
Τα κεφαλαία-µικρά έχουν σηµασία (case-sensitive). Έτσι η µεταβλητή sum θα είναι
διαφορετική από την µεταβλητή sUm και από την µεταβλητή Sum.
∆εν µπορούν να χρησιµοποιηθούν οι λέξεις-κλειδια της γλώσσας (ονόµατα τύπων
δεδοµένων, include κ.λπ.)
A. Μεταβλητές
1. Ονόµατα Μεταβλητών
5∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Συµβουλές:
Είναι καλή τακτική, να χρησιµοποιούµε ονόµατα που σχετίζονται µε την λειτουργία των
µεταβλητών. Π.χ. Αν θέλουµε να αποθηκεύσουµε σε µια µεταβλητή το άθροισµα κάποιων
τιµών, είναι προτιµότερο να ονοµάσουµε την µεταβλητή sum, παρά να την ονοµάσουµε µε ένα
ξερό π.χ. z.
Σπάνια χρησιµοποιούµε κεφαλαία γράµµατα για µεταβλητές. Έχουν επικρατήσει τα µικρά
γράµµατα
Έχουν επικρατήσει δύο στυλ γραφής των µεταβλητών όταν θέλουµε 2 λέξεις στις µεταβλητές
για να τις περιγράψουµε:
Nα τις χωρίζουµε µε _, π.χ. interest_rate
Να τις κάνουµε 2 λέξεις, µε την δεύτερη να αρχίζει µε κεφαλαίο π.χ. interestRate
A. Μεταβλητές
2. Τύποι ∆εδοµένων
6∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Ανάλογα µε τα δεδοµένα που θέλουµε να αποθηκεύσουµε πρέπει να χρησιµοποιήσουµε και
διαφορετικό τύπο µεταβλητής. Με τον όρο τυποι δεδοµένων ονοµάζουµε τους διαφορετικούς
τύπους µεταβλητών που µπορούµε να χρησιµοποιήσουµε.
Είναι δική µας ευθύνη να επιλέξουµε τον τύπο δεδοµένων των µεταβλητών.
Αν θέλουµε να αποθηκεύσουµε σε µια µεταβλητή τον βαθµό µας σε ένα µάθηµα, πρέπει
να χρησιµοποιήσουµε µια ακέραια µεταβλητή διότι ο βαθµός µας είναι ακέραιος.
Αν θέλουµε να αποθηκεύσουµε σε µια µεταβλητή το επιτόκιο ενός δανείου, πρέπει να
χρησιµοποιήσουµε µια πραγµατική µεταβλητή µικρής ακρίβειας, χωρίς να µας ενδιαφέρει
η ακρίβεια πολλών δεκαδικών ψηφίων γιατί µας αρκούν – συνήθως - 2 δεκαδικά ψηφία
Αν θέλουµε να αποθηκεύσουµε σε µια µεταβλητή τα πρώτα 15 ψηφία του αρρητου
αριθµού π, θα χρειαστούµε µια πραγµατική µεταβλητή διπλής ακρίβειας
κ.ο.κ.
A. Μεταβλητές
2. Τύποι ∆εδοµένων
1. Τύποι Αριθµητικών ∆εδοµένων
7∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Η C έχει πολλούς τύπους δεδοµένων µε τους οποίους µπορούµε να αποθηκεύσουµε αριθµούς.
Όσο µεγαλύτερη πληροφορία θέλουµε να αποθηκεύσουµε σε έναν αριθµό, τόσο περισσότερα
bytes απαιτούνται στην µνήµη από τον αριθµό.
Οι αριθµητικές µεταβλητές χωρίζονται σε δύο µεγάλες κατηγορίες:
Τις ακέραιες µεταβλητές που αποθηκεύουµε ακέραιες τιµές (char, int, long, short)
Τις κλασµατικές µεταβλητές που αποθηκεύουµε δεκαδικές τιµές (float, double)
Ειδικά για τις ακέραιες µεταβλητές όλες οι παραπάνω χωρίζονται σε προσηµασµένες και µη
προσηµασµένες
A. Μεταβλητές
2. Τύποι ∆εδοµένων
1. Τύποι Αριθµητικών ∆εδοµένων (1.Προσηµασµένοι Ακέραιοι)
8∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Οι προσηµασµένες ακέραιες µεταβλητές, επιτρέπουν την αποθήκευση και αρνητικών
αριθµών.
Σηµείωση: Τα bytes που αντιστοιχούν όπως φαίνεται στον πίνακα εξαρτώνται από το σύστηµα
µας, αλλά συνήθως είναι όπως φαίνεται εδώ:
Όνοµα Τύπου
∆εδοµένων
Συµβολισµός bytes Εύρος τιµών
Χαρακτήρας char 1 -128 εώς 127
Μικρός Ακέραιος short 2 -32768 εώς 32767
Ακέραιος int 4 -2147483648 εώς 2147438647
Μεγάλος Ακέραιος long 4 -2147483648 εώς 2147438647
A. Μεταβλητές
2. Τύποι ∆εδοµένων
1. Τύποι Αριθµητικών ∆εδοµένων (2.Μη Προσηµασµένοι Ακέραιοι)
9∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Οι µη προσηµασµένες ακέραιες µεταβλητές, επιτρέπουν την αποθήκευση µόνο θετικών
αριθµών.
Έτσι ξεκινούν από το 9 και επιτρέπουν την αποθήκευση διπλάσιας τιµής σε σχέση µε τις
προσηµασµένες.
Όνοµα Τύπου
∆εδοµένων
Συµβολισµός bytes Εύρος τιµών
Μη προσηµασµένος
Χαρακτήρας
unsigned char 1 0 εώς 255
Μη προσηµασµένος
Μικρός Ακέραιος
unsigned int 2 0 εώς 65535
Μη προσηµασµένος
Ακέραιος
unsigned int 2 0 εώς 65535
Μη προσηµασµένος
Μεγάλος Ακέραιος
unsigned long 4 0 εώς 4294967295
A. Μεταβλητές
2. Τύποι ∆εδοµένων
1. Τύποι Αριθµητικών ∆εδοµένων (3.Πραγµατικοί Αριθµοί)
10∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Οι πραγµατικές µεταβλητές είναι δύο κατηγοριών float και double µε µόνη διαφορά τα bytes
(άρα και την ακρίβεια) κάθε τύπου δεδοµένων.
Πρακτικά:
Οι float αποθηκεύουν ικανοποιητικά µέχρι 7 ψηφία
Οι double µέχρι 19 ψηφία.
Όνοµα Τύπου
∆εδοµένων
Συµβολισµός bytes Εύρος τιµών
Κινητής Υποδιαστολής
Μονής Ακρίβειας
float 4 1.2x10-38 εώς 3.4x1038
Κινητής Υποδιαστολής
∆ιπλής Ακρίβειας
double 8 2.2x10-308 εώς 1.8x10308
Κινητής Υποδιαστολής
Μονής Ακρίβειας
float 4 1.2x10-38 εώς 3.4x1038
Κινητής Υποδιαστολής
∆ιπλής Ακρίβειας
double 8 2.2x10-308 εώς 1.8x10308
A. Μεταβλητές
2. Τύποι ∆εδοµένων
1. Τύποι Αριθµητικών ∆εδοµένων
11∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Η πληθώρα τύπων δεδοµένων µας δίνει περιθώρια για ευέλικτο προγραµµατισµό ανάλογα µε
τις ανάγκες του προγράµµατος.
∆εν σηµαίνει ότι πρέπει να επιλέξουµε οπωσδήποτε τον καλύτερο τύπο δεδοµένων για την
κάθε περίπτωση.
Πρακτικά στα περισσότερα προγράµµατα για να αποθηκεύσουµε αριθµούς θα αρκεστούµε στους
τύπους δεδοµένων:
int: για τις ακέραιες µεταβλητές
long: αν πρόκειται να αποθηκευτούν µεγάλες τιµές ακεραίων
float: για δεκαδικούς αριθµούς µικρής ακρίβειας
double: για δεκαδικούς αριθµούς µεγάλης ακρίβειας
A. Μεταβλητές
2. Τύποι ∆εδοµένων
1. Τύποι Αριθµητικών ∆εδοµένων
12∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Το ακόλουθο πρόγραµµα προβάλλει στην οθόνη τα µεγέθη σε bytes των τύπων δεδοµένων
που µελετήσαµε.
Ο τελεστής sizeof που χρησιµοποιείται επιστρέφει τα bytes του τύπου που δέχεται ως
όρισµα.(θα τον µελετήσουµε σε επόµενο µάθηµα πιο αναλυτικά)
Εκτελέστε το πρόγραµµα και κάντε αντιπαραβολή µε τους πίνακες των διαφανειών.
/* sizes.c: Provallei stin othoni ta megethi se bytes twn tipwn dedomenvn */
#include <stdio.h>
main()
{
printf("nTa bytes enos char einai: %d", sizeof(char));
printf("nTa bytes enos short einai: %d", sizeof(short));
printf("nTa bytes enos int einai: %d", sizeof(int));
printf("nTa bytes enos long einai: %d", sizeof(long));
printf("nTa bytes enos unsigned short einai: %d", sizeof(unsigned short));
printf("nTa bytes enos unsigned int einai: %d", sizeof(unsigned int));
printf("nTa bytes enos unsigned long einai: %d", sizeof(unsigned long));
printf("nTa bytes enos float einai: %d", sizeof(float));
printf("nTa bytes enos double einai: %d", sizeof(double));
}
A. Μεταβλητές
2. Τύποι ∆εδοµένων
2. Άλλοι τύποι ∆εδοµένων
13∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Εκτός από τους αριθµητικούς τύπους δεδοµένων (που αποθηκευουν αριθµούς), υπάρχουν και
τύποι δεδοµένων που:
Αποθηκευουν χαρακτήρες και συµβολοσειρές (ακολουθίες χαρακτήρων). Θα τις δούµε
αναλυτικά σε επόµενο µάθηµα.
Οριζόµενες από τον χρήστη. ∆ηλαδή ο χρήστης µπορεί να ορίσει δικούς του τύπους
δεδοµένων. Θα τις δούµε σε επόµενο µάθηµα.
A. Μεταβλητές
3. ∆ήλωση Μεταβλητών
1. Εντολή ∆ήλωσης Μεταβλητής
14∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Προτού χρησιµοποιήσουµε µια µεταβλητή, θα πρέπει να την δηλώσουµε.
Η δήλωση µιας µεταβλητής γίνεται µε µια εντολή της µορφής:
όπου τύπος_δεδοµένων κάποιος από αυτούς που είδαµε στην προηγούµενη ενότητα και
όνοµα_µεταβλητής είναι το όνοµα που επιλέγουµε εµείς σεβόµενοι τους κανόνες που
έχουµε αναφέρει
Είναι δυνατό να ορίσουµε και παραπάνω από µία µεταβλητές του ίδιου τύπου σε µία γραµµή,
χωρίζοντας τα ονόµατα των µεταβλητών µε κόµµατα:
Ο παραπάνω κώδικας ορίζει 3 µεταβλητές µε τα αντίστοιχα ονόµατα και οι µεταβλητές
είναι του τύπου δεδοµένων.
τυπος_δεδοµένων όνοµα_µεταβλητής;
τυπος_δεδοµένων όν_µετ1, ον_µετ2, ον_µετ3;
A. Μεταβλητές
3. ∆ήλωση Μεταβλητών
2. Παραδείγµατα
15∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Το ακόλουθο τµήµα κώδικα:
∆ηλώνει 3 ακέραιες µεταβλητές µε ονόµατα x,y,z
Και 2 αριθµούς κινητής υποδιαστολής µονής ακρίβειας µε ονόµατα percent, amount
Επίσης το ακόλουθο τµήµα κώδικα:
Κάνει ακριβώς την ίδια ενέργεια µε το παραπάνω τµήµα κώδικα.
int x,y,z;
float percent, amount;
int x;
int y;
int z;
float percent, amount;
Η εντολή δήλωσης µεταβλητής ισοδυναµεί µε τη δέσµευση της µνήµης από το µεταγλωττιστή, τη
συσχέτιση του χώρου αποθήκευσης µε το όνοµα της µεταβλητής.
Έτσι η εντολή:
int x,y,z
αντιστοιχεί στην εικόνα µνήµης:
x z y
A. Μεταβλητές
3. ∆ήλωση Μεταβλητών
3. ∆ήλωση µε Αρχικοποίηση
16∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Είναι σηµαντικό να καταλάβουµε ότι µια έντολη δήλωσης:
Απλά δεσµεύει τον χώρο για να αποθηκευτεί η µεταβλητή
∆εν δίνει τιµή στην µεταβλητή.
Έτσι αρχικά η µεταβλητή, έχει όπως λέµε «σκουπίδια», δηλαδή έχει ότι περιείχαν τα bytes της
προτού δεσµευθεί ο χώρος της.
Για το λόγο αυτό συχνά είναι χρήσιµο µε το που δηλώνουµε µια µεταβλητή να αρχικοποιούµε µε
κατάλληλη τιµή:
Π.χ. Η δήλωση
∆ηλώνει µια ακέραια µεταβλητή και της αναθέτει την τιµή 5
Ενώ η δήλωση
∆ηλώνει δύο πραγµατικές µεταβλητές µε τιµές 5.5 και 4.44 αντίστοιχα.
int x=5;
float y=5.5, z=4.44;
A. Μεταβλητές
3. ∆ήλωση Μεταβλητών
3. ∆ήλωση µε Αρχικοποίηση
17∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Η δήλωση
∆ηλώνει µια ακέραια µεταβλητή x και εκχωρεί σε αυτήν την τιµή 5.
Αυτό µπορεί εναλλακτικά να γίνει και µε τις ακόλουθες γραµµές κώδικα:
Προσοχή! Το = είναι ο τελεστής καταχώρησης (ή τελεστής εκχώρησης) που δίνει στην
µεταβλητή που είναι αριστερά του, την τιµή που βρίσκεται δεξιά του.
(∆εν έχει λοιπόν καµία σχέση µε την γνωστή µαθηµατική µας ισότητα)
Έτσι οι δύο παραπάνω τρόποι είναι ισοδύναµοι µεταξύ τους.
int x=5;
int x;
x=5;
A. Μεταβλητές
3. ∆ήλωση Μεταβλητών
4. Που δηλώνουµε µεταβλητές
18∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Στο µάθηµα 12: Εµβέλεια Μεταβλητών, θα δούµε ότι ανάλογα µε το που δηλώνουµε τις
µεταβλητές επηρεάζεται ο τρόπος που χρησιµοποιούνται από το πρόγραµµα µας.
Εδώ θα δούµε αρχικά ότι υπάρχουν δύο τύποι µεταβλητών:
Οι καθολικές µεταβλητές στις οποίες έχουν πρόσβαση και η main και όλες οι
συναρτήσεις.
Οι καθολίκές µεταβλητές, δηλώνονται ακριβώς πριν την main
Οι τοπικές µεταβλητές, τις οποίες δηλώνει κάποια συνάρτηση και στις οποίες έχουν
πρόσβαση µόνο η συνάρτηση.
Οι τοπικές µεταβλητές δηλώνονται στο σώµα της συνάρτησης χρήστη( ή της main)
αµέσως µετά το άγκιστρο που ανοίγει το σώµα της συνάρτησης χρήστη (ή της main
αντίστοιχα)
Το σχήµα της επόµενης διαφάνειας συνοψίζει τους κανόνες αυτούς
A. Μεταβλητές
3. ∆ήλωση Μεταβλητών
4. Που δηλώνουµε µεταβλητές
19∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Στο µάθηµα 12: Εµβέλεια Μεταβλητών, θα δούµε ότι ανάλογα µε το που δηλώνουµε τις
µεταβλητές επηρεάζεται ο τρόπος που χρησιµοποιούνται από το πρόγραµµα µας.
Εδώ θα δούµε αρχικά ότι υπάρχουν δύο τύποι µεταβλητών:
Οι καθολικές µεταβλητές στις οποίες έχουν πρόσβαση και η main και όλες οι
συναρτήσεις.
Οι καθολίκές µεταβλητές, δηλώνονται ακριβώς πριν την main
Οι τοπικές µεταβλητές, τις οποίες δηλώνει κάποια συνάρτηση και στις οποίες έχουν
πρόσβαση µόνο η συνάρτηση.
Οι τοπικές µεταβλητές δηλώνονται στο σώµα της συνάρτησης χρήστη( ή της main)
αµέσως µετά το άγκιστρο που ανοίγει το σώµα της συνάρτησης χρήστη (ή της main
αντίστοιχα)
Το σχήµα της επόµενης διαφάνειας συνοψίζει τους κανόνες αυτούς
#include <stdio.h>
int function(int x); // Το πρωτότυπο µιας συνάρτησης
int g; /* Η g είναι καθολική. Σε αυτήν έχει πρόσβαση και η
main και η συνάρτηση f */
main()
{
int m; /* Η m είναι τοπική. Σε αυτήν έχει πρόσβαση µόνο
η main */
...(Εντολές της main)...
}
int function(int x) // Το σώµα της συνάρτησης
{
int k; /* H k είναι τοπική µεταβλητή. Σε αυτήν έχει
πρόσβαση µόνο η συνάρτηση f() */
...(Εντολές της function)...
}
A. Μεταβλητές
4. Συνώνυµα τύπων δεδοµένων
1. Η λέξη-κλειδί typedef
20∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
H C µας δίνει το δικαίωµα να ορίσουµε ένα συνώνυµο ενός τύπου δεδοµένων.
Η εργασία αυτή γίνεται µε την typedef που συντάσσεται ως εξής:
Με την εντολή αυτή ορίζουµε ότι ο τύπος δεδοµένων µε όνοµα νεο_ονοµα_Τ∆ θα έχει
ακριβώς την ίδια συµπεριφορά µε τον υπάρχοντα τύπο δεδοµένων µε όνοµα
παλιο_όνοµα_Τ∆
Για παράδειγµα µε την εντολή
Μπορούµε να γράφουµε στο πρόγραµµά µας, αντί για int τον τύπο δεδοµένων akeraios,
που θα έχει την ίδια συµπεριφορά µε το int
Οι εντολές typedef πρέπει να βρίσκονται ακριβώς µετά τις οδηγίες #include στην αρχή του
προγράµµατός µας. Μεταγλωττίστε και εκτελέστε το παράδειγµα της επόµενης διαφάνειας που
αναδεικνύει την χρήση της typedef.
typedef παλιο_ονοµα_Τ∆ νεο_ονοµα_Τ∆;
typedef int akeraios;
A. Μεταβλητές
4. Συνώνυµα τύπων δεδοµένων
1. Η λέξη-κλειδί typedef
21∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Στο µάθηµα 12: Εµβέλεια Μεταβλητών, θα δούµε ότι ανάλογα µε το που δηλώνουµε τις
µεταβλητές επηρεάζεται ο τρόπος που χρησιµοποιούνται από το πρόγραµµα µας.
Εδώ θα δούµε αρχικά ότι υπάρχουν δύο τύποι µεταβλητών:
Οι καθολικές µεταβλητές στις οποίες έχουν πρόσβαση και η main και όλες οι
συναρτήσεις.
Οι καθολίκές µεταβλητές, δηλώνονται ακριβώς πριν την main
Οι τοπικές µεταβλητές, τις οποίες δηλώνει κάποια συνάρτηση και στις οποίες έχουν
πρόσβαση µόνο η συνάρτηση.
Οι τοπικές µεταβλητές δηλώνονται στο σώµα της συνάρτησης χρήστη( ή της main)
αµέσως µετά το άγκιστρο που ανοίγει το σώµα της συνάρτησης χρήστη (ή της main
αντίστοιχα)
Το σχήµα της επόµενης διαφάνειας συνοψίζει τους κανόνες αυτούς
/* typedef.c: Paradeigma xrisis tis entolis typedef */
#include <stdio.h>
typedef int akeraios;
main()
{
akeraios x,y,z;
printf("Dwste enan akeraio: ");
scanf("%d",&x);
printf("Dwste akomi enan akeraio: ");
scanf("%d",&y);
z=x+y;
printf("To athroisma toys einai: %d", z);
}
A. Μεταβλητές
4. Συνώνυµα τύπων δεδοµένων
1. Η λέξη-κλειδί typedef
22∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
mτέτοιου τύπου χρήσεις ωστόσο δεν είναι χρήσιµες.
Τους βασικούς τύπους δεδοµένων θα πρέπει να µάθουµε να τους χρησιµοποιούµε ως έχουν.
Ωστόσο για δευτερεύοντες τύπους δεδοµένων (όπως τύπους δεδοµένων που καθορίζονται από
τον χρήστη), ο ορισµός συνωνύµων µέσω της typedef θα µας φανεί ιδιαίτερα χρήσιµος!
Β. Σταθερές
1. Αριθµητικές σταθερές
23∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Ήδη στα προηγούµενα παραδείγµατα, είδαµε πολλές φορές να γράφουµε έναν αριθµό στο
πρόγραµµα (προκειµένου π.χ. να τον αποθηκεύσουµε σε µία µεταβλητή)
Η απεικόνιση αριθµών στην C, είναι η πρώτη κατηγορία σταθερών, οι λεγόµενες αριθµητικές
σταθερές, όπου αναφερόµαστε σε έναν αριθµό απλά καταγράφοντας τον.
Υπάρχουν 3 ειδών αριθµητικές σταθερές (δηλαδή αριθµοί) που µπορούµε να γράψουµε στο
πρόγραµµα µας:
Οι ακέραιοι αριθµοι. Όταν γράφουµε έναν ακέραιο αριθµό στο πρόγραµµα µας π.χ. 2, η
C καταλαβαίνει ότι πρέπει να αποθηκευτεί προσωρινά σε έναν χώρο αποθήκευσης
ακεραίου (int)
Οι πραγµατικοί αριθµοί. Η C αντιλαµβάνεται έναν πραγµατικό αριθµό µε 2 τρόπους:
Βάζοντας τελεία ( . ) για να απεικονίσουµε την υποδιαστολή (π.χ. 3.45)
∆ίνοντας την επιστηµονική µορφή του αριθµού (π.χ. 1.23e6 που απεικονίζει τον
αριθµό 1.23x106=1230000)
Β. Σταθερές
2. Συµβολικές Σταθερές
24∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Μια συµβολική σταθερά είναι µια σταθερά που έχει ένα όνοµα, σε αντίθεση µε τις αριθµητικές
σταθερές που είναι ένας ξερός αριθµός.
Για παράδειγµα αν γράφουµε ένα πρόγραµµα που θα χρησιµοποιήσει τον αριθµό π (π.χ.
αν υπολογίζουµε το εµβαδόν ενός κύκλου), θα θέλαµε να απεικονίσουµε τον αριθµό σε µία
µεταβλητή
Ωστόσο η τιµή αυτής της µεταβλητής δεν πρόκειται να αλλάξει ποτέ στην διάρκεια του
προγράµµατος.
Για το λόγο αυτό θα αποθηκεύσουµε την µεταβλητή αυτή ως σταθερά.
Υπάρχουν δύο ειδών συµβολικές σταθερές, που ορίζονται µέσω:
Της οδηγία #define
Της λέξης κλειδί const
m.και οι δύο τρόποι χρησιµοποιούνται εξίσου συχνά. Η διαφορά τους θα γίνει πλήρως
κατανοητή σε επόµενα µαθήµατα, αλλα θα δούµε τώρα ότι:
Με την #define ορίζουµε σταθερά που την βλέπει υποχρεωτικά όλο το πρόγραµµα
(όλες οι συναρτήσεις)
Με την const µπορούµε να ορίσουµε σταθερά που την επεξεργάζεται µόνο µια
συγκεκριµένη συνάρτηση.
Β. Σταθερές
2. Συµβολικές Σταθερές
1. Η οδηγία #define
25∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Μπορούµε να ορίσουµε µια στάθερα µέσω της οδηγία #define ακολουθώντας την σύνταξη:
Για παράδειγµα το π θα το ορίσουµε µε την δήλωση:
Προσοχή! Μετά την δήλωση δεν βάζουµε ερωτηµατικό!
Οι δηλώσεις #define γράφονται αµέσως µετά τις δηλώσεις #include.
Η ακριβής λειτουργία της define είναι ότι ο µεταγλωττιστής αναζητά κάθε εµαφάνιση της PI στο
πρόγραµµα και την αντικαθιστά µε την αριθµητική τιµή.
Κάνει δηλαδή την ίδια ενέργεια µε το να πηγαίναµε µε το χέρι και να αντικαταστήσουµε τις
εµφανίσεις της PI µε την συγκεκριµένη τιµή
#define ΟΝΟΜΑ_ΣΤΑΘΕΡΑΣ ΤΙΜΗ_ΣΤΑΘΕΡΑΣ
#define PI 3.1415
Β. Σταθερές
2. Συµβολικές Σταθερές
2. Η λέξη-κλειδί const
26∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Μία οποιαδήποτε µεταβλητή µπορούµε να την ορίσουµε ως σταθερά, αν γνωρίζουµε η τιµή της
δεν πρόκειται να αλλάξει κατά την διάρκεια εκτέλεσης του προγράµµατος.
Ο καθορισµός ότι η µεταβλητή µετατρέπεται σε σταθερά γίνεται προσθέτοντας την λέξη κλειδί
const µπροστά από την δήλωση της µεταβλητής.
Προσοχή! Μία σταθερά θα πρέπει να αρχικοποιείται οπωσδήποτε κατά την δήλωσή της!
Έτσι µια ακεραια σταθερά µε την τιµή 100 δηλώνεται ως εξής:
Μπορούµε να έχουµε σταθερά οποιουδήποτε τύπου δεδοµένων!
∆ήλωση σταθεράς µε την λέξη const µπορούµε να έχουµε στα σηµεία όπου επιτρέπεται
δήλωση µεταβλητών (αρχή συναρτήσεων και πριν την main)
const int x=100;
Β. Σταθερές
2. Συµβολικές Σταθερές
2. Η λέξη-κλειδί const
27∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Σε µεγάλα προγράµµατα είναι συχνό να κρατάµε άµυνες για να αποφύγουµε λάθη που θα είναι
δύσκολο να εντοπιστούν
Ο ορισµός µεταβλητών ως σταθερών µε χρήση της λεξης κλειδί const είναι µια συνηθισµένη
πολιτική
Πράγµατι έστω ότι δηλώνουµε µια σταθερά στην αρχή ενός προγράµµατος.
Τότε αν επιχειρήσουµε να αλλάξουµε την τιµή της σε επόµενη γραµµή κώδικα, ο
µεταγλωττιστής θα διαµαρτυρηθεί!
Έτσι έχουµε µια άµυνα, αφού ούτε εµείς οι ίδιοι δεν θα µπορέσουµε να αλλάξουµε την τιµή της,
όταν γράφουµε τον κώδικα.
Μελετήστε συστηµατικά το πρόγραµµα της επόµενης διαφάνειας. Συγκεντρώνει όλες τις
πληροφορίες για την δοµή ενός προγράµµατος C, ενσωµατώνοντας όλα τα χαρακτηριστικά που
έχουµε αναφέρει.
Β. Σταθερές
4. Συµβολικές Σταθερές
2. Η λέξη-κλειδί const
28∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Σε µεγάλα προγράµµατα είναι συχνό να κρατάµε άµυνες για να αποφύγουµε λάθη που θα είναι
δύσκολο να εντοπιστούν
Ο ορισµός µεταβλητών ως σταθερών µε χρήση της λεξης κλειδί const είναι µια συνηθισµένη
πολιτική
Πράγµατι έστω ότι δηλώνουµε µια σταθερά στην αρχή ενός προγράµµατος.
Τότε αν επιχειρήσουµε να αλλάξουµε την τιµή της σε επόµενη γραµµή κώδικα, ο
µεταγλωττιστής θα διαµαρτυρηθεί!
Έτσι έχουµε µια άµυνα, αφού ούτε εµείς οι ίδιοι δεν θα µπορέσουµε να αλλάξουµε την τιµή της,
όταν γράφουµε τον κώδικα.
Μελετήστε συστηµατικά το πρόγραµµα της επόµενης διαφάνειας. Συγκεντρώνει όλες τις
πληροφορίες για την δοµή ενός προγράµµατος C, ενσωµατώνοντας όλα τα χαρακτηριστικά που
έχουµε αναφέρει.
/* statheres.c: Programma poy deixnei tin xrisi statherwn */
#include <stdio.h> //1.grafoume ta arxeia kefalidas
#define N 100 //2.Grafoume odigies define statherwn
//3. Edw mporoume na orisoume katholikes metavlites
//4. Edw mporoume na orisoyme prwtotipa sinartisewn
main()
{
//5.1 Dilwsi statherwn kai metavlitwn tis main
int i,sum;
const int number=10;
//5.2 entoles tis main
for (i=number; i<=N; i++)
sum=sum+i;
printf("To athroisma twn arithmwn [%d..%d] einai %d",number,N,sum);
getchar();
}
//6. Edw tha exoyme ta swmata twn sinartisewn
Γ. Ασκήσεις
Εφαρµογή 1
29∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
Γράψτε ένα πρόγραµµα C το οποίο:
1. ∆ηλώνει µία σταθερά µε τιµή 100 µε χρήση της const
2. ∆ηλώνει µια ακέραια µεταβλητή
3. ∆ιαβάζει την τιµή της ακέραιας µεταβλητής από το πληκτρολόγιο
4. Εκτυπώνει στην οθόνη τις τιµές της σταθεράς και της µεταβλητής
1 of 29

Recommended

ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ by
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥDimitris Psounis
12.9K views48 slides
Η Γλώσσα C - Μάθημα 1 by
Η Γλώσσα C - Μάθημα 1Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Dimitris Psounis
15.1K views23 slides
Η Γλώσσα C - Μάθημα 2 by
Η Γλώσσα C - Μάθημα 2Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2Dimitris Psounis
8.8K views24 slides
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ by
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣDimitris Psounis
15.3K views34 slides
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 by
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 Dimitris Psounis
5.2K views27 slides
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12 by
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12Dimitris Psounis
5.5K views24 slides

More Related Content

What's hot

Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ by
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣDimitris Psounis
9.7K views34 slides
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 by
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 Dimitris Psounis
7.1K views17 slides
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ by
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥDimitris Psounis
4K views30 slides
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ by
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣDimitris Psounis
17.5K views26 slides
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ) by
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
2.5K views15 slides
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ by
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣDimitris Psounis
7.7K views35 slides

What's hot(20)

Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ by Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Dimitris Psounis9.7K views
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 by Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
Dimitris Psounis7.1K views
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ by Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Dimitris Psounis4K views
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ by Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Dimitris Psounis17.5K views
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ) by Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.5K views
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ by Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Dimitris Psounis7.7K views
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ by Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
Dimitris Psounis3K views
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ by Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Dimitris Psounis4.2K views
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 by Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
Dimitris Psounis3.4K views
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ by Dimitris Psounis
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
Dimitris Psounis4.3K views
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 by Dimitris Psounis
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
Dimitris Psounis5.6K views
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 by Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
Dimitris Psounis6.8K views
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4 by Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
Dimitris Psounis5.8K views
ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ) by Dimitris Psounis
ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis7.2K views
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 by Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3
Dimitris Psounis4.2K views
Η Γλώσσα C - Μάθημα 2 (Εκτύπωση) by Dimitris Psounis
Η Γλώσσα C - Μάθημα 2 (Εκτύπωση)Η Γλώσσα C - Μάθημα 2 (Εκτύπωση)
Η Γλώσσα C - Μάθημα 2 (Εκτύπωση)
Dimitris Psounis6.9K views

Viewers also liked

Η Γλώσσα C - Μάθημα 1 (Εκτύπωση) by
Η Γλώσσα C - Μάθημα 1 (Εκτύπωση)Η Γλώσσα C - Μάθημα 1 (Εκτύπωση)
Η Γλώσσα C - Μάθημα 1 (Εκτύπωση)Dimitris Psounis
10.7K views6 slides
Η Γλώσσα C - Μάθημα 3 (Εκτύπωση) by
Η Γλώσσα C - Μάθημα 3 (Εκτύπωση)Η Γλώσσα C - Μάθημα 3 (Εκτύπωση)
Η Γλώσσα C - Μάθημα 3 (Εκτύπωση)Dimitris Psounis
5.2K views8 slides
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ (ΕΚΤΥΠΩΣΗ) by
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
6.4K views12 slides
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ (ΕΚΤΥΠΩΣΗ) by
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
2.5K views8 slides
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ (ΕΚΤΥΠΩΣΗ) by
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
2.5K views7 slides
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ by
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥDimitris Psounis
2K views4 slides

Viewers also liked(8)

Η Γλώσσα C - Μάθημα 1 (Εκτύπωση) by Dimitris Psounis
Η Γλώσσα C - Μάθημα 1 (Εκτύπωση)Η Γλώσσα C - Μάθημα 1 (Εκτύπωση)
Η Γλώσσα C - Μάθημα 1 (Εκτύπωση)
Dimitris Psounis10.7K views
Η Γλώσσα C - Μάθημα 3 (Εκτύπωση) by Dimitris Psounis
Η Γλώσσα C - Μάθημα 3 (Εκτύπωση)Η Γλώσσα C - Μάθημα 3 (Εκτύπωση)
Η Γλώσσα C - Μάθημα 3 (Εκτύπωση)
Dimitris Psounis5.2K views
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ (ΕΚΤΥΠΩΣΗ) by Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis6.4K views
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ (ΕΚΤΥΠΩΣΗ) by Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.5K views
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ (ΕΚΤΥΠΩΣΗ) by Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.5K views
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ by Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ
Dimitris Psounis2K views
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 (ΕΚΤΥΠΩΣΗ) by Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.5K views
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (ΕΚΤΥΠΩΣΗ) by Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis5.2K views

Similar to Η Γλώσσα C - Μάθημα 3

Βασικές έννοιες προγραμματισμού by
Βασικές έννοιες προγραμματισμούΒασικές έννοιες προγραμματισμού
Βασικές έννοιες προγραμματισμούΙωάννου Γιαννάκης
2.3K views21 slides
Advanced Notes on Pointers by
Advanced Notes on PointersAdvanced Notes on Pointers
Advanced Notes on Pointersjtsagata
16 views142 slides
Plir b by
Plir bPlir b
Plir bteacherbot12
536 views34 slides
ΑΕΠΠ: 3ο Επαναληπτικό Τεστ by
ΑΕΠΠ: 3ο Επαναληπτικό ΤεστΑΕΠΠ: 3ο Επαναληπτικό Τεστ
ΑΕΠΠ: 3ο Επαναληπτικό ΤεστNikos Michailidis
1.4K views3 slides
Διαγώνισμα 1ο και 2ο κεφ ΑΕΠΠ by
Διαγώνισμα 1ο και 2ο κεφ ΑΕΠΠΔιαγώνισμα 1ο και 2ο κεφ ΑΕΠΠ
Διαγώνισμα 1ο και 2ο κεφ ΑΕΠΠEleni Kokkinou
2.2K views6 slides

Similar to Η Γλώσσα C - Μάθημα 3 (16)

Advanced Notes on Pointers by jtsagata
Advanced Notes on PointersAdvanced Notes on Pointers
Advanced Notes on Pointers
jtsagata16 views
ΑΕΠΠ: 3ο Επαναληπτικό Τεστ by Nikos Michailidis
ΑΕΠΠ: 3ο Επαναληπτικό ΤεστΑΕΠΠ: 3ο Επαναληπτικό Τεστ
ΑΕΠΠ: 3ο Επαναληπτικό Τεστ
Nikos Michailidis1.4K views
Διαγώνισμα 1ο και 2ο κεφ ΑΕΠΠ by Eleni Kokkinou
Διαγώνισμα 1ο και 2ο κεφ ΑΕΠΠΔιαγώνισμα 1ο και 2ο κεφ ΑΕΠΠ
Διαγώνισμα 1ο και 2ο κεφ ΑΕΠΠ
Eleni Kokkinou2.2K views
Διαγώνισμα Δομή Επιλογής 1 by educast
Διαγώνισμα Δομή Επιλογής 1Διαγώνισμα Δομή Επιλογής 1
Διαγώνισμα Δομή Επιλογής 1
educast488 views
41 - Βρίσκω το ποσοστό by tzormbas
41 - Βρίσκω το ποσοστό41 - Βρίσκω το ποσοστό
41 - Βρίσκω το ποσοστό
tzormbas10 views
Θέματα Πανελλαδικών Εξετάσεων 2013 στο μάθημα Συστήματα ψηφιακών. by Theodoros Leftheroudis
Θέματα Πανελλαδικών Εξετάσεων 2013 στο μάθημα Συστήματα ψηφιακών.Θέματα Πανελλαδικών Εξετάσεων 2013 στο μάθημα Συστήματα ψηφιακών.
Θέματα Πανελλαδικών Εξετάσεων 2013 στο μάθημα Συστήματα ψηφιακών.

More from Dimitris Psounis

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ by
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣDimitris Psounis
4.9K views25 slides
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ) by
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Dimitris Psounis
640 views7 slides
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ) by
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)Dimitris Psounis
475 views8 slides
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ by
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣDimitris Psounis
1.4K views29 slides
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ by
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣDimitris Psounis
5.9K views30 slides
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ) by
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Dimitris Psounis
3.8K views8 slides

More from Dimitris Psounis(20)

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ by Dimitris Psounis
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Dimitris Psounis4.9K views
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ) by Dimitris Psounis
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Dimitris Psounis640 views
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ) by Dimitris Psounis
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
Dimitris Psounis475 views
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ by Dimitris Psounis
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
Dimitris Psounis1.4K views
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ by Dimitris Psounis
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Dimitris Psounis5.9K views
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ) by Dimitris Psounis
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Dimitris Psounis3.8K views
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C by Dimitris Psounis
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CC++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
Dimitris Psounis2.3K views
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p) by Dimitris Psounis
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
Dimitris Psounis331 views
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6 by Dimitris Psounis
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
Dimitris Psounis2.9K views
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5 by Dimitris Psounis
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
Dimitris Psounis898 views
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ) by Dimitris Psounis
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.5K views
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 by Dimitris Psounis
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
Dimitris Psounis2.5K views
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ) by Dimitris Psounis
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis4.6K views
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 by Dimitris Psounis
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
Dimitris Psounis4.5K views
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 by Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
Dimitris Psounis3.2K views
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ) by Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.2K views
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 by Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
Dimitris Psounis3.2K views
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ) by Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.1K views
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 by Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
Dimitris Psounis3.9K views

Recently uploaded

τεχ22 23.pptx by
τεχ22 23.pptxτεχ22 23.pptx
τεχ22 23.pptxIlias Pappas
16 views30 slides
Η δική μου Παναγιά by
Η δική μου ΠαναγιάΗ δική μου Παναγιά
Η δική μου Παναγιάhrisgiou
23 views14 slides
Εκπαιδευτική επίσκεψη στο Ναυτικό Μουσείο Καβάλας.pptx by
Εκπαιδευτική επίσκεψη στο Ναυτικό Μουσείο Καβάλας.pptxΕκπαιδευτική επίσκεψη στο Ναυτικό Μουσείο Καβάλας.pptx
Εκπαιδευτική επίσκεψη στο Ναυτικό Μουσείο Καβάλας.pptx7gymnasiokavalas
12 views13 slides
2023_11_29_Φ_251_136798_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗΣ_ΔΗΛΩΣΗΣ_ΓΕΛ_2024.pdf by
2023_11_29_Φ_251_136798_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗΣ_ΔΗΛΩΣΗΣ_ΓΕΛ_2024.pdf2023_11_29_Φ_251_136798_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗΣ_ΔΗΛΩΣΗΣ_ΓΕΛ_2024.pdf
2023_11_29_Φ_251_136798_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗΣ_ΔΗΛΩΣΗΣ_ΓΕΛ_2024.pdfssuser9e6212
392 views15 slides
ATT00004.pdf by
ATT00004.pdfATT00004.pdf
ATT00004.pdf2dimkoryd
101 views3 slides
17 Νοέμβρη 2023 by
17 Νοέμβρη 202317 Νοέμβρη 2023
17 Νοέμβρη 2023Λυκειο Κολυμβαρίου
7 views36 slides

Recently uploaded(20)

Η δική μου Παναγιά by hrisgiou
Η δική μου ΠαναγιάΗ δική μου Παναγιά
Η δική μου Παναγιά
hrisgiou 23 views
Εκπαιδευτική επίσκεψη στο Ναυτικό Μουσείο Καβάλας.pptx by 7gymnasiokavalas
Εκπαιδευτική επίσκεψη στο Ναυτικό Μουσείο Καβάλας.pptxΕκπαιδευτική επίσκεψη στο Ναυτικό Μουσείο Καβάλας.pptx
Εκπαιδευτική επίσκεψη στο Ναυτικό Μουσείο Καβάλας.pptx
7gymnasiokavalas12 views
2023_11_29_Φ_251_136798_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗΣ_ΔΗΛΩΣΗΣ_ΓΕΛ_2024.pdf by ssuser9e6212
2023_11_29_Φ_251_136798_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗΣ_ΔΗΛΩΣΗΣ_ΓΕΛ_2024.pdf2023_11_29_Φ_251_136798_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗΣ_ΔΗΛΩΣΗΣ_ΓΕΛ_2024.pdf
2023_11_29_Φ_251_136798_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗΣ_ΔΗΛΩΣΗΣ_ΓΕΛ_2024.pdf
ssuser9e6212392 views
ATT00004.pdf by 2dimkoryd
ATT00004.pdfATT00004.pdf
ATT00004.pdf
2dimkoryd101 views
Από τον ηλεκτρισμό στον μαγνητισμό by Dimitra Mylonaki
Από τον ηλεκτρισμό στον μαγνητισμόΑπό τον ηλεκτρισμό στον μαγνητισμό
Από τον ηλεκτρισμό στον μαγνητισμό
Dimitra Mylonaki12 views
ΟΔΗΓΙΕΣ ΚΑΤΑΘΕΣΗΣ ΑΠΟΓΡΑΦΗΣ-3-4 (1).pdf by ssuser369a35
ΟΔΗΓΙΕΣ ΚΑΤΑΘΕΣΗΣ ΑΠΟΓΡΑΦΗΣ-3-4 (1).pdfΟΔΗΓΙΕΣ ΚΑΤΑΘΕΣΗΣ ΑΠΟΓΡΑΦΗΣ-3-4 (1).pdf
ΟΔΗΓΙΕΣ ΚΑΤΑΘΕΣΗΣ ΑΠΟΓΡΑΦΗΣ-3-4 (1).pdf
ssuser369a3515 views
2023_11_29_Φ_152_136804_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗ_ΔΗΛΩΣΗ_ΕΠΑΛ_2024.pdf by ssuser9e6212
2023_11_29_Φ_152_136804_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗ_ΔΗΛΩΣΗ_ΕΠΑΛ_2024.pdf2023_11_29_Φ_152_136804_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗ_ΔΗΛΩΣΗ_ΕΠΑΛ_2024.pdf
2023_11_29_Φ_152_136804_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗ_ΔΗΛΩΣΗ_ΕΠΑΛ_2024.pdf
ssuser9e6212516 views
Έγκυρη ενημέρωση by ssuser43d27b
Έγκυρη ενημέρωσηΈγκυρη ενημέρωση
Έγκυρη ενημέρωση
ssuser43d27b16 views
Ολική καταστροφή στις καλλιέργειες by Dimitra Mylonaki
Ολική καταστροφή στις καλλιέργειεςΟλική καταστροφή στις καλλιέργειες
Ολική καταστροφή στις καλλιέργειες
Dimitra Mylonaki16 views
τεχνικές διαχείρισης σχολικής τάξης.pptx by sarrafimaria
τεχνικές διαχείρισης σχολικής τάξης.pptxτεχνικές διαχείρισης σχολικής τάξης.pptx
τεχνικές διαχείρισης σχολικής τάξης.pptx
sarrafimaria17 views
Τριάντα εννιά καφενεία και ένα κουρείο by Dimitra Mylonaki
Τριάντα εννιά καφενεία και ένα κουρείοΤριάντα εννιά καφενεία και ένα κουρείο
Τριάντα εννιά καφενεία και ένα κουρείο
Dimitra Mylonaki11 views
Ο ΑΪ ΒΑΣΙΛΗΣ ΣΤΙΣ ΔΙΑΦΟΡΕΣ ΧΩΡΕΣ ΜΕΡΟΣ Β.pptx by ssuser86b52c
Ο ΑΪ ΒΑΣΙΛΗΣ ΣΤΙΣ ΔΙΑΦΟΡΕΣ ΧΩΡΕΣ ΜΕΡΟΣ Β.pptxΟ ΑΪ ΒΑΣΙΛΗΣ ΣΤΙΣ ΔΙΑΦΟΡΕΣ ΧΩΡΕΣ ΜΕΡΟΣ Β.pptx
Ο ΑΪ ΒΑΣΙΛΗΣ ΣΤΙΣ ΔΙΑΦΟΡΕΣ ΧΩΡΕΣ ΜΕΡΟΣ Β.pptx
ssuser86b52c7 views
ΠΑΙΔΑΓΩΓΙΚΟ ΙΔΕΟΔΡΟΜΙΟ - ΤΕΥΧΟΣ 21ο.pdf by Nikolaos Ziakas
ΠΑΙΔΑΓΩΓΙΚΟ ΙΔΕΟΔΡΟΜΙΟ - ΤΕΥΧΟΣ 21ο.pdfΠΑΙΔΑΓΩΓΙΚΟ ΙΔΕΟΔΡΟΜΙΟ - ΤΕΥΧΟΣ 21ο.pdf
ΠΑΙΔΑΓΩΓΙΚΟ ΙΔΕΟΔΡΟΜΙΟ - ΤΕΥΧΟΣ 21ο.pdf
Nikolaos Ziakas5 views

Η Γλώσσα C - Μάθημα 3

  • 1. H ΓΛΩΣΣΑ C Μάθηµα 3: Μεταβλητές και Σταθερές ∆ηµήτρης Ψούνης
  • 2. Περιεχόµενα Μαθήµατος Α. Μεταβλητές 1. Ονόµατα Μεταβλητών 2. Τύποι ∆εδοµένων 1. Τύποι Αριθµητικών ∆εδοµένων 1. Προσηµασµένοι Ακέραιοι 2. Μη Προσηµασµένοι Ακέραιοι 3. Πραγµατικοί Αριθµοί 2. Άλλοι Τύποι ∆εδοµένων 3. ∆ήλωση Μεταβλητών 1. Εντολή ∆ήλωσης Μεταβλητών 2. Παραδείγµατα 3. ∆ήλωση µε Αρχικοποίηση 4. Που δηλώνουµε τις µεταβλητές 4. Συνώνυµα τύπων δεδοµένων 1. Η λέξη κλειδί typedef Β. Σταθερές 1. Αριθµητικές Σταθερές 2. Συµβολικές Σταθερές 1. Η οδηγία #define 2. H λέξη-κλειδί const Γ. Ασκήσεις 2∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές
  • 3. Στόχος του Μαθήµατος 3∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Κάθε πρόγραµµα αποθηκεύει δεδοµένα στην µνήµη προκειµένου να τα χρησιµοποιήσει για να κάνει τους υπολογισµούς του. Η C χρησιµοποιεί δύο τρόπους για να αποθηκεύσει τα δεδοµένα της: Τις µεταβλητές, που είναι θέσεις αποθήκευσης δεδοµένων στις οποίες µπορούµε να παρέµβουµε και να αλλάξουµε την τιµή τους, όσες φορές θέλουµε κατά τη διάρκεια εκτέλεσης του προγράµµατος. Τις σταθερές, που είναι θέσεις αποθήκευσης δεδοµένων στις οποίες δεν µπορούµε να παρέµβουµε και σε όλη την διάρκεια του προγράµµατος έχουν την ίδια τιµή. Την τιµή αυτή την δηλώνουµε στην αρχή του προγράµµατος Πρέπει να διαχωρίσουµε εξαρχής στο µυαλό µας, ότι κάθε µεταβλητή έχει το όνοµα της (π.χ η µεταβλητή x), που έχει µία θέση µνήµης (π.χ. η x είναι στη θέση µνήµης 1000), στην οποία αποθηκεύεται η τιµή της µεταβλητής (π.χ x=3) και έχει και έναν τύπο δεδοµένων (π.χ η x είναι ακέραια) x c y 2 64 1000 1004 1008
  • 4. A. Μεταβλητές 1. Ονόµατα Μεταβλητών 4∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Κάθε µεταβλητή έχει ένα όνοµα. Μπορούµε να χρησιµοποιήσουµε (σχεδόν) οποιοδήποτε όνοµα θέλουµε, σεβόµενοι τους ακόλουθους κανόνες: Το όνοµα µπορεί να χρησιµοποιεί τους ακόλουθους χαρακτήρες (και µόνον αυτούς) Γράµµατα (a-z, A-Z) Ψηφία (0-9) Το underscore ( _ ) Το όνοµα υποχρεωτικά πρέπει να ξεκινάει µε γράµµα ή µε underscore (όχι ψηφίο). Τα κεφαλαία-µικρά έχουν σηµασία (case-sensitive). Έτσι η µεταβλητή sum θα είναι διαφορετική από την µεταβλητή sUm και από την µεταβλητή Sum. ∆εν µπορούν να χρησιµοποιηθούν οι λέξεις-κλειδια της γλώσσας (ονόµατα τύπων δεδοµένων, include κ.λπ.)
  • 5. A. Μεταβλητές 1. Ονόµατα Μεταβλητών 5∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Συµβουλές: Είναι καλή τακτική, να χρησιµοποιούµε ονόµατα που σχετίζονται µε την λειτουργία των µεταβλητών. Π.χ. Αν θέλουµε να αποθηκεύσουµε σε µια µεταβλητή το άθροισµα κάποιων τιµών, είναι προτιµότερο να ονοµάσουµε την µεταβλητή sum, παρά να την ονοµάσουµε µε ένα ξερό π.χ. z. Σπάνια χρησιµοποιούµε κεφαλαία γράµµατα για µεταβλητές. Έχουν επικρατήσει τα µικρά γράµµατα Έχουν επικρατήσει δύο στυλ γραφής των µεταβλητών όταν θέλουµε 2 λέξεις στις µεταβλητές για να τις περιγράψουµε: Nα τις χωρίζουµε µε _, π.χ. interest_rate Να τις κάνουµε 2 λέξεις, µε την δεύτερη να αρχίζει µε κεφαλαίο π.χ. interestRate
  • 6. A. Μεταβλητές 2. Τύποι ∆εδοµένων 6∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Ανάλογα µε τα δεδοµένα που θέλουµε να αποθηκεύσουµε πρέπει να χρησιµοποιήσουµε και διαφορετικό τύπο µεταβλητής. Με τον όρο τυποι δεδοµένων ονοµάζουµε τους διαφορετικούς τύπους µεταβλητών που µπορούµε να χρησιµοποιήσουµε. Είναι δική µας ευθύνη να επιλέξουµε τον τύπο δεδοµένων των µεταβλητών. Αν θέλουµε να αποθηκεύσουµε σε µια µεταβλητή τον βαθµό µας σε ένα µάθηµα, πρέπει να χρησιµοποιήσουµε µια ακέραια µεταβλητή διότι ο βαθµός µας είναι ακέραιος. Αν θέλουµε να αποθηκεύσουµε σε µια µεταβλητή το επιτόκιο ενός δανείου, πρέπει να χρησιµοποιήσουµε µια πραγµατική µεταβλητή µικρής ακρίβειας, χωρίς να µας ενδιαφέρει η ακρίβεια πολλών δεκαδικών ψηφίων γιατί µας αρκούν – συνήθως - 2 δεκαδικά ψηφία Αν θέλουµε να αποθηκεύσουµε σε µια µεταβλητή τα πρώτα 15 ψηφία του αρρητου αριθµού π, θα χρειαστούµε µια πραγµατική µεταβλητή διπλής ακρίβειας κ.ο.κ.
  • 7. A. Μεταβλητές 2. Τύποι ∆εδοµένων 1. Τύποι Αριθµητικών ∆εδοµένων 7∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Η C έχει πολλούς τύπους δεδοµένων µε τους οποίους µπορούµε να αποθηκεύσουµε αριθµούς. Όσο µεγαλύτερη πληροφορία θέλουµε να αποθηκεύσουµε σε έναν αριθµό, τόσο περισσότερα bytes απαιτούνται στην µνήµη από τον αριθµό. Οι αριθµητικές µεταβλητές χωρίζονται σε δύο µεγάλες κατηγορίες: Τις ακέραιες µεταβλητές που αποθηκεύουµε ακέραιες τιµές (char, int, long, short) Τις κλασµατικές µεταβλητές που αποθηκεύουµε δεκαδικές τιµές (float, double) Ειδικά για τις ακέραιες µεταβλητές όλες οι παραπάνω χωρίζονται σε προσηµασµένες και µη προσηµασµένες
  • 8. A. Μεταβλητές 2. Τύποι ∆εδοµένων 1. Τύποι Αριθµητικών ∆εδοµένων (1.Προσηµασµένοι Ακέραιοι) 8∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Οι προσηµασµένες ακέραιες µεταβλητές, επιτρέπουν την αποθήκευση και αρνητικών αριθµών. Σηµείωση: Τα bytes που αντιστοιχούν όπως φαίνεται στον πίνακα εξαρτώνται από το σύστηµα µας, αλλά συνήθως είναι όπως φαίνεται εδώ: Όνοµα Τύπου ∆εδοµένων Συµβολισµός bytes Εύρος τιµών Χαρακτήρας char 1 -128 εώς 127 Μικρός Ακέραιος short 2 -32768 εώς 32767 Ακέραιος int 4 -2147483648 εώς 2147438647 Μεγάλος Ακέραιος long 4 -2147483648 εώς 2147438647
  • 9. A. Μεταβλητές 2. Τύποι ∆εδοµένων 1. Τύποι Αριθµητικών ∆εδοµένων (2.Μη Προσηµασµένοι Ακέραιοι) 9∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Οι µη προσηµασµένες ακέραιες µεταβλητές, επιτρέπουν την αποθήκευση µόνο θετικών αριθµών. Έτσι ξεκινούν από το 9 και επιτρέπουν την αποθήκευση διπλάσιας τιµής σε σχέση µε τις προσηµασµένες. Όνοµα Τύπου ∆εδοµένων Συµβολισµός bytes Εύρος τιµών Μη προσηµασµένος Χαρακτήρας unsigned char 1 0 εώς 255 Μη προσηµασµένος Μικρός Ακέραιος unsigned int 2 0 εώς 65535 Μη προσηµασµένος Ακέραιος unsigned int 2 0 εώς 65535 Μη προσηµασµένος Μεγάλος Ακέραιος unsigned long 4 0 εώς 4294967295
  • 10. A. Μεταβλητές 2. Τύποι ∆εδοµένων 1. Τύποι Αριθµητικών ∆εδοµένων (3.Πραγµατικοί Αριθµοί) 10∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Οι πραγµατικές µεταβλητές είναι δύο κατηγοριών float και double µε µόνη διαφορά τα bytes (άρα και την ακρίβεια) κάθε τύπου δεδοµένων. Πρακτικά: Οι float αποθηκεύουν ικανοποιητικά µέχρι 7 ψηφία Οι double µέχρι 19 ψηφία. Όνοµα Τύπου ∆εδοµένων Συµβολισµός bytes Εύρος τιµών Κινητής Υποδιαστολής Μονής Ακρίβειας float 4 1.2x10-38 εώς 3.4x1038 Κινητής Υποδιαστολής ∆ιπλής Ακρίβειας double 8 2.2x10-308 εώς 1.8x10308 Κινητής Υποδιαστολής Μονής Ακρίβειας float 4 1.2x10-38 εώς 3.4x1038 Κινητής Υποδιαστολής ∆ιπλής Ακρίβειας double 8 2.2x10-308 εώς 1.8x10308
  • 11. A. Μεταβλητές 2. Τύποι ∆εδοµένων 1. Τύποι Αριθµητικών ∆εδοµένων 11∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Η πληθώρα τύπων δεδοµένων µας δίνει περιθώρια για ευέλικτο προγραµµατισµό ανάλογα µε τις ανάγκες του προγράµµατος. ∆εν σηµαίνει ότι πρέπει να επιλέξουµε οπωσδήποτε τον καλύτερο τύπο δεδοµένων για την κάθε περίπτωση. Πρακτικά στα περισσότερα προγράµµατα για να αποθηκεύσουµε αριθµούς θα αρκεστούµε στους τύπους δεδοµένων: int: για τις ακέραιες µεταβλητές long: αν πρόκειται να αποθηκευτούν µεγάλες τιµές ακεραίων float: για δεκαδικούς αριθµούς µικρής ακρίβειας double: για δεκαδικούς αριθµούς µεγάλης ακρίβειας
  • 12. A. Μεταβλητές 2. Τύποι ∆εδοµένων 1. Τύποι Αριθµητικών ∆εδοµένων 12∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Το ακόλουθο πρόγραµµα προβάλλει στην οθόνη τα µεγέθη σε bytes των τύπων δεδοµένων που µελετήσαµε. Ο τελεστής sizeof που χρησιµοποιείται επιστρέφει τα bytes του τύπου που δέχεται ως όρισµα.(θα τον µελετήσουµε σε επόµενο µάθηµα πιο αναλυτικά) Εκτελέστε το πρόγραµµα και κάντε αντιπαραβολή µε τους πίνακες των διαφανειών. /* sizes.c: Provallei stin othoni ta megethi se bytes twn tipwn dedomenvn */ #include <stdio.h> main() { printf("nTa bytes enos char einai: %d", sizeof(char)); printf("nTa bytes enos short einai: %d", sizeof(short)); printf("nTa bytes enos int einai: %d", sizeof(int)); printf("nTa bytes enos long einai: %d", sizeof(long)); printf("nTa bytes enos unsigned short einai: %d", sizeof(unsigned short)); printf("nTa bytes enos unsigned int einai: %d", sizeof(unsigned int)); printf("nTa bytes enos unsigned long einai: %d", sizeof(unsigned long)); printf("nTa bytes enos float einai: %d", sizeof(float)); printf("nTa bytes enos double einai: %d", sizeof(double)); }
  • 13. A. Μεταβλητές 2. Τύποι ∆εδοµένων 2. Άλλοι τύποι ∆εδοµένων 13∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Εκτός από τους αριθµητικούς τύπους δεδοµένων (που αποθηκευουν αριθµούς), υπάρχουν και τύποι δεδοµένων που: Αποθηκευουν χαρακτήρες και συµβολοσειρές (ακολουθίες χαρακτήρων). Θα τις δούµε αναλυτικά σε επόµενο µάθηµα. Οριζόµενες από τον χρήστη. ∆ηλαδή ο χρήστης µπορεί να ορίσει δικούς του τύπους δεδοµένων. Θα τις δούµε σε επόµενο µάθηµα.
  • 14. A. Μεταβλητές 3. ∆ήλωση Μεταβλητών 1. Εντολή ∆ήλωσης Μεταβλητής 14∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Προτού χρησιµοποιήσουµε µια µεταβλητή, θα πρέπει να την δηλώσουµε. Η δήλωση µιας µεταβλητής γίνεται µε µια εντολή της µορφής: όπου τύπος_δεδοµένων κάποιος από αυτούς που είδαµε στην προηγούµενη ενότητα και όνοµα_µεταβλητής είναι το όνοµα που επιλέγουµε εµείς σεβόµενοι τους κανόνες που έχουµε αναφέρει Είναι δυνατό να ορίσουµε και παραπάνω από µία µεταβλητές του ίδιου τύπου σε µία γραµµή, χωρίζοντας τα ονόµατα των µεταβλητών µε κόµµατα: Ο παραπάνω κώδικας ορίζει 3 µεταβλητές µε τα αντίστοιχα ονόµατα και οι µεταβλητές είναι του τύπου δεδοµένων. τυπος_δεδοµένων όνοµα_µεταβλητής; τυπος_δεδοµένων όν_µετ1, ον_µετ2, ον_µετ3;
  • 15. A. Μεταβλητές 3. ∆ήλωση Μεταβλητών 2. Παραδείγµατα 15∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Το ακόλουθο τµήµα κώδικα: ∆ηλώνει 3 ακέραιες µεταβλητές µε ονόµατα x,y,z Και 2 αριθµούς κινητής υποδιαστολής µονής ακρίβειας µε ονόµατα percent, amount Επίσης το ακόλουθο τµήµα κώδικα: Κάνει ακριβώς την ίδια ενέργεια µε το παραπάνω τµήµα κώδικα. int x,y,z; float percent, amount; int x; int y; int z; float percent, amount; Η εντολή δήλωσης µεταβλητής ισοδυναµεί µε τη δέσµευση της µνήµης από το µεταγλωττιστή, τη συσχέτιση του χώρου αποθήκευσης µε το όνοµα της µεταβλητής. Έτσι η εντολή: int x,y,z αντιστοιχεί στην εικόνα µνήµης: x z y
  • 16. A. Μεταβλητές 3. ∆ήλωση Μεταβλητών 3. ∆ήλωση µε Αρχικοποίηση 16∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Είναι σηµαντικό να καταλάβουµε ότι µια έντολη δήλωσης: Απλά δεσµεύει τον χώρο για να αποθηκευτεί η µεταβλητή ∆εν δίνει τιµή στην µεταβλητή. Έτσι αρχικά η µεταβλητή, έχει όπως λέµε «σκουπίδια», δηλαδή έχει ότι περιείχαν τα bytes της προτού δεσµευθεί ο χώρος της. Για το λόγο αυτό συχνά είναι χρήσιµο µε το που δηλώνουµε µια µεταβλητή να αρχικοποιούµε µε κατάλληλη τιµή: Π.χ. Η δήλωση ∆ηλώνει µια ακέραια µεταβλητή και της αναθέτει την τιµή 5 Ενώ η δήλωση ∆ηλώνει δύο πραγµατικές µεταβλητές µε τιµές 5.5 και 4.44 αντίστοιχα. int x=5; float y=5.5, z=4.44;
  • 17. A. Μεταβλητές 3. ∆ήλωση Μεταβλητών 3. ∆ήλωση µε Αρχικοποίηση 17∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Η δήλωση ∆ηλώνει µια ακέραια µεταβλητή x και εκχωρεί σε αυτήν την τιµή 5. Αυτό µπορεί εναλλακτικά να γίνει και µε τις ακόλουθες γραµµές κώδικα: Προσοχή! Το = είναι ο τελεστής καταχώρησης (ή τελεστής εκχώρησης) που δίνει στην µεταβλητή που είναι αριστερά του, την τιµή που βρίσκεται δεξιά του. (∆εν έχει λοιπόν καµία σχέση µε την γνωστή µαθηµατική µας ισότητα) Έτσι οι δύο παραπάνω τρόποι είναι ισοδύναµοι µεταξύ τους. int x=5; int x; x=5;
  • 18. A. Μεταβλητές 3. ∆ήλωση Μεταβλητών 4. Που δηλώνουµε µεταβλητές 18∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Στο µάθηµα 12: Εµβέλεια Μεταβλητών, θα δούµε ότι ανάλογα µε το που δηλώνουµε τις µεταβλητές επηρεάζεται ο τρόπος που χρησιµοποιούνται από το πρόγραµµα µας. Εδώ θα δούµε αρχικά ότι υπάρχουν δύο τύποι µεταβλητών: Οι καθολικές µεταβλητές στις οποίες έχουν πρόσβαση και η main και όλες οι συναρτήσεις. Οι καθολίκές µεταβλητές, δηλώνονται ακριβώς πριν την main Οι τοπικές µεταβλητές, τις οποίες δηλώνει κάποια συνάρτηση και στις οποίες έχουν πρόσβαση µόνο η συνάρτηση. Οι τοπικές µεταβλητές δηλώνονται στο σώµα της συνάρτησης χρήστη( ή της main) αµέσως µετά το άγκιστρο που ανοίγει το σώµα της συνάρτησης χρήστη (ή της main αντίστοιχα) Το σχήµα της επόµενης διαφάνειας συνοψίζει τους κανόνες αυτούς
  • 19. A. Μεταβλητές 3. ∆ήλωση Μεταβλητών 4. Που δηλώνουµε µεταβλητές 19∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Στο µάθηµα 12: Εµβέλεια Μεταβλητών, θα δούµε ότι ανάλογα µε το που δηλώνουµε τις µεταβλητές επηρεάζεται ο τρόπος που χρησιµοποιούνται από το πρόγραµµα µας. Εδώ θα δούµε αρχικά ότι υπάρχουν δύο τύποι µεταβλητών: Οι καθολικές µεταβλητές στις οποίες έχουν πρόσβαση και η main και όλες οι συναρτήσεις. Οι καθολίκές µεταβλητές, δηλώνονται ακριβώς πριν την main Οι τοπικές µεταβλητές, τις οποίες δηλώνει κάποια συνάρτηση και στις οποίες έχουν πρόσβαση µόνο η συνάρτηση. Οι τοπικές µεταβλητές δηλώνονται στο σώµα της συνάρτησης χρήστη( ή της main) αµέσως µετά το άγκιστρο που ανοίγει το σώµα της συνάρτησης χρήστη (ή της main αντίστοιχα) Το σχήµα της επόµενης διαφάνειας συνοψίζει τους κανόνες αυτούς #include <stdio.h> int function(int x); // Το πρωτότυπο µιας συνάρτησης int g; /* Η g είναι καθολική. Σε αυτήν έχει πρόσβαση και η main και η συνάρτηση f */ main() { int m; /* Η m είναι τοπική. Σε αυτήν έχει πρόσβαση µόνο η main */ ...(Εντολές της main)... } int function(int x) // Το σώµα της συνάρτησης { int k; /* H k είναι τοπική µεταβλητή. Σε αυτήν έχει πρόσβαση µόνο η συνάρτηση f() */ ...(Εντολές της function)... }
  • 20. A. Μεταβλητές 4. Συνώνυµα τύπων δεδοµένων 1. Η λέξη-κλειδί typedef 20∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές H C µας δίνει το δικαίωµα να ορίσουµε ένα συνώνυµο ενός τύπου δεδοµένων. Η εργασία αυτή γίνεται µε την typedef που συντάσσεται ως εξής: Με την εντολή αυτή ορίζουµε ότι ο τύπος δεδοµένων µε όνοµα νεο_ονοµα_Τ∆ θα έχει ακριβώς την ίδια συµπεριφορά µε τον υπάρχοντα τύπο δεδοµένων µε όνοµα παλιο_όνοµα_Τ∆ Για παράδειγµα µε την εντολή Μπορούµε να γράφουµε στο πρόγραµµά µας, αντί για int τον τύπο δεδοµένων akeraios, που θα έχει την ίδια συµπεριφορά µε το int Οι εντολές typedef πρέπει να βρίσκονται ακριβώς µετά τις οδηγίες #include στην αρχή του προγράµµατός µας. Μεταγλωττίστε και εκτελέστε το παράδειγµα της επόµενης διαφάνειας που αναδεικνύει την χρήση της typedef. typedef παλιο_ονοµα_Τ∆ νεο_ονοµα_Τ∆; typedef int akeraios;
  • 21. A. Μεταβλητές 4. Συνώνυµα τύπων δεδοµένων 1. Η λέξη-κλειδί typedef 21∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Στο µάθηµα 12: Εµβέλεια Μεταβλητών, θα δούµε ότι ανάλογα µε το που δηλώνουµε τις µεταβλητές επηρεάζεται ο τρόπος που χρησιµοποιούνται από το πρόγραµµα µας. Εδώ θα δούµε αρχικά ότι υπάρχουν δύο τύποι µεταβλητών: Οι καθολικές µεταβλητές στις οποίες έχουν πρόσβαση και η main και όλες οι συναρτήσεις. Οι καθολίκές µεταβλητές, δηλώνονται ακριβώς πριν την main Οι τοπικές µεταβλητές, τις οποίες δηλώνει κάποια συνάρτηση και στις οποίες έχουν πρόσβαση µόνο η συνάρτηση. Οι τοπικές µεταβλητές δηλώνονται στο σώµα της συνάρτησης χρήστη( ή της main) αµέσως µετά το άγκιστρο που ανοίγει το σώµα της συνάρτησης χρήστη (ή της main αντίστοιχα) Το σχήµα της επόµενης διαφάνειας συνοψίζει τους κανόνες αυτούς /* typedef.c: Paradeigma xrisis tis entolis typedef */ #include <stdio.h> typedef int akeraios; main() { akeraios x,y,z; printf("Dwste enan akeraio: "); scanf("%d",&x); printf("Dwste akomi enan akeraio: "); scanf("%d",&y); z=x+y; printf("To athroisma toys einai: %d", z); }
  • 22. A. Μεταβλητές 4. Συνώνυµα τύπων δεδοµένων 1. Η λέξη-κλειδί typedef 22∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές mτέτοιου τύπου χρήσεις ωστόσο δεν είναι χρήσιµες. Τους βασικούς τύπους δεδοµένων θα πρέπει να µάθουµε να τους χρησιµοποιούµε ως έχουν. Ωστόσο για δευτερεύοντες τύπους δεδοµένων (όπως τύπους δεδοµένων που καθορίζονται από τον χρήστη), ο ορισµός συνωνύµων µέσω της typedef θα µας φανεί ιδιαίτερα χρήσιµος!
  • 23. Β. Σταθερές 1. Αριθµητικές σταθερές 23∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Ήδη στα προηγούµενα παραδείγµατα, είδαµε πολλές φορές να γράφουµε έναν αριθµό στο πρόγραµµα (προκειµένου π.χ. να τον αποθηκεύσουµε σε µία µεταβλητή) Η απεικόνιση αριθµών στην C, είναι η πρώτη κατηγορία σταθερών, οι λεγόµενες αριθµητικές σταθερές, όπου αναφερόµαστε σε έναν αριθµό απλά καταγράφοντας τον. Υπάρχουν 3 ειδών αριθµητικές σταθερές (δηλαδή αριθµοί) που µπορούµε να γράψουµε στο πρόγραµµα µας: Οι ακέραιοι αριθµοι. Όταν γράφουµε έναν ακέραιο αριθµό στο πρόγραµµα µας π.χ. 2, η C καταλαβαίνει ότι πρέπει να αποθηκευτεί προσωρινά σε έναν χώρο αποθήκευσης ακεραίου (int) Οι πραγµατικοί αριθµοί. Η C αντιλαµβάνεται έναν πραγµατικό αριθµό µε 2 τρόπους: Βάζοντας τελεία ( . ) για να απεικονίσουµε την υποδιαστολή (π.χ. 3.45) ∆ίνοντας την επιστηµονική µορφή του αριθµού (π.χ. 1.23e6 που απεικονίζει τον αριθµό 1.23x106=1230000)
  • 24. Β. Σταθερές 2. Συµβολικές Σταθερές 24∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Μια συµβολική σταθερά είναι µια σταθερά που έχει ένα όνοµα, σε αντίθεση µε τις αριθµητικές σταθερές που είναι ένας ξερός αριθµός. Για παράδειγµα αν γράφουµε ένα πρόγραµµα που θα χρησιµοποιήσει τον αριθµό π (π.χ. αν υπολογίζουµε το εµβαδόν ενός κύκλου), θα θέλαµε να απεικονίσουµε τον αριθµό σε µία µεταβλητή Ωστόσο η τιµή αυτής της µεταβλητής δεν πρόκειται να αλλάξει ποτέ στην διάρκεια του προγράµµατος. Για το λόγο αυτό θα αποθηκεύσουµε την µεταβλητή αυτή ως σταθερά. Υπάρχουν δύο ειδών συµβολικές σταθερές, που ορίζονται µέσω: Της οδηγία #define Της λέξης κλειδί const m.και οι δύο τρόποι χρησιµοποιούνται εξίσου συχνά. Η διαφορά τους θα γίνει πλήρως κατανοητή σε επόµενα µαθήµατα, αλλα θα δούµε τώρα ότι: Με την #define ορίζουµε σταθερά που την βλέπει υποχρεωτικά όλο το πρόγραµµα (όλες οι συναρτήσεις) Με την const µπορούµε να ορίσουµε σταθερά που την επεξεργάζεται µόνο µια συγκεκριµένη συνάρτηση.
  • 25. Β. Σταθερές 2. Συµβολικές Σταθερές 1. Η οδηγία #define 25∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Μπορούµε να ορίσουµε µια στάθερα µέσω της οδηγία #define ακολουθώντας την σύνταξη: Για παράδειγµα το π θα το ορίσουµε µε την δήλωση: Προσοχή! Μετά την δήλωση δεν βάζουµε ερωτηµατικό! Οι δηλώσεις #define γράφονται αµέσως µετά τις δηλώσεις #include. Η ακριβής λειτουργία της define είναι ότι ο µεταγλωττιστής αναζητά κάθε εµαφάνιση της PI στο πρόγραµµα και την αντικαθιστά µε την αριθµητική τιµή. Κάνει δηλαδή την ίδια ενέργεια µε το να πηγαίναµε µε το χέρι και να αντικαταστήσουµε τις εµφανίσεις της PI µε την συγκεκριµένη τιµή #define ΟΝΟΜΑ_ΣΤΑΘΕΡΑΣ ΤΙΜΗ_ΣΤΑΘΕΡΑΣ #define PI 3.1415
  • 26. Β. Σταθερές 2. Συµβολικές Σταθερές 2. Η λέξη-κλειδί const 26∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Μία οποιαδήποτε µεταβλητή µπορούµε να την ορίσουµε ως σταθερά, αν γνωρίζουµε η τιµή της δεν πρόκειται να αλλάξει κατά την διάρκεια εκτέλεσης του προγράµµατος. Ο καθορισµός ότι η µεταβλητή µετατρέπεται σε σταθερά γίνεται προσθέτοντας την λέξη κλειδί const µπροστά από την δήλωση της µεταβλητής. Προσοχή! Μία σταθερά θα πρέπει να αρχικοποιείται οπωσδήποτε κατά την δήλωσή της! Έτσι µια ακεραια σταθερά µε την τιµή 100 δηλώνεται ως εξής: Μπορούµε να έχουµε σταθερά οποιουδήποτε τύπου δεδοµένων! ∆ήλωση σταθεράς µε την λέξη const µπορούµε να έχουµε στα σηµεία όπου επιτρέπεται δήλωση µεταβλητών (αρχή συναρτήσεων και πριν την main) const int x=100;
  • 27. Β. Σταθερές 2. Συµβολικές Σταθερές 2. Η λέξη-κλειδί const 27∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Σε µεγάλα προγράµµατα είναι συχνό να κρατάµε άµυνες για να αποφύγουµε λάθη που θα είναι δύσκολο να εντοπιστούν Ο ορισµός µεταβλητών ως σταθερών µε χρήση της λεξης κλειδί const είναι µια συνηθισµένη πολιτική Πράγµατι έστω ότι δηλώνουµε µια σταθερά στην αρχή ενός προγράµµατος. Τότε αν επιχειρήσουµε να αλλάξουµε την τιµή της σε επόµενη γραµµή κώδικα, ο µεταγλωττιστής θα διαµαρτυρηθεί! Έτσι έχουµε µια άµυνα, αφού ούτε εµείς οι ίδιοι δεν θα µπορέσουµε να αλλάξουµε την τιµή της, όταν γράφουµε τον κώδικα. Μελετήστε συστηµατικά το πρόγραµµα της επόµενης διαφάνειας. Συγκεντρώνει όλες τις πληροφορίες για την δοµή ενός προγράµµατος C, ενσωµατώνοντας όλα τα χαρακτηριστικά που έχουµε αναφέρει.
  • 28. Β. Σταθερές 4. Συµβολικές Σταθερές 2. Η λέξη-κλειδί const 28∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Σε µεγάλα προγράµµατα είναι συχνό να κρατάµε άµυνες για να αποφύγουµε λάθη που θα είναι δύσκολο να εντοπιστούν Ο ορισµός µεταβλητών ως σταθερών µε χρήση της λεξης κλειδί const είναι µια συνηθισµένη πολιτική Πράγµατι έστω ότι δηλώνουµε µια σταθερά στην αρχή ενός προγράµµατος. Τότε αν επιχειρήσουµε να αλλάξουµε την τιµή της σε επόµενη γραµµή κώδικα, ο µεταγλωττιστής θα διαµαρτυρηθεί! Έτσι έχουµε µια άµυνα, αφού ούτε εµείς οι ίδιοι δεν θα µπορέσουµε να αλλάξουµε την τιµή της, όταν γράφουµε τον κώδικα. Μελετήστε συστηµατικά το πρόγραµµα της επόµενης διαφάνειας. Συγκεντρώνει όλες τις πληροφορίες για την δοµή ενός προγράµµατος C, ενσωµατώνοντας όλα τα χαρακτηριστικά που έχουµε αναφέρει. /* statheres.c: Programma poy deixnei tin xrisi statherwn */ #include <stdio.h> //1.grafoume ta arxeia kefalidas #define N 100 //2.Grafoume odigies define statherwn //3. Edw mporoume na orisoume katholikes metavlites //4. Edw mporoume na orisoyme prwtotipa sinartisewn main() { //5.1 Dilwsi statherwn kai metavlitwn tis main int i,sum; const int number=10; //5.2 entoles tis main for (i=number; i<=N; i++) sum=sum+i; printf("To athroisma twn arithmwn [%d..%d] einai %d",number,N,sum); getchar(); } //6. Edw tha exoyme ta swmata twn sinartisewn
  • 29. Γ. Ασκήσεις Εφαρµογή 1 29∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 3: Μεταβλητές και Σταθερές Γράψτε ένα πρόγραµµα C το οποίο: 1. ∆ηλώνει µία σταθερά µε τιµή 100 µε χρήση της const 2. ∆ηλώνει µια ακέραια µεταβλητή 3. ∆ιαβάζει την τιµή της ακέραιας µεταβλητής από το πληκτρολόγιο 4. Εκτυπώνει στην οθόνη τις τιµές της σταθεράς και της µεταβλητής