ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C"

Transcript

1 ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C Γιάννης Κουτσονίκος Επίκουρος Καθηγητής

2 Υλοποίηση λογισμικού Συγγραφή πηγαίου κώδικα Ο προγραμματιστής επιλέγοντας μία από τις διαθέσιμες γλώσσες προγραμματισμού και χρησιμοποιώντας έναν επεξεργαστή κειμένου (text editor) δημιουργεί ένα αρχείο που περιέχει τον πηγαίο κώδικα του προγράμματος του (.c). #include <stdio.h> main( ) { printf("hello, world"); } Μεταγλώττιση Η διεργασία της μεταγλώττισης είναι πλήρως αυτοματοποιημένη και αρκεί να πατηθεί το κουμπί της μεταγλώττισης (compiler). Σε περίπτωση συντακτικού λάθους, η μεταγλώττιση δεν είναι επιτυχής και εμφανίζεται η λίστα με τα συντακτικά λάθη, π.χ. example.c(4): Error! E1077: Missing '}' example.c: 4 lines, 0 warnings, 1 errors Σε αντίθετη περίπτωση, δημιουργείται το αντικείμενο αρχείο (object file). 2

3 Υλοποίηση λογισμικού Σύνδεση Σύνδεση μέσω του συνδέτη (Linker) του δημιουργημένου αντικείμενου αρχείου με άλλα αντικείμενα αρχεία (εάν ζητείται) καθώς και με βιβλιοθήκες. Δημιουργία εκτελέσιμου (.exe) αρχείου Τα λάθη στο λογισμικό Συντακτικά λάθη (Syntax errors) Παραβίαση συντακτικών κανόνων. Λάθη κατά την εκτέλεση (Run-time errors). Λογικά λάθη (Σημασιολογικά λάθη) Bugs Debugging. 3

4 Υλοποίηση λογισμικού Αρχή Συγγραφή/Επεξεργασία Πηγαίου Κώδικα test.c Μεταγλώττιση Πηγαίου Κώδικα Βιβλιοθήκες Object αρχεία ναι Συντακτικά Λάθη; όχι Σύνδεση (Link) test.obj ναι Εκτέλεση Λάθη; όχι ΤΕΛΟΣ test.exe 4

5 Μερικά χαρακτηριστικά στοιχεία της C Έχει ένα πολύ μικρό πλήθος λέξεων-κλειδιών (keywords), το οποίο περιλαμβάνει ένα πλήρες σύνολο δομών/εντολών ελέγχου ροής: for, if/else, while, switch, και do/while, goto. Υπάρχει ένα μεγάλο πλήθος αριθμητικών και λογικών τελεστών, όπως οι: +, +=, ++, -, -=, --, *, *=, /, /=, ==, &, &&,,, ~, κ.ά. Σε μία εντολή μπορεί να γίνουν παραπάνω από μια εκχωρήσεις τιμών. Η τιμή που επιστρέφει μια συνάρτηση, μπορεί να αγνοηθεί εάν δεν χρειάζεται. Η C είναι case-sensitive γλώσσα (ευαίσθητη σε πεζά - κεφαλαία), δηλαδή τα πεζά και τα κεφαλαία έχουν διαφορετική σημασία. Ο χρήστης μπορεί να ορίσει δικούς του τύπους (και σύνθετους), εάν το επιθυμεί. Μπορεί επίσης να ορίσει και τύπους εγγραφών (structs στη C, records σε άλλες γλώσσες). 5

6 Μερικά χαρακτηριστικά στοιχεία της C Το πρώτο στοιχείο κάθε πίνακα έχει πάντα τη θέση μηδέν (0). Π.χ.: Το στοιχείο month[0] είναι το πρώτο στοιχείο του πίνακα month. Δεν υπάρχει ιδιαίτερος τύπος για αλφαριθμητικά, τα οποία παραδοσιακά υλοποιούνται και αντιμετωπίζονται σαν πίνακες από χαρακτήρες, και έχουν έναν μηδενικό χαρακτήρα να σημαδεύει το τέλος τους (null-terminated arrays of characters). Τα υποπρογράμματα που δεν επιστρέφουν τιμή ("procedures" σε άλλες γλώσσες) είναι συναρτήσεις που ορίζονται να είναι τύπου "void" (ψευδοτύπος που δείχνει την απουσία επιστρεφόμενης τιμής, αλλά χρησιμοποιείται και για δείκτες που δεν δείχνουν σε αντικείμενο συγκεκριμένου τύπου). Δεν μπορούν να οριστούν συναρτήσεις μέσα σε άλλες συναρτήσεις (εμφωλιασμένες). 6

7 Δομή προγράμματος σε C #include <stdio.h> /* Χρήση standard τύπων & συναρτήσεων */ #define Α 100 /* Ορισμός συμβολικού ονόματος */ const int b=10; /* Σταθερά */ typedef int akeraios; /* Δήλωση τύπου */ int i; /* Ακέραια Μεταβλητή καθολικής εμβέλειας*/ char c; /* Μεταβλητή χαρακτήρα καθολικής εμβέλειας*/ int funct1(παράμετροι) /* Συνάρτηση (πρότυπο ή υλοποίηση)*/ { /* Εντολές συνάρτησης */ } main() /* Κυρίως πρόγραμμα */ { /* Εντολές */ } /* Τέλος κυρίως προγράμματος */ 7

8 Κανόνες δημιουργίας ευανάγνωστου προγράμματος Αποφύγετε ονόματα ενός χαρακτήρα όπως i, j, l, m (υπάρχουν κάποιες περιπτώσεις, όπως θα δούμε στη συνέχεια, όπου χρησιμοποιούνται ονόματα αυτής της μορφής). Χρησιμοποιήστε εκφραστικά ονόματα. Πιο συγκεκριμένα: α) ονομάστε τη μεταβλητή η οποία αναπαριστά την ταχύτητα velocity και τη μέγιστη τιμή της max_velocity ή maxvelocity. β) ονομάστε τη συνάρτηση που εμφανίζει τα λάθη στην οθόνη display_error ή displayerror. Για την καλύτερη αναγνωσιμότητα των μεταβλητών που αποτελούνται από δύο ή περισσότερες λέξεις της καθομιλουμένης, αποφασίστε αν θα χρησιμοποιείτε σαν διαχωριστικό τον χαρακτήρα υπογράμμισης ή θα γράφετε κεφαλαίο το πρώτο γράμμα των λέξεων μετά την πρώτη. Προσπαθήστε να μην παραβιάζετε τους κανόνες σας. Χρησιμοποιήστε μικρά γράμματα για ονόματα μεταβλητών. 8

9 Αναγνωσιμότητα κώδικα Χρήση εκφραστικών ονομάτων. Χρήση εσοχών. Σχολιασμός κώδικα (χρήση /*...*/). Κώδικας 1 j = 120; if (i>j) func1(); else func2(); Κώδικας 2 /*αρχικοποίηση μέγιστης ταχύτητας*/ max_velocity = 120; /*εάν η ταχύτητα είναι μεγαλύτερη από την μέγιστη*/ if (velocity > max_velocity) decrease_velocity(); else /* διαφορετικά */ increase_velosity(); 9

10 Προεπεξεργαστής C Η προεπεξεργασία αποτελεί το πρώτο στάδιο κατά τη μεταγλώττιση ενός προγράμματος C. Δίνει τη δυνατότητα να συμπεριλάβουμε στον κώδικά μας έτοιμα header αρχεία και να ορίσουμε συμβολικά ονόματα ή μακροεντολές. Εντολές προεπεξεργαστή: #include <όνομα αρχείου επικεφαλίδας> π.χ. #include <stdio.h> /* ενσωμάτωση βιβλιοθήκης εισόδου/εξόδου */ #include "myheader.h" /* ενσωμάτωση βιβλιοθήκης χρήστη */ #define Σύμβολο Τιμή π.χ. #define A 50 /* Συμβολικό όνομα */ #define PI /* Συμβολικό όνομα */ 10

11 Βασικοί τύποι δεδομένων της C int float double char Ακέραιος αριθμός Πραγματικός αριθμός Πραγματικός αριθμός διπλής ακρίβειας Χαρακτήρας 11

12 Εύρος τιμών Τύπος δεδομένων Ενδεικτική Μνήμη (byte) Εύρος τιμών char 1 Το σύνολο χαρακτήρων int 4-2,147,483, ,147,483,647 float 4 Δεκαδικές τιμές από -3.4E-38 έως -3.4Ε+38 και 3.4E-38 έως 3.4Ε+38 double 8 Δεκαδικές τιμές από -1.7E-308 έως - 1.7Ε+308 και 1.7E-308 έως 1.7Ε+308 Σημείωση: Το εύρος τιμών καθώς και η δεσμευμένη μνήμη εξαρτώνται από το λειτουργικό σύστημα, τον επεξεργαστή και τον compiler. 12

13 Μεταβλητές Είναι μια υπολογιστική οντότητα που παριστάνει ένα μέγεθος (έννοια) που σχετίζεται με το πρόβλημα και έχει ένα συγκεκριμένο τύπο δεδομένων. Είναι διαφορετική η τιμή μιας θέσης μνήμης (τιμή μεταβλητής) και άλλο η τιμή της θέσης αυτής (διεύθυνση μεταβλητής). Δήλωση μεταβλητής (δέσμευση χώρου μνήμης) int x; Αρχικοποίηση μεταβλητής x=0; Ανάθεση τιμής x=7; (αποθήκευση της τιμής στο δεσμευμένο χώρο της μνήμης) Οι δηλώσεις των μεταβλητών πρέπει να προηγούνται της χρήσης τους. 13

14 Σταθερές Μεταβλητές που δεν αλλάζουν, με άμεσο τρόπο, τιμή: const int a=50; Χρήση συμβολικών ονομάτων: #define A 50 14

15 Εντολές εισόδου/εξόδου getchar() διαβάζει χαρακτήρα - c = getchar(); putchar() εμφανίζει χαρακτήρα - putchar(c) scanf(" ", & ) διαβάζει τιμές μεταβλητών - scanf("%d", &i) (i: ακέραιος αριθμός) - scanf("%f", &a) (a: πραγματικός αριθμός) - scanf("%c", &c) (c: χαρακτήρας) - scanf("%s", name) (name: συμβολοσειρά - πίνακας χαρακτήρων) printf(" ", ) εμφανίζει τιμές μεταβλητών ή εκφράσεων - printf("%d", i) (i: ακέραιος αριθμός) - printf("%f", a) (a: πραγματικός αριθμός) - printf("%c", c) (c: χαρακτήρας) - printf("%s",name) (name: συμβολοσειρά - πίνακας χαρακτήρων) gets(str) διαβάζει τη συμβολοσειρά str puts(str) εμφανίζει τη συμβολοσειρά str σε μια γραμμή 15

16 Εντολή printf printf("<κείμενο και προσδιοριστές>",<αποτελέσματα>); Κείμενο: όταν θέλουμε να εμφανίζεται μήνυμα. Προσδιοριστές: προσδιορίζουν τη μορφή εμφάνισης των αποτελεσμάτων με τη χρήση του %. Αποτελέσματα: μεταβλητές ή εκφράσεις, των οποίων εμφανίζεται η τιμή. Για παράδειγμα, έστω ότι a=2 και b=3. Η εντολή: printf("a=%d, b=%d\na*b=%d", a, b, a*b); θα εμφανίσει στην οθόνη: a=2, b=3 a*b=6 16

17 Εντολή scanf scanf("<προσδιοριστής>",<διεύθυνση μεταβλητής>); Προσδιοριστής: προσδιορίζει τον τύπο δεδομένων της μεταβλητής προς εισαγωγή με τη χρήση του %. Διεύθυνση μεταβλητής: η διεύθυνση μνήμης της μεταβλητής στην οποία θα αποθηκευθεί η τιμή που θα εισαχθεί. Παράδειγμα: scanf("%d",&velocity); Θα διαβάσει μια ακέραια τιμή και θα την αποθηκεύσει στη μεταβλητή velocity. Ο χαρακτήρας ampersand (&) &velocity (να γραφεί στη θέση μνήμης που έχει δεσμευτεί για τη μεταβλητή velocity η τιμή που θα εισαχθεί χρησιμοποιώντας μετατροπή με βάση τον προσδιοριστή). 17

18 Προσδιοριστές Προσδιοριστής Έξοδος Παράδειγμα %d ή %i Ακέραιος (int) 755 %c Χαρακτήρας (char) a %s Συμβολοσειρά test %f Πραγματικός αριθμός κινητής υποδιαστολής (float) %lf Πραγματικός αριθμός κινητής υποδιαστολής διπλής ακρίβειας (double) %e Πραγματικός αριθμός κινητής υποδιαστολής σε εκθετική μορφή (float) e+3 %u Ακέραιος χωρίς πρόσημο (unsigned int) 6916 %o Οκταδικός αριθμός (χωρίς πρόσημο) 410 %x Δεκαεξαδικός αριθμός (χωρίς πρόσημο) 3fc %X Δεκαεξαδικός αριθμός (χωρίς πρόσημο) με κεφαλαία 3FC Οι αριθμοί στους προσδιοριστές ορίζουν το εύρος εμφάνισης του δεδομένου, π.χ. %5d προσδιορίζει ακέραιο αριθμό με πλήθος ψηφίων 5, ενώ %8.3f προσδιορίζει πραγματικό αριθμό με 8 ψηφία τουλάχιστον (συμπεριλαμβανομένης και της υποδιαστολής) από τα οποία τα 3 θα είναι από το δεκαδικό μέρος. 18

19 Ειδικοί χαρακτήρες Χαρακτήρας Περιγραφή \n Αλλαγή γραμμής \t Χαρακτήρας οριζόντιου διαστήματος (tab) \v Χαρακτήρας κάθετου διαστήματος (vertical tab) \' Απλό εισαγωγικό \" Διπλό εισαγωγικό \? Λατινικό ερωτηματικό (?) \\ Ανάποδη πλάγια κάθετος (backslash \) Σημείωση: Εάν θέλουμε στο κείμενο της printf να τυπώσουμε ελληνικά, π.χ. printf("το αποτέλεσμα είναι: %d",result); θα πρέπει η πρώτη εντολή της main() να είναι η system("chcp 1253>nul"); (η εντολή system περιλαμβάνεται στην stdlib.h). Το τερματικό θα πρέπει να ρυθμιστεί και αυτό από τη Γραμμή Εντολών (Font->Lucida Console). 19

20 Άσκηση Τι θα γραφεί στη μνήμη του Η/Υ σε κάθε μια από τις παρακάτω περιπτώσεις: char i; int j; scanf("%c", &i); scanf("%d", &j); στην περίπτωση που εισάγουμε το 7 και στις δυο scanf; 20

21 Απάντηση Εφόσον scanf("%c", &i); και εισαχθεί το 7 τότε η μετατροπή με βάση τον προσδιοριστή "%c" για ανάγνωση χαρακτήρα θα έχει ως συνέπεια στη μνήμη να γραφεί: char 7 = ASCII(55) = [ ] Εφόσον scanf("%d", &j); και εισάγεται το 7 τότε η μετατροπή με βάση τον προσδιοριστή "%d" για ανάγνωση ακεραίου θα έχει ως συνέπεια στη μνήμη να γραφεί: int 7 = [ ] 21

22 Το 1 ο πρόγραμμα Ας υποθέσουμε ότι θέλουμε ένα πρόγραμμα που να ζητά από το χρήστη να του δώσει ένα χαρακτήρα και στη συνέχεια να τυπώσει το χαρακτήρα και τον επόμενο του, καθώς και τους ASCII κωδικούς τους. 22

23 Απάντηση #include <stdio.h> main() { } char xaraktiras, next_xar; printf("dose ena xaraktira:\t"); scanf("%c", &xaraktiras); /* εντολή προεπεξεργαστή για συμπερίληψη του αρχείου stdio.h */ printf("o ASCII kodikas tou xaraktira %c einai %d\n", xaraktiras, xaraktiras); next_xar = xaraktiras + 1; /* βρίσκει τον επόμενο χαρακτήρα */ printf("o ASCII kodikas tou epomenou xaraktira %c einai %d\n", next_xar, next_xar); 23

24 Τελεστές της C Ο τελεστής (operator) αναπαριστά μια πράξη που εκτελείται πάνω σε ένα ή περισσότερα δεδομένα, τα οποία καλούνται τελεστέοι (operands) και μπορεί να έχουν τη μορφή μεταβλητών ή σταθερών. Το αποτέλεσμα της διεργασίας είναι ο υπολογισμός μιας τιμής η οποία και αποτελεί τη τιμή της έκφρασης (expression). Οι τελεστές ταξινομούνται, ανάλογα με τον αριθμό των τελεστέων στους οποίους δρουν, σε μοναδιαίους (unary), δυαδικούς (binary) και τριαδικούς (ternary). 24

25 Αριθμητικοί τελεστές Πρόσθεσης (+) Αφαίρεσης (-) Πολλαπλασιασμού (*) Διαίρεσης (/) Υπολοίπου (%) 25

26 Μοναδιαίοι τελεστές αύξησης και μείωσης Μεταβάλλουν την τιμή μιας μεταβλητής, προσθέτοντας ή αφαιρώντας από αυτήν μια μονάδα. x=10; y=x++; /* Η μεταβλητή y θα πάρει την αρχική τιμή του x, δηλαδή 10 ενώ στη συνέχεια η μεταβλητή x θα αυξήσει την τιμή της κατά 1 και θα γίνει 11 */ x=10; y=++x; /* Η μεταβλητή x πρώτα θα αυξηθεί κατά 1 και στη συνέχεια θα δώσει την τιμή της στην y, επομένως και η y και η x θα έχουν την τιμή 11 */ Ανάλογα ισχύουν και για τον τελεστή

27 Άσκηση Προσδιορίστε την τιμή των x και z μετά την εκτέλεση κάθε μίας από τις παρακάτω εκφράσεις, θεωρώντας πριν την εκτέλεση της κάθε έκφρασης, ως τιμές των x και y, τα 10 και 20 αντίστοιχα: α) z = ++x + y; β) z = --x + y; γ) z = x++ + y; δ) z = x-- + y; 27

28 Απάντηση x=10; y=20; Έκφραση τιμή x τιμή z z = ++x + y; z = --x + y; 9 29 z = x++ + y; z = x-- + y;

29 Ο τριαδικός τελεστής (ternary operator)? : Ο τριαδικός τελεστής είναι πράξη και παράγει μια τιμή ως αποτέλεσμα. Ο τριαδικός τελεστής επιλέγει μία από δύο δυνατές τιμές ανάλογα με την τιμή μιας συνθήκης. συνθήκη? τιμή1 : τιμή2 Έάν η συνθήκη είναι αληθής τότε το αποτέλεσμα είναι η τιμή1, διαφορετικά η τιμή2. Παράδειγμα: int a,b; scanf("%d",&a); scanf("%d",&b); printf("ο μεγαλύτερος αριθμός είναι:%d\n",a>b?a:b); 29

30 Τελεστές σύνθετης απόδοσης τιμής Τελεστής Το a+=b; ισοδυναμεί με το a=a+b; Το a-=b; ισοδυναμεί με το a=a-b; Το a*=b; ισοδυναμεί με το a=a*b; Το a/=b; ισοδυναμεί με το a=a/b; Το a%=b; ισοδυναμεί με το a=a%b; Περιγραφή += Πρόσθεση και ανάθεση -= Αφαίρεση και ανάθεση *= Πολλαπλασιασμός και ανάθεση /= Διαίρεση και ανάθεση %= Υπολογισμός υπολοίπου και ανάθεση Σημείωση: Η έκφραση: x*=y+1 ισοδυναμεί με x=x*(y+1) και όχι με x=x*y+1 30

31 Τελεστές σύγκρισης Τελεστής Περιγραφή == Ίσο!= Διάφορο < Μικρότερο > Μεγαλύτερο <= Μικρότερο ή ίσο >= Μεγαλύτερο ή ίσο Το μηδέν (0) αντιστοιχεί στο ψευδές (false), ενώ οποιαδήποτε άλλη τιμή στο αληθές (true). Σημείωση: Ο έλεγχος ισότητας γίνεται με τον τελεστή == και όχι με τον = (καταχώρηση). 31

32 Άσκηση Υπολογίστε τις τιμές των παρακάτω εκφράσεων: α) count = 8 β) num == 9 γ) num = count + 3 δ) count >= num - 4 Με δεδομένο ότι οι count και num είναι ακέραιες μεταβλητές και πριν από κάθε έκφραση έχουν τιμές 8 και 12 αντίστοιχα. 32

33 Απάντηση count=8; num=12; Έκφραση count = 8 8 num == 9 0 (false) num = count count >= num (true) Τιμή 33

34 Λογικοί Τελεστές Λογικός τελεστής Σύμβολο AND && OR NOT! AND: Η τελική έκφραση είναι αληθής όταν ισχύουν όλες οι επιμέρους. OR: Η τελική έκφραση είναι αληθής όταν ισχύει τουλάχιστον μια. ΝΟΤ: Αντιστρέφει μια λογική πρόταση. 34

35 Άσκηση α) Πώς θα ελέγξουμε ότι η τιμή μιας μεταβλητής x είναι μεταξύ 10 και 100; β) Πώς θα ελέγξουμε ότι η τιμή μιας μεταβλητής x δεν είναι μεταξύ 10 και 100; 35

36 Απάντηση α) Η τιμή του x μεταξύ 10 και 100. (x>10) && (x<100) β) Η τιμή του x δεν είναι μεταξύ 10 και 100. (x<=10) (x>=100) ή!((x>10) && (x<100)) 36

37 Τελεστές διαχείρισης δυαδικών ψηφίων - bitwise operators Τελεστής Λειτουργία OR & AND ^ XOR ~ Συμπλήρωμα ως προς 1 >> Ολίσθηση προς τα δεξιά << Ολίσθηση προς τα αριστερά 37

38 Εκφράσεις - Προτεραιότητα πράξεων Πράξεις σε εκφράσεις (η εκτέλεση γίνεται από τα αριστερά προς τα δεξιά - προσεταιριστικότητα). Χρησιμοποιούμε παρενθέσεις: είτε για να προσδιορίσουμε συγκεκριμένη σειρά εφαρμογής, όπως στην έκφραση (2-3)*4, είτε για να αυξήσουμε την αναγνωσιμότητα μιας έκφρασης όπως στην 2-(3*4) (πλεονασμός) Προτεραιότητα Τελεστές Υψηλή ( ) [ ] ->! ~ * & * / % - + << >> < <= > >= ==!= & ^ &&? Χαμηλή = += -= *= /= 38

39 Δήλωση πίνακα: Πίνακες <Τύπος στοιχείων> <Όνομα πίνακα>[<διαστάσεις πίνακα>]; Για παράδειγμα: int students[100]; char names[8][8]; O students είναι μονοδιάστατος πίνακας 100 ακεραίων. Ο names είναι δισδιάστατος πίνακας (8 επί 8) χαρακτήρων (στην ουσία 8 ονομάτων - συμβολοσειρών). Η θέση του πρώτου στοιχείου κάθε διάστασης είναι υποχρεωτικά η 0. Έτσι, τα στοιχεία του πίνακα students είναι τα students[0], students[1], students[2],, students[98], students[99] και τα στοιχεία του πίνακα names είναι τα names[0][0], names[0][1],, names[0][7], names[1][0],, names[7][7]. Το όνομα του πίνακα ισοδυναμεί με τη διεύθυνση του πρώτου στοιχείου. Σημείωση: Το 1ο στοιχείο ενός πίνακα στην C αποθηκεύεται πάντα στη θέση 0. 39

40 Ιδιότητες πίνακα Μία ή περισσότερες διαστάσεις: Κάθε διάσταση έχει συγκεκριμένα όρια. Κάθε στοιχείο χαρακτηρίζεται από τη θέση του στον πίνακα, που αποτελείται από τόσες τιμές όσες και οι διαστάσεις. Ομοειδή στοιχεία: Όλα ακέραιοι ή όλα χαρακτήρες (συγκεκριμένου τύπου). Γραμμική δομή: Υπάρχει «λογική» διάταξη των στοιχείων, δηλαδή κάθε στοιχείο έχει ένα επόμενο (πλην του τελευταίου) και ένα προηγούμενο (πλην του πρώτου). Αποθήκευση στοιχείων σε συνεχόμενες θέσεις: Τυχαία προσπέλαση (εύρεση κάθε στοιχείου με υπολογισμό, χρόνος ανεξάρτητος της θέσης). 40

41 Αρχικοποίηση πίνακα Αρχικοποίηση O τελεστής ανάθεσης μπαίνει μετά τη διάσταση του πίνακα και ακολουθεί μέσα σε αγκύλες η λίστα με τις τιμές που θα αποδοθούν στα στοιχεία του πίνακα. Η πρόταση float num[5] = {1, 2, 3.5, 4, 5}; αρχικοποιεί όλα τα στοιχεία του πίνακα num με τις τιμές της λίστας, ενώ η πρόταση float num[5] = {1, 2, 3.5}; αρχικοποιεί τα 3 πρώτα στοιχεία δηλαδή τα num[0], num[1] και num[2] με τις τιμές της λίστας και τα υπόλοιπα με μηδέν. Η πρόταση float num[5] ={[0]=1, [2]=3.5}; αρχικοποιεί το 1ο και 3ο στοιχείο με τις τιμές 1 και 3.5 αφήνοντας τα υπόλοιπα 0, float num[2][2]={ 1, 2, 3.5, 4}; αρχικοποιεί έναν πίνακα δυο διαστάσεων γραμμή προς γραμμή, float num[2][2]={{1, 2},{3.5, 4}}; αρχικοποιεί έναν πίνακα δυο διαστάσεων γραμμή προς γραμμή διαχωρίζοντας την κάθε γραμμή. Ανάθεση τιμών μπορεί να γίνει με την εισαγωγή δεδομένων από το πληκτρολόγιο ή με τη χρήση επανάληψης. 41

42 Δείκτες Δείκτης είναι μια μεταβλητή που η τιμή της είναι η διεύθυνση μιας άλλης μεταβλητής. Η δήλωση μιας μεταβλητής δείκτη για την γλώσσα C έχει την παρακάτω μορφή: <όνομα τύπου> *<όνομα μεταβλητής δείκτη>; Το * ονομάζεται τελεστής έμμεσης αναφοράς. Η δήλωση: int *p; σημαίνει ότι η μεταβλητή p «δείχνει» σε ακέραιο ή το περιεχόμενο της θέσης μνήμης που δείχνει η p είναι int. 42

43 Αρχικοποίηση και ανάθεση τιμής σε δείκτη Αρχικοποίηση δείκτη Μετά τη δήλωση του, ένας δείκτης πρέπει να δείχνει σε μια θέση μνήμης που ανήκει στο πρόγραμμα. Για το λόγο αυτό δίνουμε συνήθως τιμή στο δείκτη ταυτόχρονα με τη δήλωση του: <όνομα τύπου> *<όνομα δείκτη> = <διεύθυνση>; όπου <διεύθυνση> μπορεί να είναι: α) μία άμεση διεύθυνση όπως στην πρόταση: int *p = 1000; /*ο δείκτης p δείχνει ακέραιο στη θέση μνήμης 1000*/ β) η διεύθυνση μιας μεταβλητής ακέραιου τύπου την οποία παίρνουμε εφαρμόζοντας μπροστά από μια μεταβλητή τον τελεστή διεύθυνσης &: int *p = &num; /*εφόσον η num είναι int*/ Ανάθεση τιμής Η ανάθεση τιμής γίνεται με ίδιο τρόπο: <όνομα δείκτη> = <διεύθυνση>; Για παράδειγμα p = 1000; ή p = &num; (το p ισούται με τη διεύθυνση) (το *p ισούται με την τιμή του num) 43

44 Άσκηση Τι θα εμφανίσουν οι ακόλουθες εντολές; int count = 10, *temp=null, sum = 0; temp = &count; *temp = 20; temp = *temp = count; printf("count = %d, *temp = %d, sum = %d\n", count, *temp, sum ); 44

45 Απάντηση Εντολή Μεταβλητή Ενδεικτική διεύθυνση μνήμης int count = 10, *temp=null, sum = 0; Τιμή count temp 1100 NULL sum temp = &count; *temp = 20; temp = *temp = count; count temp sum count temp sum count temp sum count temp sum Θα εμφανίσουν: count = 20, *temp = 20, sum = 20 45

46 Συμβολοσειρές Η C για να αποθηκεύσει και να διαχειριστεί συμβολοσειρές (string) χρησιμοποιεί τον τύπο του πίνακα. Μια συμβολοσειρά για την C είναι ένας πίνακας χαρακτήρων που τερματίζει με τον μηδενικό (null) χαρακτήρα. Ο μηδενικός χαρακτήρας έχει ASCII κωδικό 0 και αναπαρίσταται με την ακολουθία διαφυγής '\0'. Δήλωση: char book_title[30], isbn[12]; Σημαίνει τη δήλωση δύο μεταβλητών για αποθήκευση του τίτλου και του ISBN κωδικού ενός βιβλίου (μεγέθους 30 και 12 χαρακτήρων, αντίστοιχα). Αρχικοποίηση: Γενικός κανόνας απόδοσης αρχικής τιμής σε πίνακα: char isbn[] = {'0','-','3','8','7','-','9','7','6','-', '1','\0'}; Στην πράξη γίνεται χρήση αλφαριθμητικής σταθεράς: char isbn[] = " "; (το null προστίθεται αυτόματα) Σημείωση: Ο μηδενικός χαρακτήρας '\0' καταλαμβάνει πάντα μια θέση στον πίνακα της συμβολοσειράς. Επομένως, μια συμβολοσειρά Ν θέσεων περιέχει Ν-1 διαθέσιμες θέσεις για χαρακτήρες. 46

47 Άσκηση Δώστε την έκφραση για εισαγωγή τιμής από το χρήστη στη μεταβλητή isbn και την πρόταση για εκτύπωση της μεταβλητής isbn. 47

48 Απάντηση char isbn[12]; scanf("%s",isbn); printf("o ISBN κωδικός του βιβλίου είναι : %s\n", isbn); Θα πρέπει όμως να τονίσουμε ότι: α) Δεν χρειάζεται ο τελεστής & πριν από το όνομα της μεταβλητής isbn όπως συνέβαινε για άλλους τύπους, όπως π.χ. του χαρακτήρα και του ακεραίου σε ανάλογη περίπτωση, γιατί το όνομα του πίνακα αναπαριστά την διεύθυνση του πρώτου στοιχείου του πίνακα. β) H εισαγωγή περισσοτέρων από 11 χαρακτήρων έχει σαν αποτέλεσμα να καταστραφούν τα περιεχόμενα των επομένων θέσεων μνήμης που πιθανότατα αποτελούν τιμές άλλων μεταβλητών. Αυτό έχει απρόβλεπτα αποτελέσματα στην παραπέρα λειτουργία του προγράμματος. γ) Η ανάγνωση συμβολοσειρών μπορεί να γίνει και με τη συνάρτηση gets αντί της scanf. Η τελευταία δε δέχεται συμβολοσειρές που περιέχουν κενούς χαρακτήρες (spaces). 48

49 Η εντολή if if (συνθήκη) εντολή; if (συνθήκη) εντολή1; else εντολή2; Αν αντί μιας εντολής έχουμε περισσότερες τότε χρησιμοποιούμε σύνθετη εντολή, δηλαδή περικλείουμε τις εντολές σε άγκιστρα. { /*Συμβολίζει την αρχή*/ } /*Συμβολίζει το τέλος*/ Εντολές στη C if (συνθήκη) { Εντολές; } Παράδειγμα C if (a>0) { a = 2*a; printf("%d",a); } 49

50 Η πολλαπλή εντολή if if (συνθήκη1) εντολή1; else if (συνθήκη2) εντολή2; else if (συνθήκη3) εντολή3; else εντολή; Παράδειγμα C if (vathmos >= 8.5) printf("arista\n"); else if (vathmos >= 6.5) printf("poly kala\n"); else if (vathmos >= 5) printf("kala\n"); else printf("mi provivasimos\n"); 50

51 Η εντολή switch switch / case / default Παρόμοια με τις πολλαπλές if else εντολές είναι η εντολή switch. Είναι χρήσιμη όταν χρειαζόμαστε διακλαδώσεις εντολών για την εκτίμηση μιας πρότασης. Επιβάλλεται η χρήση break για τερματισμό περίπτωσης. switch (ch) { case 'a': /* if(ch=='a') */ printf("alpha\n"); break; case 'b': /* else if(ch=='b') */ case 'c': /* else if(ch=='c') */ printf("beta or c\n"); break; default: /* else*/ printf("other\n"); } 51

52 Η εντολή for for (έκφραση 1; έκφραση 2; έκφραση 3) εντολή1; Η έκφραση 1 δίνει αρχική τιμή στη μεταβλητή (στο μετρητή). Η έκφραση 2 είναι μια λογική έκφραση που καθορίζει αν θα συνεχιστεί η επανάληψη. Η έκφραση 3 καθορίζει τον τρόπο αύξησης ή μείωσης της μεταβλητής. Η εντολή1 είναι αυτή που επαναλαμβάνεται. Αν αντί μιας εντολής θέλουμε να επαναλαμβάνονται περισσότερες τότε τοποθετούμε άγκιστρα. Παράδειγμα C for (i=0; i<=5; i++) { a = 2*i; printf("%d",a); } 52

53 Παραδείγματα Αρνητικό βήμα: for(i=5;i>=0;i--){ a = 2*i; printf("%d\n",a); } Χωρίς κάποια μέλη της for: int i=0; for(;i<10;){ } printf("%d ", i); i++; 53

54 Η εντολή for σε μονοδιάστατους πίνακες Διάβασμα πίνακα: int i,x[n]; /* Δηλώσεις. Το Ν είναι συμβολική τιμή */ for (i=0;i<n;i++)/* Διάβασμα πίνακα από το χρήστη*/ { printf("dose to %d stoixeio: ",i+1); scanf("%d",&x[i]); } Εκτύπωση πίνακα: for (i=0;i<n;i++) /* Εκτύπωση πίνακα*/ printf("%d\t",x[i]); Εύρεση μέγιστου στοιχείου πίνακα: int max=x[0]; /*Αρχικοποίηση μεταβλητής max*/ for (i=1;i<n;i++) { if (x[i]>max) max=x[i]; } 54

55 Η εντολή for σε δισδιάστατους πίνακες Διάβασμα πίνακα: int i, j, x[n][m]; /* Δηλώσεις. Τα Ν, Μ είναι συμβολικές τιμές */ for (i=0; i<n; i++) /* Διάβασμα πίνακα (γραμμές) */ for (j=0; J<M; j++) /* (στήλες) */ { printf("dose to stoixeio x[%d][%d]: ", i+1, j+1); scanf("%d", &x[i][j]); } Εκτύπωση πίνακα: for (i=0; i<n; i++) { for (j=0; j<m; j++) printf("%d\t", x[i][j]); printf("\n"); /*Αλλαγή γραμμής*/ } 55

56 Η εντολή for με χαρακτήρες #include <stdio.h> main() { char i; printf("the alphabet, in lower-case:\n"); for(i='a'; i<='z'; i++) printf("%c", i ); printf("\nthe alphabet in upper-case:\n"); for(i='a'; i<='z'; i++) printf("%c", i ); } 56

57 Παράδειγμα - Μέσος όρος στοιχείων πίνακα #include <stdio.h> #define N 3 /* Αριθμός γραμμών του πίνακα */ #define M 2 /* Αριθμός στηλών του πίνακα */ main() { int sum=0, i, j, x[n][m]; /* Δήλωση μεταβλητών */ float av; for (i=0; i<n; i++) /* Ανάγνωση πίνακα */ for (j=0; j<m; j++) { printf("dose to stoixeio x[%d][%d]: ", i, j); scanf("%d",&x[i][j]); } for (i=0; i<n; i++) for (j=0; j<m; j++) sum+=x[i][j]; /*Υπολογισμός αθροίσματος των στοιχείων */ av=(float)sum/(n*m); /* Υπολογισμός μέσου όρου */ printf("\no mesos oros tou pinaka = %.2f \n",av); } 57

58 Η εντολή while while (συνθήκη) εντολή1; Η εντολή1 είναι αυτή που επαναλαμβάνεται ενόσω (while) ισχύει η συνθήκη. Αν αντί μιας εντολής θέλουμε περισσότερες τότε τοποθετούμε άγκιστρα. Παράδειγμα C i=1; while (i<=10) { Εντολές; i++; } 58

59 Η εντολή do..while do εντολή1; while (συνθήκη); και πάλι αν αντί μιας εντολής θέλουμε να επαναλαμβάνονται περισσότερες τότε τοποθετούμε άγκιστρα. Παράδειγμα C i=0; do { Εντολές; i++; } while(i<5); Σημείωση: Στη do - while θα εκτελεσθεί τουλάχιστον μια επανάληψη, ενώ στη while μπορεί να μην εκτελεσθεί καμία. 59

60 Αμυντικός προγραμματισμός Παράδειγμα εισαγωγής θετικού ακεραίου: do { printf("dose thetiko akeraio:\n"); scanf("%d",&a); if (a<=0) printf("parakalw eisagete thetiko arithmo\n"); } while (a<=0); ή εναλλακτικά: printf("dose thetiko akeraio:\n"); scanf("%d",&a); while (a<=0){ printf("parakalw eisagete thetiko arithmo\n"); scanf("%d",&a); } 60

61 Παράδειγμα - Συγχώνευση πινάκων #include <stdio.h> #define N 5 #define M 4 main() { /* Βοηθητικές μεταβλητές */ int i, j, k, c[9]; /* Ορισμός πίνακα a */ int a[n]={1, 4, 6, 33, 34}; /* Ορισμός πίνακα b */ int b[m]={2, 3, 7, 8}; i = j = k = 0; while (i<n && j<m) { if (a[i]<b[j]) c[k++]=a[i++]; else c[k++]=b[j++]; } if(i<n) { int t; for (t=i; t<n; t++) c[k++]=a[i++]; } else { int t; for (t=j; t<m; t++) c[k++]=b[j++]; } printf("merged Array C:\n"); /* Εκτύπωση συγχωνευμένου πίνακα */ for (k=0; k<(n+m); k++) printf("\n %d ",c[k]); } 61

62 Δομές Μια Δομή (structure) ομαδοποιεί μεταβλητές διαφορετικών τύπων δεδομένων. Με απλά λόγια μια δομή μαζεύει διαφορετικά δεδομένα με τέτοιο τρόπο, που μπορούν να αναφερθούν ως μια μονάδα. Τα δεδομένα μιας δομής ονομάζονται μέλη της δομής. Κάθε μέλος της δομής έχει το δικό του όνομα και το δικό του τύπο. Η γενική μορφή δήλωσης μιας δομής είναι: struct <όνομα δομής > { <τύπος 1-ου μέλους> <όνομα 1-ου μέλους>; <τύπος 2-ου μέλους> <όνομα 2-ου μέλους>; <τύπος 3-ου μέλους> <όνομα 3-ου μέλους>;. <τύπος n-ου μέλους> <όνομα n-ου μέλους>; }; Η δεσμευμένη λέξη struct εισάγει τη δήλωση της δομής η οποία ακολουθείται από την ετικέτα δομής (structure tag) (όνομα δομής). 62

63 Δήλωση μεταβλητής τύπου δομής Η δήλωση μεταβλητών ακολουθεί τον γενικό κανόνα δηλώσεων της C και γίνεται με πρόταση δήλωσης της μορφής: struct <όνομα δομής > <όνομα μεταβλητής >; ή struct <όνομα δομής > λίστα-ονομάτων-μεταβλητών ; Εναλλακτικά μπορεί να γίνει δήλωση μεταβλητής ή μεταβλητών ταυτόχρονα με τον ορισμό της δομής όπως παρακάτω (δομή με τις συντεταγμένες ενός σημείου στο επίπεδο): struct point{ float x; float y; } pt_1, pt_2; ή struct point pt_1, pt_2; Οι pt_1 και pt_2 είναι τα ονόματα δύο διαφορετικών δομών. Η κάθε μία δομή έχει μέλη τις συντεταγμένες ενός σημείου. 63

64 Αναφορά στα μέλη δομής Η αναφορά σε ένα μέλος μιας συγκεκριμένης δομής μέσα σε μια παράσταση γίνεται ως: όνομα-δομής.μέλος Έτσι, στο συγκεκριμένο παράδειγμα struct point{ float x; float y; }; struct point pt_1, pt_2; αναφερόμαστε στις συντεταγμένες x και y των pt_1 και pt_2 ως: συντεταγμένη x του pt_1: pt_1.x συντεταγμένη y του pt_1: pt_1.y συντεταγμένη x του pt_2: pt_2.x συντεταγμένη y του pt_2: pt_2.y Ο τελεστής μέλους δομής. συνδέει το όνομα της δομής με το όνομα του μέλους. Η είσοδος τιμών στα μέλη μιας δομής μπορεί να γίνει και μέσω της scanf ή και με απευθείας ανάθεση τιμής στα μέλη. 64

65 Πίνακας δομής Στη C μπορούμε να δηλώσουμε έναν πίνακα τα στοιχεία του οποίου είναι δομές. Οι πίνακες δομών χρησιμοποιούνται για μια εύκολη κατασκευή μιας Βάσης Δεδομένων. Ας δούμε ένα παράδειγμα κατασκευής μιας βάσης δεδομένων για πρωτοετείς φοιτητές με τον βαθμό τους στο μάθημα Προγραμματισμός σε C: struct student{ char eponimo[30]; char onoma[20]; int code; float vathmos; }; struct student foititis[200]; 65

66 Ανάθεση τιμής στα μέλη πίνακα δομής strcpy(foititis[56].eponimo, "Νικολάου"); strcpy(foititis[56].onoma, "Γιάννης"); foititis[56].code=1214; foititis[56].vathmos=8.5; Διάβασμα - εκτύπωση τέτοιων δομών με εντολή επανάληψης. H έκφραση foititis[0].eponimo αναφέρεται στο επώνυμο του πρώτου στοιχείου του πίνακα (1ο φοιτητή), ενώ η foititis[1].eponimo αναφέρεται στο 2ο φοιτητή. Η έκφραση: foititis[1].eponimo[0]αναφέρεται στον πρώτο χαρακτήρα του επωνύμου του δεύτερου στοιχείου του πίνακα foititis. Σημείωση: Η strcpy() αντιγράφει το περιεχόμενο μιας συμβολοσειράς σε μια άλλη (απαιτείται η δήλωση #include <string.h> στην αρχή του προγράμματος). 66

67 Άσκηση Αναπτύξτε ένα πρόγραμμα που να εισάγει από το πληκτρολόγιο τα στοιχεία 100 φοιτητών. Για διευκόλυνση χρησιμοποιήστε τη δομή: struct student{ char eponimo[30]; char onoma[20]; int code; float vathmos; }; 67

68 Απάντηση #include <stdio.h> #define N 100 struct student { char eponimo[30]; char onoma[20]; int code; float vathmos; }; main() { struct student foitites[n]; int i; for (i=0; i<n; i++) { printf("dose eponimo tou %dou student\n",i+1); scanf("%29s",foitites[i].eponimo); printf("dose onoma tou %dou student\n",i+1); scanf("%19s",foitites[i].onoma); printf("dose kodiko tou %dou student\n",i+1); scanf("%d",&foitites[i].code); printf("dose bathmo tou %dou student\n",i+1); scanf("%f",&foitites[i].vathmos); } } 68

69 Συναρτήσεις Δήλωση συνάρτησης: <τύπος αποτελέσματος> <όνομα συνάρτησης> (<τύπος και όνομα παραμέτρων>) { <δηλώσεις τοπικών μεταβλητών> εντολές return ; } Αν δεν επιστρέφεται αποτέλεσμα, η συνάρτηση ορίζεται ως void και δεν υπάρχει η εντολή return στο τέλος. Παράδειγμα: int max(int x, int y) { return (x>y? x : y); } Παράδειγμα κλήσης συνάρτησης: printf("%d", max(a,b)); Σημείωση: Εάν μια συνάρτηση επιστρέφει τιμή (όχι void) τότε θα πρέπει σε κάθε περίπτωση η ροή του κώδικα να οδηγεί σε εντολή return. 69

70 #include <stdio.h> Παράδειγμα συνάρτησης int sum(int n, int m); /* δήλωση συνάρτησης */ main() { int x, y; printf("enter the first number:\n"); scanf("%d", &x); printf("enter the second number:\n"); scanf("%d", &y); printf("the sum is %d\n", sum(x,y)); } int sum(int n, int m) { return (n + m); /* επιστροφή αθροίσματος των δυο παραμέτρων */ } 70

71 Μεταβίβαση πινάκων σε συναρτήσεις Πίνακες μίας διάστασης #include <stdio.h> double getaverage(int array[], int size); /* Ισοδύναμα double getaverage(int *array, int size); */ main (){ /* Ορισμός πίνακα */ int balance[5] = {30, 15, 5, 0, 6}; double avg; /* Μεταβιβάζουμε τον πίνακα στη συνάρτηση ως δείκτη */ avg = getaverage(balance, 5); printf( "Average value is: %f ", avg ); } double getaverage(int array[], int size){ int i; } double sum=0.0; for (i = 0; i < size; i++) sum += array[i]; return sum/size; 71

72 Μεταβίβαση πινάκων σε συναρτήσεις Πίνακες δύο διαστάσεων #include <stdio.h> double getaverage(int array[][5], int size); /* Η δεύτερη διάσταση του πίνακα δίνεται ρητά */ main (){ /* Ορισμός πίνακα */ int balance[2][5] = {{30, 15, 5, 0, 6},{2, 5, 6, 6, 10}}; double avg; /* Μεταβιβάζουμε τον πίνακα στη συνάρτηση ως δείκτη, καθώς και τη 2η διάσταση */ avg = getaverage(balance, 2); printf( "Average value is: %f ", avg ); } double getaverage(int array[][5], int size){ int i, j; double sum=0.0; for (i=0; i<size; i++) for (j=0; j<5; j++) sum += array[i][j]; return sum/(size*5); } 72

73 Συμβουλές καλού προγραμματισμού Τα ονόματα μεταβλητών πρέπει να έχουν σχέση με αυτό που αντιπροσωπεύουν, να αποφεύγονται ονόματα ενός γράμματος (a, b, i, j, k, m, x, y) που δεν βοηθούν την αναγνωσιμότητα του κώδικα. Προσοχή στις ακραίες τιμές (π.χ. αν θέλουμε θετικό αριθμό, στον αμυντικό προγραμματισμό ελέγχουμε αν είναι <=0). Δεν συγκρίνουμε μεταβλητές που δεν έχουν πάρει ακόμη τιμή. Όταν έχουμε απόδοση τιμής με αναδρομική σχέση (π.χ. sum := sum + a), απαιτείται αρχικοποίησης της τιμής. Στον αμυντικό προγραμματισμό δεν αρκεί ο έλεγχος (με εντολή if) και το ξαναδιάβασμα, απαιτείται επανάληψη (while) μέχρι να διαβαστεί «κανονική» τιμή. Τα μηνύματα πριν την εισαγωγή τιμών πρέπει να είναι σαφή. Π.χ. όχι «Δώσε αριθμό», αλλά «Δώσε θετικό αριθμό για πρόσθεση». Όταν έχουμε πίνακες, ΑΠΑΙΤΕΙΤΑΙ χρήση επαναληπτικών εντολών (for). Ακόμα και αν ο πίνακας έχει μικρό μέγεθος, θα πρέπει να τον χειριζόμαστε σαν να ήταν τεράστιος, για λόγους επαναχρησιμοποίησης και όγκου προγράμματος. 73

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

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

Διαβάστε περισσότερα

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2 Οικονόμου Βαγγέλησ Διάλεξη Νο 2 Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2 1 Η έννοια τησ μεταβλητήσ έδωςε λύςη ςτο πρόβλημα τησ αναφοράσ ςτην κύρια μνήμη του υπολογιςτή. Οι γλώςςεσ προγραμματιςμού υποςτηρίζουν

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πίνακες Πίνακες (arrays) Πολύ συχνά είναι απαραίτητο το πρόγραμμα μας να χειριστεί

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Πώς δημιουργούμε πρόγραμμα Η/Υ; 1. Ανάλυση του προβλήματος 2. Επινόηση & Σχεδιασμός

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

Διαβάστε περισσότερα

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Hello World /* Αρχείο hello.c * Εµφανίζει στην οθόνη το * µήνυµα hello world */ #include

Διαβάστε περισσότερα

Διαδικασία Ανάπτυξης Λογισμικού

Διαδικασία Ανάπτυξης Λογισμικού Διαδικασία Ανάπτυξης Λογισμικού Ανάλυση Απαιτήσεων (προϋποθέτει κατανόηση του προβλήματος και τη συλλογή πληροφοριών και των απαιτήσεων από το σύστημα) Σχεδιασμός (ορισμός διεργασιών για να ικανοποιηθούν

Διαβάστε περισσότερα

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα Η ΓΛΩΣΣΑ C Η C είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου η οποία αναπτύχθηκε στις αρχές της δεκαετίας του 70 από τον Dennis Ritchie στα Bell Labs. Η σημερινή μορφή της γλώσσας ακολουθεί το πρότυπο

Διαβάστε περισσότερα

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

Διαβάστε περισσότερα

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf(%u\n, x); Β. unsigned char ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

Διαβάστε περισσότερα

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. Ερωτήσεις προόδου C Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. #include // δίνει οδηγία στον compiler να // συμπεριλάβει την βιβλιοθήκη stdio int

Διαβάστε περισσότερα

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

Διαβάστε περισσότερα

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

Διαβάστε περισσότερα

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 23 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 2ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος I/O 24 Βασική βιβλιοθήκη συναρτήσεων εισόδου/εξόδου #include Η συνάρτηση εξόδου printf printf("συμβολοσειρά

Διαβάστε περισσότερα

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Αριθμητική Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Δεύτερο Πρόγραμμα 1 / * Second Simple Program : add 2 numbers * / 2

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 2: Τύποι μεταβλητών Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

Εισαγωγή στην γλώσσα προγραμματισμού C

Εισαγωγή στην γλώσσα προγραμματισμού C Εισαγωγή στην γλώσσα προγραμματισμού C Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο

Διαβάστε περισσότερα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών

Διαβάστε περισσότερα

ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C

ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C 1 Εισαγωγή Ο προγραμματισμός είναι μια διαδικασία επίλυσης προβλημάτων με χρήση Η/Υ. Ένα πρόγραμμα είναι ένα σύνολο εντολών κάποιας γλώσσας προγραμματισμού,

Διαβάστε περισσότερα

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 7: Δομές Επανάληψης - Αναγνωσιμότητα 19/10/2015 Επανάληψη εκτέλεσης: while 2 while () lexpr true false body Όσο η λογική συνθήκη επανάληψης lexpr αποτιμάται

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

Διαβάστε περισσότερα

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

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

Διαβάστε περισσότερα

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα

Διαβάστε περισσότερα

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράµµατα «γράφονται» χρησιµοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαµβάνει

Διαβάστε περισσότερα

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

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

Διαβάστε περισσότερα

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ 6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ 6.1 Η Έννοια του Πίνακα Συχνά είναι προτιμότερο να αντιμετωπίζουμε ένα σύνολο μεταβλητών σαν ενότητα για να απλοποιούμε το χειρισμό τους. Έτσι οργανώνουμε σύνθετα δεδομένα σε

Διαβάστε περισσότερα

Υπολογισμός - Εντολές Επανάληψης

Υπολογισμός - Εντολές Επανάληψης Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Επανάληψης ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

Διαβάστε περισσότερα

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

scanf() scanf() stdin scanf() printf() int float double %lf float Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση

Διαβάστε περισσότερα

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 3 η Είσοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή

Διαβάστε περισσότερα

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

Εισαγωγή στον δομημένο προγραμματισμό Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 2 η : Συντακτικό της γλώσσας C, Μεταβλητές Σταθερές Τύποι Δεδομένων Τελεστές Εκφράσεις Προτάσεις Αν. καθηγητής

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Συναρτήσεις εισόδου/εξόδου, τελεστές Η συνάρτηση scanf() είσοδος δεδομένων Διαβάζει από το πληκτρολόγιο (stdin) μορφοποιημένες τιμές μεταβλητών. scanf (ΣΕΙΡΑ_ΕΛΕΓΧΟΥ, δείκτης_μεταβλητής-1,

Διαβάστε περισσότερα

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 ❶ Προετοιµασία για το 1 ο Εργαστήριο

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

Διαβάστε περισσότερα

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη Εισαγωγικά

Διαβάστε περισσότερα

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

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο) Προγραμματισμός Η/Υ Ενότητα 2β: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Κατανόηση της έννοιας του Τελεστή

Διαβάστε περισσότερα

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

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 6: Αλγόριθμοι / Προγραμματισμός Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

Διαβάστε περισσότερα

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

Διαβάστε περισσότερα

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8) Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις (Διάλεξη 8) 8-1 Τι θα δούμε σήμερα Η εντολή if else Η εντολή if else ιf - -else H εντολή switch Λογικές παραστάσεις Σχεσιακοί

Διαβάστε περισσότερα

TMHMA TEXNΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛ/ΝΙΩΝ Προγραμματισμός Ι ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ , Α ΕΞΑΜΗΝΟ Βασίλης Μποζαντζής. Βασίλης Μποζαντζής

TMHMA TEXNΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛ/ΝΙΩΝ Προγραμματισμός Ι ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ , Α ΕΞΑΜΗΝΟ Βασίλης Μποζαντζής. Βασίλης Μποζαντζής TMHMA TEXNΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛ/ΝΙΩΝ Προγραμματισμός Ι ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2010 2011, Α ΕΞΑΜΗΝΟ Βασίλης Μποζαντζής Βασίλης Μποζαντζής Εισαγωγικά Οι 32 δεσμευμένες λέξεις σύμφωνα με το πρότυπο ANSI

Διαβάστε περισσότερα

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

Ενδεικτική περιγραφή μαθήματος ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Προγραμματισμός Η/Υ Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή: Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές.

Διαβάστε περισσότερα

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

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης Γλώσσες Προγραμματισμού Εργαστήριο 2ο Τύποι Δεδομένων - Είσοδος / Έξοδος Εργαστήριο 2ο Περίγραμμα Εργαστηριακής Άσκησης Εργαστήριο 2ο...1 Θεωρία εργαστηρίου...2 Τύποι δεδομένων...2 Η συνάρτηση printf()...3

Διαβάστε περισσότερα

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

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Τελεστές - Κατηγορίες Εκφράσεις - Κατηγορίες Υπολογισμός εκφράσεων Προτάσεις - Κατηγορίες

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β.1 Τύποι Δεδομένων Όλες οι γλώσσες προγραμματισμού (πρέπει να) υποστηρίζουν πέντε (5) πρωταρχικούς τύπους δεδομένων: char (character) int (integer)

Διαβάστε περισσότερα

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

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Πέμπτη (5 η ) τρίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/

Διαβάστε περισσότερα

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες Στόχοι και αντικείμενο ενότητας Ο τύπος του Πίνακα (βλ. ενότητα #2α) Ορισμός και αρχικοποίηση Αποθήκευση πινάκων στη μνήμη Πολυδιάστατοι πίνακες #6. Πίνακες και Δείκτες Ο τύπος του Δείκτη Η έννοια του

Διαβάστε περισσότερα

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

Διαβάστε περισσότερα

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 2 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εντολές ελέγχου ροής προγράμματος (if-else & switch) Η εντολή if-else Η εντολή if-else υπάρχει σχεδόν σε όλες τις γλώσσες προγραμματισμού. Χρησιμοποιείται για τον έλεγχο της

Διαβάστε περισσότερα

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα Τελεστές συντομογραφίας Τελεστές σύντομης ανάθεσης += παράδειγμα: sum+=10; αντί για: sum = sum

Διαβάστε περισσότερα

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Εκφράσεις και Λίγες Εντολές Οι εκφράσεις της C Τελεστές Απλές και σύνθετες εντολές Εντολές ελέγχου (επιλογής) Εισαγωγή σε

Διαβάστε περισσότερα

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13) Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις Επανάληψη για την ενδιάμεση εξέταση (Διάλεξη 13) 13-1 Πρόβλημα 1 Γράψετε τον ορισμό μίας συνάρτησης η οποία υπολογίζει το μέγιστο 2 ακεραίων αριθμών και

Διαβάστε περισσότερα

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19) Κεφάλαιο 8.7 Πολυδιάστατοι Πίνακες (Διάλεξη 19) Πολυδιάστατοι πίνακες Μέχρι τώρα μιλούσαμε για Μονοδιάστατους Πίνακες. ή π.χ. int age[5]= {31,28,31,30,31; για Παράλληλους πίνακες, π.χ. int id[5] = {1029,1132,1031,9991,1513;

Διαβάστε περισσότερα

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

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C Τεχνολογία και Προγραμματισμός Υπολογιστών Η γλώσσα προγραμματισμού C Με μια ματιά Τύπος Πίνακα Μεταβλητές με ενδείκτη Αλφαριθμητικά - Πίνακες Δισδιάστατος Πολυδιάστατος Πίνακας 2 2 Τύπος Πίνακα Σύνθετος

Διαβάστε περισσότερα

Υπολογισμός - Εντολές Ελέγχου

Υπολογισμός - Εντολές Ελέγχου Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Ελέγχου ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

Διαβάστε περισσότερα

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014 Πίνακες 0 Μαρτίου 014 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα του συγκεκριμένου τύπου. Στην περίπτωση που θέλουμε

Διαβάστε περισσότερα

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 8: Πίνακες, Αλφαριθμητικά Πίνακες Ο πίνακας είναι μια ειδική δομή για την αποθήκευση μιας σειράς από δεδομένα του ίδιου τύπου. Η δήλωση ενός πίνακα γίνεται όπως για μια

Διαβάστε περισσότερα

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

Διαβάστε περισσότερα

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

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

Διαβάστε περισσότερα

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Δημιουργία Νέου αρχείου Από το μενού προγραμμάτων ανοίγετε το DEV C++ Επιλέγετε File-> New-> Source File (συντόμευση πληκτρολογίου Ctrl+N)

Διαβάστε περισσότερα

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 6 Πίνακες Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Τύπος πίνακα (array) Σύνθετος τύπος δεδομένων Αναπαριστά ένα σύνολο ομοειδών

Διαβάστε περισσότερα

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

Βασικές Αρχές Προγραμματισμού Βασικές Αρχές Προγραμματισμού Κεφάλαιο 2 ΗγλώσσαC Ιστορική Αναδρομή ΗανάπτυξητηςC ξεκίνησε το 1972 στα εργαστήρια Bell από τον Dennis Ritchie με σκοπό την ανάπτυξη ενός λειτουργικού συστήματος για τον

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τον ορισμό, τη δήλωση και τη χρήση των χαρακτήρων, συνεπώς και των αλφαριθμητικών, της Γλώσσας

Διαβάστε περισσότερα

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση:

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση: ΠΡΟΓΡΜΜΑΤΑ ΣΕ C Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση: int b_to_d(int dyad[16]) που δέχεται ως είσοδο έναν θετικό ακέραιο δυαδικό αριθμό με τη μορφή πίνακα δυαδικών ψηφίων και επιστρέφει τον

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

Διαβάστε περισσότερα

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2 Εισαγωγή στην C Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Σύνταξη και Σηµασιολογία της C Σχολιασµός Μεταβλητές / Σταθερές Τύποι εδοµένων και Τελεστές Βιβλίο µαθήµατος: Chapter 2,, Sec.

Διαβάστε περισσότερα

Εκτέλεση της εντολής1 και στη συνέχεια εκτέλεση της ΕΝΟΤΗΤΑΣ και της εντολής2 όσο η ΣΥΝΘΗΚΗ είναι αληθής.

Εκτέλεση της εντολής1 και στη συνέχεια εκτέλεση της ΕΝΟΤΗΤΑΣ και της εντολής2 όσο η ΣΥΝΘΗΚΗ είναι αληθής. ΟΙ 3 ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΔΟΜΕΣ ΣΤΗΝ ΓΛΩΣΣΑ C Η εντολή for: Η γενικευμένη σύνταξη της εντολής είναι: for (εντολή1; ; εντολή2) ΕΝΟΤΗΤΑ Η ΕΝΟΤΗΤΑ μπορεί να είναι μία ή περισσότερες εντολές (block) μέσα

Διαβάστε περισσότερα

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 2: Μεταβλητές και Σταθερές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Χειρισμός χαρακτήρων, συμβολοσειρές Συμβολοσειρές Συμβολοσειρά ονομάζουμε μια οποιαδήποτε ακολουθία αλφαριθμητικών χαρακτήρων: «Κώστας», «Κώστας Βασιλάκης», «Δαιδάλου 23» Στην

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 5 Δομές Ελέγχου Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομές Ελέγχου Οι Boehm και Jacopini απέδειξαν ότι οποιοσδήποτε αλγόριθμος

Διαβάστε περισσότερα

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

Εισαγωγή στη γλώσσα προγραμματισμού C++

Εισαγωγή στη γλώσσα προγραμματισμού C++ Εισαγωγή στη γλώσσα προγραμματισμού C++ Περιβάλλον Εργασίας 2 Περιβάλλον Εργασίας 1. Χρήση απλού κειμενογράφου και Μεταγλωττιστή 2. Ολοκληρωμένα Περιβάλλοντα Εργασίας (Integrated Development Environments)

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C Τµήµα Πληροφορικής και Τηλεπικοινωνιών Περιεχόµενα Εισαγωγή Πρόγραµµα Φάσεις Υλοποίησης µε χρήση του εργαλείου DEV C + + οµή Προγράµµατος Η συνάρτηση main Μεταβλητές Τι είναι

Διαβάστε περισσότερα

Αλγόριθμοι. Χρυσόστομος Στύλιος. Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής. Δομές Δεδομένων & Αλγόριθμοι 1

Αλγόριθμοι. Χρυσόστομος Στύλιος. Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής. Δομές Δεδομένων & Αλγόριθμοι 1 Αλγόριθμοι Χρυσόστομος Στύλιος stylios@teiep.gr Πληροφορικής Αλγόριθμοι 1 Εργασία Αντικείμενο: υλοποίηση αλγορίθμων και δομών δεδομένων σε C++ Τμήματα: - Θεωρητική μελέτη - Κώδικας με σχόλια - Πειραματικές

Διαβάστε περισσότερα

Τύποι Δεδομένων Είσοδος/Έξοδος

Τύποι Δεδομένων Είσοδος/Έξοδος Εργαστήριο 2 ο Τύποι Δεδομένων Είσοδος/Έξοδος Εισαγωγή Σκοπός του εργαστηρίου αυτού είναι η εισαγωγή μας στους τύπους δεδομένων της C και η εξοικείωση μας με συναρτήσεις του ρεπερτορίου της ANSI C σχετικές

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1 Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές Δρ. Γιώργος Λαμπρινίδης amprinidis@pharm.uoa.gr 1 Αριθμητικοί Τελεστές + πρόσθεση - αφαίρεση * πολλαπλασιασμός / διαίρεση Προσοχή! Διαίρεση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Μονοδιάστατοι Πίνακες (tables) Μια συλλογή μεταβλητών ίδιου τύπου οι οποίες είναι αποθηκευμένες

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Συναρτήσεις εισόδου/εξόδου, τελεστές Η συνάρτηση scanf() είσοδος δεδομένων Διαβάζει από το πληκτρολόγιο (stdin) μορφοποιημένες τιμές μεταβλητών. scanf (ΣΕΙΡΑ_ΕΛΕΓΧΟΥ, δείκτης_μεταβλητής-1,

Διαβάστε περισσότερα

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος 2012-13 Κων/νος Φλώρος Απλοί τύποι δεδομένων Οι τύποι δεδομένων προσδιορίζουν τον τρόπο παράστασης των

Διαβάστε περισσότερα

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Εργαστήριο 3: 3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Η C++, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες.

Διαβάστε περισσότερα

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)

Διαβάστε περισσότερα

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

Στοιχειώδης προγραμματισμός σε C++ Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Δεύτερη Διάλεξη Βασικά στοιχεία της γλώσσας προγραμματισμού C Μία γλώσσα προγραμματισμού όπως και μια ανθρώπινη γλώσσα μπορεί να μελετηθεί ως προς το αλφάβητό της,

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Σκοπός του μαθήματος Σκοπός του παρόντος μαθήματος είναι να μάθετε να κάνετε εισαγωγή δεδομένων σε πίνακες και περαιτέρω επεξεργασία

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εντολές ελέγχου ροής προγράμματος (if-else & switch) Η εντολή if-else Η εντολή if-else υπάρχει σχεδόν σε όλες τις γλώσσες προγραμματισμού. Χρησιμοποιείται για τον έλεγχο της

Διαβάστε περισσότερα