Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

Σχετικά έγγραφα
Διαδικασιακός Προγραμματισμός

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

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

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

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

Βασικές έννοιες προγραμματισμού

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

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

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

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

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

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

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

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

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

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Θέματα Προγραμματισμού Η/Υ

ΚΟΡΥΦΑΙΟ ΦΡΟΝΤΙΣΤΗΡΙΟ korifeo.gr Μάθημα :Προγραμματισμός Εξεταζόμενη ύλη : 2o, 3o,4o,5o κεφάλαιο ΘΕΜΑ 1 ο

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

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

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

ΕΠΛ 012. JavaScripts

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

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

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

7. Βασικά στοιχεία προγραµµατισµού.

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

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

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

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

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

7.1 Αλφάβητο. 7.2 Τύποι δεδομένων. 7.3 Σταθερές. 7.4 Μεταβλητές. 7.5 Αριθμητικοί τελεστές. 7.6 Συναρτήσεις. 7.7 Αριθμητικές εκφράσεις. 7.

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

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές

Τύποι δεδομένων, τελεστές, μεταβλητές

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

Γ τάξη Τεχνολογικής Κατεύθυνσης Ενιαίου Λυκείου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. ΔΟΜΗ ΕΠΙΛΟΓΗΣ Διδάσκων: ΔΟΥΡΒΑΣ ΙΩΑΝΝΗΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Διάλεξη 6: Δείκτες και Πίνακες

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές

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

Προγραμματισμός Ι. Θεματική ενότητα 3: Tελεστές. εκφράσεις

Τεχνικός Εφαρμογών Πληροφορικής

5 &6. Τύποι δεδομένων, τελεστές και

Βασικά στοιχεία της Java

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

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Φυσικές και τεχνητές γλώσσες. Το αλφάβητο της ΓΛΩΣΣΑΣ, Τύποι Δεδομένων. Σταθερές, Μεταβλητές, Τελεστές, Συναρτήσεις, Δομή Προγράμματος

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

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 8/11/07

Βασικά στοιχεία γλώσσας προγραμματισμού. Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Εκχώρηση Τιμών

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

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

Μια πρόταση διδασκαλίας για το μάθημα του προγραμματισμού Η/Υ στο Λύκειο με τη μεθοδολογία STEM

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

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Α2. Να γράψετε στο τετράδιο απαντήσεών σας το κατάλληλο τμήμα κώδικα, κάνοντας τις απαραίτητες αλλαγές σύμφωνα με την εκάστοτε εκφώνηση:

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο

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

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 2 ο. ΑΛΓΕΒΡΑ Boole ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

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

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

Κεφ 2. Βασικές Έννοιες Αλγορίθμων

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

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

ΔΟΜΗ ΕΠΙΛΟΓΗΣ. Οι διάφορες εκδοχές της

Transcript:

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων 1

Είσοδος/Έξοδος Είσοδος/Έξοδος ανάλογα με τον τύπο του προγράμματος Πρόγραμμα γραμμής εντολών από το τερματικό της γραμμής εντολών Πρόγραμμα οπτικού προγραμματισμού από γραφικά στοιχεία (input-box, output-label, ) Πρόγραμμα σε περιβάλλον φυλλομετρητή από γραφικά στοιχεία εισόδου/εξόδου αλλά και απλά στοιχεία HTML (Παράδειγμα1, Παράδειγμα2) έξοδος και στην κονσόλα (console) του φυλλομετρητή Είσοδος Πρόγραμμα Έξοδος 2

Μεταβλητές Κουτιά στη μνήμη που έχει παραχωρηθεί για την εκτέλεση του προγράμματος Ταυτοποιούνται από το όνομά τους Χαρακτηρίζονται από τον τύπο δεδομένων και την τιμή τους Βασική πράξη εκχώρησης (ή ανάθεσης) τιμής σε μεταβλητή: <όνομα_μεταβλητής> = <τιμή> 3

Τύποι μεταβλητών JS Γλώσσα με δυναμικούς τύπους μεταβλητών: ο τύπος της μεταβλητής δεν ορίζεται κατά τη δήλωσή της αλλάζει δυναμικά και καθορίζεται από τον τύπο της τιμής εκχώρησης Βασικοί (primitive) τύποι μεταβλητών αριθμός (number -- πραγματικός αριθμός διπλής ακρίβειας των 8 bytes) αλφαριθμητικό ή συμβολοσειρά (string) δυαδικής τιμής (boolean με τιμές true και false) O τελεστής typeof επιστρέφει ως αλφαριθμητικό τον τύπο μεταβλητών. 4

Τελεστές/Πράξεις και Προτεραιότητα Συνένωσης αλφαριθμητικών (+) Ανάθεσης (=, +=, -=, *=, /=) Αριθμητικές (+,-,*,/, %, **, ++x, --x, x++, x--) Συγκρίσεις (>, <, >=, <=, ==,!= αλλά και ===,!==) Λογικές (&&,,!) Προτεραιότητα πράξεων σε εκφράσεις Υψηλότερη προτεραιότητα έχουν οι παρενθέσεις Χαμηλότερη οι πράξεις ανάθεσης Πράξεις ίσης προτεραιότητας εκτελούνται από αριστερά προς τα δεξιά. Εκφράσεις εντός παρενθέσεων υπολογίζονται πλήρως πριν η τιμή τους χρησιμοποιηθεί στην υπόλοιπη έκφραση. 5

Μετατροπές μεταξύ τύπων (1/ 2) Στη JS (και σε άλλες γλώσσες με ασθενείς τύπους): επιτρέπεται η επιτυχής εκτέλεση μιας πράξης που οι όροι της δεν έχουν λογικά συμβατούς τύπους γίνεται έμμεσα μετατροπή τύπων ο τύπος του αποτελέσματος ορίζεται από κανόνες που αφορούν και τους δύο όρους μιας πράξης Πράξη + εάν τουλάχιστον ο ένας από τους 2 όρους είναι αλφαριθμητικό (συμβολοσειρά) μετατροπή του άλλου όρου σε αλφαριθμητικό και το αποτέλεσμα είναι συνένωση των 2 αλφαριθμητικών, αλλιώς η πράξη είναι η πρόσθεση αριθμών Πρόσθεση αριθμών και υπόλοιπες αριθμητικές πράξεις έμμεση μετατροπή των μή αριθμητικών όρων σε αριθμούς Συγκρίσεις εάν ο ένας από τους 2 όρους είναι αριθμός έμμεση μετατροπή του άλλου όρου σε αριθμό 6

Μετατροπές μεταξύ τύπων (2/2) Αλγόριθμος έμμεσης μετατροπής συμβολοσειράς σε αριθμό: εάν η συμβολοσειρά είναι αριθμητική μετατρέπεται στην αριθμητική τιμή της, αλλιώς εάν είναι η κενή συμβολοσειρά ή μόνο λευκοί χαρακτήρες, μετατρέπεται στην τιμή 0, αλλιώς μετατρέπεται σε NaN (Not a Number) Αριθμητική πράξη με NaN έχει ως αποτέλεσμα NaN Σύγκριση αριθμού με NaN επιστρέφει πάντα false Μετατροπή boolean σε αριθμό: false 0 true 1 Για να εξασφαλιστεί το σωστό αποτέλεσμα, οι μεταβλητές πρέπει να μετατρέπονται στο σωστό τύπο πριν από την πράξη. 7

Έλεγχος αριθμητικής (ή μη) συμβολοσειράςστη JS Σε πολλές περιπτώσεις χρειάζεται να ελεγχθεί κατά πόσο μια συμβολοσειρά είναι (ή όχι) αριθμός (π.χ. είσοδος αριθμού από το χρήστη). Σε πολλές γλώσσες προγραμματισμού (π.χ. VisualBasic) ο έλεγχος αυτός έχει υλοποιηθεί ως μια (καλά ορισμένη) συνάρτηση που δέχεται ως παράμετρο τη συμβολοσειρά και επιστρέφει αληθές, αν και μόνο αν αυτή είναι αριθμητική. Στη JavaScript δεν υπάρχει μια εκ των προτέρων ορισμένη συνάρτηση με αυτή τη λειτουργικότητα χρειάζεται επομένως να γραφεί μια συνθήκη c που θα δίνει true όταν η συμβολοσειρά είναι αριθμός και false αλλιώς. 8

Έλεγχος αριθμητικής (ή μη) συμβολοσειράς στη JS Έχοντας ως δεδομένη τη συμβολοσειρά strnum και λαμβάνοντας υπόψη ότι : ο αλγόριθμος έμμεσης μετατροπής συμβολοσειράς σε αριθμό μπορεί να εφαρμοστεί (άμεσα) με κλήση της συνάρτησης number Number(string) και η συνάρτηση boolean isnan(number) επιστρέφει true εάν το όρισμά της είναι NaN, η συνθήκη θα μπορούσε να είναι η εξής: var num = Number(strNum); var c =! isnan(num); δηλ. η c γίνεται αληθής όταν η Number() επιστρέφει αριθμό και ψευδής όταν η Number() επιστρέφει NaN. 9

Έλεγχος αριθμητικής (ή μη) συμβολοσειράς στη JS Επειδή η συνάρτηση boolean isfinite(string) όταν κληθεί με παράμετρο strnum, επιστρέφει true όταν η Number(strNum) επιστρέφει αριθμό και false όταν η Number(strNum) επιστρέφει NaN, ο κώδικας var num = Number(strNum); var c =! isnan(num); είναι ισοδύναμος με την εντολή var c = isfinite(strnum); 10

Έλεγχος αριθμητικής (ή μη) συμβολοσειράς στη JS Στο παρακάτω παράδειγμα-κώδικα: 1 var num = Number( 12.3 ); // num 12.3 2 num = Number( John ); // num NaN 3 num = Number( 12.3a ); // num NaN 4 num = Number( 12 3 ); // num NaN 5 num = Number( ); // num 0 6 num = Number( ) // num 0 η Number() δίνει σωστό αποτέλεσμα στις περιπτώσεις αλφαριθμητικών των εντολών 1-4, αλλά δίνει λάθος αποτέλεσμα (0 ενώ η συμβολοσειρά δεν είναι αριθμός) για τις 5, 6 11

Έλεγχος αριθμητικής (ή μη) συμβολοσειράς στη JS Εναλλακτικά, η μετατροπή συμβολοσειράς σε αριθμό μπορεί να γίνει με κλήση της συνάρτησης number parsefloat(string) Η parsefloat() δεν ακολουθεί τον αλγόριθμο έμμεσης μετατροπής συμβολοσειράς σε αριθμό. Παράδειγμα 1 var num = parsefloat( 12.3 ); // num 12.3 2 num = parsefloat( John ); // num NaN 3 num = parsefloat( 12.3a5 ); // num 12.3 4 num = parsefloat( 12 3 ); // num 12 5 num = parsefloat( ); // num NaN 6 num = parsefloat( ) // num NaN Η parsefloat() δίνει σωστό αποτέλεσμα στις περιπτώσεις αλφαριθμητικών των εντολών 1-2, 5-6, αλλά δίνει λάθος αποτέλεσμα για τις 3, 4 (επιστρέφει αριθμό ενώ θα έπρεπε να επιστρέφει NaN). 12

Έλεγχος αριθμητικής (ή μη) συμβολοσειράς στη JS Συνδυάζοντας το αποτέλεσμα των 2 συναρτήσεων μετατροπής, ως εξής: 1 var numn = Number(strNum); 2 var numpf = parsefloat(strnum); 3 var c =! isnan(numpf) &&!isnan(numn); η συνθήκη c γίνεται αληθής όταν και μόνο όταν και οι 2 συναρτήσεις επιστρέφουν αριθμό, αλλιώς (δηλ. αν τουλάχιστο μία από τις 2 επιστρέψει NaN) η συνθήκη είναι ψευδής, που είναι και το ζητούμενο σύμφωνα με τα παραδείγματα. Αντικαθιστώντας τη γραμμή 1 και τον έλεγχο!isnan(numn) στη γραμμή 3, με την ισοδύναμη κλήση της isfinite(), προκύπτει ο τελικός κώδικας ελέγχου: var num = parsefloat(strnum); var c =! isnan(num) && isfinite(strnum); 13

Σύνδεσμοι Παράδειγμα ελέγχου μετατροπής συμβολοσειράς σε αριθμό. Φροντιστήριο w3schools Εντολές Μεταβλητές Αριθμητικές Πράξεις Τύπος Δυαδικών Τιμών (τύπος boolean) Συγκρίσεις και Λογικοί Τελεστές 14