JavaScript 6. Πίνακες

Σχετικά έγγραφα
Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

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

ιαφάνειες παρουσίασης #4

Εργαστήριο #12. Βήμα 1 ο. Βήμα 2 ο. Βήμα 3 ο. Βήμα 4 ο.

Εργαστηριακή Άσκηση 1

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. Για i από 1 μέχρι Μ Εμφάνισε A[4,i] Τέλος_επανάληψης. (μονάδες 6) ΤΕΛΟΣ 1ης ΑΠΟ 7 ΣΕΛΙΔΕΣ

ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α Α1. 1 ΣΩΣΤΟ 2 ΛΑΘΟΣ 3 ΛΑΘΟΣ 4 ΛΑΘΟΣ 5 ΣΩΣΤΟ

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

Προγραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων

Συστήματα Αναμονής (Queuing Systems)

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΕΤΑΡΤΗ 20 ΙΟΥΝΙΟΥ 2018

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

Προγραμματιστικές Τεχνικές

ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

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

A A A B A ΦΥΛΛΑ ΙΟ ΘΕΜΑΤΩΝ 1/2. Μέϱος A. Πολλαπλές επιλογές (20%) Σειριακός αριθµός : 100 Πληροφορική Ι Εξέταση Φεβρουαρίου 2019

i 1 Όσο i <> 100 επανάλαβε i i + 2 Γράψε A[i] Τέλος_επανάληψης

Κεφάλαιο 8.6. Πίνακες ΙI (Διάλεξη 17)

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

1. Δεν μπορεί να γίνει κλήση μίας διαδικασίας μέσα από μία συνάρτηση.

Δομές Δεδομένων & Αλγόριθμοι

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

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

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

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

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση:

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Εξετάσεις Προσομοίωσης 10/04/2018

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

Φύλλο εργασίας 3 - Χριστουγεννιάτικα φωτάκια (σταδιακή αύξηση και μείωση φωτεινότητας ενός LED) Το κύκλωμα σε breadboard

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

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

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

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

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

ΑΠΑΝΤΗΣΕΙΣ. H διαδικασία ανεύρεσης λογικών λαθών περιλαμβάνει : β- Σωστό. Διαπίστωση του είδους του λάθους γ- Σωστό δ- Λάθος

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ

Αλγόριθμοι Αναζήτησης. (AeppAcademy.com)

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Σημειώσεις. Ο αριθμός των στοιχείων μίας λίστας μπορεί να βρεθεί με χρήση της συνάρτησης len:

Μεθόδων Επίλυσης Προβλημάτων

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη

Δείκτες & Πίνακες Δείκτες, Πίνακες

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

a. Επιλέγουμε τις γραμμές προς διαγραφή a. Επιλέγουμε τις στήλες προς διαγραφή a. Γράφουμε σε μια στήλη μια σειρά από αριθμούς ή αλφαριθμητικά

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 5

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

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

6. Σ 7. Λ 8. Λ 9. Λ 10. Λ

Εύρεση ν-στού πρώτου αριθμού

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πεδί α

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

Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Ημερομηνία: Πέμπτη 12 Απριλίου 2018 Διάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE

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

Ακρότατα πίνακα, χωρίς min, max, μόνο με pos

Σημειώσεις. Ο αριθμός των στοιχείων μίας λίστας μπορεί να βρεθεί με χρήση της συνάρτησης len:

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

Visual Flowchart Γενικά

Γενικές εξετάσεις 2014 Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον Τεχνολογική Κατεύθυνση

Πίνακες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

Φύλλο εργασίας 7 - Δημιουργώ τα δικά μου χρώματα με το RGB LED

ΕΠΛ 012. JavaScripts

ΘΕΜΑ Α. 1. Η δυαδική αναζήτηση χρησιμοποιείται μόνο σε ταξινομημένες συλλογές δεδομένων.

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

ΠΡΟΓΡΑΜΜΑ synartisi_se_diadikasia ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: A[10], max, i, C, S, B, maxmax ΑΡΧΗ

ΑΣΚΗΣΗ 2 ΒΑΣΙΚΑ ΚΑΙ ΣΥΝΘΕΤΑ ΣΗΜΑΤΑ ΔΥΟ ΔΙΑΣΤΑΣΕΩΝ - ΕΙΚΟΝΑΣ

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

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

Bubble Hack Οπτικοποίηση του αλγορίθμου ταξινόμησης Bubble Sort στο Scratch

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ

ΒΑΣΙΚΕΣ ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΧΡΗΣΗ ΤΟΥ ΧΕΛΩΝΟΚΟΣΜΟΥ ΣΤΟ ΑΒΑΚΙΟ E-SLATE ΠΟΙΕΣ ΨΗΦΙΔΕΣ ΠΡΕΠΕΙ ΝΑ ΕΜΦΑΝΙΣΟΥΜΕ

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

Φύλλο εργασίας 4 - Δημιουργώ τα δικά μου χρώματα με το RGB LED

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι:

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

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

Ορισμός του χρώματος όρισε το χρώμα πένας σε [06_π03.sb] άλλαξε χρώμα πένας κατά. άλλαξε χρώμα πένας κατά άλλαξε χρώμα πένας κατά [06_π04.

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

Δομές Δεδομένων & Αλγόριθμοι

Ταξινόμηση. Ταξινόμηση ευθείας ανταλλαγής (Φυσαλίδα) 1) Να ταξινομηθεί ο πίνακας Α[Ν] σε αύξουσα σειρά με τη μέθοδο της φυσαλίδας.

ΜΕΡΟΣ ΠΡΩΤΟ: Θεωρητική Προσέγγιση...15

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση

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

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

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

Transcript:

JavaScript 6. Πίνακες Δήλωση - Προσπέλαση Οι πίνακες χρησιμοποιούνται για να αποθηκεύσουν πολλές τιμές χρησιμοποιώντας ένα όνομα μεταβλητής. Έτσι για παράδειγμα εάν θέλαμε να αποθηκεύσουμε τρία χρώματα θα έπρεπε να δηλώναμε στην JavaScript κάτι τέτοιο: var color1 = "Κόκκινο"; var color2 = "Πράσινο"; var color3 = "Μπλε"; Σκεφτείτε τώρα να θέλετε να αποθηκεύσετε 100 χρώματα. Αρχίζει να γίνεται άβολο. Η λύση σε αυτό είναι η χρήση πίνακα. Αντί για την παραπάνω δήλωση, χρησιμοποιούμε τον πίνακα colors και η δήλωση γίνεται ως εξής: Επίσης ο ίδιος πίνακας μπορεί να δηλωθεί με τον επόμενο τρόπο: var colors = new Array("Κόκκινο", "Πράσινο", "Μπλε"); Μπορούμε να δηλώσουμε πρώτα το μέγεθος του πίνακα και στη συνέχεια να θέσουμε τα στοιχεία του αργότερα. var colors = new Array(3); colors [0] = "Κόκκινο"; colors [1] = "Πράσινο"; colors [2] = "Μπλε"; Το 3 με το οποίο παραπάνω ορίζουμε το μέγεθος του πίνακα είναι περιττό στην JavaScript. Έχουμε την δυνατότητα να προσθέτουμε δυναμικά όσα στοιχεία θέλουμε σε έναν πίνακα: var colors = new Array(); colors [0] = "Κόκκινο"; colors [1] = "Πράσινο"; colors [2] = "Μπλε"; colors[3] = "Μωβ"; Οι δύο παραπάνω τρόποι είναι ισοδύναμοι. Για να προσπελάσουμε όλα τα στοιχεία μαζί μπορούμε να χρησιμοποιήσουμε απλά το όνομα του πίνακα όπως στο επόμενο παράδειγμα <h1>δήλωση πίνακα - Εμφάνιση στοιχείων</h1> <p id="viewcolors"></p> document.getelementbyid("viewcolors").innerhtml = colors; Νέο αρχείο: singlearray.html 1

Εάν θέλουμε όμως να προσπελάσουμε τα στοιχεία ένα ένα θα πρέπει να χρησιμοποιήσουμε το όνομα του πίνακα και έναν δείκτη όπως στο επόμενο παράδειγμα. Σημειώνεται ότι η αρίθμηση του πίνακα ξεκινά από το στοιχείο 0. Εάν προσπαθήσουμε να προσπελάσουμε ένα στοιχείο εκτός του πίνακα επιστρέφεται η ειδική τιμή «undefined». <h1>δήλωση πίνακα - Εμφάνιση στοιχείων</h1> <p id="viewcolors"></p> <p id="no2"></p> <p id="no0"></p> <p id="no0_after"></p> <p id="unfed"></p> document.getelementbyid("viewcolors").innerhtml = colors; document.getelementbyid("no2").innerhtml = "colors[2]:"+colors[2]; document.getelementbyid("no0").innerhtml = "colors[0]:"+colors[0]; colors[0]="ροζ"; document.getelementbyid("no0_after").innerhtml = "colors[0]:"+colors[0]; document.getelementbyid("unfed").innerhtml = "colors[3]:"+colors[3]; Υπάρχον αρχείο: singlearray.html Δραστηριότητα: Αλλάξτε ένα ακόμη στοιχείο του πίνακα και εμφανίστε το σε μία νέα παράγραφο. Μέθοδοι και ιδιότητες πινάκων Μπορούμε να βρούμε το μέγεθος ενός πίνακα με την ιδιότητα length η οποία επιστρέφει ένα νούμερο παραπάνω από τον τελευταίο δείκτη αφού όπως είδαμε η δεικτοδότηση ξεκινά από το 0. Στη συνέχεια μετράμε το μέγεθος ενός πίνακα, στη συνέχεια προσθέτουμε ένα στοιχείο και το μετράμε ξανά. Στην προσθήκη στοιχείων θέλει προσοχή γιατί εάν προσθέσουμε ένα στοιχείο σε μεγαλύτερο δείκτη δημιουργούμε κενά στον πίνακα. Ένας ασφαλής τρόπος να προσθέσουμε στοιχεία στο τέλος του πίνακα είναι να χρησιμοποιήσουμε την ιδιότητα length. 2

<h1>δήλωση πίνακα - Εμφάνιση στοιχείων</h1> <p id="viewcolors"></p> <p id="no2"></p> <p id="no0"></p> <p id="no0_after"></p> <p id="unfed"></p> <p id="length"></p> <p id="lengthafter"></p> <p id="lengthafter2"></p> <p id="lastelement"></p> document.getelementbyid("viewcolors").innerhtml = colors; document.getelementbyid("no2").innerhtml = "colors[2]:"+colors[2]; document.getelementbyid("no0").innerhtml = "colors[0]:"+colors[0]; colors[0]="ροζ"; document.getelementbyid("no0_after").innerhtml = "colors[0]:"+colors[0]; document.getelementbyid("unfed").innerhtml = "colors[3]:"+colors[3]; document.getelementbyid("length").innerhtml = "colors.length:"+colors.length; colors[3]="μωβ"; document.getelementbyid("lengthafter").innerhtml = "Μετά την εισαγωγή στοιχείου <br/>colors.length:"+colors.length; colors[colors.length]="κίτρινο"; document.getelementbyid("lengthafter2").innerhtml = "Μετά την εισαγωγή και 2ου στοιχείου <br/>colors.length:"+colors.length; document.getelementbyid("lastelement").innerhtml = "Τελευταίο στοιχείο <br/>colors.length:"+colors[colors.length-1]; Υπάρχον αρχείο: singlearray.html 3

Η μέθοδος sort() ταξινομεί τον πίνακα αλφαβητικά εάν πρόκειται για πίνακα αλφαριθμητικών. Σε περίπτωση που ο πίνακας περιέχει αριθμούς η ταξινόμηση γίνεται σαν να ήταν αλφαριθμητικά. Έτσι το "14" είναι μικρότερο από το "2.71" και όχι μεγαλύτερο. <h1>ταξινόμηση πίνακα</h1> <p id="colorsbefore"></p> <p id="colorsafter"></p> <p id="numbersbefore"></p> <p id="numbersafter"></p> var numbers = [3.14, 2.71, 14, 9.81, -5]; document.getelementbyid("colorsbefore").innerhtml = "colors πριν:"+colors; colors.sort(); document.getelementbyid("colorsafter").innerhtml = "colors μετά:"+colors; document.getelementbyid("numbersbefore").innerhtml = "numbers πριν:"+numbers; numbers.sort(); document.getelementbyid("numbersafter").innerhtml = "numbers μετά:"+numbers; Νέο αρχείο: sortarrays.html Εάν θέλουμε να ταξινομήσουμε και αριθμούς κατάλληλα θα πρέπει να συνδυάσουμε τη μέθοδο sort με κατάλληλη συνάρτηση. Στην επόμενη προσθήκη η function(a, b){return a - b επιστρέφει αρνητικό αριθμό εάν η δεύτερη παράμετρος είναι μικρότερη από την πρώτη, 0 εάν είναι ίσες ή θετικό αριθμό εάν η πρώτη παράμετρος είναι μεγαλύτερη. Η sort() ταξινομεί ανάλογα με αυτήν την τιμή. <h1>ταξινόμηση πίνακα</h1> <p id="colorsbefore"></p> <p id="colorsafter"></p> 4

<p id="numbersbefore"></p> <p id="numbersafter"></p> var numbers = [3.14, 2.71, 14, 9.81, -5]; document.getelementbyid("colorsbefore").innerhtml = "colors πριν:"+colors; colors.sort(); document.getelementbyid("colorsafter").innerhtml = "colors μετά:"+colors; document.getelementbyid("numbersbefore").innerhtml = "numbers πριν:"+numbers; numbers.sort(); document.getelementbyid("numbersafter").innerhtml = "numbers μετά:"+numbers; numbers.sort(function(a, b){return a - b); document.getelementbyid("numbersafterfunction").innerhtml = "numbers sort(function):"+numbers; Υπάρχον αρχείο: sortarrays.html Δραστηριότητα: Προσαρμόστε τον παραπάνω κώδικα ώστε να ταξινομεί τον αριθμητικό πίνακα σε φθίνουσα σειρά. Με την μέθοδο concat() έχουμε την δυνατότητα να ενώσουμε δύο πίνακες σε έναν. <h1>συννένωση πίνακα</h1> <p id="rgb"></p> <p id="cmyk"></p> <p id="concated"></p> var rgb = ["Red", "Green", "Blue"]; var cmyk = ["Cyan","Magenta","Yellow","Black"]; document.getelementbyid("rgb").innerhtml = "rgb:"+rgb; document.getelementbyid("cmyk").innerhtml = "cmyk:"+cmyk; var allcolors = rgb.concat(cmyk); document.getelementbyid("concated").innerhtml = "rgb.concat(cmyk):"+allcolors; 5

Νέο αρχείο: concatarrays.html Δραστηριότητα: Δημιουργήστε δύο πίνακες, ταξινομήστε τους, συνενώστε τους σε έναν και στη συνέχεια ταξινομήστε τον τελικό πίνακα. Εμφανίστε κατάλληλα όλα τα ενδιάμεσα βήματα σε μία ιστοσελίδα. Η μέθοδος reverse() αντιστρέφει τα στοιχεία ενός πίνακα. <h1>αντιστροφή πίνακα</h1> <p id="colorsbefore"></p> <p id="colorsafter"></p> document.getelementbyid("colorsbefore").innerhtml = "colors πριν:"+colors; colors.reverse(); document.getelementbyid("colorsafter").innerhtml = "colors μετά:"+colors; Νέο αρχείο: reversearray.html Δραστηριότητα: Συνδυάστε κατάλληλα τις μεθόδους reverse() και sort() ώστε να ταξινομήσετε έναν πίνακα που θα δημιουργήσετε σε φθίνουσα σειρά. Δημιουργήστε και κατάλληλη ιστοσελίδα για εμφάνιση των αποτελεσμάτων. Είναι αρκετά βολικό να προσπελάσουμε έναν πίνακα χρησιμοποιώντας μία δομή επανάληψης. Ο επόμενος κώδικας δίνει τις τιμές 1 έως 10 σε έναν πίνακα. Στην συνέχεια με τη βοήθεια της sort και της συνάρτησης function(a, b){return 0.5 - Math.random() μπορούμε να μπερδέψουμε τον πίνακα με τους αριθμούς. 6

<h1>αρχικές τιμές και ανακάτεμα πίνακα</h1> <p id="initial"></p> <button onclick="shufflearray()">ανακάτεμα</button> <p id="shuffled"></p> var numbers = new Array(10); for (i = 0; i < 10; i++) { numbers[i]=i+1 document.getelementbyid("initial").innerhtml = numbers; function shufflearray(){ numbers.sort(function(a, b){return 0.5 - Math.random()); document.getelementbyid("shuffled").innerhtml = numbers; Νέο αρχείο: forshuffle.html Στη συνέχεια, δημιουργούμε έναν τυχαίο πίνακα 50 στοιχείων από 1 έως 100 και βρίσκουμε τον μέσο όρο των στοιχείων του. <h1>μέση τιμή στοιχείων πίνακα</h1> <button onclick="newarray()">αρχικοποίηση πίνακα</button> <p id="initial"></p> <button onclick="mo()">μέσος όρος</button> <p id="result"></p> var a = new Array(50); function newarray(){ for (i = 0; i < 50; i++) { a[i]=math.floor((math.random() * 100) + 1); document.getelementbyid("initial").innerhtml = a; 7

function mo(){ var sum = 0; for (i = 0; i < 50; i++) { sum = sum + a[i] document.getelementbyid("result").innerhtml = sum/50; Νέο αρχείο: mo.html Δραστηριότητα: Δημιουργήστε έναν τυχαίο πίνακα 20 στοιχείων. Στη συνέχεια βρείτε τη μέση τιμή των περιττών του στοιχείων. Για να βρούμε το μέγιστο στοιχείο ενός πίνακα, η διαδικασία είναι η εξής: Θεωρούμε ότι το μέγιστο στοιχείο είναι το πρώτο στοιχείο του πίνακα και στη συνέχεια ψάχνουμε όλον τον υπόλοιπο πίνακα και όταν βρίσκουμε στοιχείο μεγαλύτερο από αυτό που είχαμε θεωρήσει ως τότε μέγιστο θέτουμε το νέο στοιχείο ως μέγιστο. Όταν θα έχουμε προσπελάσει όλον τον πίνακα στη μεταβλτή μας θα έχουμε το ολικό μέγιστο. Εάν θέλουμε, κρατάμε και τη θέση στην οποία το βρήκαμε σε μία δεύτερη μεταβλητή. Στην επόμενη υλοποίηση η μεταβλητή pos κρατάει τη θέση και η μεταβλητή max το μέγιστο. Τα στοιχεία του πίνακα είναι 20 και επιλέγονται τυχαία από το 1 έως το 1000. <h1>μέγιστο στοιχείο πίνακα</h1> <button onclick="newarray()">αρχικοποίηση πίνακα</button> <p id="array"></p> <button onclick="max()">εύρεση μεγίστου</button> <p id="result"></p> var a = new Array(20); function newarray(){ for (i = 0; i < 20; i++) { a[i]=math.floor((math.random() * 1000) + 1); document.getelementbyid("array").innerhtml = a; function max(){ var max = a[0]; var pos = 0; for (i = 1; i < 20; i++) { if (a[i]>max){ max = a[i]; pos = i; 8

document.getelementbyid("result").innerhtml = "Το μέγιστο είναι "+max+ " και βρέθηκε στη θέση "+pos; Νέο αρχείο: max.html Δραστηριότητα: Τι θα αλλάζατε για να βρείτε το ελάχιστο αντί για το μέγιστο. Δημιουργούμε έναν πίνακα με 20 τυχαία στοιχεία από το 1 έως το 10. Στη συνέχεια ψάχνουμε να βρούμε αν υπάρχει και σε ποια θέση του πίνακα βρίσκεται πρώτη φορά το στοιχείο με τιμή 1. Αυτός ο αλγόριθμος λέγεται και αλγόριθμος σειριακής αναζήτησης. Ψάχνει ένα ένα τα στοιχεία του πίνακα με τη σειρά και σε περίπτωση που βρει όμοιο ψηφίο με αυτό που ψάχνουμε σταματά το ψάξιμο. Για να σταματήσει την επανάληψη χρησιμοποιεί την εντολή break. <h1>εύρεση στοιχείου πίνακα</h1> <button onclick="newarray()">αρχικοποίηση πίνακα</button> <p id="array"></p> <button onclick="search()">εύρεση στοιχείου 1</button> <p id="result"></p> var a = new Array(20); function newarray(){ for (i = 0; i < a.length; i++) { a[i]=math.floor((math.random() * 10) + 1); document.getelementbyid("array").innerhtml = a; function search(){ var key = 1; var pos = -1; for (i = 1; i < a.length; i++) { if (a[i]==key){ pos = i; 9

break; if (pos==-1){ document.getelementbyid("result").innerhtml = "Το στοιχείο "+key+ " δεν βρέθηκε"; else{ document.getelementbyid("result").innerhtml = "Το στοιχείο "+key+ " βρέθηκε στη θέση "+pos; Νέο αρχείο: search.html Δραστηριότητα: Έστω πίνακας με κάποια στοιχεία, εδώ ευρωπαϊκές ομάδες, που εμφανίζονται σε μία ιστοσελίδα. Θα πρέπει με το πάτημα ενός κουμπιού ο χρήστης να μπορεί να προσθέσει την δικιά του ομάδα με τη βοήθεια της εντολής prompt που εμφανίζει ένα παράθυρο με χώρο για κείμενο και επιστρέφει το κείμενο αυτό σε μία μεταβλητή. Η ομάδα να εμφανίζεται τελευταία. Μεγάλο μέρος του απαιτούμενου κώδικα είναι συμπληρωμένο στον επόμενο πίνακα. Εσείς θα πρέπει να συμπληρώσετε κατάλληλα τις κενές γραμμές. <h1>αγαπημένη ομάδα - Άσκηση</h1> <button onclick="addteam()">προσθέστε την αγαπημένη σας!</button> <div><span>ομάδες: </span><span id="teams"></span></div> var teams = ["Liverpool", "Real", "Ajax"]; document.getelementbyid("teams").innerhtml = teams; function addteam(){ var team = prompt("ποια είναι η αγαπημένη σου ομάδα;"); 10

Νέο αρχείο: teams.html 11