Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό — Ιούνιος 2025 (Ομάδα Β)¶
Messenger_creation_1A295866-8081-4C5C-BEE4-D8C29FE72EEF.png¶
[δυσανάγνωστο]Α Μηχανικών Η/Υ & Πληροφορικής
Προγραμματισμός & Συστήματα στον Παγκόσμιο Ιστό
Για κάθε σωστή απάντηση λαμβάνετε 1 μονάδα (στις 30), ενώ κάθε λάθος στοιχίζει 0,5 μονάδα (στις 30).
Τα HTML αρχεία πρέπει να γίνουν compile πριν να είναι δυνατή η εμφάνισή τους στον Mozilla Firefox browser.
Σε μία μη διατεταγμένη λίστα (unordered list), που δημιουργούμε με χρήση των HTML tags <ul> και <li>, τα στοιχεία της λίστας θα εμφανίζονται με τυχαία σειρά εμφάνισης σε κάθε φόρτωση του HTML αρχείου στον browser.
Ο παρακάτω κώδικας σε ένα HTML αρχείο, θα εμφανίσει μία εικόνα που όταν την επιλέξουμε θα εμφανίσει ένα παράθυρο διαλόγου (pop up) με τίτλο «Test picture»:
<a href = "mypage.html">
<img src = "images/myimage.png" alt = "Test picture">
</a>
Με την HTML δε είναι δυνατό να δημιουργήσουμε ένα πολύπλοκο πίνακα όπως ο παρακάτω:
[Σχήμα: πολύπλοκος πίνακας με επικεφαλίδα «Πίνακας 1» και κελιά «Κελί 1», «Κελί 2», «Κελί 3»· τα όρια των κελιών δυσδιάκριτα. Η διάταξη των κελιών (ένα κελί κάτω από την επικεφαλίδα, δύο στην επόμενη γραμμή) δεν αποδίδεται πλήρως.]
Σε ένα αρχείο CSS περιέχεται ο κώδικας .special {color: blue}. Αυτό σημαίνει πως όλες οι HTML ετικέτες με το αλφαριθμητικό "special" θα εμφανιστούν με μπλε γραμματοσειρά.
Η JavaScript είναι μια γλώσσα ασθενών τύπων, όπου οι μεταβλητές δεν συνδέονται με ένα συγκεκριμένο τύπο δεδομένων.
Αν ένα κουμπί υποβολής (<button type="submit">) μέσα σε μια φόρμα έχει έναν event listener για το συμβάν που καλεί το event.preventDefault(), η φόρμα θα υποβληθεί κανονικά όταν πατηθεί το κουμπί.
Ο παρακάτω κώδικας JavaScript θα επιστρέψει το πρώτο στοιχείο με id = 'button':
…et element = document.querySelector('#button');
Η συμπερίληψη ενός script στην αρχή της σελίδας ως:
<script src="script.js"></script>
Ο παρακάτω κώδικας Node.js θα τυπώσει στην κονσόλα τα γράμματα 'A', 'B', 'C' με αυτήν ακριβώς τη σειρά:
console.log('A');
setTimeout(() => {
console.log('B');
}, 0);
console.log('C');
Η συνάρτηση 'fetch()' στην JavaScript εκτελείται συγχρονικά, 'παγώνοντας' την εκτέλεση του υπόλοιπου κώδικα μέχρι να επιστρέψει η απάντηση.
Ένα promise στη JavaScript θα εκτελεστεί πριν από οποιαδήποτε εντολή στη στοίβα κλήσης.
Για την φόρτωση εξωτερικών πόρων σε JSON μορφή μπορεί να χρησιμοποιηθεί το XMLHTTPRequest.
Ο παρακάτω κώδικας Express εκτελείται, μια αίτηση στο URL http://localhost:3000/users/123 θα εμφανίσει το μήνυμα 'User ID: 123' στον περιηγητή.
const express = require('express');
const app = express();
…('/users/:id', (req, res) => { res.send(`User ID: ${req.params.id}`); });
app.listen(3000);
…aScript μπορούμε να χειριστούμε ένα response που επιστρέφει η fetch() ως κείμενο με τη μέθοδο .text()
…ελέσουμε PHP αρχεία στον υπολογιστή μας είναι απαραίτητο να έχουμε εγκατεστημένη τη […]
[Λείπει από τη φωτογραφία: η συνέχεια της τελευταίας πρότασης (μετά το «εγκατεστημένη τη») στο δεξί άκρο της φωτογραφίας]
Λύσεις (⚪ AI, μη επαληθευμένο)
Κατάσταση: ⚪ AI, μη επαληθευμένο Πηγή: λύσεις AI (antigravity-gemini, gemini-3.7-flash, sonnet), ανεξάρτητη επανάληψη και αντιπαραβολή· καμία δεν έχει ελεγχθεί από άνθρωπο
Προσοχή
Λύση από AI — ελέγξτε την· δεν έχει επαληθευτεί από άνθρωπο. Η ένδειξη «δύο λύσεις συμφωνούν» δεν σημαίνει ότι η απάντηση είναι σωστή.
AI λύσεις — 2025-06-b¶
Οι λύσεις γράφτηκαν από μοντέλα AI και δεν έχουν ελεγχθεί από άνθρωπο. Η αρίθμηση ακολουθεί το αρχείο θεμάτων.
Θέμα 1 (compile HTML)¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Η HTML είναι γλώσσα σήμανσης· ερμηνεύεται από τον browser χωρίς μεταγλώττιση. Λάθος.
Θέμα 2 (ul/li τυχαία σειρά)¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Η σειρά είναι αυτή του κώδικα. Λάθος.
Θέμα 3 (εικόνα με alt «Test picture»)¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Το alt είναι εναλλακτικό κείμενο, όχι pop up· το κλικ οδηγεί στο mypage.html. Λάθος.
Θέμα 4 (πολύπλοκος πίνακας)¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: μέτρια
Η HTML υποστηρίζει συγχώνευση κελιών με colspan/rowspan, άρα είναι δυνατή η δημιουργία πολύπλοκων πινάκων. (Το σχήμα είναι ελλιπές, αλλά η γενική πρόταση «δεν είναι δυνατό» είναι λάθος.) Λάθος.
Θέμα 5 (.special)¶
Αξιοπιστία: μία λύση AI, δεν έχει αντιπαραβληθεί με δεύτερη · εμπιστοσύνη λύτη: χαμηλή
Το .special επιλέγει στοιχεία με class="special". Η εκφώνηση λέει «με το αλφαριθμητικό special» χωρίς να λέει class ή id· αν εννοεί την κλάση, είναι Σωστό. (Στην αντίστοιχη εκφώνηση του 2022-01-a ανέφερε id, και εκεί ήταν λάθος· ελέγξτε το πρωτότυπο.)
Θέμα 6 (ασθενείς τύποι)¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Η JavaScript είναι δυναμικά/χαλαρά τυποποιημένη· οι μεταβλητές δεν συνδέονται με τύπο. Σωστό.
Θέμα 7 (preventDefault στο submit)¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Το event.preventDefault() ακυρώνει την προεπιλεγμένη υποβολή. Λάθος.
Θέμα 8 (querySelector('#button'))¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Η querySelector επιστρέφει το πρώτο στοιχείο που ταιριάζει (η αρχή του let είναι κομμένη στη μεταγραφή). Σωστό.
Θέμα 9 (script στην αρχή της σελίδας)¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Script χωρίς defer/async εκτελείται αμέσως όταν συναντηθεί, πριν χτιστεί το υπόλοιπο DOM. Σωστό.
Θέμα 10 (Node: A, B, C)¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Επαλήθευση με node: A, C, B (το callback του setTimeout τρέχει αφού αδειάσει η στοίβα). Λάθος.
Θέμα 11 (fetch συγχρονικά)¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Η fetch() είναι ασύγχρονη και επιστρέφει promise· δεν παγώνει την εκτέλεση. Λάθος.
Θέμα 12 (promise πριν από κάθε εντολή στη στοίβα)¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Τα callbacks των promises (microtasks) τρέχουν αφού αδειάσει η τρέχουσα στοίβα, όχι πριν. Λάθος.
Θέμα 13 (XMLHttpRequest για JSON)¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Το XHR μπορεί να φέρει οποιαδήποτε απόκριση (και JSON, με JSON.parse). Σωστό.
Θέμα 14 (Express /users/:id)¶
Αξιοπιστία: λύθηκε με βάση τις φωτογραφίες του θέματος· μία λύση AI
Στην εικόνα Messenger_creation_1A295866-8081-4C5C-BEE4-D8C29FE72EEF.png ο κώδικας διακρίνεται καθαρά (με αποκομμένα μόνο τα πρώτα γράμματα app. στο αριστερό περιθώριο):
const express = require('express');
const app = express();
app.get('/users/:id', (req, res) => { res.send(`User ID: ${req.params.id}`); });
app.listen(3000);
- Απάντηση: Σωστό
- Αιτιολόγηση: Η διαδρομή
app.get('/users/:id', ...)ορίζει παράμετρο διαδρομής (route parameter):id. Κατά την αποστολή GET αιτήματος στοhttp://localhost:3000/users/123, η τιμή123δεσμεύεται στοreq.params.id. Η μέθοδοςres.send(User ID: ${req.params.id})στέλνει πίσω στον περιηγητή την απάντησηUser ID: 123.
Θέμα 15 (response.text())¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: μέτρια
Η αρχή της πρότασης είναι κομμένη («…aScript»), αλλά η μέθοδος .text() του Response επιστρέφει την απόκριση ως κείμενο. Σωστό.
Θέμα 16 (εκτέλεση PHP, «απαραίτητο να έχουμε εγκατεστημένη τη…»)¶
Αξιοπιστία: λύθηκε με βάση τις φωτογραφίες του θέματος· μία λύση AI
Στην εικόνα Messenger_creation_1A295866-8081-4C5C-BEE4-D8C29FE72EEF.png (και σε πανομοιότυπη εμφάνιση στην εξεταστική 2024-06) η πλήρης πρόταση είναι:
«Για να εκτελέσουμε PHP αρχεία στον υπολογιστή μας είναι απαραίτητο να έχουμε εγκατεστημένη τη MySQL.»
- Απάντηση: Λάθος
- Αιτιολόγηση: Για την εκτέλεση αρχείων PHP απαιτείται μόνο ο διερμηνέας της PHP (PHP interpreter / CLI ή ενσωματωμένος σε web server όπως Apache/Nginx). Η βάση δεδομένων MySQL είναι ένα ανεξάρτητο σύστημα διαχείρισης βάσεων δεδομένων και δεν είναι απαραίτητη για την εκτέλεση της PHP, εκτός αν η συγκεκριμένη εφαρμογή χρησιμοποιεί βάση δεδομένων MySQL.