Εργαστήριο 7. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο

Σχετικά έγγραφα
Εργαστήριο 6. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο. Στόχος. Προετοιμασία περιβάλλοντος εργασίας. a) Εκκίνηση XAMPP

Εργαστήριο 8. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο

Εργαστήριο 9. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο. Στόχος. Προετοιμασία περιβάλλοντος εργασίας

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

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

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

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

2. ΕΙΣΑΓΩΓΗ ΣΤΗΝ HTML ΓΙΩΡΓΟΣ ΓΙΑΝΝΑΚΑΚΗΣ, ΜΑΝΩΛΗΣ ΤΣΙΚΝΑΚΗΣ

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

ΠΡΟΣΟΧΗ: Οι απαντήσεις πολλαπλής επιλογής µόνο πάνω στο ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ

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

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

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

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

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

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

8.4. Δραστηριότητες - ασκήσεις

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Java & Java EE 1o Μέρος: Servlets και Java Server Pages. Κακαρόντζας Γεώργιος

Τα προγράμματα σε ASP που χρησιμοποιήθηκαν για την υλοποίηση της διαχείρισης των μαθημάτων.

Προγραµµατισµός στην Basic

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

1. Απαιτήσεις εργασίας

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

ΚΕΦΑΛΑΙΟ 5. Matlab GUI για FWSVM και Global SVM

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

Άσκηση 5 -Δηµιουργία ιστοσελίδων µε HTML µέρος 5 ο

Hyper Text Markup Language (HTML) που σημαίνει γλώσσα σήμανσης υπερκειμένου.

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

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

Επαναληπτικές Διαδικασίες

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

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

Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:

11. Η γλώσσα HTML Πίνακες, Λίστες, Φόρμες

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

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

Αριθμητική Επίλυση Συνήθων Διαφορίκών Εξισώσεων 3ο Εργαστήριο 27/03/2015 1

Ο πιο κάτω πίνακας περιγράφει σε ποιες περιπτώσεις χρησιμοποιούμε τους τρεις πιο πάνω τρόπους:

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

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

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

Η γλώσσα προγραμματισμού Strange

Πίνακες HTML. Παναγιώτης Γαλάτης 1ο ΕΠΑΛ Ηρακλείου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Σημείωση: Για τα θέματα που ακολουθούν ο παρακάτω πίνακας παρουσιάζει ισοδύναμα μεταξύ τους σύμβολα και εκφράσεις. := ή =

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

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

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

Ο ΗΓΙΕΣ ΛΕΙΤΟΥΡΓΙΑΣ. Τοποθέτηση και αντικατάσταση των µπαταριών. Γενικές πληροφορίες. Περιγραφή λειτουργίας. ruwido s_4 τηλεχειριστήριο γενικής χρήσης

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

Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α. Σπυρόπουλος Α. Μπουντουβής

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

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

Αλληλεπίδραση με το Matlab

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

3. Γράψτε μία εντολή που να εμφανίζει π.χ. «Πόσα είναι τα κορίτσια του;» και μία που να εμφανίζει: «Τα κορίτσια του Τζειμς Μποντ είναι 4»

Java & Java EE 3o Μέρος: Διασφάλιση ασφάλειας σε εφαρμογές Java Enterprise Edition. Κακαρόντζας Γεώργιος

Προγραμματιστικές Εφαρμογές στο Διαδίκτυο Εργαστήριο 5

ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / Γ ΛΥΚΕΙΟΥ-ΘΕΡΙΝΑ ΣΕΙΡΑ: 1 η ΗΜΕΡΟΜΗΝΙΑ: 09/09/2012

Τα ηλεκτρονικά μέρη του ρομπότ Επιλογή των μονάδων εισόδου εξόδου ανάλογα το μοντέλο που θέλουμε να κατασκευάσουμε

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

Τι είναι υποπρόγραμμα; Τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο υπολογιστικό έργο (γράφεται χωριστά από το υπόλοιπο πρόγραμμα)

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

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo;

Φύλλο εργασίας 1 Εισαγωγή στη Ρομποτική

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

ιαχείριση Πληροφοριών στο ιαδίκτυο

// MATHIMA 2, // s.boot; s.makewindow.boot; // boot server!

Ετικέτες HTML. <!-->: Τα σχόλια χρησιμοποιούνται για να γράφουμε σημειώσεις μέσα στον

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

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

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

Επιστηµονικός Υπολογισµός Ι - Πρώτη εργαστηριακή άσκηση

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 9 ο Εργαστήριο. Απαλοιφή Gauss με μερική οδήγηση - Παρεμβολη

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

Τιμολο για Μή να σε Ταμει α

Υπολογισμός και αποστολή Αναλυτικής Περιοδικής Δήλωσης

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης

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

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 2

Δημιουργία ιστοσελίδας με. Wordpress - Βασικές λειτουργίες

Σημειωματάριο Τετάρτης 18 Οκτ. 2017

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75

8. Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το πηγαίο πρόγραμμα δεν περιέχει συντακτικά λάθη.

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ 2005

Πρώτη επαφή με το μαθηματικό πακέτο Mathematica

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

Transcript:

Εργαστήριο 7 Προγραμματιστικές Εφαρμογές στο Διαδίκτυο Στόχος Στόχος του εργαστηρίου είναι η εκμάθηση των βασικών προγραμματιστικών δομών της γλώσσας PHP και η δημιουργία φορμών για την επεξεργασία υποβαλλόμενων στοιχείων με έλεγχο εγκυρότητας. Προετοιμασία περιβάλλοντος εργασίας Ξεκινήστε τον Apache Server από το XAMPP. Θυμηθείτε ότι θα σώζετε όλα τα αρχεία των ασκήσεων στον φάκελο C:\xampp\htdocs. Και ότι θα εμφανίζετε τις σελίδες στον browser σας μέσω της διεύθυνσης http://localhost/<όνομα αρχείου>. Κα 1 Δρ.

Άσκηση 7a Δημιουργήστε το αρχείο page7a.php με το παρακάτω περιεχόμενο: a 2 +b $a = 12; $b = 25; $c = $a**2 + $b; <h1>βασικές δομές στην PHP : Μεταβλητές</h1> Σε αυτή την άσκηση θα γίνει επίδειξη των μεταβλητών (<i>variables</i>) στην <b>php</b>. Θα εμφανίσουμε τις μεταβλητές <b>$a</b>, <b>$b</b> και <b>$c</b> με 2 τρόπους. <ul> <li> με την εντολή <b>echo</b>: <br/> a = echo $a; <br/> b = echo $b; <br/> c = echo $c; <br/> </li> <li> με την <i>γρήγορη echo</i>: <br/> a = <?= $a <br/> b = <?= $b <br/> c = <?= $c <br/> </li> </ul> Σε αυτή τη σελίδα, αρχικά εκτελούμε κάποιες βασικές πράξεις μεταξύ των μεταβλητών $a και $b. Σημειώστε ότι η πράξη ** στην PHP σημαίνει ύψωση σε δύναμη, δηλαδή η πράξη $a**2 + $b σημαίνει a 2 +b. Στη συνέχεια τυπώνουμε με τη βοήθεια της εντολής echo τις μεταβλητές $a, $b και $c. Τέλος, δείχνουμε έναν πιο γρήγορο τρόπο για να τυπώνουμε μεταβλητές, τη δομή <?= $a. 2 Δρ.

Άσκηση 7b Δημιουργήστε το αρχείο page7b.php με το παρακάτω περιεχόμενο: function get_result($x){ $y = 2 * $x**2-5 * $x - 3; return $y; <h1>βασικές δομές στην PHP : Συναρτήσεις</h1> Σε αυτή την άσκηση θα γίνει επίδειξη των συναρτήσεων (<i>functions</i>) στην <b>php</b>. Θα υπολογίσουμε το αποτέλεσμα της παράστασης <b><i>y = 2x<sup>2</sup> - 5x - 3</i></b> για διάφορες τιμές του <b><i>x</i></b>. <table border="1" width="200"> <th>x</th> <th>y</th> <td align="right">-2</td> <td align="right"><?= get_result(-2) </td> <td align="right">0</td> <td align="right"><?= get_result(0) </td> <td align="right">2</td> <td align="right"><?= get_result(2) </td> <td align="right">4</td> <td align="right"><?= get_result(4) </td> Σε αυτή τη σελίδα ορίζουμε μία συνάρτηση get_result η οποία παίρνει σαν παράμετρο το $x και υπολογίζει την παράσταση y=2 x 2 5 x 3 και επιστρέφει ως αποτέλεσμα το $y. Στη συνέχεια καλούμε 4 φορές αυτή τη συνάρτηση, για τιμές -2, 0, 2 και 4 και εμφανίζουμε το αποτέλεσμα της συνάρτησης. Για παράδειγμα η εντολή <?= get_result(-2) καλεί την συνάρτηση get_result με x= 2 και τυπώνει το αποτέλεσμα. 3 Δρ.

Άσκηση 7b2 Τροποποιήστε κατάλληλα την σελίδα page7b.php ώστε η συνάρτηση να υπολογίζει την παράσταση y=5 x 3 4 x 2 +3 x 8 και τυπώστε το αποτέλεσμα για τιμές του x -3, -1, 0, 1 και 3. Άσκηση 7c Δημιουργήστε το αρχείο page7c.php με το παρακάτω περιεχόμενο: function get_result($x){ $y = 2 * $x**2-5 * $x - 3; return $y; $x_start = -10; $x_end = 15; $x_step = 0.5; <h1>βασικές δομές στην PHP : Βρόχοι 'for'</h1> Σε αυτή την άσκηση θα γίνει επίδειξη των βρόχων (<i>for loops</i>) στην <b>php</b>. Θα υπολογίσουμε το αποτέλεσμα της παράστασης <b><i>y = 2x<sup>2</sup> - 5x - 3</i></b> για διάφορες τιμές του <b><i>x</i></b> από <b><i><?= $x_start </i></b> έως <b><i><?= $x_end </i></b> με βήμα <b><i><?= $x_step </i></b>. <table border="1" width="200"> <th>x</th> <th>y</th> for ($x = $x_start; $x <= $x_end; $x += $x_step){ <td align="right"> <?= $x </td> <td align="right"> <?= get_result($x) </td> Σε αυτή τη σελίδα έχουμε πάλι την συνάρτηση get_result με παράμετρο $x, αλλά αντί να καλούμε 4 Δρ.

την συνάρτηση για όλες τις τιμές του x που μας ενδιαφέρουν μία-προς-μία, δημιουργούμε έναν βρόχο for-loop, ο οποίος καλεί την συνάρτηση για μία σειρά από τιμές του $x. Συγκεκριμένα, ξεκινάμε από την αρχική τιμή $x_start, και φτάνουμε μέχρι την τελική τιμή $x_end με βήμα $x_step. Αυτό ακριβώς κάνει η γραμμή εντολής: for ($x = $x_start; $x <= $x_end; $x += $x_step){ Μέσα στην παρένθεση υπάρχουν 3 τμήματα. Στο πρώτο τμήμα $x = $x_start δίνεται η αρχική τιμή. Στο δεύτερο τμήμα $x <= $x_end γίνεται ο έλεγχος έως πότε θα τρέχει το loop. Στο τρίτο τμήμα $x += $x_step γίνεται η αύξηση του $x κατά $x_step. Σημειώστε ότι το for-loop κλείνει 7 γραμμές πιο κάτω, εκεί που κλείνει το. Μέσα στο for-loop κλείνουμε την PHP και την ξανανοίγουμε στο τέλος για να παρεμβάλουμε κώδικα HTML που τυπώνει μία γραμμή... του πίνακα. Με αυτό τον τρόπο, όσες επαναλήψεις κάνει το for-loop, τόσες φορές θα τυπωθεί το τμήμα αυτό της HTML, δηλαδή τόσες γραμμές του πίνακα θα εμφανιστούν. Μέσα σε κάθε γραμμή τώρα, στα κατάλληλα σημεία, χρησιμοποιούμε τη δομή <?=... για να τυπώσουμε τις τιμές του $x και του αριθμητικού αποτελέσματος της συνάρτησης get_result($x). Άσκηση 7c2 Τροποποιήστε κατάλληλα την σελίδα page7c.php ώστε η συνάρτηση να υπολογίζει την παράσταση y=5 x 3 4 x 2 +3 x 8 και τυπώστε το αποτέλεσμα για τιμές του x από -30 έως +30 με βήμα 0.2. 5 Δρ.

Άσκηση 7d Δημιουργήστε το αρχείο page7d.html με το παρακάτω περιεχόμενο: <h1>υπολογισμός της δευτεροβάθμιας εξίσωσης</h1> Αυτή η σελίδα υπολογίζει την παράσταση <b><i>y = ax<sup>2</sup> + bx + c</i></b> για τιμές του <b><i>x</i></b> από -5 έως +15 με βήμα 0.5. <form action="page7d_compute.php" method="post"> <b>παράμετροι Εξίσωσης:</b> <table border="1"> <th width="80"> <i>a</i> </th> <td> <input type="text" name="a" value="2" /> </td> <th width="80"> <i>b</i> </th> <td> <input type="text" name="b" value="-5" /> </td> <th width="80"> <i>c</i> </th> <td> <input type="text" name="c" value="-3" /> </td> <input type="submit" value="υπολόγισε" /> </form> Σε αυτή τη σελίδα δίνουμε τη δυνατότητα στο χρήστη να εισάγει τις παραμέτρους a, b και c της δευτεροβάθμιας εξίσωσης ax 2 +bx+c ώστε να υπολογίσουμε το αποτέλεσμα για όποιες τιμές επιθυμεί ο χρήστης, και όχι μόνο για τις τιμές που έχουμε βάλει χειροκίνητα στο πρόγραμμά μας. Η σελίδα είναι απλή HTML, χωρίς κώδικα PHP, και απλώς παρουσιάζει μία φόρμα <form> στον χρήστη ώστε να εισάγει τις 3 παραμέτρους. Μόλις πατήσει στο πλήκτρο [Υπολόγισε] τα δεδομένα θα υποβληθούν στην σελίδα page7d_compute.php. 6 Δρ.

Δημιουργήστε τη σελίδα page7d_compute.php με το παρακάτω περιεχόμενο: $a = $_POST["a"]; $b = $_POST["b"]; $c = $_POST["c"]; $x_start = -10; $x_end = 15; $x_step = 0.5; function get_result($x){ global $a, $b, $c; $y = $a * $x**2 + $b * $x + $c; return $y; <h1>αποτέλεσμα υπολογισμού της δευτεροβάθμιας εξίσωσης</h1> <a href="page7d.html">επιστροφή</a> Παράμετροι χρήστη: <br /> a = <?=$a, b = <?=$b, c = <?=$c <table border="1" width="200"> <th>x</th> <th>y</th> for ($x = $x_start; $x <= $x_end; $x += $x_step){ <td align="right"> <?= $x </td> <td align="right"> <?= get_result($x) </td> Σε αυτή τη σελίδα αρχικά παίρνουμε από τη μεταβλητή-πίνακα $_POST τις τιμές a, b και c που υπέβαλε ο χρήστης. Στη συνέχεια ορίζουμε την αρχική και τελική τιμή του x όπως και το βήμα. Στη συνέχεια ορίζουμε με πιο γενικό τρόπο την συνάρτηση get_result ώστε να υπολογίζει την γενική παράσταση y=ax 2 +bx+c. Σημειώστε ότι για να έχει πρόσβαση η συνάρτηση get_result στις παραμέτρους $a, $b και $c, γράφουμε την ειδική εντολή global μέσα στην συνάρτηση 7 Δρ.

global $a, $b, $c; Με την εντολή λοιπόν global δίνουμε τη δυνατότητα μέσα σε μία συνάρτηση να έχουμε πρόσβαση σε μεταβλητές που δημιουργήθηκαν έξω από την συνάρτηση (global μεταβλητές). Τώρα είστε έτοιμοι να εκτελέσετε την σελίδα page7d.html. Εισάγετε τις δικές σας παραμέτρους a, b και c και πιέστε το πλήκτρο [Υπολόγισε]. Θα πρέπει να εμφανιστεί η σελίδα page7d_compute.php και τα αποτελέσματα των υπολογισμών. Κάνοντας click στη λέξη Επιστροφή θα πρέπει να σας επιστρέφει πίσω στη φόρμα για να εισάγετε νέες τιμές. Το παραπάνω PHP script λειτουργεί ορθά, αλλά έχει το εξής σημαντικό πρόβλημα. Εάν ο χρήστης αντί για αριθμούς εισάγει μη-αριθμητικά δεδομένα (πχ τυχαίες πληκτρολογήσεις) τότε θα εμφανιστούν διάφορα σφάλματα από τον κώδικα. Για τον λόγο αυτό είναι πολύ σημαντικό όταν έχουμε εισαγωγή δεδομένων από το χρήστη να κάνουμε διάφορους ελέγχους εγκυρότητας των δεδομένων (Data Validation). Άσκηση 7d2 Τροποποιήστε το script page7d_compute.php προσθέτοντας τις παρακάτω γραμμές κώδικα ακριβώς μετά από την γραμμή $x_step = 0.5; και πριν τη γραμμή function get_result($x){: if (!is_numeric($a)){ echo "Σφάλμα: Το a δεν είναι αριθμός!"; exit; Αυτές οι γραμμές κώδικα ελέγχουν (με την συνάρτηση is_numeric) εάν η παράμετρος $a είναι αριθμητική τιμή ή όχι. Εάν δεν είναι τότε εκτυπώνει ένα μήνυμα σφάλματος και με την εντολή exit προκαλεί άμεση λήψη του script για να μη συνεχίσει στους υπόλοιπους υπολογισμούς. Άσκηση 7d3 Τροποποιήστε το script page7d_compute.php προσθέτοντας επιπλέον ελέγχους για τις παραμέτρους $b και $c. Δοκιμάστε να βάλετε μη-αριθμητικές τιμές στις παραμέτρους αυτές στην φόρμα εισαγωγής και ελέγξτε ότι η σελίδας σας τις αντιμετωπίζει σωστά. 8 Δρ.

Άσκηση 7e Δημιουργήστε το αρχείο page7e.html με το παρακάτω περιεχόμενο: <h1>υπολογισμός της δευτεροβάθμιας εξίσωσης</h1> Αυτή η σελίδα υπολογίζει την παράσταση <b><i>y = ax<sup>2</sup> + bx + c</i></b> για διάφορες τιμές του <b><i>x</i></b>. <form action="page7e_compute.php" method="post"> <b>παράμετροι Εξίσωσης:</b> <table border="1"> <th width="80"> <i>a</i> </th> <td> <input type="text" name="a" value="2" /> </td> <th width="80"> <i>b</i> </th> <td> <input type="text" name="b" value="-5" /> </td> <th width="80"> <i>c</i> </th> <td> <input type="text" name="c" value="-3" /> </td> <br/> <b>διάστημα υπολογισμού:</b> <table border="1"> <th width="80"> από <i>x</i> </th> <td> <input type="text" name="x_start" value="-5" /> </td> <th width="80"> έως <i>x</i> </th> <td> <input type="text" name="x_end" value="15" /> </td> <th width="80"> βήμα <i>x</i> </th> <td> <input type="text" name="x_step" value="0.5" /> </td> <input type="submit" value="υπολόγισε" /> </form> Αυτή τη σελίδα είναι μία βελτίωση της σελίδας page7d.html όπου δίνουμε στον χρήστη τη δυνατότητα να επιλέξει και το διάστημα τιμών υπολογισμού για το x. 9 Δρ.

Δημιουργήστε και την αντίστοιχη σελίδα page7e_compute.php που θα υποδέχεται τα δεδομένα: $a = $_POST["a"]; $b = $_POST["b"]; $c = $_POST["c"]; $x_start = $_POST["x_start"]; $x_end = $_POST["x_end"]; $x_step = $_POST["x_step"]; if (!is_numeric($a)){ echo "Σφάλμα: Το a δεν είναι αριθμός!"; exit; if (!is_numeric($b)){ echo "Σφάλμα: Το b δεν είναι αριθμός!"; exit; if (!is_numeric($c)){ echo "Σφάλμα: Το c δεν είναι αριθμός!"; exit; if (!is_numeric($x_start)){echo "Σφάλμα: Το x_start δεν είναι αριθμός!"; exit; if (!is_numeric($x_end)){echo "Σφάλμα: Το x_end δεν είναι αριθμός!"; exit; if (!is_numeric($x_step)){ echo "Σφάλμα: Το x_step δεν είναι αριθμός!"; exit; if ($x_step<=0){echo "Σφάλμα: Το x_step πρέπει να είναι θετικό!"; exit; function get_result($x){ global $a, $b, $c; $y = $a * $x**2 + $b * $x + $c; return $y; <h1>αποτέλεσμα υπολογισμού της δευτεροβάθμιας εξίσωσης</h1> <a href="page7e.html">επιστροφή</a> Παράμετροι χρήστη: <br/> a = <?=$a, b = <?=$b, c = <?=$c <br/> x_start = <?=$x_start, x_end = <?=$x_end, x_step = <?=$x_step <table border="1" width="200"> <th>x</th> <th>y</th> for ($x = $x_start; $x <= $x_end; $x += $x_step){ <td align="right"> <?= $x </td> <td align="right"> <?= get_result($x) </td> Η σελίδα αυτή είναι μία βελτίωση της σελίδας page7d_compute.php όπου έχουμε κάνει τις εξής προσθήκες: 10 Δρ.

Αντί να δίνουμε σταθερές τιμές στις παραμέτρους $x_start, $x_end και $x_step, παίρνουμε τις τιμές από την $_POST, δηλαδή από τις τιμές που υπέβαλε ο χρήστης στην φόρμα. Στη συνέχεια έχουμε εμπλουτίσει τους ελέγχους εγκυρότητας των δεδομένων του χρήστη. Ελέγχουμε εάν έχουν αριθμητική τιμή όλες οι παράμετροι (a, b, c, x_start, x_end, x_step), αλλιώς εκτυπώνουμε κατάλληλο μήνυμα λάθους και σταματάμε την περαιτέρω εκτέλεση του κώδικα. Τέλος, ελέγχουμε ότι το $x_step είναι θετικός αριθμός. Αυτό είναι πολύ σημαντικό εάν ο χρήστης εισάγει έναν αρνητικό αριθμό ή την τιμή 0. Σε αυτή την περίπτωση, το for-loop δεν θα σταματήσει ποτέ διότι η συνθήκη $x <= $x_end δεν θα ικανοποιηθεί ποτέ. Αυτό είναι ένα πολύ σοβαρό σφάλμα, διότι ο κώδικας PHP θα τρέχει συνεχώς και θα τυπώνει άπειρες γραμμές. Δοκιμάστε διάφορες τιμές στις παραμέτρους (έγκυρες και μη έγκυρες) για να ελέγξετε ότι οι έλεγχοι λειτουργούν σωστά. Άσκηση 7e2 Τροποποιήστε κατάλληλα τις παραπάνω σελίδες page7e.html και page7e_compute.php ώστε να υπολογίζουν την τριτοβάθμια εξίσωση ax 3 +bx 2 +cx+d. 11 Δρ.