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



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

Εισαγωγή στην PHP. ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας. Περιεχόμενα. Περιεχόμενα

Pascal, απλοί τύποι, τελεστές και εκφράσεις

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

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

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

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

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

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

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

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

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

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

ικτυακά Πολυμέσα Ι (Β Έτος, 3ο εξ) ιάλεξη #8η: Javascript: Τεχνικές εντοπισμού/διόρθωσης λαθών, τελεστές, δομές ελέγχου, βρόχοι επανάληψης

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

ΕΠΛ 012. JavaScripts

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~

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

Προγραμματισμός Διαδικτύου Ασκήσεις Εργαστηρίου

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

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

Εισαγωγή στην Αριθμητική Ανάλυση

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

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

Προγραμματισμός διαδικτυακών εφαρμογών με PHP

Παιχνίδια σε Javascript

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

PHP 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

Πληρουορική Γ Γσμμασίοσ

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

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

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

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

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

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

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

Ψευδοκώδικας. November 7, 2011

Γ ε ν ι κ ό Λ ύ κ ε ι ο Ε λ ε υ θ ε ρ ο ύ π ο λ η ς. Α λ γ ό ρ ι θ μ ο ι

8. Συνθήκες ελέγχου, λογικοί τελεστές

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο

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

Εισαγωγή στον Προγραμματισμό Python Μάθημα 1: Μεταβλητές, τελεστές, είσοδος/έξοδος προγράμματος, συνθήκη ελέγχου if Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.

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

Ας δούμε λίγο την θεωρία με την οποία ασχοληθήκαμε μέχρι τώρα.

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

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

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

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

Να γράψετε τους αριθμούς 1, 2, 3 από τη Στήλη Α και δίπλα το γράμμα α, β, γ, δ, ε από τη Στήλη Β που δίνει τη σωστή αντιστοιχία.

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Τυπικές χρήσεις της Matlab

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

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

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

JAVASCRIPT 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

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

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

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

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

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

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

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

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

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

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

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

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

Η Απάντηση. Ενδεικτικές Απαντήσεις Φύλλου Εργασίας. Μηνύματα. 1. Πληκτρολογήστε την εντολή:

Τεχνικές εντοπισμού & διόρθωσης λαθών στη Javascript

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

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

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL

Λειτουργικά Συστήματα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

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

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

Σκοπός. Προγραμματίζοντας τον Arduino ΙΙ Εντολή Εκχώρησης & Εντολές. Συλλογή & Επεξεργασία Δεδομένων. Πρόγραμμα. Εντολές Επεξεργασίας Δεδομένων

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

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2

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

for for for for( . */

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

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

Παίρνοντας Αποφάσεις 1

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Transcript:

ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις Παραδείγματα 1

Βιβλιογραφία Ενότητας Βιβλιογραφία [Nixon 2009]: Chapter 14 (http://lpmj.net/14.php) Javascript Manual (http://www.learn-javascript-tutorial.com/) Javascript Tutorial (http://www.w3schools.com/js/js_intro.asp) Εισαγωγή Οι δυναμικές ιστοσελίδες χαρακτηρίζονται από διαδραστικότητα: Συγκεκριμένες δράσεις του χρήστη (μέσω του web browser) οδηγούν σε μια διαφορετική συμπεριφορά της εφαρμογής Παράδειγμα 1 Δράση Χρήστη: Ο χρήστης συμπληρώνει μια online φόρμα Αντίδραση Εφαρμογής: Τα πεδία της φόρμας ελέγχονται ως προς την ορθότητα τους Παράδειγμα 2 Δράση Χρήστη: Ο χρήστης πατά το submit button της φόρμας Αντίδραση Εφαρμογής: Τα περιεχόμενα των πεδίων της φόρμας μεταφέρονται σε μια βάση δεδομένων 2

Εισαγωγή (2) Η διαδραστικότητα υλοποιείται με την συγγραφή κώδικα (προγραμμάτων υπολογιστή) σεμιαγλώσσαπρογραμματισμού. Στις διαδικτυακές εφαρμογές χρησιμοποιούνται συνήθως οι γλώσσες προγραμματισμού: Javascript (για εφαρμογές που εκτελούνται στον web browser όπως ο έλεγχος της σωστής συμπλήρωσης μιας online φόρμας client side programming) PHP (για εφαρμογές που εκτελούνται στον web server όπως η αποθήκευση των δεδομένων που υποβλήθηκαν μέσω μιας online φόρμας σε μια βάση δεδομένων server side programming) ΤόσοοκώδικαςJavascript όσοκαιοκώδικάςphp μπορούν νε ενσωματωθούν μέσα σε κώδικά HTML με χρήση των κατάλληλων tags. Η μεγάλη διαφορά τους είναι ότι για να εκτελεστεί ένα πρόγραμμα PHP πρέπει να ανεβάσουμε το σχετικό αρχείο σε ένα Web server Αντίθετα τα προγράμματα Javascript μπορούν να εκτελεστούν στον υπολογιστή μας (από τον Web browser) Javascript και HTML Όπως αναφέραμε και πριν ο κώδικάς Javascript μπορεί να ενσωματωθεί μέσα σε κώδικα HTML. Για το σκοπό αυτό χρησιμοποιείται το tag <script>. </script> ΟκώδικάςJavascript μπορεί να μπει σε οποιοδήποτε σημείο του κώδικα HTML (π.χ. εντός του head, εντός του body, μέσα σε ένα κελί ενός πίνακα που βρίσκεται στο body, κλπ.) 3

Παράδειγμα Το πιο πάνω παράδειγμα αντιστοιχεί στο αρχείο lec13_ex01.html που βρίσκεται στη διεύθυνση (μπορείτε να το κατεβάσετε στον υπολογιστή σας και να το τροποποιήσετε με ένα text editor π.χ. Notepad- για να πειραματιστείτε): http://cis.cut.ac.cy/~nicolas.tsapatsoulis/cis516/examples/lec13_ex01.html ΟκώδικαςJavascript (γραμμές 7-9) βρίσκεται ενσωματωμένος μέσα σε ένα tag <h2> εντός του body Υπάρχει μια εντολή (συγκεκριμένα η κλήση της μεθόδου document.write()) μόνο κώδικα Javascript η document.write( Hello World ) Ηεντολήdocument.write εμφανίζει στον Web browser οτιδήποτε βρίσκεται εντός των εισαγωγικών που την ακολουθούν. Βασική σύνταξη Όπως κάθε γλώσσα προγραμματισμού έτσι και η Javascript αποτελείται από ένα σύνολο εντολών (όπως η κλήση της μεθόδου document.write που είδαμε στο προηγούμενο παράδειγμα) τις οποίες χρησιμοποιούμε για να φτιάξουμε τα προγράμματα μας Όλες οι εντολές στην Javascript τερματίζουν με Ελληνικό ερωτηματικό για να ξεχωρίζουν από τις επόμενες. Ελληνικό ερωτηματικό δεν χρειάζεται αν χρησιμοποιούμε ξεχωριστήγραμμήγιακάθεεντολή Μπορούμε μέσα στον κώδικα μας να εισάγουμε σχόλια (δηλαδή τμήμα κειμένου το οποίο στην ουσία εξηγεί τον κώδικα αλλά δεν εκτελείται βοηθά απλά αυτόν που διαβάζει τον κώδικα να τον κατανοήσει ώστε να κάνει τις δικές του αλλαγές αν χρειαστεί) Υπάρχουν δύο τρόποι να εισάγουμε σχόλια: Σχόλια που εκτείνονται σε περισσότερες από μία γραμμές είναι οτιδήποτε περικλείεται από /* */ Σχόλια σε μια γραμμή είναι οτιδήποτε ακολουθεί το σύμβολο // μέχρι το τέλος της γραμμής 4

Παράδειγμα Στο πιο πάνω παράδειγμα βλέπουμε πέντε εντολές Javascript στις γραμμές 8-11 & 13 (το παράδειγμα βρίσκεται στη διεύθυνση http://cis.cut.ac.cy/~nicolas.tsapatsoulis/cis516/examples/lec13_ex02.html) Ότι έχει χρώμα πράσινο είναι σχόλια (δηλαδή δεν έχει καμία επίδραση στην ουσιαστική λειτουργία του προγράμματος) Όπως φαίνεται στη γραμμή 8 τα σχόλια γραμμής μπορούν να ακολουθούν εντολές. Μπορούν επίσης να είναι σε ξεχωριστή γραμμή όπως στην περίπτωση της γραμμής 12 Στις γραμμές 11-16 έχουμε ένα σχόλιο που εκτείνεται σε πολλαπλές γραμμές. Ξεκινάει με τον συνδυασμό συμβόλων /* και τερματίζει 2011 Nicolas με Tsapatsoulis */ Μεταβλητές Οι μεταβλητές είναι χώρος αποθήκευσης τιμών κατά τη διάρκεια εκτέλεσης ενός προγράμματος. Οι τιμές που αποθηκεύονται στις μεταβλητές κατά τη διάρκεια εκτέλεσης ενός προγράμματος αλλάζουν (για αυτό ονομάζονται και μεταβλητές) Ο χώρος αποθήκευσης των τιμών προσδιορίζεται συμβολικά από το όνομα της μεταβλητής (χρησιμοποιούμε την κωδική λέξη var πριν από το όνομα τηςμεταβλητήςορίζουμε=> var mynumber;) Οι μεταβλητές παίρνουν συνήθως αριθμητικές τιμές είτε τιμές κειμένου (string). Η ανάθεση τιμών σε μεταβλητές γίνεται με τον τελεστή = Παράδειγμα mynumber = 3; (Ανάθεση στην μεταβλητή με όνομα mynumber της αριθμητικής τιμής 3) yourname = Soula ; (Ανάθεση στην μεταβλητή με όνομα yourname του κειμένου Soula Για ανάθεση τιμών κειμένου το κείμενο πρέπει να εσωκλείεται σε εισαγωγικά ) 5

Μεταβλητές (2) Για την καλύτερη κατανόηση των μεταβλητών θεωρήστε τις ως «δοχεία». Το όνομα τους αναγράφεται έξω από το δοχείο (π.χ. «λάδι», «αλάτι», «σπίρτα», «μηνύματα») Η τιμή τους είναι αυτό που περιέχεται μέσα στο δοχείο (ποσότητα λαδιού, αλατιού, αριθμός σπίρτων, χαρτάκι με γραμμένο κάποιο μήνυμα πάνω σε αυτό) Κάθε φορά που χρησιμοποιούμε κάποιο δοχείο το περιεχόμενο του μεταβάλλεται (αλλάζει). Προσθέτουμε λάδι στο δοχείο λαδιού, αφαιρούμε αλάτι βάζοντας το στο φαγητό, χρησιμοποιούμε σπίρτα για άναμμα φωτιάς, αφαιρούμε το παλιό μήνυμα και βάζουμε κάποιο καινούργιο, κ.ο.κ. Τα ονόματα των μεταβλητών μας καλό είναι να εξηγεί το περιεχόμενο τους. Θα μπορούσαμε για παράδειγμα να ορίσουμε μια μεταβλητή με το όνομα age και να αποθηκεύαμε σε αυτή το όνομα κάποιου. Είναι επιτρεπτό αλλά θα ήταν καλύτερα να χρησιμοποιήσουμε για όνομα μεταβλητής το name. Το πιο πάνω παράδειγμα είναι ισοδύναμο με το να γράψουμε σε ένα δοχείο όνομα «λάδι» και να προσθέσουμε μέσα ξύδι! Εμείςμπορείνατοξέρουμεκαιναμην μπερδευόμαστε. Αν όμως κάποιος έρθει στο σπίτι μας τι θα νομίζει ότι περιέχει το δοχείο με όνομα «λάδι»; Αντίστοιχα τα σωστά ονόματα μεταβλητών κάνουν τον κώδικα μας πιο ευανάγνωστο σε όποιον θέλει να το διαβάσει και να τον χρησιμοποιήσει. Παράδειγμα Στο πιο πάνω παράδειγμα έχουμε ορίσει 5 μεταβλητές (currenttime, month, day, year, msg2display) στις οποίες αναθέτουμε διαφορετικές τιμές Η ανάθεση γίνεται με τη βοήθεια του τελεστή = (βλέπε γραμμές 8-12, 16) Κάποιες από τις τιμές των μεταβλητών εμφανίζονται στον Web browser μας με τη βοήθεια της μεθόδου document.write() (βλέπε γραμμές 13, 17). Εμφανίζονται επίσης συνοδευτικά μηνύματα. Το παράδειγμα βρίσκεται στη διεύθυνση: http://cis.cut.ac.cy/~nicolas.tsapatsoulis/cis516/examples/lec13_ex03.html 6

Τελεστές Οι τελεστές επιδρούν στο περιεχόμενο των μεταβλητών για να αλλάξουν τις τιμές τους ή να ελέγξουν το περιεχόμενο τους. Υπάρχουν τέσσερις κατηγορίες τελεστών στην Javascript: Αριθμητικοί (οι γνωστοί μας αριθμητικοί τελεστές πρόσθεσης (+), αφαίρεσης (-), πολλαπλασιασμού (*), διαίρεσης (/), καθώς και το υπόλοιπο ακέραιας (%), ηαύξηση (++), και η μείωση (--) ) Ανάθεσης (το περιεχόμενο να γίνει ίσο με (=), όσο ήταν συν αυτό που βρίσκεται δεξιά από τον τελεστή(+=), όσο ήταν μείον αυτό που βρίσκεται δεξιά από τον τελεστή(-=) κ.ο.κ) Σύγκρισης (το περιεχόμενο της μεταβλητής είναι ίσο με αυτό που βρίσκεται στα δεξιά του τελεστή (==)?, το περιεχόμενο της μεταβλητής είναι μεγαλύτερο από αυτό που βρίσκεται στα δεξιά του τελεστή (>)?, κ.ο.κ) Λογικοί (KAI -AND (&&), H -OR ( ), ΌΧΙ -NOT (!) ) Οι αριθμητικοί και οι τελεστές ανάθεσης αλλάζουν τις τιμές των μεταβλητών ενώ οι τελεστές σύγκρισης και οι λογικοί τελεστές έχουν ως αποτέλεσμα true (1) ή false (0) (δηλαδή σωστό ή λάθος). Παράδειγμα 1: Αριθμητικοί τελεστές Έστω οι μεταβλητές με τις ακόλουθες αρχικές τιμές: x = 14; y = 4; Το αποτέλεσμα των πιο κάτω εντολών θα είναι αυτό στην παρένθεση z = x + y; (η τιμή της μεταβλητής z θα γίνει ίση με το άθροισμα των τιμών των μεταβλητών x και y δηλαδή 18 ) z = x - y; (η τιμή της μεταβλητής z θα γίνει ίση με 10) z = x / y; (η τιμή της μεταβλητής z θα γίνει ίση με 3.5) z = x * y; (η τιμή της μεταβλητής z θα γίνει ίση με 56) z = x % y; (η τιμή της μεταβλητής z θα γίνει ίση με 2 δηλαδή το υπόλοιπο της διαίρεσης 14 / 4 => πηλίκο 3, υπόλοιπο 2) 7

Παράδειγμα 2: Tελεστές ανάθεσης Έστω οι μεταβλητές με τις ακόλουθες αρχικές τιμές: x = 14; name = Soula ; surname = Soulidou ; Το αποτέλεσμα των πιο κάτω εντολών θα είναι αυτό στην παρένθεση x = 13.2; (η τιμή της μεταβλητής x θα γίνει ίση με 13.2 ) name = Soula Soulidou ; (η τιμή της μεταβλητής name θα γίνει ίση με Soula Soulidou ) x +=5 (η τιμή της μεταβλητής x θα γίνει όσο ήταν πριν (14) συν 5, άρα 19) x -=3 (η τιμή της μεταβλητής x θα γίνει όσο ήταν πριν (14) μείον 3, άρα 11) x *=4 (η τιμή της μεταβλητής $x θα γίνει 4 φορές όσο ήταν πριν (14), άρα 56) x /=2 (η τιμή της μεταβλητής $x θα γίνει όσο ήταν πριν (14) διαιρεμένο διά 2, άρα 7) fullname = name + surname; (ο τελεστής + είναι ο μόνος από τους αριθμητικούς τελεστές που χρησιμοποιείται και για strings συνενώνοντας τα (τα βάζει σε παράθεση) επομένως η μεταβλητή fullname θα πάρει την τιμή Soula Soulidou ) Προσοχή! Οι πιο πάνω εντολές θεωρούμε ότι εκτελούνται ανεξάρτητα και όχι σε διαδοχή. Αντιςείχαμεβάλεισεσειράμέσασεέναπρόγραμμάτααποτελέσματαθαήταντελείως διαφορετικά διότι έχουμε κάνει πολλαπλές αλλαγές τιμών. Παράδειγμα 3: Tελεστές σύγκρισης Οι τελεστές σύγκρισης χρησιμοποιούνται συνήθως ως συνθήκες στο πλαίσιο εντολών διακλάδωσης (if, while, κ.ο.κ) Σύνταξη εντολής if: if (συνθήκη) do something else do something else; Η ερμηνεία της πιο πάνω εντολής είναι: Αν η συνθήκη είναι σωστή αν ισχύει δηλαδήεκτέλεσε τις εντολές «do something» αλλιώς εκτέλεσε τις εντολές «do something else» Έστω οι μεταβλητές με τις ακόλουθες αρχικές τιμές: x = 14; y=4; Το αποτέλεσμα της εκτύπωσης προκύπτει αφού γίνει έλεγχος της συνθήκης (όπου χρησιμοποιούνται οι τελεστές σύγκρισης) if (x==y) document.write( x and y are equal ); (η συνθήκη(x==y) δίνει λάθος (false, 0) διότιοιτιμέςτωνμεταβλητώνx και y είναι διαφορετικές μεταξύ τους. Αν ήταν ίσες θα εκτυπωνόταν το μήνυμα x and y are equal εξαιτίας της εκτέλεσης της εντολής document.write( x and y are equal ). Επειδή η συνθήκη (x==y) δεν ισχύει η εντολή document.write( x and y are equal ) δεν εκτελείται) 8

Παράδειγμα 3: Tελεστές σύγκρισης (συν) Το αποτέλεσμα της εκτύπωσης προκύπτει αφού γίνει έλεγχος της συνθήκης (όπου χρησιμοποιούνται οι τελεστές σύγκρισης) if (x>y) document.write( x is greater than y ) else document.write( x is smaller than y ); (η συνθήκη(x>y) είναι ορθή (true, 1) διότι η τιμή της μεταβλητής x είναι μεγαλύτερη από την τιμή της μεταβλητής y επομένως θα εκτυπωθεί το μήνυμα x is greater than y διότι θα εκτελεστεί η εντολή document.write( x is greater than y ) if (x<y) document.write( x is smaller than y ) else document.write( y is smaller than x ); (η συνθήκη(x<y) δίνει λάθος (false, 0) διότι η τιμή της μεταβλητής x είναι μεγαλύτερη από την τιμή της μεταβλητής y επομένως θα εκτελεστεί η εντολή μετά το else (document.write( y is smaller than x )) και θα εκτυπωθεί το μήνυμα y is smaller than x) if (x!=y) document.write( x and y are different ) else document.write( x and y are equal ); (η συνθήκη(x!=y) είναι ορθή (true, 1) διότιοιτιμέςτωνμεταβλητώνx και y είναι διαφορετικές (ο τελεστής!= σημαίνει διαφορετικό) επομένως θα εκτελεστεί η εντολή document.write( x and y are different ) και θα εκτυπωθεί το μήνυμα x and y are different) Παράδειγμα 4: Λογικοί τελεστές Οι λογικοί τελεστές χρησιμοποιούνται συνήθως για συνδυάζουν συνθήκες στο πλαίσιο εντολών διακλάδωσης (if, while, κ.ο.κ) if (συνθήκη 1) && (συνθήκη 2) do something else do something else; Η ερμηνεία της πιο πάνω εντολής είναι: Αν ισχύουν οι συνθήκες 1 και 2 τότε εκτέλεσε τις εντολές «do something» αλλιώς εκτέλεσε τις εντολές «do something else» Ο λογικός τελεστής && είναι ισοδύναμος με το «ΚΑΙ» Έστω οι μεταβλητές με τις ακόλουθες αρχικές τιμές: x = 14; y=4; z=8 Το αποτέλεσμα της εκτύπωσης προκύπτει αφού γίνει έλεγχος του συνδυασμού των συνθηκών if (x>y) && (x>z) document.write( x is the greatest among x, y, z ); (ο τελεστής && απαιτεί να ισχύουν και οι δύο συνθήκες (x>y), (x>z) ταυτόχρονα. Αν ισχύουν (στη συγκεκριμένη περίπτωση ισχύουν) θα εκτελεστεί η εντολή document.write( x is the greatest among x, y, z ) και θα εκτυπωθεί το μήνυμα x is the greatest among x, y, z αν δεν ισχύουν ταυτόχρονα δεν θα εμφανιστεί κανένα μήνυμα) 9

Παράδειγμα 4: Λογικοί τελεστές (συν) Το αποτέλεσμα της εκτύπωσης προκύπτει αφού γίνει έλεγχος του συνδυασμού των συνθηκών if (z>x) (z>y) document.write( z is not the smallest among x, y, z ); (ο τελεστής απαιτεί να ισχύει κάποια από τις δύο συνθήκες (z>x), (z>y) ήκαιοιδύο. Αν ισχύει κάποια από τις δύο (στη συγκεκριμένη περίπτωση ισχύει η (z>y)) θα εκτελεστεί η εντολή document.write( z is not the smallest among x, y, z ) και θα εκτυπωθεί το μήνυμα z is not the smallest among x, y, z. Αν δεν ισχύει καμία από τις δύο δεν θα εμφανιστεί κανένα μήνυμα) Συναρτήσεις Σε κάποιες περιπτώσεις μια σειρά από εντολές χρειάζεται να εκτελεστεί πολλέςφορέςμέσαστοπρόγραμμαμας(π.χ. σε ένα πρόγραμμα ταξινόμησης χρειάζεται πολλές φορές να βρούμε τον μεγαλύτερο από δύο αριθμούς) Σε τέτοιες περιπτώσεις αντί να επαναλαμβάνουμε τον κώδικα πολλές φορές κατασκευάζουμε μια συνάρτηση την οποία καλούμε κάθε φορά που χρειάζεται Οι συναρτήσεις ορίζονται με τη χρήση της κωδικής λέξης function έχουν ένα όνομα (όνομα συνάρτησης), δέχονται ορίσματα και επιστρέφουν μια τιμή: function maxoftwo(a,b) { var mx=0; if (a>b) mx =a else mx =b; return mx; } Στο πιο πάνω παράδειγμα το όνομα της συνάρτησης είναι maxoftwo δέχεται δύο ορίσματα (τις μεταβλητές a,b) καιεπιστρέφειτηντιμήτηςμεταβλητήςmx στην οποία έχουμε αποθηκεύσει την μεγαλύτερη από τις τιμές των μεταβλητών a,b. Πιο κάτω δίνεται ο τρόπος με τον οποίο καλούμε τη συνάρτηση maxoftwo μέσα στον κώδικα Javascript c = maxoftwo(9,13); (η μεταβλητήc θα πάρει την τιμή 13) c = maxoftwo(op1, op2); (η μεταβλητήc θα πάρει την μεγαλύτερη από τις τιμές των μεταβλητών op1, op2) 10

Παράδειγμα Στο διπλανό παράδειγμα τον ορισμό της συνάρτησης maxoftwo στις γραμμές 8-13 (το παράδειγμα βρίσκεται στη διεύθυνση http://cis.cut.ac.cy/~nicolas.tsapatsoulis/cis516/examples/lec10_ex04.html) ΗσυνάρτησηmaxOfTwo καλείται τρεις φορές (γραμμές 16, 17 και 19) για τον υπολογισμό του μέγιστου από τέσσερεις αριθμούς Στη γραμμή 16 βρίσκουμε το μέγιστο από τους δύο πρώτους αριθμούς και το αναθέτουμε στη μεταβλητή mx1 Στη γραμμή 17 βρίσκουμε το μέγιστο από τους δύο τελευταίους αριθμούς και το αναθέτουμε στη μεταβλητή mx2 Στη γραμμή 19 βρίσκουμε το μέγιστο από τα mx1, mx2 και τα αναθέτουμε στη μεταβλητή max ηοποίακαιείναιητελική μέγιστη τιμή Παραδείγματα Τα προγράμματα Javascript έχουν πραγματικά ενδιαφέρον όταν επεξεργάζονται δεδομένα που εισάγει ο χρήστης. Ο απλούστερος τρόπος για χειρισμό τέτοιων περιπτώσεων είναι η εισαγωγή των στοιχείων μέσω μιας φόρμας σε ένα αρχείο html και η επεξεργασία τους και η προβολή των αποτελεσμάτων γίνεται με τη βοήθεια Javascript Να φτιάξετε μια φόρμα στην οποία ο χρήστης να εισάγει 4 αριθμούς και το πρόγραμμα να επιστρέφει τον μικρότερο μαζί με ένα σχετικό μήνυμα (το αρχείο με τη λύση υπάρχει στη διεύθυνση: http://cis.cut.ac.cy/~nicolas.tsapatsoulis/cis516/examples/lec13_ex05.html) 11