Πρόλογος Εισαγωγικά Στοιχεία... 13

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

Download "Πρόλογος... 11. 1. Εισαγωγικά Στοιχεία... 13"

Transcript

1

2

3 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος Εισαγωγικά Στοιχεία Το πρώτο πρόγραμμα Οι βασικοί τύποι δεδομένων και ο χειρισμός τους Σταθερές και Μεταβλητές Σταθερές τύπου ακεραίου Μεταβλητές τύπου ακεραίου Σταθερές τύπου δεκαδικού αριθμού ή κινητής υποδιαστολής Μεταβλητές τύπου δεκαδικού αριθμού ή κινητής υποδιαστολής Σταθερές τύπου χαρακτήρα Μεταβλητές τύπου χαρακτήρα Σταθερές τύπου διεύθυνσης Μεταβλητές τύπου διεύθυνσης Δήλωση και Ορισμός Περιστασιακή μετατροπή τύπου Τα δύο βήματα προσπέλασης των μεταβλητών Δεξιές και Αριστερές τιμές Η συνάρτηση scanf() Δεσμευμένες Λέξεις Η αριθμητική της C Οι τέσσερις πράξεις Προτεραιότητα - Σχετιστικότητα των τελεστών Η χρήση των παρενθέσεων Οι Τελεστές και η ερμηνεία τους Πρόσθετα Παραδείγματα Ασκήσεις Οι Εντολές Ελέγχου Οι εντολές επιλογής Η if Η if-else Η switch... 65

4 8 ΓΡΑΜΜΑΤΙΚΗ και ΣΥΝΤΑΚΤΙΚΟ της ANSI C Οι εντολές βρόχου ή επαναλήψεως Η while H do-while H for Οι εντολές διαφυγής H continue H return H goto Η συνάρτηση exit() Πρόσθετα Παραδείγματα Ασκήσεις Πίνακες και Δείκτες Πίνακες Πολυδιάστατοι Πίνακες Δείκτες και Πίνακες Αριθμητική Δεικτών Αλφαριθμητικά Αλφαριθμητικές Σταθερές Στάνταρτ Συναρτήσεις Πινάκων και Αλφαριθμητικών Πίνακες Δεικτών σε Χαρακτήρες Δείκτες και Πολυδιάστατοι Πίνακες Πρόσθετα Παραδείγματα Ασκήσεις Συναρτήσεις Συναρτήσεις Δήλωση και Ορισμός Συνάρτησης Κλήση Συνάρτησης και Τοπικές Μεταβλητές Καθολικές Μεταβλητές και Εμβέλεια Μεταβλητών Κατηγορίες Αποθήκευσης Μεταβλητών Κλήση Συνάρτησης με Αναφορά ή Δείκτες ως Παράμετροι Πίνακες ως Παράμετροι Συνάρτησης Επιστροφή Δείκτη Αναδρομή Δείκτες σε Συναρτήσεις Η Συνάρτηση main() Πρόσθετα Παραδείγματα Ασκήσεις...178

5 Περιεχόμενα 9 5. Ο Προεπεξεργαστής Ο Προεπεξεργαστής Οι Οδηγίες προς τον Προεπεξεργαστή Οργάνωση Βασικών Τύπων Δομές Τρόποι Δήλωσης Δομών Ιδιότητες των Δομών Τελεστής βέλος, προσπέλαση μελών μέσω δεικτών Δομές ως μέλη δομών Ενώσεις Απαριθμήσεις Δυναμική Διαχείριση της Διαθέσιμης Μνήμης Λίστες και Αυτοαναφερόμενες Δομές Ασκήσεις Πρόσβαση σε Αποθηκευμένα Δεδομένα Διαχείριση Αρχείων Ροές και Στάνταρτ Αρχεία Προσπέλαση Αρχείων Προσωρινά Αρχεία Δυαδική Είσοδος / Έξοδος Δεδομένων ή Δυαδικά Αρχεία Επιλεκτική ή Στοχαστική Προσπέλαση Δεδομένων Ασκήσεις Στάνταρτ Βιβλιοθήκη Λίστα παραμέτρων μεταβλητού μήκους Συναρτήσεις Εισόδου, Εξόδου, Αρχείων Χαμηλού επιπέδου είσοδος έξοδος Είσοδος Έξοδος μεμονωμένου χαρακτήρα Διαχείριση Αρχείων Στοχαστική Προσπέλαση Είσοδος Έξοδος αλφαριθμητικών Φόρμα εισόδου εξόδου δεδομένων Προσωρινά Αρχεία Αποθήκευση Έλεγχος διαδικασιών Τερματισμός προγράμματος Λειτουργικό περιβάλλον Υποστήριξη Τοπικών Τυποποιήσεων...260

6 10 ΓΡΑΜΜΑΤΙΚΗ και ΣΥΝΤΑΚΤΙΚΟ της ANSI C Αποκατάσταση Σφάλματος Σηματοδοσίες και Εξαιρέσεις Διαχείριση Διαθέσιμης Μνήμης Μετατροπή αλφαριθμητικού σε αριθμό Μαθηματικές Συναρτήσεις Αριθμητικές Τριγωνομετρικές Υπερβολικές Τυχαίων αριθμών Διαίρεσης modulo Λογαριθμικές και Εκθετικές Συναρτήσεις χαρακτήρων Αλφαριθμητικά / αλφαριθμητικές σταθερές Αντιγραφή και σύνδεση Σύγκριση και αναζήτηση Υπολογισμός μήκους Διάφορες Ταξινόμηση και Αναζήτηση Χρόνος και Ημερομηνία Παράρτημα Σύνολο Χαρακτήρων ASCII Ερμηνεία τελεστών Προτεραιότητα και Σχετιστικότητα των Τελεστών Ευρετήριο τυποποιημένων όρων Ευρετήριο...293

7 Κεφάλαιο 6: Οργάνωση Βασικών Τύπων 195 Δομές Πέρα από τους πίνακες, που αποτελούν ομαδοποιήσεις ομοειδών μεταβλητών, η C παρέχει στον προγραμματιστή τη δυνατότητα ομαδοποίησης μεταβλητών διαφορετικών βασικών τύπων, οι οποίες ονομάζονται δομές (structures). Κάθε δομή έχει όνομα και χώρο αποθήκευσης στη μνήμη. Έχει, δηλαδή, ιδιότητες μεταβλητής. Πράγματι, οι δομές είναι μεταβλητές ο τύπος των οποίων δημιουργείται από τον προγραμματιστή, σε αντίθεση με τους βασικούς τύπους μεταβλητών int, float, char, κ.λ.π. που εμπεριέχονται στη γλώσσα και αποτελούν θεμελιώδη δομικά της στοιχεία. Η ευχέρεια δημιουργίας μεταβλητών προσαρμοσμένων στις ανάγκες του προς επίλυση προβλήματος συντελεί στην ευελιξία και συνεκτικότητα των προγραμμάτων. Ενώ, λοιπόν, για τις μεταβλητές των βασικών τύπων αρκούν δηλώσεις όπως, για παράδειγμα, οι: char ch; float fn; ώστε οι ch και fn να αποτελέσουν μεταβλητές ενός προγράμματος, για την περίπτωση των δομών ο προγραμματιστής πρέπει να δώσει στον compiler πρόσθετη πληροφορία για τον τρόπο συγκρότησής τους. Η πρόσθετη αυτή πληροφορία είναι η δήλωση της μορφής (shape) της δομής. Ο γενικός τύπος δήλωσης μορφής δομής είναι ο ακόλουθος: struct όνομα της μορφής της δομής μέλος; μέλος;..... μέλος; }; Στην εντολή δήλωσης κάθε μορφής δομής προηγείται πάντοτε η δεσμευμένη λέξη struct. Ακολουθεί το, προαιρετικό, όνομα που ο προγραμματιστής δίνει στη συγκεκριμένη μορφή δομής και το σώμα με τα μέλη της δομής, που είναι μεταβλητές των βασικών τύπων της γλώσσας ή μπορεί να είναι και δομές άλλου τύπου. Η λατινική άνω τελεία (;) τοποθετείται πάντοτε μετά το τελευταίο άγκιστρο } της δήλωσης της μορφής δομής, όπως συμβαίνει και με τις δηλώσεις μεταβλητών που ανήκουν στους βασικούς τύπους της γλώσσας.

8 196 ΓΡΑΜΜΑΤΙΚΗ και ΣΥΝΤΑΚΤΙΚΟ της ANSI C Ας δούμε τα πράγματα με ένα παράδειγμα. sruct book char publisher[25]; char title[45]; char author[25]; int No_Of_Pages; float price; }; Με την εντολή αυτή εισάγουμε ένα νέο τύπο δεδομένων, έναν νέο τύπο δομής, στον οποίο έχουμε δώσει το όνομα book. Έχουμε δηλαδή ουσιαστικά δημιουργήσει ένα καλούπι από το οποίο μπορούμε να παράγουμε δομές (μεταβλητές) που δεν ανήκουν στους βασικούς τύπους της C, αλλά στον τύπο book. (Ας υπενθυμίσουμε εδώ ότι " τύπος " είναι η παλαιότερη ελληνική λέξη για το καλούπι). Η μορφή book έχει πέντε μέλη, τρεις πίνακες χαρακτήρων καταλλήλων διαστάσεων, μια μεταβλητή int και μια μεταβλητή float. Η ως άνω δήλωση μορφής δεν δεσμεύει μνήμη, αλλά αποτελεί ενημέρωση του compiler ότι ο προγραμματιστής, εκμεταλλευόμενος της δυνατότητες της γλώσσας, προτίθεται να δημιουργήσει νέου τύπου αντικείμενα που θα χρησιμοποιηθούν στο υπό σύνταξη πρόγραμμα. Μετά τη δήλωση μορφής είμαστε σε θέση να αρχίσουμε την παραγωγή αντιτύπων (instants), δηλαδή των δομών που θα βγουν από το συγκεκριμένο καλούπι. Μια τέτοια παραγωγή πραγματοποιείται με τη δήλωση δομών. Έτσι, μεταβλητές (δομές), τύπου book, δηλώνονται με εντολές όπως οι: struct book book_1; struct book book_2, book_3; με τις οποίες γίνεται αυτομάτως και ο ορισμός των μελών της κάθε μιας δομής, δεσμεύεται δηλαδή μνήμη για τα μέλη αυτά. Η δήλωση γίνεται πάντοτε με χρήση της δεσμευμένης λέξης struct η οποία ακολουθείται από το όνομα που δόθηκε στη συγκεκριμένη μορφή (στο συγκεκριμένο καλούπι) δομής, εδώ book, και καταλήγει με τα ονόματα μιας η περισσότερων δομών του υπ όψη τύπου, π.χ. book_2, book_3. Η προσπέλαση των μελών των δομών γίνεται με χρήση του τελεστή τελεία (.), ο οποίος παρέχει τη δυνατότητα πρόσβασης και απόδοσης τιμής σε κάθε ένα μέλος μιας δομής ξεχωριστά Έτσι, ο γενικός τύπος απόδοσης τιμής σε μέλη δομής είναι: όνομαδομής.όνομαμέλους = τιμή συμβατού τύπου; Με τις παραπάνω δύο δηλώσεις δομών δημιουργούνται οι book_1, book_2, book_3 και τους παραχωρείται χώρος στη μνήμη όπως φαίνεται στο σχήμα.

9 Κεφάλαιο 6: Οργάνωση Βασικών Τύπων 197 book_1. publisher. title. author. No_Of_Pages. price book_2. publisher. title. author. No_Of_Pages. price book_3. publisher. title. author. No_Of_Pages. price Παραδείγματα απόδοσης τιμών σε μέλη των ως άνω δομών είναι τα ακόλουθα: book_3.no_of_pages = 384; book_1.price = 25.00; scanf( %s, book_1.publisher); Οι τιμές αυτές είναι δυνατόν να αλλάξουν κατά τη ροή του προγράμματος, αφού τα μέλη των δομών είναι μεταβλητές. Για παράδειγμα οι εντολές: book_3.no_of_pages = 2384; book_1.price = ; scanf( %s, book_1.publisher); αλλάζουν τις τιμές των ως άνω μεταβλητών, εφόσον στη νέα κλήση της scanf() πληκτρολογείται διαφορετικό όνομα για τον publisher. Είναι ευνόητο ότι όταν αναφερόμαστε στα μέλη μιας δομής πρέπει απαραιτήτως να καθορίζουμε τη δομή στην οποία αυτά ανήκουν. Έξω από τη δομή τα μέλη της δεν έχουν υπόσταση. Η εντολή : No_Of_Pages = 404; δεν είναι αναγνωρίσιμη από τον compiler. Όπως συμβαίνει και με τους συμβατικούς τύπους μεταβλητών οι δομές μπορούν να ο- μαδοποιηθούν σε πίνακες δομών. Με την εντολή: struct book Library[1200]; δηλώνεται ο πίνακας Library με 1200 στοιχεία καθένα από τα οποία είναι δομή τύπου book.

10 198 ΓΡΑΜΜΑΤΙΚΗ και ΣΥΝΤΑΚΤΙΚΟ της ANSI C Ας δούμε μια πιο ολοκληρωμένη παρουσίαση των πραγμάτων με τη βοήθεια του προγράμματος: #include <stdio.h> struct book char publisher[25]; char title[45]; char author[25]; int No_Of_Pages; float price; }; main() int i; struct book bookself[3]; for(i=0;i<3;i++) printf("book No %d\n", i+1); printf("type the name of the publisher\n"); scanf("%s", bookself[i].publisher); printf("type the title\n"); scanf("%s", bookself[i].title); printf("type the name of the author\n"); scanf("%s", bookself[i].author); printf("type the number of pages\n"); scanf("%d", &bookself[i].no_of_pages); printf("type the price\n"); scanf("%f", &bookself[i].price); } return 0; } Εδώ δηλώνεται ως καθολική (και άρα διαθέσιμη για χρήση και από, τυχόν υπάρχουσες, άλλες συναρτήσεις του προγράμματος) η μορφή της δομής book. Μέσα στη main() δηλώνεται ο πίνακας bookself (= ράφι) τριών δομών τύπου book. Στο βρόχο for καλείται ο χρήστης του προγράμματος να εισαγάγει τις τιμές που θα αποδοθούν στα μέλη κάθε δομής του bookself[3]. Προσέξτε τον τρόπο με τον οποίο ονομάζονται με χρήση του τελεστή τελεία τα μέλη των δομών στοιχείων του bookself[3].

11 Κεφάλαιο 6: Οργάνωση Βασικών Τύπων 199 Σημειώστε ότι εντολές όπως η: bookself[1].title[45] = Gone with the wind ; δεν γίνονται αποδεκτές από τον compiler, διότι, όπως έχουμε τονίσει στο κεφάλαιο για τους πίνακες, αρχικοποίηση ενός πίνακα είναι δυνατή μόνο κατά τη δήλωσή του. Εδώ με την εντολή: struct book bookself[3]; δηλώθηκαν οι τέσσερις δομές του bookself[3], χωρίς όμως να αρχικοποιηθούν και οι πίνακες - μέλη που περιέχονται σε αυτές. Κατά συνέπεια, απόδοση τιμής στα εν λόγω μέλη, σε άλλο σημείο του προγράμματος, μπορεί να πραγματοποιηθεί μόνο με χρήση συναρτήσεων όπως η scanf() ή η gets(). Τρόποι Δήλωσης Δομών Η C παρέχει την δυνατότητα δήλωσης των δομών κατά διαφορετικούς τρόπους. Σε όλες όμως τις περιπτώσεις οι δηλώσεις των δομών πρέπει να γίνονται πριν από κάθε εντολή της συνάρτησης που τις περιέχει, όπως άλλωστε ισχύει και για τις δηλώσεις μεταβλητών των βασικών τύπων. Στον πρώτο τρόπο δήλωσης αναφερθήκαμε ήδη παραπάνω, αλλά για την πληρότητα της ανάπτυξης θα τον παρουσιάσουμε και πάλι εδώ. 1. Ξεχωριστή δήλωση μορφής και δήλωση αντιτύπων. struct Player char Name[30]; int Age; }; struct Player player1, player2, BasketBallTeam[5]; Στην πρώτη από τις ανωτέρω δύο εντολές δηλώνεται η μορφή της δομής Player, ενώ στη δεύτερη αφ ενός οι δομές player1, player2, που είναι τύπου Player, και αφ ετέρου ο πίνακας δομών BasketBallTeam[5] που έχει πέντε στοιχεία κάθε ένα από τα οποία είναι μια δομή τύπου Player. 2. Ταυτόχρονη δήλωση μορφής, μέ ή χωρίς όνομα, και αντιτύπων struct char capital; float population;} Spain, Portugal; struct Identity char* Name; int Age; float Salary;} Actor, Musician; Στην πρώτη από τις δύο περιπτώσεις, στην ίδια εντολή έχουμε δήλωση της μορφής και δήλωση δύο δομών των Spain και Portugal που ανήκουν στη μορφή αυτή που δηλώθηκε μεν αλλά δεν της δόθηκε κάποιο όνομα. Με μια τέτοια όμως δήλωση, δεν μπορούμε να δηλώσουμε άλλες δομές πέρα από τις δύο που δηλώθηκαν, και αυτό διότι δεν έχουμε όνομα της μορφής (του σχήματος, του καλουπιού) στο οποίο πρέπει να αναφερθούμε για να γίνει δυνατή η δήλωση και άλλων αντιτύπων. Η έλλειψη αυτή καλύπτεται με μια δήλωση τόσο της μορφής με το όνομά της όσο και των αντιτύπων όπως γίνεται στη δεύτερη περίπτωση.

12 200 ΓΡΑΜΜΑΤΙΚΗ και ΣΥΝΤΑΚΤΙΚΟ της ANSI C 3. Δήλωση με χρήση της δεσμευμένης λέξης typedef Εάν έχει γίνει η δήλωση: struct Player char Name[30]; int Age; }; τότε με την εντολή: typedef struct Player BestPlayer; η λέξη BestPlayer ορίζεται ως συνώνυμο των δύο λέξεων struct Player. Αυτό έχει ως συνέπεια να μπορούμε να δηλώνουμε δομές τύπου Player ως εξής: BestPlayer player3, player4; Η δήλωση αυτή είναι ισοδύναμη με την: struct Player player3, player4; την οποία επίσης μπορούμε να εξακολουθούμε να τη χρησιμοποιούμε στο ίδιο πρόγραμμα. Χρήση της typedef μπορεί να γίνει και στην ακόλουθη περίπτωση: typedef char Name[30]; int Age; } GoodPlayer; Εδώ αν και δεν έχουμε δώσει όνομα στη μορφή της δομής μπορούμε να δηλώσουμε: GoodPlayer player5, FootBallTeam[11]; Ο ορισμός συνωνύμων με την ως άνω χρήση της typedef μας απαλλάσσει από την ονοματοδοσία των μορφών των δομών. Γενικώς χρησιμοποιούμε την typedef, όταν θέλουμε να εισαγάγουμε ένα συνώνυμο ενός από τους υπάρχοντες ή από τους παραγόμενους τύπους της γλώσσας. Έτσι με την εντολή: typedef float decimal; Εισάγεται η λέξη decimal ως συνώνυμο της λέξης float και μπορεί να χρησιμοποιηθεί αντί αυτής, όπως γίνεται με την εντολή: decimal x, y, x; όπου τα x, y, x είναι στην πραγματικότητα μεταβλητές τύπου float. Αποτελεί συνήθη προγραμματιστική τακτική το να περιλαμβάνουμε τις δηλώσεις μορφής των δομών που χρησιμοποιούμε συχνά σε ένα ξεχωριστό αρχείο, το οποίο μπορούμε να το εισάγουμε στα προγράμματά μας με μια οδηγία #include του προεπεξεργαστή, κάθε φορά που το χρειαζόμαστε. Έτσι σε περίπτωση που είναι επιθυμητή η αλλαγή της δομής δεν έχουμε παρά να αλλάξουμε τον κώδικα σε ένα και μοναδικό αρχείο. Είναι προφανές ότι την ίδια αντιμετώπιση θα πρέπει να έχουν και οι συναρτήσεις που συντάσσονται από τον προγραμματιστή και χρησιμοποιούνται συχνά στα προγράμματα με την αρχική τους μορφή ή με μικρές παραλλαγές.

13 Κεφάλαιο 6: Οργάνωση Βασικών Τύπων 201 Ιδιότητες των Δομών Τα μέλη μιας δομής μπορούν να αρχικοποιηθούν με τη δήλωση της. Π.χ. struct char model[15]; int Year;} car1= Fiat, 1960}, car2= Ferrari, 1984}; όπου η δήλωση της μορφής ακολουθείται από τη δήλωση των αντιτύπων car1 και car2 με αρχικοποίηση των μελών τους. Αν κάποια από τα μέλη δεν αρχικοποιηθουν τους αποδίδεται μηδενική τιμή. Επίσης struct Italian_car char model[15]; int Year;} Ferrari= Testa Rossa, 1990}; όπου έχουμε ταυτόχρονη δήλωση και ονοματοδοσία της μορφής της δομής και παραγωγή του αντιτύπου Ferrari με αρχικοποίηση των μελών του. Οι δομές μπορούν να δηλωθούν ως extern, static, auto, register, όπως και οι βασικές μεταβλητές. Ο χειρισμός των μελών των δομών γίνεται όπως και όλων των κοινών μεταβλητών Player1. age=23; Ή και Player1.age = player2.age; Μπορούμε να δηλώσουμε δείκτες σε δομές συγκεκριμένης μορφής, και να αποδώσουμε εν συνεχεία σε αυτούς ως τιμές τις διευθύνσεις αντιτύπων που παράγονται από την εν λόγω μορφή. struct Player char Name[30]; int Age}, player6, player7, *pstr; pstr = &player6; pstr = &player7; Μία ολόκληρη δομή είναι δυνατόν να αποδοθεί ως τιμή σε μία άλλη που έχει παραχθεί από το ίδιο καλούπι. player6 = player7; Είναι επιτρεπτός ο ορισμός συναρτήσεων που περιέχουν στη λίστα των παραμέτρων τους δομές. Για παράδειγμα στο πρόγραμμα: #include <stdio.h> struct Player char Name[30]; int Age;}; void ShowPlayer(struct Player Cards_Player) printf("%s %d\n", Cards_Player.Name, Cards_Player.Age); }

14 202 ΓΡΑΜΜΑΤΙΚΗ και ΣΥΝΤΑΚΤΙΚΟ της ANSI C main() struct Player player1="jordan", 48}, player2; ShowPlayer(player1); printf("input the player's name\n"); scanf("%s", player1.name); printf("input the player's age\n"); scanf("%d", &player1.age); player2 = player1; ShowPlayer(player2); return 0; } η συνάρτηση ShowPlayer() έχει ως παράμετρο μια δομή τύπου Player, της οποίας με χρήση της printf() εμφανίζει τα μέλη. Μέσα στη main() αρχικοποιείται η player1 και player2, αντίτυπα της μορφής Player. Στη πρώτη κλήση της ShowPlayer() εμφανίζονται τα μέλη της player1. Ακολούθως τα μέλη της player1 λαμβάνουν νέες τιμές, η δε player1, με τις νέες τιμές των μελών της, αποδίδεται ολόκληρη ως τιμή στη δομή player2. Στη δεύτερη κλήση της ShowPlayer() της διαβιβάζεται ως όρισμα η player2, της οποίας και εμφανίζει τα μέλη. Σημειώστε ότι η διαβίβαση τιμής στην ShowPlayer() γίνεται με αντιγραφή της player2 στην παράμετρο Cards_Player, που είναι και αυτή δομή τύπου Player. Το αποτέλεσμα της εκτέλεσης είναι το: Jordan 48 Input the player's name Johnson Input the player's age 50 Johnson 50 Μπορούμε να συντάξουμε συναρτήσεις που να έχουν επιστρεφόμενη τιμή μια ολόκληρη δομή. Ας το δούμε αυτό με μια τροποποίηση του παραπάνω προγράμματος: #include <stdio.h> struct Player char Name[30]; int Age;}; void ShowPlayer(struct Player Cards_Player) printf("%s %d\n", Cards_Player.Name, Cards_Player.Age); } struct Player returnstruct() struct Player assistant; printf("input the name\n"); scanf("%s", assistant.name); printf("input the age\n");

15 Κεφάλαιο 6: Οργάνωση Βασικών Τύπων 203 } scanf("%d", &assistant.age); return assistant; main() struct Player player1="jordan", 48}, player2; ShowPlayer(player1); player2 = returnstruct("jones", 54); ShowPlayer(player2); return 0; } Εν προκειμένω ορίζεται η συνάρτηση returnstruct() που επιστρέφει μια δομή τύπου Player. Η επιστρεφόμενη δομή αποδίδεται ως τιμή στην player2, τα μέλη της οποίας εμφανίζονται με χρήση της ShowPlayer(). Το αποτέλεσμα είναι: Jordan 48 Input the name Jones Input the age 54 Jones 54 Απαγορεύεται η σύγκριση δομών μεταξύ τους, ακόμη και αν προέρχονται από την ίδια μορφή. Εντολές όπως οι: while (player1<=player2)... } ή while (player1==player2)... } είναι μη αποδεκτές από τον compiler. Τα ονόματα των δομών δεν είναι διευθύνσεις της μνήμης. Οι ως άνω ιδιότητες αναδεικνύουν τη διαφορά μεταξύ των δομών και των πινάκων, και τους ρόλους που επιφυλάσσει η C για καθένα από τα δύο αυτά είδη ομαδοποιημένων δεδομένων. Τελεστής βέλος, προσπέλαση μελών μέσω δεικτών Έχουμε ήδη αναφερθεί στον τελεστή τελεία (.) που χρησιμοποιούμε προκειμένου να αποκτήσουμε πρόσβαση στα μέλη μιας δομής. Ας δούμε τώρα πώς μπορούμε να προσπελάσουμε τα μέλη μιας δομής μέσω δεικτών, θεωρώντας τις εντολές: struct Player char Name[30]; int Age}, player6, player7, *pstr; pstr = &player6;

16 204 ΓΡΑΜΜΑΤΙΚΗ και ΣΥΝΤΑΚΤΙΚΟ της ANSI C Στη πρώτη από αυτές δηλώνονται οι δομές player6, player7, αλλά και ο δείκτης pstr σε δομή τύπου Player. Στη δεύτερη αποδίδεται στον pstr ως τιμή η διεύθυνση της δομής player6, δηλαδή ο pstr είναι η διεύθυνση της δομής, επομένως η *pstr είναι η ίδια η δομή. Συνεπώς με χρήση του τελεστή τελεία (.) θα μπορούσαμε να προσπελάσουμε το μέλος Age της player6 ως: *pstr.age = 26; με βάση, όμως, τους κανόνες προτεραιότητας / σχετιστικότητας ο τελεστής τελεία, που βρίσκεται στη γραμμή 1 του αντίστοιχου πίνακα, έχει υψηλότερη προτεραιότητα από τον τελεστή *, που βρίσκεται στη δεύτερη γραμμή. Άρα η παραπάνω εντολή είναι ισοδύναμη με την: *(pstr.age) = 26; αλλά η παράσταση αυτή δεν έχει έννοια εν προκειμένω. Αν γράψουμε όμως: (*pstr).age = 26; τότε αφού η (*pstr) είναι, όπως είπαμε, η δομή, τότε το (*pstr).age είναι πράγματι το μέλος της που επιθυμούμε να προσπελάσουμε. Η C παρέχει έναν κομψότερο τρόπο για την προσπέλαση των μελών των δομών μέσω δεικτών. Για το σκοπό αυτό έχει εισαχθεί ο τελεστής βέλος (->) που σχηματίζεται από το σημείο του "πλην" (-) ακολουθούμενο από το σημείο του "μεγαλύτερο από" (>), και αντικαθιστά τον τελεστή τελεία, όταν πρόκειται για προσπέλαση μελών με χρήση δεικτών. Έτσι η παραπάνω εντολή: (*pstr).age = 26; μπορεί να γραφεί ισοδύναμα ως: pstr->age = 26; Κατ αναλογία μπορούμε να γράψουμε: scanf( %s, pstr->name); για προσπέλαση του πρώτου μέλους της δομής player6. Καθώς επίσης και pstr = &player7; pstr->age = 26; οπότε τώρα η pstr->age = 26; αποδίδει τιμή στο δεύτερο μέλος της player7. Στην περίπτωση που έχουμε πίνακες δομών, έστω για παράδειγμα τον Library[1200], που, μαζί με τον q δείκτη σε δομή τύπου book, δηλώνεται στις παρακάτω εντολές:

17 Κεφάλαιο 6: Οργάνωση Βασικών Τύπων 205 struct book char publisher[25]; char title[45]; char author[25]; int No_Of_Pages; float price; }; struct book Library[1200], *q; τότε το όνομα του πίνακα, το Library, είναι η και διεύθυνση του καθώς και η διεύθυνση του πρώτου του στοιχείου - δομής, όπως συμβαίνει με όλους τους πίνακες στη C. Επομένως το 900 ο στοιχείο δομή του εν λόγω πίνακα μπορεί να προσπελασθεί είτε ως Library[899], είτε μέσω της διεύθυνσής του που είναι Library+899. Στην πρώτη περίπτωση το μέλος author του εν λόγω 900 ου στοιχείου δομής μπορεί να προσπελασθεί ως Library[899].author, ενώ στη δεύτερη ως (Library+899)->author. Οι παρενθέσεις εδώ είναι απαραίτητες, διότι χωρίς αυτές η υψηλότερη προτεραιότητα του τελεστή βέλους (->), σε σχέση με εκείνη του συμβόλου της πρόσθεσης (+), θα μας έδινε παράσταση ισοδύναμη με την Library+(899->author) η οποία στερείται λογικής έννοιας. Έτσι με μια εντολή όπως η: scanf( %s, (Library+899)->author); έχουμε τη δυνατότητα να αρχικοποιήσουμε το μέλος της εν λόγω δομής ή να αλλάξουμε το περιεχόμενό του, που θα μπορούσε να εμφανισθεί στην οθόνη με μια printf(), όπως η: printf( %s\n, (Library+899)->author); Είναι προφανές ότι το Library+899 ως σταθερά διεύθυνσης μπορεί να αποδοθεί σε μεταβλητή κατάλληλου τύπου. Μια τέτοια είναι ο ανωτέρω δηλωθείς δείκτης q. Επομένως είναι αποδεκτές εντολές όπως οι: q = Library; /*Το όνομα κάθε πίνακα είναι σταθερά διεύθυνσης*/ q = &Library[i]; /*για 0<= i <=1199*/ q = Library+i; /*για 0<= i <=1199*/ καθώς και οι: scanf( %s, (q+99)->author); printf( %s\n, (q+57)->author); κ.ο.κ.

18

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

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

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

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

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

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

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

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

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

Περιεχόμενα. Πρόλογος... 21

Περιεχόμενα. Πρόλογος... 21 Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Περιεχόμενα. Πρόλογος... 17

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για

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

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

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

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

Προγραμματισμός Ι. Δομές & Ενώσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Προγραμματισμός Ι. Δομές & Ενώσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Δομές & Ενώσεις Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι 1 Δομές (Structures) Δομή (structure) στη C είναι μία συλλογή από μεταβλητές οποιουδήποτε

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

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

Η βασική συνάρτηση προγράμματος main()

Η βασική συνάρτηση προγράμματος main() Η βασική συνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Η συνάρτηση είναι ένα υποπρόγραμμα

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

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

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

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις της C Τα Λοιπά Στοίβα και μηχανισμός κλήσης Αναδρομικές συναρτήσεις Στατικές μεταβλητές Άλλα θέματα Μηχανισμός

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

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

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

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

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

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

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

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

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα Αλφαριθμητικά Πίνακες: μια σύντομη εισαγωγή Πίνακες χαρακτήρων: τα "Αλφαριθμητικά" Πίνακες(Arrays): έννοιες και ορισμοί Ορισμός: Πίνακας (array) = σύνολο μεταβλητών του ιδίου τύπου (int, float, char,...) με ένα κοινό

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Μεταβλητές-Σταθερές-Παράμετροι Τα στοιχεία

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

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

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

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

Ηβασικήσυνάρτηση προγράμματος main()

Ηβασικήσυνάρτηση προγράμματος main() Ηβασικήσυνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Ησυνάρτησηείναι ένα υποπρόγραμμα που

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

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

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

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

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

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Εγγραφές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η Ανάγκη Ομαδοποίησης Πολλές φορές έχουμε πληροφορίες διαφορετικού τύπου οι οποίες όμως έχουν μεγάλη

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 3 Επανάληψη Γ μέρος

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 3 Επανάληψη Γ μέρος ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 3 Επανάληψη Γ μέρος 1. Στόχος του εργαστηρίου Στόχος του τρίτου εργαστηρίου είναι

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

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

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

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

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

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

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

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

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

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

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

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

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

Δεδομένα, Τύποι και Τιμές

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

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

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8 Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 1000 1001 1002 1003 1004 1005 12 9.8 9976 3 1010 26 1006 1007 1008 1009 1010 1011 16 125 1299 a 13 1298 Δήλωση Δήλωση Τύπος

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Δομές Δεδομένων και Κυρίως Πρόγραμμα Δομές δεδομένων εκτός από πίνακες: Structs Unions Enums Κυρίως πρόγραμμα Παράμετροι που

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κλάσεις και αντικείμενα #include <iostream.h<

Κλάσεις και αντικείμενα #include <iostream.h< Κλάσεις και αντικείμενα #include class Person private: char name[30]; int age; public: void readdata() cout > name; cout > age; void

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

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

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 9η εβδομάδα. Κοζάνη, 2 Δεκεμβρίου 2008. Δίνονται παραδείγματα που αποσαφηνίζουν και συμπληρώνουν όσα αναφέρθηκαν στο μάθημα σχετικά με τις δομές

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

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις Ενώσεις δεδομένων (union) τι και γιατί Συσκευές με μικρή μνήμη => ανάγκη εξοικονόμησης πόρων Παρατήρηση: αχρησιμοποίητη μνήμη. Έστω

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

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

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

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

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

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως

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

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

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

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Κεφάλαιο 9.1-9.2 Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Ένα string είναι μία ακολουθία αλφαριθμητικών χαρακτήρων, σημείων στίξης κτλ. Π.χ. Hello How are you? 121212 *Apple#123*%

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 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;

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

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

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

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Οι εντολές ελέγχου της ροής ενός προγράμματος. Κεφάλαιο ΙΙI: Οι εντολές ελέγχου της ροής ενός προγράμματος 31 Εντολές ελέγχου της ροής Στο παρόν κεφάλαιο ασχολούμαστε με την σύνταξη των εντολών της C οι οποίες εισάγουν λογική και ελέγχουν την ροή εκτέλεσης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμό για ΗΜΥ

Προγραμματισμό για ΗΜΥ ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 3 Εισαγωγή στην C Θέματα ιάλεξης Σύνταξη και Σημασιολογία

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

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

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

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

5ο σετ σημειώσεων - Δείκτες

5ο σετ σημειώσεων - Δείκτες 5ο σετ σημειώσεων - Δείκτες 11 Ιουνίου 01 1 Γενικά Σύμφωνα με το γενικό μοντέλο υπολογιστή, ένας υπολογιστής είναι μία μηχανή που διαθέτει μία κεντρική μονάδα επεξεργασίας η οποία μπορεί μεταξύ άλλων να

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

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

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

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

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

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

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

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

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C Master Mind εφαρμογή στη γλώσσα προγραμματισμού C Φεβρουάριος/Μάρτιος 2013 v. 0.1 Master-mind: κανόνες παιχνιδιού Στο master mind χρειάζεται να παράγονται κάθε φορά 4 τυχαία σύμβολα από ένα πλήθος 6 διαφορετικών

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

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1 Γλώσσα Προγραμματισμού C++ ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1 Τα δεδομένα Οι σταθερές Τα δεδομένα (πληροφορίες-data) είναι απαραίτητα στοιχεία ενός προγράμματος, καθώς οι βασικές λειτουργίες ενός προγράμματος είναι

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 2 Ο. Εισαγωγή στην C Εντολές εξόδου Εντολές εισόδου Μορφοποιητές ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 2 Ο. Εισαγωγή στην C Εντολές εξόδου Εντολές εισόδου Μορφοποιητές ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 2 Ο Εισαγωγή στην C Εντολές εξόδου Εντολές εισόδου Μορφοποιητές ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Εισαγωγή στη C Η γλώσσα προγραμματισμού C είναι υψηλού επιπέδου με δυνατότητες

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

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

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

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

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 9 Συναρτήσεις Μέρος II Θέματα ιάλεξης Μη- ομημένος

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

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

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

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

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

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

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

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

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

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 7ο Τμήμα Διοίκησης Επιχειρήσεων Παλαιό ΕΠΔΟ α εξάμηνο Β. Φερεντίνος Δείκτες (Pointers) (1) 142 Κάθε μεταβλητή, εκτός από την τιμή της, έχει και μία συγκεκριμένη διεύθυνση

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

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

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

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

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

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

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

Α. 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) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

Εντολές ελέγχου ροής if, for, while, do-while

Εντολές ελέγχου ροής if, for, while, do-while Εντολές ελέγχου ροής if, for, while, do-while 1 Μαρτίου 014 1 Εντολές εκτέλεσης υπό συνθήκη Μπορούμε να εκτελέσουμε εντολές της γλώσσας σε περίπτωση που κάποια συνθήκη ισχύει χρησιμοποιώντας την εντολή

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις (Functions) Οι βασικές λειτουργικές ενότητες ενός προγράμματος C Καλούνται με ορίσματα που αντιστοιχούνται σε

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

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

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

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

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

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

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

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12) Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II (Διάλεξη 12) 12-1 Ανασκόπηση Δομής Προγράμματος με Συναρτήσεις 1 void PrintMessage (); Πρότυπο (Δήλωση) Συνάρτησης (Δηλώνουν τι επιπλέον συναρτήσεις θα χρησιμοποιήσουμε

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

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

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 12 Πολυδιάστατοι Πίνακες Πολυδιάστατοι πίνακες

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

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων Απλά Προγράμματα Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα Οι Βασικοί κανόνες Κατανόηση

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 3ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΕΚΤΥΠΩΣΗ ΚΕΙΜΕΝΟΥ Ένα κείμενο μπορεί να εκχωρηθεί ως τιμή μιας μεταβλητής

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128] ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

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

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

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