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

Σχετικά έγγραφα
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

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

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

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

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

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

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

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

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Ηλεκτρονικοί Υπολογιστές

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Ηλεκτρονικοί Υπολογιστές

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Ιστορία της μετάφρασης

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

Γενικά Μαθηματικά Ι. Ενότητα 1: Συναρτήσεις και Γραφικές Παραστάσεις. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Εισαγωγή στους Αλγορίθμους

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

Εκκλησιαστικό Δίκαιο

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης

Εκκλησιαστικό Δίκαιο

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

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

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Εισαγωγή στους Αλγορίθμους

Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 3: Πίνακες αριθμών και χαρακτήρων. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Γενικά Μαθηματικά Ι. Ενότητα 14: Ολοκλήρωση Κατά Παράγοντες, Ολοκλήρωση Ρητών Συναρτήσεων Λουκάς Βλάχος Τμήμα Φυσικής

Γενικά Μαθηματικά Ι. Ενότητα 7: Σειρές Taylor, Maclaurin. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΑΡΙΣΤΟΤΕΛΕΙΟ ΑΝΟΙΚΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΚΑΔΗΜΑΪΚΑ ΘΕΣΣΑΛΟΝΙΚΗΣ ΜΑΘΗΜΑΤΑ Γενικά Μαθηματικά Ι Ενότητα 11 : Ακολουθίες και Σειρές Λουκάς Βλάχος Τμήμα Φυσικής

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

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

Διοικητική Λογιστική

Γενικά Μαθηματικά Ι. Ενότητα 16: Ολοκλήρωση Τριγωνομετρικών Συναρτήσεων, Γενικευμένα Ολοκληρώματα Λουκάς Βλάχος Τμήμα Φυσικής

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Ιστορία της μετάφρασης

Λογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Γενικά Μαθηματικά Ι. Ενότητα 9: Κίνηση Σε Πολικές Συντεταγμένες. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

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

Ευαγγελικές αφηγήσεις της Ανάστασης

Παράκτια Τεχνικά Έργα

ΓΕΝΙΚΗ ΚΑΙ ΑΝΟΡΓΑΝΗ ΧΗΜΕΙΑ

Εισαγωγή στους Αλγορίθμους

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Γενικά Μαθηματικά Ι. Ενότητα 8: Εφαρμογές Σειρών Taylor. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 1: Εισαγωγή

Μηχανολογικό Σχέδιο Ι

Εργαστήριο Χημείας Ενώσεων Συναρμογής

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

Εκκλησιαστικό Δίκαιο

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

Εισαγωγή στους Υπολογιστές

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

Γενικά Μαθηματικά Ι. Ενότητα 5: Παράγωγος Πεπλεγμένης Συνάρτησης, Κατασκευή Διαφορικής Εξίσωσης. Λουκάς Βλάχος Τμήμα Φυσικής

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Οδοποιία IΙ. Ενότητα 14: Υπόδειγμα σύνταξης τευχών θέματος Οδοποιίας. Γεώργιος Μίντσης ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

ΟΙΚΟΝΟΜΕΤΡΙΑ. Ενότητα 1: Εκτιμητές και Ιδιότητες. Αναπλ. Καθηγητής Νικόλαος Σαριαννίδης Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αξιολόγηση μεταφράσεων ιταλικής ελληνικής γλώσσας

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Οικονομία των ΜΜΕ. Ενότητα 9: Εταιρική διασπορά και στρατηγικές τιμολόγησης

Θέματα Εφαρμοσμένης. Ενότητα 14.2: Η ψήφος στα πρόσωπα. Θεόδωρος Χατζηπαντελής Τμήμα Πολιτικών Επιστημών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Εκκλησιαστικό Δίκαιο

Οικονομία των ΜΜΕ. Ενότητα 7: Μορφές αγοράς και συγκέντρωση των ΜΜΕ

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Γενικά Μαθηματικά Ι. Ενότητα 13: Ακτίνα Σύγκλισης, Αριθμητική Ολοκλήρωση, Ολοκλήρωση Κατά Παράγοντες. Λουκάς Βλάχος Τμήμα Φυσικής

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

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

Διπλωματική Ιστορία Ενότητα 2η:

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

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Φ 619 Προβλήματα Βιοηθικής

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Εισαγωγή στην Επιστήμη των Υπολογιστών

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 9: Ειδικά θέματα γλώσσας C/C++. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Διαγλωσσική μεταφορά και διαμεσολάβηση

Γενικά Μαθηματικά Ι. Ενότητα 17: Αριθμητική Ολοκλήρωση, Υπολογισμός Μήκους Καμπύλης Λουκάς Βλάχος Τμήμα Φυσικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Ηλεκτρονικοί Υπολογιστές

Ενότητα. Εισαγωγή στη Microsoft Access

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

Εκκλησιαστικό Δίκαιο Ι (Μεταπτυχιακό)

Ψηφιακή Επεξεργασία Εικόνων

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ. Γενικά Μαθηματικά Ι. Ενότητα 6: Ακρότατα Συνάρτησης. Λουκάς Βλάχος Τμήμα Φυσικής

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Transcript:

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Γενικά Μαθηματικά Ι Τμήμα Φυσικής 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Γενικά Μαθηματικά Ι Τμήμα Φυσικής 3

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1

ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών και κεφαλαίων. Ο μεταγλωττιστής ενδέχεται να δείξει μηνύματα λάθους ή προειδοποιήσεις για συγκεκριμένες γραμμές. Το πραγματικό σφάλμα μπορεί να βρίσκεται σε προηγούμενες γραμμές! Διορθώνουμε τα σφάλματα ένα-ένα και τρέχουμε κάθε φορά ξανά το μεταγλωττιστή. Ο μεταγλωττιστής εντοπίζει μόνο τυπογραφικά ή συντακτικά σφάλματα, όχι λογικά σφάλματα (!) 2

ΛΟΓΙΚΑ ΣΦΑΛΜΑΤΑ Ένα πρόγραμμα είναι πολύ πιθανό να περιέχει λογικά σφάλματα (bugs). Καθώς αυτά δεν ανιχνεύονται από το μεταγλωττιστή, το πρόγραμμα θα τρέξει, αλλά τα αποτελέσματα θα είναι μη-αναμενόμενα. Τότε χρειάζεται αποσφαλμάτωση (debugging). Δεν αρκεί να τρέξει ένα πρόγραμμα. Πρέπει να ελέγχουμε πάντοτε τα αποτελέσματα για να σιγουρευτούμε πως εκτελέστηκαν ακριβώς οι εντολές που είχαμε κατά νου. Δε φταίει ποτέ ο υπολογιστής εάν ένα πρόγραμμα δεν έβγαλε σωστό αποτέλεσμα, αλλά πάντοτε ο προγραμματιστής. 3

#include <stdio.h> #define NUM 10 int main(void) { int a, b, c; a = 20 + NUM; b = 50 - NUM; c = a*b; ΔΗΛΩΣΗ ΣΤΑΘΕΡΑΣ printf( %d %d %d\n,a, b, c); } return 0; Η οδηγία #define ορίζει μια σταθερά και καθορίζει την τιμή της. 4

#include <stdio.h> #define NUM 10 int main(void) { int a, b, c; a = 20 + NUM; b = 50 - NUM; c = a*b; ΔΗΛΩΣΗ ΜΕΤΑΒΛΗΤΩΝ printf( %d %d %d\n,a, b, c); } return 0; Η εντολή int a, b, c; ορίζει τρεις νέες μεταβλητές τύπου int (integer - ακέραιος). 5

ΚΑΘΟΡΙΣΜΟΣ ΤΙΜΗΣ ΜΙΑΣ ΜΕΤΑΒΛΗΤΗΣ #include <stdio.h> #define NUM 10 int main(void) { int a, b, c; a = 20 + NUM; b = 50 - NUM; c = a*b; printf( %d %d %d\n,a, b, c); } return 0; Με το = καθορίζουμε την τιμή που λαμβάνει μια μεταβλητή. 6

ΚΑΘΟΡΙΣΜΟΣ ΤΙΜΗΣ ΜΙΑΣ ΜΕΤΑΒΛΗΤΗΣ #include <stdio.h> #define NUM 10 int main(void) { int a, b, c; a = 20 + NUM; b = 50 - NUM; c = a*b; printf("%d %d %d\n", a, b, c); } return 0; Με την printf τυπώνουμε τις τιμές που λαμβάνουν οι μεταβλητές a, b, c. Η μορφοποίηση για int είναι %d. 7

ΜΕΤΑΓΛΩΤΤΙΣΗ ΚΑΙ ΕΚΤΕΛΕΣΗ ME RexTester 8

ΜΕΤΑΓΛΩΤΤΙΣΗ ΚΑΙ ΕΚΤΕΛΕΣΗ ME CodingGround 9

ΜΕΤΑΓΛΩΤΤΙΣΗ ΚΑΙ ΕΚΤΕΛΕΣΗ ME CodeLite 10

ΜΝΗΜΗ RAM ΥΠΟΛΟΓΙΣΤΗ Η μνήμη (RAM - random access memory) ενός υπολογιστή αποτελείται από πολλές θέσεις αποθήκευσης δεδομένων με διαδοχική αρίθμηση. Το τυπικό μέγεθος μνήμης ακέραιου αριθμού είναι 8 bit = 1 byte, π.χ. Ένας υπολογιστής με 2GB RAM έχει μνήμη: 2 * 1024 * 1.024 * 1024 = 2.147.483.648 bytes 11

ΜΝΗΜΗ RAM ΥΠΟΛΟΓΙΣΤΗ Κάθε θέση μνήμης μπορεί να έχει ένα όνομα και ένα περιεχόμενο. Μεταβλητή ονομάζεται μία θέση μνήμης που της δίνουμε ένα συγκεκριμένο όνομα. Η τιμή μίας μεταβλητής είναι το περιεχόμενο αυτής της θέσης μνήμης (μπορεί να αλλάξει πολλές φορές κατά τη διάρκεια εκτέλεσης του προγράμματος). 12

ΟΝΟΜΑΤΑ ΜΕΤΑΒΛΗΤΩΝ Μπορεί να αποτελείται από πεζά και κεφαλαία γράμματα του λατινικού αλφαβήτου, από ψηφία, καθώς και του _ (underscore). Ο πρώτος χαρακτήρας πρέπει να είναι γράμμα ή _. Η γλώσσα C κάνει διάκριση μεταξύ των πεζών και κεφαλαίων γραμμάτων (case sensitive). Οι δεσμευμένες λέξεις της C απαγορεύεται να χρησιμοποιηθούν ως ονόματα μεταβλητών. 13

ΔΕΣΜΕΥΜΕΝΕΣ ΛΕΞΕΙΣ ΤΗΣ C Οι ακόλουθες λέξεις είναι δεσμευμένες από τη C για δικές της εντολές και δεν πρέπει να δηλώνονται ως ονόματα μεταβλητών: 14

ΔΗΛΩΣΗ ΜΕΤΑΒΛΗΤΩΝ Η δήλωση μιας μεταβλητής γίνεται συνήθως στην αρχή του προγράμματος (οπωσδήποτε όμως πριν αυτή χρησιμοποιηθεί) με τον ακόλουθο τρόπο: τύπος_δεδοµένων όνοµα_µεταβλητής; π.χ. int a; Κάθε μεταβλητή έχει έναν συγκεκριμένο τύπο δεδομένων. Η εκχώρηση της τιμής στη μεταβλητή μπορεί να γίνει και με τη δήλωσή της: π.χ. int a=100; 15

ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ 16

ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Για τον τύπο char, oι αριθμοί αντιστοιχούν στη θέση των χαρακτήρων στον πίνακα ASCII. 17

ΠΙΝΑΚΑΣ ΧΑΡΑΚΤΗΡΩΝ ASCII 18

ΠΑΡΑΔΕΙΓΜΑ ΕΚΤΥΠΩΣΗΣ ΧΑΡΑΚΤΗΡΑ ASCII 19

ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Το μέγεθος της μνήμης που δεσμεύει ένας τύπος δεδομένων μπορεί να διαφέρει από υπολογιστή σε υπολογιστή (π.χ. ο τύπος int μπορεί να δεσμεύει 2 bytes σε κάποιον υπολογιστή και όχι 4 bytes). Ο τελεστής sizeof μας δίνει την πληροφορεί για το πόσες οκτάδες δεσμεύει ένας τύπος δεδομένων στον υπολογιστή (θα τον δούμε στη συνέχεια). Χρησιμοποιούμε τον τύπο float μόνο όταν η ακρίβεια των δεκαδικών ψηφίων δεν είναι τόσο σημαντική. Για ακρίβεια πολλών δεκαδικών ψηφίων, χρησιμοποιούμε τον τύπο double. 20

ΕΚΧΩΡΗΣΗ ΤΙΜΩΝ ΣΕ ΜΕΤΑΒΛΗΤΕΣ Για μεταβλητές τύπου float ή double χρησιμοποιείται η τελεία (.) για το δεκαδικό μέρος και όχι το κόμμα (,) π.χ. float a = 1.24; Αν μπροστά από μία ακέραια τιμή υπάρχει το ψηφίο 0, τότε αυτή η τιμή ερμηνεύεται σαν οκταδικός αριθμός π.χ. int a = 0100; -> a=64 Αν μπροστά από μία ακέραια τιμή υπάρχει το 0x ή το 0X, τότε αυτή η τιμή ερμηνεύεται σαν δεκαεξαδικός αριθμός π.χ. int a = 0x10; -> a=16 21

ΕΚΧΩΡΗΣΗ ΤΙΜΩΝ ΣΕ ΜΕΤΑΒΛΗΤΕΣ Εάν η τιμή της μεταβλητής αλλάξει στη διάρκεια εκτέλεσης του προγράμματος, ισχύει πάντα η πιο πρόσφατη εκχώρηση τιμής: π.χ. το παραπάνω πρόγραμμα θα τυπώσει Value = 3. 22

ΕΚΧΩΡΗΣΗ ΤΙΜΩΝ ΣΕ ΜΕΤΑΒΛΗΤΕΣ Η τιμή που εκχωρείται σε μια μεταβλητή πρέπει να αντιστοιχεί στον τύπο της, αλλιώς αποκόπτεται (δε στρογγυλοποιείται) ή μετατρέπεται. π.χ. int a = 5.7; -> a = 5 (αποκοπή) π.χ. double x = 5; -> x = 5.0 (μετατροπή) Η τιμή που εκχωρείται σε μια μεταβλητή πρέπει να είναι μέσα στο επιτρεπτό εύρος τιμών. π.χ. short x = 40000; -> x = -25536 (λάθος) π.χ. char ch = 130; -> (δεν υπάρχει στον πίνακα ASCII!) 23

ΕΠΙΣΤΗΜΟΝΙΚΗ ΣΗΜΕΙΟΓΡΑΦΙΑ Σε μεταβλητές τύπου int, float, long, double (και οι αντίστοιχες unsigned) μπορούμε να εκχωρήσουμε τιμές στην επιστημονική σημειογραφία, χρησιμοποιώντας το e ή το E για να δηλώσουμε τη δύναμη του 10. π.χ. double x = 5.2e-2; -> x = 0.052 π.χ. double x = 46E-3; -> x = 0.046 24

ΣΤΑΘΕΡΕΣ Αν θέλουμε μια μεταβλητή να έχει πάντα σταθερή τιμή, τη δηλώνουμε ως const. π.χ. const int a = 100; Η τιμή εκχωρείται υποχρεωτικά κατά τη δήλωση και δε μπορεί να αλλάξει αργότερα. Εναλλακτικά, μπορούμε να δηλώσουμε σταθερές μέσω της μακροεντολής #define. π.χ. #define A 100 (στην αρχή του προγράμματος, με κεφαλαία και χωρίς ;). 25

Η ΣΥΝΑΡΤΗΣΗ printf Η γενική μορφή της printf είναι printf( μορφοποίηση, μεταβλητή1, μεταβλητή2, ); Η μορφοποίηση μπορεί να περιέχει: λέξεις και χαρακτήρες, π.χ. Value = ακολουθίες διαφυγής π.χ. \n προσδιοριστικά μετατροπής π.χ. %d 26

ΑΚΟΛΟΥΘΙΕΣ ΔΙΑΦΥΓΗΣ 27

ΠΑΡΑΔΕΙΓΜΑ ΣΤΟ CodingGround 28

ΠΑΡΑΔΕΙΓΜΑ ΣΤΟ CodeLite ΠΡΟΣΟΧΗ: Η σωστή εκτύπωση των ακολουθιών διαφυγής εξαρτάται και από την κωδικοποίηση του terminal στο οποίο εκτυπώνουμε. Π.χ. ο μεταγλωττιστής CodeLite έχει ένα ενσωματωμένο terminal που (τουλάχιστον στο OS X) δεν είναι πλήρως συμβατό με ASCIΙ, με αποτέλεσμα τη λανθασμένη εκτύπωση των \b και \r (!) Όμοιο πρόβλημα εμφανίζει το RexTester. 29

ΠΡΟΣΔΙΟΡΙΣΤΙΚΑ ΜΕΤΑΤΡΟΠΗΣ 30

ΠΑΡΑΔΕΙΓΜΑ 31

ΕΚΤΥΠΩΣΗ ΤΙΜΩΝ ΜΕΤΑΒΛΗΤΩΝ Δηλώνουμε τις μεταβλητές που θέλουμε να εκτυπωθούν οι τιμές τους μετά τη μορφοποίηση (" ") με τη χρήση κόμματος (,). Πολλές μεταβλητές διαχωρίζονται μεταξύ τους με κόμμα. Οι μεταβλητές αντιστοιχίζονται μία-προς-μία, από αριστερά προς τα δεξιά, με τα προσδιοριστικά μετατροπής που δηλώσαμε μέσα στη μορφοποίηση (" "). ΠΡΟΣΟΧΗ: Αν οι μεταβλητές είναι λιγότερες από τα προσδιοριστικά μετατροπής, τότε για τα επιπλέον προσδιοριστικά εμφανίζουν τυχαίες τιμές! Αντίστοιχα, αν οι μεταβλητές είναι περισσότερες από τα προσδιοριστικά μετατροπής, τότε δεν εκτυπώνονται οι τιμές τους! 32

ΠΑΡΑΔΕΙΓΜΑ 33

ΚΑΘΟΡΙΣΜΟΣ ΑΚΡΙΒΕΙΑΣ ΣΤΗΝ ΕΚΤΥΠΩΣΗ O καθορισμός του αριθμού των δεκαδικών ψηφίων που θα εκτυπωθούν για έναν πραγματικό αριθμό γίνεται π.χ. ως %.3 -> 3 δεκαδικά ή %. -> κανένα δεκαδικό. Παραδείγματα: (ισοδύναμος τρόπος) (έγινε στρογγυλοποίηση) 34

ΠΛΑΤΟΣ ΠΕΔΙΟΥ Το πλάτος πεδίου είναι ο συνολικός αριθμός των χαρακτήρων που καταλαμβάνει η εκτύπωση στην οθόνη, με στοίχιση του αριθμού δεξιά. Αν τα συνολικά ψηφία του αριθμού ξεπερνούν το πλάτος πεδίου, τότε στην πράξη το πλάτος πεδίου αγνοείται. (ισοδύναμος τρόπος) (αριστερό περιθώριο) 35

Σημείωμα Αναφοράς 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

ΣΗΜΕΙΏΜΑΤΑ

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Γενικά Μαθηματικά Ι Τμήμα Φυσικής