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

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

Download "ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΜΕΣΟΛΟΓΓΙ) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ"

Transcript

1 ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΜΕΣΟΛΟΓΓΙ) ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ «Βασική Θεωρία, Παραδείγματα και Εργαστηριακές Ασκήσεις για την Εισαγωγή στον Προγραμματισμό σε C» (Έκδοση 3.0, Ιούνιος 2014) Δρ Αριστομένης Θανόπουλος Εργαστηριακός Συνεργάτης ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ

2 Ενότητα 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ ΤΗΣ DEV-C++ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση µε τη χρήση της Dev C++ η οποία θα χρησιµοποιηθεί ως εργαλείο των Εργαστηριακών Ασκήσεων της C. 1.1 Εισαγωγή Όλα τα προγράµµατα που θα αναπτύξουµε προϋποθέτουν την ολοκληρωµένη γνώση του περιβάλλοντος εργασίας DevC++. To εργαλείο αυτό είναι ανοικτού κώδικα (open source) και µπορούν οι φοιτητές να το κατεβάσουν από τον Δικτυακό τόπο Οι κύριες λειτουργίες του περιβάλλοντος σε όλες τις ασκήσεις είναι οι ακόλουθες: Σύνταξη ή άνοιγμα προγράµµατος πηγαίου κώδικα C Μεταγλώττιση (Compilation): Συντακτικός Έλεγχος του προγράµµατος Δοκιµαστική ή τελική εκτέλεση του µεταγλωττισµένου προγράµµατος Το περιβάλλον της γλώσσας ενσωµατώνει ένα σύνολο από χρήσιµες δυνατότητες όπως: Επεξεργασία κειμένου: Για τη σύνταξη των προγραµµάτων µε ταυτόχρονη δυνατότητα διαγραφής, αντιγραφής, αναζήτησης όπως δηλαδή και σε ένα απλό επεξεργαστή κειµένου Διαχείριση Αρχείων Πηγαίου κώδικα C µε δυνατότητα ανάγνωσης, αποθήκευσης, εκτύπωσης κτλ. Εκτέλεση προγράµµατος: Δοκιµή του κώδικα και της αποτελεσµατικότητας του προγράµµατος. Μεταγλώττιση προγράµµατος και δημιουργία του εκτελέσιµου αρχείου µε δυνατότητα ενεργοποίησης διαδικασιών όπως Make, Build κτλ Διόρθωση σφαλµάτων µε βήµα προς βήµα παρακολούθηση κατά τη διάρκεια της εκτέλεσης του προγράµµατος, πρόσθεση σηµείων παρακολούθησης στον κώδικα κτλ Ρυθµίσεις των χαρακτηριστικών του περιβάλλοντος. Ανάκληση βοήθειας (Help) σχετικά με το περιβάλλον ή τη C Ξεκινώντας το Περιβάλλον DevC++ Την πρώτη φορά που θα τρέξετε το Περιβάλλον DevC++, πιθανόν να σας ζητηθούν από το πρόγραμμα οδηγίες εγκατάστασης. Γενικά δίνετε NEXT χωρίς αλλαγές. Προσοχή! Στην επιλογή γλώσσας μην επιλέξετε Ελληνικά, αφήστε την προεπιλογή «English». Αν έχετε αμφιβολία πώς θα προχωρήσει η εγκατάσταση, απευθυνθείτε στον καθηγητή σας. Κάθε φορά που θα ξεκινάτε το Περιβάλλον DevC++ για να φτιάξετε ένα αρχείο κώδικα, πηγαίνετε στο μενού File (το 1 ο από αριστερά στη γραμμή των μενού) και αν είναι ενεργή η επιλογή Close All, κλικάρετέ την, για να κλείσουν τυχόν προηγούμενα αρχεία. Ακολούθως, στο ίδιο μενού, δώστε New και επιλέξετε την εντολή Project. Ακολούθως επιλέξτε C Project και Console Application και πατήστε ΟΚ. Θα σας ζητηθεί ο χώρος αποθήκευσης. Προσοχή: Δημιουργήστε νέο φάκελο και αποθηκεύστε εκεί. Αµέσως δηµιουργήθηκε στο περιβάλλον εργασίας το παράθυρο επεξεργασίας κειμένου στο οποίο θα γράψουµε τον πηγαίο κώδικα του προγράµµατος µας.

3 Πατήστε Compile & Run από το μενού Execute (F9 ή F11, ανάλογα με την έκδοση της DevC++), και θα σας ζητηθεί να αποθηκεύσετε το πηγαίο αρχείο main.c. ΠΡΟΣΟΧΗ: Αποθηκεύστε χωρίς να αλλάξετε το όνομα αρχείου ή το φάκελο αποθήκευσης. Το κυρίως πρόγραμμα το γράφουμε αμέσως μετά από το άγκιστρο το οποίο βρίσκεται μετά τη γραμμή int main( ) Στην συνέχεια πηγαίνουµε στο menu επιλογής Execute και επιλέγουµε Compile από το μενού Execute. Στην περίπτωση που το πρόγραμμα έχει συντακτικά λάθη (Errors) ή προειδοποιήσεις (Warnings), αυτά εµφανίζονται σε ένα παράθυρο κάτω από τον πηγαίο κώδικα όπως φαίνεται στο Σχήµα 3. Το παράθυρο παρέχει στον προγραµµατιστή τις παρακάτω πληροφορίες: Γραµµή στην οποία εμφανίστηκε λάθος. Προσέξτε! Κάποιες φορές το πραγματικό λάθος στον κώδικα βρίσκεται πιο πάνω, σε κάποια προηγούμενη γραμμή! Συχνά, αν δεν είναι στην ίδια, είναι στην αμέσως προηγούμενη. Επεξήγηση ως προς τον τύπο του λάθους. Με λίγη εμπειρία στον προγραμματισμό και γνώση της Αγγλικής συχνά μπορούμε να καταλάβουμε αμέσως ποιο είναι το λάθος ακριβώς. Tip: Με διπλό κλικ πάνω στο μήνυμα του λάθους, μας πάει κατευθείαν στη γραμμή που εμφανίστηκε για να το διορθώσουμε. Εκτός από τα συντακτικά λάθη (errors) o compiler μπορεί να εμφανίσει κάποιες προειδοποιήσεις (warnings) σε κάποιες γραμμές κώδικα. Ένα πρόγραμμα χωρίς Errors αλλά με Warnings μπορεί να τρέξει, αλλά υπάρχει σημαντική πιθανότητα να υπάρχει κάποιο λάθος, με αποτέλεσμα να τρέξει μεν αλλά να μην συμπεριφερθεί σωστά, π.χ. να βγάλει λάθος αποτελέσματα ή να «κολλήσει» (δηλ. να σταματήσει να λειτουργεί χωρίς να έχει ολοκληρώσει τη ζητούμενη εργασία). Παρατήρηση: Αν ο compiler 'χτυπάει' πολλά λάθη, μην προσπαθείτε να τα διορθώσετε όλα μαζί. Πιθανώς ένα λάθος να δημιουργεί πολλά μηνύματα λάθους, οπότε διορθώστε το πρώτο που σας εμφανίζει και μετά ξανακάνετε Compile&Run. Επαναλάβετε τη διαδικασία έως ότου να μην υπάρχουν άλλα λάθη. Αν τελειώσουμε με τη διόρθωση των λαθών και προειδοποιήσεων, καλούμε την εντολή Run (μενού Execute), οπότε εµφανίζεται το μαύρο παράθυρο («κονσόλα») στο οποίο εκτελείται το πρόγραµµα που έχουµε δηµιουργήσει (Σχήµα 4). Σημείωση: Με την επιλογή Compile & Run (F9) από τo menu Execute γίνεται Compile, και, αν δεν προκύψουν συντακτικά λάθη (errors), στη συνέχεια δημιουργείται και «τρέχει», δηλαδή εκτελείται, το εκτελέσιμο πρόγραμμα (*.exe). Τα λάθη που εμφανίζονται κατά την εκτέλεση του προγράμματος, ονομάζονται λογικά ή σημασιολογικά λάθη (bugs), και δεν είναι καθόλου απαραίτητο να τα έχει ανιχνεύσει ο compiler ως προειδοποίηση. Για να τα ανιχνεύσουμε και να τα διορθώσουμε, συχνά θα χρειαστεί να τρέξουμε το πρόγραμμά μας περισσότερες από μια φορές, δίνοντας κάθε φορά διαφορετικά δεδομένα εισόδου και βλέποντας κάθε φορά αν λειτουργεί σωστά και αν βγάζει σωστά αποτελέσματα. 3

4 4 Σχήµα 1: Έλεγχος λαθών Σχήµα 2: Εκτέλεση του προγράµµατος (παράθυρο κονσόλας) Παρατήρηση: Εάν έχει τρέξει το πρόγραμμα και το μαύρο παράθυρο της κονσόλας παραμένει ανοιχτό, εάν χρειαστεί να τροποποιήσετε τον κώδικα (π.χ. είτε για να διορθώσετε κάποιο σημασιολογικό (λογικό) λάθος, είτε για να προσθέσετε καποια λειτουργία στο πρόγραμμα κλπ.) θα πρέπει πρώτα να κλείσετε το παράθυρο της κονσόλας, αλλιώς δε μπορεί να δημιουργηθεί το νέο εκτελέσιμο αρχείο (*.exe).

5 5 ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ Άσκηση 1.1. Να γραφεί το παρακάτω πρόγραµµα. #include <stdio.h> #include <stdlib.h> int main() printf( This is your first program!\n); // η προηγούμενη γραμμή είναι και η μόνη εντολή (σχόλιο) /* όλα τα υπόλοιπα τα γράφουμε πάντα (άλλο σχόλιο) */ system( pause ); return 0; Επιλέξετε την επιλογή Compile & Run (F9) από τo menu Execute Διορθώσετε τυχόν συντακτικά λάθη αν υπάρχουν Τροποποιήσετε το µήνυµα που εµφανίζεται στην οθόνη του υπολογιστή ώστε να εμφανίζει στην παρακάτω γραμμή το μήνυμα «τέλος προγράμματος» (με αγγλικούς χαρακτήρες, όπως και όλο το πρόγραμμα, εκτός από τα σχόλια). Βρείτε το εκτελέσιμο αρχείο και τρέξτε το απευθείας από τα Windows. Άσκηση 1.2. Να τροποποιήσετε το πρόγραµµα συµπεριλάβετε τον παρακάτω κώδικα: #include <stdio.h> #include <stdlib.h> int main() int a,b; printf( Your name is ***********\n ); printf( You are a student at EPDO\tΤΕΙ Mesologgiou.\); printf ( %d+%d=%d,a,b,a+b) system( pause ); return 0; Κάντε Compile και διορθώσετε τυχόν συντακτικά λάθη αν υπάρχουν Μετά τρέξτε το. Είναι σωστό; Βάλτε να εμφανίζεται το όνομά σας αντί για τα αστεράκια. Δώστε αρχικές τιμές στις μεταβλητές, και ξανατρέξτε το Παρεμβάλλετε κενά σε διάφορα σημεία της τελευταίας printf και παρατηρήστε τι συμβαίνει στο πρόγραμμα. Άσκηση 1.3. Να αναζητήσετε δια µέσου του µενού Help πληροφορίες για τις εντολές-συναρτήσεις της C: main(), scanf(), printf().

6 6 Ενότητα 2. Δομή Προγράμματος C, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας Προγραµµατισµού C: τη δοµή των προγραµµάτων της, τους βασικούς τύπους δεδοµένων που υποστηρίζει, τις δηλώσεις μεταβλητών και σταθερών, τις εντολές ανάθεσης και τις βασικές εντολές εισόδου/εξόδου printf και scanf. ΔΟΜΗ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΤΗ C Η Γλώσσα Προγραµµατισµού C, όπως και κάθε άλλη δοµηµένη γλώσσα, απαιτεί τα προγράµµατα της να έχουν µια συγκεκριµένη δοµή. Πριν παρουσιάσουµε τη δοµή του προγράµµατος, αξίζει να αναφέρουµε ότι η γλώσσα C ξεχωρίζει τους πεζούς από τους κεφαλαίους χαρακτήρες. Το 1 ο τμήμα ενός προγράμματος C ξεκινά με τις εντολές προεπεξεργαστή. Είναι εντολές που ξεκινούν με το χαρακτήρα # και δεν τελειώνουν με ;. Εμείς θα χρησιμοποιήσουμε τις #include <αρχείο> και #define ετικέττα. (Εντολές τέτοιου τύπου προκαλούν την ενεργοποίηση διαφόρων πριν την έναρξη της διαδικασίας µεταγλώττισης.) Η οδηγία #include <αρχείο.h> χρησιµοποιείται για να διαβάσει το συγκεκριµένο αρχείο επικεφαλίδας (header file) και να το ενσωµατώσει στο πρόγραµµα που γράφουµε σαν να ήταν αναπόσπαστο τµήµα του. Τα αρχεία αυτά περιέχουν τις δηλώσεις κάποιων συναρτήσεων που θα χρειαστούμε, όπως οι scanf(), printf(), system(), sqrt() κλπ. Κάθε φορά που συµπεριλαµβάνουµε ένα αρχείο επικεφαλίδας, εµπλουτίζουµε το πρόγραµµά µας µε µια γκάµα βιβλιοθηκών/συναρτήσεων (εντολών) που περιέχονται σε αυτό. Έτσι ανάλογα µε τις συναρτήσεις που θέλουµε να χρησιµοποιήσουµε ενεργοποιούµε το αντίστοιχο αρχείο µέσω της εντολής #include. Τέλος θα πρέπει να αναφέρουµε ότι κάθε χρήστης έχει τη δυνατότητα να δηµιουργήσει δικά του αρχικά αρχεία επικεφαλίδων (βιβλιοθήκες) τα οποία μπορεί να ενσωµατώσει στα προγράµµατά του. To 2o και κύριο μέρος του προγράμματος συνίσταται στη δήλωση της συνάρτησης main(). Συνολικά η δομή των προγραμμάτων C που θα υλοποιήσουμε, τουλάχιστον στα πρώτα μαθήματα, είναι η εξής: Δηλώσεις προεπεξεργαστή int main () Δηλώσεις μεταβλητών Ακολουθία εντολών system ( pause ); return 0; Παρατήρηση: η συνάρτηση/εντολή system( pause ); παγώνει την εκτέλεση μέχρι να πατηθεί ένα πλήκτρο. Τη βάζουμε πάντα πριν το τέλος για να μην κλείσει το παράθυρο της εφαρμογής και να προλάβουμε να δούμε τα αποτελέσματα, αλλά μπορεί να μπεί και σε άλλα σημεία, για παρόμοιο λόγο, αν δηλ. θέλουμε να παγώσει το πρόγραμμα προσωρινά. Σχόλια (Comments) στη C Τα σχόλια προστίθενται ενδιάμεσα γιά να βοηθήσουν στη τεκμηρίωση και αναγνωσιμότητα του προγράμματος. Τα σχόλια απευθύνονται στον αναγνώστη του κώδικα του προγράμματος. Δεν απευθύνονται στον χρήστη του προγράμματος, δηλαδή δεν είναι μηνύματα που εμφανίζονται στην οθόνη. Επίσης δεν απευθύνονται στον Compiler (μεταφραστή), αφού αγνοούνται τελείως από αυτόν. Ένα σχόλιο της C ξεκινά με τον συνδυασμό χαρακτήρων '/*' και τελειώνει με τον συνδυασμό '*/'. Σε

7 κάποιους compilers (MS, BloodShed) επίσης μπορεί να ξεκινά με διπλή δεξιά κεκλιμένη ("//", slash), οπότε τελειώνει στο τέλος της γραμμής. Περιοχή κώδικα κυρίας συνάρτησης (κυρίως πρόγραµµα, main program) Όλα τα προγράµµατα της C είναι στην ουσία ένα σύνολο από συναρτήσεις. Η βασική συνάρτηση που θα περιέχει το κυρίως πρόγραµµα ονοµάζεται main και η επικεφαλίδα της συντάσσεται ως int main(), δηλαδή η συνάρτηση αυτή επιστρέφει ακέραιο αριθμό. Οι διάφορες δηλώσεις και ο κώδικας που θα ενσωµατωθούν πρέπει υποχρεωτικά να παρέχονται µεταξύ των συµβόλων "" και "" τα οποία και θέτουν το αρχικό και τελικό της όριο µέσα στο πρόγραµµα C. Πριν κλείσει η main(), δηλαδή πριν το βάζουμε την εντολή return 0;, ώστε να γνωρίζει το λειτουργικό σύστημα ότι, αν το πρόγραμμα επέστρεψε την τιμή μηδέν, έχει φτάσει στην τελευταία γραμμή και συνεπώς έχει τελειώσει κανονικά την εκτέλεση όλων των εντολών του. Περιοχή Δήλωσης Μεταβλητών Σε αυτό το τµήµα δηλώνουµε µεταβλητές και σταθερές οι οποίες µπορούν να χρησιµοποιηθούν µόνο στη συνάρτηση της main. Οι µεταβλητές δηλώνονται αµέσως µετά την εισαγωγή του συµβόλου στην συνάρτηση main. Οι µεταβλητές που δηλώνουµε ανήκουν στους τύπους δεδοµένων που υποστηρίζει η C. Κάθε µεταβλητή περιλαµβάνει τα παρακάτω χαρακτηριστικά: Τύπο της µεταβλητής Όνοµα της µεταβλητής Τιµή που της εκχωρείται Τύποι Μεταβλητών Οι µεταβλητές µπορούν να περιέχουν διάφορους τύπους δεδοµένων. Ο παρακάτω πίνακας δίνει τις πιο σηµαντικούς τύπους µεταβλητών στη C, το εύρος τιµών (ελάχιστη τιµή - µέγιστη τιµή που µπορεί να καταχωρηθεί σε µία µεταβλητή) καθώς και το πεδίο τιμών τους. 7 Τύπος Δεδομένων στη C Περιγραφή Πεδίο Ορισμού char χαρακτήρας '!','@',,'1',, 'a', 'A',. int ακέραιος αριθμός, θετικός ή αρνητικός [ , ] unsigned int θετικός ακέραιος αριθμός [0, 2 32 ) = [0, ] float δεκαδικός απλής ακρίβειας ( , ) double δεκαδικός διπλής ακρίβειας ( , ) Δήλωση μεταβλητών: Περιορισμοί: Μήκος ονόματος μεταβλητής: 1-31 χαρακτήρες Επιτρέπονται γράμματα, αριθμοί και το underscore ('_', κάτω παύλα). Πρέπει το αρχικό γράμμα να είναι χαρακτήρας. Δεν πρέπει να χρησιμοποιούνται δεσμευμένες λέξεις της C ή ονόματα συναρτήσεων. Αλλαγή έστω κι ενός γράμματος από πεζό σε κεφαλαίο ή αντίστροφα, αλλάζει τη μεταβλητή (case sensitivity) Εκχώρηση ή Ανάθεση Μεταβλητών Για να αποθηκεύσουμε σε μια μεταβλητή μια τιμή η οποία υπολογίζεται από το αποτέλεσμα μιας παράστασης, γράφουμε: Mεταβλητή = Παράσταση;

8 8 Αυτή η εντολή ονομάζεται ανάθεση ή εκχώρηση. Προφανώς, οι πιο απλές περιπτώσεις ανάθεσης είναι αν έχουμε αντί για ολόκληρη παράσταση μια μόνο μεταβλητή ή μια σταθερά. Το αποτέλεσμα της παράστασης πρέπει να είναι ίδιου τύπου δεδομένων με τη μεταβλητή. Αλλιώς μετατρέπεται στον τύπο της μεταβλητής αυτόματα, οπότε πιθανόν να χαθεί πληροφορία, π.χ. αν αποθηκευτεί σε μια ακέραια μεταβλητή το δεκαδικό αποτέλεσμα μιας παράστασης, τα δεκαδικά ψηφία θα αποκοπούν. /* ΠΑΡΑΔΕΙΓΜΑ: Υπολογισμός Περιμέτρου και Εμβαδού κύκλου*/ int main () const double PI = ; //δήλωση της σταθεράς π float r = 3; //δήλωση και αρχικοποίηση της ακτίνας float s, perimeter; /* δήλωση των άλλων δύο μεταβλητών του προβλήματος */ s = PI * r * r; perimeter = 2 * PI * r; return 0; Παρατηρήστε τη δήλωση του π: Όταν ένας προσδιοριστής δεν πρέπει να αλλάξει κατά την εκτέλεση, μπορούμε να τον δηλώσουμε ως σταθερά (αντί για μεταβλητή), οπότε στη δήλωση βάζουμε τη λέξη const πριν τον τύπο δεδομένων. Τις σταθερές συνηθίζουμε να τις δηλώνουμε με κεφαλαία γράμματα, και τις μεταβλητές με πεζά. Εναλλακτικά, θα μπορούσαμε αντί να δηλώσουμε στην αρχή της main() την σταθερά const double PI = ; να δώσουμε στην αρχή την οδηγία προεπεξεργαστή (προσέξτε, χωρίς = και ; ): #define PI Οι Εντολές - Συναρτήσεις Εισόδου και Εξόδου H συνάρτηση printf() Η printf() είναι η βασική συνάρτηση παρουσίασης ενός µηνύµατος ή της τιµής µιας µεταβλητής ή παράστασης στην οθόνη του υπολογιστή. H συνάρτηση printf() περιλαµβάνεται στην βιβλιοθήκη <stdio.h.>. Η σύνταξη της συνάρτησης printf() είναι η ακόλουθη: printf("<συµβολοσειρά>", <ακολουθία μεταβλητών>); Στη συµβολοσειρά, εκτός από τους χαρακτήρες που πρόκειται να εκτυπωθούν, μπορούν να παρεμβάλλονται και: μη εκτυπώσιμοι χαρακτήρες, οι οποίοι ξεκινούν με backslash ('\') και έχουν τις εξής σημασίες: \n νέα γραμμή \t στηλοθέτης (tab) \a ηχητικό σήμα (beep) \b backspace \\ εκτύπωση ενός \ \" εκτύπωση ενός διπλού εισαγωγικού \' εκτύπωση ενός μονού εισαγωγικού κλπ. προσδιοριστές, που ξεκινούν με το χαρακτήρα %, πρέπει να είναι όσες και οι μεταβλητές που ακολουθούν (διαχωρισμένες με κόμμα) και αντίστοιχου τύπου. Κάθε προσδιοριστής δείχνει πως πρέπει να εκτυπωθεί η αντίστοιχη μεταβλητή. Συγκεκριμένα: %c χαρακτήρας

9 9 %d ακέραιος στο δεκαδικό σύστημα. Αν πρόκειται για μεταβλητή τύπου χαρακτήρα θα εκτυπωθεί ο αντίστοιχος ASCII κωδικός του! %αd ακέραιος στο δεκαδικό σύστημα. Δεσμεύονται α θέσεις για την εκτύπωσή του. Αν όμως δεν χωράει, η εκτύπωση θα γίνει κανονικά χρησιμοποιώντας όσα ψηφία απαιτούνται. %f πραγματικός αριθμός (float ή double) %α.βf πραγματικός αριθμός που θέλουμε να εκτυπωθεί με α ψηφία συνολικά (περιλαμβάνει υποδιαστολή και πρόσημο) και β ψηφία δεκαδικό μέρος. Τα α και β πρέπει να είναι συγκεκριμένοι ακέραιοι αριθμοί, όχι μεταβλητές. Το ένα από τα δύο μπορεί να απουσιάζει, οπότε το μήκος τίθεται αυτόματα από τον compiler. Η ακολουθία μεταβλητών στη σύνταξη της printf() που είδαμε παραπάνω είναι προαιρετική, π.χ. στις 3 πρώτες γραμμές στο Παράδειγμα 1 δεν υπάρχουν μεταβλητές, αφού δεν υπάρχουν προσδιοριστές, όπως «%7.1f» μέσα στη συμβολοσειρά. ΠΑΡΑΔΕΙΓΜΑ 1: #include <stdio.h> // Περιέχει την scanf() #include <stdlib> // Περιέχει την system() int main () printf("line 1\tStili2\n"); printf("line 2\tStili2\n"); printf("line 3\t\tStili3\n"); printf("%7.1f\n", 5/3.); /* βάζουμε 3. αντί για 3 γιατί πράξεις μεταξύ ακεραίων δίνουν ακέραιο! */ printf("%7.3f\n", 5/3.); system( pause ); return 0; Στην οθόνη του υπολογιστή εµφανίζεται το παρακάτω µήνυµα Line1 Stili2 Line2 Stili2 Line3 Stili Η συνάρτηση scanf () Περιλαµβάνεται στην βιβλιοθήκη <stdio.h>. Χρησιμοποιείται για την εισαγωγή τιμών από το πληκτρολόγιο. Οι τιμές αυτές αποθηκεύονται μια προς μία σε αντίστοιχες μεταβλητές, που περιλαμβάνονται στην scanf(). Η συνάρτηση scanf(), που µοιάζει µε την printf(), δέχεται ως πρώτο όρισμα (μέσα σε διπλά εισαγωγικά) µια συµβολοσειρά ελέγχου και στη συνέχεια τα ονόματα των μεταβλητών που θα λάβουν τιμές από το πληκτρολόγιο. Η συµβολοσειρά ελέγχου περιγράφει στη C ακριβώς τι είναι οι τιµές που πληκτρολογούνται και τον τύπο τους. Η σύνταξη της scanf() είναι η ακόλουθη: scanf("<συµβολοσειρά Ελέγχου>",< λίστα μεταβλητών>); Αν και η σύνταξή της είναι παρόμοια με της printf(), στη συμβολοσειρά ελέγχου της scanf επιτρέπονται μόνο προσδιοριστές και όχι άλλοι χαρακτήρες, εκτυπώσιμοι ή μη. Προσοχή: Πρίν το όνομα κάθε μεταβλητής μπαίνει, χωρίς κενό, ο χαρακτήρας '&' (που σημαίνει "διεύθυνση της μεταβλητής").

10 10 Πριν από κάθε scanf() πρέπει να προηγείται μια printf(), ώστε να εξηγεί στο χρήστη τι περιμένει ακριβώς το πρόγραμμα από αυτόν. Αν μια scanf() περιμένει πολλές τιμές, αυτές πρέπει να διαχωριστούν κατά την πληκτρολόγηση με κενά διαστήματα. Πάντως είναι πιο ασφαλές, αν θέλουμε να εισαχθούν πολλά δεδομένα, να χρησιμοποιούμε μια scanf() για καθένα. Για παράδειγμα: scanf( %d,&k); // αποθηκεύει την ακέραια τιμή που θα δώσει ο χρήστης στην ακέραια μεταβλητή k. Προσοχή: μέσα στα εισαγωγικά μην βάζετε τίποτε άλλο! Μόνο το % και τον χαρακτήρα που αντιστοιχεί στον τύπο της μεταβλητής, π.χ. %f H συνάρτηση scanf() γνωρίζει πότε τερµατίζεται η είσοδος µε το πάτηµα του πλήκτρου Enter. Επειδή δεν µπορείτε να ελέγχετε τον τρόπο πληκτρολόγησης του χρήστη, αν κάνει λάθος εισαγωγή δεδομένων λανθασμένου τύπου, το πρόγραμμα δεν µπορεί να κάνετε πολλά. Τα αποτελέσµατα θα είναι λανθασµένα, αλλά το πρόγραµµα C δεν διαθέτει µέθοδο ελέγχου της ακρίβειας του χρήστη πριν την εκτέλεση του. ΠΑΡΑΔΕΙΓΜΑ 2: #include <stdio.h> #include <stdlib.h> int main () float totalsale; float tax; printf("enter the sales amount:\n"); scanf("%f",&totalsale); tax=totalsale*0.07; printf("the sales tax for %.2f\t is %.2f\n",totalSale,tax); system ("pause"); return 0; ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ Άσκηση 2.1. Να γραφεί πρόγραµµα που να εκτελεί τις παρακάτω διαδικασίες: a) Να διαβάζει από το πληκτρολόγιο 2 πραγµατικούς αριθµούς, και 2 ακέραιους b) Για τους δύο πραγματικούς να εκτελεί τις πράξεις πρόσθεση και διαίρεση και να τυπώνει τα αποτελέσµατα µε τη µορφή 3+5=8, κλπ. c) Να υπολογίζει το άθροισµα των δύο πρώτων, του 30% του τρίτου αριθµού και του τετραγώνου του 4ου και να τυπώνει το συνολικό αποτέλεσµα Άσκηση 2.2. Να γραφεί πρόγραμμα σε C που να ζητάει από το χρήστη δύο χαρακτήρες και να εκτυπώνει: Α) για τον πρώτο χαρακτήρα, τον επόμενό του στον πίνακα ASCII, και B) για το 2o χαρακτήρα, τον προηγούμενό του στον πίνακα ASCII. Άσκηση 2.3. Να γραφεί πρόγραµµα που να διαβάζει την ηλικία σε έτη και να την μετατρέπει σε μήνες, σε ηµέρες, σε ώρες και σε λεπτά, (ανεξάρτητα μεταξύ τους) και να την τυπώνει ως εξής: H HLIKIA EINAI:20 years, or 480 months, or days, or hours, or mins, or sec.

11 11 Ενότητα 3. Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου Η C, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες. Συνοπτικά οι βασικότεροι είναι οι εξής: Ανάθεσης (=) Αριθμητικοί (+, -, *, /, % ακέραιο υπόλοιπο) Λογικοί (&& AND, OR,! NOT) Σύγκρισης ή Συσχετιστικοί (>, >=, ==,!=, <, <=) == τελεστής ισότητας (όχι το μονό =, αφού σημαίνει ανάθεση)!= τελεστής ανισότητας ( ) Μοναδιαίας αύξησης και μείωσης (++, --) Ανάθεση ή καταχώρηση ή εκχώρηση τιμής: Το = είναι ένας τελεστής καταχώρησης τιμής. Δεν μπορούμε να καταχωρήσουμε τιμή σε μια σταθερά, ούτε σε παράσταση, άρα στα αριστερά του συμβόλου = πρέπει να είναι το όνομα μιας μόνο μεταβλητής. Εφαρμογές της εντολής αυτής είναι οι εξής : year = 2006; i = i + 1; t1 = t2 = 68; Στην τελευταία εντολή οι καταχωρήσεις γίνονται από τα δεξιά προς τα αριστερά. Στην πραγματικότητα μια εντολή ανάθεσης είναι επίσης μια παράσταση, η οποία παίρνει τιμή την τιμή που ανατέθηκε στη μεταβλητή! Έτσι το t2 γίνεται 68 και το t1 γίνεται ίσο με την τιμή της παράστασης t2=68, δηλαδή με 68. ΑΡΙΘΜΗΤΙΚΟΙ ΤΕΛΕΣΤΕΣ: πρόσθεσης: +, αφαίρεσης: -, πολλαπλασιασμού: *, διαίρεσης: /, ακέραιο υπόλοιπο διαίρεσης: %. Ο τελεστής ακεραίου υπολοίπου (%) χρησιμοποιείται στην αριθμητική των ακεραίων και επιστρέφει το υπόλοιπο της ακέραιας διαίρεσης του ακεραίου στα αριστερά με τον ακέραιο στα δεξιά. Για παράδειγμα, η πράξη 13 % 5 δίνει σαν αποτέλεσμα την τιμή 3, αφού το 5 χωράει δύο φορές στο 13 και έχει υπόλοιπο 3. ΠΡΟΣΟΧΗ! Στη διαίρεση πρέπει να έχουμε υπόψη μας ότι η διαίρεση μεταξύ δύο ακεραίων δίνει ακέραιο, δηλαδή το δεκαδικό μέρος αποκόπτεται! Διαίρεση μεταξύ ακεραίου και δεκαδικού (float ή double) δίνει δεκαδικό. Ακολουθεί ένα παράδειγμα : #include <stdio.h> main() printf("ακέραια διαίρεση : 5/3 είναι %d \n", 5/3); printf("ακέραια διαίρεση : 8/4 είναι %d \n", 8/4); printf("ακέραια διαίρεση : 7/5 είναι %d \n", 7/5); printf("ακέραιo πηλίκο: 7/5 είναι %d \n", 7/5); printf("διαίρεση κινητής υποδιαστολής : 7./4. είναι %1.2f \n", 7./4.); printf("μικτή διαίρεση : 7./4 είναι %1.2f \n", 7./4); Το αποτέλεσμα θα είναι : ακέραια διαίρεση : 5/3 είναι 1 ακέραια διαίρεση : 8/4 είναι 2

12 12 ακέραια διαίρεση : 7/5 είναι 1 ακέραιο πηλίκο: 7/5 είναι 2 διαίρεση κινητής υποδιαστολής : 7./4. είναι 1.75 μικτή διαίρεση : 7./4 είναι 1.75 ΛΟΓΙΚΟΙ ΤΕΛΕΣΤΕΣ και ΠΡΑΞΕΙΣ Το λογικό ΚΑΙ (AND) παριστάνεται με &&. Η παράσταση Α&&Β δίνει αποτέλεσμα αληθές αν και μόνο αν και το Α και το Β είναι αληθή. Το λογικό Ή (OR) παριστάνεται με. Η παράσταση Α Β δίνει αποτέλεσμα αληθές αν είτε το Α είτε το Β είναι αληθές, ή και τα δύο. Αλλιώς δίνει ψευδές. Το λογικό ΟΧΙ (NOT) παριστάνεται με!. Η παράσταση!α δίνει αποτέλεσμα αληθές αν και μόνο αν και το Α είναι ψευδές. Για τη C, το ψευδές συμβολίζεται με μηδέν (0), ενώ το αληθές με τη μονάδα (1). Συνεπώς η παράσταση 5>2 έχει τιμή (αποτέλεσμα) 1. Επίσης οποιαδήποτε μη μηδενική τιμή θεωρείται αληθής, π.χ. 6 &&7 δίνει 1, ενώ 6&&0 δίνει 0. Οι Τελεστές Μοναδιαίας Αύξησης ++ και Μείωσης -- μπορεί να εμφανιστούν μέσα σε μια παράσταση και να συνοδεύουν μια μεταβλητή. Ο τελεστής αύξησης (++) αυξάνει κατά ένα την τιμή της μεταβλητής την οποία συνοδεύει, ενώ ο -- τη μειώνει κατά μια μονάδα. Οι τελεστές αυτοί υπάρχουν σε δύο μορφές : Το ++ ή το -- μπορεί να βρίσκεται: Α) πριν από την επηρεαζόμενη μεταβλητή, π.χ. ++n, (προθεματικός), οπότε αλλάζει την τιμή της μεταβλητής πριν να γίνει ο υπολογισμός της παράστασης, B) μετά απ αυτήν, π.χ. n++, οπότε ονομάζεται επιθεματικός τελεστής, οπότε υπολογίζεται πρώτα η παράσταση και μετά γίνεται η αλλαγή τιμής της μεταβλητής. Η διαφορά φαίνεται παρακάτω: int p=5, n=10; // αρχικοποίηση y = p++ * --n; πρώτα αλλάζει η τιμή του n (γιατί έχει προθεματικό --) και γίνεται 9, μετά γίνεται η πράξη y=p*n=5*9=45, και μετά γίνεται η p++ δηλαδή p=p+1=6. Παρατηρήσεις: Οι τελεστές αύξησης και μείωσης έχουν υψηλή προτεραιότητα και μόνο οι παρενθέσεις έχουν υψηλότερη. ΠΡΟΣΟΧΗ: η έκφραση n++ είναι ισοδύναμη με την n=n+1 και όχι με την n+1. Είναι ένα λάθος που κάνουν συχνότατα οι αρχάριοι προγραμματιστές της C. Δεν πρέπει να χρησιμοποιούμε τελεστές αύξησης ή μείωσης σε μεταβλητή που εμφανίζεται περισσότερες από μία φορές σε μια έκφραση, π.χ. y = ++n + 2*n γιατί δεν μπορούμε να είμαστε σίγουροι για το αποτέλεσμα. Οι Προτεραιότητες των Τελεστών Στα μαθηματικά οι αριθμητικοί τελεστές έχουν διαφορετική προτεραιότητα μεταξύ τους όταν βρίσκονται πολλοί σε μια παράσταση χωρίς παρενθέσεις. Για παράδειγμα, ο πολλαπλασιασμός και η διαίρεση έχουν υψηλότερη προτεραιότητα από την πρόσθεση και την αφαίρεση. Αν 2 τελεστές διαίρεσης ή πολλ/μού βρίσκονται στην ίδια έκφραση, αφού έχουν ίδια προτεραιότητα, ο κανόνας λέει ότι εκτελούνται οι πράξεις από αριστερά προς τα δεξιά. Έτσι και η C τοποθετεί κάθε τελεστή σε κάποιο επίπεδο προτεραιότητας. Τα επίπεδα προτεραιότητας των τελεστών φαίνονται παρακάτω:

13 13 ( )! * / % + - < <= > >= ==!= && = Ψηλότερα στον πίνακα σημαίνει υψηλότερη προτεραιότητα. Προφανώς οι παρενθέσεις έχουν την υψηλότερη από όλους, οπότε τις χρησιμοποιούμε αν δεν είμαστε βέβαιοι για τη σειρά εκτέλεσης των πράξεων. Επίσης έτσι ο κώδικας γίνεται πιο ευανάγνωστος. Το βέλος δείχνει την σειρά εκτέλεσης μεταξύ τελεστών με ίδια προτεραιότητα. Αν υπάρχουν μέσα στην έκφραση τελεστές στο ίδιο επίπεδο, ισχύει γενικά προτεραιότητα από αριστερά προς τα δεξιά (εκτός του τελεστή ανάθεσης: πχ. x = y = 1 πρώτα y=1 και μετά x=1) και των τελεστών μοναδιαίας μεταβολής (++, --) και του προσήμου (-) Παράδειγμα: x=5>3&&9==8; σημαίνει: x= ( (5 μεγαλύτερο 3) ΚΑΙ (9 ίσο με 8) ) άρα ψευδές, άρα το x θα γίνει μηδέν. Υπονοούμενες Μετατροπές Τύπου (σε εκφράσεις) Στη C μπορούμε να έχουμε μια αριθμητική παράσταση με μεταβλητές και σταθερές διαφορετικών τύπων δεδομένων. Η C χρησιμοποιεί ορισμένους κανόνες για να μετατρέψει αυτόματα τους τύπους και να δώσει αποτέλεσμα: 1. Όταν εμφανίζονται σε εκφράσεις ο τύπος char και ο τύπος short, με πρόσημο ή χωρίς, αυτόματα μετατρέπονται σε τύπο int. 2. Σε κάθε πράξη όπου εμπλέκονται δύο τύποι, οι δύο τιμές μετατρέπονται στον τύπο αυτής με τον "υψηλότερο" βαθμό. 3. Η ιεραρχία των τύπων από τους υψηλότερους προς τους χαμηλότερους είναι η εξής : long double, double, float, unsigned long, long, unsigned int και int. 4. Σε μια εντολή ανάθεσης το τελικό αποτέλεσμα των υπολογισμών μετατρέπεται στον τύπο της μεταβλητής στην οποία καταχωρήθηκε η τιμή. Έτσι, όμως, μπορεί μια τιμή να μετατραπεί σε τύπο χαμηλότερου βαθμού, όταν π.χ. καταχωρούμε τύπο float σε τύπο int και γίνεται, όπως είδαμε, αποκοπή του δεκαδικού μέρους. Ρητές μετατροπές τύπου (Τελεστής «Εκμαγείο», Cast) Όλες οι μετατροπές τύπων που αναφέραμε μέχρι τώρα γίνονται αυτόματα. Όμως, είναι πιθανό να θέλουμε να δώσουμε εμείς τις οδηγίες για την ακριβή μετατροπή του τύπου που θέλουμε. Η μέθοδος αυτή λέγεται εκμαγείο ή ρητή μετατροπή (cast) και συνίσταται στην τοποθέτηση μπροστά από την μεταβλητή (ή μια σταθερά, ή μια παράσταση μέσα σε παρενθέσεις), του επιθυμούμενου τύπου μέσα σε παρενθέσεις. Οι παρενθέσεις μαζί με το όνομα του τύπου αποτελούν τον τελεστή-εκμαγείο. Παρατηρήστε τα παραδείγματα: int m; float x, a=1.5; m = ; // τo m γίνεται 3, δηλ. το ακέραιο μέρος του 3.3 m = (int) (int) a; //το m γίνεται 1+1=2 x = (int) a*a; // 1*1.5 = 1.5, άρα το x γίνεται 1.5 x = (int) (a*a); // 1.5*1.5=2.25, άρα το x γίνεται 2.0

14 14 ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ ΑΣΚΗΣΗ 3.1. Τί θα εκτυπώσει ο παρακάτω κώδικας; Πρίν το τρέξετε (συμπληρώστε ότι χρειάζεται), γράψτε στο τετράδιό σας τί πιστεύετε ότι θα εκτυπωθεί, γραμμή προς γραμμή. Επίσης τις (αριθμητικές ή/και λογικές) πράξεις που κάνατε, καθώς και τις αλλαγές τιμών των μεταβλητών που τυχόν συμβαίνουν. int i=1, j=2, k=3, p; float x=3, y=5; printf("a. %f\n", i+j/x*y); printf("b. %f\n", k/j*++y); printf("c. y=%f, x=%f, x=%f\n", y, x++, x); printf("d. x=%f\n", x); printf("e. %i\n", j>i); printf("f. %d\n", j>i&&!x>=--y); p =!x==0; printf("g. p=%d\n",p); ΑΣΚΗΣΗ 3.2. Υλοποιήστε πρόγραμμα σε C το οποίο: Α) Να ζητά από το χρήστη δύο πραγματικούς αριθμούς στο διάστημα [10,100), πρώτα το μεγαλύτερο και μετά το μικρότερο. Αφού τους δώσει ο χρήστης (θεωρήστε, για τις εκτυπώσεις, ότι οι 2 αριθμοί έχουν διψήφιο ακέραιο μέρος και μονοψήφιο δεκαδικό μέρος), το πρόγραμμα: Β) Να απαντά πόσο είναι το ακέραιο μέρος και ποιο το δεκαδικό μέρος για καθέναν αναλυτικά. Γ) Να εκτελεί και να εκτυπώνει τις 4 αριθμητικές πράξεις μεταξύ τους, καθώς και το ακέραιο πηλίκο και το υπόλοιπο της διαίρεσης των ακέραιων μερών τους. Θεωρήστε 2 δεκαδικά ψηφία για τις εκτυπώσεις των αποτελεσμάτων. Ακολουθεί παράδειγμα επιθυμητής συμπεριφοράς της αλληλεπίδρασης προγράμματος χρήστη: Please enter the bigger of the two numbers: 40.7 Please enter the smaller of the two numbers: 10.3 The integer part of 40.7 is 40 and its fractional part is 0.7. The integer part of 10.3 is 10 and its fractional part is = = x 10.3 = / 10.3 = / 10 = 4 and the remainder is 0

15 15 Ενότητα 4. Η Δομή Ελέγχου if Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Γενική Μορφή: if (συνθήκη_1) ακολουθία_εντολών_1 else if (συνθήκη_2) ακολουθία_εντολών_2 else if (συνθήκη_3) ακολουθία_εντολών_3.. else ακολουθία_εντολών_0 επόμενη_εντολή_προγράμματος Αν ισχύει η συνθήκη_1 εκτελείται μόνο η ακολουθία_εντολών_1 και μετά εκτελείται η επόμενη_εντολή_προγράμματος Αν δεν ισχύει η ισχύει η συνθήκη_1 εξετάζεται η συνθήκη_2. Αν ισχύει, εκτελείται μόνο η ακολουθία_εντολών_2 και μετά εκτελείται η επόμενη_εντολή_προγράμματος, κ.ο.κ. Αν δεν ισχύει καμμιά από τις προηγούμενες συνθήκες τότε εκτελείται η ακολουθία_εντολών_0 και μετά εκτελείται η επόμενη_εντολή_προγράμματος. Παρατηρήσεις: 1. Μόνο η γραμμή της if (η 1η) είναι υποχρεωτική. Δηλ, ο προγραμματιστής κρίνει αν χρειάζεται να μπει else ή/και ένα ή περισσότερα else if. 2. Όλος ο κώδικας από το if έως και το else ή, αν δεν υπάρχει else, έως και το τελευταίο else if. είναι μία και μόνο εντολή της C, η οποία δεν τελειώνει με ';'. 3. Οι παρενθέσεις που περιβάλλουν τη συνθήκη είναι υποχρεωτικές. 4. Τα άγκιστρα είναι προαιρετικά αν και μόνο αν η ακολουθία_εντολών είναι μόνο μια εντολή. Ας δούμε παραδείγματα: Η απλούστερη περίπτωση: Η εντολή if ελέγχει τη συνθήκη και αν αυτή είναι αληθής, τότε εκτελείται μια εντολή. Αν είναι ψευδής, δεν εκτελείται, και το πρόγραμμα συνεχίζει κανονικά παρακάτω. Αν θέλουμε, στην περίπτωση που δεν ισχύει η συνθήκη, να γίνει κάτι άλλο, προσθέτουμε το else. Ο διπλανός έλεγχος εκτυπώνει αν ένας μαθητής πέρασε τις εξετάσεις ή όχι, με βάση το 5: if (thermokrasia < 0) printf("it s freezing!\n"); if (apotelesma >= 5.0) printf("perase\n"); else printf("apetyxe\n"); Αν θέλουμε να έχουμε περισσότερες από μια εντολές μετά το if ή το else, πρέπει να είναι ομαδοποιημένες μέσα σε άγκιστρα. Μια τέτοια ομαδοποίηση ονομάζεται block. Μια εντολή σε ένα block μπορεί να είναι οποιαδήποτε εντολή της C, ακόμα κι άλλη if, απλή ή σύνθετη. Παρατήρηση: Πολλοί προγραμματιστές βάζουν πάντα άγκιστρα, ακόμα κι αν το block αποτελείται από μόνο μια εντολή, για λόγους ομοιομορφίας. Παρατήρηση: Η συνθήκη μπορεί να μην είναι Λογική, με την έννοια ότι δίνει αληθή ή ψευδή τιμή, αλλά αριθμητική παράσταση. Τότε, αν έχει τιμή μηδέν, είναι ψευδής. Σε κάθε άλλη περίπτωση είναι αληθής. Π.χ. η εντολή if (5-6) printf("weird!\n"); είναι συντακτικά σωστή, η τιμή της συνθήκης είναι -1, άρα αληθής και άρα θα εκτυπώσει!

16 Προσοχή - Συχνά Λάθη: Α) Η συνθήκη μπαίνει πάντα μέσα σε παρένθεση! Μέσα σε αυτή πιθανά να χρειαστεί να βάλουμε κι άλλες παρενθέσεις, για να ορίσουμε την επιθυμητή προτεραιότητα των πράξεων Β) Η if δεν τελειώνει με το ελληνικό ερωτηματικό (;). Αν το βάλουμε κατά λάθος, δεν είναι συντακτικό λάθος (κι αυτό είναι επικίνδυνο, γιατί δεν to "χτυπάει" ο compiler), αλλά είναι σα να λέμε: Αν ισχύει η συνθήκη, εκτέλεσε την κενή εντολή δηλ. αυτή που δεν κάνει τίποτα. 16 if (result >= 5.0) printf("passed\n"); printf("congratulations\n") else printf("failed\n"); printf("good luck in the resit\n"); Μερικές φορές θα θέλαμε να κάνουμε μια επιλογή ανάμεσα σε πολλές συνθήκες. Ο πιο γενικός τρόπος για να το πετύχουμε είναι να χρησιμοποιήσουμε την παραλλαγή else if της εντολής if. Λειτουργεί κάνοντας πολλές συγκρίσεις. Μόλις κάποια από αυτές δώσει κάποιο αληθές αποτέλεσμα, εκτελείται η επόμενη εντολή και δεν γίνονται περισσότεροι έλεγχοι. Στο επόμενο παράδειγμα το πρόγραμμα δίνει αποτέλεσμα και χαρακτηρισμό ανάλογα με το βαθμό: if (result > 10 result<0) printf("grade should be between 0 and 10!\n"); else if (result >= 8.5) printf("passed: ARISTA!\n"); else if (result >= 6.5) printf("passed: POLY KALA\n"); else if (result >= 5.0) printf("passed: KALA\n"); if (result == 5) printf("alla... ORIAKA\n"); else printf("failed\n"); if (result == 0) printf("leykh KOLLA???\n"); ΠΑΡΑΤΗΡΗΣΗ 1: Αν αντί για το 2 ο «else if» είχαμε βάλει σκέτο if, στην περίπτωση που ο βαθμός θα ήταν 9, θα εκτυπωνόταν και το ΑΡΙΣΤΑ και το ΠΟΛΥ ΚΑΛΑ. Αυτό είναι ένα παράδειγμα λογικού λάθους. Δεν το ανιχνεύει φυσικά ο compiler, ούτε θα φαινόταν το λάθος στην εκτέλεση, παρά μόνο αν εισάγουμε τιμή από 8.5 και πάνω! Γι αυτό και πρέπει να ελέγχουμε τη συμπεριφορά κάθε προγράμματος δοκιμάζοντας ποικίλες τιμές των δεδομένων εισόδου. ΠΑΡΑΤΗΡΗΣΗ 2: Στο block εντολών το 2 ου «else if», καθώς και του else, υπάρχει ένα ακόμη if, αφού κάθε εντολή του block μπορεί να είναι οποιαδήποτε εντολή της C, άρα και μια if. Αυτό ονομάζεται εμφωλιασμένο (nested) if αλλά ακολουθεί κανονικά τον τρόπο σύνταξης if, σύμφωνα με τα παραπάνω.

17 ΕΡΓΑΣΤΗΡΙΑΚΕΣ AΣKHΣΕΙΣ ΑΣΚΗΣΗ 4.1. Να γραφεί πρόγραμμα σε C που θα διαβάζει τρεις ακεραίους αριθμούς και θα βρίσκει και θα εμφανίζει τον μεγαλύτερο από αυτούς. 17 ΑΣΚΗΣΗ 4.2. Να γραφεί πρόγραμμα σε C που θα διαβάζει ένα αριθμό από το πληκτρολόγιο και θα απαντά σε μία πρόταση: Α) Αν είναι θετικός ή αρνητικός ή μηδέν Β) Εάν είναι ακέραιος ή όχι, και, εάν είναι, θα απαντά αν είναι άρτιος (even) ή περιττός (odd). Υπόδειξη: Υλοποιήστε πρώτα το μέρος (Α) και εφόσον λειτουργεί σωστά, προχωρήστε στο (Β). Παράδειγμα αλληλεπίδρασης προγράμματος με το χρήστη: Enter a number: -23 The number -23 is a negative integer and it is odd. ΑΣΚΗΣΗ 4.3. Να γραφεί πρόγραμμα σε C που θα βρίσκει αν ένας ακέραιος αριθμός που θα εισαχθεί από το χρήστη είναι περιττός διψήφιος και διαιρείται ακριβώς με το 11 ή το 7 αλλά όχι με το 5 ή το 9. Για να ελέγξετε την ορθή λειτουργία του προγράμματος εισάγετε τα παρακάτω παραδείγματα ελέγχου: 7, 70, 55: δεν ισχύει η συνθήκη. 33, 21: Ισχύει.

18 18 1. Βρόχοι με while, do-while και for 2. Μετρητής, Αθροιστής, Πολλαπλασιαστής 3. Οι εντολές ελέγχου break, continue και goto 5.1. Βρόχοι (Loops) Ενότητα 5. Δομές Επανάληψης Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών πολλές φορές, τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται από το αν ισχύει μια συγκεκριμένη συνθήκη. Στη C υπάρχουν τρεις τύποι βρόχων: (Α) while, (Β) do while, και (Γ) for. Ακολουθεί η σύνταξη για κάθε μια: while (συνθήκη) ακολουθία_εντολών Αν ισχύει η συνθήκη, θα εκτελεστεί η ακολουθία_εντολών και για όσο ισχύει η συνθήκη, θα ξαναεκτελείται η ακολουθία_εντολών. Αν η συνθήκη αρχικά είναι ψευδής, η ακολουθία_εντολών δεν θα τρέξει καθόλου. do ακολουθία_εντολών while (συνθήκη); Εκτελείται η ακολουθία_εντολών και αν και για όσο ισχύει η συνθήκη, θα ξαναεκτελείται η ακολουθία_εντολών. Δηλαδή η ακολουθία_εντολών θα εκτελεστεί τουλάχιστον μια φορά. for (ανάθεση_αρχικοποίηση ; συνθήκη ; ανάθεση_μεταβολή) ακολουθία_εντολών Εκτελείται μία μόνο φορά η ανάθεση_αρχικοποίηση (συνήθως δίνει αρχική τιμή σε μια μεταβλητή που λέγεται μεταβλητή ελέγχου). Στη συνέχεια, αν ισχύει η συνθήκη, θα εκτελεστεί η ακολουθία_εντολών και μετά η ανάθεση_μεταβολή, η οποία συνήθως αυξάνει ή μειώνει τη μεταβλητή ελέγχου κατά ένα σταθερό "βήμα". για όσο ισχύει η συνθήκη, θα ξαναεκτελείται η ακολουθία_εντολών και ακολούθως η ανάθεση_μεταβολή. ΠΑΡΑΤΗΡΗΣΕΙΣ: Όπως και στην περίπτωση της if, αν η ακολουθία εντολών είναι μόνο μια εντολή, τα άγκιστρα είναι προαιρετικά. Η παρένθεση είναι υποχρεωτική. Προσοχή στο ';' της do while ( ) ; H for και η while δεν τελειώνουν με ';' Ο βρόχος for χρησιμοποιείται συνήθως όταν το πρόγραμμα γνωρίζει από πριν πόσες φορές θα εκτελεστεί το μπλοκ εντολών. Απλό παράδειγμα: for (i=10 ; i<100 ; i++) printf( %d\t, i); Εκτυπώνει όλους τους διψήφιους θετικούς ακεραίους.ο βρόχος for λειτουργεί καλά όπου ο αριθμός των επαναλήψεων είναι γνωστός πριν την είσοδο στο βρόχο. Η κεφαλή του βρόχου αποτελείται από τρία μέρη χωρισμένα με ερωτηματικό. 1. Το πρώτο εκτελείται πριν την είσοδο στο βρόχο. Συνήθως δίνει μια αρχική τιμή σε μια μεταβλητή. 2. Το δεύτερο είναι μια συνθήκη. Ο βρόχος τρέχει για όσο η συνθήκη ικανοποιείται (είναι αληθής). Συνήθως η συνθήκη ελέγχει αν η τιμή της μεταβλητής του (1) βρίσκεται στο επιθυμητό διάστημα. 3. Το τρίτο είναι μια εντολή, η οποία τρέχει κάθε φορά που τελειώνει το σώμα των εντολών του βρόχου. Συνήθως είναι μια εντολή μεταβολής της μεταβλητής (π.χ. i++ ή j = j 2, κλπ.).

19 19 Καθένα από τα 3 αυτά μέρη-εντολές στην κεφαλή του βρόχου for συνήθως κάνει ένα πράγμα, ωστόσο μπορεί να είναι και κενό. Π.χ. κενή τρίτη εντολή σημαίνει ότι δεν υπάρχει μεταβολή του μετρητή. Αυτό προκαλεί την επ' άπειρο εκτέλεση του βρόχου, εκτός αν διακοπεί με κάποιο άλλο τρόπο, π.χ. με μια εντολή break. Είναι επίσης δυνατό να στριμώξουμε πολλές μεταβλητές μαζί στην πρώτη ή στην τρίτη θέση, χωρίζοντάς τες με κόμμα. Αυτό επιτρέπει στο βρόχο να ελέγχει περισσότερες από μία μεταβλητές. Στο παρακάτω παράδειγμα φαίνεται ο ορισμός ενός τέτοιου βρόχου, με τις μεταβλητές hi και lo να ξεκινούν από το 100 και το 0 αντιστοίχως και να τείνουν στο ίδιο σημείο. for (hi = 100, lo = 0; hi >= lo; hi--, lo++) Ο βρόχος for είναι εξαιρετικά ελαστικός και επιτρέπει πολλούς τύπους συμπεριφοράς του προγράμματος να καθορίζονται με απλό και γρήγορο τρόπο Στο παράδειγμα υπολογίζεται η τιμή της σειράς λαμβάνοντας υπόψη τους ΜΑΧ πρώτους όρους, όπου του ΜΑΧ έχει οριστεί ως σταθερά. Σε κάθε επανάληψη, εκτελείται το σώμα εντολών του βρόχου: υπολογίζεται ο παρονομαστής του τρέχοντος κλάσματος, υπολογίζεται το νέο άθροισμα, και εκτυπώνονται σε μια γραμμή, μαζί με τον αύξοντα αριθμό της επανάληψης, ώστε ο χρήστης να έχει εικόνα για την εξέλιξη της εκτέλεσης του προγράμματος. ΠΑΡΑΔΕΙΓΜΑ: for( ; ; ) long unsigned int paronomastis=1, i, MAX=20; double athroisma = 0; for (i=1;i<=max;i++) paronomastis=paronomastis*2; athroisma = athroisma + 1./paronomastis; printf("%2i. 1/%12d --> %.16f\n", i,paronomastis, athroisma); printf("to athroisma einai %.16f.\n", athroisma); for, while ή do-while? 5.2 Ένα παράδειγμα με χρήση μετρητή, αθροιστή, πολλαπλασιαστή ΠΑΡΑΔΕΙΓΜΑ 1: Να υλοποιηθεί πρόγραμμα σε C στο οποίο ο χρήστης να εισάγει πραγματικούς αριθμούς και το πρόγραμμα να βρίσκει το άθροισμα, το γινόμενο και το πλήθος των αριθμών αυτών. Η εισαγωγή αριθμών θα σταματήσει όταν ο χρήστης θα δώσει 0 ή 1, οπότε το πρόγραμμα θα εκτυπώσει τα αποτελέσματα και θα τερματίσει. (Δηλ. το 0 ή το 1 που θα δώσει για τον τερματισμό να μη ληφθούν υπόψη στο άθροισμα, το γινόμενο και την καταμέτρηση). Τρόπος Σκέψης: Για τη μέτρηση των αριθμών θα χρησιμοποιήσουμε μετρητή, δηλ μια μεταβλητή που θα αρχικοποιείται με μηδενική τιμή και κάθε φορά που θα εισάγεται ένας έγκυρος αριθμός, ο μετρητής θα αυξάνει κατά ένα. Παρομοίως, για το άθροισμα θα χρησιμοποιήσουμε αθροιστή, δηλ μια μεταβλητή που θα αρχικοποιείται με μηδενική τιμή και κάθε φορά που θα εισάγεται ένας έγκυρος αριθμός ο αριθμός αυτός θα προστίθεται στον αθροιστή. Παρόμοια, για το γινόμενο θα χρησιμοποιήσουμε πολλαπλασιαστή, δηλ. μια μεταβλητή που θα αρχικοποιείται στη μονάδα και κάθε φορά που θα εισάγεται ένας έγκυρος αριθμός ο αριθμός αυτός θα πολλαπλασιάζεται με τον πολλαπλασιαστή και το αποτέλεσμα θα αποθηκεύεται στον πολλαπλασιαστή.

20 Για τον τύπο του βρόχου σκεφτόμαστε ως εξής: Το πρόγραμμα γνωρίζει τον αριθμό των επαναλήψεων πριν μπει στο βρόχο; Όχι, γιατί είναι επιλογή του χρήστη της στιγμής. Άρα δεν χρησιμοποιούμε for. Είναι σίγουρο ότι θα γίνουν υπολογισμοί έστω και μια φορά; Όχι διότι μπορεί να δώσει από την αρχή 0 ή 1, οπότε δεν πρέπει να γίνουν οι 3 πράξεις ούτε μια φορά. Άρα θα χρησιμοποιήσουμε while do, δηλ. για όσο ο χρήστης δεν δίνει 0 ούτε δίνει 1, να εκτελούνται οι 3 πράξεις: #include <stdio.h> #include <stdlib.h> int main() float ginomeno=1, sum=0, a=-1; int count = 0; printf("enter numbers to calculate their sum and their product. ", "Enter 0 or 1 to stop:\n"); printf("enter a number: "); scanf("%f",&a); while (a!=1 && a!=0) count++; sum = sum + a; ginomeno = ginomeno * a; printf("enter a number: "); scanf("%f",&a); printf("to plithos einai %d.\n", count); printf("to athroisma einai %f.\n", sum); printf("to ginomeno einai %f.\n", ginomeno); system("pause"); return 0; Το μειονέκτημα είναι ότι έχουμε επανάληψη του ζεύγους printf-scanf. Ας δούμε τι θα γίνει αν το υλοποιήσουμε με do - while. Για να μη γίνουν οι πράξεις στην περίπτωση του 1 ή 0, πρέπει να βάλουμε if και να επαναλάβουμε τη συνθήκη: #include <stdio.h> #include <stdlib.h> int main() float ginomeno=1, sum=0, a=-1; int count = 0; printf("enter numbers to calculate their sum and their product. ", "Enter 0 or 1 to stop:\n"); do printf("enter a number: "); scanf("%f",&a); if(a!=1 && a!=0) count++; sum = sum + a; ginomeno = ginomeno * a; while (a!=1 && a!=0); printf("to plithos einai %d.\n", count); printf("to athroisma einai %f.\n", sum); 20

21 21 printf("to ginomeno einai %f.\n", ginomeno); system("pause"); return 0; Και οι 2 τρόποι δίνουν σωστό αποτέλεσμα σε κάθε περίπτωση, άρα θεωρούνται εξίσου σωστές λύσεις Η εντολή break Η εντολή break; χρησιμοποιείται για έξοδο από ένα βρόχο. Όταν εκτελεστεί μια break με τον έλεγχο να περνά στην πρώτη εντολή μετά το βρόχο. Με τους βρόχους, η break μπορεί να χρησιμοποιηθεί ώστε να επιβάλει πρόωρη έξοδο από το βρόχο ή για την υλοποίηση ενός βρόχου με μια συνθήκη εξόδου στη μέση του βρόχου. Μια break σε ένα βρόχο συνήθως βρίσκεται μέσα σε μια εντολή if που παρέχει τη συνθήκη για την προαιρετική έξοδο. Δείτε μια πιο οικονομική λύση του Παραδείγματος 1 με τη χρήση της break: #include <stdio.h> #include <stdlib.h> int main() float ginomeno=1, sum=0, a=-1; int count = 0; printf("enter numbers to calculate their sum and their product. ", "Enter 0 or 1 to stop:\n"); do printf("enter a number: "); scanf("%f",&a); if(a==1 a==0) break; count++; sum = sum + a; ginomeno = ginomeno * a; while (a!=1 && a!=0); printf("to plithos einai %d.\n", count); printf("to athroisma einai %f.\n", sum); printf("to ginomeno einai %f.\n", ginomeno); system("pause"); return 0; Η εντολή continue Λειτουργεί μόνο μέσα σε βρόχους. Αν εκτελεστεί μια continue; οι υπόλοιπες εντολές μέχρι το τέλος του βρόχου δεν εκτελούνται αλλά ξεκινάει η επόμενη επανάληψη του βρόχου. Οπως και η break, έτσι και η continue συνήθως βρίσκεται μέσα σε μια εντολή if που παρέχει τη συνθήκη, η οποία, αν είναι αληθής, οι υπόλοιπες εντολές του βρόχου δεν θα εκτελεστούν Η εντολή goto Η C διαθέτει και την εντολή goto η οποία επιτρέπει άλματα προς οποιαδήποτε εντολή, (της οποίας προηγείται μια ετικέττα και άνω κάτω τελεία). Αν χρησιμοποιείται αλόγιστα, καταστρέφει την δόμηση του κώδικα. («Ο δομημένος κώδικας απαρτίζεται από κατασκευές που κάθε μία έχει μια είσοδο και μια έξοδο και συνδέονται ακολουθιακά.»). Δεν θα τη χρειαστούμε. Μπορεί όμως να «βολέψει» σε «βαθιά» εμφωλευμένο βρόχο όπου θέλουμε να βγούμε έξω από τον πιο εξωτερικό βρόχο αν συμβεί μια ειδική συνθήκη, καθώς η break μάς

22 22 βγάζει μόνο από τον βρόχο στον οποίο βρισκόμαστε. Π.χ.: for( ; ; ) for( ; ; ).. if ( ) goto out1; out1: printf( got outside the loop\n ); Άσκηση 5.1. ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ Το πρόγραμμα να ζητά από το χρήστη κάποιους αριθμούς (Το πλήθος των αριθμών αυτών θα έχει ζητηθεί και δοθεί προηγουμένως από το χρήστη), των οποίων θα υπολογίζει στη συνέχεια και θα εκτυπώνει το άθροισμα, το γινόμενο, τον μέγιστο, τον ελάχιστο και το μέσο όρο τους, καθώς και το πλήθος των αρνητικών αριθμών. Ασκηση Να υπολογιστεί ο π ως άθροισμα της σειράς Να χρησιμοποιηθούν: (Α) Οι Ν πρώτοι όροι (το Ν να ορίζεται με #define), όπου Ν=100. (Β) Όσοι όροι χρειάζεται ώστε η διαφορά του τελευταίου από τον προ-προηγούμενο να είναι μικρότερη του Για κάθε νέο όρο να εκτυπώνεται ο αύξων αριθμός του, η τιμή του, καθώς και η τρέχουσα εκτίμηση του π σε μια γραμμή. Ασκηση 5.3. Να γραφεί πρόγραμμα σε C που να υπολογίζει το παραγοντικό ενός ακεραίου αριθμού τον οποίο θα δίνει ο χρήστης από το πληκτρολόγιο.

23 ΕΠΔΟ ΤΕΙ Μεσολογγίου - Προγραμματισμός Η/Υ Ι (Ε) Ενότητα 8. Οι Δομές στη C 23 Ενότητα 6. Πίνακες (Arrays) Με τους πίνακες δεσμεύουμε ταυτόχρονα πολλές θέσεις στη μνήμη είναι σαν να δηλώνουμε πολλές μεταβλητές με μία δήλωση. Άρα όλα τα στοιχεία του πίνακα είναι του ίδιου τύπου. Η προσπέλαση στα στοιχεία αυτά, δηλ, η εγγραφή ή ανάγνωση του περιεχομένου μιας τέτοιας θέσης γίνεται μέσω μιας μεταβλητής (που φέρει το όνομα του πίνακα) με τον αριθμό θέσης του στοιχείου να μπαίνει μέσα σε αγκύλες [ ]. Οι αριθμοί θέσης δείχνουν δηλαδή τις συντεταγμένες του στοιχείου, με μια σημαντική διαφορά σε σχέση με τον αντίστοιχο συμβολισμό της γραμμικής άλγεβρας: ΠΡΟΣΟΧΗ: Στη C το πρώτο στοιχείο, η πρώτη γραμμή, στήλη, κλπ. φέρει τον αριθμό θέσης 0, το 2ο το αριθμό θέσης 1 και το n-οστό στοιχείο τον αριθμό θέσης n-1. Αν ο πίνακας είναι μονοδιάστατος, προφανώς ο αριθμός θέσης είναι ένας, αν είναι διδιάστατος έχει 2 αριθμούς θέσης, καθένας μέσα στις δικές του αγκύλες, κλπ 6.1 Μονοδιάστατοι Πίνακες Παρακάτω δηλώνουμε ένα μονοδιάστατο πίνακα με όνομα grade, 5 θέσεων που περιέχει 5 πραγματικούς αριθμούς: float grade [5]; Χρησιμεύουν για να αναπαραστήσουμε ένα σύνολο ομοειδών τιμών, π.χ. βαθμοί ενός μαθητή, θερμοκρασίες μιας πόλης στο χρόνο, κλπ Ταυτόχρονα με τη δήλωση μπορούμε προαιρετικά και να αρχικοποιήσουμε τον πίνακα, π.χ. ως εξής: float grade[5] = 10, 8, 12.5, 15.5, 14; Στην παρακάτω εικόνα φαίνεται σχηματικά ο τρόπος προσπέλασης των στοιχείων του πίνακα. Δήλωση μονοδιάστατου πίνακα: float grade[5] grade grade[0] grade[1] grade[2] grade[3] grade[4] Τα στοιχεία του πίνακα τα χρησιμοποιούμε όπως ακριβώς θα χρησιμοποιούσαμε οποιαδήποτε μεταβλητή, π.χ. int x, y; int j = 1 ; x = grade[3]*2; y= (grade[i]+10)/5; grade[3] = 14; grade[j] = grade[j+1] + 10; Για να διατρέξουμε όλα τα στοιχεία ενός πίνακα μπορούμε να χρησιμοποιήσουμε μία επανάληψη με for( ; ; ) η οποία κάθε φορά θα προσπελαύνει διαφορετικό στοιχείο.

24 ΕΠΔΟ ΤΕΙ Μεσολογγίου - Προγραμματισμός Η/Υ Ι (Ε) Ενότητα 8. Οι Δομές στη C 24 ΠΑΡΑΔΕΙΓΜΑ 1 Το παρακάτω πρόγραμμα θέτει στα 20 στοιχεία του πίνακα ακεραίων zero μηδενικές τιμές, ενώ στα 20 στοιχεία του πίνακα ακεραίων matr θέτει διαδοχικές τιμές, αρχίζοντας από το 100. Στη συνέχεια εκτυπώνει τον κάθε πίνακα σε μια γραμμή: #include <stdio.h> int main () int matr[20], zero[20]; int i, k=100; for (i=0; i<20; i++) zero[i] = 0; matr[i] = k++; printf("matr="); for (i=0; i<20; i++) printf ("%d ", matr[i]); printf("\nzero="); for (i=0; i<20; i++) printf ("%d ", zero[i]); printf("\n"); system("pause"); return 0; Στο επόμενο παράδειγμα, ο χρήστης εισάγει τα στοιχεία ενός πίνακα ακεραίων 10 θέσεων. Έπειτα εμφανίζει: Α. Τα στοιχεία του πίνακα που βρίσκονται στις περιττές (μονές) θέσεις του πίνακα. Β. Τα στοιχεία του πίνακα που έχουν περιττή τιμή. #include <stdio.h> #include <stdlib.h> int main() int i,a[10]; printf ("dose 10 akeraious arithmous pou tha mpoun se pinaka:\n"); for (i=0;i<10;i++) printf ("dose ton %do arithmo: a[%d]= ",i+1,i); scanf("%d", &a[i]); printf ("\nmones theseis:\n"); for (i=0;i<10;i++) if (i%2==1) printf ("a[%d]=%d\n",i,a[i]); printf ("\nmona stoixeia:\n"); for (i=0;i<10;i++) if (a[i]%2==1) printf ("a[%d]=%d\n",i,a[i]); system("pause"); return 0;

25 ΕΠΔΟ ΤΕΙ Μεσολογγίου - Προγραμματισμός Η/Υ Ι (Ε) Ενότητα 8. Οι Δομές στη C 25 ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ Άσκηση 6.1. Σε πίνακα ακεραίων 10 θέσεων το πρόγραμμα να βρίσκει: 1. πόσες φορές ξαναεμφανίζεται το 1ο στοιχείο του πίνακα. 2. ποιο είναι το μεγαλύτερο στοιχείο του πινακα. 3. πόσες φορές έχουμε σε γειτονικές θέσεις του πίνακα διαδοχικούς αριθμούς. 4. πόσους περιττους αριθμούς έχει ο πίνακας. Άσκηση 6.2. Να δημιουργηθούν 3 πίνακες ακεραίων 10 θέσεων ο καθένας. Ο 1ος θα γεμίζει αυτόματα με τους αριθμούς 1,2,3, Ο 2ος θα γεμίζει με αριθμούς που θα δίνει ο χρήστης με κατάλληλες προτροπές: ΕΙΣΑΓΩΓΗ ΣΤΟΙΧΕΙΩΝ 2 ου ΠΙΝΑΚΑ: Δώσε το 1ο στοιχείο: 5 Δώσε το 2ο στοιχείο: Δώσε το 10ο στοιχείο: -3 Ο 3ος πίνακας θα είναι το άθροισμα του 1ου και του 2ου. Μετά τη δημιουργία κάθε πίνακα, αυτός να εκτυπώνεται σε μία γραμμή, π.χ.: ΕΚΤΥΠΩΣΗ 1ου ΠΙΝΑΚΑ: Άσκηση 6.3. Ο χρήστης θα δώσει κάποιους πραγματικούς αριθμούς οι οποίοι θα τοποθετηθούν με τη σειρά στις πρώτες θέσεις ενός μονοδιάστατου πίνακα 100 θέσεων. Πριν δώσει τους αριθμούς το πρόγραμμα θα τον ρωτά για το πλήθος των αριθμών που πρόκειται να δώσει. Το πλήθος αυτό δεν μπορεί να υπερβαίνει το 100 (να δηλωθεί στην αρχή του προγράμματος με #define ως MAX). Ακολούθως το πρόγραμμα: Α) Θα εκτυπώνει τον πίνακα με αντίστροφη σειρά. Κάθε στοιχείο θα καταλαμβάνει μια γραμμή στην οθόνη και θα εμφανίζεται με συνολικά 10 ψηφία εκ των οποίων 2 δεκαδικά, στη μορφή: position 6: position 5: position 0: B) θα υπολογίζει τη μέση τιμή και τη διασπορά των στοιχείων του πίνακα. H διασπορά υπολογίζεται ως η μέση τιμή του (x i -M) 2, όπου Μ η μέση τιμή της μεταβλητής x i.

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

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

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

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

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

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

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Εργαστήριο 2: Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας Προγραμματισμού

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

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Εργαστήριο 4: 4.1 Η Δομή Ελέγχου if Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Γενική Μορφή: Παρατηρήσεις:

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια: Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται

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

ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C

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

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

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++ ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση του περιβάλλοντος Dev C++ το οποίο θα χρησιμοποιηθεί για την υλοποίηση

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

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

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

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

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

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

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

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

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

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

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

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

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

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for)

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for) 4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for) 4.1 Μετρητές Ένας μετρητής (counter) είναι μία μεταβλητή η οποία ξεκινά με μία αρχική τιμή και αυξάνεται κατά ένα κάθε φορά που εκτελείται. Ο αλγόριθμος για έναν μετρητή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ Κεφαλαία και μικρά γράμματα ελληνικού αλφαβήτου: Α Ω και α ω Κεφαλαία και μικρά γράμματα λατινικού αλφαβήτου: A Z και a z Αριθμητικά ψηφία: 0 9 Ειδικοί χαρακτήρες: + - * / =. ( ),! & κενός

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

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

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

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

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

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

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

5. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Β' μέρος: while - do..while)

5. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Β' μέρος: while - do..while) 5. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Β' μέρος: while - do..while) 5.1 Ο βρόχος while Η εντολή while παρέχει έναν μηχανισμό επανάληψης των δηλώσεων όσο μια συνθήκη είναι αληθινή. Χρησιμοποιείται όταν ο αριθμός των επαναλήψεων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2ο σετ σημειώσεων. 1 Εντολές εκτέλεσης υπό συνθήκη. 19 Μαρτίου 2012

2ο σετ σημειώσεων. 1 Εντολές εκτέλεσης υπό συνθήκη. 19 Μαρτίου 2012 ο σετ σημειώσεων 19 Μαρτίου 01 1 Εντολές εκτέλεσης υπό συνθήκη Μπορούμε να εκτελέσουμε εντολές της γλώσσας σε περίπτωση που κάποια συνθήκη ισχύει χρησιμοποιώντας την εντολή if. Συντάσσεται ως εξής: 1 if

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

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

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

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

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων Σκοπός της Άσκησης ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση µε τη χρήση πινάκων σαν διατάξεις αποθήκευσης δεδοµένων της Γλώσσας Προγραµµατισµού C. H συγκεκριµένη άσκηση

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

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

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

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

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

a = 10; a = k; int a,b,c; a = b = c = 10;

a = 10; a = k; int a,b,c; a = b = c = 10; C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

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

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

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

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

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

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

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης H ΓΛΩΣΣΑ C Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Α. Θεωρία 1. Κύκλος Ανάπτυξης Προγράµµατος 1. Συγγραφή και Μεταγλώττιση ενός προγράµµατος 2. Εκτέλεση του προγράµµατος

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

for for for for( . */

for for for for( . */ Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Τρίτη Διάλεξη Εντολές Επιλογής και Επανάληψης Εντολές επιλογής Εντολή if Η πιο απλή μορφή της if συντάσσεται ως εξής: if ( συνθήκη ) Οι εντολές μέσα στα άγκιστρα αποτελούν

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

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

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

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

Γλώσσα Προγραμματισμού C

Γλώσσα Προγραμματισμού C Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 5ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 Η ΕΝΤΟΛΗ for Με την εντολή for δημιουργούμε βρόχους επανάληψης σε

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

lab2 -Στην printf να βάζεις \n έτσι ώστε να αλλάζει γραµµή όποτε σου εµφανίζει κάποιο µήνυµα.

lab2 -Στην printf να βάζεις \n έτσι ώστε να αλλάζει γραµµή όποτε σου εµφανίζει κάποιο µήνυµα. Α. Μ. Βαθμός Σχόλιο 1183 lab2 - Πολύ καλή δουλειά κατά τα άλλα 1194 1238 1239 FAIL 1240 1241 1242 1243 1244 1245 1246 - πολύ καλό (*υπάρχουν οι τελεστές = ). Ο κώδικας είναι καλά σχολιασµένος -

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

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές: Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas

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

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

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

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

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Σύντομες εισαγωγικές σημειώσεις για την. Matlab Σύντομες εισαγωγικές σημειώσεις για την Matlab Δήλωση Μεταβλητών Για να εισάγει κανείς δεδομένα στη Matlab υπάρχουν πολλοί τρόποι. Ο πιο απλός είναι στη γραμμή εντολών να εισάγουμε αυτό που θέλουμε και

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

Λύσεις για τις ασκήσεις του lab5

Λύσεις για τις ασκήσεις του lab5 Εισαγωγή Λύσεις για τις ασκήσεις του lab5 Επειδή φάνηκε να υπάρχουν αρκετά προβλήματα σχετικά με τον τρόπο σκέψης για την επίλυση των προβλημάτων του lab5, θα συνοδεύσουμε τις λύσεις με αρκετές επεξηγήσεις,

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

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης Στο εργαστήριο αυτό, θα εξοικειωθούμε με τους τύπους δεδομένων που μας παρέχει η γλώσσα C, θα χρησιμοποιήσουμε τις δομές επανάληψης (for, while, do...while),

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

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

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

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

Προγραμματιστικό Περιβάλλον

Προγραμματιστικό Περιβάλλον Προγραμματιστικό Περιβάλλον Προγραμματίζοντας τις βασικές αριθμητικές πράξεις 2 ο Γυμνάσιο Παλλήνης Καθηγήτρια: Ευφροσύνη Σκιαδά Πρόσθεση Αφαίρεση Πολλαπλασιασμός Σύμβολα αριθμητικών πράξεων Διαίρεση Τι

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

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

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

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

ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ

ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η χρήση των βασικών τελεστών της Γλώσσας Προγραµµατισµού C : αριθµητικοί τελεστές, τελεστές

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

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

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

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

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL Δυνατότητα ανάπτυξης, μεταγλώττισης και εκτέλεσης προγραμμάτων στη PASCAL. Κατανόηση της σύνταξης των προτάσεων της PASCAL. Κατανόηση της εντολής εξόδου για

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

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

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

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι εντολές επανάληψης (while, do-while, for) Γενικά για τις εντολές επανάληψης Συχνά στο προγραμματισμό είναι επιθυμητή η πολλαπλή εκτέλεση μιας ενότητας εντολών, είτε για ένα

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

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

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

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

Προσέξτε πως η παράσταση μπορεί να περιλαμβάνει όχι μόνο μία τιμή ή μια άλλη μεταβλητή αλλά μια ολόκληρη μαθηματική παράσταση, όπως η εξής:

Προσέξτε πως η παράσταση μπορεί να περιλαμβάνει όχι μόνο μία τιμή ή μια άλλη μεταβλητή αλλά μια ολόκληρη μαθηματική παράσταση, όπως η εξής: Νικόλαος Μιχαλοδημητράκης Σημειώσεις C (Εργαστήριο) 3 ο Μέρος 3 ο Μέρος Παραστάσεις και Τελεστές Εντολή καταχώρησης Για να καταχωρήσουμε μία τιμή σε μια μεταβλητή χρησιμοποιούμε τον τελεστή καταχώρησης

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

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

ΕΡΓΑΣΤΗΡΙΟ 2 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Εργαστήριο 2. Τµήµα Πληροφορικής και Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ 2 ΕΙΣΑΓΩΓΗ ΣΤΗ C Εργαστήριο 2 Τµήµα Πληροφορικής και Τηλεπικοινωνιών οµή προγράµµατος Οδηγίες προεπεξεργαστή #include... # define... τµήµα δηλώσεων ηλωσεις και ορισµοί µεταβλητών. ηλωσεις συναρτήσεων

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

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

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

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

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

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

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

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

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

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

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή παράσταση_1 = Παράσταση Αρχικοποίησης παράσταση_2 = Παράσταση Ελέγχου Επανάληψης παράσταση_3 = Παράσταση Ενημέρωσης

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