ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 3: Εισαγωγή και Εμφάνιση Δεδομένων Νικόλαος Στεργιούλας Τμήμα Φυσικής
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Γενικά Μαθηματικά Ι Τμήμα Φυσικής 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Γενικά Μαθηματικά Ι Τμήμα Φυσικής 3
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 3ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1
ΕΚΤΥΠΩΣΗ ΚΕΙΜΕΝΟΥ Ένα κείμενο μπορεί να εκχωρηθεί ως τιμή μιας μεταβλητής char με αόριστο μέγεθος []. Μπορούμε να καθορίσουμε να εκτυπωθεί μέρος ή ολόκληρο το κείμενο: 2
ΠΡΟΘΕΜΑ Για την εμφάνιση ενός short ακεραίου μπορεί να χρησιμοποιηθεί προαιρετικά το γράμμα h, ενώ για την ε μ φ ά ν ι σ η ε ν ό ς long α κ ε ρ α ί ο υ μ π ο ρ ε ί ν α χρησιμοποιηθεί το γράμμα l ή L, όπως φαίνεται στο παρακάτω παράδειγμα: 3
ΣΗΜΑΙΕΣ Οι σημαίες χρησιμοποιούνται για περαιτέρω μορφοποίηση των εμφανιζόμενων τιμών, όπως φαίνεται στον παρακάτω πίνακα 4
ΠΑΡΑΔΕΙΓΜΑ 5
ΑΚΡΙΒΕΙΑ ΑΡΙΘΜΩΝ (μόνο τα πρώτα 6 δεκαδικά ψηφία είναι σωστά) (τυχαία ψηφία) (μόνο τα 15 δεκαδικά ψηφία είναι σωστά αν γίνει στρογγυλοποίηση) 6
ΠΑΡΑΤΗΡΗΣΕΙΣ Για να εκτυπώσουμε δύο γραμμές συνεχόμενα ως μία γραμμή χρησιμοποιούμε το \. 7
ΠΑΡΑΤΗΡΗΣΕΙΣ Για να εκτυπώσουμε το σύμβολο % το γράφουμε δύο φορές ως %%. π.χ. η εντολή τυπώνει: 100% 8
ΜΕΤΑΤΡΟΠΗ ΤΥΠΟΥ Υπάρχουν περιπτώσεις όπου ένας τύπος δεδομένων πρέπει να μετατραπεί προσωρινά σε κάποιον άλλο τύπο δεδομένων. Π.χ. έστω ότι η μεταβλητή a έχει δηλωθεί ως int a; Τότε, σε κάποιο σημείο του προγράμματος (και μόνο εκεί) η έκφραση (float)a μετατρέπει προσωρινά τον τύπο της a από int σε float. 9
ΠΑΡΑΔΕΙΓΜΑ 10
ΠΑΡΑΔΕΙΓΜΑ Με το παρακάτω πρόγραμμα, εκτυπώνουμε τον κώδικα ASCII ενός χαρακτήρα. 11
ΠΑΡΑΔΕΙΓΜΑ Επειδή οι αριθμοί double έχουν ακρίβεια 15 ψηφίων μόνο, είναι πολύ εύκολο να έχουμε λανθασμένα αποτελέσματα όταν κάνουμε πράξεις με μεγάλους αριθμούς. 12
ΠΑΡΑΔΕΙΓΜΑ Το ίδιο παράδειγμα με αριθμούς float που έχουν ακρίβεια 6 ψηφίων μόνο. 13
Η ΣΥΝΑΡΤΗΣΗ scanf Η συνάρτηση scanf() χρησιμοποιείται για την είσοδο δεδομένων από το πληκτρολόγιο. Χρησιμοποιεί παρόμοια σύνταξη με την printf. π.χ. int i; scanf("%d", &i); Ο χαρακτήρας &, που μπαίνει πριν από το όνομα της μεταβλητής, ονομάζεται τελεστής διεύθυνσης και χρησιμοποιείται για να αποθηκευτεί η τιμή που θα εισάγει ο χρήστης στη διεύθυνση μνήμης της μεταβλητής i. 14
Η ΣΥΝΑΡΤΗΣΗ scanf Μπορούμε να διαβάσουμε πολλές μεταβλητές: int i; float j; double k; scanf( %d%f%lf, &i, &j, &k); Εισάγουμε τις τιμές στο πληκτρολόγιο με κενό ανάμεσα στους αριθμού και στο τέλος πατάμε enter. Για την εισαγωγή τιμών σε μεταβλητή double χρησιμοποιούμε το %lf. 15
ΠΑΡΑΔΕΙΓΜΑ 16
Η ΣΥΝΑΡΤΗΣΗ scanf Με το %c μπορούμε να διαβάσουμε χαρακτήρες: char ch; scanf( %c, &ch); Με το %s μπορούμε να διαβάσουμε λέξεις, π.χ. μέχρι 10 χαρακτήρων: char str[10]; scanf( %s, str); Σε αυτή την περίπτωση δε γράφουμε &str, αλλά μόνο str, καθώς υπονοείται η πρώτη θέση μνήμης της δήλωσης str[100]. 17
ΠΑΡΑΔΕΙΓΜΑ 18
ΠΑΡΑΔΕΙΓΜΑ ΣΗΜΕΙΩΣΗ: Εάν έχουμε διαδοχικά scanf, ενδέχεται κάποιο από αυτά να διαβάζει χαρακτήρες που περίσσεψαν από το προηγούμενο. Για το λόγο αυτό, ανάμεσα από τα scanf αδειάζουμε τη μνήμη του πληκτρολογίου: (ειδική εντολή για άδειασμα μνήμης πληκτρολογίου) 19
Η ΣΥΝΑΡΤΗΣΗ scanf Μπορούμε να διαβάσουμε και ολόκληρο κείμενο π.χ. μέχρι 100 χαρακτήρων: char str[100]; scanf( %[^\n], str); Με αυτή την μορφή η scanf δε σταματά στα κενά ανάμεσα στις λέξεις. 20
ΠΑΡΑΔΕΙΓΜΑ 21
Ο ΤΕΛΕΣΤΗΣ ΕΚΧΩΡΗΣΗΣ = Με τον τελεστή εκχώρησης = αναθέτουμε μια τιμή σε μια μεταβλητή, π.χ. a = 10; ή αναθέτουμε σε μια μεταβλητή την τιμή μιας άλλης, π.χ. a = b; Η ανάθεση γίνεται από τα δεξιά προς τα αριστερά και επιτρέπεται η πολλαπλή εκχώρηση, π.χ. a = b = c = 10; 22
ΟΙ ΤΕΛΕΣΤΕΣ +, -, *, /, % Οι τελεστές +, -, *, / εκτελούν τις συνηθισμένες τέσσερις πράξεις μεταξύ αριθμών. ΠΡΟΣΟΧΗ: Αν έχουμε ορίσει δύο μεταβλητές ως ακέραιες, τότε η ο τελεστής / δίνει το ακέραιο μέρος της διαίρεσης μόνο, π.χ. αν int i, j; i = 9; j = 2; τότε η τιμή του i/j είναι 4, ενώ το υπόλοιπο της διαίρεσης προκύπτει με τον τελεστή % ως i%j. ΠΡΟΣΟΧΗ: Ο τελεστής % εφαρμόζεται μόνο μεταξύ ακεραίων αριθμών. 23
ΟΙ ΤΕΛΕΣΤΕΣ ΑΥΞΗΣΗΣ ++ ΚΑΙ ΜΕΙΩΣΗΣ - - Ο τελεστής αύξησης ++, αυξάνει κατά 1 την τιμή μιας μεταβλητής. Αν χρησιμοποιείται μετά από το όνομα της μεταβλητής, τότε η τιμή αυξάνεται αφού πρώτα χρησιμοποιηθεί η μεταβλητή, π.χ. 24
ΟΙ ΤΕΛΕΣΤΕΣ ΑΥΞΗΣΗΣ ++ ΚΑΙ ΜΕΙΩΣΗΣ - - Αν χρησιμοποιείται πριν από το όνομα της μεταβλητής, τότε πρώτα αυξάνεται η τιμή και μετά χρησιμοποιείται η μεταβλητή, π.χ. Ο τελεστής μείωσης - - ελαττώνει την τιμή κατά 1 και ισχύουν οι ίδιοι κανόνες όπως για τον τελεστή ++. 25
Σημείωμα Αναφοράς Copyright Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, Νικόλαος Στεργιούλας «Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική». Έκδοση: 1.0. Θεσσαλονίκη 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://opencourses.auth.gr/eclass_courses. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Γενικά Μαθηματικά Ι Τμήμα Φυσικής
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά - Παρόμοια Διανομή [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. [1] https://creativecommons.org/licenses/by-nc-nd/4.0/ Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Γενικά Μαθηματικά Ι Τμήμα Φυσικής
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Τέλος ενότητας Επεξεργασία: Νικόλαος Τρυφωνίδης Θεσσαλονίκη, 20/09/2015
ΣΗΜΕΙΏΜΑΤΑ
Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Γενικά Μαθηματικά Ι Τμήμα Φυσικής