Μετάβαση στο περιεχόμενο

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό — Ιούνιος 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>
έχει ως αποτέλεσμα ότι το script φορτώνεται και εκτελείται πριν φορτωθεί το DOM.


Ο παρακάτω κώδικας 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);
Η εκφώνηση ρωτά: «Στον παρακάτω κώδικας Express εκτελείται, μια αίτηση στο URL 'http://localhost:3000/users/123' θα εμφανίσει το μήνυμα 'User ID: 123' στον περιηγητή.»

  • Απάντηση: Σωστό
  • Αιτιολόγηση: Η διαδρομή 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.

✔ Επιβεβαίωσε · ✖ Βρήκα λάθος


✖ Βρήκα λάθος στη μεταγραφή