ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ - Συμπληρώνται σύνδεσομοι και διάφορες απαντήσεις σταδιακά

ΟΜΑΔΑ Α. ΓΕΝΙΚΕΣ ΕΡΩΤΗΣΕΙΣ

1. Από ποια βασικά τμήματα αποτελείται ένας ηλεκτρονικός υπολογιστής; Να περιγράψετε συνοπτικά τις κύριες λειτουργίες του κάθε τμήματος.

Τα βασικά τμήματα από τα οποία αποτελείται ένας ηλεκτρονικός υπολογιστής είναι τα εξής: Α) Κεντρική μονάδα: η οποία εξωτερικά είναι ένα μεταλλικό κουτί, περιέχει όλα τα βασικά εξαρτήματα με τα οποία δουλεύει ο υπολογιστής. Όλη η ουσιαστική εργασία του Η/Υ γίνεται μέσα σε αυτή τη μονάδα. Στην πρόσοψη της κεντρικής μονάδας το λαμπάκι λειτουργίας του σκληρού δίσκου και το βασικό διακόπτη μέσω του οποίου θέτουμε σε λειτουργία τον υπολογιστή. Στο εσωτερικό της κεντρικής μονάδας βρίσκονται: Οι συσκευές αποθήκευσης (με πιο συνηθισμένη το σκληρό δίσκο), η μητρική πλακέτα (motherboard), Το τροφοδοτικό, το οποίο διαχειρίζεται το ηλεκτρικό ρεύμα της πρίζας και εφοδιάζει με ρεύμα τον Η/Υ και οικάρτες επέκτασης, οι οποίες προσθέτουν κάποιες νέες δυνατότητες στον υπολογιστή σας.

Β) Οθόνη: Η οθόνη του Η/Υ εξωτερικά παρουσιάζει αρκετά κοινά χαρακτηριστικά με μια τηλεόραση. Πράγματι, βρίσκουμε ένα διακόπτη ON-OFF, με τη βοήθεια του οποίου ανοίγουμε ή κλείνουμε την οθόνη, καθώς και διακόπτες για τη ρύθμιση της φωτεινότητας (Brightness), της αντίθεσης (Contrast) και διόρθωσης παραμορφώσεων. Οι οθόνες κατασκευάζονται σε διάφορα μεγέθη. Η μονάδα μέτρησης των διαστάσεων της οθόνης είναι η ίντσα ("). Τυπικές αναλύσεις που χρησιμοποιούνται στις οθόνες των προσωπικών υπολογιστών είναι 640Χ480, 800Χ600, 1024Χ768, 1280Χ1024 και 1600Χ1200.

Γ) Περιφεριακά: Οποιαδήποτε άλλη συσκευή συνδέεται στην Κεντρική μονάδα του υπολογιστή ονομάζεται περιφεριακή μονάδα. Οι βασικές από αυτές είναι το πληκτρολόγιο, το ποντίκι, ο εκτυπωτής κτλ .

Τα βασικά μέρη ενός ηλεκτρονικού υπολογιστή είναι: Η Μητρική πλακέτα, Ο Επεξεργαστής, Συσκευές Εισόδου, Συσκευές Εξόδου, Προσωρινή μνήμη και τέλος η Μόνιμη μνήμη.

Η Μητρική πλακέτα είναι η βάση του ηλεκτρονικού υπολογιστή, εκεί όπου όλα τοποθετούνται για να υπάρχει σύνδεση μεταξύ των διαφορετικών τμημάτων.

Ο Επεξεργαστής ειναι το μέρος του υπολογιστή στον οποίον γίνονται όλες οι αριθμητικές και λογικές πράξεις. Ο επεξεργαστής η αλλιώς κεντρική μονάδα επεξεργασίας, διαβάζει εντολές απο τη μνήμη και της εκτελεί.

Συσκευές Εισόδου ειναί οι συσκευές με της οποίες εισάγουμε πληροφορίες σε ενα ηλεκτρονικό υπολογιστή, οι κυριότερες συσκευές σε αυτήν την κατηγορία είναι το ποντίκι και το πληκτρολόγιο.

Συσκευές Εξόδου ειναί οι συσκευές με της οποίες ο ηλεκτρονικός υπολογιστής μας εμφανίζει μια πληροφορία, η απο ψηφιακή την μετατρέπει σε αναλογική όπως ενας εκτυπωτής. Άλλη τέτοια συσκευή είναι η Οθόνη.

Προσωρινή Μνήμη η αλλιώς μνήμη τυχαίας προσπέλασης(RAM) είναι η μνήμη στην οποία αποθηκεύονται προσωρίνα δεδομένα απο της διεργασίες της οποίες χρησιμοποιεί ο επεξεργαστής για να εκτελέσει της εντολές που θέλουμε.

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

- Υλικό μέρος (Hardware): 1. Κεντρική μονάδα επεξεργασίας (ΚΜΕ ή CPU) Είναι το κεντρικό εξάρτημα που επεξεργάζεται δεδομένα σε έναν ηλεκτρονικό υπολογιστή, ελέγχει τη λειτουργία του και εκτελεί βασικές λειτουργίες διασύνδεσης και μεταβίβασης εντολών 2. Κεντρική μνήμη (RAM και ROM-BIOS) Η RAM ειναι η μνημη οπου αποθηκευονται προγραμματα και δεδομενα τα οποια ειτε θα εκτελεστουν ή θα υποστουν επεξεργασια. Η ROM επιτρεπει την ταχαια προσπελαση δεδομενων. Το BIOS ειναι ο αρχικος κωδικας ο οποιος ενεργοποιειται κατα την εναρξη του υπολογιστη (Boot) και εντοπιζει, ελεγχει, και αρχικοποιει της συσκευες του συστηματος. 3. Συσκευές εισόδου-εξόδου (ποντίκι, πληκτρολόγιο, οθόνη) Με αυτες δινουμε και λαμβανουμε εντολες απο τον υπολογιστη 4. Εσωτερικές και εξωτερικές μονάδες ανάγνωσης και αποθήκευσης δεδομένων (σκληρός δίσκος HDD/SSD) Το λογισμικο καθως και ολα τα υπολοιπα προγραμματα ειναι αποθηκευμενα εκει. 5. Περιφερειακές συσκευές (εκτυπωτής, σκάνερ, μόντεμ κλπ)

ΠΙΣΤΟΠΟΙΗΣΗ ΤΕΠ

2. Ποιες είναι οι διαθέσιμες τεχνολογίες εκτυπωτών και σε ποια χρήση απευθύνεται η κάθε μία; Να αναφέρετε τα κριτήρια αξιολόγησης ενός εκτυπωτή.

Υπάρχουν αρκετά είδη εκτυπωτών, με πιο διαδεδομένους τους ακόλουθους: α) Dot Matrix, β) Inkjet, που λειτουργ Inkjet, που λειτουργούν με σύστημα ψεκασμού στο χαρ ούν με σύστημα ψεκασμού στο χαρτί, γ) Laser και δ) τί, γ) Laser και δ) Θερμικοί εκτυπωτές. α) Οι Dot Matrix παρέχουν χαμηλή ποιότητα εκτύπωσης και χρησιμοποιούνται κυρίως για εκτυπώσεις αποδείξεων, τιμολογίων κ.λπ., εκεί δηλαδή όπου η ποιότητα της εκτύπωσης δεν απασχολεί ιδιαίτερα. Η λειτουργία των εκτυπωτών ακίδων βασίζεται στην χρήση μιας μήτρας που έχει μία ή δύο στήλες με ακίδες. β) Οι Inkjet παρέχουν εκτυπώσεις ικανοποιητικής ποιότητας και μπορούν να εξυπηρετήσουν τις ανάγκες ενός μικρού γραφείου και έχουν μικρό κόστος, ακόμα και οι έγχρωμοι, και είναι αρκετά αθόρυβοι. Η εκτύπωση των εκτυπωτών ψεκασμού (Inkjet) πραγματοποιείται με ψεκασμό μελάνης πάνω στο χαρτί. Η κεφαλή εκτύπωσης περιέχει το μελάνι το οποίο ψεκάζει πάνω στο χαρτί έτσι, ώστε να ζωγραφίζει την εικόνα που στέλνει ο υπολογιστής. γ) Οι εκτυπωτές Laser υπερτερούν, υπερτερούν, καθώς επιτυγχάνουν επιτυγχάνουν τις ποιοτικότερες ποιοτικότερες εκτυπώσεις εκτυπώσεις αλλά το κόστος είναι μεγαλύτερο σε σχέση με τους Inkjet εκτυπωτές και ιδιαίτερα οι έγχρωμοι είναι πολύ ακριβοί. Οι εκτυπωτές Laser ονομάζονται επίσης, εκτυπωτές σελίδας, γιατί μια ακτίνα Laser ζωγραφίζει την εικόνα της σελίδας επάνω σ' ένα ηλεκτρικά φορτισμένο κύλινδρο, το τύμπανο. Το μελάνι, με μορφή σκόνης, κολλά στα φορτισμένα μέρη του τύμπανου και στη συνέχεια μεταφέρεται στο χαρτί, όπου και στερεοποιείται με τη βοήθεια θερμότητας δ) Οι Θερμικοί εκτυπωτές βρίσκουν εφαρμογή στις βιομηχανικές και παραγωγικές μονάδες, εξυπηρετώντας εκτυπωτικές ανάγκες ετικετών, σημάτων, επιγραφών κ.ά. και το κόστος είναι απαγορευτικό για αγορά για προσωπική χρήση.

Οι διαθέσιμες κατηγορίες εκτυπωτών ανάλογα με την τεχνολογία εκτύπωσης είναι: Κρουστικοί εκτυπωτές (Ιmpact printers)Οι εκτυπωτές αυτοί αποτελούν την πιο παλιά κατηγορία εκτυπωτών. Εκτυπωτές ψεκασμού (Inkjet printers)Οι εκτυπωτές αυτοί έιναι κατάλληλοι για κείμενα και για φωτογραφίες, για συχνό αλλά μικρό όγκο εκτυπώσεων. Εκτυπωτές laser (Laser printers)Οι εκτυπωτές αυτοί είναι ιδανικοί για κείμενα και για μεγάλο όγκο εκτυπώσεων.

Τα κριτήρια αξιολόγησης ενός εκτυπωτή έιναι: 1) Η ταχύτητα εκτύπωσης η οποία μετριέται με σελίδες ανα λεπτό ή με χαρακτήρες ανα δευτερόλεπτο. 2) Η ποιότητα εκτύπωσης η οποία μετριέται με κουκίδες ανα ίντσα.3) Το κόστος της μελάνης, πόσο κοστίζει μια μελάνη

Χωριζονται σε κρουστικους (impact) και μη κρουστικους (Inkjet, Laser). - Κρουστικοί εκτυπωτές (Dot matrix) - Εκτυπωτες ψεκασμου μελανης (Inkjet Printers) - Εκτυπωτες laser (Laser Printers) Οι εκτυπωτες Dot matrix εχουν χαμηλοτερο κοστος εκτυπωσης αλλα ειναι πιο ευθραστοι. Επισης δεν παραγουν αντιγραφα υψηλων αναλυσεων. Αντιθετα οι Laser και Inkjet εκτυπωτες παραγουν αντιγραφα υψηλων αναλυσεων και μπορουν να εκτυπωσουν πανω σε πολλες επιφανειες. Οι inkjet εκτυπωτες ειναι το πιο συνηθισμενο ειδος εκτυπωτη για επιχειρησης και οικιακη χρηση ενω οι Dot matrix εχουν παψει να χρησιμοποιουνται πολυ με την εξαιρεση των μηχανων εκτυπωσης αποδειξεων και ετικετων.

Αξιολογουμε εναν εκτυπωτη με βαση: 1. Αναλυση σε DPI (κουκιδες ανα ιντσα) 2. Ταχυτητα σε ppm (σελιδες ανα λεπτο) ή cpm (χαρακτηρες ανα λεπτο) 3. Δυνατοτητα χρωματος 4. Ειδος και μεγεθος χαρτιου (Α4,Α3, duplex) 5. Τυπος συνδεσης (π.χ. θύρα USB, παραλληλη θυρα) 6. Θόρυβος 7. Κοστος αγορας και εκτυπωσης

3. Ποιες κατηγορίες αποθηκευτικών μέσων έχουμε; Σε ποια από αυτές ανήκουν οι σκληροί δίσκοι και σε ποια οι οπτικοί δίσκοι;

Οι κατηγορίες αποθηκευτικών στην επιστήμη των Η/Υ είναι οι εξής: Α. Τα μαγνητικά μέσα αποθήκευσης είναι οι ταινίες (magnetic tapes) και οι δίσκοι (disks). H εγγραφή των ψηφιακών δεδομένων σε αυτά βασίζεται στη μόνιμη μαγνήτιση μιας μικρής περιοχής του μαγνητικού μέσου με την βοήθεια ενός ηλεκτρομαγνήτη. Η ανάγνωση γίνεται με το πέρασμα του ηλεκτρομαγνήτη πάνω από τη μαγνητισμένη περιοχή και τη δημιουργία επαγωγικού ρεύματος. Η φορά του επαγωγικού ρεύματος εξαρτάται από την πολικότητα της μαγνήτισης και επομένως καθορίζει τη τιμή της ψηφιακής πληροφορίας: 0 ή 1. Στην περίπτωση της εγγραφής έχουμε το αντίστροφο φαινόμενο. Ανάλογα με την τιμή 0 ή 1 που θέλουμε να γραφεί στο δίσκο, διοχετεύεται ρεύμα αντίστοιχης φοράς, δημιουργείται λοιπόν μαγνητικό πεδίο που μαγνητίζει αντίστοιχα την περιοχή του δ χή του δίσκου. Β. Οι οπτικοί δίσκοι (Compact Disk) είναι τα τελευταία χρόνια το πιο διαδεδομένο μέσο αποθήκευσης μεγάλου όγκου ψηφιακών δεδομένων, ειδικά για εφαρμογές πολυμέσων. Οι συσκευές ανάγνωσης οπτικών δίσκων βασίζονται στην ανάκλαση μιας φωτεινής δέσμης laser πάνω στην επιφάνεια του δίσκου. Το υλικό κατασκευής τους ποικίλλει ανάλογα με την τεχνολογία ανάγνωσης και εγγραφής. Το κοινό χαρακτηριστικό τους είναι η μεγάλη διάρκεια ζωής τους λόγω του προστατευτικού στρώματος πλαστικού που τους περιβάλλει. Οι πιο διαδεδομένες κατηγορίες οπτικών δίσκων είναι οι εξής: · CD-ROM: Μουσικά CD (CD-Audio) και CD δεδομένων (CD-Data) · Εγγράψιμα Εγγράψιμα CD (CD-Recordable ή WORM-Write Once Read Many) · Eπανεγγράψιμα Eπανεγγράψιμα CD (CD-RW Rewritable ή CD-Erasable) · DVD (Digital (Digital Versatile Versatile Disks) Γ. USB Flash Memory. Συνδέεται με τον υπολογιστή μέσω θύρας USB και αποθηκεύει δεδομένα σε ολοκληρωμένα κυκλώματα (τσιπ) μνήμης που βρίσκονται στο εσωτερικό του. Το είδος αυτών των τσιπ ονομάζεται "μνήμη flash" (φλας - "flash memory") και γι αυτόν το λόγο η συσκευή ονομάζεται flash drive. Όση ώρα είναι συνδεδεμένο στον υπολογιστή μπορούμε σε αυτό να γράψουμε ή να διαβάσουμε δεδομένα με μεγάλη ταχύτητα ενώ όταν το αποσυνδέσουμε τα δεδομένα μας παραμένουν στα τσιπ μνήμης για απεριόριστο χρόνο. Δ. Οι κάρτες μνήμης είναι πολύ μικρά αποθηκευτικά μέσα που περιέχουν ολοκληρωμένα κυκλώματα μνήμης flash (φλας). Η διαφορά τους από τα USB flash drive είναι ότι δε μπορούν να συνδεθούν συνδεθούν απευθείας απευθείας στον υπολογιστή υπολογιστή για να διαβάσουμε διαβάσουμε και να γράψουμε γράψουμε δεδομένα δεδομένα σε αυτές, αλλά ότι χρειάζονται ειδική συσκευή ανάγνωσης καρτών μνήμης ("card reader"). Στους επιτραπέζιους υπολογιστές συνήθως απαιτείται να προμηθευτούμε μία εξωτερική συσκευή ανάγνωσης καρτών. Η τιμή ανάγνωσης καρτών. Η τιμή μιας τέτοιας συσκευής είνα μιας τέτοιας συσκευής είναι αρκετά χαμηλή.

Οι κατηγορίες των αποθηκευτικών μέσων που έχουμε είναι, τα Μαγνητικά μέσα, οι Οπτικοί δίσκοι, και οι Μνήμες flashΟι σκληροί δίσκοι ανήκουν στα μαγνητικά μέσα αποθήκευσης, και οι οπτικοί δίσκοι ανήκουν στα οπτικά μέσα αποθήκευσης.

Μαγνητικά Μέσα (μαγνητικη ταινια, κασετα μαγνητικης εγγραφης, μαγνητικος κυλινδρος, δισκετα, Σκληρος δισκος (HDD/SSD) - Οπτικα μεσα (CD/DVD/Blu-Ray Disc) - Αλλες μνημες (USB στικ, καρτες μνημης SD)  

4. Τι είναι οι σαρωτές (scanners) και τι τα προγράμματα OCR;

Ο σαρωτής (scanner) είναι μια συσκευή που μεταφράζει μια τυπωμένη εικόνα σε ψηφιακά δεδομένα, δηλαδή ψηφιοποιεί τα εικόνα και τη μεταφέρει στον υπολογιστή, είτε αυτή είναι ασπρόμαυρη είτε έγχρωμη. Τα βασικά χαρακτηριστικά που καθορίζουν την ποιότητα και την τιμή ενός σαρωτή είναι η ταχύτητα σάρωσης, η ανάλυση και τα υποστηριζόμενα μεγέθη (Α3, Α4, κ.λπ.). Το κόστος ενός σαρωτή είναι αρκετά πρ Α4, κ.λπ.). Το κόστος ενός σαρωτή είναι αρκετά προσιτό. Η οπτική αναγνώριση χαρακτήρων, (Optical Character Recognition), ή αλλιώς OCR, είναι μια διαδικασία κατά την οποία ένα ειδικό πρόγραμμα διαβάζει μια εικόνα και αν η εικόνα έχει γράμματα εν σειρά, υπό μορφή κειμένου, μπορεί να μετατρέψει την εικόνα σε κείμενο αναγνωρίζοντας τους χαρακτήρες οπότε το αποτέλεσμα να μπορεί να είναι επεξεργάσιμο σε κάποιον επεξεργαστή κειμένου, όπως πχ το word του Office. 

Ο σαρωτής είναι μια συσκευή δια της οποίας επιτυγχάνεται η ψηφιοποίηση εικόνας φωτογραφίας ή σχεδίου ή εγγράφου με σκοπό την αποθήκευση της στον ηλεκτρονικό υπολογιστή. Το πρόγραμμα OCR (Optical character recognition), μετατρέπει σαρωμένες εικόνες ή έντυπα κειμένων σε κείμενο αναγνώσιμο από ηλεκτρονικό υπολογιστή.

Ο σαρωτης ειναι μια συγχρονη ηλεκτρονικη συσκευη με την βοηθεια της οποιας επιτυγχανεται η ψηφιοποιηση εικονας ή εγγραφου με σκοπο την μετεπειτα επεξεργασια ή αποστολη αυτων των αρχειων. Τα προγραμματα OCR (Optical Character Recognition) επιτρεπουν την διαδικασια μετατροπης σαρωμενων εικονων (χειρογραφων ή εντυπων) σε κειμενο που μπορει να αναγνωστει απο τον υπολογιστη. Ετσι μπορουμε να επεξεργαστουμε το κειμενο χωρις να χρειαζεται να δημιουργησουμε ενα εντελως καινουργιο εγγραφο. 

5. Τι είναι μια Άδεια Χρήσης λογισμικού και ποιο δικαίωμα παραχωρεί;

Άδεια λογισμικού είναι ο όρος ο οποίος περιγράφει τα νομικά δικαιώματα τα οποία έχουν οι χρήστες ως προς την χρήση, επεξεργασία και διανομή του λογισμικού, και τα οποία καθορίζονται από τον αρχικό δημιουργό του λογισμικού. Μια τυπική άδεια λογισμικού παρέχει σε έναν τελικό χρήστη άδεια να χρησιμοποιήσει ένα ή περισσότερα αντίγραφα του λογισμικού, με τρόπους που αν δεν υπήρχε η είχε δοθεί η άδεια θα αποτελούσαν καταπάτηση των δικαιωμάτων του εκδότη ο οποίος είναι και ως ο ιδιοκτήτης των δικαιωμάτων χρήσης/copyright είναι αυτός που τα καθορίζει. Πρακτικά, η άδεια λογισμικού καθορίζει τις ελευθερίες του χρήστη ως προς το τι μπορεί να κάνει νόμιμα, με την αρχική δημιουργία κάποιου άλλου. 

Μια Άδεια Χρήσης λογισμικού είναι ενα νομικό μέσο που διέπει τη χρήση ή την ανακατονομή του λογισμικού. Τα δικαιώματα που παραχωρεί σε έναν τελικό χρήστη είναι η άδεια να χρησιμοποιήσει ένα ή περισσότερα αντίγραφα του λογισμικού, με τρόπους που αν δεν υπήρχε η είχε δοθεί η άδεια θα αποτελούσαν καταπάτηση των δικαιωμάτων του εκδότη

Η αδεια χρησης λογισμικου περιεχει τα δικαιωματα που εχει ο χρηστης ως προς την χρηση, την επεξεργασια, και την διανομη του λογισμικου. Παραχωρει τα δικαιωματα που οριζει ο δημιουργος του λογισμικου ετσι ωστε ο χρηστης να μην καταπατησει εν αγνοια του καποιο απο αυτα. 

Μια άδεια χρήσης λογισμικού, παραχωρεί το δικαίωμα το νόμιμο δικαίωμα χρήσης αντιγράφου του λογισμικού. Η άδεια χρήσης παραχωρείται μόνο για τη χρήση του αντιγράφου του λογισμικού και όχι του ίδιου του λογισμικού.

6. Τί είναι η άρνηση υπηρεσίας DOS (Denial of Service) σαν μορφή επίθεσης σε ένα δίκτυο και με ποιούς μηχανισμούς μπορεί ένα δίκτυο να προστατευτεί από τέτοιου είδους επιθέσεις;

Επιθέσεις άρνησης εξυπηρέτησης (DoS attack) ονομάζονται γενικά οι επιθέσεις εναντίον ενός υπολογιστή, υπολογιστή, ή μιας υπηρεσίας υπηρεσίας που παρέχεται, παρέχεται, οι οποίες έχουν ως σκοπό ν σκοπό να καταστήσουν τ καταστήσουν τον υπολογιστή υπολογιστή ή την υπηρεσία υπηρεσία ανίκανη ανίκανη να δεχτεί άλλες συνδέσεις συνδέσεις και έτσι να μην μπορεί να εξυπηρετήσει άλλους πιθανούς πελάτες. Οι αμυντικές απαντήσεις σε επιθέσεις άρνησης εξυπηρέτησης περιλαμβάνουν συνήθως τη χρήση συνδυασμού εντοπισμού επίθεσης, ταξινόμησης επισκεψιμότητας και εργαλείων απόκρισης, με στόχο την παρεμπόδιση της επισκεψιμότητας που αναγνωρίζουν ως παράνομη και επιτρέπουν την αναγνώριση της κυκλοφορίας ως νόμιμης. Παρατίθεται ένας κατάλογος εργαλείων πρόληψης και αντίδρασης: Εφαρμογή εξοπλισμού front end, πρόληψη βάσει IPS, άμυνα βασισμένη στο DDS, παραμετροποίηση δρομολογητών και switches, Upstream φιλτράρισμα.

Η άρνηση υπηρεσίας DOS (Denial of Service) είναι η επίθεση εναντίον ενός υπολογιστή, ή server με σκοπό να κάνει την αρχική του υπηρεσία ανίκανη να δεχτεί άλλες συνδέσεις με συνέπεια να μην μπορεί να εξυπηρετήσει πιθανούς πελάτες. Ένα δίκτυο μπορεί να προστατευτεί απο αυτές της επιθέσεις χρησιμοποιώντας προγράμματα τα οποία θα μοιράζουν της αιτήσεις που κάνει ο client σε πολλά servers.

Οι επιθεσεις DOS (ή DOS attacks) εχουν ως σκοπο να καταστησουν τον υπολογιστη ή την υπηρεσία την οποια επιτιθονται ανικανη να δεχθει αλλες συνδεσεις. Ως αποτελεσμα δεν μπορει να εξυπηρετησει αλλους πιθανους πελατες. Οι επιθεσεις αυτες συνηθως δεν γινονται με την χρηση καποιου ιου και συνεπως τα προγραμματα antivirus σπανιως βοηθουν στην καταπολεμηση τους. Πολλες φορες βεβαια μπορουν να ανακαλυψουν πιο αδυναμους ιους που υποστηριζουν τους βασικους. Καποια απο τους πιο σημαντικους αμηντικους μηχανισμους ειναι η υπαρξη και λειτουργια ενος firewall, ενα ενημερωμενο αντιικο προγραμμα (antivirus), καθως και η χρήση ενος δευτερου χρηστη με δικαιωματα διαχειριστη με σκοπο την αποφευξη επιθεσεων απο ιους τυπου Trojan. 

Οι D.O.S. επιθέσεις ή Denial Of Service Επιθέσεις που στα Ελληνικά μεταφράζονται περίπου ως Επίθεση Άρνησης Παροχής Υπηρεσιών έχουν γίνει κάτι πολύ απλό και καθημερινό στους hackers* και crackers σαν ένα μέσο προς την δόξα και την αναγνώριση σε πολλές ανορθόδοξες (underground) ομάδες στο Internet. Denial Of Service Επίθεση βασικά σημαίνει την διακοπή (άρνηση) της χρήσης του Internet ή/και του δικτύου στους νόμιμους χρήστες του. Αυτό γίνεται δυνατό με μια ηλεκτρονική "επίθεση" (attack) στους παροχείς Internet ή/και στα Websites με αποτέλεσμα την "κατάρρευση" (crash) του συστήματος και την απενεργοποίησή του. Με άλλα λόγια θα μπορούσε κάποιος να περιγράψει μια Denial Of Service Επίθεση, λέγοντας ότι μια τέτοια επίθεση έχει ως σκοπό να υπερφορτώσει τόσο πολύ το σύστημα-στόχο καταναλώνοντας μνήμη και bandwidth έτσι ώστε να μην είναι σε θέση πλέον να εξυπηρετήσει τους κανονικούς χρήστες του. Αυτό επιτυγχάνεται μέσω της αποστολής πακέτων δεδομένων (data packets) σε υπερβολικά μεγάλο ρυθμό έτσι ώστε το σύστημα-στόχος να αδυνατεί να τα επεξεργαστεί με αποτέλεσμα τις περισσότερες φορές να πρέπει να γίνει επανεκκίνηση (reboot). Κανένα σύστημα συνδεδεμένο στο Internet δεν είναι ασφαλές από D.D.O.S. επίθεση. Όλα τα λειτουργικά μπορούν και να προσβληθούν και να χρησιμοποιηθούν για τέτοιες επιθέσεις : Unix, Linux, Windows9x, NT, 2K ακόμα και Apple MacOS. Κανένας χρήστης του Internet δεν είναι ασφαλής αν δεν χρησιμοποιεί έναν καλό συνδυασμό προγράμματος προστασίας ενάντια στους ιούς (antivirus) και ένα καλό firewall.

7 . Τι είναι οι Ιοί των υπολογιστών (virus) και σε ποιες κυρίες κατηγορίες μπορούν χωριστούν;

Ένας ιός υπολογιστών υπολογιστών είναι ένα κακόβουλο κακόβουλο πρόγραμμα πρόγραμμα υπολογιστή, υπολογιστή, το οποίο μπορεί να αντιγραφεί χωρίς παρέμβαση του χρήστη και να "μολύνει" τον υπολογιστή χωρίς τη γνώση ή την άδεια του χρήστη του. Ο αρχικός ιός μπορεί να τροποποιήσει τα αντίγραφά του ή τα ίδια τα αντίγραφα μπορούν να υποστούν από μόνα τους τροποποίηση, όπως συμβαίνει σε έναν μεταμορφικό ιό. Ένας ιός μπορεί να διαδοθεί από έναν υπολογιστή σε άλλους, παραδείγματος χάριν από ένα χρήστη που στέλνει τον ιό μέσω δικτύου ή του Διαδικτύου, ή με τη μεταφορά του σε ένα φορητό μέσο αποθήκευσης, όπως δισκέτα, οπτικό δίσκο ή μνήμη flash USB. Μερικοί ιοί δημιουργούνται για να προξενήσουν ζημιά στον υπολογιστή, στον οποίο εγκαθίστανται, είτε με την καταστροφή των προγραμμάτων του είτε με τη διαγραφή αρχείων ή με τη μορφοποίηση (format) του σκληρού δίσκου. Άλλοι δεν έχουν ως σκοπό να προκαλέσουν οποιαδήποτε ζημία, αλλά απλά γνωστοποιούν την παρουσία τους με την εμφάνιση στην οθόνη κειμένου, βίντεο, ή ηχητικών μηνυμάτων, μερικές φορές αρκετά χιουμοριστικών. Οι ιοί μπορούν να ταξινομηθούν σε δύο μεγάλες κατηγορίες: • Ανάλογα με το σημείο του υλικού ή του λ Ανάλογα με το σημείο του υλικού ή του λογισμικού πο ογισμικού που μολύνουν: υ μολύνουν: o Τομείς σκληρού δίσκου συστήματος (system sectors) o Αρχεία o Ιοί μακροεντολών (Macros) o Ιοί πηγαίου κώδικα (Source Code Viruses) o Ιοί συμπλεγμάτων (σκληρού) δίσκου ((Hard) Disk Clusters) • Ανάλογα με τον τρόπο με τον οποίο πραγματοποιούν τη μόλυνση: o Πολυμορφικοί ιοί o Αόρατοι ιοί (Stealth Viruses) o Θωρακισμένοι ιοί (Armored Viruses) o Πολυτμηματικοί ιοί (Multipartite Viruses) o Ιοί πλήρωσης κενών (Spacefiller Viruses) o Ιοί παραλλαγής (Camouflage Viruses) 

Ένας ιός υπολογιστών είναι ένας τύπος προγραμμάτος, ο οποίος κατά την εκτέλεση του εξαπλώνεται απο υπολογιστή σε υπολογιστή παρεμβαίνοντας στην λειτουργία του. Ο ιός έχει την δυνατότητα να διαγράψει δεδομένα χωρίς ο χρήστης να το καταλάβει. Οι ιοί μπορούν να χωριστούν σε 3 κυρίες κατηγορίες:

Ιοί περιοχής εκκίνησης(boot sector)
Ιοί αρχείων
Ιοί σκουλήκια(worms)
Δούρειος ίππος

Ο ιος υπολογιστη ειναι ενα κακοβουλο προγραμμα το οποιο μπορει να αντιγραφει και κατα συνεπεια να πολλαπλασιαστει απο μονο του μολυνοντας ετσι τον υπολογιστη χωρις την γνωση ή την αδεια του χρηστη. Οι ιοι υπολογιστοι χωριζονται σε δυο μεγαλες κατηγοριες. 

Αυτες ταξινομουνται: 

- Ως προς το σημειο του υλικου ή λογισμικου που μολυνουν:  Τομεις σκληρου δισκου συστηματος  Αρχεια  Ιοι μακροεντολων  Ιοι πηγαιου κωδικα  Ιοι συμπλεγματων σκληρου δισκου 

- Ως προς τον τροπο με τον οποιο πραγματοποιουν την μολυνση:  Πολυμορφικοι ιοι  Αορατοι ιοι  Θωρακισμενοι ιοι  Πολυτμηματικοι ιοι  Ιοι πληρωσης κενων  Ιοι παραλλαγης

Ιός - πρόγραμμα : είναι ένας ειδικός τύπος κακοήθους προγράμματος που έχει την επιπλέον ιδιότητα να αναπαράγει τον εαυτό του και να τον τοποθετεί μέσα σε άλλα προγράμματα. Αυτά τα προγράμματα είναι έτσι σχεδιασμένα ώστε να κάνουν αλλαγές των προγραμμάτων του συστήματος να εμφανίζουν διάφορα μηνύματα, να καταστρέφουν δεδομένα ή προγράμματα ή και να απαγορεύουν την πρόσβαση στο χρήστη του συστήματος. Για να αντιμετωπιστεί ένας ιός θα πρέπει να έχουμε ένα antivirus πρόγραμμα δηλ ένα λογισμικό που εντοπίζει τα αρχεία που έχουν μολυνθεί από ιούς και τα επαναφέρει αν είναι δυνατό στη αρχική τους μορφή. Επίσης θα πρέπει να κατεβάζουμε τα Update του antivirus για να μπορούμε να αντιμετωπίζουμε μεταγενέστερους ιούς. Επίσης μέχρι να αντιμετωπίσουμε το πρόβλημα θα πρέπει να σταματήσουμε τη χρήση του Η/Υ καθώς και οποιουδήποτε μέσου έχει χρησιμοποιηθεί από αυτόν. Ιοί περιοχής εκκίνησης: Αυτοί οι ιοί μολύνουν δισκέτες και σκληρούς δίσκους. Ο ιός φορτώνεται πριν από το λειτουργικό σύστημα. Ήταν οι πρώτοι ιοί που εμφανίστηκαν.

Ιοί αρχείων: σ' αυτή τη κατηγορία ανήκει η πλειοψηφία των ιών και η πιο εύκολα αντιμετωπίσιμη κατηγορία. Είναι μικρά εκτελέσιμα αρχεία. Προσκολλούνται σε ένα αρχείο, συνήθως αρχείο εφαρμογής. Το βασικό γνώρισμα των ιών είναι ότι δημιουργούν αντίγραφα του εαυτού τους μέσα σε άλλα αρχεία. Τα αρχεία αυτά είναι εκτελέσιμα ή αρχεία βιβλιοθηκών. Οι ιοί είτε αντικαθιστούν κάποιο τμήμα του κώδικα του αρχείου (χωρίς να μεταβάλλουν το μέγεθός του) είτε προσκολλώνται σε αυτό. Ιοί σκουλήκια (Worms): Έχουν την ικανότητα αναπαραγωγής χωρίς να χρησιμοποιούν άλλα αρχεία. Ο τρόπος διάδοσης τους είναι το διαδίκτυο με τη βοήθεια των δικτυακών πρωτοκόλλων, εκμεταλλευόμενοι τα προβλήματα ασφαλείας των λειτουργικών συστημάτων ή με τη βοήθεια των μηνυμάτων του ηλεκτρονικού ταχυδρομείου. Οι ιοί σκουλήκια αποκτούν προσπέλαση στο βιβλίο διευθύνσεων του υπολογιστή (όπου κρατούνται οι διευθύνσεις ηλεκτρονικού ταχυδρομείου με τις οποίες επικοινωνεί ο χρήστης του υπολογιστή) και αποστέλλει μολυσμένα μηνύματα. Αρκετές φορές χρησιμοποιούν σαν αποστολέα ένα όνομα από το βιβλίο διευθύνσεων. Όσοι παραλήπτες ανοίξουν το ηλεκτρονικό μήνυμα μολύνονται. Η διάδοση των ιών worm με αυτή τη μέθοδο είναι αστραπιαία. Στη συνέχεια γίνεται αναφορά σε δύο ιούς σκουλήκια τον Blaster και τον Sobig. Δούρειος ίππος(trojan) - Αυτοί οι ιοί δρουν αθόρυβα. Μολύνουν τον υπολογιστή και αναμένουν κάποιο γεγονός ανάλογα με το προγραμματισμό τους. Συνήθως δεν πολλαπλασιάζοντας και δεν εξαπλώνονται σε άλλους υπολογιστές. Για να μολυνθεί ένας υπολογιστής ο χρήστης του πρέπει να κατεβάσει και να εκτελέσει τον ιό. Αυτό γίνεται συνήθως με ένα ηλεκτρονικό μήνυμα όπου ο ιός είναι συνημμένος και ο χρήστης πείθεται να τον εκτελέσει. Όταν ο ιός δούρειος ίππος εγκατασταθεί στέλνει μέσω διαδικτύου τις κατάλληλες πληροφορίες στο δημιουργό του ώστε αυτός να πάρει τον έλεγχο του υπολογιστή και να χρησιμοποιηθεί σε διάφορες παράνομες και επιβλαβείς ενέργειες. 

8. Ποιός ο ρόλος των αρχών πιστοποίησης ψηφιακών πιστοποιητικών και ποιά η διαδικασία έκδοσης ενός πιστοποιητικού για ένα ψηφιακό κατάστημα; 

Με την υπηρεσία Ψηφιακών Πιστοποιητικών οι χρήστες μπορούν να εκδώσουν πιστοποιητικά τόσο για προσωπική χρήση όσο και για δι τόσο για προσωπική χρήση όσο και για διαδικτυακές υ αδικτυακές υπηρεσίες. Τα ψηφιακά πιστοποιητικά βελτιώνουν το επίπεδο ασφάλειας στις διαδικτυακές επικοινωνίες, εξασφαλίζοντας: • την ασφαλή πρόσβαση σε ιστοσελίδες δικτυακών τόπων που πιστοποιούνται για την ακρίβεια των στοιχείων τους και συνεπώς για την αληθινή ταυτότητα του υπευθύνου φορέα. • τη δυνατότητα εξακρίβωσης των στοιχείων του αποστολέα ηλεκτρονικών μηνυμάτων ή άλλων εγγράφων, και τον έλεγχο της ορθότητας του περιεχομένου τους, εφόσον ο αποστολέας επιλέγει να τα υπογράφει με προσωπικό ψηφιακό πιστοποιητικό που έχει εκδοθεί για λογαριασμό του. Η έκδοση των πιστοποιητικών βασίζεται στις αρχές της επιστήμης της Κρυπτογραφίας. Η Υποδομή Δημόσιου Κλειδιού (Public Key Infrastructure, PKI) αποτελεί ένα συνδυασμό λογισμικού, τεχνολογιών κρυπτογραφίας και διαδικασιών, ο οποίος κατά βάση πιστοποιεί την εγκυρότητα κάθε εμπλεκόμενου σε μια εγκυρότητα κάθε εμπλεκόμενου σε μια ψηφιακή συναλλα ψηφιακή συναλλαγή. Η υπηρεσία συμβάλλει στη μείωση της γραφειοκρατίας αλλά και στην προώθηση των ασφαλών διαδικτυακών συναλλαγών και της ηλεκτρονικής επικοινωνίας.

Ο ρόλος των αρχών πιστοποίησης ψηφιακών πιστοποιητικών έιναι να πιστοποιούν ένα δικτυακό τόπο ότι είναι πράγματι αυτός που λέει ότι είναι, επίσης προσθέτει ασφάλεια (ssl) κρυπτογράφοντας τα δεδομένα μεταξύ client-server. Η διαδικασία αγοράς ενός SSL ψηφιακού πιστοποιητικού είναι: α) Προετοιμασία για να ρυθμίσετε το διακομιστή σας και να ενημερώσετε την καταχώριση WHOIS (πρέπει να δείξει το σωστό όνομα και διεύθυνση της εταιρείας), κλπ. β) Δημιουργία του CSR (Certificate Signing request) απο τον σέρβερ, αυτό περιέχει τα στοιχεία για που θα χρησιμοποιηθούν για το ssl certificate. γ) Αποστολή του CSR και άλλα στοιχεία στήν αρχή έκδοσης πιστοποιητικών. δ) Μετά την επιβεβαίωση του domain name και της εταιρίας απο την αρχή έκδοσης πιστοποιητικών, λήψη και εγκατάσταση του εκδοθέντους πιστοποιητικού.

Η αρχη πιστοποιησης επιβεβαιωνει την ταυτοτητα του αιτουντος και εκδιδει το πιστοποιητικο. Η διαδικασια εκδοσης πιστοποιητικου απαιτει τα παρακατω βηματα: - Προμηθεια ΑΔΔΥ (Ασφαλης διαταξη δημιουργιας υπογραφης) - Ηλεκτρονικη αιτηση μεσω της πυλης ΕΡΜΗΣ - Μεταβαση σε ΚΕΠ - Προετοιμασια Υπολογιστη - Εγκατασταση απαραιτητων προγραμματων - Εκδοση ψηφιακου πιστοποιητικου

Τα ψηφιακά πιστοποιητικά είναι ηλεκτρονικά έγγραφα που χρησιμοποιούνται για την αναγνώριση ενός προσώπου / εξυπηρετητή / οργανισμού και τη συσχέτιση του με ένα δημόσιο κλειδί. Μια Αρχή Πιστοποίησης έχει τη δυνατότητα έκδοσης ψηφιακών πιστοποιητικών. Η διαδικασία έκδοσης ενός ψηφιακού πιστοποιητικού γίνεται είτε αυτοματοποιημένα (χωρίς ανθρώπινη παρουσία και επιβεβαίωση) είτε με τη φυσική παρέμβαση και προσωπική «φροντίδα» ενός στελέχους του οργανισμού στον οποίο ανήκει η Αρχή. Το στέλεχος αυτό αναλαμβάνει να πιστοποιήσει την ορθότητα των στοιχείων που αποστέλλει ο χρήστης σε διάφορα επίπεδα, με απλούς τρόπους (όπως αποστολή/λήψη στοιχείων μέσω e-mail, fax ή τηλεφώνου) αλλά και με πιο αποτελεσματικούς και σίγουρους τρόπους, όπως προσωπική συνάντηση και επιτόπια εξακρίβωση στοιχείων. Αφού γίνει η ταυτοποίηση του χρήστη, εκδίδεται το ψηφιακό πιστοποιητικό, το οποίο μπορεί να είναι γενικής χρήσης ή να εκδοθεί μόνο για συγκεκριμένες εργασίες (πχ, ψηφιακή υπογραφή σε e-mails). Το πιστοποιητικό αυτό θα παραμείνει εν ισχύ για συγκεκριμένο χρονικό διάστημα (το οποίο έχει καθοριστεί εκ των προτέρων από τον διαχειριστή της Αρχής και δύναται μελλοντικά να αλλάξει). Τα ψηφιακά πιστοποιητικά, ως φυσικά αρχεία, είναι τυπικά μικρά σε μέγεθος (όχι πάνω από 4kb περίπου) και ανάλογα με την Αρχή και την κλάση τους, περιλαμβάνουν πληροφορίες για το χρήστη (ή τον υπολογιστή ή την υπηρεσία), πληροφορίες για την Αρχή που το εξέδωσε, τον λόγο για τον οποίο εκδόθηκε (ψηφιακή υπογραφή, κρυπτογράφηση κα), τον τύπο των αλγορίθμων που υποστηρίζονται, το δημόσιο κλειδί του αντίστοιχου ζευγαριού, τη χρονική διάρκεια ισχύος του και πολλά άλλα. Η μορφή των αρχείων αυτών ποικίλει και μπορεί να είναι δυαδική (binary) ή ως απλό κείμενο (ascii). 

9 . Ποια είδη διαμόρφωσης ενός σκληρού δίσκου γνωρίζετε, ποιο δίνει μεγαλύτερη ασφάλεια και γιατί χρειάζεται;

Δύο είδη διαμόρφωσης σκληρού δίσκου υπάρχουν Δύο είδη διαμόρφωσης σκληρού δίσκου υπάρχουν: η γρήγορη και η κανονική. Η διαφορά της γρήγορης με την κανονική διαμόρφωση δίσκου είναι πως κατά την κανονική, μαζί με την διαγραφή των αρχείων, γίνεται ταυτόχρονα και έλεγχος για κατεστραμμένους τομείς στο δίσκο. Στη γρήγορη διαμόρφωση, αφαιρούνται μόνο τα αρχεία, χωρίς να γίνεται έλεγχος. Αυτό έχει σαν αποτέλεσμα η κανονική διαμόρφωση δίσκου σε ένα δίσκο μεγάλης χωρητικότητας να παίρνει ώρες. Αν ο δίσκος είναι σχετικά καινούριος και γενικά δεν έχετε προβλήματα μαζί του, η γρήγορη διαμόρφωση δίσκου είναι η καλύτερη επιλογή. 

Τα είδη διαμόρφωση ενός σκληρού δίσκου είναι η γρήγορη διαμόρφωση και η πλήρης διαμόρφωση. Μεγαλύτερη ασφάλεια δίνει η πλήρη διαμόρφωση γιατί διαγράφει όλους τους δρόμους για το ΛΣ προς τα αρχεία, επίσης γεμίζει όλα τον δίσκο με άρχηστες πληροφορίες για να είναι σίγουρο πωςτα προηγούμενα αρχεία καλύπτηκαν απο τα άχρηστα δεδομένα. Αυτό χρειάζεται, διότι έαν πουλήσουμε, τον υπολογιστή μας, κανένας δεν θα μπορεί να ανακτήσει τα παλιά μας αρχεία.

Τα δυο βασικα ειδη διαμορφωσης σκληρου δισκου ειναι το FAT32 και το NTFS. Γενικα το NTFS θεωρειται οτι παρεχει μεγαλυτερη ασφαλεια αφου μπορει να πραγματοποιηθει σε δισκους με μεγαλη χωρητικοτητα και εχει καλυτερες αποδοσεις απο το FAT32. Ενας σκληρος δισκος ειναι καλυτερο να εχει διαμορφωθει στον τυπο NTFS αφου αυτο μας δινει την δυνατοτητα να πραγματοποιησουμε πολλες αλλαγες στα αρχεια που περιεχει οπως για παραδειγμα να κανουμε συμπιεση, κρυπτογραφηση, αλλαγη δικαιωματων προσβασης κλπ. Επισης ειναι η ασφαλεστερη επιλογη αφου οι σκληροι δισκοι τυπου NTFS ειναι δυσκολοτερο να διαβαστουν απο λογισμικα διαφορετικα των Windows. 

Η διαμόρφωση δίσκου, εσωτερικού ή εξωτερικού, είναι μία διαδικασία που διαγράφει όλα τα αρχεία που βρίσκονται στο δίσκο.Φροντίζουμε λοιπόν να έχουμε αντιγράψει όλα τα αρχεία που θέλουμε να κρατήσουμε σε έναν δεύτερο δίσκο. Η διαφορά της γρήγορης με την κανονική διαμόρφωση δίσκου είναι πως κατά την κανονική, μαζί με την διαγραφή των αρχείων, γίνεται ταυτόχρονα και έλεγχος για κατεστραμμένους τομείς στο δίσκο. Στη γρήγορη διαμόρφωση, αφαιρούνται μόνο τα αρχεία, χωρίς να γίνεται έλεγχος. Αν ο δίσκος είναι σχετικά καινούριος και γενικά δεν έχετε προβλήματα μαζί του, η γρήγορη διαμόρφωση δίσκου είναι η καλύτερη επιλογή. Τα δύο συστήματα αρχείων που αναγνωρίζουν τα Windows είναι το FAT (File Allocation Table) και το NTFS (New Technology File System). ν σκοπεύουμε ένα δίσκο να τον χρησιμοποιήσουμε και με συστήματα εκτός Windows, το FAT32 είναι η καλύτερη επιλογή. Αν σκοπεύουμε να γράψουμε αρχεία μεγέθους άνω των 4ων Gigabytes στο δίσκο μας, και θα τον χρησιμοποιήσουμε αποκλειστικά με Windows, το NTFS είναι η καλύτερη επιλογή. 

10. Τι χρειάζεται προκειμένου να κατασκευαστεί ένα στοιχειώδες σύστημα Η/Υ και με ποιο τρόπο επιτυγχάνεται η διασύνδεση μεταξύ των μονάδων του;

Για κατασκευαστεί ένας στοιχειώδες ηλεκτρονικός υπολογιστής είναι απαραίτητη αρχικά η ύπαρξη μιας μητρικής πλακέτας και της Κεντρικής Μονάδας Επεξεργασίας που βρίσκεται σε αυτήν. Εξίσου απαραίτητη είναι και η ύπαρξη μνήμης RAM και ROM, οι οπίες επίσης βρίσκονται πάνω στη μητρική πλακέτα. Η διασύνδεση αυτών των στοιχείων γίνεται με ειδικούς διαύλους ηλεκτρικής τάσης. Επίσης απαιτούνται ορισμένες περιφερειακές μονάδες όπως το τροφοδοτικό, ο σκληρός δίσκος, το πληκτρολόγιο, το ποντίκι και η οθόνη. Η διασύνδεση με αυτές τις μονάδες γίνεται με συγκεκριμένους τύπους καλωδίων. 

Για να κατασκευαστεί ένα σύστημα Η/Υ χρειαζόμαστε την ΚΜΕ, την Μητρική κάρτα, κυρία μνήμη, δευτερεύουσα μνήμη συσκευές εισόδου(πληκτρολόγιο,ποντίκι) και συσκευές εξόδου(οθόνη,ηχεία), η διασύνδεση μεταξύ των μονάδων του επιτυγχάνεται μέσω ενός κοινού διαύλου.

Ενα βασικο συστημα ηλεκτρονικου υπολογιστη αποτελειται απο την κεντρικη μοναδα γνωστη και ως «πυργος» μεσα στον οποιο ειναι τοποθετημενα τα απαραιτητα μερη του υπολογιστη (hardware). Αυτα αποτελουνται απο την κεντρικη υπολογιστικη μοναδα (CPU), την μνημη RAM, την μητρικη πλακετα (ή καρτα), τον σκληρο δισκο και την καρτα γραφικων (εκτος και αν υπαρχει ηδη μια ενσωματωμενη στην CPU). Μεσα στον πυργο βρισκεται επισης και το τροφοδοτικο το οποιο συνδεεται με πριζα για να υπαρξει παροχη ρευματος στον υπολογιστη. Το τροφοδοτικο ενωνεται με την μητρικη, τον σκληρο δισκο, και την καρτα γραφικων με καλωδια. Η οθονη, το ποντικι, και το πληκτρολογιο συνδεονται με την μητρικη ειτε μεσω των port που βρισκονται στο πλαινο μερος της μητρικης στο οποιο εχουμε προσβαση απο το πισω μερος του πυργου, ειτε μεσω USB port που βρισκονται στο πισω ή στο μπροστινο μερος του πυργου 

Σε κάθε στοιχειώδες υπολογιστικό σύστημα υπάρχουν τα εξής εξαρτήματα:  ΚΜΕ.  Μητρική πλακέτα.  Οθόνη.  Μνήμη RAM.  Σκληρός Δίσκος.  Πληκτρολόγιο.  Ποντίκι.  Μηχανισμός Δισκέτας.  Συσκευή CD-ROM.  Κάρτα γραφικών.  Κάρτα Ήχου.  Ηχεία. Η διασύνδεση μεταξύ των μονάδων του επιτυγχάνεται με τους διαύλους επικοινωνίας.


11. Ποια είναι τα αρχεία που λαμβάνουν μέρος στη διαδικασία συγχώνευσης αλληλογραφίας, σε έναν επεξεργαστή κειμένου τύπου Word και ποιος ο ρόλος τους;

Τρία είναι τα βασικά έγγραφα που χρησιμοποιούνται στη διαδικασία συγχώνευσης αλληλογραφίας. • Το Κύριο Έγγραφο ή Έγγραφο εκκίνησης, το οποίο χρησιμοποιείτε ως το βασικό έγγραφο για το είδος αλληλογραφίας που έχουμε επι έγγραφο για το είδος αλληλογραφίας που έχουμε επιλέξει (επιστολές, φάκελοι κτλ). ξει (επιστολές, φάκελοι κτλ). • Το αρχείο προέλευσης δεδομένων, το οποίο περιέχει όλα τα απαραίτητα στοιχεία για τη δημιουργία των επιστολών ή των φακέλων κτλ. Συνήθως χρησιμοποιείται το πρόγραμμα Microsoft Excel του Office ή αναπαράγεται νέο αρχείο (λίστα) μέσα από το πρόγραμμα Microsoft Word. • Το συγχωνευμένο έγγραφό, το οποίο αποτελεί το αποτέλεσμα της όλης διαδικασίας και διατίθεται για επεξεργασία, εκτύπωση αλλά και αποθήκευση. 

Στην συγχώνευση αλληλογραφίας λαμβάνουν μέρος δύο αρχεία. Το αρχικό έγγραφο και το αρχείο παραληπτών. Το αρχικό έγγραφο είναι κοινό για όλους του παραλήπτες. Όταν ολοκληρωθεί η συγχώνευση, στο αρχείο αυτό προστίθενται οι τιμές των πεδιών του αρχείου πα αληπτών που διαφέρουν απο παραλήπτη σε παραλήπτη. 

Ενα παράδειγμα συγχνώνευσης στην καθημερινή ζωή είναι οι λογαριασμοί ΔΕΗ. Αν παρατηρήσουμε δυο διαφορετικούς λογαριασμούς του θα παρατηρήσουμε ότι η φόρμα είναι ακριβώς ίδια. Αυτό είναι το αρχικό έγγραφο, δηλαδή μια φόρμα χωρίς δεδομένα. Από πολίτη σε πολίτη στους λογαριασμούς όμως υπάρχουν διαφορετικά δεδομένα. Αυτά τα δεδομένα υπάρχουν στο αρχείο λίστας παραληπτών που συγχωνεύεται με την φόρμα προκειμένου να δημιουργηθούν τόσες επιστολές όσοι είναι και οι πολίτες του οργανισμού. Τα αρχεία παραληπτών προέρχονται απο αρχείο excel η και απο βάση δεδομένων.

Κατα την διαδικασια συγχωνευσης αλληλογραφιας τα δυο ειδη αρχειων που λαμβανουν μερος ειναι το εγγραφο που περιεχει σταθερες πληροφοριες (κυριο εγγραφο) και το εγγραφο που περιεχει μεταβλητες πληροφοριες (αρχειο προελευσης δεδομενων). Ο ρολος τους ειναι να ειναι πιο βολικο για τον αποστολεα του email να δημιουργησει πολλα παρομοια αντιγραφα του αρχικου μηνυματος αλλαζοντας καθε φορα μονο καποια συγκεκριμενα πεδια. Τα μονα μερη που θα αλλαζουν ειναι αυτα τα οποια βρισκονται στο αρχειο που περιεχει τις μεταβλητες πληροφοριες. 

Η συγχώνευση αλληλογραφίας χρησιμοποιείται για τη δημιουργία πολλών εγγράφων ταυτόχρονα. Αυτά τα έγγραφα έχουν ακριβώς την ίδια διάταξη, μορφοποίηση, κείμενο και γραφικά. Μόνο συγκεκριμένες ενότητες κάθε εγγράφου διαφέρουν και είναι εξατομικευμένες. Τα έγγραφα που μπορεί να δημιουργήσει το Word με τη συγχώνευση αλληλογραφίας περιλαμβάνουν μαζικές ετικέτες, μαζικές επιστολές, μαζικούς φακέλους και μαζικά μηνύματα ηλεκτρονικού ταχυδρομείου. Τρία έγγραφα εμπλέκονται στη διαδικασία συγχώνευσης αλληλογραφίας:  Το κύριο έγγραφό σας  Το αρχείο προέλευσης δεδομένων σας  Το συγχωνευμένο έγγραφό σας Η συγχώνευση αλληλογραφίας είναι η συγχώνευση ενός κύριου εγγράφου με ένα αρχείο προέλευσης δεδομένων. Το κύριο έγγραφο περιέχει το κείμενο και άλλα στοιχεία που παραμένουν ίδια σε κάθε ετικέτα. Ένα αρχείο προέλευσης δεδομένων περιέχει τις πληροφορίες που αλλάζουν σε κάθε ετικέτα, όπως το όνομα και η διεύθυνση κάθε παραλήπτη. Τα πεδία συγχώνευσης που εισάγετε στο κύριο έγγραφο καθορίζουν σε ποια θέση θα εκτυπώσει το Word τις πληροφορίες από το αρχείο προέλευσης δεδομένων. Όταν εκτελείτε συγχώνευση αλληλογραφίας, το Word αντικαθιστά τα πεδία συγχώνευσης στο κύριο έγγραφο με πληροφορίες από το αρχείο προέλευσης δεδομένων. Κάθε γραμμή (ή καταχώρηση) στο αρχείο προέλευσης δεδομένων δημιουργεί μία ξεχωριστή ετικέτα 


12. Αναφέρετε τις κατηγορίες των συναρτήσεων σε ένα λογιστικό φύλλο τύπου Excel και περιγράψτε τη χρήση της συνάρτησης If.

Οι συναρτήσεις φύλου εργασίας του Excel είναι οργανωμένες στις εξής κατηγορίες • Financial (Οικονομικές) • Logical (Λογικές) • Text (Κειμένου) • Date & Time (Ημερομηνίας και ώρας) • Lookup & Reference (Αναζήτησης και αναφοράς) • Math & Trig (Μαθηματικών και τριγωνομετρίας) • Statistical (Στατιστικές) • Engineering (Μηχανολογικές) • Database (Βάση δεδομένων) • Cube (Κύβου) • Information (Πληροφοριών) • User defined (Συναρτήσεις χρήστη) Η συνάρτηση IF είναι μία από τις πιο δημοφιλείς συναρτήσεις στο Excel και σας επιτρέπει να κάνετε λογικές συγκρίσεις μεταξύ μιας τιμής και της τιμής που αναμένετε. Στην απλούστερη μορφή της, η συνάρτηση IF αναφέρει ότι: IF(εάν κάτι είναι αληθές, τότε κάνε κάτι, διαφορετικά κάνε κάτι άλλο) Επομένως, μια πρόταση IF μπορεί να έχει δύο αποτελέσματα. Το πρώτο αποτέλεσμα προκύπτει εάν η σύγκριση είναι αληθής, το δεύτερο εάν η σύγκριση είναι ψευδής

Κατηγορίες συναρτήσεων:

* Συναρτήσεις συμβατότητας

* Συναρτήσεις κύβου

* Συναρτήσεις βάσεων δεδομένων

* Συναρτήσεις ημερομηνίας και ώρας

* Συναρτήσεις μηχανικής

* Συναρτήσεις συναρτήσεις

* Συναρτήσεις πληροφοριών

* Λογικές Συναρτήσεις

* Συναρτήσεις αναζήτησης και αναφοράς

* Συναρτήσεις μαθηματικών και τριγωνομετρίας

* Στατιστικές συναρτήσεις

* Συναρτήσεις κειμένου

Η συνάρτηση if χρησιμοποιείται για την επιστροφή μίας τιμής εάν μια συνθήκη είναι αληθής και μίας άλλης τιμής εάν η συνθήκη είναι ψευδής.

Οι συναρτησεις που χρησιμοποιουνται σε ενα λογιστικο φυλλο τυπου excel χωριζονται σε 14 συναρτησεις: - Συμβατοτητας - Κυβου - Βασεων δεδομενων - Ημερομηνιας και ωρας - Μηχανικης - Οικονομικες - Πληροφοριων - Λογικες - Αναζητησης και αναφορας - Μαθηματικων και τριγωνομετριας - Στατιστικες - Κειμενου - Που οριζονται απο τον χρηστη και εγκαθιστανται με προσθετα - Web Μια απο τις λογικες συναρτησεις ειναι και η IF. Η IF αποτελειται απο τρια μερη. Αφου ορισουμε σε ποιο κελι θα εφαρμοστει η συναρτηση IF πρεπει να προσθεσουμε τις παραμετρους. Ενα παραδειγμα ειναι D4 = IF(A1=10;"Ναι";"Οχι"). Αρχικα το προγραμμα θα ελενξει αν στο κελι Α1 υπαρχει ο αριθμος 10. Αν ναι τοτε η συναρτηση θα επιστρεψει στο κελι D4 την λεξη "Ναι". Αλλιως θα επιστρεψει την λεξη "Οχι". Με αλλα λογια ο ρολος την συναρτησης IF ειναι να πραγματοποιει εναν ελεγχο και αναλογα με το αποτελεσμα να επιστρεφει πισω μια τιμη.

Οι συναρτήσεις είναι έτοιμοι τύποι που μας διευκολύνουν στη διεκπεραίωση συγκεκριμένων υπολογισμών. Σε κάθε συνάρτηση μπορούμε να διακρίνουμε δύο κύρια μέρη: •Το όνομά της. •Τα ορίσματά της, δηλαδή την περιοχή κελιών όπου θα γίνει εφαρμογή της συνάρτησης Κατηγορίες:  Financial (Οικονομικές) .  Logical (Λογικές).  Text (Κειμένου) .  Date & Time (Ημερομηνίας και ώρας)  Lookup & Reference (Αναζήτησης και αναφοράς)  Math & Trig (Μαθηματικών και τριγωνομετρίας)  Statistical (Στατιστικές)  Engineering (Μηχανολογικές)  Database (Βάση δεδομένων)  Cube (Κύβου) .  Information (Πληροφοριών) .  User defined (Συναρτήσεις χρήστη). Η εισαγωγή συνάρτησης γίνεται ειτε με το = , είτε με το Insert function IF (λογικές) : χρησιμοποιήστε αυτήν τη συνάρτηση για την επιστροφή μίας τιμής εάν μια συνθήκη είναι αληθής και μίας άλλης τιμής εάν η συνθήκη είναι ψευδής. IF(logical_test, value_if_true, value_if_false)


13. Ποιες επιλογές προβολής εγγράφων περιλαμβάνει ένας επεξεργαστής κειμένου, τύπου Word; Περιγράψτε τις.

Οι δυνατότητες προβολής εγγράφου στο Microsoft Word του Office είναι οι εξής: • Η Διάταξη Εκτύπωσης στην οποία το έγγραφο εμφανίζεται ως σελίδα όπως περίπου θα τυπωθεί • Η προβολή Ανάγνωσης πλήρους οθόνης η οποία διευκολύνει την ανάγνωση ενός εγγράφου και χρησιμοποιείται κυρίως όταν ο χρήστης δεν επιθυμεί την οποιαδήποτε παραμετροποίηση του. • Η Διάταξη web εμφανίζει το έγγραφο ως μέρος μιας ιστοσελίδας και κατά συνέπεια καταργεί ορισμένους περιορισμούς στην εμφάνιση του εγγράφου του εγγράφου όπως για παράδειγμα για παράδειγμα τα περιθώρια εκτύπωσης. • Η προβολή Διάρθρωσης χρησιμοποιείτε για τη δημιουργία ή επεξεργασία επικεφαλίδων και οργάνωση ενός πολύπλοκου εγγράφου. Παρέχει τη δυνατότητα στο χρήστη να μπορεί εύκολα να προσαρμόσει κατάλληλα τα επίπεδα επικεφαλίδας, και να αναδιατάξει το περιεχόμενο μέχρι όλα τα στοιχεί αναδιατάξει το περιεχόμενο μέχρι όλα τα στοιχεία να βρίσκονται εκεί που επιθυμεί. βρίσκονται εκεί που επιθυμεί. • Η προβολή Πρόχειρη μοιάζει με πάρα πολύ με την προβολή εκτύπωσης αλλά διαθέτει λιγότερα στοιχεία γραφικού περιβάλλοντος κατά την εμφάνισή της και χρησιμοποιείται για συγγραφή πρόχειρου κειμένου δίχως ιδιαίτερη επεξεργασία. 

Διάταξη εκτύπωσης: Εξ ορισμού προεπιλεγμένη προβολή που εμφανίζονται τα περιθώρια και η κάθε σελίδα έχει εξ ορισμού μέγεθος A4.

Προβολή ανάγνωσης: Φιλική προβολή ενός εγγράφου για ανάγνωση χωρίς να εμφανίζεται σχεδόν κανένα μενού και με λίγες επιλογές λειτουργιών.

Διάταξη Διάθρωσης: Εμφάνιση πρωτεύοντος και δευτερεύοντος εγγράφου(master/slave), πολύ χρήσιμη εμφάνιση για την διαχείρισης μεγάλων εγγράφων αλλά απευθύνεται σε λίγο πιο έμπειρους χρήστες.

Πρόχειρη προβολή: Περίπου ίδια με της εκτύπωσης αλλά χωρίς χάρακες.

Εμφανιση κενου χωρου μεταξυ των σελιδων σε προβολη διαταξης εκτυπωσης: Εμφανιζει τα πανω και κατω περιθωρια της σελιδας συμπεριλαμβανομενου του περιεχομενου των κεφαλιδων και υποσελιδων - Εμφανιση σημαδια επισημανσης: Εμφανιζει το κειμενο με επισημανση στην οθονη και στα εκτυπωμενα εγγραφα - Εμφανιση συμβουλών εργαλείων εγγραφου με καταδειξη: Εμφανιζει πληροφοριες οπως διευθυνσεις URL και σχολια αναθεωρητων σε κιτρινα αναδυομενα παραθυρα. Οι συμβουλες εργαλειων εμφανιζονται οταν τοποθετησετε τον κερσορα σε εναν υπερ-συνδεσμο, σημαδι παραπομπης σε σχόλιο ή παρομοιο περιεχομενο


14. Ποιος ο σκοπός χρησιμοποίησης αναφορών στους τύπους ενός λογιστικού φύλλου, τύπου Excel; Πόσα και ποια είδη αναφορών τύπων υπάρχουν;

Οι τύποι μπορεί μερικές φορές να έχουν ως αποτέλεσμα τιμές σφάλματος, καθώς και να

επιστρέφουν μη αναμενόμενα αποτελέσματα. Είναι απαραίτητο να χρησιμοποιούμε αυτές τις

αναφορές για να βρίσκουμε και να διερευνούμε τις αιτίες για αυτά τα σφάλματα και να και να είμαστε

σε θέση να προσδιορίσουμε λύσεις.

##### Η στήλη δεν έχει αρκετό πλάτος για να εμφανίσει την τιμή.

#Τιμή! (#Value!) (#Value!) Χρησιμοποιείται Χρησιμοποιείται λάθος τύπος ορίσματος ορίσματος ή τελεστή. τελεστή.

#ΔΙΑΙΡ/0!(#DIV/0!) #ΔΙΑΙΡ/0!(#DIV/0!) Αριθμός Αριθμός διαιρείται διαιρείται με το μηδέν.

#ΟΝΟΜΑ? #ΟΝΟΜΑ? (#NAME?) (#NAME?) Η εφαρμογή εφαρμογή δεν αναγνωρίζει αναγνωρίζει κείμενο κείμενο σε έναν τύπο.

#Δ/Υ (#N/A) Η τιμή δεν είναι διαθέσιμη διαθέσιμη σε μια συνάρτηση συνάρτηση ή έναν τύπο.

#ΑΝΑΦ! (#REF!) (#REF!) Η αναφορά αναφορά κελιού δεν είναι έγκυρη. έγκυρη.

#ΑΡΙΘ! (#NUM!) (#NUM!) Άκυρες αριθμητικές αριθμητικές τιμές σε έναν τύπο ή μια συνάρτηση. συνάρτηση.

#KENO! (#NULL!) Έχει καθοριστεί μια τομή δύο περιοχών που δεν τέμνονται.

Ο σκοπός χρησιμοποίησης αναφορών στους τύπους ενός λογιστικού φύλλου είναι να καταλάβουμε που θέλουμε να κάνουμε αλλαγές στα κελιά μας, και κυρίως να υπάρχει μοναδικότητα για τυχόν αναφορές σε αυτά.

Υπάρχουν τρία είδη αναφορών:

Σχετική αναφορά κελιού η απλώς αναφορά κελιού: Όταν θέλουμε να αναφέρουμε απλώς ένα κελί λέμε το όνομα του. πχ b5

Απόλυτη αναφορά κελιού, όταν θέλουμε κατά την αντιγραφή ενός τύπου, η αναφορά σε ένα κελί να παραμένει σταθερή και να μην μεταβάλλεται. πχ $b$5

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

Οι αναφορες κελιου αναφερονται σε ένα ή περισσοτερα κελια σε ενα φυλο εργασιας και χρησιμοποιουνται ως τυπος με σκοπο το προγραμμα να βρει τις τιμες ή τα δεδομενα που θελει να χρησιμοποιησει αυτος ο τυπος. Τα 3 ειδη αναφορων που υπαρχουν ειναι: - Να χρησιμοποιουνται δεδομενα απο ένα ή περισσοτερα συνεχομενα κελια στο φυλλο εργασιας - Να χρησιμοποιουνται δεδομενα που υπαρχουν σε διαφορετικες περιοχες ενος φυλλου εργασιας - Να χρησιμοποιουνται δεδομενα που υπαρχουν σε αλλα φυλλα εργασιας που βρισκονται στο ιδιο βιβλιο εργασιας

Οι τύποι είναι ένας συνδυασμός από αριθμούς ,τελεστές και αναφορές κελιών . Όλοι οι τύποι πρέπει να αρχίζουν με το=,π.χ. =1+2. Μόλις πατήσουμε το Enter το κελί θα εμφανιστεί το αποτέλεσμα της πράξης (3), ενώ στη γραμμή των τύπων θα εμφανίζεται Ο τύπος(=1+2).Αντί για αριθμούς μπορούμε ακόμη να χρησιμοποιήσουμε τις αναφορές κελιών π.χ. =Α1+Β1. Το πλεονέκτη μα της αναφοράς κελιών είναι ότι κάθε φορά που αλλάζουν τα δεδομένα των κελιών π.χ. στο Α1και Β1, το κελί που περιέχει τον τύπο(=Α1+ Β1) θα υπολογίζει και θα δίνει πάντα το καινούργιο αποτέλεσμα . Γι'αυτό θα πρέπει όπου είναι δυνατό στους τύπους να προτιμούμε την εισαγωγή της αναφοράς κελιών. Τύποι αναφοράς: Ο κυριότερος τελεστής είναι η άνω και κάτω τελεία (:) με τον οποίο μπορούμε να ορίσουμε μία περιοχή κελιών. Για παράδειγμα ο τύπος Α1:D3 δημιουργεί μία περιοχή κελιών από το κελί Α1έως το Κελί D3 Σχετική αναφορά κελιού : Όταν δημιουργείτε έναν τύπο, οι αναφορές σε κελιά ή περιοχές βασίζονται συνήθως στη θέση τους ως προς το κελί που περιέχει τον τύπο. Αυτό είναι γνωστό ως σχετική αναφορά. Η σχετική αναφορά ενός κελιού σε ένα τύπο σημαίνει ότι η αναφορά που γίνεται στο συγκεκριμένο κελί αλλάζει ανάλογα με την μετακίνηση του τύπου σε νέα θέση. Απόλυτη αναφορά κελιού: Απόλυτη αναφορά ενός κελιού σε έναν τύπο , είναι η ακριβής θέση του κελιού, ανεξάρτητα από τη θέση του κελιού που περιέχει τον τύπο. Εάν δε θέλετε να αλλάζουν οι αναφορές των κελιών, όταν αντιγράφετε έναν τύπο σε διαφορετικό κελί, χρησιμοποιήστε μια απόλυτη αναφορά. Μπορείτε να δημιουργήσετε μια απόλυτη αναφορά στο κελί Β1 τοποθετώντας το σύμβολο του δολαρίου ( $ ) πριν από τα τμήματα της αναφοράς που δεν αλλάζουν. Για να δημιουργήσετε μια απόλυτη αναφορά στο κελί Β1 για παράδειγμα , προσθέστε σύμβολα δολαρίου, ως εξής: $Β$1. Η απόλυτη αναφορά ενός κελιού σε ένα τύπο σημαίνει ότι η αναφορά που γίνεται στο συγκεκριμένο κελί παραμένει σταθερή, ανεξάρτητα από το σημείο στο οποίο μετακινείται ο τύπος. Μικτή αναφορά κελιού: Η μικτή αναφορά ενός κελιού σε ένα τύπο σημαίνει ότι η αναφορά που γίνεται στο συγκεκριμένο κελί αλλάζει ανάλογα με τη μετακίνηση του τύπου, όσον αφορά μόνο τη γραμμή ή τη στήλη. 


15. Ποιες είναι οι κατηγορίες και τα βασικά χαρακτηριστικά των εκτυπωτών;

Οι εκτυπωτές διαχωρίζονται σε τρεις κατηγορίες ανάλογα με την τεχνολογία εκτύπωσης που χρησιμοποιούν: • Κρουστικοί εκτυπωτές (Ιmpact printers) • Εκτυπωτές ψεκασμού (Inkjet printers) • Εκτυπωτές laser (Laser printers) Ένας άλλος δι Ένας άλλος διαχωρισμός των αχωρισμός των εκτυπωτών γίνεται εκτυπωτών γίνεται ως προς τον ως προς τον τρόπο εκτύπωσης, σε τρόπο εκτύπωσης, σε εκτυπωτές εκτυπωτές γραμμής και εκτυπωτές σελίδας. • Οι εκτυπωτές σελίδας (page printers) ολοκληρώνουν το σχηματισμό της σελίδας στην μνήμη τους πριν προχωρήσουν στην εκτύπωση και κατόπιν την εκτυπώνουν. • Οι εκτυπωτές γραμμής (line printers) εκτυπώνουν τη σελίδα γραμμή-γραμμή. Τα βασικότερα χαρακτηριστικά των εκτυπωτών είναι τα εξής: • Ταχύτητα εκτύπωσης: Ανάλογα με την τεχνολογία εκτύπωσης έχουμε και διαφορετικές μονάδες μέτρησης. Στους εκτυπωτές γραμμής, η ταχύτητα εκφράζεται σε χαρακτήρες ανά δευτερόλεπτο (characters per second - cps) ενώ στους εκτυπωτές σελίδας, σε σελίδες ανά λεπτό (pages per minute - ppm). • Aνάλυση εκτύπωσης: H ελάχιστη μονάδα εκτύπωσης (με άλλα λόγια, το πιο μικρό ίχνος) που μπορεί να τυπωθεί στο χαρτί και ονομάζεται κουκίδα (dot). Η ανάλυση εκτύπωσης ορίζεται ώς το πλήθος των διαφορετικών κουκίδων που μπορούν να εκτυπωθούν ανά ίντσα1 (dots per inch - dpi). (dots per inch - dpi). Η ποιότητα της τελικής εκτύπωσης ενός εκτυπωτή εξαρτάται σε μεγάλο βαθμό από την ανάλυση εκτύπωσης που αναφέρει ο κατασκευαστής του, όχι όμως αποκλειστικά από αυτήν. Στην πράξη η τεχνολογία που χρησιμοποιείται για την εκτύπωση καθορίζει και την ποιότητα, όπως θα δούμε στη συνέχεια. Το πλήθος των κουκίδων ανά ίντσα είναι σημαντικό, όμως παίζουν ρόλο και άλλα χαρακτηριστικά, όπως το μέγεθος και το σχήμα της κουκίδας, η ακρίβεια στοίχισης των κουκίδων που ανήκουν στην ακρίβεια στοίχισης των κουκίδων που ανήκουν στην ίδια ευθεία, το χαρτί εκτύπωσης και άλλα. ια ευθεία, το χαρτί εκτύπωσης και άλλα. Έτσι η επιλογή επιλογή ενός ποιοτικού ποιοτικού εκτυπωτή, εκτυπωτή, εξαρτάται εξαρτάται από πολλούς πολλούς άλλους παράγοντες παράγοντες εκτός της τιμής της ανάλυσης εκτύπωσης.

Κρουστικοι εκτυπωτες (impact): - Εκτυπωτης ακιδων (Dot Matrix) Μη κρουστικοι εκτυπωτες: - Εκτυπωτης laser - Εκτυπωτης inkjet 

Τα βασικα χαρακτηριστικα των εκτυπωτων ειναι: 1. Αναλυση σε DPI (κουκιδες ανα ιντσα) 2. Ταχυτητα σε ppm (σελιδες ανα λεπτο) ή cpm (χαρακτηρες ανα λεπτο) 3. Δυνατοτητα χρωματος 4. Ειδος και μεγεθος χαρτιου (Α4,Α3, duplex) 5. Τυπος συνδεσης (π.χ. θύρα USB, παραλληλη θυρα) 6. Θόρυβος 7. Κοστος αγορας και εκτυπωσης 

Οι κρουστικοί Dot Matrix Χαρακτηριστικά του η μέτρια ποιότητα εκτύπωσης και το θόρυβο. Είναι απαραίτητοι όμως γι' αυτούς που χρησιμοποιούν συνεχές χαρτί, όπως και για εκτύπωση αντιγράφων με χρήση καρμπόν. Οι εκτυπωτές με ψεκασμό μελάνης Ink Jet Χαρακτηρίζονται από την ανάλυσή τους, δηλαδή τον αριθμό των κουκκίδων που μπορούν να τυπώσουν ανά ίντσα (dpi), τον αριθμό των κεφαλών (ασπρόμαυρη, έγχρωμη ή τέσσερα βασικά χρώματα συν το μαύρο), και η ταχύτητά τους μετριέται σε σελίδες ανά λεπτό (ppm).Επίσης Είναι πολύ φτηνοί, και είναι αρκετά αθόρυβοι. Είναι 3 τα βασικά χρώματα στα ink jet (Cyan, Magenta, Yellow) συν το μαύρο. Οι εκτυπωτές Laser Το μέγεθος χαρτιού, στο οποίο μπορεί να εκτυπώσει. Η ανάλυση εκτύπωσης, η οποία αναφέρεται στο πλήθος των κουκκίδων που μπορεί να παράγει ένας εκτυπωτής σε μια ευθεία γραμμή μήκους μιας ίντσας. Η ταχύτητα εκτύπωσης, που αναφέρεται στον αριθμό των σελίδων που μπο-ρεί να τυπώσει ο εκτυπωτής ανά λεπτό.


16. Τι ονομάζεται κώδικας ή σύνολο χαρακτήρων; Τι γνωρίζετε για τους κώδικες χαρακτήρων ASCII και Unicode; Από πόσα bit αποτελείται ο καθένας;

Μια κωδικοποίηση χαρακτήρων αποτελείται από έναν κώδικα που συσχετίζει ένα σύνολο χαρακτήρων όπως πχ οι χαρακτήρες που χρησιμοποιούμε σε ένα αλφάβητο με ένα διαφορετικό σύνολο πχ αριθμών , ή ηλεκτρικών σημάτων, προκειμένου να διευκολυνθεί η αποθήκευση ,διαχείριση κειμένου σε υπολογιστικά συστήματα καθώς και η μεταφορά κειμένου μέσω τηλεπικοινωνιακών δικτύων. Ο κώδικας ASCII (American Standard Code for Information Interchange, Αμερικανικός Πρότυπος Κώδικας για Ανταλλαγή Πληροφοριών) είναι ένα κωδικοποιημένο σύνολο χαρακτήρων του λατινικού αλφάβητου όπως αυτό χρησιμοποιείται σήμερα στην Αγγλική γλώσσα και σε άλλες δυτικοευρωπαϊκές γλώσσες. Χρησιμοποιείται για αναπαράσταση κειμένου στους υπολογιστές. σε συσκευές τηλεπικοινωνίας, καθώς και σε άλλες συσκευές που δουλεύουν με κείμενο. Οι περισσότερες σύγχρονες κωδικοποιήσεις χαρακτήρων βασίζονται στον ASCII, αν και υποστηρίζουν πολύ περισσότερους χαρακτήρες. Το Unicode Το Unicode έχει πολύ ευρύτερο μητρώο έχει πολύ ευρύτερο μητρώο χαρακτήρων, και ο χαρακτήρων, και οι διάφορες μορφές κ ι διάφορες μορφές κωδικοποίησής ωδικοποίησής του άρχισαν να εκτοπίζουν το ASCII ταχύτατα σε πολλά περιβάλλοντα. Ενώ ο ASCII περιορίζεται σε 128 χαρακτήρες, το Unicode υποστηρίζει πολύ περισσότερους διαχωρίζοντας τις έννοιες της μοναδικής ταυτοποίησης (χρησιμοποιώντας φυσικούς αριθμούς που αποκαλούνται κωδικά σημεία, code points) και της κωδικοποίησης (σε δυαδικές μορφές 8, 16 ή 32 bit, που ονομάζονται UTF-8, UTF-16 και UTF-32). Για να είναι δυνατή η προς τα πίσω συμβατότητα, οι 128 χαρακτήρες του ASCII έχουν τοποθετηθεί στα ίδια κωδικά σημεία της κωδικοποίησης Unicode. Συνεπώς ο ASCII μπορεί να θεωρηθεί διάταξη 7- bit για ένα πολύ μικρό υποσύνολο υποσύνολο της Unicode και αντίστοιχα αντίστοιχα οι μορφές κωδικοποίησης UTF- είναι δυαδικά συμβατές με τον ASCII για κωδικά σημεία κάτω από το 128, που σημαίνει ότι όλος ο ASCII είναι έγκυρος εντός του UTF-8. Οι άλλες μορφές κωδικοποίησης αναπαριστούν τον ASCII με τον τρόπο που αναπαριστούν τους πρώτους 128 χαρακτήρες του Unicode, αλλά χρησιμοποιούν 16 ή 32 bit ανά χαρακτήρα και έτσι απαιτούν μετατροπή για να είναι συμ μετατροπή για να είναι συμβατές. 

Η Πληροφορία αναπαρίσταται από γράμματα του αλφαβήτου, αριθμούς, σημεία στίξης και άλλους χαρακτήρες-σύμβολαΟι Ηλεκτρονικοί Υπολογιστές μπορούν και χειρίζονται μόνο τα δυαδικά ψηφία 0 και 1 (bit).Για να υπάρξει επικοινωνία μεταξύ ανθρώπων και υπολογιστών πρέπει να μετατραπούν οι χαρακτήρες σε σειρές από bit.Για την μετατροπή αυτή χρησιμοποιούνται συγκεκριμένοι πίνακες αντιστοιχίας ή πίνακες κωδικοποίησης ή κωδικοσελίδες ή κώδικες.

Κώδικες αναπαράστασης
Οι κώδικες συνήθως περιλαμβάνουν τα παρακάτω σύμβολα:10 αριθμητικά ψηφία 0 έως και 926 λατινικά κεφαλαία γράμματα26 λατινικά μικρά γράμματαΣύμβολα και σημεία στίξης κλπΧαρακτήρες ελέγχου STX, EOT, SYN, ACK κλπΕλληνικά γράμματα.

Κώδικας ASCII. Ο ASCII (American Standard Code for Information Interchange)‏ είναι ο πιο διαδεδομένος κώδικας αναπαράστασης χαρακτήρων.Αρχικά η κωδικοποίηση ASCII ικανοποιούσε τις ανάγκες των προγραμμάτων που απαιτούσαν ένα περιορισμένο σύνολο κωδικοποιημένων χαρακτήρων.Η εξέλιξη όμως των υπολογιστών δημιούργησε την ανάγκη νέων μορφών κωδικοποίησης του κειμένου όπως είναι οι ISO και Unicode καθώς και νέες γλώσσες περιγραφής όπως η κωδικοποίηση ιστοσελίδας HTML. 

Ένα παράδειγμα ASCII κωδικοποίησης (7bit) της λέξης "HELLO"
Η Ε L O ASCII (δεκαδικός) ‏72  69 76 79Δυαδικήαπεικόνιση 

Κωδικοσελίδες ISO (International Standards Organisation)‏
Σημαντικό μειονέκτημα της ASCII είναι ότι περιλαμβάνει μόνο λατινικούς χαρακτήρες.Για το λόγο αυτό δημιουργήθηκαν επεκτάσεις της (χρήση 8 bit), οι οποίοι μπορούσαν να αντιστοιχήσουν ακόμα άλλους 2^8 =256 χαρακτήρες.Οι πρώτες 128 θέσεις είναι ίδιες με την ASCII και οι επιπλέον 128 χαρακτήρες είναι για ειδικά σύμβολα άλλων αλφάβητων. Γνωστοί κώδικες που χρησιμοποιούνται στην Ελλάδα: IBM 851, IBM 869, 737 ή αλλιώς ελληνικός 437 (γιατί προέκυψε από την αμερικάνικη κωδικοσελίδα 437)ΕΛΟΤ 928 είναι η πιο σύγχρονη τυποποίηση και καθιερώθηκε αρχικά από τον ΕΛΟΤ και αργότερα έγινε αποδεκτή από τον ISO-Latin ή απλά Latin 7.

Unicode κωδικοποίηση

Η ανάπτυξη κωδικοσελίδων ISO έλυσε μερικώς το πρόβλημα με τα διάφορα αλφάβητα. Η Ευρωπαϊκή Ένωση χρειαζόταν πλήθους κωδικοσελίδων για να καλύψει όλες τις χώρες μέλη της και έτσι δημιουργήθηκε η κωδικοσελίδα Unicode, που προτείνει για κάθε χαρακτήρα, ένα μοναδικό αριθμό ανεξάρτητα από το λειτουργικό σύστημα, το λογισμικό και τη γλώσσα.Κάθε κωδικοποιημένη λέξη Unicode έχει μήκος 16 bit δηλαδή επιτυγχάνονται 2^16=65536 συνδυασμοίΗ Unicode παρέχει κωδικοποίηση για τους χαρακτήρες όλων των γλωσσών συμπεριλαμβανομένων των Ευρωπαϊκών, της Μέσης Ανατολής και της Ασίας

..Κωδικας ονομαζεται ενας κανονας με την βοηθεια του οποιου μετατρεπουμε ενα τμημα πληροφοριας (γραμμα,λεξη,φραση) σε μια αλλη μορφη αναπαραστασης, οχι απαραιτητα του ιδιου τυπου. Ο κωδικας ASCII ειναι ενα κωδικοποιημενο συνολο χαρακτηρων του λατινικου αλφαβητου οπως αυτο χρησιμοποιειται απο την σημερινη Αγγλικη γλωσσα. Χρησιμοποιειται για αναπαρασταση κειμενου σε υπολογιστες και σε αλλες συσκευες που δουλευουν με κειμενο. Οι πιο συγχρονες κωδικοποιησεις χαρακτηρων βασιζονται στον ASCII αλλα υποστηριζουν περισσοτερους χαρακτηρες. Ο βασικος κωδικας ASCII χρησιμοποιει 7 bits για τον καθε χαρακτηρα (128) αλλα ο επεκταμενος κωδικας χρησιμοποιει 8 bits και ετσι οι διαθεσιμοι χαρακτηρες διπλασιαζονται (256). Ο κωδικας Unicode ειναι το διεθνης προτυπο που χρησιμοποιειται απο τους υπολογιστες και εχει ως στοχο την κωδικοποιηση ολων των διαθεσιμων συστηματων γραφης (συμπεριλαμβανομενων για ακαδημιακους ρολους και καποιων που εχουν εξαφανιστει) που χρησιμοποιουνται στον πλανητη. Ως αποτελεσμα γινεται δυνατη η αποθηκευση γραπτου κειμενου ολων των γλωσσων και μαθηματικων-επιστημιακων χαρακτηρων στην μνημη του υπολογιστη. Ο κωδικας Unicode υποστηριζει πολλα προτυπα που μπορει να εχουν απο 1-6 byte (8-48 bits) για την κωδικοποιηση καθε χαρακτηρα. Το πιο συνιθησμενο προτυπο ειναι το UTF-8 που χρησιμοποιει 8 bits για καθε χαρακτηρα

Ένας αλφαριθμητικός κώδικας είναι ένα σύστημα που χρησιμοποιεί δυαδικούς αριθμούς(1 και 0) για να αναπαραστήσει χαρακτήρες που είναι κατανοητοί στους ανθρώπους (γράμματα και αριθμοί). Κάθε σύμβολο μπορεί να αναπαρασταθεί από ένα bit και η διαδικασία της αναπαράστασης συμβόλων ονομάζεται κωδικοποίηση. Ο κώδικας ASCII (American Standard Code for Information Interchange) αποτελεί το πιο διαδεδομένο κώδικα χαρακτήρων ιδιαίτερα στο χώρο των μικροϋπολογιστών. Αρχικά χρησιμοποιούσε 8 bits, 7 για την κωδικοποίηση 128 χαρακτήρων και 1 ως bit ελέγχου της ορθότητας των 7. Με την εξέλιξη των υπολογιστών χρησιμοποιήθηκε και το όγδοο bit για την κωδικοποίηση με αποτέλεσμα να έχουμε δυνατότητα για άλλους 128 χαρακτήρες. Ο κώδικας Unicode χρησιμοποιεί 16 bit και μπορεί να αναπαραστήσει μέχρι 65,536 σύμβολα. Ο κώδικας αυτός είναι χωρισμένος σε διάφορες ενότητες, κάθε μία από τις οποίες αντιστοιχεί στα σύμβολα μιας διαφορετικής γλώσσας. Έτσι αναπαριστά σύμβολα που ανήκουν σε άλλες γλώσσες εκτός των Αγγλικών. 


17. Ποιες βασικές λειτουργίες μπορούμε να εκτελέσουμε σ' ένα αρχείο;

Άνοιγμα, (Εκτύπωση), Αποκοπή, Αντιγραφή, Επικόλληση, Διαγραφή, Μετονομασία, Δημιουργία Συντόμευσης, Συμπίεση. 

..Δημιουργία νέου αρχείου. - Διαγραφή αρχείου από τη βοηθητική μνήμη. - Άνοιγμα αρχείου για πρόσβαση στα δεδομένα του. - Κλείσιμο αρχείου που ανοίχτηκε, προσπελάστηκε, τροποποιήθηκε. - Ανάγνωση δεδομένων ανοιχτού αρχείου. - Εγγραφή δεδομένων σ' ένα ανοιχτό αρχείο, στο τρέχων σημείο του. - Ανάγνωση ή τροποποίηση των χαρακτηριστικών ενός αρχείου.

Η πρόσβαση στα αρχεία γίνεται μέσω κλήσεων στο ΛΣ.  Δημιουργία ενός νέου αρχείου.  Διαγραφή ενός αρχείου από τη δευτερεύουσα μνήμη.  Άνοιγμα ενός αρχείου από μια διεργασία ώστε αυτή να έχει πρόσβαση στα περιεχόμενά του.  Κλείσιμο ενός αρχείου που είχε ανοιχτεί νωρίτερα από μια διεργασία.  Ανάγνωση δεδομένων από ανοιχτό αρχείο.  Εγγραφή δεδομένων σ' ένα ανοιχτό αρχείο στο τρέχον σημείο του.  Ανάγνωση ή αλλαγή χαρακτηριστικών αρχείου.  


18 Τι είναι τα δεδομένα και ποια η έννοια της πληροφορίας; Ποια είναι η διαφορά μεταξύ πληροφορίας και δεδομένων;

Ειδικότερα στην Ειδικότερα στην πληροφορική πληροφορική συναντούμε τα δεδομένα στον πληθυντικό αριθμό, σπανιότερα στον ενικό (δεδομένο). Γενικότερα, δεδομένο ονομάζεται ένα γνωστό ή αποδεκτό στοιχείο το οποίο χρησιμοποιείται ως βάση ή προϋπόθεση στην επίλυση προβλημάτων. Τα δεδομένα μπορεί να είναι σημεία πληροφοριών επί επιστημονικών παρατηρήσεων ή συμπεριφοράς και να περιλαμβάνουν περιλαμβάνουν λέξεις - έννοιες, αριθμούς, σύμβολα, διαγράμματα, σχέδια, φωτογραφίες, μαγνητοταινίες κλπ που περιγράφουν ή αντιπροσωπεύουν ποσότητες, έννοιες, ιδέες, αντικείμενα, γεγονότα, καταστάσεις και λειτουργίες. Ενδεχομένως κάποιοι από τους τύπους δεδομένων που παρατίθενται εμπεριέχουν ήδη εμφανείς πληροφορίες, όχι όμως την πληροφορία στο επίπεδο που συνθέτει μια αξι πληροφορία στο επίπεδο που συνθέτει μια αξιολόγησή ολόγησή τους. Γενικά, μπορούμε να ονομάσουμε Δεδομένα (Data) τα στοιχεία που χρησιμοποιούμε για επεξεργασία. Τα αποτελέσματα που παίρνουμε από την επεξεργασία των δεδομένων και μας μεταδίδουν κάποια επιπρόσθετη γνώση, τα χαρακτηρίζουμε ως Πληροφορία (Information). Η επεξεργασία των δεδομένων έχει ποικίλες μορφές, χωρίς να είναι πάντοτε απαραίτητη η εφαρμογή αριθμητικών πράξεων. Αν και αρχικά τα δεδομένα δε φαίνεται να έχουν τόση σημασία για μας, αποτελούν πολύτιμα στοιχεία, για να πάρουμε χρήσιμες πληροφορίες. Η πληροφορία, σε αντίθεση με τα δεδομένα, είναι κάτι που έχει σημασία για μας, κάτι που θέλουμε να μάθουμε. Οι πληροφορίες προκύπτουν από τα επιλεγμένα δεδομένα μετά από κατάλληλη επεξεργασία. Με άλλα λόγια, η πληροφορία ή οι πληροφορίες που παίρνουμε εξαρτώνται και από το είδος της επεξεργασίας που εφαρμόζουμε στα δεδομένα τα οποία διαθέτουμε. Αν, για παράδειγμα, τα δεδομένα είναι μουσικές νότες, η διαφορετική παράθεσή τους, δηλαδή η διαφορετική επεξεργασία τους, μας δίνει ως αποτέλεσμα μια διαφορετική σύνθεση, δηλαδή ένα διαφορετικό αποτέλεσμα.

... Δεδομένα : Τα πρωτογενή στοιχεία τα οποία είναι ικανά να δημιουργήσουν πληροφορίες ονομάζονται δεδομένα.  Πληροφορία: Το αποτέλεσμα της επεξεργασίας δεδομένων

Τα δεδομενα ειναι στοιχεια, εννοιες και οδηγιες τυποποιημενα και δομημενα σε συγκεκριμενη μορφη, καταλληλα για επεξεργασια απο ανθρωπους ή μηχανες. Αντίθετα, η πληροφορια εξαγεται μετα απο την επεξεργασια των δεδομενων. Αρα η πληροφοριες ειναι οργανωμενα και δομημενα δεδομενα τα οποια εχουν υποστει επεξεργασια και παρουσιαζονται με τετοιο τροπο ωστε να ειναι χρησιμα.

Δεδομένα (Data) είναι τα στοιχεία που χρησιμοποιούμε για επεξεργασία. Τα αποτελέσματα που παίρνουμε από την επεξεργασία των δεδομένων και μας μεταδίδουν κάποια επιπρόσθετη γνώση, τα χαρακτηρίζουμε ως Πληροφορία (Information). Η επεξεργασία των δεδομένων έχει ποικίλες μορφές, χωρίς να είναι πάντοτε απαραίτητη η εφαρμογή αριθμητικών πράξεων. Πληροφορίες που έχουν προκύψει ως αποτέλεσμα μιας επεξεργασίας, μπορούν να χρησιμοποιηθούν οι ίδιες ή σε συνδυασμό με άλλα δεδομένα για την παραγωγή νέων πληροφοριών. Η διαδικασία αυτή, δηλαδή πληροφορίες να αποτελούν στη συνέχεια δεδομένα σε μία νέα επεξεργασία, χαρακτηρίζεται ως Κύκλος Επεξεργασίας των Δεδομένων.

 Τα δεδομένα είναι ακατέργαστο, αναλυτικό, ανοργάνωτο, άσχετο, αδιάκοπο υλικό το οποίο χρησιμοποιείται για την εξαγωγή πληροφοριών μετά από ανάλυση. Από την άλλη πλευρά, η πληροφορία είναι αντιληπτή, ερμηνευμένη ως ένα μήνυμα με συγκεκριμένο τρόπο, το οποίο δίνει νόημα στα δεδομένα.

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

ΒΑΣΗ ΓΙΑ ΣΥΓΚΡΙΣΗ ΔΕΔΟΜΕΝΑ ΠΛΗΡΟΦΟΡΙΕΣ
Εννοια Τα δεδομένα είναι ακαθόριστα γεγονότα και αριθμοί και χρησιμοποιούνται ως εισροές για το σύστημα ηλεκτρονικών υπολογιστών.- Οι πληροφορίες είναι η έξοδος των επεξεργασμένων δεδομένων.
Χαρακτηριστικά Τα δεδομένα είναι μια μεμονωμένη μονάδα που περιέχει πρώτη ύλη και δεν έχει νόημα.- Οι πληροφορίες είναι το προϊόν και η ομάδα δεδομένων που συλλογικά φέρουν λογική σημασία.
ΕΞΑΡΤΗΣΗ Δεν εξαρτάται από τις πληροφορίες.-Στηρίζεται σε δεδομένα.
Ιδιορρυθμία Ασαφής- Ειδικός.
Μονάδα μέτρησης Μετρώνται σε bits και bytes. -Μετρήθηκε σε σημαντικές μονάδες όπως είναι ο χρόνος, η ποσότητα κ.λπ. 

Ορισμός δεδομένων:

Τα δεδομένα είναι διακριτές πληροφορίες που είναι διατεταγμένες σε μια συγκεκριμένη μορφή . Η λέξη δεδομένων προέρχεται από μια μοναδική λατινική λέξη, την ημερομηνία. η αρχική του έννοια είναι "κάτι που δίνεται" . Χρησιμοποιούμε αυτή τη λέξη από το 1600 και τα δεδομένα μετατρέπονται στον πληθυντικό του datum.

Τα δεδομένα μπορούν να υιοθετήσουν πολλαπλές μορφές όπως αριθμούς, γράμματα, σύνολο χαρακτήρων, εικόνα, γραφικό κλπ. Αν μιλάμε για τους Υπολογιστές, τα δεδομένα αντιπροσωπεύονται στα πρότυπα 0 και 1 τα οποία μπορούν να ερμηνευτούν ως αντιπροσωπευτικά αξία ή γεγονός . Οι μονάδες μέτρησης δεδομένων είναι Bit, Nibble, Byte, kB (kilobytes), MB (Megabytes), GB (Gigabytes), TB (Terabytes), PT (Petabyte), EB (Exabyte), ZB (Zettabytes), και τα λοιπα.

Για την αποθήκευση δεδομένων χρησιμοποιήθηκαν παλαιότερες διάτρητες κάρτες, οι οποίες στη συνέχεια αντικαταστάθηκαν από μαγνητικές ταινίες και σκληρούς δίσκους.

Ορισμός των πληροφοριών:

Οι πληροφορίες είναι αυτό που λαμβάνετε μετά την επεξεργασία των δεδομένων. Τα δεδομένα και τα γεγονότα μπορούν να αναλυθούν ή να χρησιμοποιηθούν ως μια προσπάθεια να αποκτήσουν γνώσεις και να συναγάγουν ένα συμπέρασμα. Με άλλα λόγια, ακριβή, συστηματοποιημένα, κατανοητά, σχετικά και έγκαιρα δεδομένα είναι η πληροφορία .

Οι πληροφορίες είναι μια παλαιότερη λέξη που χρησιμοποιούμε από το 1300 και έχουμε γαλλική και αγγλική προέλευση. Προέρχεται από το ρήμα " ενημέρωση ", το οποίο σημαίνει ενημέρωση και ενημέρωση, ερμηνεύεται έτσι ώστε να διαμορφώνει και να αναπτύσσει μια ιδέα .

Πληροφορίες = Δεδομένα + Έννοια

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

Ας πάρουμε ένα παράδειγμα "5000" είναι δεδομένα, αλλά αν προσθέσουμε τα πόδια σε αυτό δηλαδή "5000 πόδια" γίνεται πληροφόρηση. Αν συνεχίσουμε να προσθέτουμε στοιχεία, θα φθάσουμε στο υψηλότερο επίπεδο ιεραρχίας πληροφοριών όπως φαίνεται στο διάγραμμα. 

Διαφορά μεταξύ δεδομένων και πληροφοριών

  1. Οι πληροφορίες είναι κρίσιμες κατά μία έννοια.
  2. Υπάρχουν διάφορες τεχνικές κωδικοποίησης για την ερμηνεία και τη μετάδοση πληροφοριών.
  3. Η κρυπτογράφηση πληροφοριών χρησιμοποιείται για την αύξηση της ασφάλειας κατά τη διάρκεια της μετάδοσης και της αποθήκευσης επίσης.

Βασικές διαφορές μεταξύ δεδομένων και πληροφοριών

  1. Τα δεδομένα είναι μια ενιαία μονάδα που περιέχει ακατέργαστα δεδομένα και αριθμούς. Αντίθετα, η πληροφορία είναι η συλλογή χρήσιμων δεδομένων, η οποία είναι σε θέση να παρέχει γνώση ή διορατικότητα σχετικά με τον συγκεκριμένο τρόπο.
  2. Οι πληροφορίες προέρχονται από τα δεδομένα και ως εκ τούτου τα δεδομένα δεν βασίζονται σε πληροφορίες, αλλά οι πληροφορίες.
  3. Τα δεδομένα χρησιμοποιούνται ως είσοδος, η οποία πρέπει να επεξεργαστεί και να οργανωθεί με έναν συγκεκριμένο τρόπο για να παράγει αποτελέσματα, δηλαδή πληροφορίες.
  4. Τα δεδομένα δεν μπορούσαν να προσδιορίσουν τίποτα. δεν υπάρχει σχέση ανάμεσα στα κομμάτια των δεδομένων ενώ η πληροφορία είναι συγκεκριμένη και υπάρχει συσχέτιση.
  5. Τα δεδομένα δεν έχουν πραγματικό νόημα, ενώ οι πληροφορίες έχουν κάποια σημασία.

Συμπέρασμα :

Δεδομένα και πληροφορίες, και οι δύο όροι που χρησιμοποιούμε είναι μέρος της ιεραρχίας των πληροφοριών και διαφέρουν στον τρόπο με τον οποίο τα δεδομένα δεν έχουν νόημα, αλλά οι πληροφορίες που σχηματίζονται από τα επεξεργασμένα δεδομένα έχουν νόημα στο πλαίσιο.


19. Τι είναι η μνήμη RAM και ROM; Να αναφέρετε τις διαφορές τους.

Η μνήμη ROM είναι μόνιμη μνήμη, δηλαδή κρατάει το περιεχόμενό της ακόμα και όταν ο υπολογιστής υπολογιστής είναι κλειστός. κλειστός. Στη ROM είναι αποθηκευμένο αποθηκευμένο το πρόγραμμα πρόγραμμα εκκίνησης εκκίνησης του υπολογιστή υπολογιστή που φορτώνει φορτώνει τα Windows. Windows. Από τη μνήμη ROM, όμως, μπορούμε μπορούμε μόνο να διαβάζουμε δεδομένα και δεν μπορούμε να αποθηκεύσουμε καμία πληροφορία σε αυτήν. Η μνήμη RAM, γνωστή ως Μνήμη Τυχαίας Προσπέλασης (Random Access andom Access Memory) αποτελεί Memory) αποτελεί την κύρια μνήμη του υπολογιστή. Χρησιμοποιείται για την αποθήκευση δεδομένων κατά την εκτέλεση ενός προγράμματος στον υπολογιστή. Το μεγαλύτερο μειονέκτημα της μνήμης RAM είναι ότι χάνει τα δεδομένα της μόλις κλείσετε τον υπολογιστή σας και για αυτό δεν μπορεί να χρησιμεύσει για μακροχρόνια αποθήκευση. 

...ROM (Read Οnly Memory) είναι μία μικρή μόνιμη μνήμη που περιέχει το λεγόμενο BIOS (Basic Input Output System) του υπολογιστή, και συνήθως βρίσκεται στην μητρική πλακέτα. Εδώ περιέχεται το μέρος του λειτουργικού. Είναι μόνο για ανάγνωση. Η μνήμη RAM (Random Access Memory) είναι μνήμη τυχαίας προσπέλασης στην οποία αποθηκεύονται προσωρινά τα προγράμματα που εκτελούνται, τα δεδομένα που χρησιμοποιούν και τα ενδιάμεσα αποτελέσματα που παράγουν. Η μνήμη RAM διατηρεί αναλλοίωτα τα περιεχομένα της για όσο χρονικό διάστημα τροφοδοτείται με ρεύμα.

Η μνημη τυχαιας προσπελασης (Random Access Memory) ειναι ηλεκτρονικες διαταξεις προσωρινης αποθηκευσης ψηφιακων δεδομενων οι οποιες επιτρεπουν την προσβαση στα αποθηκευμενα δεδομενα στον ιδιο χρονο οπου και αν βρισκονται αυτα (τυχαια προσβαση) 

Η μνημη μονο για αναγνωση (Read Only Memory) ειναι τυπος ηλεκτρονικης μνημης μονο αναγνωσης. Το περιεχομενο της γραφεται μονο μια φορα, συνηθως απο τον κατασκευαστη της μητρικης πλακετας οπου και συναντουμε αυτον τον τυπο μνημης. Υπαρχουν 6 βασικες διαφορες: 

1. Τα δεδομενα της RAM δεν ειναι μονιμα και μπορουν να αλλαξουν απεριοριστες φορες ενω της ROM ειναι μονιμα και μπορουν να αλλαξουν μονο εναν συγκεκριμενο αριθμο και αυτο με πολυ μικρες ταχυτητες 

2. Η μνημη RAM ειναι πολυ πιο γρηγορη απο την ROM 

3. Ο επεξεργαστης εχει προσβαση στα δεδομενα της RAM αλλα οχι στης ROM. Για να αποκτησει προσβαση τα δεδομενα πρεπει πρωτα να αντιγραφουν στην RAM 

4. Η μνημη RAM εχει μεγαλο μεγεθος και χωρητικοτητα ενω η ROM εχει μικρο 

5. Η μνημη τυπου RAM ειναι η πρωτευον μνημη ενος υπολογιστη ενω η ROM χρησιμοποιειται για την μονιμη αποθηκευση λιγων δεδομενων για αυτο χρησιμοποιειται συνηθως σε firmware οπως το BIOS/UEFI. 

6. Η μνημη RAM ειναι ακριβοτερη απο την ROM

SecNews.gr ----- EL.GADGET-INFO.COM - 2021

Μετά το σκληρό δίσκο ή SSD, η μνήμη RAM είναι το μεγαλύτερο αποθηκευτικό μέσο που υπάρχει στο hardware του υπολογιστή. Η RAM χρησιμοποιείται για την αποθήκευση των προγραμμάτων και των δεδομένων που χρησιμοποιεί η CPU σε πραγματικό χρόνο. Τα δεδομένα στη μνήμη RAM μπορούν να διαβαστούν, να γραφτούν και να διαγραφούν όσες φορές επιθυμούμε.

H RAM είναι μια «πτητική» μνήμη (volatile memory) που σημαίνει ότι τα δεδομένα που είναι αποθηκευμένα εκεί εξαφανίζονται τη στιγμή που σταματάει η παροχή ρεύματος. Αυτός είναι ένας από τους λόγους για τους οποίους δεν μπορούμε να χρησιμοποιήσουμε τη μνήμη RAM για μόνιμη αποθήκευση, παρά το γεγονός ότι είναι πολύ πιο γρήγορη από τους παραδοσιακούς σκληρούς δίσκους. Όλα τα σύγχρονα λειτουργικά συστήματα που χρησιμοποιούμε έχουν ενσωματωμένους τρόπους αντιμετώπισης της πτητικότητας της RAM. Όλες οι εργασίες που πραγματοποιούνται, αποθηκεύονται συνεχώς στο σκληρό δίσκο για να αποφευχθούν καταστάσεις όπου απροσδόκητο κλείσιμο του συστήματος θα οδηγούσε σε απώλεια δεδομένων.

 Τύποι μνήμης RAM

SRAM (Static RAM): Αποθηκεύει κάθε bit δεδομένων χρησιμοποιώντας ένα κύτταρο μνήμης (cell) με έξι τρανζίστορ. Η SRAM είναι πολύ πιο γρήγορη από τη DRAM αλλά πιο δαπανηρή.

DRAM (Dynamic RAM): Αποθηκεύει κάθε bit δεδομένων, χρησιμοποιώντας ένα ζεύγος τρανζίστορ και πυκνωτή, τα οποία αποτελούν ένα κύτταρο μνήμης DRAM

ROM (Read-Only Memory)

Ένας άλλος αξιοσημείωτος τύπος μνήμης που υπάρχει στον υπολογιστή είναι η ROM. Όπως υποδηλώνει το όνομα, τα δεδομένα στη μνήμη μπορούν μόνο να διαβαστούν από τον υπολογιστή. Οπότε ποιος ο λόγος που χρησιμοποιείται αυτή η μνήμη;

Η ROM είναι μια μη πτητική μνήμη. Δεν χάνει τα δεδομένα της ακόμα κι αν έχει αφαιρεθεί η τροφοδοσία ρεύματος. Η ROM χρησιμοποιείται για την αποθήκευση του υλικολογισμικού για το hardware το οποίο δεν παίρνει σχεδόν καμία ενημέρωση, για παράδειγμα το BIOS.

Τα δεδομένα στην παραδοσιακή μορφή της ROM είναι συνδεδεμένα με αυτή, δηλ. περασμένα κατά τη στιγμή της κατασκευής. Με την πάροδο του χρόνου, αυτή η μνήμη έχει αναπτυχθεί για να υποστηρίζει τη διαγραφή και την επανεγγραφή δεδομένων, αν και δεν μπορεί να επιτύχει το επίπεδο απόδοσης ενός τσιπ RAM.

Τύποι ROM

RAM vs ROM: Ποια είναι η διαφορά μεταξύ RAM και ROM;

Mask ROM: Στον συγκεκριμένο τύπο ROM τα δεδομένα γράφονται κατά την κατασκευή του τσιπ μνήμης.

PROM (Programmable Read-only Memory): Τα δεδομένα εγγράφονται μετά τη δημιουργία του τσιπ μνήμης. Είναι μη πτητική.

EPROM (Erasable Programmable Read-only Memory): Τα δεδομένα από αυτό το μη πτητικό τσιπ μνήμης μπορούν να διαγραφούν, μέσω της έκθεσής του σε υπεριώδη ακτινοβολία υψηλής έντασης.

EEPROM (Electrically Erasable Programmable Read-only Memory): Τα δεδομένα από το συγκεκριμένο μη πτητικό τσιπ μνήμης μπορούν να διαγραφούν ηλεκτρικά χρησιμοποιώντας εκπομπές ηλεκτρονίων (tunneling Fowler-Nordheim). Οι σύγχρονες μονάδες EEPROM είναι αρκετά αποδοτικές όσον αφορά τις δυνατότητες ανάγνωσης και εγγραφής. Τα οπτικά μέσα αποθήκευσης όπως το CD-ROM είναι επίσης μια μορφή μνήμης μόνο για ανάγνωση.

Ποια είναι η διαφορά μεταξύ RAM και ROM;

Και οι δύο μνήμες διαθέτουν τα πλεονεκτήματα και τα μειονεκτήματά τους. Η ROM είναι φθηνή και μπορεί να κατέχει δεδομένα μόνιμα αλλά έχει τους περιορισμούς της. Από την άλλη πλευρά, η μνήμη RAM είναι αρκετά χρήσιμη, αλλά κοστίζει περισσότερο.

Η ROM είναι πιο χρήσιμη από όσο νομίζετε. Η μνήμη Flash που βρίσκουμε σε αφαιρούμενα μέσα αποθήκευσης, όπως μονάδες SSD, μονάδες USB, κάρτες SD κ.λπ., είναι μια προηγμένη εφαρμογή του τύπου μνήμης EEPROM. Το παράγωγο παρέχει ταχύτερη λύση αποθήκευσης από τους παραδοσιακούς σκληρούς δίσκους.


20. Τι έιναι η λανθάνουσα - κρυφή μνήμη cache; Πως λειτουργεί;

Η λανθάνουσα ή κρυφή μνήμη (cache memory) L1, L2 και L3, είναι μνήμη που βρίσκεται εσωτερικά στο chip του επεξεργαστή. Πρόκειται για ταχύτατη μνήμη προσωρινής αποθήκευσης δεδομένων, στην οποία αποθηκεύονται πρόσφατα χρησιμοποιημένα δεδομένα ή δεδομένα που χρησιμοποιούνται συχνότερα από τον επεξεργαστή. Ο επεξεργαστής όταν χρειάζεται κάποιο χρειάζεται κάποιο δεδομένο, ελέγχει πρώτα τη δεδομένο, ελέγχει πρώτα τη μνήμη Cache μνήμη Cache και στην και στην περίπτωση που δε περίπτωση που δε το εντοπίσει εκεί το αναζητά στην κύρια μνήμη (RAM). Η αύξηση της μνήμης Cache ενός επεξεργαστή αυξάνει και την συνολική απόδοσή του. 

Η κρυφή µνήµη και η λειτουργία της --- ∆ΙΕΚ Κοζάνης/ Ερωτήσεις Επανάληψης

Η λανθάνουσα ή κρυφή μνήμη είναι ταχύτατη, υψηλού κόστους και συνήθως μικρής χωρητικότητας μνήμη. Τοποθετείται ανάμεσα στην Κύρια Μνήμη και την ΚΜΕ. Στην κρυφή μνήμη αποθηκεύονται δεδομένα που χρησιμοποιούνται πολύ συχνά. Η προσπέλαση σε αυτή είναι συνήθως 5-10 φορές πιο γρήγορη από ότι στην κύρια μνήμη και συνεπώς αυξάνει την επίδοση του Η/Υ, αφού επιτρέπει ταχύτατη προσπέλαση στα πιο συχνά χρησιμοποιούμενα δεδομένα.

Κρυφή μνήμη Κεντρικής Μονάδας Επεξεργασίας, γνωστή και ως λανθάνουσα μνήμη (CPU) ΚΜΕ, ονομάζουμε τη μνήμη που χρησιμοποιείται από τον επεξεργαστή για να επιτύχει ταχύτερη πρόσβαση στην κύρια μνήμη.

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

..Η κρυφη μνημη cache αποθηκευει μια συλλογη απο δεδομενα τα οποια ειναι αντιγραφα τιμων που βρισκονται αλλου. Το πιο γνωστο παραδειγμα ειναι η κρυφη μνημη του επεξεργαστη η οποια μεσολαβει και αντιγραφει προσωρινα τα δεδομενα που βρισκονται στην μνημη RAM πριν να εχει προσβαση σε αυτα η ΚΜΕ. Η κρυφη μνημη αποθηκευει εντολες και λεξεις οι οποιες χρησιμοποιηθηκαν προσφατα απο την μνημη RAM. Ετσι οταν η ΚΜΕ χρειαστει παλι προσβαση σε αυτα τα δεδομενα η ταχυτητα αναγνωσης θα ειναι πολυ γρηγοροτερη. Αν η ΚΜΕ δεν εντοπισει αυτο που ψαχνει τοτε αρχιζει η προσπελαση στην RAM και η κρυφη μνημη ανανεωνεται. Ομαδες λεξεων και δεδομενων που ειναι σχετικες αποθηκευονται διπλα διπλα στην κρυφη μνημη ετσι ωστε να υπαρξει βελτιστη πιθανοτητα οτι τα δεδομενα θα διαβαστουν γρηγοροτερα.


21. Να μετατρέψετε τον δεκαδικό αριθμό 120 σε δυαδικό και οκταδικό αριθμό.

Για να μετατρέψουμε έναν δεκαδικό αριθμό σε δυαδικό κάνουμε διαδοχικές διαιρέσεις στο πηλίκο του δεκαδικό αριθμού με διαιρέτη το αριθμό 2. Τα υπόλοιπα από την εκάστοτε διαίρεση σε αντίστροφη σειρά αποτελούν το ζητούμενο δυαδικό αριθμό. Συνεπώς ο δεκαδικός αριθμός 120 θα γίνει (αριστερά εμφανίζεται το πηλίκο των διαιρέσεων ενώ δεξιά το υπόλοιπο): Άρα 120<10>=1111000<2>  

Σε δυαδικό αριθμό είναι:(120)10=(1111000)2

Διαιρετέος Διαιρέτης Πηλίκο Υπόλοιπο

120 2 60 0

60 2 30 0

30 2 15 0

15 2 7 1

7 2 3 1

3 2 1 1

1 2 0 1

Σε οκταδικό είναι:(120)10=(170)8

Διαιρετέος Διαιρέτης Πηλίκο Υπόλοιπο

120 8 15 0

15 8 1 7

1 8 0 1


22. Στον υπολογιστή τι εργασία εκτελεί ο επεξεργαστής; Αναφέρετε μερικά είδη επεξεργαστών.

Ο Επεξεργαστής (processor) ή αλλιώς Κεντρική Μονάδα Επεξεργασία - ΚΜΕ (Central Processing Unit - CPU) είναι το βασικότερο τμήμα ενός υπολογιστή και θεωρείται ο εγκέφαλος ενός υπολογιστή. Ο επεξεργαστής βρίσκεται τοποθετημένος πάνω στη μητρική πλακέτα (motherboard). Εκτελεί ένα μεγάλο μέρος από τη δουλεία του υπολογιστή και δεδομένα φτάνουν και φεύγουν από τον επεξεργαστή συνεχώς. Δέχεται εντολές επεξεργασίας δεδομένων, που πρέπει να εκτελέσει. Συνεπώς, μπορούμε να πούμε ότι η δουλειά του είναι να κάνει πράξεις και να μεταφέρει δεδομένα. Τα δεδομένα που δέχεται μπορούν να χωριστούν σε δύο κατηγορίες: • Εντολές Εντολές (instructions) (instructions) για το πως θα διαχειριστεί διαχειριστεί τα υπόλοιπα υπόλοιπα δεδομένα. δεδομένα. • Δεδομένα, Δεδομένα, τα οποία πρέπει να διαχειριστεί διαχειριστεί σύμφωνα σύμφωνα με τις εντολές. εντολές. Αυτό που αποκαλούμε εντολές, είναι κώδικας προγράμματος. Περιλαμβάνει τα μηνύματα (εντολές) που συνεχώς στέλνουμε στον υπολογιστή μέσω του ποντικιού ή του πληκτρολογίου ή κάποιων άλλων μονάδων εισόδου. Μηνύματα για να εκτυπώσει, να αποθηκεύσει, να ανοίξει ένα αρχείο, κλπ.

Ο επεξεργαστής στον υπολογιστή εκτελεί κυρίως αριθμητικές και λογικές πράξεις, αποτελείται απο τρία βασικά βήματα: την ανάκληση, την αποκωδικοποίηση και την εκτέλεση των εντολών. Κατά την ανάκληση ο επεξεργαστής δέχεται μία εντολή από την κυρία μνήμη. Στην συνέχεια αποκωδικοποιεί αυτές της εντολές και δίνει σήμα, για το τελευταίο στάδιο, το στάδιο της εκτέλεσης της εντολής. Μετά την εκτέλεση τα αποτελέσματα αποθηκεύονται στην μνήμη προκειμένου να έιναι εύκολα προσπελάσιμα απο επόμενες εντολές.

Μερικά είδη επεξεργαστών:

* 4-bit Μικροεπεξεργαστές

* 8bit Μικροεπεξεργαστές

* 16-bit Μικροεπεξεργαστές

* 32-bit Μικροεπεξεργαστές

* 64-bit Μικροεπεξεργαστές

..Ο επεξεργαστης εκτελει τρεις εργασιες, την ανακληση, την αποκωδικοποιηση, και την εκτελεση. Κατά την ανάκληση ο επεξεργαστής δέχεται μία εντολή από την RAM με τη μορφή μιας σειράς αριθμών. Στη συνέχεια προβαίνει στην αποκωδικοποίηση αυτής της εντολής και δίνει σήμα, ώστε να γίνει η εκτέλεση της εντολής. Αφού γίνει η εκτέλεση της εντολής, τα αποτελέσματα αποθηκεύονται στη μνήμη, προκειμένου να είναι εύκολα προσπελάσιμα από επόμενες εντολές.

...Ο επεξεργαστής είναι επιφορτισμένος με την επεξεργασία των δεδομένων. Οι τρείς βασικοί τύποι στους οποίους κατατάσσονται όλοι οι επεξεργαστές είναι οι Desktop , Mobile και Server. Κεντρική μονάδα επεξεργασίας Εκτελεί την επεξεργασία των δεδομένων δηλ. κάνει κάθε είδους πράξεις, αλλά και ελέγχει την όλη λειτουργία του Η/Υ. Χωρίζεται σε δύο μέρη: Την αριθμητική και λογική μονάδα και Τη μονάδα ελέγχου. Το κεντρικό κύκλωμα ενός ηλεκτρονικού υπολογιστή ονομάζεται μικροεπεξεργαστής ή αλλιώς cpu (central processing unit=κεντρική μονάδα επεξεργασίας). Ο μικροεπεξεργαστής είναι το μυαλό υπολογιστή, ελέγχει και κατευθύνει όλες τις εργασίες, κάνει υπολογισμούς και παίρνει αποφάσεις. Είναι ένα μικρό, τετράγωνο ηλεκτρονικό κύκλωμα, διαστάσεων περίπου 3 επι 3 εκατοστά, στο εσωτερικό του υπολογιστή. Το είδος του μικροεπεξεργαστή που έχει ένας Η/Υ καθορίζει κατά ένα μεγάλο βαθμό την συνολική απόδοση του μηχανήματος. 22 Κατηγορίες :  Pentium.  Core2 (μονοπύρηνα, διπύρηνα, τετραπύρηνα). Οι διάδοχοι της εμπορικής σειράς Core 2, ήταν οι επεξεργαστές με την εμπορική επωνυμία Core i3, Core i5 και Core i7.


23. Ποιες οι διαφορές μεταξύ ενός interpreter και ενός compiler;

Ειδικά προγράμματα που μεταφράζουν ένα πρόγραμμα από γλώσσα προγραμματισμού σε γλώσσα μηχανής. Διακρίνονται σε δύο κατηγορίες a. compiler - μεταγλωττιστής γλώσσας υψηλού επιπέδου b. interpreter interpreter - διερμηνέας δηλ. μεταγλωττιστής με ταυτόχρονη εκτέλεση του προγράμματος. Α) Compiler : • Διαβάζει Διαβάζει το πηγαίο πρόγραμμα πρόγραμμα και κάνει γραμμα κάνει γραμματικό και συντακτικό συντακτικό έλεγχο εμφανίζοντας τα λάθη ( diagnostics) • Η διαδικασία επαναλαμβάνεται μέχρι να μηδενιστούν τα λάθη • Παράγει τον αντικείμενο κώδικα • Κάνει κατάληψη του απαραίτητου χώρου στην κύρια μνήμη για να μπορεί να εκτελεστεί το πρόγραμμα • Φυλάσσει το αντικείμενο πρόγραμμα στο δίσκο Β) Interpreter : • Ελέγχει συντακτικά και γραμματικά το πηγαίο πρόγραμμα εξετάζοντας εντολή προς εντολή το εντολή το πρόγραμμα. πρόγραμμα. Αν δεν υπάρχο Αν δεν υπάρχουν λάθη στ υν λάθη στην εντολή , ην εντολή , παράγει την αντίστοιχη παράγει την αντίστοιχη εντολή σε γλώσσα μηχανής, την εκτελεί και ελέγχει-μεταφράζει την επόμενη εντολή. • H χρήση interpreter είναι γνωστή από τη γλώσσα Basic, η οποία οφείλει τη δημοτικότητα της στο συγκεκριμένο μεταγλωττιστικό πρόγραμμα. Διαφορές Διαφορές interpreter σε σχέση interpreter σε σχέση με τον compiler compiler • Δεν ελέγχει τη σύνταξη ολόκληρου του πηγαίου προ Δεν ελέγχει τη σύνταξη ολόκληρου του πηγαίου προγράμματος πριν από την εκτέλεση μματος πριν από την εκτέλεση • Επαναλαμβάνει την μετάφραση-έλεγχο κάθε φορά που εκτελείται το πρόγραμμα • Ο έλεγχος και η διόρθωση λαθών γίνονται ευκολότερα γιατί πληροφορούμαστε αμέσως κάθε λάθος, το διορθώνουμε και συνεχίζεται η εκτέλεση • Η εκτέλεση ενός προγράμματος με Interpreter είναι πολύ πιο αργή σε σύγκριση με τον Compiler.

..Ο διερμηνευτης (interpreter) ειναι ενα προγραμμα που εκτελει η ερμηνευει εντολες σε καποια γλωσσα προγραμματισμου (μια εντολη καθε φορα) ενώ ο μεταγλωττιστης ειναι ενα προγραμμα που μεταφραζει ολες τις εντολες σε γλωσσα υπολογιστη και μετα τις εκτελει. Ετσι ο interpreter ειναι γρηγοροτερος σε περιπτωσεις ελεγχου και διορθωσης των εντολων απο τον compiler. Ο compiler ομως εκτελει το προγραμμα γρηγοροτερα απο τον interpreter

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

Ενώ ένας interpreter απλά τρέχει τον κώδικα γραμμή προς γραμμή χωρίς να δημιουργήσει κάποιο εκτελέσιμο, με αποτέλεσμα να έχει επιπτώσεις στην ταχύτητα εκτέλεσης.

Οι διαφορές μεταξύ ενός interpreter και ενός compiler είναι οι εξής:  Ο διερμηνέας(interpreter) επαναλαμβάνει τη διαδικασία μετάφρασης και συντακτικού ελέγχου των εντολών κάθε φορά που εκτελείται το πηγαίο πρόγραμμα.  Ο μεταφραστής (compiler) ελέγχει συντακτικά όλο το πρόγραμμα και παράγει μια συνολική λίστα σφαλμάτων.  Η εκτέλεση ενός προγράμματος με διερμηνέα(interpreter) είναι πιο αργή συγκριτικά με τα μεταφρασμένα προγράμματα, γιατί εκτελείται κάθε φορά ο συντακτικός έλεγχος 


24. Ποιες είναι οι διαφορές ανάμεσα στην επαναληπτική εντολή "όσο....επανάλαβε" (while ... do) και την επαναληπτική εντολή "αρχή_επανάληψης...μέχρις_ότου" (repeat...until);

Η διαφορά, Η διαφορά, έγκειται στο ό έγκειται στο ότι η επαναληπτική εντολή επαναληπτική εντολή while ... while ... do (ελέγχει πρώτα (ελέγχει πρώτα την συνθήκη συνθήκη και έπειτα εκτελεί τις εντολές εντός του βρόχου), ενώ η επαναληπτική εντολή repeat...until ελέγχει την ορθότητα ελέγχει την ορθότητα της συνθήκης της συνθήκης μετά το πέρας μιας μετά το πέρας μιας τουλάχιστον επανάληψης. τουλάχιστον επανάληψης. Ακόμη μια Ακόμη μια διαφορά είναι το διαφορά είναι το γεγονός ότι, γεγονός ότι, για την while ... για την while ... do επαναληπτική εντολή do επαναληπτική εντολή απαιτείται να ισχύει η απαιτείται να ισχύει η συνθήκη προκειμένου να εκτελεστούν οι εντολές τοτυυ βρόχου ενώ για τη επαναληπτική εντολή repeat...until ισχύει ότι επαναλαμβάνεται μέχρι να γίνει ψευδής η συνθήκη. 

Στην εντολή while ... do πρώτα ελέγχεται η συνθήκη και μετά εάν έιναι αληθής εκτελείραι το σώμα της δομής, αλλιώς οχι. Ή στην επαναληπτική εντολή repeat ... until πρώτα εκτελείται μια φορά το σώμα της δομής και μετά ελέγχεται η συνθήκη.

..Η εντολη while ... do θα ελεγχει πρωτα της παραμετρους του while και αν ειναι αληθης (True) επειτα θα αρχισει να εκτελει τις εντολες που ειναι μεσα στον βρογχο. Οταν η παραμετρος ειναι λανθανουσα (False) τοτε θα σταματησει να εκτελει τις εντολες. Η εντολη repeat ... until πρωτα εκτελει τις εντολες που ειναι μεσα στον βρογχο και στο τελος ελεγχει τις παραμετρους του until. Οσο η παραμετρος της until ειναι λανθανουσα (False) η εκτελεση των εντολων του βρογχου συνεχιζεται και θα σταματησει μονο οταν η παραμετρος της until ειναι αληθης (True).

Στο όσο ... επανέλαβε, αρχικά ελέγχεται η συνθήκη. Αν είναι αληθής τότε εκτελείται το σύνολο των εντολών. Στη συνέχεια ελέγχεται εκ νέου η συνθήκη κι αν είναι αληθής τότε εκτελείται πάλι το σύνολο των εντολών. Όταν η συνθήκη γίνει ψευδής τότε τελειώνει η επανάληψη και συνεχίζεται ο αλγόριθμος με την εντολή που ακολουθεί το τέλος_επανάληψης. Στο μέχρις_ότου, αρχικά εκτελείται το σύνολο των εντολών. Στη συνέχεια ελέγχεται η συνθήκη κι αν είναι ψευδής τότε εκτελείται πάλι το σύνολο των εντολών. Όταν η συνθήκη γίνει αληθής τότε τελειώνει η επανάληψη κι ο αλγόριθμος συνεχίζει με την εντολή που ακολουθεί το μέχρις_ότου. Η βασική διαφορά με την όσο είναι η θέση της συνθήκης στη ροή εκτέλεσης των εντολών και το ότι στην μέχρισ_οτου οι εντολές θα εκτελεστούν σίγουρα μία φορά. 


25. Ποιους τρόπους γνωρίζετε για την αναπαράσταση ενός αλγορίθμου; Δώστε μία σύντομη περιγραφή για τον καθένα.

1) Ελεύθερο κείμενο: Αποτελεί τον πιο ανεπεξέργαστο και αδόμητο τρόπο παρουσίασης αλγορίθμου. Μπορεί εύκολα να οδηγήσει σε μη ε αλγορίθμου. Μπορεί εύκολα να οδηγήσει σε μη εκτελέσιμη παρουσίαση παραβιάζοντας την ιμη παρουσίαση παραβιάζοντας την "αποτελεσματικότητα". 2) Φυσική γλώσσα κατά βήματα: Στην περίπτωση αυτή χρειάζεται προσοχή, γιατί μπορεί να παραβιασθεί ο "καθορισμός". 3) Διάγραμμα Διάγραμμα ροής : Αποτελείται από ένα σύνολο γεωμετρικών σχημάτων, όπου το καθένα δηλώνει μία συγκεκριμένη ενέργεια ή λειτουργία. Τα γεωμετρικά σχήματα ενώνονται μεταξύ τους με βέλη, που δηλώνουν τη σειρά εκτέλεσης των ενεργειών αυτών. 

...Ένας αλγόριθμος μπορεί να αναπαρασταθεί με τους παρακάτω τρόπους:  Με ελεύθερο κείμενο (free text), που αποτελεί τον πιο ανεπεξέργαστο και αδόμητο τρόπο παρουσίασης αλγορίθμου. Έτσι εγκυμονεί τον κίνδυνο ότι μπορεί εύκολα να οδηγήσει σε μη εκτελέσιμη παρουσίαση παραβιάζοντας το τελευταίο χαρακτηριστικό των αλγορίθμων, δηλαδή την αποτελεσματικότητα.  Με διαγραμματικές τεχνικές (diagramming techniques), που συνιστούν ένα γραφικό τρόπο παρουσίασης του αλγορίθμου.  Με διάγραμμα ροής (flow chart). Ωστόσο η χρήση διαγραμμάτων ροής για την παρουσίαση αλγορίθμων δεν αποτελεί την καλύτερη λύση, γι'αυτό και εμφανίζονται όλο και σπανιότερα στη βιβλιογραφία και στην πράξη.  Με φυσική γλώσσα (natural language) κατά βήματα. Στην περίπτωση αυτή χρειάζεται προσοχή, γιατί μπορεί να παραβιασθεί το τρίτο βασικό χαρακτηριστικό ενός αλγορίθμου, όπως προσδιορίσθηκε προηγουμένως, δηλαδή το κριτήριο του καθορισμού.  Με κωδικοποίηση (coding), δηλαδή με ένα πρόγραμμα που όταν εκτελεσθεί θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο.

Οι τρόποι για την αναπαράσταση ενός αλγορίθμου είναι:

Το Ελεύθερο κείμενο (free text): Αποτελεί τον πιο ανεπεξέργαστο και αδόμητο τρόπο παρουσίασης αλγορίθμου.

Οι εντολές εκφράζονται με απλή καθημερινή γλώσσα και ελέυθερη ροή κειμενου.

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

Η Φυσική γλώσσα κατά βήματα (natural language): Ο αλγόριθμος εκφράζεται με τη χρήση απλής γλώσσας, στην οποία οι προτάσεις έχουν διαχωριστεί σε παραγράφους-βήματα και έχουν αριθμηθεί.Εγκυμονεί παραβίαση του κριτηρίου της καθοριστικότητας.

Οι Διαγραμματικές Τεχνικές (diagramming techniques): Γραφικός τρόπος παρουσίασης ενός αλγορίθμου.

Η πιο γνωστή τεχνική είναι το διάγραμμα ροής,στην οποία χρησιμοποιούνται ειδικά γεωμετρικά σχήματα,που το καθένα δηλώνει μία συγκεκριμένη απλή ενέργεια ή λειτουργία του αλγορίθμου.Τα σχήματα ενώνονται μεταξύ τους με βέλη που δηλώνουν τη σειρά εκτέλεσης των ενεργειών.

Και τελος η Κωδικοποίηση (coding):Ένα πρόγραμμα γραμμένο είτε σε μία ψευδογλώσσα είτε σε κάποια γλώσσα προγραμματισμού που όταν εκτελεστεί θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο

..Υπαρχουν τεσσερις τροποι αναπαραστασης ενος αλγοριθμου.

- Ελεύθερο κείμενο (free text): Οι εντολές εκφράζονται με απλή καθημερινή γλώσσα και ελέυθερη ροή κειμενου.

- Φυσική γλώσσα κατά βήματα (natural language): Ο αλγόριθμος εκφράζεται με τη χρήση απλής γλώσσας, στην οποία οι προτάσεις έχουν διαχωριστεί σε παραγράφους-βήματα και έχουν αριθμηθεί.

- Διαγραμματικές Τεχνικές (diagramming techniques): Γραφικός τρόπος παρουσίασης ενός αλγορίθμου. Η πιο γνωστή τεχνική είναι το διάγραμμα ροής, στην οποία χρησιμοποιούνται ειδικά γεωμετρικά σχήματα, που το καθένα δηλώνει μία συγκεκριμένη απλή ενέργεια ή λειτουργία του αλγορίθμου. Τα σχήματα ενώνονται μεταξύ τους με βέλη που δηλώνουν τη σειρά εκτέλεσης των ενεργειών.

- Κωδικοποίηση (coding): Ένα πρόγραμμα γραμμένο είτε σε μία ψευδογλώσσα είτε σε κάποια γλώσσα προγραμματισμού που όταν εκτελεστεί θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο


26. Ποιες είναι οι διαφορές ανάμεσα στα συντακτικά και τα λογικά λάθη; Δώστε από ένα παράδειγμα στη γλώσσα προγραμματισμού C.

Τα λογικά λάθη που είναι τα πλέον σοβαρά και δύσκολα στη διόρθωση τους, οφείλονται σε σφάλματα κατά την υλοποίηση του αλγορίθμου, ενώ τα σφάλματα κατά την υλοποίηση του αλγορίθμου, ενώ τα συντακτι συντακτικά οφείλονται σε κά οφείλονται σε αναγραμματισμούς ονομάτων εντολών, παράληψη δήλωσης δεδομένων και πρέπει πάντα να διορθωθούν, ώστε να παραχθεί το τελικό εκτελέσιμο πρόγραμμα. Τα λογικά λάθη εμφανίζονται μόνο στην εκτέλεση, ενώ τα συντακτικά λάθη στο στάδιο της μεταγλώττισης Παράδειγμα Λογικού Λάθους

int main(){

int matrix [10];

for(int i=0;i<15;i++){

matrix[i]=i;

}

}

Στη περίπτωση αυτή, λόγω του ότι πρόκειται να προσπελαστούν θέσεις του πίνακα οι οποίες υπερβαίνουν το μέγεθος του, κατά την εκτέλεση θα προκύψει λογικό σφάλμα ροκύψει λογικό σφάλμα.

Παράδειγμα Συντακτικού Λάθους

int main(){

int x=20;

int y=5;

while(x<y){

printf("%d",z);

x=x-1;

}

}

Στη περίπτωση αυτή, λόγω του ότι μέσα στην printf() εμφανίζεται μια μεταβλητή η οποία δεν έχει αρχικοποιηθεί ο μεταγλωττιστής θα το αντιληφθεί και θα ορίσει ένα σφάλμα κατά τη μεταγλώττιση του προγράμματος

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

Αφορούν παραβιάσεις του τυπολογικού και συντακτικού της γλώσσας. (π.χ. μία εντολή έχει γραφτεί συντακτικά λάθος).

Τα λογικά λάθη είναι και τα πλέον δύσκολα στην ανίχνευσή τους. Έχουν να κάνουν με σφάλματα στη λογική επίλυσης του προβλήματος ή λανθασμένης διατύπωσης του αλγορίθμου. (π.χ. το πρόγραμμα παράγει άλλα αποτελέσματα και όχι τα ζητούμενα).

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

Τα λογικα λαθη ειναι οτιδιποτε αποτρεπει το προγραμμα απο το να επιστρεψει τα επιθυμειτα αποτελεσματα.

Τα μοντερνα IDE (integrated development environments) συνηθως υπογραμμιζουν τα συντακτικα λαθη οποτε και ειναι ευκολο να διορθωθουν. Αντιθετα, τα λογικα λαθη ειναι πολυ δυσκολοτερο να εντοπιστουν γιατι δεν ειναι αναγκαστικο το οτι αποτρεπουν το προγραμμα απο το να εκτελεστει. Ο χρηστης πρεπει να εξετασει διεξοδικα το προγραμμα εως οτου βρει που ειναι το λαθος.

Για παραδειγμα στην γλωσσα προγραμματισμου C ένα συντακτικο λάθος θα ήταν να προσπαθησουμε να καλεσουμε μια μεταβλητη χωρις να χρησιμοποιησουμε το ";" στο τελος:

x = 5(Λάθος)

y = 7; (Σωστό)

Ενα λογικο λαθος θα ηταν να εχουμε μια if statement και ενω θελουμε να ελεγξουμε αν το x ειναι μεγαλυτερο του 5 κατα λαθος να ελεγξουμε αν ειναι μεγαλυτερο του 50:

If (x>5)

(Θα εχουμε το επιθυμητο αποτελεσμα) printf("...");

Αντιθετα: If (x>50) (Το προγραμμα θα εκτελεστει αλλα δεν θα εχουμε το επιθυμητο αποτελεσμα)

...Τα συντακτικά λάθη οφείλονται σε παραβίαση των κανόνων της γραμματικής και του συντακτικού της γλώσσας προγραμματισμού ενώ τα λογικά λάθη οφείλονται είτε σε επιλογή λανθασμένου αλγόριθμου είτε σε λάθος στην κωδικοποίηση του αλγόριθμου Τα συντακτικά λάθη εντοπίζονται κατά τη διάρκεια μετάφρασης από το αντίστοιχο μεταφραστικό πρόγραμμα και ο προγραμματιστής ενημερώνεται με τα κατάλληλα μηνύματα ενώ στα λογικά λάθη διαπιστώνουμε ότι ένα πρόγραμμα δίνει λάθος αποτελέσματα κατά την εκτέλεση του Παράδειγμα συντακτικού λάθους C: ... For (i=0; I <10;i++ //Λείπει το κλείσιμο της παρένθεσης { printf("%d\n",i); }... Παράδειγμα λογικού λάθους C: ... For (i==0; I <10;i++ ) //Δεν αρχικοποιείται το ι στην τιμή 0 { printf("%d\n",i); }...


27. Tι εννοούμε με τους όρους LIFO (Last In First Out) και FIFO (First In First Out) και σε ποιες δομές δεδομένων βρίσκουν εφαρμογή;

Με τους όρους LIFO (Last In First Out) και FIFO (First In First Out) αναφερόμαστε στη διαχείριση των δεδομένων αναφορικά με τον τρόπο με τον οποίο αυτά αποθηκεύονται (εισάγονται) μέσα σε μια δομή δεδομένων και εν συνεχεία διαχειρίζονται (εξάγονται) από αυτήν. Πιο αυτήν. Πιο συγκεκριμένα, συγκεκριμένα, για τις δο για τις δομές δεδομένων Στοίβα μές δεδομένων Στοίβα και Ούρα, ό και Ούρα, όπου και ο που και οι ανωτέρω ι ανωτέρω τεχνικές εισαγωγής και επεξεργασίας δεδομένων βρίσκουν εφαρμογή, ισχύουν τα παρακάτω. Στη στοίβα τα δεδομένα που βρίσκονται στην κορυφή τα επεξεργαζόμαστε πρώτα και τα δεδομένα που βρίσκονται στο τέλος τα επεξεργαζόμαστε τελευταία. Η μέθοδος αυτή ονομάζεται LIFO(Last-In-First-Out). Σε μια ουρά εξυπηρετούνται εκείνα τα δεδομένα που τοποθετήθηκαν στην ουρά πρώτα από όλα τα υπόλοιπα. Η μέθοδος αυτή ονομάζεται FIFO (First-In-First-Out). Σε αυτή τη δομή δεδομένων επιτρέπεται όλες οι εισαγωγές στοιχείων να γίνονται από το ένα άκρο, και όλες οι διαγραφές, από το άλλο. Κατά συνέπεια χρειαζόμαστε δύο δείκτες τον μπρος (head) και τον πίσω(tail).

Το LIFO (Last In First Out) σημάινει όταν βάζουμε κάτι σε μία ουρά, μπαίνει στην αρχή της και είναι πάλι το πρώτο που θα βγει.

Το FIFO (First In First Out) σημαίνει όταν κάτι μπαίνει στο τέλος μιας ουράς και περιμένει πρώτα να βγούν τα άλλα και στο τέλος να βγει και αυτό.

...Σε μια FIFO δομή δεδομένων, το πρώτο στοιχείο που εισάγεται στην ουρά θα είναι το πρώτο που θα αφαιρεθεί-εξυπηρετηθεί. Σε μια LIFO δομη δεδομενων, το τελευταιο στοιχειο που εισαγεται στην ουρα θα ειναι το πρωτο που θα αφαιρεθει-εξυπηρετηθει. Βρισκουν εφαρμογη στις δομες δεδομενων με μορφη queue (ουρα). Η ουρά (queue) στην πληροφορική είναι μια δομή δεδομένων με τη μορφή παρατεταμένης συλλογής.

Η LIFO(Last In First Out) χρησιμοποιείται στη δομή της στοίβας, και στην οποία τα δεδομένα που βρίσκονται στην κορυφή της στοίβας λαμβάνονται πρώτα ενώ αυτά που βρίσκονται στο βάθος της στοίβας λαμβάνονται τελευταία, αντίστοιχα στην εισαγωγή δεδομένων τα νέα δεδομένα εισάγονται στην κορυφή της δομής. Η FIFO(Firs In First Out) χρησιμοποιείται στη δομή της ουράς, και στην οποία όταν έχουμε εισαγωγή δεδομένων, τα δεδομένα πάνε στο πίσω μέρος της ουράς, ενώ όταν πρέπει να ανακτήσουμε κάποια δεδομένα, το κάνουμε από την αρχή (μπροστινό μέρος) της δομής 


28. Τι είναι οι στατικές και τι οι δυναμικές δομές δεδομένων; Ποιες οι διαφορές τους;

Οι δομές δεδομένων διακρίνονται σε δύο μεγάλες κατηγορίες: τις στατικές (static) και τις δυναμικές (dynamic). Οι δυναμικές δομές δεν αποθηκεύονται σε συνεχόμενες θέσεις μνήμης αλλά στηρίζονται στην τεχνική της λεγόμενης δυναμικής παραχώρησης μνήμης (dynamic memory allocation). Οι δυναμικές δομές δεν έχουν σταθερό μέγεθος, αλλά ο αριθμός των κόμβων τους μεγαλώνει και μικραίνει καθώς στη δομή εισάγονται νέα δεδομένα ή διαγράφονται κάποια δεδομένα αντίστοιχα. Από την άλλη πλευρά στις στατικές δομές δεδομένων ορίζεται "εκ προοιμίου" το ακριβές μέγεθος της απαιτούμενης κύριας μνήμης (καθορίζεται κατά τη στιγμή του προγραμματισμού τους) κατά τη στιγμή της μετάφρασής τους και όχι κατά τη στιγμή της εκτέλεσης τους προγράμματος. Επιπρόσθετα, εν αντιθέσει με τις δυναμικές δομές τα στοιχεία τα οποία τοποθετούνται σε στατικές δομές αποθηκεύονται σε συνεχόμενες θέσεις μνήμης. 

Στατικές δομές: Αποθηκεύονται σε συνεχόμενες θέσεις μνήμης και έχουν σταθερό μέγεθος, το οποίο καθορίζεται στην αρχή του προγράμματος. Οι στατικές δομές υλοποιούνται με πίνακες. Δυναμικές δομές: Δεν αποθηκεύονται σε συνεχόμενες θέσεις μνήμης, δεν έχουν σταθερό μέγεθος, αλλά ο αριθμός των κόμβων τους αυξάνεται και μειώνεται, όταν στη δομή αντίστοιχα εισάγονται ή διαγράφονται δεδομένα. Το μέγεθος της μνήμης καθορίζεται κατά την στιγμή της εκτέλεσης του προγράμματος. Με δυναμικές δομές υλοποιούνται οι λίστες, τα δένδρα και οι γράφοι. Επισης, στις στατικες δομες πρεπει να οριζουμε το μεγεθος τους πριν την εκτελεση του προγραμματος. Στις δυναμικες δομες, μπορουμε να οριζουμε και να μετατρεπουμε το μεγεθος τους μεσα απο το προγραμμα.

...Στατικές δομές δεδομένων: το ακριβές μέγεθος της απαιτούμενης κύριας μνήμης καθορίζεται κατά τη στιγμή του προγραμματισμού τους και κατά συνέπεια κατά τη στιγμή της μετάφρασης. Τα στοιχεία των στατικών δομών αποθηκεύονται σε συνεχόμενες θέσεις μνήμης Δυναμικές: οι δομές αυτές δεν έχουν σταθερό μέγεθος, αλλά ο αριθμός των κόμβων τους μεγαλώνει και μικραίνει καθώς στη δομή εισάγονται νέα δεδομένα αντίστοιχα, κατά την εκτέλεση του προγράμματος. Οι δυναμικές δομές δεν αποθηκεύονται σε συνεχόμενες θέσεις αλλά στηρίζονται στην τεχνική της λεγόμενης δυναμικής παραχώρησης μνήμης. Όλες οι σύγχρονες γλώσσες προγραμματισμού προσφέρουν την δυνατότητα της δυναμικής παραχώρησης μνήμης.


29. Να γραφεί πρόγραμμα σε C το οποίο θα δέχεται από το πληκτρολόγιο έναν ακέραιο. Εν συνεχεία θα υπολογίζει και θα εκτυπώνει το παραγοντικό αυτού του αριθμού. Για παράδειγμα με είσοδο 5 το πρόγραμμα θα υπολογίζει το 5! = 1 * 2 * 3 * 4 * 5 = 120 και θα εκτυπώνει στην οθόνη το 120.

#include <stdio.h>

int main() {

int n, i;

unsigned unsigned long long factorial factorial = 1;

printf("Enter an integer: ");

scanf("%d",&n);

if (n < 0)

printf("ERROR - Negative Number");

else{

for(i=1; i<=n; ++i){

factorial = factorial*i;

}

printf("Factorial of %d = %llu", n, factorial);

}

return 0;

}

.................................

#include

int main()

{

int c, n, fact = 1;

printf("Enter a number to calculate its factorial\n");

scanf("%d", &n);

for (c = 1; c <= n; c++)

fact = fact * c;

printf("Factorial of %d = %d\n", n, fact);

return 0;

}


#include <stdio.h>

#include <stdlib.h>

int main(int argc, char *argv[]) {

int arithmos, apotelesma, i;

for(;;)

{ //Εισαγωγή αριθμού

printf("Πληκτρολογήστε έναν ακέραιο αριθμό μεταξύ 1 και 7 (0 για Έξοδο):\n");

scanf("%d",&arithmos);

//'Ελεγχοι

if(arithmos == 0)

break;

if ((arithmos <1) || (arithmos > 7))

{

printf("\nΟ αριθμός που πληκτρολογήσατε είναι εκτός ορίων!\nΔοκιμάστε ξανά!\n");

continue;

}

//Επεξεργασία, υπολογισμός αποτελέσματος (παραγοντικού)

apotelesma = 1;

for (i = 1; i <= arithmos; i++)

apotelesma = apotelesma *i;

//Εκτύπωση αποτελέσματος

printf("Το παραγοντικό του αριθμού %d είναι : %d\n",arithmos, apotelesma);

}

printf("\nΑντίο σας!\n");

return 0;

}


30. Αναφέρατε πέντε, από τους βασικούς τύπους δεδομένων (Data Types) της Pascal ή C. Να αναφέρετε τα όριά τους (κατά προσέγγιση και όπου αυτά υπάρχουν) καθώς και ένα παράδειγμα από τον κάθε τύπο.

 Ένας τύπος δεδοµένων δεδοµένων είναι ένα σύνολο τιµών και ένα σύνολο λειτουργιών λειτουργιών (πράξεων) (πράξεων) που µπορούν να εφαρµοστούν σε αυτές τις τιµές. Ορίζουμε λοιπόν δύο βασικές κατηγορίες τύπων δεδομένων, αναφορικά, τους βασικούς τύπους δεδομένων (char, int, float, double), και τους σύνθετους τύπους δεδομένων "structs" (τύποι δεδομένων δηλαδή, που συντίθενται από συνδυασμό δύο ή περισσοτέρων βασικών τύπων δεδομένων π.χ. struct Time { int hours; int minutes; int seconds;};). Στη συνέχεια παρατίθεται μια σύντομη αναφορά στους βασικούς τύπους δεδομένων της C. Βασικοί τύποι δεδομένων στη C - int (ακέραιος - integer) Αναπαριστά ακέραιους αριθµούς, έχει μέγεθος 4 bytes και πεδίο τιµών -231.. +(231-1) δηλαδή περίπου : από [-2G..+2G] [-(δυο δισεκατοµµύρια .. +δυο δισεκατοµµύρια] Οι επιτρεπόμενες πράξεις είναι οι εξής: πρόσθεση (+), αφαίρεση (-), πολλαπλασιασµός (*), διαίρεση διαίρεση (/) κλπ. Παράδειγμα Παράδειγμα int x=4; - float (κινητής υποδιαστολής απλής ακρίβειας - floating point) Αναπαριστά τους πραγµατικούς αριθµούς, και έχει μέγεθος 4 bytes. Οι επιτρεπόμενες πράξεις είναι οι εξής:: πρόσθεση (+), αφαίρεση (-), πολλαπλασιασµός (*), διαίρεση (/). Παράδειγμα float z=2.7; - double (κινητής υποδιαστολής διπλής ακρίβειας - double precision) Τύπος δεδομένων παρόμοιος με τον τύπο δεδομένων µε float αλλά µε µεγαλύτερη ακρίβεια (περιέχει δηλ. διπλό αριθµό δεκαδικών ψηφίων απ' ότι η µεταβλητή float). Λόγω της μεγαλύτερης ακρίβειας έχει μέγεθος 8 bytes. Παράδειγμα double pi= 3,14159265; - char (χαρακτήρας - character) Αναπαριστά ατοµικούς χαρακτήρες (Α-Ζ, a-z, 0-9, !@$%&#, ειδικά σύµβολα \n, κλπ.) και έχει μέγεθος 1 μέγεθος 1 byte. Κυριολεκτικές τιµές εσωκλείονται σε Κυριολεκτικές τιµές εσωκλείονται σε αποστρόφους, π. αποστρόφους, π.χ. ′Α′, ′ χ. ′Α′, ′a′, ′9′, ′ a′, ′9′, ′″′, ′ ′, ′*′, ′\n′, ′\′′, κτλ, και κάθε χαρακτήρας αντιστοιχεί σε ένα µοναδικό κωδικό όπου για τη C χρησιμοποιείται ο ASCII code. Παράδειγμα char letter='A';

5 απο τους βασικους τυπους δεδομενων της Pascal ειναι:

1) Integer (int), ευρος τιμης -32768 εως 32767, num1 : integer;

2) Real, ευρος τιμης 3.4x10-38 εως 3.4x1038 , num2: real;

3) Boolean, ευρος τιμης True-False, choice : Boolean;

4) Char, ευρος τιμης ειναι ολοι οι 8-bit χαρακτηρες (Unicode), a : char;

5) String, το default ευρος τιμης ειναι 1


31. Τι ονομάζουμε recursion (αναδρομή); α) Να γραφεί αναδρομική συνάρτηση (σε C) με όνομα power που να δέχεται σαν παραμέτρους δυο ακέραιους αριθμούς (a και b) και να επιστρέφει το αποτέλεσμα ab. Ισχύει: ab = a * a * a * ... * a (b φορές) π.χ. 35 = 3 * 3 * 3 * 3 * 3 (5 φορές) β) Περιγράψτε σχηματικά πως δουλεύει για α=3 και β=5

Η αναδρομή είναι στην ουσία μια στρατηγική επίλυσης προβλημάτων και πιο συγκεκριμένα μια τεχνική προγραμματισμού σύμφωνα με την οποία ένα σύνθετο πρόβλημα ανάγεται σε ένα απλούστερο της ίδιας μορφής. Σε κάθε περίπτωση όπου χρησιμοποιείται αναδρομή, είναι δυνατόν, εναλλακτ δυνατόν, εναλλακτικά, να χρησιμοπο ικά, να χρησιμοποιηθεί επανάληψη. ιηθεί επανάληψη. Η χρήση της Η χρήση της αναδρομής π αναδρομής προσφέρει, σε ροσφέρει, σε κάποιες περιπτώσεις, απλούστερες λύσεις. Η αναδρομή στη C πραγματοποιείται ορίζοντας συναρτήσεις που καλούν τον εαυτό τους (άμεση αναδρομή).

#include <stdio.h>

int power(int n1, int n2);

int main() {

int a, b, result;

printf("Enter base number: ");

scanf("%d",&a);

printf("Enter power number(positive integer): "); scanf("%d",&b);

result = power(a, b);

printf("%d^%d = %d", a, b, result);

return 0;

}

int power(int a, int b) {

if (b != 0){

return (a*power(a, b-1));

}

else {

return 1;

} }

Στην συνέχεια παρατίθεται μια σχηματική επεξήγηση της λειτουργίας του κώδικα

 Αναδρομη είναι η διαδικασια κατα την οποια μια συναρτηση καλεί, έμμεσα ή αμεσα, τον εαυτό της (την ιδια συναρτηση).

a)

#include <stdio.h>

int power(int n1, int n2);

int main()

{

int base, powerRaised, result;

printf("Βάση: ");

scanf("%d",&base);

printf("Δύναμη: ");

scanf("%d",&powerRaised);

result = power(base, powerRaised);

printf("%d^%d = %d", base, powerRaised, result);

return 0;

}

int power(int base, int powerRaised)

{

if (powerRaised != 0)

return (base*power(base, powerRaised-1));

else

return 1;

}

..................................

Αναδρομή στα μαθηματικά και την επιστήμη υπολογιστών είναι μια μέθοδος για τον ορισμό συναρτήσεων κατά την οποία η οριζόμενη συνάρτηση εφαρμόζεται στον ίδιο της τον ορισμό. #include <stdio.h>

#include <stdlib.h>

int ab(int a, int b)

{

int result;

if(b==0)

return 1;

else

{

b--;

result = ab(a,b)*a;

}

return result;

}

int main(int argc, char** argv) {

printf("%d\n",ab(3,5));

return 0;

}

Σχηματικά: 


32. Να γραφεί αλγόριθμος ο οποίος να διαβάζει τα ονόματα 10 πωλητών μιας εταιρείας και να τα αποθηκεύει σε ένα πίνακα Α, και τις αντίστοιχες πωλήσεις αυτών των πωλητών το 2005 και να τις αποθηκεύει σε ένα πίνακα Β. Ο αλγόριθμος πρέπει να εκτυπώνει: α) Το μέσο όρο των πωλήσεων όλων των πωλητών, β) Το όνομα του πωλητή με τις μέγιστες πωλήσεις, γ) Το όνομα του πωλητή με τις μικρότερες πωλήσεις

Algorithm sellers

INPUT: String Array sellers, Integer Array sales

OUTPUT: mean_sales, seller_with_max_sales,seller_with_min_sales

BEGIN

int A[] //seller names

int B[] //seller sales

Integers counter,max,min,position;

Float mean;

for i=1:1:10

print("enter seller credentials:")

A[i]=read(name);

print("enter seller sale:")

B[i]=read(sales);

end

//----- FIND MEAN SALES -------

for i=1:1:10

counter=counter+B[i];

end

mean=counter/10;

print("The mean sales are %d", mean);

//----- FIND SELLER WITH MAX SALES -------

max=B[0]

for i=1:1:10

if B[i]> max

max=B[i];

position=i;

endif

end

print("The seller with the max sales is %s", A[position]);

//----- FIND SELLER WITH MAX SALES -------

min=B[0]

for i=1:1:10

if B[i]< min

min=B[i];

position=i;

endif

end

print("The seller with the min sales is %s", A[position]);

END

...........................

Αλγόριθμος Ασκ

Για ι από 1 μέχρι 10

Διάβασε Α[ι]

Τέλος_επανάληψης

Για ι από 1 μέχρι 10

Διάβασε Β[ι]

Τέλος_επανάληψης

Sum <- 0

Για ι από 1 μέχρι 10

Sum <- sum + Β[ι]

Τέλος_επανάληψης

Μο <-sum/10

Max <- B[i]

Για ι από 1 μέχρι 10

Αν Β[ι] > max τότε

Max <- Β[ι]

Μ_πωλητής <- Α[ι]

Τέλος_αν

Τέλος_επανάληψης

Εμφάνισε μ_πωλητής

Min <-Β[ι]

Για ι από 1 μέχρι 10

Αν Β[ι] <min τότε

Min <-B[i]

Ε_πωλητής <- Α[ι]

Τέλος_αν

Τέλος_επανάληψης

Εμφάνισε ε_πωλητής

Τέλος_Ασκ


33. A.Εξηγήστε σύντομα τι κάνει το ακόλουθο πρόγραμμα:

#include <stdio.h>

#include <math.h>

int main() {

int n; for (n=50;n!=60;n++) 

printf("%d \t %f \n",n,log(n));

return 0;

B. Αν στην for αντικαταστήσουμε τον αριθμό 60 με τον αριθμό 40 τι θα συμβεί;

Εκτυπώνεται ο λογάριθμος των τιμών από 50 έως 59; Προφανώς αν αντικατασταθεί το άνω φράγμα του βρόχου με μια τιμή η οποία δ με μια τιμή η οποία δεν πρόκειται να  τη φτάσουμε ποτε τότε δημιουργείται ατέρμων βρόχος. Οι υπολογισμοί που θα γίνουν είναι ο υπολογισμός των λογαρίθμων των τιμών στο εύρος [50, +∞). 

.....A.Το πρόγραμμα τυπώνει σε 2 στήλες:

1η στήλη: Οι αριθμοί από το 50 έως και το 59

2η στήλη: Οι αντίστοιχοι λογάριθμοι για κάθε έναν από τους αριθμούς από το 50 έως και το 59

B. Αν στην for αντικαταστήσουμε τον αριθμό 60 με έναν αριθμό ίσο ή μικρότερο του 50 (πχ 40) τότε δεν θα εκτελεστούν ποτέ οι εντολές της επανάληψης και το πρόγραμμα θα τερματίσει χωρίς να εμφανίσει τίποτα στην οθόνη. 

a)Αρχικα καλουνται τα αρχεια stdio.h και math.h (headers). Επειτα δημιουργουμε την

αρχικη συναρτηση main. Δηλωνουμε την μεταβλητη n τυπου integer.

Δημιουργουμε επαναληπτικη συναρτηση τυπου for η οποια αρχιζει οταν το n=50 και τρεχει αυξανοντας σε καθε κυκλο το n κατα 1 οσο το n δεν ειναι ισο με 60.

Σε καθε κυκλο την συναρτησης for θα τυπονεται στην οθονη η τρεχων τιμη της μεταβλητης n και ο λογαριθμος της. Επειτα το προγραμμα τερματιζεται με την εντολη return 0; που σημανει το τελος του προγραμματος επιστρεφοντας μια μηδενικη τιμη.

b)Αφου καθε φορα η τιμη της n αυξανεται κατα 1 το προγραμμα δεν θα σταματησει ποτε αφου η τιμη της n δεν θα γινει ποτε 40


34. Στον ακόλουθο κώδικα τι θα εκτυπώσει η printf αν δώσουμε από το πληκτρολόγιο τις τιμές: -3 και 7 όταν μας ζητηθεί να εισάγουμε τιμές;

int n=-3,i,k;

float x=3.,y; printf("Dwse times: ");

scanf("%d%f",&i,&y);

k=3/5;

x=++n;

x*=i;

n=--k;

y=n%i;

printf("%d\t%d\t%d\t%f\t%f\n",n,i,k,x,y);

n=-1 i=-3 k=-1 x=6.000000 x=6.000000 y=-1.000000

.............

int n=-3,i,k;

float x=3.,y;

printf("Dwse times: ");

scanf("%d%f",&i,&y);

k=3/5;

x=++n;

x*=i;

n=--k;

y=n%i;

printf("%d\t%d\t%d\t%f\t%f\n",n,i,k,x,y);

-1 , -3 , -1 , 6.000000 , -1.


35. Να γραφεί πρόγραμμα που να δέχεται ένα διψήφιο ακέραιο αριθμό, και να επιστρέφει τον αριθμό ανεστραμμένο καθώς και το άθροισμα των ψηφίων του αριθμού (αν π.χ. ο χρήστης δώσει τον αριθμό 53, το πρόγραμμα πρέπει να επιστρέψει 35 και 8). Σημείωση: το πρόγραμμα πρέπει να ελέγχει αν ο αριθμός είναι διψήφιος και για την περίπτωση που δεν είναι να βγάζει μήνυμα λάθους.

#include <stdio.h>

int main(){

int num;

int number;

int count = 0;

while(count!=2){

printf("Enter an integer: ");

scanf("%d", &num);

number=num;

count=0;

while(number != 0){

number /= 10;

count++;

}

printf("Number of digits: %d\n\n\n", count);

if(count!=2){

printf("ERROR NOT A 2-Digit Number\n");

count=0;

} }

reversεDigits(num);

getchar();

return 0;

}

int reverseDigits(int num){

int number=num;

printf("The number is: %d \n",num);

int rev_num = 0;

while(num > 0){

rev_num = rev_num*10 + num%10;

num = num/10;

}

printf("The revised is: %d \n",rev_num);

int a=number/10;

int b=number%10;

int c=a+b;

printf("the sum is: %d",c);

return rev_num;

}

.....#include <stdio.h>

#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {

int arithmos, psifio1, psifio2, apotelesma;

for(;;)

{

printf("\nEisagete enan dipsifio arithmo (0 gia exodo):\n");

scanf("%d",&arithmos);

if (arithmos == 0)

break;

if ((arithmos<10) || (arithmos>99))

{

printf ("\n O arithmos den einai dipsifios!\n Prospathiste xana!\n");

continue;

}

psifio1=arithmos%10;

psifio2=arithmos/10;

apotelesma = psifio1 * 10 + psifio2;

printf("\nO neos arithmos einai %d\n",apotelesma);

}

return 0;

}


36. Να γραφεί σε C η διαδικασία της γρήγορης ταξινόμησης (quick sort).

#include<stdio.h>

int main(){

int arr[] = {10, 7, 1, 5, 8, 9};

int n = sizeof(arr)/sizeof(arr[0]);

printf("\n Initial Array: ");

printArray( printArray(arr, n);

quickSort(a quickSort(arr, 0, n-1);

printf("\n \n Sorted Array: ");

printArray( printArray(arr, n);

return 0;

}

void swap(int* a, int* b){

int t = *a;

*a = *b;

*b = t;

}

int partition (int arr[], int low, int partition (int arr[], int low, int high){ int high){

int pivot = arr[high];

int i = (low - 1);

int j;

for (j = low; j <= high- 1; j++) {

if (arr[j] <= pivot){

i++;

swap(&arr[i swap(&arr[i], &arr[j]); &arr[j]);

}

}

swap(&arr[i + 1], &arr[high]);

return (i + 1);

}

void quickSort(int arr[], int low, int high){

if (low < high){

int pi = int pi = partition(a partition(arr, low, high); rr, low, high);

quickSort(arr, low, pi - 1);

quickSort(arr, pi + 1, high);

}

}

void printArray(int arr[], int size){

int i;

for (i=0; i < size; i++){

printf("%d ", arr[i]);

}

}

Αλγόριθμοι Ταξινόμησης 

Ο αλγόριθμος quicksort είναι ο αλγόριθμος ταξινόμησης που μάλλον χρησιμοποιείται περισσότερο από οποιονδήποτε άλλον.  

• Ο αλγόριθμος quicksort είναι μια μέθοδος ταξινόμησης του τύπου «διαίρει και βασίλευε» (divide and conquer). 

• Λειτουργεί διαμερίζοντας ένα πίνακα σε δύο μέρη και ταξινομώντας αυτά τα μέρη, το ένα ανεξάρτητα από το άλλο. 

• Η ακριβής θέση της διαμέρισης εξαρτάται από την αρχική σειρά των στοιχείων του πίνακα εισόδου. 

• Μετά ενώνει τα δύο ταξινομημένα μέρη για να προκύψει ο ταξινομημένος πίνακας. 

Η Διαμέριση 

• Κατά τη διαμέριση, ο πίνακας αναδιατάσσεται έτσι ώστε να ισχύουν οι τρείς παρακάτω συνθήκες: 

- Για κάποιο i, το στοιχείο a[i] βρίσκεται στην τελική του θέση μέσα στον πίνακα. 

- Κανένα από τα στοιχεία a[1],...,a[i-1] δεν είναι μεγαλύτερο από το a[i]. 

- Κανένα από τα στοιχεία a[i+1],...,a[r] δεν είναι μικρότερο από το a[i]

Ο Βασικός Αλγόριθμος 

• Φτάνουμε στην πλήρη ταξινόμηση κάνοντας πρώτα τη διαμέριση και μετά εφαρμόζοντας αναδρομικά τη μέθοδο στους δυο υποπίνακες που προκύπτουν. 

• Επειδή η διαδικασία της διαμέρισης τοποθετεί πάντα τουλάχιστον ένα στοιχείο στη θέση του, δεν είναι δύσκολο να αναπτύξουμε μια τυπική απόδειξη με επαγωγή ότι η αναδρομική μέθοδος καταλήγει σε σωστή ταξινόμηση. 

Κώδικας σε C

void quicksort(Item a[], int l, int r)

{

int i;

if (r <= l) return;

i = partition(a, l, r);

quicksort(a, l, i-1);

quicksort(a, i+1, r);

}

int partition(Item a[], int l, int r)

{

int i = l-1, j = r; Item v = a[r];

for (;;)

{

while (less(a[++i], v)) ;

while (less(v, a[--j])) if (j == l) break;

if (i >= j) break;

exch(a[i], a[j]);

}

exch(a[i], a[r]);

return i;

Παρατηρήσεις για τη Συνάρτηση quicksort 

• Κάθε κλήση quicksort(a, l, r) ταξινομεί τον υποπίνακα a[l:r] του πίνακα a. 

• Αν ο πίνακας a έχει ένα ή λιγότερα στοιχεία, ο αλγόριθμος δεν κάνει τίποτε. 

• Αλλιώς, καλείται η συνάρτηση partition, η οποία τοποθετεί το στοιχείο a[i] στη θέση του (το i είναι μεταξύ l και r) και αναδιατάσσει τα υπόλοιπα στοιχεία ώστε οι αναδρομικές κλήσεις που ακολουθούν να ολοκληρώσουν την ταξινόμηση. 


37. Να ταξινομήσετε τον παρακάτω πίνακα με τις τεχνικές selection sort και bubble sort, περιγράφοντας αναλυτικά το κάθε βήμα της ταξινόμησης. 6 7 9 3 5 8

Sorting with Selection-Sort

initial: initial: 6, 7, 9, 3, 5, 8,

Step 1): 3, 7, 9, 6, 5, 8,

Step 2): 3, 5, 9, 6, 7, 8,

Step 3): 3, 5, 6, 9, 7, 8,

Step 4): 3, 5, 6, 7, 9, 8,

Step 5): 3, 5, 6, 7, 8, 9,

final: 3, 5, 6, 7, 8, 9,

Sorting with Bubble-Sort

initial: initial: 6, 7, 9, 3, 5, 8,

Step 1): 6, 7, 3, 5, Step 1): 6, 7, 3, 5, 8, 9,

Step 2): 6, 3, 5, 7, 8, 9,

Step 3): 3, 5, 6, 7, 8, 9,

Step 4): 3, 5, 6, 7, 8, 9,

Step 5): 3, 5, 6, 7, 8, 9,

Step 6): 3, 5, 6, 7, 8, 9,

Step 7): 3, 5, 6, 7, 8, 9,

final: 3, 5, 6, 7, 8, 9,

Αλγόριθμοι ταξινόμησης


38. Να γραφεί πρόγραμμα σε C που να αποθηκεύει ακέραιους αριθμούς από το πληκτρολόγιο σε έναν πίνακα διαστάσεων 5x5 και κατόπιν να εκτυπώνει: α. όλα τα στοιχεία του πίνακα β. όλα τα στοιχεία της κύριας διαγωνίου του πίνακα γ. όλα τα στοιχεία της αναστροφής διαγωνίου του πίνακα

# include <stdio.h>

int main(){

int i,j, element;

int n=5;

int A[n][n];

for(i=0;i<n;i++){

for(j=0;j<n;j++){

printf("Give the element A[%d][%d]: ",i,j);

scanf("%d",&element);

A[i][j]=element;

printf("\n");

}

}

printf("\nThe Matrix A is: \n");

for(i=0;i<n;i++){

for(j=0;j<n;j++){

printf("%d,",A[i][j]);

}

printf("\n");

}

printf("\nThe diagonal elements of Matrix A are:");

for(i=0;i<n;i++){

printf("%d,",A[i][i]);

}

printf("\nThe reverse-diagon printf("\nThe reverse-diagonal elements of Matrix A al elements of Matrix A are: "); are: ");

for(i=0;i<n;i++){

for(j=0;j<n;j++){

if(i+j==n-1){

printf("%d,",A[i][j]);

}

}

}

return 0;

}

.......#include <stdio.h>

#include <stdlib.h>

#define dim 5

int main(int argc, char *argv[]) {

int arithmoi[dim][dim];

int i,j;

for(i=0;i < dim; i++)

{

for (j = 0; j < dim; j++)

{

printf("\nEisagete akeraio arithmo gia tin thesi pinaka [%d %d]:",i,j);

scanf("%d",&arithmoi[i][j]);

}

}

for( i=0;i < dim;i++)

{

for (j = 0; j < dim; j++)

{

printf("%3d ",arithmoi[i][j]);

}

printf("\n");

}

printf("\n");

for( i=0;i < dim;i++)

{

for (j = 0; j < dim; j++)

{

if (i==j)

printf("\n%3d ",arithmoi[i][j]);

}

}

printf("\n");

for( i=0;i < dim;i++)

{

for (j = 0; j < dim; j++)

{

if (i+j==dim-1)

printf("\n%3d ",arithmoi[i][j]);

}

}

return 0;

}


39. Τι ενοούμε με τους όρους "Αλγόριθμος" και "Πρόγραμμα";

Ως αλγόριθμος ορίζεται μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Πιο απλά (αλγόριθμο) ονομάζουμε μία σειρά από εντολές που έχουν αρχή και τέλος, είναι σαφείς και έχουν ως σκοπό την επίλυση κάποιου προβλήματος. Ένα πρόγραμμα πρόγραμμα υπολογιστών υπολογιστών είναι ουσιαστικά ουσιαστικά ένας αλγόριθμος αλγόριθμος που λέει στον υπολογιστή υπολογιστή ποια συγκεκριμένα βήματα να εκτελέσει (σε ποια συγκεκριμένη σειρά) προκειμένου να επιτευχθεί ένας συγκεκριμένος στόχο, όπου οι εντολές αυτές έχουν μια αυστηρά συγκεκριμένη δομή ανάλογα με τη γλώσσα προγραμματισμού στην οποία υλοποιείται το πρ α υλοποιείται το πρόγραμμα. 

Αλγόριθμος ειναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Πρόγραμμα ειναι μια συγκεκριμένη ακολουθία εντολών τις οποίες πρέπει να εκτελέσει ένας υπολογιστής για να παραγάγει το επιθυμητό για το χρήστη αποτέλεσμα.


40. Τι ονομάζουμε δομή δεδομένων;

 Ένα σύνολο από στοιχεία στοιχεία δεδομένων δεδομένων αποτελεί αποτελεί δομή όταν υπάρχουν υπάρχουν καθορισμένες καθορισμένες σχέσεις σχέσεις μεταξύ των στοιχείων. Μια δομή δεδομένων ορίζεται ως η διαδικασία εισαγωγής και απομάκρυνσης στοιχείων με τρόπο ώστε όλη η δομή να μην αλλοιώνεται. Κάθε δομή δεδομένων έχει ως δεδομένων έχει ως αφηρημένη έννοια αφηρημένη έννοια συγκεκριμένο ορισμό, δηλαδή διαδικασία εισαγωγής/απομάκρυνσης στοιχείων, αλλά μπορεί να υλοποιείται σε έναν οποιείται σε έναν Η/Υ με διαφορετικούς τρόπους. Η έννοια της δομής δεδομένων αναφέρεται στους διαφορετικούς δυνατούς τρόπους οργάνωσης και αποθήκευσης δεδομένων μέσα σε έναν υπολογιστή, ώστε τα δεδομένα αυτά να μπορούν να χρησιμοποιηθούν αποδοτικά. Για παράδειγμα ένα σύνολο από δεδομένα μπορεί να αποθηκευτεί σε δομή αποθηκευτεί σε δομή πίνακα πίνακα, στοίβας, συνδεδεμένης λίστας, σωρού, ουράς και ούτω καθ εξής 

Η έννοια της δομής δεδομένων αναφέρεται στους διαφορετικούς δυνατούς τρόπους οργάνωσης και αποθήκευσης δεδομένων μέσα σε έναν υπολογιστή, ώστε τα δεδομένα αυτά να μπορούν να χρησιμοποιηθούν αποδοτικά.


41. Σε ποιες κατηγορίες διακρίνονται τα προβλήματα με κριτήριο το είδος επίλυσης τους;

a) Προβλήματα Απόφασης: Η λύση σε αυτά τα προβλήματα είναι του τύπου «Ναι» και «Όχι». b) Υπολογιστικά Προβλήματα: Για την επίλυση απαιτείται η διενέργεια υπολογισμών. c) Προβλήματα Βελτιστοποίησης: Η λύση που ζητάμε είναι το βέλτιστο αποτέλεσμα για τα συγκεκριμένα δεδομένα. 

Δομημένα, χαρακτηρίζονται εκείνα τα προβλήματα των οποίων η επίλυση προέρχεται από μια αυτοματοποιημένη διαδικασία.

Ημιδομημένα, ονομάζονται τα προβλήματα εκείνα των οποίων η λύση επιδιώκεται στα

πλαίσια ενός εύρους πιθανών λύσεων, αφήνοντας στον ανθρώπινο παράγοντα

περιθώρια επιλογής της.

Αδόμητα, χαρακτηρίζονται τα προβλήματα εκείνα των οποίων οι λύσεις δεν μπορούν να

δομηθούν ή δεν έχει διερευνηθεί σε βάθος η δυνατότητα δόμησής τους.

Απόφασης, όπου η απόφαση που πρόκειται να ληφθεί σαν λύση του προβλήματος που

τίθεται, απαντά σε ένα ερώτημα και πιθανόν αυτή η απάντηση να είναι ένα "Ναι" ή ένα

"Όχι".

Υπολογιστικά, όπου το πρόβλημα που τίθεται απαιτεί τη διενέργεια υπολογισμών, για να μπορεί να δοθεί μία απάντηση στο πρόβλημα. Σε ένα υπολογιστικό πρόβλημα ζητάμε να βρούμε τη τιμή της απάντησης που ικανοποιεί τα δεδομένα που παρέχει το πρόβλημα.


42. Ποιες είναι οι βασικές λειτουργίες (ή πράξεις) επί των δομών δεδομένων;

a) Προσπέλαση: πρόσβαση σε ένα κόμβο με σκοπό να εξετασθεί ή να τροποποιηθεί το περιεχόμενό του. b) Εισαγωγή: προσθήκη νέων κόμβων σε μία υπάρχουσα δομή. c) Διαγραφή: αποτελεί το αντίστροφο της εισαγωγής, δηλαδή ένας κόμβος αφαιρείται από μία δομή. d) Αναζήτηση: προσπελαύνονται οι κόμβοι μιας δομής, προκειμένου να εντοπιστούν ένας ή περισσότεροι που έχουν μια δεδομένη ιδιότητα. e) Ταξινόμηση: οι κόμβοι μιας δομής διατάσσονται κατά αύξουσα ή φθίνουσα σειρά. f) Αντιγραφή: όλοι οι κόμβοι ή μερικοί από τους κόμβους μίας δομής αντιγράφονται σε μία άλλη δομή. g) Συγχώνευση: δύο ή περισσότερες δομές συνενώνονται σε μία ενιαία δομή. h) Διαχωρισμός: αποτελεί την αντίστροφη πράξη της συγχώνευσης. 

....................1. Προσπέλαση (access), πρόσβαση σε ένα κόμβο με σκοπό να εξετασθεί ή να τροποποιηθεί το περιεχόμενό του.

2. Εισαγωγή (insertion), δηλαδή η προσθήκη νέων κόμβων σε μία υπάρχουσα δομή.

3. Διαγραφή (deletion), που αποτελεί το αντίστροφο της εισαγωγής, δηλαδή ένας κόμβος αφαιρείται από μία δομή.

4. Αναζήτηση (searching), κατά την οποία προσπελαύνονται οι κόμβοι μιας δομής, προκειμένου να εντοπιστούν ένας ή περισσότεροι που έχουν μια δεδομένη ιδιότητα.

5. Ταξινόμηση (sorting), όπου οι κόμβοι μιας δομής διατάσσονται κατά αύξουσα ή φθίνουσα σειρά.

6. Αντιγραφή (copying), κατά την οποία όλοι οι κόμβοι ή μερικοί από τους κόμβους μίας δομής αντιγράφονται σε μία άλλη δομή.

7. Συγχώνευση (merging), κατά την οποία δύο ή περισσότερες δομές συνενώνονται σε μία ενιαία δομή.

8. Διαχωρισμός (separation), που αποτελεί την αντίστροφη πράξη της συγχώνευσης

...Οι βασικές λειτουργίες (ή αλλιώς πράξεις) επί των δομών δεδομένων είναι οι ακόλουθες: Προσπέλαση (access): πρόσβαση σε έναν κόμβο με σκοπό να εξεταστεί ή να τροποποιηθεί το περιεχόμενό του. Π.χ. για να εμφανίσουμε την τιμή ενός στοιχείου ενός πίνακα ο οποίος είναι αποθηκευμένος στην μνήμη, πρέπει να «φέρουμε» την τιμή που αντιστοιχεί στο στοιχείο του πίνακα από την αντίστοιχη θέση μνήμης. Εισαγωγή (Insertion): η προσθήκη νέων κόμβων σε μία υπάρχουσα δομή. Π.χ. να «μεγαλώσουμε» έναν πίνακα 1xn κατά ένα στοιχείο, ώστε να γίνει 1x(n+1). Διαγραφή (Deletion): η αφαίρεση ενός κόμβου από την δομή δεδομένων. Π.χ. να «μικρύνουμε» έναν πίνακα 1xn κατά ένα στοιχείο, ώστε να γίνει 1x(n-1). Αναζήτηση (searching): η προσπέλαση των κόμβων μιας δομής προκειμένου να εντοπιστούν ένας ή περισσότεροι που έχουν μία δεδομένη ιδιότητα. Π.χ. η αναζήτηση σε έναν πίνακα 1xn ώστε να βρεθεί αριθμός που να διαιρείται ακριβώς με το 3. Ταξινόμηση (Sorting): η διάταξη των κόμβων μιας δομής κατά αύξουσα ή φθίνουσα σειρά. Π.χ. η διάταξη των αριθμών ενός πίνακα 1xn σε αύξουσα σειρά. Αντιγραφή (Copying): η αντιγραφή ενός ή περισσοτέρων κόμβων μίας δομής σε μία άλλη. Π.χ. το στοιχείο a(5,3) ενός πίνακα Α να γίνει ίσο με το στοιχείο b(7,2) ενός πίνακα Β. Συγχώνευση (merging): δύο ή περισσότερες δομές συγχωνεύονται σε μία ενιαία δομή. Π.χ. η πρόσθεση δύο πινάκων mxn. Διαχωρισμός (separation): διάσπαση μίας δομής δεδομένων σε δύο. Π.χ. η ανάλυση ενός πίνακα Α σε δύο πίνακες Β και Γ έτσι ώστε Α = Β + Γ.


43. Τι ενοούμε με τον όρο "πρόβλημα" και σε τι αναφερόμαστε με τον όρο "Ανάλυση Προβλήματος";

Με τον όρο Πρόβλημα εννοούμε μία κατάσταση που χρήζει αντιμετώπισης (επίλυσης), η δε λύση της δεν είναι γνωστή και ούτε προφανής. Με τον όρο Ανάλυση Προβλήματος εννοούμε ότι ξεκινάμε να αποκαλύπτουμε τη δομή του προβλήματος, δηλαδή να χωρίσουμε το πρόβλημα σε μικρότερα και απλούστερα υποπροβλήματα (υποδιαιρέσεις του ιδίου προβλήματος), καθένα από τα οποία λύνεται ευκολότερα. Στόχος μας λοιπόν είναι να αναλύσουμε τα συστατικά μέρη από τα οποία συντίθεται το πρόβλημα, δηλαδή τα επιμέρους τμήματα που το αποτελούν καθώς και τον τρόπο με τον οποίο αυτά συνδέονται μεταξύ τους αποτυπώνοντας εν τέλει τη δομή του προβλήματος . Έτσι, η ανάλυση ανάλυση μπορεί να γίνει με δομημένο δομημένο λεκτικό λεκτικό τρόπο ή καλύτερα καλύτερα χρησιμοποιώντας χρησιμοποιώντας ένα ιεραρχικό διάγραμμα. 

......................Με τον όρο Πρόβλημα εννοείται μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. Μετον ορο ανάλυση προβληματος εννοείται η διαδικασια κατα την οποια το αρχικό πρόβληµα διασπάται σε άλλα επί µέρους απλούστερα προβλήµατα.

..Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι προφανής ούτε γνωστή. Η αντιμετώπιση του προβλήματος θα γίνει απλούστερη αν μπορέσουμε να αναλύσουμε το πρόβλημα σε άλλα απλούστερα. Τα επιμέρους προβλήματα πιθανό να μην είναι ιδιαίτερα λεπτομερή έτσι ώστε να επιτρέπουν την εύκολη αντιμετώπισή τους. Πρέπει λοιπόν κάθε ένα από αυτά να αναλυθεί σε ακόμα απλούστερα. Αν η ανάλυση του αρχικού προβλήματος θεωρείται επαρκής, η διάσπαση των επιμέρους προβλημάτων σε άλλα απλούστερα μπορεί να τερματιστεί. Ο παραπάνω τρόπος περιγραφής και ανάλυσης ενός προβλήματος γίνεται φραστικά. Ο ενδιαφερόμενος για την αντιμετώπιση του αρχικού προβλήματος, έχει πλέον μπροστά του να αντιμετωπίσει μια σειρά από επιμέρους προβλήματα, τα οποία στο σύνολο τους εκφράζουν και αντιστοιχούν στο αρχικό πρόβλημα. Η ανάλυση αυτή του προβλήματος σε άλλα απλούστερα αναδύει παράλληλα και τη δομή του προβλήματος. Για τη γραφική απεικόνιση της δομής ενός προβλήματος χρησιμοποιείται συχνότατα η διαγραμματική αναπαράσταση. Σύμφωνα με αυτή: το αρχικό πρόβλημα αναπαρίσταται από ένα ορθογώνιο παραλληλόγραμμο κάθε ένα από τα απλούστερα προβλήματα στα οποία αναλύεται ένα οποιοδήποτε πρόβλημα, αναπαρίσταται επίσης από ένα ορθογώνιο παραλληλόγραμμο τα παραλληλόγραμμα που αντιστοιχούν στα απλούστερα προβλήματα στα οποία αναλύεται ένα οποιοδήποτε πρόβλημα, σχηματίζονται ένα επίπεδο χαμηλότερα. Έτσι σε κάθε κατώτερο επίπεδο, δημιουργείται η γραφική αναπαράσταση των προβλημάτων στα οποία αναλύονται τα προβλήματα του αμέσως ψηλότερου επιπέδου.


44. Να αναφέρετε τις πιο συνηθισμένες τεχνικές σχεδίασης αλγορίθμων.

Οι πιο συνηθισμένες τεχνικές είναι η διαίρει και βασίλευε, ο δυναμικός προγραμματισμός και η άπληστη μέθοδος. Στη διαίρει και βασίλευε το αρχικό σύνθετο πρόβλημα διασπάται σε μικρότερα επιμέρους προβλήματα της ίδιας φύσης με το αρχικό αλλά μικρότερα σε μέγεθος. Ένα παράδειγμα τέτοιας μεθόδου είναι η δυαδική αναζήτηση στην οποία η αναζήτηση ενός στοιχείου σε έναν πίνακα ανάγεται στην αναζήτηση του στοιχείου στο πάνω ή κάτω μισό του πίνακα. Αυτή η προσέγγιση εντάσσεται στη top-down μεθοδολογία, από πάνω προς τα κάτω δηλαδή από το σύνθετο στο απλό. Στο δυναμικό προγραμματισμό αρχικά επιλύονται μικρότερα σε μέγεθος άρα απλούστερα στιγμιότυπα του αρχικού προβλήματος και μέσω της σύνθεσης αυτών επιχειρείται η επίλυση του αρχικού συνθετότερου προβλήματος. Στην άπληστη μέθοδο επιχειρείται σε κάθε βήμα επίλυσης του προβλήματος η επιλογή που φαίνεται καλύτερη εκείνη τη στιγμή χωρίς να γίνεται προσπάθεια συνολικής θεώρησης του προβλήματος. Σε πολλές περιπτώσεις αυτή η προσέγγιση οδηγεί στην καλύτερη δυνατή λύση.

1. Εξαντληση (bruteforce)

2. Απληστη μεθοδος (greedy method)

3. Διαιρε και βασιλευε (divide and conquer)

4. Δυναμικος προγραμματισμος (dynamic programming)

5. Οπισθοδρομηση (backtracking)

6. Διακλαδωση και περιορισμος (branch and bound

..Μέθοδος διαίρει και βασίλευε υποδιαιρούν ένα πρόβλημα σε μικρότερα υποπροβλήματα, που έχουν την ίδια τυποποίηση με το αρχικό πρόβλημα αλλά είναι μικρότερα σε μέγεθος. Με όμοιο τρόπο, τα υποπροβλήματα αυτά μπορούν να διαιρεθούν σε ακόμη μικρότερα υποπροβλήματα κοκ. Έτσι η επίλυση ενός προβλήματος έγκειται στη σταδιακή επίλυση των όσο το δυνατόν μικρότερων υποπροβλημάτων, ώστε τελικά να καταλήξουμε στη συνολική λύση του αρχικού ευρύτερου προβλήματος. Αυτή η προσέγγιση ονομάζεται από επάνω προς τα κάτω (top-down).  Μέθοδος δυναμικού προγραμματισμού Aντίστροφη φιλοσοφία δηλαδή με προσέγγιση από κάτω προς τα επάνω (bottom - up). Πιο συγκεκριμένα, η φιλοσοφία των προβλημάτων αυτών είναι από την αρχή να επιλύονται τα μικρότερα προβλήματα και σταδιακά να επιλύονται τα μεγαλύτερα ως σύνθεση των απλούστερων. Δηλαδή, ένας τυπικός αλγόριθμος αυτής της τεχνικής ξεκινά με τα επιμέρους μικρότερου μεγέθους υποπροβλήματα, που επιλύονται με τη χρήση κάποιου κανόνα ή τύπου. Μάλιστα συνηθέστατα τα προσωρινά αποτελέσματα αποθηκεύονται σε ένα πίνακα ώστε να χρησιμοποιηθούν αργότερα χωρίς να απαιτείται να υπολογισθούν για δεύτερη ή τρίτη φορά κ.λπ. Στη συνέχεια οι επιμέρους αυτές λύσεις συνθέτουν την κατάληξη της τελικής λύσης του αρχικού προβλήματος. Άπληστη μέθοδος : Σε πολλά προβλήματα βελτιστοποίησης, όπου απαιτείται να βρεθεί η μέγιστη ή η ελάχιστη τιμή ενός μεγέθους, χρησιμοποιείται μία μέθοδος, που δεν βρίσκει πράγματι τη βέλτιστη λύση, αλλά σκοπός της είναι να την προσεγγίσει. Συνήθως, οι αλγόριθμοι αυτού του τύπου προχωρούν με βάση σταδιακές επιλογές που αφορούν στο βέλτιστο κάθε βήματος, χωρίς μέριμνα για το τελικό βέλτιστο. Έτσι η λειτουργία τους είναι παρόμοια με τις κινήσεις ενός παίκτη στο σκάκι που σκέφτεται και επιλέγει την επόμενη κίνηση χωρίς να τον απασχολούν οι επόμενες κινήσεις ούτε του αντιπάλου ούτε οι δικές του.


45. Ποια είναι τα χαρακτηριστικά ενός αλγορίθμου;

a) Είσοδος. Είσοδος. Καμία, μία ή περισσότερες περισσότερες τιμές δεδομένων δεδομένων πρέπει να δίνονται δίνονται ως είσοδοι είσοδοι στον αλγόριθμο. Η περίπτωση που δεν δίνονται τιμές δεδομένων εμφανίζεται, όταν ο αλγόριθμος δημιουργεί και επεξεργάζεται κάποιες πρωτογενείς τιμές με τη βοήθεια συναρτήσεων παραγωγής τυχαίων αριθμών ή με τη βοήθεια άλλων απλών εντολών b) Έξοδος. Ο αλγόριθμος πρέπει να δημιουργεί τουλάχιστον μία τιμή δεδομένων ως αποτέλεσμα προς το χρήστη ή προς έναν αλλο αλγόριθμ προς το χρήστη ή προς έναν αλλο αλγόριθμο. c) Καθοριστικότητα. Κάθε εντολή πρέπει να καθορίζεται χωρίς καμία αμφιβολία για τον τρόπο εκτέλεσής της. Λόγου χάριν, μία εντολή διαίρεσης πρέπει να θεωρεί και την περίπτωση, όπου ο διαιρέ- της λαμβάνει μηδενική τιμή. d) Περατότητα. Ο αλγόριθμος να τελειώνει μετά από πεπερασμένα βήματα εκτέλεσης των εντολών του. Μία διαδικασία που δεν τελειώνει μετά από ένα συγκεκριμένο αριθμό βημάτων δεν αποτελεί αλγόριθμο, αλλά λέγεται απλά υπολογιστική διαδικασία (computational procedure). e) Αποτελεσματικότητα. Κάθε μεμονωμένη εντολή του αλγορίθμου να είναι απλή. Αυτό σημαίνει ότι μία εντολή δεν αρκεί να έχει ορισθεί, αλλά πρέπει να είναι και εκτελέσιμη.

1. Είσοδος(Input): Καμία, μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται ως είσοδοι στον αλγόριθμο.

2. Έξοδος(Output):Ο αλγόριθμος πρέπει να δημιουργεί τουλάχιστον μία τιμή (δεδομένων) ως αποτέλεσμα προς το χρήστη ή προς ένα άλλο αλγόριθμο.

3. Καθοριστικότητα (definiteness): Κάθε εντολή πρέπει να καθορίζεται χωρίς καμία αμφιβολία για τον τρόπο εκτέλεσής της.

4. Περατότητα (Finiteness): Ο αλγόριθμος πρέπει να τελειώνει μετά από πεπερασμένα βήματα εκτέλεσης των εντολών του

5. Αποτελεσματικότητα (effectiveness): Κάθε μεμονωμένη εντολή του αλγορίθμου να είναι απλή (και όχι σύνθετη). Δηλαδή μία εντολή δεν αρκεί να έχει ορισθεί αλλά πρέπει να είναι και εκτελέσιμη.

6. Επεκτασιμοτητα

...Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο που στοχεύουν στην επίλυση ενός προβλήματος. Χαρακτηριστικά ενός αλγόριθμου είναι:  Είσοδος: κάθε αλγόριθμος πρέπει να έχει καμία, μία ή περισσότερες τιμές δεδομένων ως είσοδο.  Έξοδος : ο αλγόριθμος πρέπει να παράγει τουλάχιστον ένα αποτέλεσμα, είτε προς τον χρήστη είτε προς ένα άλλο αλγόριθμο.  Καθοριστικότητα : τα βήματα του αλγορίθμου θα πρέπει να είναι σαφώς καθορισμένα ως προς τον τρόπο εκτέλεσης τους.  Περατότητα : ο αλγόριθμος πρέπει να τερματίζει μετά από ένα πεπερασμένο αριθμό βημάτων.  Αποτελεσματικότητα : κάθε εντολή του αλγορίθμου να είναι απλή και να είναι εκτέλεσιμη.


46. Με ποιους τρόπους πραγματοποιείται η περιγραφή ενός αλγορίθμου;

a) Ελεύθερο Κείμενο. Αποτελεί τον πιο ανεπεξέργαστο και αδόμητο τρόπο παρουσίασης αλγορίθμου. Έτσι εγκυμονεί τον κίνδυνο ότι μπορεί εύκολα να οδηγήσει σε μη εκτελέσιμη παρουσίαση παραβιάζοντας το τελευταίο χαρακτηριστικό των αλγορίθμων, δηλαδή την αποτελεσματικότητα. b) Διαγραμματικές Τεχνικές. Συνιστούν ένα γραφικό τρόπο παρουσίασης του αλγορίθμου. Από τις διάφορες διαγραμματικές τεχνικές που έχουν επινοηθεί, η πιο παλιά και η πιο γνωστή ίσως, είναι το διάγραμμα ροής (flow chart). Ωστόσο η χρήση διαγραμμάτων ροής για την παρουσίαση αλγορίθμων δεν αποτελεί την καλύτερη λύση, γι'αυτό και εμφανίζονται όλο και σπανιότερα στη βιβλιογραφία εμφανίζονται όλο και σπανιότερα στη βιβλιογραφία και στην πράξη. ι στην πράξη. c) Φυσική Γλώσσα (κατά βήματα). Στην περίπτωση αυτή χρειάζεται προσοχή, γιατί μπορεί να παραβιασθεί το τρίτο βασικό χαρακτηριστικό ενός αλγορίθμου, όπως προσδιορίσθηκε προηγουμένως, δηλαδή το κριτήριο του καθορισμού. d) Κωδικοποίηση . Με ένα πρόγραμμα γραμμένο είτε σε μία ψευδογλώσσα είτε σε κάποια γλώσσα προγραμματισμού που όταν εκτελεσθεί θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο 

1. Ελεύθερο κείμενο (free text), που αποτελεί τον πιο ανεπεξέργαστο και αδόμητο τρόπο παρουσίασης αλγορίθμου.

2. Διαγραμματικές τεχνικές, (diagramming techniques), που συνιστούν ένα γραφικό τρόπο παρουσίασης του αλγορίθμου.

3. Φυσική γλώσσα (natural language) κατά βήματα.

4. Κωδικοποίηση (coding), δηλαδή με ένα πρόγραμμα γραμμένο είτε σε μία ψευδογλώσσα είτε σε κάποια γλώσσα προγραμματισμού που όταν εκτελεσθεί θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο.

... με ελεύθερο κείμενο (free text), που αποτελεί τον πιο ανεπεξέργαστο και αδόμητο τρόπο παρουσίασης αλγορίθμου. Έτσι μπορεί εύκολα να οδηγήσει σε μη εκτελέσιμη παρουσίαση παραβιάζοντας το τελευταίο χαρακτηριστικό των αλγορίθμων, δηλαδή την αποτελεσματικότητα.  με διαγραμματικές τεχνικές (diagramming techniques), που συνιστούν ένα γραφικό τρόπο παρουσίασης αλγορίθμου. Η πιο γνωστή από αυτές είναι το διάγραμμα ροής (flow chart). Ωστόσο η χρήση διαγραμμάτων ροής για την παρουσίαση αλγορίθμων δεν αποτελεί την καλύτερη λύση γι' αυτό και εμφανίζονται όλο και σπανιότερα στη βιβλιογραφία και πράξη.  με φυσική γλώσσα (natural language) κατά βήματα. Στην περίπτωση αυτή χρειάζεται προσοχή, γιατί μπορεί να παραβιασθεί το τρίτο βασικό χαρακτηριστικό ενός αλγορίθμου, όπως προσδιορίστηκε προηγουμένως δηλαδή το κριτήριο του καθορισμού.  με κωδικοποίηση (coding), δηλαδή με ένα πρόγραμμα που όταν εκτελεσθεί θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο 


47. Ποια είναι τα χαρακτηριστικά που είναι απαραίτητα προκειμένου να θεωρήσουμε έναν αλγόριθμο πλήρη;

a) Είσοδος. Είσοδος. Καμία, μία ή περισσότερες περισσότερες τιμές δεδομένων δεδομένων πρέπει να δίνονται δίνονται ως είσοδοι είσοδοι στον αλγόριθμο. Η περίπτωση που δεν δίνονται τιμές δεδομένων εμφανίζεται, όταν ο αλγόριθμος δημιουργεί και επεξεργάζεται κάποιες πρωτογενείς τιμές με τη βοήθεια συναρτήσεων παραγωγής τυχαίων αριθμών ή με τη βοήθεια άλλων απλών εντολών b) Έξοδος. Έξοδος. Ο αλγόριθμος αλγόριθμος πρέπει να δημιουργεί δημιουργεί τουλάχιστον τουλάχιστον μία τιμή δεδομένων δεδομένων ως αποτέλεσμα προς το χρήστη ή προς έναν αλλο αλγόρι αποτέλεσμα προς το χρήστη ή προς έναν αλλο αλγόριθμο. c) Καθοριστικότητα. Καθοριστικότητα. Κάθε εντολή πρέπει να πρέπει να καθορίζεται χ καθορίζεται χωρίς κα ωρίς καμία αμφιβολία αμφιβολία για τον τρόπο εκτέλεσής της. Λόγου χάριν, μία εντολή διαίρεσης πρέπει να θεωρεί και την περίπτωση, όπου ο διαιρέ- της λαμβάνει μηδενική τιμή. d) Περατότητα. Περατότητα. Ο αλγόριθμος αλγόριθμος να τελειώνει τελειώνει μετά από πεπερασμένα πεπερασμένα βήματα εκτέλεσης εκτέλεσης των εντολών του. Μία διαδικασία που δεν τελειώνει μετά από ένα συγκεκριμένο αριθμό βημάτων δεν αποτελεί αλγόριθμο, αλλά λέγεται απλά υπολογιστική διαδικασία (computational procedure). e) Αποτελεσματικότητα. Αποτελεσματικότητα. Κάθε μεμονωμένη εντ μεμονωμένη εντολή του αλγορίθμου αλγορίθμου να είναι απλή. Αυτό σημαίνει ότι μία εντολή δεν αρκεί να έχει ορισθεί, αλλά πρέπει να είναι και εκτελέσιμη.

1. Είσοδος(Input): Καμία, μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται ως είσοδοι στον αλγόριθμο.

2. Έξοδος(Output):Ο αλγόριθμος πρέπει να δημιουργεί τουλάχιστον μία τιμή (δεδομένων) ως αποτέλεσμα προς το χρήστη ή προς ένα άλλο αλγόριθμο.

3. Καθοριστικότητα (definiteness): Κάθε εντολή πρέπει να καθορίζεται χωρίς καμία αμφιβολία για τον τρόπο εκτέλεσής της.

4. Περατότητα (Finiteness): Ο αλγόριθμος πρέπει να τελειώνει μετά από πεπερασμένα βήματα εκτέλεσης των εντολών του

5. Αποτελεσματικότητα (effectiveness): Κάθε μεμονωμένη εντολή του αλγορίθμου να είναι απλή (και όχι σύνθετη). Δηλαδή μία εντολή δεν αρκεί να έχει ορισθεί αλλά πρέπει να είναι και εκτελέσιμη.

6. Επεκτασιμοτητα

.. Είσοδος (input): τιμές δεδομένων που δίνονται ως εισόδοι στον αλγόριθμο.  Έξοδος (output): τιμή δεδομένων που δίνει ο αλγόριθμος ως αποτέλεσμα.  Καθοριστικότητα (definiteness): ο τρόπος εκτέλεσης μιας εντολής π.χ. αν σε μια διαίρεση, ο διαιρέτης είναι 0.  Περατότητα (finiteness): Ο αλγόριθμος να μπορεί να φτάσει την έξοδο του προγράμματος.  Αποτελεσματικότητα (effectiveness): Απλές, καθορισμένες εντολές και εκτελέσιμες


48. Να αναφέρετε πόσα είναι τα είδη της δομής επιλογής.

Η διαδικασία της επιλογής περιλαμβάνει τον έλεγχο κάποιας συνθήκης που μπορεί να έχει δύο τιμές (Αληθής ή Ψευδής) και ακολουθεί η απόφαση εκτέλεσης κάποιας ενέργειας με βάση την τιμή της λογικής αυτής συνθήκης. Στη συνέχεια δίνονται δύο παραδείγματα ενεργειών με βάση κάποια συνθήκης επιλογής. Το πρώτο παράδειγμα αφορά στην εκτέλεση κάποιας ενέργειας όταν η συνθήκη είναι Αληθής, ενώ το δεύτερο παράδειγμα αφορά στην εκτέλεση μίας ενέργειας όταν η συνθήκη είναι Αληθής και κάποιας άλλης ενέργειας όταν η συνθήκη είναι Ψευδή. 

1. Η Απλή Επιλογή

2. Η Σύνθετη Επιλογή

3. Η Πολλαπλή Επιλογή

4. Η Εμφωλευμένη Επιλογή

...Απλή, Σύνθετη, Πολλαπλή


49. Να αναφέρετε πόσα είναι τα είδη της δομής επανάληψης.

a) Επαναληπτικό σχήμα με έλεγχο επανάληψης στην αρχή b) Επαναληπτικό σχήμα με έλεγχο επανάληψης στο τέλος c) Επαναληπτικό σχήμα ορισμένων φορών επανάληψης 

1. Εντολή «όσο... επανέλαβε (while... do)

2. Εντολή «μέχρις... ότου» (do... until)

3. Εντολή «για... από... μέχρι» (for)

... While: Όσο..επανάλαβε...Τέλος_επανάληψης. 

FOR : Για....από...μέχρι... Τέλος_επανάληψης. 

 Repeat until : Αρχή_επανάληψης...Μέχρις_Ότου.


50. Στη δομή δεδομένων τι είναι η στοίβα; Δώστε ένα παράδειγμα.

Η στοίβα είναι μία δομή δεδομένων στην οποία τα δεδομένα εισάγονται το ένα μετά το άλλο ενώ ο χρήστης έχει τη δυνατότητα να προσπελάσει μόνο το τελευταίο που έχει εισαχθεί ενώ το πρώτο στοιχείο που εισήχθη θα προσπελαστεί τελευταίο. Είναι μία δομή LIFO (Last In First Out). Η υλοποίηση μίας στοίβας μπορεί να γίνει απλούστερα χρησιμοποιώντας έναν μονοδιάστατο πίνακα χρησιμοποιώντας πάντοτε έναν δείκτη που να δείχνει το πρώτο στοιχεί δείχνει το πρώτο στοιχείο της στοίβας που είναι και ο της στοίβας που είναι και το τελευταίο που εισήχθ το τελευταίο που εισήχθη σ' αυτήν. η σ' αυτήν. Οι βασικές πράξεις σε μια στοίβα είναι: a) Empty (), επιστρέφει 1 αν Empty (), επιστρέφει 1 αν η στοίβα είναι άδεια ή 0 η στοίβα είναι άδεια ή 0 στην αντίθετη περίπτωση. στην αντίθετη περίπτωση. b) Push (a), τοποθετεί το στοιχείο Push (a), τοποθετεί το στοιχείο a στην κορυφή της σ a στην κορυφή της στοίβας c) Top (), προσπελαύνει το στοιχείο που βρίσκεται στην κορυφή της στοίβας. d) Pop (), προσπελαύνει και διαγράφει το στοιχείο που βρίσκεται στην κορυφή της στοίβας. 

Στοίβα είναι μια αφηρημένη δομή δεδομένων που χρησιμοποιείται ως μια συλλογή στοιχείων με δύο βασικές λειτουργίες:

Push: προσθετει ενα στοιχειο στην συλλογη

Pop: αφαιρει το τελευταιο στοιχει που προστεθηκε


51. Να αναφέρετε τα είδη της αναζήτησης και της ταξινόμησης των στοιχείων ενός πίνακα.

Αναζήτηση σε πίνακες Σειριακή Αναζήτηση ή Γραμμική Αναζήτηση Δυαδική Αναζήτηση Αναζήτηση με Παρεμβολή Ταξινόμηση σε Πίνακες Ταξινόμηση με Εισαγωγή Ταξινόμηση Φυσαλίδας Ταξινόμηση Με Επιλογή Ταξινόμηση Σωρού Ταξινόμηση Με Συγχώνευση Ταχεία Ταξινόμηση Ταξινόμηση με διαμερισμό και αντιμετάθεση 

Ειδη αναζήτησης:

1. Σειριακη αναζητηση (serial search)

2. Δυαδικη αναζητηση (binary search)

Ειδη ταξινομησης:

1. Ταξινομηση φυσαλιδας (bubble sort)

2. Ταξινομηση με επιλογη (selection sort)

3. Ταξινομηση δυο ταξινομημενων πινακων με συγχωνευση (merge sort)

4. Ταξινομηση με την χρηση καδων (bucket sort)

5. Γρηγορη ταξινομηση (quick sort)

...Η σειριακή αναζήτηση (serial search) και μία παραλλαγή της που μπορεί να εφαρμοστεί αν τα στοιχεία πάνω στα οποία γίνεται η αναζήτηση είναι ταξινομημένα. Θα δούμε και τη δυαδική αναζήτηση (binary search), η οποία είναι ο γρηγορότερος τρόπος για να κάνει κανείς αναζήτηση, εφαρμόζεται, όμως, μόνο αν τα στοιχεία πάνω στα οποία γίνεται η αναζήτηση είναι ταξινομημένα. Όσον αφορά την ταξινόμηση, ταξινόμηση με φυσαλίδα (bubble sort) , την ταξινόμηση με επιλογή (selection sort), την ταξινόμηση δύο ήδη ταξινομημένων πινάκων με συγχώνευση (merge sort), την ταξινόμηση ακέραιων αριθμών σε ένα ορισμένο εύρος με τη χρήση κάδων (bucket sort) και τη γρήγορη ταξινόμηση (quick sort) , η οποία είναι πράγματι γρήγορη, γρηγορότερη από κάθε άλλη.


52. Tι είναι RAM και πώς είναι δομημένη;

Γενικότερα με τον όρο RAM αναφερόμαστε στην κύρια ή αναφερόμαστε στην κύρια ή κεντρική μνήμη κεντρική μνήμη ενός υπολογιστικού συστήματος συστήματος αρχιτεκτονικής φον Νόιμαν, αρχιτεκτονικής φον Νόιμαν, δηλαδή τη μνήμη στην οπ δηλαδή τη μνήμη στην οποία αποθηκεύονται προγράμμα οία αποθηκεύονται προγράμματα και δεδομένα, προκειμένου είτε να εκτελεστούν είτε να υποστούν επεξεργασία αντίστοιχα. Η Μνήμη τυχαίας προσπέλασης (RAM, Random access memory) είναι όρος που χρησιμοποιούμε για να αναφερθούμε να αναφερθούμε σε ηλεκτρονικές διατάξεις προσωρινής αποθήκευσης διατάξεις προσωρινής αποθήκευσης ψηφιακώ ψηφιακώ ν δεδομένων (μνήμης υπολογιστή) υπολογιστή), οι οποίες επιτρέπουν πρόσβαση στα απο , οι οποίες επιτρέπουν πρόσβαση στα αποθηκευμένα δε θηκευμένα δεδομένα στον ίδιο χρόνο δομένα στον ίδιο χρόνο οπουδήποτε και αν βρίσκονται αυτά, δηλαδή με «τυχαία πρόσβαση». Σε αντιδιαστολή βρίσκονται συσκευές αποθήκευσης δεδομένων, συσκευές αποθήκευσης δεδομένων, όπως οι όπως οι μαγνητικές ταινίες, μαγνητικές ταινίες, οι μαγνητικοί δίσκοι οι μαγνητικοί δίσκοι («σκληροί» («σκληροί» ή «εύκαμπτοι») «εύκαμπτοι»), στα οποία η πρόσβαση στα δεδομένα μπο , στα οποία η πρόσβαση στα δεδομένα μπορεί να γίνει ρεί να γίνει μόνο με κάποιον προκαθορισμένο μόνο με κάποιον προκαθορισμένο τρόπο, συνήθως τρόπο, συνήθως σειριακά, σειριακά, λόγω του τρόπου κατασκευής τους. Υπάρχου λόγω του τρόπου κατασκευής τους. Υπάρχουν δύο βασι ν δύο βασικοί τύποι RAM : η κοί τύποι RAM : η δυναμική RAM (DRAM) και η στατική RAM (SRAM). Η DRAM είναι η πιο κοινή μορφή αλλά πρέπει να «ανανεώνεται» (refresh) χιλιάδες φορές ανά δευτερόλεπτο, ενώ η SRAM δεν χρειάζεται κάτι τέτοιο. Η SRAM, ως διάταξη, είναι πιο δαπανηρή στην κατασκευή της - και επομένως στην αγορά της - σε σχέση με την DRAM.

Η RAM ειναι η μνημη οπου αποθηκευονται προγραμματα και δεδομενα τα οποια ειτε θα εκτελεστουν ή θα υποστουν επεξεργασια. Λέγεται μνήμη τυχαίας προσπέλασης επειδή επιτρέπει την πρόσβαση στα δεδομένα της, ανεξάρτητα της θέσης στην οποία βρίσκονται (τυχαία θέση). Τα δεδομένα μένουν αποθηκευμένα στην RAM για όσο χρόνο χρησιμοποιούνται από κάποιο λογισμικό ή από τον χρήστη. Μόλις περάσει αυτό το χρονικό διάστημα είτε αντικαθίστανται από άλλα δεδομένα, είτε διαγράφονται. Η μνήμη RAM «αδειάζει» μόλις απενεργοποιήσουμε τον υπολογιστή μας (ή όποια συσκευή διαθέτει RAM).

...Η κεντρική μνήμη(RAM) είναι μνήμη τυχαίας προσπέλασης στην οποία αποθηκεύονται οι εντολές ενός προγράμματος, τα δεδομένα και τα ενδιάμεσα αποτελέσματα της επεξεργασίας. Η κεντρική μνήμη χωρίζεται σε διακριτές θέσεις σε καθεμία από τις οποίες μπορεί αποθηκευτεί μία λέξη(word), δηλαδή ένας σταθερός αριθμός από δυαδικά ψηφία(bits). Κάθε θέση της μνήμης χαρακτηρίζεται μονοσήμαντα από τη διεύθυνση της, που είναι ένας δυαδικός αριθμός. Μπορούμε να προσομοιάσουμε την κεντρική μνήμη σαν ένα δισδιάστατο πίνακα, όπου σε κάθε θέση του αποθηκεύεται ένα μέρος των δεδομένων.


53. Πόσα είδη καταχωρητών υπάρχουν; Να αναφερθούν τουλάχιστον τρεις χαρακτηριστικοί καταχωρητές γενικής χρήσης.

Η ΚΜΕ περιέχει πολλά είδη καταχωρητών, τα οποία ταξινομούνται ανάλογα με το

περιεχόμενό τους ή ανάλογα με τις διαδικασίες που επιτελούν.

• Καταχωρητές Προσπελάσιμοι από τον Χρήστη (User Accessible Registers).

Χωρίζονται σε Καταχωρητές Δεδομένων και Καταχωρητές Διευθύνσεων. Στους

Καταχωρητές Δεδομένων (Data Registers) αποθηκεύονται αριθμητικές τιμές. Στους

Καταχωρητές Διευθύνσεων (Address Registers) αποθηκεύονται οι διευθύνσεις των

αποθηκευμένων δεδομένων.

• Καταχωρητές Συνθήκης (Conditional Registers). Στους Καταχωρητές Συνθήκης

αποθηκεύονται λογικές τιμές.

• Καταχωρητές Γενικής Χρήσης (General Purpose Registers). Στους Καταχωρητές

Γενικής Χρήσης μπορούν να αποθηκευθούν συνδυασμοί δεδομένων και διευθύνσεων

δεδομένων.

• Καταχωρητές Κινητής Υποδιαστολής (Floating point registers). Εδώ αποθηκεύονται

αριθμοί κινητής υποδιαστολής.

• Σταθεροί Καταχωρητές (Constant Registers). Στους Σταθερούς Καταχωρητές

αποθηκεύονται τιμές που παραμένουν σταθερές, όπως το 0, το 1 κ ο 0, το 1 και το π (3,14..). αι το π (3,14..).

Τρεις χαρακτηριστικοί καταχωρητές είναι οι εξής:

• Ο $2 ή $v0 είναι ο καταχωρητής που επιστρέφει τις τιμές από τις συναρτήσεις που

εκτελούνται στο πρόγραμμα.

• Ο $4 ή $a0 είναι ο καταχωρητής όπου αποθηκεύεται προσωρινά η μεταβλητή μιας

συνάρτησης - ρουτίνας που πρόκειται να εκτελεστεί.

• Ο $6 ή $t0 είναι ο καταχωρητής που χρησιμοποιείται για προσωρινή αποθήκευση

δεδομένων του βασικού προγράμματος ή ενός υποπρογράμματος. 

Υπάρχουν 4 ειδη καταχωρητων:

1. Καταχωρητες γενικής χρησης

2. Καταχωρητες δεικτες

3. Καταχωρητες τμηματων

4. Καταχωρητης καταστασης

Οι καταχωρητες γενικής χρησης ειναι:

1. Συσσωρευτης - Accumulator (AX)

2. Βασης - Base (BX)

3. Μετρητης - Counter (CX)

4. Δεδομενων - Data (DX)


54. Τι είναι το bit, το byte και το word; Τι αναπαριστά το καθένα; Πως συνδέονται μεταξύ τους;

Το δυαδικό ψηφίο (bit) είναι η στοιχειώδης μονάδα πληροφορίας στην Επιστήμη Υπολογιστών. Ένα bit είναι η μικρότερη μικρότερη δυνατή ποσότητα π ποσότητα πληροφορίας ληροφορίας που μπορεί να αποθηκευτεί αποθηκευτεί από μία δυαδική συσκευή, ή από άλλο φυσικό σύστημα το οποίο μπορεί να υπάρχει σε μία από δύο διακριτές καταστάσεις (π.χ. 0 και 1). Το byte (μπάιτ) είναι μονάδα μέτρησης ποσότητας πληροφορίας στα υπολογιστικά συστήματα, εμφανιζόμενη συνήθως στα διάφορα επίπεδα της ιεραρχίας μνήμης τους. Ένα byte ισοδυναμεί με 8 bit. Το byte μπορεί να αντιπροσωπεύσει τιμές από 0 έως και 255 στο δεκαδικό σύστημα. Το word στις γλώσσες προγραμματισμού της επιστήμης της πληροφορικής αναφέρεται σε μια αριθμοσειρά, η οποία χρησιμοποιείται ως αριθμοσειρά, η οποία χρησιμοποιείται ως μεταβλητή δ μεταβλητή δυναμικότητας 32 bit, δηλαδή 4 Byte. υναμικότητας 32 bit, δηλαδή 4 Byte 

.......Το Bit και Byte είναι μονάδες μέτρησης ποσότητας πληροφορίας στα υπολογιστικά συστήματα. Το word ειναι η φυσικη μοναδα δεδομενων η οποια χρησιμοποιειται απο ενα συγκεκριμενο σχέδιο επεξεργαστή (ΚΜΕ). Το bit αναπαριστα ενα δυαδικο ψηφιο. Το byte αναπαριστα εναν δυαδικο αριθμο. To word αναπαριστα ενα κομματι δεδομενων σταθερου μεγεθους το οποιο το συνολο οδηγιων του επεξεργαστη χειριζεται σαν μοναδα. Το ενα byte αποτελειται απο 8 bits. Οι μοντερνοι επεξεργαστες συνηθως χειριζονται λεξεις που αποτελουνται απο 32 και 64 bit εξού και οι εκδοσεις των λογισμικων προγραμματων. (Windows 10 32-bit/64-bit)

... Bit (binary digit) - ένα ψηφίο του δυαδικού συστήματος, δηλαδή 0 ή 1. Αποτελεί την ελάχιστη ποσότητα πληροφορίας που μπορεί να αποθηκεύσει ένας η/υ. Μπορεί να πάρει δύο μόνο τιμές που τις συμβολίζουμε με 0-μηδέν ή 1-ένα Το Byte αντιπροσωπεύει ένα χαρακτήρα, που μπορεί να είναι ένα γράμμα, ένας αριθμός, ή κάποιο άλλο σύμβολο [π.χ. !, @, #, (κενό)]. Αποτελείται από 8 δυαδικά ψηφία (bits). Η word είναι μια ομάδα από bits εύρους 16 ως 64 bits ή διαφορετικά 2 ή 8 bytes. Η μονάδα word δεν είναι


55. Να αναφέρετε τρία διαφορετικά είδη διευθυνσιοδότησης και δώστε σύντομα παραδείγματα.

Άμεση Διευθυνσιοδότηση

Η απλούστερη μορφή διευθυνσιοδότησης είναι η άμεση διευθυνσιοδότηση, όπου ο τελεστέος στην πραγματικότητα βρίσκεται στην εντολή. Το πλεονέκτημα της άμεσης διευθυνσιοδότησης είναι ότι, για να πάρουμε τον τελεστέο, δεν χρειάζεται άλλη αναφορά μνήμης εκτός από την προσαγωγή της εντολής, πράγμα που εξοικονομεί μια περίοδο μνήμης ή μνήμης cache στον κύκλο εντολής Το μειονέκτημα είναι ότι το μέγεθος του αριθμού περιορίζεται στο μέγεθος του πεδίου διεύθυνσης το οποίο, στις περισσότερες ομάδες εντολών, είναι μικρό σε σύγκριση με το μήκος λέξης.

Απευθείας Διευθυνσιοδότηση

Μια πολύ απλή μορφή διευθυνσιοδότησης είναι η απευθείας διευθυνσιοδότηση, όπου το πεδίο διεύθυνσης περιέχει την ενεργό διεύθυνση του τελεστέου. Ο προφανής περιορισμός είναι ότι προσφέρει μόνο περιορισμένο χώρο διεύθυνσης.

Έμμεση Διευθυνσιοδότηση

Στην απευθείας διευθυνσιοδότηση, το μήκος του πεδίου διεύθυνσης είναι συνήθως μικρότερο από το μήκος λέξης, πράγμα που περιορίζει το πεδίο τιμών της διεύθυνσης. Μια λύση είναι να κάνουμε το πεδίο διεύθυνσης να αναφέρεται στην διεύθυνση μιας λέξης στην μνήμη, η οποία με την σειρά της θα περιέχει μια διεύθυνση πλήρους μήκους του τελεστέου. Αυτό είναι γνωστό ως έμμεση διευθυνσιοδότηση (indirect addressing). 

1. Διευθυνσιοδοτηση με καταχωρητη

Add R2, R1 (Παραδειγμα)

2. Εμμεση διευθυνσιοδοτηση μεσω καταχωρητη

Add R2, (R1) (Παραδειγμα)

3. Διευθυνσιοδοτηση με δεικτη θεσης

Add R3, (R1 + R2)


56. Από τι εξαρτάται η τεχνική διαχείρισης της μνήμης ενός υπολογιστή;

Η τεχνική διαχείρισης μνήμης που χρησιμοποιούν τα λειτουργικά συστήματα εξαρτάται κυρίως από την Εικονική Μνήμη. Η τεχνική της εικονικής μνήμης είναι υπεύθυνη για την διατήρηση της σταθερότητας των λειτουργικών συστημάτων, αφήνοντας πάντα χώρο στην φυσική μνήμη (RAM), έτσι ώστε να εκτελούνται διεργασίες οι οποίες απαιτούν (στο σύνολό τους ή και η καθεμία) περισσότερη μνήμη RAM από αυτή που διαθέτει το υπολογιστικό σύστημα. Για τη σωστή διαχείριση της εικονικής μνήμης χρησιμοποιούνται διάφορες μέθοδοι. Η σελιδοποίηση είναι η πιο κοινά χρησιμοποιούμενη μέθοδος, γιατί συνήθως υποστηρίζεται από το υλικό των υπολογιστών. Δυο άλλες μέθοδοι που χρησιμοποιούνται, αλλά όχι τόσο ευρέως, είναι η κατάτμηση και η κατατμημένη σελιδοποίηση· η δεύτερη είναι συνδυασμός κατάτμησης και σελιδοποίησης.

Η τεχνικη διαχείρησης της μνημης ενος υπολογιστη εξαρταται απο τον διαθεσιμο χωρο μνημης που χρειαζεται την τρεχουσα στιγμη το συστημα ετσι ωστε να μπορει να τρεξει τα ενεργα προγραμματα με τον καλυτερο δυνατο τροπο.

Για αυτο η κατανομη της κυριας μνημη μπορει να ειναι στατικη (static allocation) ή δυναμικη (dynamic allocation).

Επισης υπαρχει η διαδικασια της ανταλλαγης (swapping) οπου ορισμενα προγραμματα/δεδομενα κρατουνται στην δευτερευουσα μνημη εως οτου χρειαστει να φορτωθουν στην κυρια η οποια θα τα επεξεργαστει.

Η εικονικη μνημη μπορει να διαιρεθει σε σελιδες και η φυσικη μνημη σε ενοτητες. Αυτη η τεχνικης διαχειρισης ονομαζεται σελιδοποιηση. Το κυριότερο μειονέκτημα της σελιδοποίησης είναι ότι κάθε διεργασία καταλαμβάνει περισσότερο χώρο από ότι χρειάζεται και κάποια τμήματα της μνήμης μένουν αχρησιμοποίητα. Αυτό το φαινόμενο ονομάζεται εσωτερικός κατακερματισμός (internal fragmentation).

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


57. Από τι εξαρτάται το μέγεθος της μνήμης που μπορεί να χρησιμοποιήσει ένας υπολογιστής;

Το κύριο ερώτημα, που σχετίζεται με το μέγεθος της μνήμης ενός υπολογιστή, είναι το πόσο είναι αρκετό. Η απάντηση είναι σχετικά απλή. Αν ένα υπολογιστικό σύστημα χρησιμοποιεί συνεχώς το μεγαλύτερο ποσοστό της μνήμης του, αυτό σημαίνει πως χρειάζεται αναβάθμιση. Άρα η βασική προϋπόθεση για να αποφασίσει κάποιος το μέγεθος της μνήμης του υπολογιστή του είναι κυρίως ο λόγος για τον οποίο θα χρησιμοποιηθεί ο υπολογιστής (internet surfing, gaming, online streaming κτλ), αλλά και τα ιδιαίτερα χαρακτηριστικά του (ταχύτητα επεξεργαστή, τεχνολογία και μέγεθος σκληρού δίσκου κ.α.). 

Το μεγιστο μεγεθος μνημης RAM που μπορει να χρησιμοποιησει ενας υπολογιστης εξαρταται αρχικα απο το λειτουργικο του συστημα. Για παραδειγμα η τελευταια εκδοση των Windows 10 Home υποστηριζει εως 4GB για την εκδοση των 32-bit και ως 128GB για την εκδοση των 64-bit. Έπειτα ακολουθει η μητρικη καρτα. Παρα τον αριθμο των διαθεσιμων συνδεσεων για μνημη RAM, ο κατασκευαστης αναφερει το μεγιστο μεγεθος μνημης το οποιο μπορει να χρησιμοποιηθει απο την μητρικη καρτα. Τελος, ο επεξεργαστης. Και η Intel και η AMD αναφερουν ξεκαθαρα το μεγιστο μεγεθος μνημης που μπορει να χρησιμοποιησει ο επεξεργαστης. Η μνημη ROM σπανια αλλαζει αφου τα περιεχομενα της ειναι προεγκατεστημενα απο τον κατασκευαστη της μητρικης καρτα, οπου και την συνανταμε


58. Εξηγήστε γιατί αυξάνοντας την κεντρική μνήμη, κατά κανόνα, επιταχύνουμε τη λειτουργία του υπολογιστικού συστήματος.

Διότι δίνουμε τη δυνατότητα στον υπολογιστή να φορτώσει περισσότερα ή μεγαλύτερα προγράμματα, ολόκληρα ή προγράμματα, ολόκληρα ή το μεγαλύτερο μέρος αυτών σ το μεγαλύτερο μέρος αυτών στη κεντρική του μνήμη, μ τη κεντρική του μνήμη, με την οποία ε την οποία ο επεξεργαστής έχει άμεση σύνδεση και ταχύτατη ανταπόκριση. Στην αντίθετη περίπτωση ο μεγαλύτερος όγκος δεδομένων θα παραμείνει στη δευτερεύουσα ή στην εικονική μνήμη από τις οποίες ο επεξεργαστής αργεί περισσότερο να λάβει δεδομένα. Συνεπώς αυξάνοντας τη κεντρική μνήμη αυτόματα αυξάνουμε και την ταχύτητα του υπολογιστή μας.  

Κεντρικη μνημη ειναι η RAM και η ROM. Η ROM κατα κανονα δεν μπορει να αυξηθει οποτε ο χρηστης πρεπει να αποφασισει ποση RAM χρειαζεται για να εχει το καλυτερο δυνατο αποτελεσμα.

Στην RAM αποθηκευονται τα δεδομενα τα οποια εκεινη την στιγμη επεξεργαζεται ο υπολογιστης. Αναλογα με την χρηση που κανει ο ιδιοκτητης στον υπολογιστη εξαρταται και το συνιστομενο μεγεθος RAM.

Αυξανοντας ομως την κεντρικη μνημη το συστημα θα γινει γρηγοροτερο καθως η επιπλεον ελευθερη μνημη θα αρχισει να χρησιμοποιειται ως μνημη τυπου cache. Αυτο σημαινει οτι καθε φορα που ανοιγουμε ενα προγραμμα ή επεξεργαζομαστε κάτι, ενα αντιγραφο αυτων των δεδομενων θα αποθηκευεται στην ελευθερη μνημη. Ως αποτελεσμα, την επομενη φορα που θα θελουμε να εχουμε προσβαση σε αυτα τα δεδομενα, το συστημα δεν θα αργησει γιατι αντι να τα διαβασει απο τον σκληρο δισκο, θα τα παρει αμεσως απο την RAM.


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

Ένας σύγχρονος μικροεπεξεργαστής αποτελείται από τις ακόλουθες μονάδες. • Μονάδα αποκωδικοποίησης (Decoding Unit) • Αριθμητική και Λογική Μονάδα (Arithmetic and Logical Unit, ALU): Η μονάδα στην οποία εκτελούνται μία προς μία οι αριθμητικές ή λογικές πράξεις, όπως υπαγορεύονται από τις εντολές που έχουν δοθεί στ από τις εντολές που έχουν δοθεί στον υπολογιστή. ον υπολογιστή. • Καταχωρητές (Registers): Μικρά κελιά μνήμης στο εσωτερικό του επεξεργαστή, που χρησιμοποιούνται για την προσωρινή αποθήκευση των δεδομένων, καθώς αυτά υφίστανται υφίστανται επεξεργασία. επεξεργασία. Οι καταχωρητές καταχωρητές διαφέρουν διαφέρουν ανάλογα ανάλογα με τον τύπο του επεξεργαστή και τον κατασκευαστή, τόσο ως προς την οργάνωση όσο και ως προς τη χωρητικότητά τους. • Μονάδα ελέγχου (Control Unit): Ελέγχει τη ροή δεδομένων από και προς την ALU, τους καταχωρητές, τη μνήμη και τις περιφερειακές μονάδες εισ νάδες εισόδου/εξόδου. όδου/εξόδου. • Μονάδα προσκόμισης (Fetch Unit): Μεταφέρει τις εντολές από τη μνήμη στον επεξεργαστή. • Μονάδα προστασίας (Protection Unit): Εξασφαλίζει το αποδεκτό της κάθε διεργασίας που εκτελεί ο επεξεργαστής, ώστε να μη τροποποιούνται δεδομένα που δεν πρέπει ή να μην εκτελούνται μη αποδεκτές εντολές, όπως π.χ. διαίρεση αριθμού με ίρεση αριθμού με το μηδέν.  

Ένας μικροεπεξεργαστής αποτελείται από τα εξής μέρη:

1. Αριθμητική και λογική μονάδα (ALU).

2. Μονάδα ελέγχου (CU)

3. Καταχωρητές

- Αριθμητική και λογική μονάδα

Εκτελεί όλες τις αριθμητικές πράξεις

(πρόσθεση, αφαίρεση, πολλαπλασιασμό και διαίρεση) και λογικές

πράξεις (AND, OR, EXOR, INVERT) καθώς και ολισθήσεις.

- Μονάδα ελέγχου (CU)

Η CU μέσα από τον μικροεπεξεργαστή ελέγχει, συγχρονίζει και επιβλέπει όλες τις

μονάδες για μεταφορά δεδομένων. Χρησιμοποιείται για το συγχρονισμό όλων ένα

εξωτερικό ρολόι.

- Καταχωρητές

Οι καταχωρητές, στο εσωτερικό της CPU, αποθηκεύουν δεδομένα ή διευθύνσεις. Αυτοί

είναι 4 και ειναι ο αποαριθμητης προγραμματος,ο καταχωρητης εντολων, ο δεικτης

στιβας και ο καταχωρητης καταστασης.


60. Το ψηφίο ισοτιμίας τι είδους πληροφορία δίνει και τι είδη ισοτιμίας έχουμε;

Το ψηφίο ισοτιμίας (parity bit) είναι ένα ψηφίο της μορφής 0 ή 1 και προστίθεται πάντα στο τέλος μιας αριθμοσειράς για να δηλώσει αν το σύνολο των ψηφίων με τον αριθμό 1 στην αριθμοσειρά έχουν μονό ή ζυγό αριθμό. Ουσιαστικά αποτελεί την απλούστερη μορφή ελέγχου εγκυρότητας των δεδομένων. Υπάρχουν δύο είδη ισοτιμίας: α) η άρτια ισοτιμία, όταν το πλήθος των ψηφίων 1 σε μια αριθμοσειρά έχει ζυγό αριθμό και β) η περιττή ισοτιμία, όταν το πλήθος των ψηφίων 1 σε μια αριθμοσειρά έχει μ πλήθος των ψηφίων 1 σε μια αριθμοσειρά έχει μονό αριθμό. 

Το ψηφίο ισοτιμίας χρησιμοποιείται για τον εντοπισμό σφαλμάτων μετάδοσης. Το ψηφίο ισοτιμίας βασίζεται στην αποστολή ενός επιπλέον δυαδικού ψηφίου με τα υπόλοιπα δεδομένα. Κατά την αποστολή ο πομπός θέτει στο δυαδικό ψηφίο ισοτιμίας την τιμή 0 ή 1. Στο μεταφερόμενο μήνυμα μετράμε τα ψηφία με τιμή 1 και αν το πλήθος δεν είναι άρτιο (ψηφίο ισοτιμίας 0) ή αν το πλήθος δεν είναι περιττό (ψηφίο ισοτιμίας 1) τότε ανιχνεύεται σφάλμα μετάδοσης. Εξού και τα δυο ειδη ισοτιμιας που εχουμε ειναι η αρτια ισοτιμια και η περιττη ισοτιμια

...Περί της ύπαρξης λάθους στο byte. Υπάρχουν δύο είδη ισοτιμίας: 1. άρτια ισοτιμία 2. περριτή ισοτιμία


61. Ποια είδη διαμόρφωσης ενός σκληρού δίσκου γνωρίζετε και ποιο δίνει μεγαλύτερη ασφάλεια;

Δύο είδη διαμόρφωσης σκληρού δίσκου υπάρχουν: η γρήγορη και η κανονική. ορη και η κανονική. Η διαφορά της γρήγορης με την κανονική διαμόρφωση δίσκου είναι πως κατά την κανονική, μαζί με την διαγραφή των αρχείων, γίνεται ταυτόχρονα και έλεγχος για κατεστραμμένους τομείς στο δίσκο. Στη γρήγορη διαμόρφωση, αφαιρούνται μόνο τα αρχεία, χωρίς να γίνεται έλεγχος. Αυτό έχει σαν αποτέλεσμα η κανονική διαμόρφωση δίσκου σε ένα δίσκο μεγάλης χωρητικότητας να παίρνει ώρες. Αν ο δίσκος είναι σχετικά καινούριος και Το I/O Bus είναι ουσιαστικά ένα πλήθος από καλώδια, που λειτουργεί ως δίαυλος για την μεταφορά δεδομένων μεταξύ των μονάδων μέσα στον υπολογιστή. Το interrupt είναι μια τεχνική ελέγχου της δραστηριότητας εισόδου / εξόδου με την οποία μια περιφερειακή μονάδα περιφερειακή μονάδα ή τερματικό ή τερματικό που χρειάζεται να που χρειάζεται να στείλει ή στείλει ή να λάβει να λάβει μια δεδομένων μια δεδομένων στέλνει ένα σήμα, το οποίο θα ενεργοποιήσει ένα πρόγραμμα interrupt. Αλληλένδετα με το συνολικό interrupt σύστημα, οι επεξεργαστές ενεργοποιούν μια υπηρεσία interrupt. Η λειτουργία της οποίας θα εξαρτηθεί από τα επίπεδα διακοπής που έχουν τεθεί στον επεξεργαστή και των προτεραιοτήτων που εφαρμόζει. Η τεχνική interrupt απαιτεί πιο πολύπλοκο υλικό και λογισμικό, αλλά κάνει πολύ πιο αποτελεσματική χρήση του χρόνου και των δυνατοτήτων του υπολογιστή. Ο controller είναι ένα ψηφιακό κύκλωμα που διαχειρίζεται τη ροή δεδομένων προς και από την κύρια μνήμη του υπολογιστή. Ένας controller μπορεί να είναι ένα ξεχωριστό τσιπ ή να ενσωματωθεί σε ένα άλλο τσιπ, να τοποθετηθεί δηλαδή στην ίδια μήτρα ή να αποτελεί αναπόσπαστο τμήμα ενός μικροεπεξεργαστή. γενικά δεν έχετε προβλήματα μαζί του, η γρήγορη διαμόρφωση δίσκου είναι η καλύτερη 

επιλογή. 

Τα δυο βασικα ειδη διαμορφωσης σκληρου δισκου ειναι το FAT32 και το NTFS. Γενικα το NTFS θεωρειται οτι παρεχει μεγαλυτερη ασφαλεια αφου μπορει να πραγματοποιηθει σε δισκους με μεγαλη χωρητικοτητα και εχει καλυτερες αποδοσεις απο το FAT32.

Ενας σκληρος δισκος ειναι καλυτερο να εχει διαμορφωθει στον τυπο NTFS αφου αυτο μας δινει την δυνατοτητα να πραγματοποιησουμε πολλες αλλαγες στα αρχεια που περιεχει οπως για παραδειγμα να κανουμε συμπιεση, κρυπτογραφηση, αλλαγη δικαιωματων προσβασης κλπ. Επισης ειναι η ασφαλεστερη επιλογη αφου οι σκληροι δισκοι τυπου NTFS ειναι δυσκολοτερο να διαβαστουν απο λογισμικα διαφορετικα των Windows. 62.

..Τα επικρατέστερα συστήματα αρχείων που χρησιμοποιούν τα Windows είναι το FAT στις διάφορες εκδοχές του - FAT, FAT32, exFAT - και το NTFS. Tα αρχεία στο NTFS διαθέτουν περισσότερα χαρακτηριστικά ασφαλείας, όπως τη δυνατότητα για ορισμό δικαιωμάτων πρόσβασης, τη δυνατότητα κρυπτογράφησης σε πραγματικό χρόνο, καθώς και τη δυνατότητα συμπίεσης.


62. Τι είναι τα Ι/0 bus, το interrupt; και τί ο Contrοller;

Το I/O Bus είναι ουσιαστικά ένα πλήθος από καλώδια, που λειτουργεί ως δίαυλος για την μεταφορά δεδομένων μεταξύ των μονάδων μέσα στον υπολογιστή. Το interrupt είναι μια τεχνική ελέγχου της δραστηριότητας εισόδου / εξόδου με την οποία μια περιφερειακή μονάδα περιφερειακή μονάδα ή τερματικό ή τερματικό που χρειάζεται να που χρειάζεται να στείλει ή στείλει ή να λάβει να λάβει μια δεδομένων μια δεδομένων στέλνει ένα σήμα, το οποίο θα ενεργοποιήσει ένα πρόγραμμα interrupt. Αλληλένδετα με το συνολικό interrupt σύστημα, οι επεξεργαστές ενεργοποιούν μια υπηρεσία interrupt. Η λειτουργία της οποίας θα εξαρτηθεί από τα επίπεδα διακοπής που έχουν τεθεί στον επεξεργαστή και των προτεραιοτήτων που εφαρμόζει. Η τεχνική interrupt απαιτεί πιο πολύπλοκο υλικό και λογισμικό, αλλά κάνει πολύ πιο αποτελεσματική χρήση του χρόνου και των δυνατοτήτων του υπολογιστή. Ο controller είναι ένα ψηφιακό κύκλωμα που διαχειρίζεται τη ροή δεδομένων προς και από την κύρια μνήμη του υπολογιστή. Ένας controller μπορεί να είναι ένα ξεχωριστό τσιπ ή να ενσωματωθεί σε ένα άλλο τσιπ, να τοποθετηθεί δηλαδή στην ίδια μήτρα ή να αποτελεί αναπόσπαστο τμήμα ενός μικροεπεξεργαστή. 

Πολλές συσκευές I/O έχουν δύο διαφορετικά τμήματα: ένα ηλεκτρονικό και ένα μηχανικό. Το ηλεκτρονικό τμήμα, που είναι στην ουσία ένας επεξεργαστής, ονομάζεται ελεγκτής (controller) (ή adapter).

Οι δίαυλου εισόδου/ εξόδου (I/O Bus) επιτρέπουν την επικοινωνία συσκευών εισόδου/εξόδου με το υπόλοιπο σύστημα.

Interrupt ονομαζεται η διακοπη που θα προκαλεσει ο ελεγκτης (controller) ώστε να εκτελεστεί το κατάλληλο τμήμα του Λ.Σ. και να συνεχίσει την περαιτέρω επεξεργασία της κλήσης Ε/Ε.

 Interrupt : αίτηση διακοπής ή σήμα διακοπής είναι ένα σήμα διακοπής προς την ΚΜΕ που της ζητά να διακόψει την εκτέλεση του τρέχοντος προγράμματος και να εξυπηρετήσει την αίτηση κάποιας περιφερειακής συσκευής., δηλαδή να πραγματοποιήσει κάποια διαδικασία εισόδου/εξόδου. όταν οι διακοπές προέρχονται από κάποιο μέρος του υλικού, π.χ. το ποντίκι, τότε ονομάζονται διακοπές υλικού. Οι διακοπές που παράγονται από προγράμματα(π.χ., όταν ένα πρόγραμμα απαιτεί ανάγνωση από ένα CDROM), ονομάζονται διακοπές λογισμικού. O έλεγχος των διακοπών της τρέχουσας επεξεργασίας της ΚΜΕ γίνεται είτε μέσω κάποιου ειδικού προγράμματος είτε απευθείας από την ΚΜΕ.  Ι/0 bus Ο διάδρομος εισόδου-εξόδου(Ι/0 bus), διασυνδέει τις περιφερειακές μονάδες που υπάρχουν σε ένα υπολογιστικό σύστημα. Τα Ι/0 buses, δεν συνδέονται απευθείας με τον επεξεργαστή ή την μνήμη, αλλά συνδέονται μέσω ξεχωριστού προσαρμοστικού κυκλώματος το οποίο ρυθμίζει την επικοινωνία μεταξύ μονάδων διαφορετικής συχνότητας λειτουργίας.  Contrοller Είναι μια συσκευή που ελέγχει τη μεταγωγή των δεδομένων από τον Η/Υ στις περιφερειακές συσκευές. Για παράδειγμα , ο σκληρός δίσκος , το πληκτρολόγιο και ο εκτυπωτής απαιτούν την ύπαρξη ελεγκτή για τη λειτουργία τους. Οι ελεγκτές συνεργάζονται με τις αρτηρίες (διαδρόμους) μετάδοσης δεδομένων, γι αυτό και κάθε τύπος διαδρόμου έχει διαφορετικό τύπο ελεγκτή.


63. Τι είναι το ρολόι του υπολογιστή και σε τι χρησιμεύει;

Οι επεξεργαστές εκτελούν διαδοχικές στοιχειώδεις λειτουργίες με τη χρήση ενός ηλεκτρικού σήματος τετραγωνικού παλμού. Αυτό το ηλεκτρικό σήμα συγχρονισμού καλείται σήμα ρολογιού, επειδή παράγεται εξωτερικά του επεξεργαστή, από ένα ταλαντωτή που ονομάζεται ρολόι (clock). Το σήμα ρολόι (clock). Το σήμα ρολογιού (ή χρονισμού) διαδί ρολογιού (ή χρονισμού) διαδίδεται μέσα από το δεται μέσα από το δίαυλο ελέγχου και ελέγχου και εναλλάσσεται περιοδικά μεταξύ μηδέν και ένα. Ο χρόνος που χρειάζεται το ρολόι για να μεταπηδήσει από το μηδέν στο ένα και πίσω στο μηδέν, ονομάζεται περίοδος ή κύκλος του ρολογιού. 

Το ρολόι του υπολογιστη (το οποιο βρισκεται στην ΚΜΕ) είναι υπεύθυνο για τον συντονισμό των υπόλοιπων εξαρτημάτων και στελνει περιοδικά σήματα . Η περίοδος ανάμεσα σε δυο σήματα λέγεται κύκλος του ρολογιού . Όσο μικρότερη είναι η περίοδος τόσο ταχύτερος είναι ο μικροεπεξεργαστής.

Το ρολόι ενός υπολογιστή είναι το κύκλωμα που παράγει παλμούς ορισμένης συχνότητας με σκοπό το συγχρονισμό των λειτουργιών του επεξεργαστή. Σε κάθε κτύπο του ρολογιού η ΚΜΕ εκτελεί μια στοιχειώδη λειτουργία. 


64. Να αναφέρετε δύο διαφορετικούς τρόπους εισαγωγής στοιχείων από το πλκτρολόγιο (Με έλεγχο του περιεχομένου και χωρίς έλεγχο) σε γλώσσα assembly

Αν υποθέσουμε ότι θέλουμε να εισάγουμε τι τιμή 5 στον καταχωρητή $t0 τότε θα μπορούσαμε να το κάνουμε με δύο τρόπους:

a) li $t0,5 # χωρίς # χωρίς έλεγχο περιεχομένου έλεγχο περιεχομένου

b) cmp $t0,0 #με έλεγχο #με έλεγχο περιεχομένου περιεχομένου

je set

set li $t0,5

Οταν χρησιμοποιουμε γλωσσα assembly οι δυο διαφορετικοι τροποι να εισαγουμε στοιχεια απο το πληκτρολογιο ειναι το να γραψουμε μια εντολη ή να καταχωρησουμε αμεσως καποια τιμη στην μνημη.

Με τον πρωτο τροπο γινεται ελεγχος του περιεχομενου αφου αν υπαρχει καποιο λαθος ο compiler του προγραμματος που χρησιμοποιουμε για να γραψουμε τον κωδικα θα μας βγαλει σφαλμα.

Ο δευτερος τροπος γινεται χωρις ελεγχο γιατι δεν εισαγουμε καποια τιμη με την χρηση κωδικα αλλα αμεσα απο μονοι μας.


65. Να αναφέρετε δύο διαφορετικούς τρόπους απεικόνισης στοιχείων στην οθόνη με assembly.

Με την syscall 4 (print string) εκτυπώνουμε οποιαδήποτε συμβολοσειρά στην οθόνη.

Π.χ li $v0, 4

la $a0, msg

syscall

Με την syscall 1 (print integer) εκτυπώνουμε οποιαδήποτε αριθμοσειρά στην οθόνη.

Π.χ. li $v0, 1

move $a0, $t2 syscall 

Αναλογα με το προγραμμα που χρησιμοποιουμε για να γραψουμε κωδικα με την χρηση της γλωσσας assembly υπαρχουν δυο τροποι να απεικονισουμε στοιχεια στην οθονη. Αυτοι ειναι το να κοιταξουμε τις τιμες που εχουν οι καταχωρητες μετα την εκτελεση του


66. Τί είναι ένας κατάλογος, ποια στοιχεία γνωρίζετε για αυτόν και ποιες οι υποστηριζόμενες λειτουργίες του;

Στους υπολογιστές  καλούμε κατάλογο ή φάκελο ένα ειδικό αρχείο το οποίο περιέχει πληροφορίες για άλλα αρχεία και καταλόγους. Οι πληροφορίες αυτές είναι το όνομα, μέγεθος, τοποθεσία στην οποία βρίσκεται σε κάποιο δευτερεύον αποθηκευτικό μέσο, αποθηκευτικό μέσο, ημερομηνία ημερομηνία δημιουργίας, δικαιώματα προσπέλασης, ιδιοκτήτης κτλ. Ένας κατάλογος που βρίσκεται καταχωρημένος σε έναν κατάλογο ονομάζεται υποκατάλογός του. Έτσι σχηματίζεται μια ιεραρχία καταλόγων, μια δενδροειδής δομή. 

Α)Ο ίδιος ο κατάλογος είναι ένα αρχείο το οποίο ανήκει στο Λ.Σ. και στο οποίο έχουν πρόσβαση οι σχετικές ρουτίνες διαχείρισης αρχείων του Λ.Σ.

Β)Ο τρόπος αποθήκευσης των περιεχομένων ενός καταλόγου διαφέρει από σύστημα σε σύστημα.

• Κάποιες από τις πληροφορίες μπορεί να είναι αποθηκευμένες σε μία εγγραφή που παίζει το ρόλο επικεφαλίδας και σχετίζεται με το κάθε αρχείο του καταλόγου. - Μειώνει το ποσό μνήμης που χρειάζεται ο κατάλογος.

- Επιτρέπει την αποθήκευση όλου ή μεγάλου μέρους του στην κύρια μνήμη με

επακόλουθο την αύξηση της ταχύτητας προσπέλασης στα περιεχόμενά του.

• Ο πιο απλός τρόπος είναι μία λίστα από στοιχεία, ένα στοιχείο για κάθε αρχείο του καταλόγου.

• Η δομή αυτή μπορεί να υλοποιηθεί ως ένα απλό σειριακό αρχείο, με το όνομα του κάθε αρχείου του καταλόγου να παίζει το ρόλο του κλειδιού στο σειριακό αρχείο.

• Αναγκάζει τους χρήστες να βεβαιώνονται ότι το ίδιο όνομα δεν χρησιμοποιείται για περισσότερα από ένα αρχεία.

Γ)Ένα σύστημα καταλόγων πρέπει να υποστηρίζει κάποιες βασικές λειτουργίες, όπως:

- Αναζήτηση ενός αρχείου σε έναν κατάλογο, όταν ένας χρήστης ή μία εφαρμογή κάνει αναφορά σε αυτό το αρχείο.

- Δημιουργία καινούργιων αρχείων.

- Διαγραφή υπαρχόντων αρχείων.

- Μερική ή ολική παρουσίαση των περιεχομένων ενός καταλόγου (π.χ. ονομάτων αρχείων και πιθανόν κάποιων από τα ιδιοχαρακτηριστικά των αρχείων).

- Ενημέρωση των περιεχόμενων του καταλόγου (π.χ. αν αλλάξουν κάποια ιδιοχαρακτηριστικά ενός αρχείου).

...Στους υπολογιστές καλούμε κατάλογο ή φάκελο, ένα ειδικό αρχείο το οποίο περιέχει πληροφορίες για άλλα αρχεία και καταλόγους. Οι πληροφορίες αυτές είναι το όνομα , μέγεθος , τοποθεσία στην οποία βρίσκεται σε κάποιο δευτερεύον αποθηκευτικό μέσο, ημερομηνία δημιουργίας, δικαιώματα προσπέλασης, ιδιοκτήτης κτλ. Ένας κατάλογος που βρίσκεται καταχωρημένος σε έναν κατάλογο ονομάζεται υποκατάλογός του. Έτσι σχηματίζεται μια ιεραρχία καταλόγων, μια δενδροειδής δομή.  Δημιουργία νέου αρχείου.  Διαγραφή αρχείου από τη βοηθητική μνήμη.  Άνοιγμα αρχείου για πρόσβαση στα δεδομένα του.  Κλείσιμο αρχείου που ανοίχτηκε, προσπελάστηκε, τροποποιήθηκε.  Ανάγνωση δεδομένων ανοιχτού αρχείου.  Εγγραφή δεδομένων σ' ένα ανοιχτό αρχείο, στο τρέχων σημείο του.  Ανάγνωση ή τροποποίηση των χαρακτηριστικών ενός αρχείου.


67. Τι είναι Διαδοχική οργάνωση αρχείων (sequential) και τι Άμεση οργάνωση αρχείων;

Στη διαδοχική (sequential) οργάνωση οι εγγραφές του αρχείου έχουν μία ορισμένη διάταξη, σύμφωνα με τα περιεχόμενα κάποιου πεδίου, που χαρακτηρίζεται ως κλειδί της εγγραφής. Για παράδειγμα, σ' ένα αρχείο μαθητών με διαδοχική οργάνωση, οι εγγραφές έχουν διάταξη αύξουσα σύμφωνα με το περιεχόμενο του κλειδιού κωδικός. Η εγγραφή με κωδικό 85001 προηγείται της 85501 και αυτή της 86001 κλπ. Εάν για κλειδί ληφθεί το επίθετο, τότε η εγγραφή που αρχίζει από Α προηγείται αυτής που αρ εγγραφή που αρχίζει από Α προηγείται αυτής που αρχίζει από Β κλπ ζει από Β κλπ Η άμεση (direct) οργάνωση επιχειρεί να εκμεταλλευτεί τις δυνατότητες που προσφέρει ο δίσκος ή άλλες παρόμοιες μονάδες, που έχουν άμεση προσπέλαση σε κάθε φυσική εγγραφή της οποίας η διεύθυνση είναι γνωστή. Στα αρχεία αυτά οι εγγραφές αποθηκεύονται τυχαία στο δίσκο γι' αυτό, πολλές φορές, λέγονται και τυχαία (random) αρχεία. Το κλειδί κάθε φυσικής εγγραφής μετατρέπεται, τυχαία, με κάποιο αλγόριθμο σε φυσική διεύθυνση, δηλαδή κύλινδρο, ίχνος και τομέα. Η διαδικασία αυτή είναι γνωστή ως παραγωγή διευθύνσεων. 

Στη διαδοχική (sequential) οργάνωση οι εγγραφές του αρχείου έχουν μία ορισμένη διάταξη, σύμφωνα με τα περιεχόμενα κάποιου πεδίου, που χαρακτηρίζεται ως κλειδί της εγγραφής. Διάταξη μπορεί να υπάρχει σ' ένα διαδοχικό αρχείο και ως προς περισσότερα κλειδιά. Η άμεση (direct) οργάνωση επιχειρεί να εκμεταλλευτεί τις δυνατότητες που προσφέρει ο δίσκος ή άλλες παρόμοιες μονάδες, που έχουν άμεση προσπέλαση σε κάθε φυσική εγγραφή της οποίας η διεύθυνση είναι γνωστή. Στα αρχεία αυτά οι εγγραφές αποθηκεύονται τυχαία στο δίσκο γι' αυτό, πολλές φορές, λέγονται και τυχαία (random) αρχεία.

...Στη διαδοχική (sequential) οργάνωση οι εγγραφές του αρχείου έχουν μία ορισμένη διάταξη, σύμφωνα με τα περιεχόμενα κάποιου πεδίου, που χαρακτηρίζεται ως κλειδί της εγγραφής. Για παράδειγμα, σ' ένα αρχείο μαθητών με διαδοχική οργάνωση, οι εγγραφές έχουν διάταξη αύξουσα σύμφωνα με το περιεχόμενο του κλειδιού κωδικός. Η εγγραφή με κωδικό 85001 προηγείται της 85501 και αυτή της 86001 κλπ. Εάν για κλειδί ληφθεί το επίθετο, τότε η εγγραφή που αρχίζει από Α προηγείται αυτής που αρχίζει από Β κλπ. Η άμεση (direct) οργάνωση επιχειρεί να εκμεταλλευτεί τις δυνατότητες που προσφέρει ο δίσκος ή άλλες παρόμοιες μονάδες, που έχουν άμεση προσπέλαση σε κάθε φυσική εγγραφή της οποίας η διεύθυνση είναι γνωστή. Στα αρχεία αυτά οι εγγραφές αποθηκεύονται τυχαία στο δίσκο γι' αυτό, πολλές φορές, λέγονται και τυχαία (random) αρχεία. Το κλειδί κάθε φυσικής εγγραφής μετατρέπεται, τυχαία, με κάποιο αλγόριθμο σε φυσική διεύθυνση, δηλαδή κύλινδρο, ίχνος και τομέα. Η διαδικασία αυτή είναι γνωστή ως παραγωγή διευθύνσεων. Μερικές φορές η άμεση οργάνωση επιτρέπει την προσπέλαση σε μία λογική εγγραφή με βάση τη σχετική (relative) θέση της στο αρχείο (π.χ. 10η, 5η εγγραφή), που μετατρέπεται σε φυσική διεύθυνση . Τα αρχεία αυτά ορίζονται ως σχετικά (relative) αρχεία. Αν είναι ταξινομημένα ως προς κάποιο κλειδί υπάρχει δυνατότητα και διαδοχικής προσπέλασης. Οι εγγραφές των άμεσων αρχείων, γενικά, δεν συνδέονται με την προηγούμενη και την επόμενη εγγραφή, όπως συμβαίνει στα διαδοχικά αρχεία με ευρετήρια, που και αυτά διαθέτουν άμεση προσπέλαση εγγραφής


68. Τι είναι τo αρχείo system.ini των windows;

Το SYSTEM.INI ήταν ένα αρχείο αρχικοποίησης (INI) που χρησιμοποιούνταν στις πρώτες εκδόσεις των Microsoft Windows (από 1.01 έως και Me) για να φορτώσει τα προγράμματα οδήγησης συσκευών και το προεπιλεγμένο πυρήνα των Windows (πρόγραμμα διαχείρισης ή Windows Explorer). Πολλές από αυτές τις ρυθμίσεις διατηρήθηκαν στα Windows 9x (95, 98 και Me), αν και τα αρχεία INI είχαν αρχίσει να καταργούνται σταδιακά υπέρ της Registry των Windows. Τα Windows NT 4.0, 2000, XP και Server 2003 εξακολουθούν να αναγνωρίζουν ορισμένες καταχωρήσεις του SYSTEM.INI προκειμένου να παρέχουν συμβατότητα προς τα πίσω με παλαιότερες εφαρμογές 16 bit. Τα Windows Vista και τα υπόλοιπα διαθέτουν επίσης το System.ini. 

Το αρχειο system.ini των Λ.Σ. τυπου Windows ειναι ενα αρχειο αρχικοποιησης το οποιο χρησιμοποιειται για να φορτωσει τους drivers των συνδεμενων συσκευων και την γραφικη αναπαρασταση των Windows (program manager ή file explorer) καθως και διαφορες αλλες ρυθμισεις συστηματος.


69. Ποια είναι τα δομικά μέρη του UNIX;

Βασικό συστατικό στοιχείο του λειτουργικού συστήματος Linux είναι ο πυρήνας ή kernel. Το kernel είναι το ενδιάμεσο στρώμα ανάμεσα στο υλικό και τον χρήστη ή τις εφαρμογές που εκτελεί ο χρήστης. Διαχειρίζεται τις συσκευές, τη μνήμη RAM και την CPU με τέτοιο τρόπο, ώστε να γίνεται η καλύτερη δυνατή χρήση τους. Γύρω από το kernel, υπάρχουν τα κελύφη ή shells, τα οποία ανάλογα με τα προνόμια της εφαρμογής ή του χρήστη, του επιτρέπουν να πλησιάσει στις δυνατότητες που του παρέχει ο πυρήνας. Αυτό φυσικά γίνεται για λόγους ασφαλείας, ώστε μία λανθασμένη επιλογή να μην οδηγήσει το σύστημα σε κατάρρευση. Παράλληλα, είναι υπεύθυνο να ελέγχει και να δίνει προτεραιότητα στις διεργασίες, να μοιράζει τον χρόνο που θα έχει η καθεμία σε κάθε κύκλο στην CPU και ανάλογα με τις δυνατότητες του hardware να ελέγχει την πολυεπεξεργασία, δηλαδή την ταυτόχρονη εκτέλεση πολλαπλών εφαρμογών. Στο επίπεδο της μνήμης, παραχωρεί τον χώρο που χρειάζεται κάθε εφαρμογή και αποφασίζει τι θα στείλει στην εικονική μνήμη ή swap στον σκληρό δίσκο και πότε. 

Λειτουργικό σύστημα Unix 

To UNIX αποτελείται από τα εξής hardware εξαρτήματα :

Το Κernel

είναι ο πυρήνας του Συστήματος που ελέγχει το hardware και εκτελεί μια σειρά από βασικές λειτουργίες "low level".Tα άλλα συστατικά μέρη του UNIX καθώς και προγράμματα των χρηστών απευθύνονται στο Kernel για να εκτελέσει εντολές προς το σύστημα (system calls).

To SHELL (ειδικό utility)

είναι ο εκτελεστής εντολών προς το UNIX, command interpreter

Tα Utility Programs

είναι commands που υποστηρίζουν μια σειρά δουλειές όπως την αντιγραφή αρχείων,text editing,calculations, αναπτυξη λογισμικού κ.α.

Τα User Programs

είναι τα προγράμματα που αναπτύσουν οι χρήστες από την στιγμή που πάρουν θέση μέσα στο UNIX τότε δεν ξεχωρίζουν από το υπόλοιπο UNIX ή τις εντολές προς αυτό.

Το UNIX Kernel

Eκτελεί βασικές λειτουργίες του Συστήματος, τέτοιες που λέμε ότι είναι "κοντά" στη μηχανή ή αλλιώς λέμε ότι είναι low level. Aυτές οι λειτουργίες δημιουργούν το UNIX environment πάνω σε συγκεκριμένο Hardware.To πιο "κοντινό" τμήμα του βρίσκεται σε άμεση επαφή με το Hardware και έτσι "κρύβει" από τα άλλα εξαρτήματα του UNIX τη μηχανή καθιστώντας τα ανεξάρτητα της


70. Τι είναι το FAT και τι το NTFS σύστημα διαχείρισης αρχείων στο δίσκο;

DoubleSpace εγκαταλείφθηκε από το FAT32 αλλά με το NTFS η ιδέα επανήλθε, φυσικά με άλλα χαρακτηριστικά. To NTFS είναι το καθιερωμένο σύστημα αρχείων του λειτουργικού συστήματος Windows NT. Έχει ενσωματωθεί ενσωματωθεί και στις νεότερες νεότερες εκδόσεις εκδόσεις αυτού του λειτουργικού λειτουργικού συστήματος, συστήματος, δηλαδή στα Windows 2000, Windows XP, Windows Server 2003, Windows Server 2008 και Windows Vista κτλ. Αποτελεί αρκτικόλεξο των λέξεων New Technology File System. ology File System. Το σύστημα αρχείων NTFS έχει εκτοπίσει το προηγούμενο FAT ως το προτιμώμενο σύστημα αρχείων για τα λειτουργικά συστήματα Windows της Microsoft. Ενσωματώνει αρκετές βελτιώσεις σε σχέση με το FAT και το HPFS, όπως η καλύτερη υποστήριξη μεταδεδομένων και η χρήση προχωρημένων δομών δεδομένων με σκοπό τη βελτίωση της απόδοσης, της αξιοπιστίας και της εκμετάλλευσης του διαθέσιμου χώρου στο δίσκο, καθώς και επιπρόσθετες προσθήκες που αφορούν την ασφάλεια προσθήκες που αφορούν την ασφάλεια του συστήματος. του συστήματος. Τα πλεονεκτήματα χρήσης του σε σχέση με το FAT και FAT32 προκύπτουν από τις δυνατότητες του και είναι: • ασφάλεια πρόσβασης με δικαιώματα σε φακέλους ή μεμονωμένα αρχεία. • ανάκαμψη μετά από αστοχία γιατί η καταγραφή των transactions ολοκληρώνεται πριν την εκτέλεσή τους • μικρότερος κατακερματισμός αρχείων. • δεν μπορούμε να ξεκινήσουμε το σύστημα με δισκέτες DOS (το οποίο είναι και μειονέκτημα). DoubleSpace εγκαταλείφθηκε από το FAT32 αλλά με το NTFS η ιδέα επανήλθε, φυσικά με άλλα χαρακτηριστικά. To NTFS είναι το καθιερωμένο σύστημα αρχείων του λειτουργικού συστήματος Windows NT. Έχει ενσωματωθεί ενσωματωθεί και στις νεότερες νεότερες εκδόσεις εκδόσεις αυτού του λειτουργικού λειτουργικού συστήματος, συστήματος, δηλαδή στα Windows 2000, Windows XP, Windows Server 2003, Windows Server 2008 και Windows Vista κτλ. Αποτελεί αρκτικόλεξο των λέξεων New Technology File System. ology File System. Το σύστημα αρχείων NTFS έχει εκτοπίσει το προηγούμενο FAT ως το προτιμώμενο σύστημα αρχείων για τα λειτουργικά συστήματα Windows της Microsoft. Ενσωματώνει αρκετές βελτιώσεις σε σχέση με το FAT και το HPFS, όπως η καλύτερη υποστήριξη μεταδεδομένων και η χρήση προχωρημένων δομών δεδομένων με σκοπό τη βελτίωση της απόδοσης, της αξιοπιστίας και της εκμετάλλευσης του διαθέσιμου χώρου στο δίσκο, καθώς και επιπρόσθετες προσθήκες που αφορούν την ασφάλεια προσθήκες που αφορούν την ασφάλεια του συστήματος. του συστήματος. Τα πλεονεκτήματα χρήσης του σε σχέση με το FAT και FAT32 προκύπτουν από τις δυνατότητες του και είναι: • ασφάλεια πρόσβασης με δικαιώματα σε φακέλους ή μεμονωμένα αρχεία. • ανάκαμψη μετά από αστοχία γιατί η καταγραφή των transactions ολοκληρώνεται πριν την εκτέλεσή τους • μικρότερος κατακερματισμός αρχείων. • δεν μπορούμε να ξεκινήσουμε το σύστημα με δισκέτες DOS (το οποίο είναι και μειονέκτημα).  

Το FAT (file allocation table) ειναι ενα table το οποιο ενα Λ.Σ. διατηρει σε εναν σκληρο δισκο και παρεχει εναν χαρτη των συμπλεγματων (η βασικη μοναδα λογικου χωρου αποθηκευσης σε ενα σκληρο δισκο) οπου ενα αρχειο εχει αποθηκευτει. Οταν ο χρηστης δημιουργει ενα καινουργιο αρχειο τοτε αυτο αποθηκευεται σε ενα ή περισσοτερα συμπλεγματα του σκληρου δισκου τα οποια δεν ειναι αναγκαιο να βρισκονται το ενα διπλα στο αλλο.

Το NTFS (new technology file system) ειναι το πο συγχρονο συστημα αρχειου το οποιο το Λ.Σ. Windows χρησιμοποιει για την αποθηκευση και ανακτηση αρχειων του σκληρου δισκου. Αυτο το συστημα διαχειρησης αρχειων ειναι το αντιστοιχο συστημα FAT των νεοτερων Λ.Σ. Windows και υποστηριζει σκληρους δισκους και μεγεθος αρχειων πολυ μεγαλυτερο απο πριν


71. Τί είναι ανάκτηση πληροφοριών και πόσα είδη υπάρχουν;

Η ανάκτηση πληροφοριών ή ανάκτηση πληροφορίας είναι το επιστημονικό πεδίο της πληροφορικής που μελετά την αποδοτική αναζήτηση πληροφοριών και κάθε τύπου δεδομένων μέσα σε έγγραφα και μεταδεδομένα σχετικά με έγγραφα, όπως επίσης και με την αναζήτηση σε βάσεις δεδομένων και στον Παγκόσμιο Ιστό (WWW). Μία εννοιολογική σύγχυση και μία πολύ εκτενής επικάλυψη υφίστανται στη χρήση των όρων ανάκτηση δεδομένων, ανάκτηση εγγράφων, ανάκτηση πληροφοριών και ανάκτηση κειμένου. Ωστόσο, καθένας από αυτούς τους όρους έχει τη δική του θεωρία και τις δικές του τεχνολογίες. Η ανάκτηση πληροφοριών στηρίζεται στη θεωρία των βάσεων δεδομένων, σε κατάλληλα υπολογιστικά συστήματα και σε μαθηματικές μεθόδους της τεχνητής νοημοσύνης, ενώ εφαρμόζεται στην επιστήμη πληροφόρησης και στον Παγκόσμιο Ιστό (μηχανές αναζήτησης). Υπάρχουν διάφορα μοντέλα ανάκτησης πληροφοριών, τα πιο σημαντικά από αυτά είναι τα πιθανοτικά μοντέλα, τα μοντέλα ανεστραμμένο αρχείου και τα Boolean μοντέλα. 

Ανάκτηση Πληροφορίας 2015

Η Ανάκτηση Πληροφορίας (Information Retrieval) είναι η επιστημονική περιοχή που μελετά τα προβλήματα που σχετίζονται με την αναπαράσταση, την οργάνωση και την επεξεργασία στοιχείων πληροφορίας, με στόχο την αποτελεσματική και αποδοτική πρόσβαση των χρηστών σε αυτά. Αν και η γνωστική περιοχή της Ανάκτησης Πληροφορίας ξεκίνησε με τη μελέτη εγγράφων κειμένου (text), στη συνέχεια επεκτάθηκε και στη μελέτη άλλων τύπων δεδομένων, κάτι που επιβλήθηκε από τις ανάγκες των σύγχρονων εφαρμογών. Έτσι, σήμερα μπορούμε να χρησιμοποιούμε μεθόδους ανάκτησης για την πρόσβαση σε πολυμεσικά δεδομένα (όπως: εικόνα, ήχο, βίντεο) καθώς και σε δεδομένα διαθέσιμα μέσω του παγκόσμιου ιστού (world wide web). Λόγω της ποικιλομορφίας των τύπων δεδομένων στα οποία μπορεί να έχει ταυτόχρονα πρόσβαση ο χρήστης, θεωρούμε στη συνέχεια ότι η κάθε είδους πληροφορία είναι γενικώς αποθηκευμένη με τη μορφή εγγράφων (documents). Θα θεωρήσουμε ότι ο όρος έγγραφο είναι ισοδύναμος με τον όρο έγγραφο κειμένου (text document). Ο ενδιαφερόμενος αναγνώστης μπορεί να ανατρέξει στη διεθνή βιβλιογραφία σχετικά με την ανάκτηση άλλων τύπων δεδομένων, όπως εικόνα, ήχο και βίντεο.

Ανάκτηση Πληροφορίας

Ορισμός Ανάκτηση Πληροφορίας (Information Retrieval) - (IR) • είναι η εύρεση υλικού κυρίως εγγράφων (documents) αδόμητης φύσης(*) (unstructured) που συνήθως έχουν τη μορφή κειμένου (text) • το οποίο ικανοποιεί μια ανάγκη πληροφόρησης (information need) • από μεγάλες συλλογές (συνήθως αποθηκευμένες σε υπολογιστές)

Μοντέλα Ανάκτησης Ι (Retrieval Models) 2007

Ανάκτηση Δεδομένων (Information Retrieval)

Ανάκτηση πληροφορίας σημειώσεις διαλέξεων


72. Τι είναι ένα κατακερματισμένο αρχείο και τι δεικτοδοτούμενο; Αναφέρατε τι γίνεται με τις εγγραφές των αρχείων σε κάθε μία από τις παραπάνω κατηγορίες.

Τα κατακερματισμένα αρχεία (hash files) είναι μια αριθμητική αναπαράσταση δεδομένων και δεν είναι εύκολο για τον άνθρωπο να ερμηνεύσει. Ένα κατακερματισμένo αρχείo είναι ένα αρχείο που έχει μετατραπεί σε αριθμητική συμβολοσειρά με μαθηματικό αλγόριθμο. Αυτά τα δεδομένα μπορούν να γίνουν κατανοητά μόνο αφού έχουν αποκρυπτογραφηθεί με συγκεκριμένο κλειδί κατακερματισμού. Η διαδικασία του hashing είναι η μαθηματική μετατροπή μιας αλυσίδας χαρακτήρων σε μια μικρότερη τιμή που συνήθως ονομάζεται κλειδί κατακερματισμού. Αυτή η νέα τιμή αντιπροσωπεύει την αρχική συμβολοσειρά χαρακτήρων μετά την κρυπτογράφηση της. Το Hashing χρησιμοποιείται συχνά σε βάσεις δεδομένων ως μέθοδος δημιουργίας ενός ευρετηρίου. Επειδή οι hashed τιμές είναι μικρότερες από τις αριθμοσειρές του αρχείου, η βάση δεδομένων μπορεί να εκτελεί ταχύτερα τις λειτουργί δεδομένων μπορεί να εκτελεί ταχύτερα τις λειτουργίες ανάγνωσης και γραφής. ς ανάγνωσης και γραφής. Το δεικτοδοτούμενο αρχείο είναι ένα αρχείο δεδομένων με συγκεκριμένους δείκτες που επιτρέπουν την εύκολη και γρήγορη τυχαία πρόσβαση σε οποιαδήποτε εγγραφή του αρχείου δεδομένου πάντα ενός συγκεκριμένου κλειδιού-δείκτη. Το κλειδί πρέπει να είναι τέτοιο ώστε να αναγνωρίζει μονοσήμαντα μια εγγραφή. Εάν υπάρχουν περισσότεροι υπάρχουν περισσότεροι από ένα από ένα δείκτη, οι υπόλοιποι δείκτη, οι υπόλοιποι ονομάζονται εναλλακτικοί δείκτ ονομάζονται εναλλακτικοί δείκτες. Οι εν ες. Οι εν λόγω δείκτες δημιουργούνται μαζί με το αρχεί λόγω δείκτες δημιουργούνται μαζί με το αρχείο και δ ο και διατηρούνται από το σύστημα

Κατακερματισμένα αρχεία (Hashed files)

Κατακερματισμένα Αρχεία

Κατακερματισμός (hashing) είναι μία τεχνική που εντοπίζει μια εγγραφή ενός αρχείου απευθείας από το κλειδί της αντιστοιχίζοντας το με τη διεύθυνση της εγγραφής μέσω κάποιας συνάρτησης.  Το αρχείο που εφαρμόζει τη μέθοδο κατακερματισμού λέγεται κατακερματισμένο αρχείο.  Η συνάρτηση που καθορίζει τη διεύθυνση της εγγραφής από το κλειδί της λέγεται συνάρτηση κατακερματισμού.  Δεν απαιτείται ευρετήριο - με αποτέλεσμα η μέθοδος να είναι πιο αποτελεσματική από αυτήν που χρησιμοποιεί ευρετήριο αντί για συνάρτηση.

Στα κατακερματισμένα αρχεία δεν υπάρχει ευρετήριο

Τον ρόλο του ευρετηρίου τον αναλαμβάνει μια συνάρτηση που δέχεται ένα κλειδί και το αντιστοιχεί σε μια διεύθυνση

Ευρετηριασμένα αρχεία (indexed files)

 Ένα ευρετηριασμένο αρχείο αποτελείται από ένα αρχείο δεδομένων και ένα ευρετήριο

 Το ευρετήριο είναι ένα μικρό αρχείο με δύο πεδία: το κλειδί της εγγραφής και την αντίστοιχη διεύθυνσή της

 Το αρχείο δεδομένων είναι ένα ακολουθιακό αρχείο που περιέχει τις εγγραφές

 Προσπέλαση

 Φορτώνεται στην μνήμη όλο το αρχείο ευρετήριο

 Ερευνώνται οι εγγραφές του ευρετηρίου με έναν αποδοτικό αλγόριθμο αναζήτησης

 Ανακτάται η διεύθυνση της εγγραφής

 Χρησιμοποιείται η διεύθυνση για να ανακτηθεί η κατάλληλη εγγραφή δεδομένων

Κατακερματισμός και αποκατακερματισμός (fragmentation and defragmentation)


73. Πρέπει να ανακτήσετε το αρχείο mad.ben, σε ένα υπολογιστή με Λ/Σ Linux. Έχει κρατηθεί αντίγραφο ασφαλείας του στο αρχείο Βackup.tar. Με τη χρήση ποιάς/ποιών εντολής/ών θα το κάνετε;

Η εντολή που πρέπει να χρησιμοποιηθεί είναι tar -xf Backup.tar - C / mad.ben 

...# tar -xf Backup.tar //αποσυμπιέζει το αρχειο backup 

# find / -name mad.ben // βρίσκει το αρχειο mad

Χρήση λειτουργικού Unix/Linux εκπαιδευτικές σημειώσεις

Ανάκτηση Ανοικτών Αρχείων στο Linux

Το σημαντικότερο που πρέπει να θυμόμαστε από αυτό το άρθρο είναι ότι το Linux δεν σβήνει το inode ενός αρχείου όσο το αρχείο χρησιμοποιείται (όσο δηλαδή υπάρχουν file descriptors που δείχνουν σε αυτό). Το μόνο που σβήνεται άμεσα όταν γράψουμε rm (ή unlink() μέσα από κώδικα C) είναι το directory entry που αντιστοιχεί σε αυτό το inode. Παρεμπιπτόντως, αυτός είναι και ο λόγος που μπορούμε να αναβαθμίσουμε το μεγαλύτερο μέρος μιας διανομής Linux χωρίς reboot. Οι υπάρχουσες διεργασίες συνεχίζουν να χρησιμοποιούν τις παλιές βιβλιοθήκες παρόλο που αυτές είναι θεωρητικά "σβησμένες" από το δίσκο, μέχρι να ολοκληρωθεί η εκτέλεσή τους.


74. Ποίος είναι ο πιο εύκολος τρόπος να εισάγετε μία λίστα εντολών από τη γραμμή εντολών στα Linux;

Ανοίγουμε ένα παράθυρο Tερματικού (terminal). Αν έχουμε Ubuntu, θα το βρούμε στο μενού Εφαρμογές > Βοηθήματα. Εναλλακτικά, στο γραφικό περιβάλλον Gnome, μπορούμε να τρέξουμε το Tερματικό πατώντας Alt+F2 και γράφοντας: gnome-terminal.

ελληνικό φόρουμ για το Linux 

Eισαγωγή στο Linux Ένας πρακτικός οδηγός


75. Τί είναι το partial backup στα Linux;

Στο partial Backup αντί να αντιγράφει ολόκληρα αρχεία, μπορεί κανείς να περιορίσει το αντίγραφο ασφαλείας μόνο σε μπλοκ ή bytes μέσα σε ένα αρχείο που έχει αλλάξει σε μια δεδομένη χρονική περίοδο. Αυτή η τεχνική μπορεί να χρησιμοποιήσει σημαντικά λιγότερο χώρο αποθήκευσης στο μέσο δημιουργίας αντιγράφων ασφαλείας, αλλά απαιτεί υψηλό επίπεδο πολυπλοκότητας για την ανασύσταση των αρχείων σε μια περίπτωση αποκατάστασης (recovery). 

A partial backup is any operating system backup short of a full backup, taken while the database is open or shut down.

Different types of backup in linux. Full backup means backing up everything. Incremental backup means backing up everything that has changed since last full backup. Differential seems to be another name for incremental.


76. Πόσα μέρη (partitions) χρειάζεται για να εγκαταστήσετε τα Linux; Ποια θα είναι αυτά και τί θα εγκατασταθεί στο κάθε ένα από αυτά;

Χρειάζονται τουλάχιστον δύο partitions το primary partition (/) και τουλάχιστον όσο είναι τουλάχιστον όσο είναι η μνήμη RAM για το swap partition. Το primary partition είναι υπεύθυνο για την εκκίνηση (boot) του λειτουργικού συστήματος και την ομαλή του λειτουργία, δεδομένου ότι εκεί είναι αποθηκευμένα τα βασικά του αρχεία (root directory). Το swap partition λειτουργεί κυρίως σε περίπτωση υπερχείλισης στη μνήμη (RAM). Εάν η κεντρική μνήμη γεμίσει εντελώς, τυχόν πρόσθετες εφαρμογές θα εκκινήσουν από το SWAP partition και όχι από τη μνήμη. Αυτό ακούγεται σαν ένας εύκολος τρόπος για να αυξήσει κάποιος το ποσό της χρησιμοποιήσιμης μνήμης χωρίς να έχει περισσότερη μνήμη RAM, αλλά αυτό δεν συμβαίνει. Η RAM είναι το ιδανικό υλικό για μνήμη επειδή είναι εξαιρετικά γρήγορο, σε αντίθεση με τους σκληρούς δίσκους οι οποίοι, είναι σχετικά αργοί. 

Εγκατάσταση Linux με Ξεχωριστά Partitions

Linux για αρχάριους/Κατατμήσεις (Partitions)

Υπάρχουν τριών ειδών κατατμήσεων (partitions):

  • Πρωτεύουσες κατατμήσεις (Primary partitions)
  • Εκτεταμένες κατατμήσεις (Extended partitions). Οι συγκεκριμένες είναι τυπικά και αυτές primary partition, αλλά χρησιμοποιούνται για ειδικό σκοπό και για αυτό τα διαχωρίζουμε.
  • Λογικές κατατμήσεις (Logical partitions)

Αυτά που χρησιμοποιούμε συνήθως είναι τα primary partitions, τα οποία όμως έχουν τον εξής περιορισμό:κάθε σκληρός δίσκος μπορεί να έχει μέχρι τέσσερα primary partitions.

Σε περίπτωση που θέλουμε να δημιουργήσουμε περισσότερα από τέσσερα partitions τότε σημειώνουμε το ένα από τα primary partitions ως extended. Η δήλωση αυτή θα πρέπει να γίνει κατά τη δημιουργία του partition καθώς δε μπορεί να γίνει αλλαγή ενός primary partition σε extended μετά την δημιουργία του.

Κάθε extended partition λειτουργεί σαν ένας εικονικός σκληρός δίσκος, ο οποίος λειτουργεί αυτόνομα από τα υπόλοιπα partitions και τον οποίο μπορούμε να χωρίσουμε περαιτέρω σε όσα partitions θέλουμε. Τα partitions που «μπαίνουν» μέσα σε ένα extended partition ονομάζονται logical και δεν υπάρχει κανένας περιορισμός στον αριθμό τους, απλώς η συνολική τους χωρητικότητα θα πρέπει να είναι ίση ή μικρότερη από τη χωρητικότητα του extended partition. Έτσι λοιπόν, αν χρειαζόμαστε να χωρίσουμε το σκληρό μας δίσκο σε πχ εφτά τμήματα τότε θα πρέπει να δημιουργήσουμε τρία primary και ένα extended partition, το οποίο θα περιέχει τα υπόλοιπα τέσσερα (logical) partitions που χρειαζόμαστε.


77. Τι σημαίνει παροχέτευση (spooling) και ποια τα πλεονεκτήματα αυτής της τεχνικής στα Λειτουργικά Συστήματα;

 Όταν μια διεργασία εκτελείται από τον δίσκο και γράφει σε αυτόν (και όχι απευθείας στις συσκευές E/E). Ομοίως, όταν κάτι πρέπει να τυπωθεί στον εκτυπωτή τοποθετείται πρώτα στο δίσκο και από εκεί στέλνεται στον εκτυπωτή. Αυτή η τεχνική ονομάζεται spooling (Simultaneous Peripheral Operation On-Line). Ο δίσκος χρησιμοποιείται ως ένας τεράστιος buffer. Οι λειτουργίες Ε/Ε μιας διεργασίας μπορεί να εκτελείται ενώ η cpu χρησιμοποιείται για την εκτέλεση μιας άλλης διεργασίας, το οποίο συνεπάγεται πιο αποδοτική χρήση της cpu και των συσκευών Ε/Ε. Η τεχνική αυτή επιτρέπει επίσης την υλοποίηση αποδοτικών και καθιερωμένων (σήμερα) τεχνικών, όπως τη χρονοδρομολόγηση διεργασιών. Ένα σύνολο (pool) διεργασιών προς εκτέλεση είναι αποθηκευμένες στο δίσκο. Το σύστημα μπορεί να επιλέξει ποια θα εκτελέσει στη συνέχεια.

Spooling = είναι η τεχνική βάση της οποίας σε ένα δίκτυο δεδομένα που κυκλοφορούν με διαφορετικούς ρυθμούς μετάδοσης, εξυπηρετούνται με μια σειρά προτεραιότητας. Μια απλή εφαρμογή του spooling είναι στις ουρές εξυπηρέτησης εκτυπώσεων

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

Παροχέτευση (spooling) ● Η παροχέτευση είναι µία τεχνική για την αποδοχή της πρόσβασης πολλών διεργασιών σε έναν κοινό πόρο. ● Αναβάλει την αιτούµενη διεργασία για µία προσφορότερη στιγµή. - Κάνει ένα µη κοινόχρηστο πόρο να φαίνεται κοινόχρηστος. ●Αγνοεί τις τεχνικές του αποκλεισµού

Επισκόπηση Λ.Σ.

Παροχέτευση (Spooling): Οι εργασίες προς εκτέλεση φορτώνονται στη δευτερεύουσα μνήμη. O επόπτης επιλέγει την επόμενη εργασία από την ουρά των αποθηκευμένων εργασιών, την μεταφέρει στην κύρια μνήμη και αρχίζει την εκτέλεσή της. Η σειρά εκτέλεσης δεν είναι απαραίτητα η σειρά φόρτωσης στη δευτερεύουσα μνήμη (δρομολόγηση δέσμης εργασιών). Μόλις τελειώνει η εκτέλεση της τρέχουσας εργασίας, αποθηκεύει τα αποτελέσματά της και φορτώνει την επόμενη εργασία. Κάθε χρονική στιγμή, υπάρχει μόνο μια εργασία που είναι φορτωμένη και εκτελείται από το σύστημα.

Διαχείριση E/E (I/O management)

Πλεονεκτήματα SPOOLing ƒ αποφυγή καθυστερήσεων λόγω αργών συσκευών ε/ε ƒ αποφυγή συναγωνισμού όταν υπάρχουν λιγότερες αφιερωμένες συσκευές από όσες απαιτούν οι διεργασίες ƒ ομοιόμορφη κατανομή του φόρτου στις αφιερωμένες συσκευές ƒ συνέχιση εκτέλεσης διεργασιών όταν οι συσκευές είναι υπό επιδιόρθωση ή αποσυνδεμένες ƒ ελάττωση πιθανότητας να συμβεί αδιέξοδο ƒ ευκολότερη λήψη πολλών αντιγράφων του ίδιου αρχείου ƒ ομαδοποίηση των πληροφοριών ƒ οι δίσκοι χρησιμοποιούνται πιο αποτελεσματικά Δίνεται η εντύπωση στους χρήστες ότι καθένας διαθέτει την δική του (εικονική) συσκευή


78. Αναφέρετε τί γνωρίζετε για την προστασία φακέλων σε σύστημα UNIX. Πόσες κατηγορίες χρηστών υπάρχουν, πόσα ψηφία λαμβάνει κάθε πεδίο και τι σημαίνει το κάθε ψηφίο ανάλογα με την τιμή που λαμβάνει;

Η φιλοσοφία της διαχείρισης δικαιωμάτων αρχείων και φακέλων σε σύστημα Unix διαχωρίζει τους χρήστες σε τρεις ομάδες: • Ιδιοκτήτης (user ή owner): πρόκειται για το χρήστη που δημιούργησε το αρχείο (εκτός αν έχει γίνει αλλαγή ιδιοκτήτη). • Ομάδα (group): πρόκειται για τους χρήστες που ανήκουν στην ίδια ομάδα με τον ιδιοκτήτη. Ο κάθε χρήστης μπορεί να ανήκει σε περισσότερες από μία ομάδες. ότερες από μία ομάδες. • Άλλοι (others): όλοι οι υπόλοιποι χρήστες.

Tα είδη των δικαιωμάτων είναι: • Ανάγνωση: αυτό το δικαίωμα δίνει στο χρήστη που το έχει τη δυνατότητα να εμφανίσει τα περιεχόμενα του αρχείου ή του φακέλου. Επίσης, δίνει το δικαίωμα αντιγραφής σε άλλη τοποθεσία. • Εγγραφή: οι χρήστες που έχουν δικαιώματα εγγραφής μπορούν να τροποποιήσουν τα περιεχόμενα του αρχείου ή του φακέλου (π.χ. να δημιουργήσουν ένα νέο αρχείο μέσα στο φάκελο). Επίσης, το δικαίωμα εγγραφής επιτρέπει τις λειτουργίες της μετακίνησης, της διαγραφής και της μετονομασίας. • Εκτέλεση: αφορά εκτελέσιμα αρχεία (για παράδειγμα αρχεία που αντιστοιχούν σε εντολές). Φυσικά, κάθε χρήστης μπορεί να αλλάξει τα δικαιώματα μόνο των αρχείων των οποίων είναι ιδιοκτήτης, με την εξαίρεση του χρήστη root ο οποίος είναι ο ανώτερος χρήστης του συστήματος και έχει δικαίωμα να τροποποιήσει τα πάντα. 

Δικαιώματα χρήσης αρχείων - chmod

Το Unix υποστηρίζει ένα σύστημα δικαιωμάτων για την προστασία των αρχείων. Τα δικαιώματα ουσιαστικά είναι ο μηχανισμός με τον οποίο το Unix καθορίζει τι μπορεί να κάνει ο οποιοσδήποτε σε ένα αρχείο. 

Όταν λέμε «ο οποιοσδήποτε», εννοούμε τρεις κατηγορίες χρηστών: 

1. ο ίδιος ο χρήστης 

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

3. οι χρήστες των υπολοίπων ομάδων 

Τα δικαιώματα που υποστηρίζονται είναι τριών ειδών: 

1. ανάγνωσης (read). Αν σε ένα αρχείο έχει παραχωρηθεί αυτό το δικαίωμα, τότε η αντίστοιχη κατηγορία μπορεί να δει τα περιεχόμενα του αρχείο ΜΟΝΟ, αλλά δεν μπορεί να τα αλλάξει. 

2. εγγραφής (write). Η παραχώρηση αυτού του δικαιώματος σημαίνει ότι η αντίστοιχη κατηγορία μπορεί να τροποποιήσει τα δεδομένα. 

3. εκτέλεσης (execute). Δικαίωμα εκτέλεσης σημαίνει ότι το αρχείο μπορεί να εκτελεστεί, αν είναι εκτελέσιμο. 

Στην περίπτωση καταλόγων η παραχώρηση του δικαιώματος αυτού είναι απαραίτητη αν θέλουμε να επιτρέπουμε σε κάποιον να μπορεί να εισέλθει στον κατάλογο (με την εντολή cd). 

Για κάθε μία από τις προαναφερθείσες κατηγορίες χρηστών θα πρέπει να ορίζεται χωριστά τι δικαιώματα θα έχουν επί ενός αρχείου. Όπως είναι αυτονόητο, τα δικαιώματα τους θα είναι συνδυασμός των παραπάνω. 

 Η εντολή chmod Το βοήθημα που διαθέτει το Unix για τον προσδιορισμό δικαιωμάτων είναι η εντολή chmod. Η λειτουργία της δίνεται στις παρακάτω εικόνες 


79. Μια εκτεταμένη λίστα πληροφοριών αρχείων - καταλόγων θα άρχιζε από drwxrwxrwx με πιθανότητα παύλας σε μερικούς από τους παραπάνω χαρακτήρες. Αναλύστε τι σημαίνουν.

Η λίστα θα εμφανιζόταν πιθανότατα κάπως έτσι d-rwxrwxrwx. Ουσιαστικά μας υποδεικνύει ότι σε αυτόν τον κατάλογο και οι τρεις ομάδες χρηστών χρηστών έχουν και τα τρία είδη δικαιωμάτων. Δηλαδή όλοι μπορούν να κάνουν Ανάγνωση(r) - Εγγραφή(w) - Εκτέλεση(x) σε αυτόν το φάκελο ή αρχείο.

Drwx-owner 

Rwx-owner group 

Rwx-users 

Αν έχει παύλα στην αρχή δεν αυτό το δικαίωμα

Η πρώτη στήλη αποτελείται από 10 χαρακτήρες. 

Ο πρώτος χαρακτήρας μας πληροφορεί για το αν πρόκειται για αρχείο ή κατάλογο (ένα - σημαίνει αρχείο κι ένα d σημαίνει κατάλογος). 

Οι επόμενοι 9 χαρακτήρες δείχνουν τα δικαιώματα προσπέλασης (permissions) του αρχείου ή καταλόγου. 

Τα δικαιώματα αυτά μπορεί να είναι: 

α) δικαίωμα ανάγνωσης (read - συμβολίζεται με το γράμμα "r"), 

β) δικαίωμα εγγραφής (write - συμβολίζεται με το γράμμα "w"), 

γ) δικαίωμα εκτέλεσης (execute - συμβολίζεται με "x"). 

Οι 3 πρώτοι από τους 9 χαρακτήρες δείχνουν τα δικαιώματα του χρήστη που είναι ιδιοκτήτης του αρχείου ή καταλόγου και ο οποίος φαίνεται στην τρίτη στήλη. 

Αν π.χ. έχει όλα τα δικαιώματα, οι χαρακτήρες αυτοί θα είναι "rwx", ενώ αν έχει μόνον δικαίωμα ανάγνωσης και εγγραφής, θα είναι "rw-". 

Οι επόμενοι 3 χαρακτήρες δείχνουν τα δικαιώματα των χρηστών που ανήκουν στο group που εμφανίζεται στην τέταρτη στήλη. 

Οι τελευταίοι 3 χαρακτήρες δείχνουν τα δικαιώματα των υπόλοιπων χρηστών (others)


80. Ποιο ρόλο επιτελεί το Λειτουργικό Σύστημα σε έναν υπολογιστή; Τι θα γινόταν αν δεν υπήρχε αυτό;

Ως λειτουργικό σύστημα (ΛΣ) χαρακτηρίζεται μία συλλογή βασικών προγραμμάτων, η οποία ελέγχει τη λειτουργία του υπολογιστή συνολικά και χρησιμοποιείται ως υπόβαθρο για την εκτέλεση όλων των υπόλοιπων προγραμμάτων, τη διαχείριση των περιφερειακών συσκευών και την εξασφάλιση της επικοινωνίας μεταξύ χρήστη και υπολογιστή. Στην πράξη πρόκειται για ένα επίπεδο λογισμικού που μεσολαβεί μεταξύ του υλικού και των εκτελούμενων προγραμμάτων σε έναν ηλεκτρονικό υπολογιστή. Αποτελείται από ένα σύνολο μηχανισμών μέσω των οποίων επιτυγχάνεται αυτόματη διαχείριση των πόρων ενός υπολογιστή και ελεγχόμενη κατανομή τους στις εκτελούμενες εφαρμογές, έτσι ώστε οι τελευταίες να είναι σε θέση να προσπελάσουν εύκολα τους πόρους και τις συσκευές του συστήματος χωρίς να χρειάζεται να γνωρίζουν με ακρίβεια τη δομή του υποκείμενου υλικού, αλλά και ώστε πολλαπλές εφαρμογές να μπορούν να εκτελούνται ταυτόχρονα χωρίς να έρχονται σε διένεξη μεταξύ τους ή με τον υπολογιστή. Αν δεν υπήρχε το λειτουργικό σύστημα τότε θα έπρεπε ο χρήστης, κάθε φορά που θέλει να χρησιμοποιήσει μια περιφερειακή συσκευή ή έναν πόρο ενός δικτύου ή ακόμα και ένα πρόγραμμα, να φορτώνει τα αντίστοιχα προγράμματα μόνος του στη μνήμη του υπολογιστή ή να υλοποιεί υλοποιεί προγραμματιστικά προγραμματιστικά τις κατάλληλες κατάλληλες διασυνδέσεις. διασυνδέσεις. Κάτι τέτοιο συνέβαινε συνέβαινε τη δεκαετία του '50 στους πρώτους υπολογιστές, όμως στις μέρες μας με την πληθώρα συσκευών και προγραμμάτων που χρησιμοποιούμε είναι κάτι ακατόρθωτο. 

....Ένα λειτουργικό σύστημα είναι ένα πρόγραμμα το οποίο ελέγχει την εκτέλεση των προγραμμάτων-εφαρμογών και ενεργεί ως ενδιάμεσο μεταξύ των εφαρμογών και του υλικού μέρους του υπολογιστή. Αν δεν υπήρχε δεν θα μπορουσε να εκτελεί προγράμματα και διεργασίες.,Διαχειρίζεται μονάδες Ι/Ο.

Αντιμετωπίζει κι ελέγχει διαδικασίες.Αναγνωρίζει κι εκτελεί διαταγές του χρήστη.Μεταφράζει προγράμματα από γλώσσα υψηλού επιπέδου, σε γλώσσα μηχανής.


81. Να αναφέρετε ονομαστικά τα κυριότερα μέρη ενός Λειτουργικού Συστήματος (ΛΣ).Τι γνωρίζετε για τον πυρήνα και το ρόλο του σε ένα ΛΣ;

Ένα Λειτουργικό Σύστημα αποτελείται από τα εξής στοιχεία: Α) Τον Πυρήνα (Kernel) Εάν το λειτουργικό σύστημα είναι ένας ενδιάμεσος μεταξύ του χρήστη και του υλικού, ο πυρήνας (Kernel) είναι το μέρος εκείνο που βρίσκεται πλησιέστερα στο υλικό. Επιτελεί δηλαδή τον ρόλο του ενδιάμεσου «κρίκου» μεταξύ του υλικού και του υπόλοιπου λειτουργικού συστήματος. Επειδή εξαρτάται από το υλικό, ένα μέρος του έχει γραφεί στη γλώσσα μηχανής που κατανοεί η ΚΜΕ του υπολογιστή. Είναι το πρόγραμμα που φορτώνεται πρώτο, όταν ξεκινάει η λειτουργία του υπολογιστικού συστήματος. Επίσης, με ειδικούς μηχανισμούς (σηματοφορείς, ουρές μηνυμάτων) ρυθμίζει την επικοινωνία και το συγχρονισμό μεταξύ των διεργασιών, τις οποίες και διανέμει στον ή στους κατάλληλους επεξεργαστές. Άλλωστε ο πυρήνας ονομάζεται και «ελεγκτής της κυκλοφορίας». Για παράδειγμα, αν δύο διεργασίες πρέπει να χρησιμοποιήσουν τον ίδιο πόρο -π.χ. να διαβάσουν ένα κοινό αρχείο- θα πρέπει να συντονίσουν την εκτέλεσή τους για να αποτραπεί εμπλοκή του συστήματος. H διαχείριση και επικοινωνία των διεργασιών είναι απαραίτητη, ώστε όλα τα προγράμματα να εκτελούνται και να τρέχουν τρέχουν «δίκαια». «δίκαια». Είναι ανεπιθύμητο ανεπιθύμητο το πρόγραμμα πρόγραμμα ενός χρήστη να εκτελείται εκτελείται με τρόπο που να παραμελούνται τα προγράμματα των άλλων χρηστών, οι οποίοι θα πρέπει να περιμένουν. Αντίθετα, κάποια προγράμματα -όπως π.χ. ο έλεγχος επικοινωνιών δικτύουαπαιτείται να εκτελούνται εκτελούνται συχνότερα συχνότερα ή κατά προτεραιότητα προτεραιότητα από άλλα. Τα ζητήματα Τα ζητήματα αυτά τα αυτά τα αντιμετωπίζει ο πυρήνας του λειτουργικού. Β) Το Σύστημα Αρχείων (File System) Γ) Τον Διερμηνευτή Εντολών Διερμηνευτή Εντολών (Command Interperter (Command Interperter) ή Φλοιό (Shell) Οι υπηρεσίες που προσφέρουν αυτά τα στοιχεία είναι: • Έλεγχος και συντονισμός των διαδικασιών εισόδου, εξόδου και επεξεργασίας • Διαχειρίζονται την ΚΜΕ και τη μνήμη του Υπολογιστή • Ενεργοποιούν διάφορα προγράμματα (π.χ. τους μεταφραστές, προγράμματα οδήγησης) • Διαμοιράζουν τους πόρους (υλικό και λογισμικό) αν αυτοί χρησιμοποιούνται από διάφορους υπολογιστές (π.χ. Printer) • Δημιουργούν ένα φιλικό περιβάλλον επικοινωνίας ανάμεσα στο χρήστη και τον Η/Υ

Ένα Λ.Σ. αποτελείται από τα παρακάτω τμήματα: 

α) Τον Πυρήνα (Kernel) Είναι το κυριότερο τμήμα ενός Λ.Σ. Το τμήμα αυτό φορτώνεται πρώτο στην κύρια μνήμη και εκτελείται συνέχεια καθ'ολη τη διάρκεια λειτουργίας του Η/Υ. Ο Πυρήνας είναι ο κύριος υπεύθυνος για τη συνεργασία του λογισμικού με το υλικό του Η/Υ. 

β) Το Σύστημα Αρχείων : Είναι το τμήμα του Λ.Σ. που διαχειρίζεται τα αρχεία (ονοματοδοσία, καταχώρηση, ανάκτηση) και φροντίζει επίσης τη διάθεση τους στους χρήστες. 

γ) Το Διερμηνευτή Εντολών(Command Interpreter) ή Φλοιό(shell). Είναι το τμήμα που αναλαμβάνει να δέχεται και να δίνει στο σύστημα του Η/Υ τις απαιτήσεις (εντολές) του χρήστη, καθώς επίσης μεταφέρει στο χρήστη μηνύματα από το σύστημα. Το τμήμα αυτό δημιουργεί το περιβάλλον επικοινωνίας χρήστη-υπολογιστή

Μέρη Λειτουργικού Συστήματος

Ποια είναι η δομή ενός λειτουργικού συστήματος ;

Ένα ΛΣ αποτελείται από τα παρακάτω τμήματα:

α) Τον Πυρήνα (Kernel) : Είναι το κυριότερο τμήμα ενός ΛΣ. Το τμήμα αυτό φορτώνεται πρώτο στην κύρια μνήμη και εκτελείται συνεχώς σε όλη τη διάρκεια λειτουργίας του υπολογιστή. Τα προγράμματα εφαρμογών επικοινωνούν με αυτό μέσα από ένα καθορισμένο σύνολο κλήσεων. Ο πυρήνας είναι ο κύριος υπεύθυνος για τη συνεργασία του λογισμικού με το υλικό του υπολογιστή,

β) Τη διεπαφή χρήστη (user interface) : αναλαμβάνει να δέχεται και να δίνει στο σύστημα του υπολογιστή τα αιτήματα (εντολές) του χρήστη και επίσης να μεταφέρει στο χρήστη μηνύματα από το σύστημα. Το τμήμα αυτό δημιουργεί το περιβάλλον επικοινωνίας χρήστη - υπολογιστή και μπορεί να υλοποιηθεί με περιβάλλον γραμμής εντολών ή με γραφικό περιβάλλον ή και με τους δύο τρόπους.

γ) Το Σύστημα Αρχείων (File System) : διαχειρίζεται τα αρχεία (ονοματοδοσία, καταχώριση, ανάκτηση κ.λπ.) και φροντίζει επίσης για τη διάθεσή τους στους χρήστες,

δ) Τα βοηθητικά προγράμματα (Utilities) : βοηθούν στη διαχείριση του συστήματος.


82. Αναλύστε τι είναι το FTP, τι το HTTP και ποια η χρήση τους στο Διαδίκτυο.

Ο File Transfer Protocol (FTP), ( Πρωτόκολλο  Αρχείων) είναι ένα ευρέως χρησιμοποιούμενο  πρωτόκολλo σε δίκτυα τα οποία υποστηρίζουν το πρωτόκολλο TCP/IP (δίκτυα όπως internet ή intranet). Ο υπολογιστής που τρέχει εφαρμογή FTP client μόλις συνδεθεί με τον server μπορεί να εκτελέσει ένα πλήθος διεργασιών όπως ανέβασμα αρχείων στον server, κατέβασμα αρχείων από τον server, μετονομασία ή διαγραφή αρχείων από τον server κ.ο.κ. Το πρωτόκολλο είναι ένα ανοιχτό πρότυπο. Είναι δυνατό κάθε υπολογιστής που είναι συνδεδεμένος σε ένα δίκτυο, να διαχειρίζεται αρχεία σε ένα άλλο υπολογιστή του δικτύου, ακόμη και εάν ο δεύτερος διαθέτει διαφορετικό διαφορετικό λειτουργικό σύστημα. Το Πρωτόκολλο Μεταφοράς Υπερκειμένου (HyperText Transfer Protocol, HTTP) είναι ένα πρωτόκολλο επικοινωνίας. Αποτελεί το κύριο πρωτόκολλο που χρησιμοποιείται  στους φυλλομετρητές του Παγκοσμίου Ιστού για να μεταφέρει δεδομένα ανάμεσα σε έναν διακομιστή (server) και έναν πελάτη (client).

Το File Transfer Protocol (FTP) είναι ένα ευρέως χρησιμοποιούμενο πρωτόκολλο σε δίκτυα τα οποία υποστηρίζουν το 

πρωτόκολλο TCP/IP (δίκτυα όπως internet ή intranet). Ο υπολογιστής που τρέχει εφαρμογή FTP client μόλις συνδεθεί με τον server μπορεί να εκτελέσει ένα πλήθος διεργασιών όπως ανέβασμα αρχείων στον server, κατέβασμα αρχείων από τον server, μετονομασία ή διαγραφή αρχείων από τον server κ.ο.κ. Το πρωτόκολλο είναι ένα ανοιχτό πρότυπο. Είναι δυνατό κάθε υπολογιστής που είναι συνδεδεμένος σε ένα δίκτυο, να διαχειρίζεται αρχεία σε ένα άλλο υπολογιστή του δικτύου, ακόμη και εάν ο δεύτερος διαθέτει διαφορετικό λειτουργικό σύστημα. 

Το HyperText Transfer Protocol - HTTP είναι ένα πρωτόκολλο επικοινωνίας. Αποτελεί το κύριο πρωτόκολλο που χρησιμοποιείται στους φυλλομετρητές του Παγκοσμίου Ιστού για να μεταφέρει δεδομένα ανάμεσα σε έναν διακομιστή (server) και έναν πελάτη (client). Υποστηρίζει τη μεταφορά εκτός από κείμενο, φωτογραφιών, animation,κλπ.

 To FTP(file transfer protocol) είναι ένα πρωτόκολλο μεταφοράς αρχείων, μέσω του οποίου συνδεόμαστε σε κάποιο λογαριασμό και έχουμε τη δυνατότητα να μεταφέρουμε και να διαχειριστούμε αρχεία που βρίσκονται σε κάποιον απομακρυσμένο υπολογιστή. 

 Το Hypertext Transfer Protocol(HTTP) είναι πρωτόκολλο που χρησιμοποιείται για τη μεταφορά πληροφοριών στο World Wide Web. Μια διεύθυνση HTTP(ένα είδος Uniform Resource Locator(URL) έχει τη μορφή: https://www.edu.ellak.gr/ 


83 Να δώσετε τους ορισμούς για τα τρία είδη επικοινωνίας: απλή (simplex), αμφίδρομη μη ταυτόχρονη (half duplex) και αμφίδρομη ταυτόχρονη (full duplex). Ποιες είναι οι ομοιότητες και ποιες οι διαφορές τους;

Στη μονόδρομη μετάδοση η πληροφορία μεταφέρεται μόνο προς τη μία κατεύθυνση. Η ροή των δεδομένων είναι από τον πομπό προς το δέκτη και δεν μπορεί να αντιστραφεί. Τυπικά παραδείγματα μονόδρομης μετάδοσης είναι η αποστολή δεδομένων στον εκτυπωτή, η ραδιοφωνική εκπομπή, η τηλεοπτική εκπομπή, η αποστολή δεδομένων σε συστήματα καταγραφής (logging system) κλπ. Μη ταυτόχρονη αμφίδρομη μετάδοση (Half Duplex) Στην περίπτωση αυτή, η ροή της πληροφορίας είναι είτε προς τη μία είτε προς την άλλη κατεύθυνση, αλλά όχι ταυτόχρονα. Κάποια χρονική στιγμή t0 τα δεδομένα κινούνται από τον υπολογιστή Α προς τον υπολογιστή Β. Μια επόμενη χρονική στιγμή Γ, η ροή των δεδομένων είναι από τον υπολογιστή Β προς τον Α. Η μη ταυτόχρονη αμφίδρομη μετάδοση είναι ευρύτατα χρησιμοποιούμενη. 0 χρόνος καθυστέρησης για την αλλαγή της κατεύθυνσης ροής των δεδομένων ονομάζεται turnaround t ν δεδομένων ονομάζεται turnaround time. Αμφίδρομη μετάδοση (Full D Αμφίδρομη μετάδοση (Full Duplex) Σ' αυτή τη μορφή της επικοινωνίας η πληροφορία κινείται ταυτόχρονα και προς τις δύο κατευθύνσεις. Δηλαδή, την ίδια χρονική στιγμή ο σταθμός λαμβάνει δεδομένα και συγχρόνως εκπέμπει δεδομένα. Σε ορισμένες περιπτώσεις υπάρχουν διαφορετικά κυκλώματα λήψης και εκπομπής. Σε άλλες περιπτώσεις δημιουργούνται λογικά κανάλια (για λήψη και εκπομπή) στο ίδιο μέσο μετάδοσης. Η αμφίδρομη μετάδοση είναι ευρύτατα διαδεδομένη στην επικοινωνία υπολογιστικών συστημάτων. Φυσικά, στην αμφίδρομη μετάδοση δεν υπάρχει χρονική καθυστέρηση για αλλαγή της κατεύθυνσης ροής των δεδομένων. 

1.Μετάδοση μιας κατεύθυνσης ή μονόδρομη (Simplex)

Σε αυτή τη μετάδοση τα δεδομένα μεταφέρονται προς μία κατεύθυνση (δηλ. η φορά των δεδομένων δεν μπορεί να αντιστραφεί )πχ αποστολή data από Η/Υ σε εκτυπωτή.

Simplex

Η/Υ(πομπός) (εκτυπωτής δέκτης)

Εσωτ.modem

2.Μετάδοση διπλής εναλλακτικής κατεύθυνσης (Half Duplex)

Σε αυτή τη μετάδοση τα δεδομένα μεταφέρονται είτε προς τη μία κατεύθυνση είτε προς την άλλη. Δηλαδή στέλνει ο πομπός στον δέκτη είτε στη κατεύθυνση είτε στην άλλη.

Σε αυτή τη μετάδοση απαιτείται έλεγχος του μέσου μετάδοσης για την αποφυγή ταυτόχρονής αποστολής δεδομένων και από τους 2 σταθμούς. Η μετάδοση αυτή χρησιμοποιείται για επικοινωνία Η/Υ με τερματικό

Η/Υ Η/Υ(τερματικό)

Half Duplex

3.Ταυτόχρονη μετάδοση διπλής κατεύθυνσης (Full Duplex )

Σε αυτή τη μετάδοση τα δεδομένα μεταδίδονται ταυτόχρονα και προς τις 2 κατευθύνσεις Δηλ. οι 2 σταθμοί στέλνουν και λαμβάνουν τα δεδομένα ταυτόχρονα χρησιμοποιώντας 2 γραμμές. Η επικοινωνία αυτή χρησιμοποιείται για επικοινωνία Η/Υ.

H/Y H/Y 


84. Να εξηγήσετε πώς λειτουργούν οι υπηρεσίες με σύνδεση (connection oriented services) και πώς οι υπηρεσίες χωρίς σύνδεση (connectionless services). Να δώσετε από ένα αντιπροσωπευτικό παράδειγμα για τον κάθε τύπο υπηρεσίας.

Οι υπηρεσίες προσανατολισμένες στη σύνδεση, απαιτούν την αποκατάσταση της επικοινωνίας ανάμεσα στους δύο υπολογιστές, πριν την έναρξη της μετάδοσης δεδομένων. Αυτό σημαίνει πως πριν ο αποστολέας αρχίσει να στέλνει δεδομένα στον παραλήπτη, επιλέγεται και δεσμεύεται μια διαδρομή μέσα στο δίκτυο, και στη συνέχεια τα δεδομένα προς μετάδοση, φτάνουν στον παραλήπτη χρησιμοποιώντας αυτή τη διαδρομή. Με άλλα λόγια αυτό το είδος της σύνδεσης λειτουργεί ως ένας σωλήνας τον οποίο ο αποστολέας τροφοδοτεί με αντικείμενα από το ένα άκρο και ο παραλήπτης τα λαμβάνει στο άλλο άκρο. Αυτό φυσικά σημαίνει πω λαμβάνει στο άλλο άκρο. Αυτό φυσικά σημαίνει πως η σειρά παραλαβής των δεδομένων ταυτίζεται με σειρά παραλαβής των δεδομένων ταυτίζεται με τη σειρά αποστολής τους. Χαρακτηριστικό παράδειγμα είναι το τηλεφωνικό σύστημα. Από την άλλη πλευρά, στην υπηρεσία χωρίς σύνδεση, δεν λαμβάνει χώρα αποκατάσταση της επικοινωνίας ανάμεσα στους δύο υπολογιστές, αλλά το κάθε πακέτο δρομολογείται από το σύστημα ανεξάρτητα από τα άλλα πακέτα, και φέροντας πάνω του τη διεύθυνση του παραλήπτη. Αυτή η δρομολόγηση του πακέτου, γίνεται χωρίς προηγουμένως να καθοριστεί κάποια διαδρομή μέσα στο δίκτυο, όπως γίνεται στην υπηρεσία με σύνδεση. Αυτό έχει ως αποτέλεσμα ορισμένα πακέτα που φεύγουν μετά από κάποια άλλα να παραλαμβάνονται πρώτα. Στην περίπτωση αυτή ο παραλήπτης θα

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

Λογισμικό δικτύων pppt             Επικοινωνίες δεδομένων

Connection oriented services: Δημιουργείται σύνδεση πριν από τη μετάδοση των δεδομένων τα οποία τοποθετούνται στο ένα άκρο της σύνδεσης και λαμβάνονται στο άλλο άκρο της σύνδεσης με την ίδια ακριβώς σειρά που τοποθετήθηκαν. Connectionless services: Κάθα πακέτο μεταφέρει την πλήρη διεύθυνση προορισμού και δρομολογείται μέσα στο δίκτυο ανεξάρτητα από τα υπόλοιπα. 


85 Να δώσετε ορισμό της έννοιας "μεταγωγή πακέτου". Να περιγράψετε τις 2 μεθόδους προώθησης πακέτων.

Αποτελεί παραλλαγή μηνύματος. Η πληροφορία τεμαχίζεται σε περισσότερα του ενός πακέτου μετά πακέτου μετάδοσης. Εμφανίζεται με δύο παραλλαγές στην τεχνική:

1. Χρήση αυτοδύναμου πακέτου (datagram).Οι ενδιάμεσοι κόμβοι ανταλλάσουν κατάλληλα τα πακέτα που δρομολογούνται, ώστε αυτά να φτάσουν στον προορισμό τους έστω και από διαφορετικούς δρόμους. Δεν έχει αξιοπιστία (πχ. χρήση UDP πρωτοκόλλου).

2. Χρήση νοητού κυκλώματος (VC). Αποτελεί µια προδιαγραμμένη νοητή διαδρομή που ακολουθούν τα πακέτα μέσα σε ένα δίκτυο για να φτάσουν στον προ ουν στον προορισμό τους.

Η μεταγωγή πακέτου (packet switching) είναι μια τεχνική, που χρησιμοποιείται σε δίκτυα επικοινωνίας, με σκοπό να προωθηθεί μια πληροφορία από ένα πομπό σε ένα δέκτη. Στη μεταγωγή πακέτου τα προς μετάδοση μηνύματα τεμαχίζονται σε πακέτα μικρού αριθμού bytes. Τυπικό μέγιστο μήκος πακέτου είναι τα 1000 bytes. Κάθε πακέτο περιέχει τμήμα της ωφέλιμης πληροφορίας του χρήστη και επιπλέον μια διεύθυνση προορισμού (destination address) και ένα αριθμό σειράς (seqυence nυmber). Κάθε κόμβος του δικτύου, που λέγεται και κόμβος μεταγωγής πακέτου (Packet Switching Node, PSN), χρησιμοποιεί τη διεύθυνση προορισμού του πακέτου, για να αποφασίσει σε ποιον κόμβο θα το προωθήσει. Οι αριθμοί σειράς των πακέτων χρησιμοποιούνται από το σταθμό προορισμού, για να επανακατασκευάσει το αρχικό μήνυμα από τα κομμάτια που, που έχει λάβει μέσα στα πακέτα.

1. Τα προς μετάδοση μηνύματα τεμαχίζονται σε πακέτα μικρού αριθμού bytes. Μέγιστο μήκος 1000 bytes. 

 2. Κάθε πακέτο περιέχει διεύθυνση προορισμού, αριθμό σειράς. 

3. Κάθε κόμβος λέγεται κόμβος μεταγωγής πακέτου (PSN Packet Switcing Node)

 Αποθήκευση και προώθηση: Όταν τα πακέτα στέλνονται στον κόμβο και όταν ο κόμβος λάβει όλο το πακέτο, εξετάζει τη διεύθυνση προορισμού και το προωθεί σε άλλο κόμβο, αυτή η τεχνική ονομάζεται αποθήκευση και προώθηση. 

 Οι δύο μέθοδοι μεταγωγής πακέτου

Αυτοδύναμο Πακέτο Κάθε πακέτο ακολουθεί τον δικό του δρόμο. Η επιλογή του δρόμου εξαρτάται από τον αριθμό των πακέτων 

Νοητό κύκλωμα Πριν αρχίσει η ανταλλαγή επιλέγεται η καλύτερη διαδρομή. Αυτή η διαδρομή ακολουθούν όλα τα πακέτα από την έναρξη έως τον τερματισμό. Δίκτυα Hellaspac   

Τεχνολογία Δικτύων Υπολογιστών 


86. Τι είναι η τεχνική Frame Relay και ποιες ανάγκες καλύπτει;

Το Frame Relay, είναι σύγχρονη τεχνολογία γρήγορης μεταγωγής πακέτων μεταβλητού μεγέθους. Σε αυτή την τεχνολογία έχουν αφαιρεθεί αρκετές λειτουργίες ελέγχου οι οποίες δεν είναι απαραίτητες σε αξιόπιστο και ασφαλές ψηφιακό περιβάλλον. Επίσης, έχει προδιαγραφεί η διεπαφή μεταξύ τερματικής συσκευής (DTE) και δικτύου (DCE). Τα δίκτυα τεχνολογίας Frame Relay είναι αρκετά δημοφιλή γιατί εκτελούν πολύ πιο γρήγορα από άλλα συστήματα μεταγωγής πακέτου βασικές λειτουργίες προώθησης πακέτων. Αυτό συμβαίνει επειδή με τη χρήση μόνιμων νοητών κυκλωμάτων είναι τη χρήση μόνιμων νοητών κυκλωμάτων είναι εκ των προ εκ των προτέρων καθορισμένη η διαδρομή που θα ακολο τέρων καθορισμένη η διαδρομή που θα ακολουθήσουν υθήσουν τα πακέτα μιας σύνδεσης από άκρη σε άκρη. Δεν είναι ανάγκη να υπάρχουν συσκευές που να τ ανάγκη να υπάρχουν συσκευές που να τεμαχίζουν και εμαχίζουν και να επανασυναρμολογο επανασυναρμολογούν τα πακέτα ή να απ ύν τα πακέτα ή να αποφασίζουν για την καλύτερη διαδ οφασίζουν για την καλύτερη διαδρομή. Επίσης, τα δίκ ρομή. Επίσης, τα δίκτυα Fra τυα Frame Relay me Relay είναι δυνατό να παρέχουν στους χρήστες τους εύρος ζώνης ανάλογα με τις ανάγκες τους. Υποστηρίζουν ταχύτητες από 64 Kbps έως 2,048 Mbps. Η τιμολόγηση της χρήσης του δικτύου Frame Relay εξαρτάται από το επιθυμητό εύρος ζώνης. Για την πρόσβαση τοπικού δικτύου σε δίκτυο Frame Relay απαιτείται μισθωμένη ψηφιακή γραμμή για τη σύνδεση με τον πλησιέστερο κόμβο, δρομολογητής με κάρτα Frame Relay και συσκευή CSU/DSU για τον μετασχηματισμό του ψηφιακού σήματος.Η υπηρεσία Frame Relay είναι οικονομικότερη από τη χρήση αφιερωμένων γραμμών, όταν πρόκειται να διασυνδεθούν αρκετά τοπικά δίκτυα σε πολλές απομακρυσμένες περιοχές. Απαιτείται λιγότερο υλικό στα κεντρικά γραφεία του χρήστη- πελάτη της υπηρεσίας, υπηρεσίας, αφού αρκεί μία μόνο γραμμή Ε1/Τ1 (μεταξύ (μεταξύ του πελάτη και του παροχέα παροχέα της υπηρεσίας) υπηρεσίας) για το σύνολο των απαιτούμενων γραμμών. Ακόμη, ο φορέας της υπηρεσίας είναι υπεύθυνος για τη διαχείριση και καλή λειτουργία του δικτύου Frame Relay, αντίθετα με τις αφιερωμένες γραμμές, όπου υπεύθυνος είναι ο χρήστης-πελάτης.

Το Frame relay είναι μια τεχνολογία δικτύου ευρείας περιοχής που καθορίζει τα φυσικά επίπεδα και τα στρώματα ζεύξης δεδομένων των ψηφιακών τηλεπικοινωνιακών καναλιών, χρησιμοποιώντας μια μεθοδολογία μεταγωγής πακέτων. Οι πάροχοι δικτύου χρησιμοποιούν συνήθως το Frame Relay για μετάδοση φωνής (VoFR) και δεδομένων μεταξύ τοπικών δικτύων (LAN) σε ένα δίκτυο ευρείας περιοχής (WAN). Κάθε τελικός χρήστης αποκτά μια ιδιωτική γραμμή (ή μισθωμένη γραμμή) σε έναν κόμβο αναμετάδοσης πλαισίου. Το δίκτυο Relay Frame χειρίζεται τη μετάδοση μέσω μιας διαδρομής που αλλάζει συχνά και είναι διαφανής σε όλα τα πρωτόκολλα WAN που χρησιμοποιούνται σε μεγάλο βαθμό από τον τελικό χρήστη. Είναι λιγότερο ακριβό από τις μισθωμένες γραμμές και αυτό είναι ένας λόγος για τη δημοτικότητά του. 


87. Τι ονομάζουμε επικοινωνία δεδομένων;

Μετάδοση δεδομένων, είναι η φυσική μεταφορά των δεδομένων σε απόσταση (ψηφιακή ροή bit) από σημείο προς-σημείο ή από σημείο σε πολλά σημεία (point-to-multipoint) χρησιμοποιώντας ένα μέσο μετάδοσης.

Παραδείγματα τέτοιων μέσων μετάδοσης είναι σύρματα χαλκού, οπτικές ίνες, ασύρματα μέσα επικοινωνίας, και μέσα αποθήκευσης. Τα δεδομένα μεταφέρονται χρησιμοποιώντας είτε ακτινοβολία, ηλεκτρικά σήματα (μεταβολές τάσης), ραδιοκύματα, μικροκύματα ή υπέρυθρη ακτινοβολία Το είδος δεδομένων που μπορούν να μεταδοθούν μπορεί να ανήκουν σε συνεχόμενο πεδίο τιμών - να είναι δηλαδή αναλογικά σήματα, είτε να έχουν διακριτές τιμές, να είναι ψηφιακά σήματα.

Εννοούμε την ανταλλαγή πληροφοριών υπό την μορφή data, μεταξύ υπολογιστικών και τερματικών σταθμών. Οι πληροφορίες αυτές είναι δεδομένα που αποτελούνται από χαρακτήρες ( γράμματα, αριθμούς ή σύμβολα). Βασικοί Παράγοντες κατά τη μετάδοση των δεδομένων:  Απαιτούμενος χρόνος μετάδοσης.  Ακρίβεια μεταφερόμενων δεδομένων  Καταλληλότητα μεταφερόμενων δεδομένων( να είναι κατανοητά από τον παραλήπτη) 

Με το όρο επικοινωνία δεδομένων αναφερόμαστε στις έννοιες , τις αρχές και τους τρόπους ανταλλαγής κωδικοποιημένων πληροφοριών μεταξύ υπολογιστικών συσκευών. Η επικοινωνία δεδομένων εκτός από τη λειτουργία της εκπομπής και της κωδικοποίησης της πληροφορίας , εμπεριέχει των επικοινωνιακό εξοπλισμό(συσκευές και λογισμικό), την εγγύηση της ασφαλούς και ορθής μετάδοσης, τον έλεγχο ροής δεδομένων, την τήρηση των κανόνων που πρέπει να διέπουν τα συστήματα ανταλλαγής πληροφοριών και διευθέτηση τυχόν επικοινωνιακών δυσλειτουργιών 


88. Ποια είναι τα κύρια στοιχεία μετάδοσης των δεδομένων;

Έχουμε την Σειριακή Μετάδοση. Εδώ τα bit στέλνονται το ένα μετά το άλλο μέσα από το κανάλι (μέσο)μετάδοσης. Έχουμε την Παράλληλη Μετάδοση. Εδώ τα bit αποστέλλονται ταυτόχρονα (ομαδικά), (ομαδικά), μέσα από πολλαπλά κανάλια μετάδοσης. Έχουμε την Ασύγχρονη Μετάδοση. Εδώ τα δεδομένα που αποστέλλονται έχουν την την μορφή χαρακτήρων. Τέλος έχουμε την Σύγχρονη Μετάδοση. Εδώ οι οι χαρακτήρες ομαδοποιούνται σε blocks.

 Πηγή: Παράγει τα δεδομένα προς μετάδοση  Πομπός: Μετατρέπει τα δεδομένα σε κατάλληλη μορφή προς μεταφορά (κωδικοποίηση - encoding)  Σύστημα μετάδοσης: Μπορεί να είναι ένας απλός τύπος καλωδίου ή ένα πολύπλοκο δίκτυο.  Δέκτης: Λαμβάνει τα εισερχόμενα δεδομένα και τα μετατρέπει σε κατανοητή μορδή (αποκωδικοποίηση)  Προορισμός: Λήπτης των δεδομένων


89. Ποιους βασικούς τύπους καλωδίων συνεστραμμένων ζευγών γνωρίζετε και ποιες είναι οι διαφορές τους;

UTP: Αθωράκιστο καλώδιο συνεστραμμένων ζευγών. Αποτελείται από 4 ζεύγη συνεστραμμένων αγωγών που καλύπτονται μόνο από μονωτικό περίβλημα (εσωτερικό και εξωτερικό). εξωτερικό).

FTP: Θωρακισμένο με φύλλο αλουμινίου. Εδώ τα 4 ζεύγη αγωγών θωρακίζονται με φύλλο αλουμινίου κάτω από το εξωτερικό περίβλημα.

STP: Θωρακισμένο με STP: Θωρακισμένο με μεταλλικό πλέγμα. μεταλλικό πλέγμα. Eδώ κάτω από το Eδώ κάτω από το εξωτερικό περίβλημα υπάρχει μπλεντα εξωτερικό περίβλημα υπάρχει μπλενταζ χαλκού ζ χαλκού για τη θωράκιση του καλωδίου

SFTP: Θωρακισμένο με μεταλλικό πλέγμα + με φύλλο αλουμινίου.

SSTP: Θωράκιση πλέγματος συνολικά και θωράκιση αλουμινίου σε κάθε ζεύγος.

 UTP (unshielded twisted pair): Το TP σημαίνει Twisted Pair, δηλαδή τα καλώδια είναι χωρισμένα σε 4 ζεύγη τα οποία είναι πλεγμένα μεταξύ τους ώστε να μειώνονται οι παρεμβολές. Το U σημαίνει unshielded δηλαδή δεν υπάρχει καμία θωράκιση. Συνεπώς υπάρχει μόνο το εξωτερικό προστατευτικό και η μόνωση στο κάθε καλωδιάκι αλλά τίποτα άλλο. Είναι κατάλληλο για καλωδίωση δικτύων μέχρι ένα GBps, αλλά όχι για τα δίκτυα 10ΜΒ σε περίπτωση μεγάλων αποστάσεων.  FTP: θωρακισμένο με φύλλο αλουμινίου. Εδώ τα 4 ζεύγη αγωγών θωρακίζονται με φύλλο αλουμινίου κάτω από το εξωτερικό περίβλημα.  STP: θωρακισμένο με μεταλλικό πλέγμα. Εδώ κάτω από το εξωτερικό περίβλημα υπάρχει μπλενταζ χαλκού για τη θωράκιση του καλωδίου  SFTP: θωρακισμένο με πλέγμα αλλά και με φύλλο αλουμινίου.  SSTP: θωράκιση πλέγματος συνολικά και θωράκιση αλουμινίου σε κάθε ζεύγος.. 

UTP (Unshielded Twisted Pair - Αθωράκιστο Συνεστραμμένο Ζεύγος): Το πιο συνηθισμένο για τηλεφωνικό δίκτυο, για δίκτυα σχολικών εργαστηρίων, για δίκτυο στο σπίτι. Δεν παρέχει καμιά προστασία από θορύβους αλλά είναι το πιο πρακτικό. STP (Shielded Twisted Pair - Θωρακισμένο Συνεστραμμένο Ζεύγος): Ενίσχυση στο θόρυβο και στις παρεμβολές. FTP (Foiled Twisted Pair): Αθωράκιστο κι επικαλούμενο με μεταλλικά φύλλα. SFTP (Shielded Foiled Twisted Pair): Θωρακισμένο κι επικαλούμενο με μεταλλικά φύλλα.


90. Ποιες είναι οι βασικές αιτίες θορύβου στην επικοινωνία δεδομένων;

Ηλεκτροµαγνητικές παρεµβολές από γραµµές τροφοδοσίας συσκευών 

Παρεμβολές ραδιοσυχνοτήτων από έντονα ηλεκτρομαγνητικά πεδία κεραιών εκποµπής

Ενδογενής θόρυβος από ατέλειες των συστηµάτων μετάδοσης

Θόρυβος στις επικοινωνίες είναι η παρουσία τυχαίων, απρόβλεπτων, και ανεπιθύμητων παρεμβολών, που μπορεί να συγκαλύψουν το μεταδιδόμενο σήμα πληροφοριών κατά την λήψη και αναπαραγωγή του. Αιτίες θορύβου:  Εξωτερικός Θόρυβος (external noise) o Ηλεκτρομαγνητικές συσκευές που βρίσκονται κοντά στο σύστημα επικοινωνίας , όπως είναι για παράδειγμα κεραίες, radar, κλπ o Ατμοσφαιρικά φαινόμενα, όπως είναι για παράδειγμα οι κεραυνοί, οι οποίοι χαρακτηρίζονται από τη δημιουργία έντονου ηλεκτρικού ή ηλεκτρομαγνητικού πεδίου, που επηρεάζει τη μετάδοση των δεδομένων  Eσωτερικός θόρυβος (internal noise): Έχει ως αίτιο δημιουργίας του, το ίδιο το μέσο μετάδοσης.  


91. Να αναφέρετε τα Αναλογικά Σήματα με τα χαρακτηριστικά τους.

Αναλογικά είναι εκείνα τα σήματα που μεταβάλλονται συνεχώς στο χρόνο και μπορούν να πάρουν άπειρες τιμές κατά τη διάρκεια του χρόνου. Χαρακτηριστικό παράδειγμα αναλογικού σήματος είναι η φωνή μας που είναι απλές μεταβολές πίεσης του αέρα. Το αναλογικό σήμα είναι συνάρτηση του χρόνου, η οποία παίρνει τιμές από ένα συνεχόμενο πεδίο τιμών. 


92. Να αναφέρετε τα Ψηφιακά Σήματα με τα χαρακτηριστικά τους.

 Ψηφιακά είναι τα σήματα που λαμβάνουν μόνο διακριτές (συγκεκριμένες) τιμές στη διάρκεια του χρόνου. Το ψηφιακό σήμα ορίζεται σαν συνάρτηση του χρόνου που μπορεί να παίρνει τιμές από συγκεκριμένο σύνολο τιμών. Στο δυαδικό ψηφιακό σήμα μπορεί να παίρνει 2 τιμές. 


93. Σε ποια περίπτωση απαιτείται η μετατροπή του ψηφιακού σήματος σε αναλογικό και το αντίστροφο;

Το σήμα του Η/Υ είναι ψηφιακό. Το σήμα στις γραμμές του ΟΤΕ είναι αναλογικό. Από τον πομπό στο δέκτη χρειάζεται το σήμα να περάσει από τις τηλεφωνικές γραμμές του ΟΤΕ και να καταλήξει πάλι στον Η/Υ του παραλήπτη. Γι' αυτό χρειάζεται η μετατροπή του ψηφιακού σήματος σε αναλογικό και στο τέλος η επαναμετατροπή του αναλογικούσήματος σε ψηφιακό. Αυτή τη δουλειά κάνει το MODEM (Modulator - Demodulator / Διαπ Demodulator / Διαποδιαμορφωτής)

Οι Η/Υ μπορούν να ανταλλάξουν δεδομένα μέσω αναλογικού τηλεφωνικού δικτύου, μετατρέποντας το ψηφιακό σήμα σε αναλογικό (modulation). Το σήμα μεταφέρεται μέσω των τηλεφωνικών γραμμών στον προορισμό του. Προκειμένου να γίνει κατανοητό από τον Η/Υ πρέπει να επανέλθει στην αρχική ψηφιακή του μορφή Η διαδικασία μετατροπής του αναλογικού σήματος σε ψηφιακό, ονομάζεται αποδιαμόρφωση σήματος (demodulation) 


94. Ποιες είναι οι βασικές διαφορές σύγχρονης και ασύγχρονης μετάδοσης δεδομένων;

1.Στην ασύγχρονη μετάδοση οι χαρακτήρες μεταδίδονται ανεξάρτητα ο ένας από τον άλλο, ενώ στην σύγχρονη οι χαρακτήρες ομαδοποιούνται σε Block. 2. Η σύγχρονη μετάδοση συνοδεύεται από ένα σήμα χρονισμού που συνοδεύει την Data και το λέμε Clock. 3. Στην σύγχρονη μετάδοση δεν υπάρχει κενός χρόνος (IDLE) μεταξύ του τελευταίου Bit και του επόμενου πρώτου Bit, όπως υπάρχει στην σύγχρονη. 


95. Ποιες είναι οι διαφορές μεταγωγής μηνύματος και μεταγωγής πακέτων;

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

a. Στην μεταγωγή μηνύματος η πληροφορία έχει οργανωθεί ολόκληρη σε μήνυμα ,ενώ στην μεταγωγή πακέτων , η πληροφορία τεμαχίζεται σε πακέτα και μερικές φορές σε ακόμα μικρότερα μηνύματα. b. Στην μεταγωγή μηνύματος , το μήνυμα πρέπει να παραλειφθεί ολόκληρο από κάποιο κόμβο και μετά να βρεθεί ο κατάλληλος κενός δρόμος για την συνέχιση της αποστολής του. Στην μεταγωγή πακέτου τα πακέτα ενώ έχουν τον ίδιο προορισμό δεν ακολουθούν όλα τον ίδιο δρόμο, αλλά χρησιμοποιούν το καθένα , το δικό του συντομότερο δρόμο. 

Στα δίκτυα μεταγωγής πακέτων η πληροφορία τεμμαχίζεται και διευθυνσιοδοτείται κάθε κομμάτι πακέτου στον προορισμό. Αντίθετα στα δίκτυα μεταγωγής μηνύματος η πληροφορία περνάει ολόκληρη από κόμβο σε κόμβο για να φτάσει στον προορισμό της. Στα δίκτυα μεταγωγής μηνυμάτων η πληροφορία αποθηκεύεται σε κάθε κόμβο αντίθετα από το δίκτυο μεταγωγής πακέτων που θα αποθηκευτεί μια φορά στον παραλήπτη 


96. Πώς ανταλλάσσουν τα δεδομένα ένας πομπός και ένας δέκτης, σε συνάρτηση με το χρόνο; Δώστε ένα παράδειγμα.

Τα λειτουργικά τμήματα που συνιστούν ένα απλό μοντέλο επικοινωνίας είναι οι πηγές της πληροφορίας, το μέσο μετάδοσης, και ο δέκτης της πληροφορίας. Οι πηγές της πληροφορίας μπορούν να διακριθούν σε δύο κατηγορίες, με κριτήριο τη φύση της πληροφορίας που εκπέμπουν, και η οποία μπορεί να είναι αναλογική ή ψηφιακή. Οι πηγές αναλογικής πληροφορίας (όπως είναι για παράδειγμα το μικρόφωνο ή η video κάμερα), δίνουν ένα ή περισσότερα σήματα, που μεταβάλλονται συνεχώς σε συνάρτηση με το χρόνο. Αντίθετα η πληροφορία που εκπέμπεται από ψηφιακές πηγές (όπως είναι για παράδειγμα το τηλέτυπο) αποτελείται από μια σειρά διακριτών συμβόλων ή γραμμάτων. Το μέσο μετάδοσης, πραγματοποιεί τη φυσική (ηλεκτρική) σύνδεση ανάμεσα στην πηγή και στον προορισμό της πληροφορίας. Η γραμμή επικοινωνίας μπορεί να είναι ένα ζεύγος συρμάτων ή ένα τηλεφωνικό καλώδιο, ή μια οπτική ίνα ή ακόμα ο ελεύθερος χώρος μέσα στον οποίο μεταδίδεται το σήμα που μεταφέρει την πληροφορία. Τέλος, ο δέκτης, αφού πάρει το εξασθενημένο σήμα από το μέσο μετάδοσης, το επαναφέρει στην πραγματική του κατάσταση. Επιτελεί τη λειτουργία αυτή με τη διαδικασία της αποδιαμόρφωσης, η οποία είναι η αντίστροφη της διαδικασίας διαμόρφωσης, που πραγματοποιείται στον πομπό. Λόγω της παρουσίας θορύβου και άλλων παραμορφωτικών σημάτων, ο δέκτης δεν μπορεί να επαναφέρει τέλεια το σήμα του μηνύματος. Εκτός από την αποδιαμόρφωση, ο δέκτης κάνει συνήθως ενίσχυση και φιλτράρισμα του σήματος. Οι χρήστες εναλλάσσονται κυκλικά και καθένας παίρνει όλο  

a. SIMPLEX (Μονής Κατεύθυνσης) κατά τον οποίο οι πληροφορίες κινούνται μόνιμα προς μια κατεύθυνση. Δηλαδή η μία μεριά συνεχώς εκπέμπει και η άλλη συνεχώς λαμβάνει. b. HALF DUPLEX (Αμφίδρομη Επικοινωνία). Η αποστολή δεδομένων γίνεται είτε προς τη μία ,είτε προς την άλλη μεριά όχι όμως ταυτόχρονα. c. FULL DUPLEX ( Ταυτόχρονη Επικοινωνία). Τα δεδομένα μεταδίδονται ταυτόχρονα και προς τις δύο κατευθύνσεις. 


97. Ποια ετικέτα θα χρησιμοποιήσω για να κάνω τη λέξη Επικοινωνία σύνδεσμο για την αποστολή μηνυμάτων μέσω ηλεκτρονικού ταχυδρομείου στην ηλεκτρονική διεύθυνση webmaster@test.gr ;

<a href="webmaster@test.gr">Επικοινωνία</a>

........................

<address>

<a href="mailto : webmaster@test.gr">Επικοινωνία<a/> εισάγει email σύνδεσμο στη λέξη Επικοινωνία.

</address>

(το address δεν είναι απαραίτητο)

ή

<!DOCTYPE html>

<html>

<body>

<address>

Written by <a href="mailto:webmaster@example.com">Jon Doe</a>.<br>

Visit us at:<br>

Example.com<br>

Box 564, Disneyland<br>

USA

</address>

</body>

</html>


98. Τι θα εμφανίσει ο παρακάτω κώδικας:<HTML> <HEAD> <TITLE> Άσκηση </TITLE> <SCRIPT LANGUAGE="JavaScript"> window.alert ("Αυτό είναι το μήνυμα 1");

Ο εν λόγω κώδικας θα ανοίξει μια σελίδα ενός φυλλομετρητή (browser), όπου θα τοποθετήσει στη γραμμή τίτλου τη λέξη «Άσκηση» και αυτόματα θα εμφανίσει ένα pop-up παράθυρο που θα γράφει «Αυτό είναι το μήνυμα1».

Θα εμφανιστει σελιδα με τίτλο Άσκηση και θα ανοίγει παράθυρο με "Αυτό είναι το μηνυμα 1". 


99. Πώς εισάγουμε γραφικά με την HTML; Πρέπει το "αρχείο γραφικού" να βρίσκεται στο ίδιο σύστημα ή μπορεί να είναι εξωτερικό; Τι επιτυγχάνουν οι παράμετροι ALIGN, HEIGHT, WIDTH, CAPTION;

Για την παρουσίαση ενός γραφικού αρχείου σε μία ιστοσελίδα χρησιμοποιείται η ετικέτα . Η ετικέτα αυτή περιέχει πάντα την παράμετρο SRC= "μονοπάτι/αρχείο εικόνας”, η οποία και δηλώνει το μονοπάτι όπου είναι αποθηκευμένη η εικόνα, καθώς και το αρχείο ψηφιακής εικόνας πο η εικόνα, καθώς και το αρχείο ψηφιακής εικόνας που θα χρησιμοποιηθεί. θα χρησιμοποιηθεί. Οι παράμετροι width και height ορίζουν τις διαστάσεις της εικόνας σε pixels. Συνήθως ταυτίζονται με τις πραγματικές διαστάσεις της εικόνας. Όμως αν χρειάζεται η εικόνα να εμφανιστεί με μικρότερες ή μεγαλύτερες διαστάσεις προσαρμόζονται ανάλογα οι ιδιότητες width και height. Η παράμετρος align Καθορίζει την στοίχιση της εικόνας με το κείμενο που είναι δίπλα σε αυτήν. Οι τιμές που μπορεί να πάρει είναι οι εξής: baseline, top, middle, bottom, absmiddle, absbottom, left, right. Με την παράμετρο caption τοποθετούμε λεζάντα στο γραφικό μας αρχείο.

....Η ετικέτα εισαγωγής εικόνων είναι η img. Στην ετικέτα εκτός από το όνομα της εικόνας που εισάγεται με το όρισμα src υπάρχουν και άλλα ορίσματα. Οι εικόνες μπορεί να είναι και εξωτερικές και γίνεται αναφορά σε αυτές μέσω της διευθύνσεως τους π.χ. hhtp://www.oeek.gr/pic1.gif.  … : το θέμα(τίτλος) της εικόνας.  Align : αφορά τη στοίχιση της εικόνας σε σχέση με το κείμενο. Η στοίχιση μπορεί να είναι δεξιά,αριστερά, στο κέντρο, επάνω και κάτω.  Height , Width: Τα ορίσματα Height και Width αναφέρονται στο ύψος και στο πλάτος της εικόνας αντίστοιχα. Smiley face The tag defines an image in an HTML page. The tag has two required attributes: src and alt. Note: Images are not technically inserted into an HTML page, images are linked to HTML pages. The tag creates a holding space for the referenced image.


100. Με ποιούς τρόπους μπορούμε να εισάγουμε κείμενο σε μια ιστοσελίδα; (Αναφέρατε τουλάχιστον δύο τρόπους).

Γράφοντας απευθείας από το πληκτρολόγιο στο επίπεδο του <body> ή κάνοντας αντιγραφή από κάποιο άλλο έγγραφο και επικόλληση στην ιστοσελίδα που μας ενδιαφέρει. 

Εισαγωγή στην HTML και τα CSS 

Εισαγωγή κειµένου.

Για να εισάγετε κείµενο σε µία σελίδα html, αρκεί να χρησιµοποιήσετε το tag <p> (ή απλά να πληκτρολογήσετε το κείµενo).

∆ηλαδή:

<p> Εισάγετε το κείµενο σας εδώ </p>

<p> Και να συνεχίσετε εδώ</p>

Σηµειώνεται πως το tag <p> δηµιουργεί παραγράφους µε µία κενή γραµµή ανάµεσα σε αυτές. Στο παραπάνω παράδειγµα το αποτέλεσµα σε µία ιστοσελίδα θα ήταν:

Εισάγετε το κείµενο σας εδώ

Και να συνεχίσετε εδώ

Αν θέλουµε το αποτέλεσµα να µην είναι αυτό που φαίνεται παραπάνω, αλλά απλά να συνεχίζει το κείµενο στην αµέσως επόµενη γραµµή, π.χ.

Κείµενο

Χωρίς κενή γραµµή ανάµεσα.

Τότε, θα έπρεπε να χρησιµοποιηθεί το tag <br> (το tag br δεν κλείνει, δηλαδή δεν υπάρχει το </br>). Ο κώδικάς µας, θα ήταν:

<p>Κείµενο<br>Χωρίς κενή γραµµή ανάµεσα.</p>

Επίσης το tag <p> παίρνει την παράµετρο align µε τιµές left ή right ή center ή justify (π.χ.

<p align="center">) που αφορούν στη στοίχιση του κειµένου.

Υπάρχουν περιπτώσεις στις οποίες µπορεί να µην χρησιµοποιήσουµε το tag <p> για να εισάγουµε κείµενο παρά µόνο να γράψουµε το κείµενο ως έχει µέσα στον κώδικα. Σε αυτές τις περιπτώσεις για να στοιχίσουµε το κείµενό µας χρησιµοποιούµε το tag <div> µε τις παραµέτρους που αναφέρθηκαν παραπάνω και το οποίο επίσης  κλείνει µόλις εισαχθεί το περιεχόµενο. Π.χ. <div align="right">Κείµενο</div


101. Εξηγήστε τι λειτουργίες εκτελούν οι παρακάτω HTML εντολές/παράμετροι (όταν αναφέρονται σε HTML πίνακες) <CAPTION>, <TH>, COLSPAN, ROWSPAN, ALIGN, VALIGN.

<CAPTION>: Μας δίνει τη δυνατότητα να τ <CAPTION>: Μας δίνει τη δυνατότητα να τοποθετήσουμε οποθετήσουμε λεζάντα στο πίνακά μας. λεζάντα στο πίνακά μας.

<TH>: ορίζουμε επικεφαλίδες στον πίνακα. Το κείμενο που βρίσκετε μέσα στις ετικέτες <th> και </th> εμφανίζεται με bold χαρακτήρες.

COLSPAN : Δημιουργεί συγχώνευση στηλών.

ROWSPAN : Δημιουργεί συγχώνευση γραμμών.

ALIGN: Καθορίζει την στοίχιση των δεδομένων ενός ALIGN: Καθορίζει την στοίχιση των δεδομένων ενός κελιού ή μιας στήλης ενός πίνακα. λιού ή μιας στήλης ενός πίνακα.

VALIGN: Δημιουργεί κάθετη στοίχιση των δεδομένων ενός κελιού ή μιας στήλης ενός πίνακα. 

....<table>

<caption>Monthly savings</caption>

<tr>

<th>Month</th>

<th>Savings</th>

</tr>

<tr>

<td>January</td>

<td>$100</td>

</tr>

</table>

 <caption>...</caption> : το θέμα(τίτλος) του πίνακα.

 <ΤΗ>...</ΤΗ> : ορίζει επικεφαλίδες σε πίνακα.

 < COLSPAN>: χρησιμοποιείται για να ορίσουμε το κελί ενός πίνακα να έχει μεγαλύτερο μέγεθος από μια στήλη, π.χ. COLSPAN=2. Είναι όρισμα του <TD> ή του <ΤΗ>.

 ROWSPAN : χρησιμοποιείται για να ορίσουμε το κελί ενός πίνακα να έχει μεγαλύτερο μέγεθος από μια

Μια γραμμή, π.χ. ROWSPAN=2. Είναι όρισμα του <TD> ή του <ΤΗ>.

 ALIGN : Αφορά τη στοίχιση του κειμένου. Έχουμε τη δυνατότητα να στοιχίσουμε ένα κείμενο δεξιά,αριστερά ή στο κέντρο.

 VALIGN: αφορά την κάθετη στοίχιση κειμένου. VALIGN=TOP, VALIGN=MIDDLE(μέση), VALIGN=ΒΟΤΤΟΜ.

 Use the HTML <table> element to define a table

 Use the HTML <tr> element to define a table row

 Use the HTML <td> element to define a table data

 Use the HTML <th> element to define a table heading

 Use the HTML <caption> element to define a table caption

 Use the CSS border property to define a border

 Use the CSS border-collapse property to collapse cell borders

 Use the CSS padding property to add padding to cells

 Use the CSS text-align property to align cell text

 Use the CSS border-spacing property to set the spacing between cells

 Use the colspan attribute to make a cell span many columns

 Use the rowspan attribute to make a cell span many rows

 Use the id attribute to uniquely define one table


102. Τί είναι οι σημάνσεις επικεφαλίδας; Ποιό είναι, ως προεπιλογή, το μεγαλύτερο μέγεθος επικεφαλίδας; Το Heading 1 ή το Heading 6;

Οι HTML επικεφαλίδες είναι κείμενο που εμφανίζεται με μεγάλα γράμματα και χρησιμοποιούνται για την μορφοποίηση κειμένου. Οι επικεφαλίδες ορίζονται από τις ετικέτες <h1> , <h2> , <h3> , <h4> , <h5> και <h6> . Με την <h1> ορίζουμε την μεγαλύτερη ετικέτα ενώ με την <h6> την μικρότερη.

Σχεδιασμός WEB και Παραγωγή Ψηφιακού Περιεχομένου

Το HTML έχει 6 επικεφαλίδες- headings : <h1>, <h2>,<h3>,<h4>,<h5> και <h6>

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

Η <h1> είναι η μεγαλύτερη και πιο σημαντική επικεφαλίδα ενώ η <h6> είναι η μικρότερη και λιγότερο σημαντική.

Έτσιι η σειρά είναι: <h1> > <h2> > <h3> > <h4> > <h5> > <h6>.

Είναι σημαντικό να χρησιμοποιείτε τις επικεφαλίδες για να δομείτε το έγγραφο. Για παράδειγμα, η κύρια επικεφαλίδα πρέπει να είναι μέσα σε ένα <h1> tag, ένας τίτλος σε <h2> tag και ένας υπότιτλός σε <h3> tag

This is heading 1

This is heading 2

This is heading 3

This is heading 4

This is heading 5

This is heading 6

Headings are defined with the <h1> to <h6> tags.

<h1> defines the most important heading. <h6> defines the least important heading.

<h1>This is heading 1</h1>

<h2>This is heading 2</h2>

<h3>This is heading 3</h3>

<h4>This is heading 4</h4>

<h5>This is heading 5</h5>

<h6>This is heading 6</h6>

Search engines use the headings to index the structure and content of your web pages.

Users skim your pages by its headings. It is important to use headings to show the document structure.

<h1> headings should be used for main headings, followed by <h2> headings, then the less important <h3>, and so on.

Note: Use HTML headings for headings only. Don't use headings to make text BIG or bold. 


103. Αναφέρατε δύο τεχνολογίες κατασκευής στατικών ιστοσελίδων (Static web pages) και τέσσερις δυναμικών ιστοσελίδων (Dynamic web pages). Ποιά είναι η διαφορά των στατικών ιστοσελίδων από τις δυναμικές ιστοσελίδες;

Οι στατικές ιστοσελίδες είναι ουσιαστικά απλά ηλεκτρονικά "έγγραφα". Μπορούν να περιέχουν κείμενα, φωτογραφίες, συνδέσμους (links), αρχεία για download, κινούμενα σχέδια (animated graphics). Είναι κατάλληλες κυρίως για την δημιουργία "μόνιμων/στατικών παρουσιάσεων", όπου δεν υπάρχει συχνά η ανάγκη να τροποποιείται το περιεχόμενό τους. Δηλαδή, θα μπορούσε να χρησιμοποιηθεί μια στατική ιστοσελίδα για την γενική παρουσίαση μιας επιχείρησης και των προϊόντων ή υπηρεσιών της. Οι τεχνολογίες που χρησιμοποιούνται είναι συνήθως η HTML και η XML. Οι δυναμικές ιστοσελίδες, μπορεί στην εμφάνιση, σε πολλές περιπτώσεις, να μην έχουν μεγάλη διαφορά με τις στατικές, όμως οι δυνατότητές είναι πολύ περισσότερες, από πολλές πλευρές, καθώς στην περίπτωση αυτή ουσιαστικά πρόκειται για μία εφαρμογή (πρόγραμμα), και όχι ένα απλό ηλεκτρονικό έγγραφο. Συνήθως, οι δυναμικές ιστοσελίδες, χρησιμοποιούν κάποια βάση δεδομένων ποια βάση δεδομένων (database), όπου αποθηκεύουν πληροφορίες και απ' όπου αντλούν το περιεχόμενό τους, ανάλογα με το τι ζητάει ο χρήστης/επισκέπτης σε κάθε του "κλικ". Η χρήση των βάσεων δεδομένων, είναι αυτή που επιτρέπει την εύκολη προσθαφαίρεση περιεχομένου στις δυναμικές ιστοσελίδες, καθώς δεν απαιτείται να επεξεργάζεται κανείς κάθε φορά την ίδια την ιστοσελίδα, αλλά απλά να διαχειρίζεται έμμεσα το περιεχόμενο στην βάση δεδομένων και οι υπόλοιπες διαδικασίες γίνονται αυτοματοποιημένα από τον "μηχανισμό" της ιστοσελίδας. Γενικά, αυτό που προσφέρουν οι δυναμικές ιστοσελίδες, είναι μεγαλύτερη αλληλεπίδραση του χρήστη με την σελίδα π.χ. να προσθέτει τα σχόλια του στην σελίδα, αλλά και πολλές ευκολίες στον διαχειριστή του περιεχομένου της ιστ στον διαχειριστή του περιεχομένου της ιστοσελίδας π οσελίδας π.χ. τον ιδιοκτήτη της σελίδας.  Οι τεχνολογίες που χρησιμοποιούνται στις δυναμικές ιστοσελίδες είναι η PHP, η Flash, η .NET, MySQL κ.α.

....Στατικές ιστοσελίδες Οι στατικές ιστοσελίδες εμφανίζουν τις ίδιες ακριβώς πληροφορίες κάθε φορά που κάποιος τις επισκέπτεται. Οι στατικές ιστοσελίδες δεν χρειάζεται να είναι απλό κείμενο. Μπορούν να διαθέτουν λεπτομερή σχεδιασμό πολυμέσων, ακόμη και βίντεο. Ωστόσο, κάθε επισκέπτης σε αυτήν τη σελίδα θα δέχεται ακριβώς το ίδιο κείμενο, σχέδιο πολυμέσων ή βίντεο κάθε φορά που επισκέπτεται τη σελίδα μέχρι να αλλάξετε τον πηγαίο κώδικα αυτής της σελίδας.

Δυναμικές ιστοσελίδες Οι δυναμικές ιστοσελίδες μπορούν να παράγουν διαφορετικό περιεχόμενο για διαφορετικούς επισκέπτες από το ίδιο αρχείο πηγαίου κώδικα. Ο ιστότοπος μπορεί να εμφανίζει διαφορετικό περιεχόμενο με βάση το λειτουργικό σύστημα ή το πρόγραμμα περιήγησης που χρησιμοποιεί ο επισκέπτης, εάν χρησιμοποιεί υπολογιστή ή φορητή συσκευή ή ακόμα και την πηγή που παρέπεμψε τον επισκέπτη. 

Οι στατικές δεν αλλάζουν περιεχόμενο και διάταξη (layout) με οποιοδήποτε αίτημα εκτός και αν ο προγραμματιστής αναβαθμίσει (update) τη σελίδα. Μια απλή HTML σελίδα είναι παράδειγμα στατικού περιεχομένου. τεχνολογία HTML, CSS

Οι δυναμικές προσαρμόζουν το περιεχόμενο και/ή την εμφάνισή τους σύμφωνα με την καταχώρηση/αλληλεπίδραση ή τις αλλαγές του τελικού χρήστη στο περιβάλλον προγραμματισμού (χρήστης, ώρα, τροποποιήσεις στη βάση δεδομένων, κτλ) Το περιεχόμενο μπορεί να αλλάζει στον υπολογιστή του τελικού-χρήστη με τη χρήση των γλωσσών προγραμματισμού που εκτελούνται στον υπολογιστή του χρήστη (JavaScript, VBScript, Actionscript, etc.). Το περιεχόμενο στις δυναμικές σελίδες συχνά μεταφράζεται στον εξυπηρετητή (server) μέσω γλωσσών προγραμματισμού που εκτελούνται στον εξυπηρετητή (Perl, PHP, ASP, JSP, ColdFusion, .NET κτλ). τεχνολογία PHP, JAVASCRIPT..........    ..........

Τα εργαλεία και οι τεχνολογίες που χρησιμοποιούνται περιλαμβάνουν μεταξύ άλλων:

  • Γλώσσες σήμανσης: HTML, XHTML, XML
  • Γλώσσες φύλλων ύφους: CSS, XML
  • Σενάρια στον πελάτη (Client-side scripting): JavaScript
  • Σενάρια στον εξυπηρετητή (Server-side scripting): PHP, ASP, Perl, Ruby/Ruby on Rails
  • Τεχνολογίες βάσεων δεδομένων: MySQL, PostgreSQL, Microsoft SQL Server
  • Τεχνολογίες πολυμέσων: Flash, Silverlight

104. Με ποιόν τρόπο μπορώ να προσθέσω μια γραμμή θέματος (Subject) σε μια σύνδεση email (mailto);

Το subject για να προστεθεί σε μια σύνδεση email θα πρέπει να χρησιμοποιηθεί ως παράμετρος της εντολής mailto. Για παράδειγμα αν θέλουμε να ορίσουμε το θέμα (subject) testθα πρέπει να γράψουμε ως εξής:

<a href="mailto:emailname@yourdomain.com? emailname@yourdomain.com?subject=test">The text of subject=test">The text of your link</a> your link</a>


....<a href="mailto:example@email.com?subject=Email%20Subject">your anchor text</a>

mailto = Ενημερώνει τον πελάτη email στον οποίο θα στείλει το email.

subject = Αυτό θα βάλει ένα μήνυμα στη γραμμή θέματος του email.

body = Με αυτήν την επιλογή μπορείτε να τοποθετήσετε ένα μήνυμα στο σώμα του email.

% 20 = αφήνει κενό μεταξύ λέξεων


105. Ποιες ετικέτες θα χρησιμοποιήσουμε σε κάθε μία από τις παρακάτω περιπτώσεις για να εμφανιστεί η λέξη ""Παράδειγμα"":i. μόνο έντονα γραμμένη ii. έντονα και υπογραμμισμένη iii. μόνο υπογραμμισμένη iv. έντονα, πλάγια και υπογραμμισμένη.

Για το παράδειγμα που δίνεται θα χρησιμοποιήσουμε τις εξής ετικέτες:

i. <b>Παράδειγμα</b>

ii. <b><u> Παράδειγμα </b></u>

iii. <u> Παράδειγμα </u>

iv. <b><i><u> <b><i><u> Παράδειγμα </b></i></u> </b></i></u>

 i. μόνο έντονα γραμμένη

<b> Παράδειγμα</b>

 ii. έντονα και υπογραμμισμένη

<b><u> Παράδειγμα</u></b>

 iii. μόνο υπογραμμισμένη

<u> Παράδειγμα</u>

 iv. έντονα, πλάγια και υπογραμμισμένη.

<b><i><u> Παράδειγμα</u></i></b> 


106. Τι κάνει η εντολή <BODY BACKGROUND = "bgimage.gif">; Πώς μπορούμε να αλλάξουμε το χρώμα τού φόντου σε ένα HTML κείμενο; Δώστε την εντολή που κάνει το φόντο πράσινο. Δώστε επίσης την εντολή που κάνει το φόντο 50% πράσινο και 50% μπλέ.

Η εντολή <BODY BACKGROUND = "bgimage.gif"> θα τοποθετήσει στο φόντο της ιστοσελίδας τη φωτογραφία από το αρχείο bgimage.gif. Για να αλλάξουμε χρώμα φόντου σε ένα HTML κείμενο χρησιμοποιούμε την εντολή <BODY BGCOLOR=όνομα χρώματος>. Για να κάνουμε κάνουμε το φόντο 50% πράσινο πράσινο και 50% μπλε θα χρησιμοποιήσουμε χρησιμοποιήσουμε την εντολή <BODY εντολή <BODY bgcolor="rgb(0,12 bgcolor="rgb(0,127,127)">. 7,127)">.

.....H εντολή <BODY BACKGROUND = "bgimage.gif"> εισάγει την εικόνα bgimage.gif ως φόντο της HTML σελίδας.

Η αλλαγή χρώματος φόντου γίνεται με την εντολή <Body bgcolor="#008000">,δηλ. με το όρισμα bgcolor.

Η εντολή <body bgcolor=#00FF00> θέτει το χρώμα του φόντου ως πράσινο.

Η εντολή <body bgcolor=#008080> θέτει το χρώμα φόντου συνδυασμό πράσινου και μπλε 50% πράσινο σημαίνει τον αριθμό 128 στο δεκαδικό για το πράσινο, συνεπώς 80στο δεκαεξαδικό.

Αντίστοιχα συμβαίνει και με το μπλε.

Αντίστοιχα συμβαίνει και με το μπλε.συνεπώς προκύπτει ο συνδυασμός 00(RED) 80(Green) 80(Blue).

Η εντολή για να αλλάξουμε το φόντο σε πρασινο είναι: <body bgcolor="green" >

Η εντολή για να αλλάξουμε το φόντο 50% πράσινο και 50% μπλε είναι <body bgcolor="0Χ7777" >


107. Ποια είναι η λειτουργία της ετικέτας <div>; Τι λειτουργίες κάνουν οι ιδιότητές της align, class και id;

Η ετικέτα <DIV>...</DIV> (Document Division element), λειτουργεί με την παράμετρο ALIGN και αναφέρεται σε ένα τμήμα σελίδας, δηλαδή σε μια σειρά από επικεφαλίδες ή παραγράφους συνολικά (δηλαδή δεν χρειάζεται να επαναλάβουμε την παράμετρο ALIGN σε κάθε μια από τις ετικέτες). Το τμήμα της σελίδας που θα στοιχηθεί με την <DIV> μπορεί να περιέχει και ετικέτες εισαγωγής εικόνων.

Το id χρησιμοποιείται για να καθορίσει ένα στυλ για ένα και μοναδικό στοιχείο. Ο επιλογέας id χρησιμοποιεί το χαρακτηριστικό id του στοιχείου στην HTML και ορίζεται με "#". Το id είναι μοναδικό για κάθε στοιχείο και θα είναι συγκεκριμένο σε αυτό το στοιχείο. Ενώ το class χρησιμοποιείται για να καθορίσει ένα στυλ για μια ομάδα στοιχείων. Μπορείτε να χρησιμοποιήσετε το ίδιο class σε διαφορετικά στοιχεία που σημαίνει ότι μπορείτε να εφαρμόσετε λίγες ιδιότητες του css σε περισσότερα από ένα στοιχεία χρησιμοποιώντας το ίδιο class.

...Η ετικέτα <div> ορίζει ένα τμήμα στο HTML έγγραφο. Ένα τμήμα ομαδοποιεί τα περιεχόμενα που είναι μέσα στις ετικέτες <div>...</div> ώστε να μπορούμε να ορίζουμε ένα ενιαίο στυλ (χρώμα, γραμματοσειρά, στοίχιση) με την ιδιότητα style.

The <div> tag defines a division or a section in an HTML document.

The <div> tag is used to group block-elements to format them with CSS.

<div>

<h3>This is a heading</h3>

<p>This is a paragraph.</p>

</div>

align : Το χαρακτηριστικό ευθυγράμμισης καθορίζει την οριζόντια ευθυγράμμιση του περιεχομένου μέσα σε ένα στοιχείο <div>.

Class :Με την ιδιότητα class ορίζουμε στυλ (Cascading Style Sheets - CSS) για τα στοιχεία της σελίδας μας. Με την βοήθεια της CSS ορίζουμε την εμφάνιση (το χρώμα, το μέγεθος, κτλ.) των στοιχείων της σελίδας.

id : Ο id selector χρησιμοποιείτε για να καθορίσει την μορφοποίηση ενος μοναδικού στοιχείου


108. Δώστε τις HTML εντολές που υλοποιούν τον παρακάτω πίνακα:

<table height="200" width="500" border="1">

<tr>

<td width="500">Ιανουάριος</td>

<td width="500"500" align="center"top">1</td> ">1</td>

<td width="500">< width="500"></td>

<td width="500">< width="500"></td>

</tr>

<tr>

<td align="center">Φεβρουάριος</td>

<td></td>

<td align="center>2 valign="top">2</td> <td></td>

</tr>

<tr>

<td align="center">Μάρτιος</td>

<td></td>

<td></td>

<td align="center>3 valign="top">3</td>

</tr>

</table> 

Εισαγωγή στην HTML Εισαγωγή πινάκων

Εισαγωγή πινάκων

Για να δηµιουργήσουµε ένα πίνακα σε µία σελίδα χρησιµοποιούµε το tag <table>. To tag table παίρνει κάποιες παραµέτρους (µη υποχρεωτικές):

Π.χ <table width="200" height="200" border="1" cellpadding="2" bordercolor="#999999"

background="images/square.jpg" bgcolor="#666666">

Width: το πλάτος του πίνακα σε pixels (µπορεί για σχεδιαστικούς λόγους να εκφραστεί και σαν ποσοστό. Π.χ. width="80%" σηµαίνει πλάτος το 80% της οθόνης που καταλαµβάνει ο web browser.

Height : Το ύψος του πίνακα σε pixels (µπορεί επίσης να εκφραστεί σαν ποσοστό αλλά δεν υποστηρίζεται από όλους τους browsers)

Border : Το πάχος των περιθωρίων σε pixels

Align : Η στοίχιση του πίνακα στην οθόνη

Cellpadding: H απόσταση οποιουδήποτε στοιχείου εισαχθεί σε κελί του πίνακα (π.χ. κείµενο) από την άκρη της γραµµής του κελιού

Cellspacing: H απόσταση της γραµµής του κελιού από την άκρη του πίνακα.

Bordercolor: Το χρώµα του περιθωρίου του πίνακα.

Background : Μία εικόνα που µπορεί να χρησιµοποιηθεί ως φόντο του πίνακα

Bgcolor: το χρώµα του φόντου του πίνακα.

Το tag <table> αφού εισαχθούν τα περιεχόµενα του κλείνει </table>.

Περιεχόµενα του tag αυτού είναι τα tags <tr> και <td> τα οποία επίσης πρέπει να κλείνουν </tr> & </td>

H υλοποίηση των γραµµών ενός πίνακα γίνεται µέσα από το tag <tr> ενώ η υλοποίηση των στηλών του πίνακα µέσα από το tag <td>

Π.χ. ο παρακάτω κώδικας δηµιουργεί έναν πίνακα µε 2 γραµµές και 2 στήλες

<table width="300" >

<tr> πρώτη γραµµή του πίνακα

<td></td> πρώτη στήλη του πίνακα

<td></td> δεύτερη στήλη του πίνακα

</tr> τέλος της πρώτης γραµµής του πίνακα

<tr> δεύτερη γραµµή του πίνακα

<td></td> πρώτη στήλη της δεύτερης γραµµής του πίνακα

<td></td> δεύτερη στήλη της δεύτερη γραµµής του πίνακα

</tr> τέλος της δεύτερης γραµµής του πίνακα

</table> τέλος του πίνακα

Το tag <td> είναι αυτό στο οποίο εισάγεται το περιεχόµενο του κελιού.

Π.χ. <td><img src="images/square.jpg" width="400" height="267" border="0"></td> , θα εισήγαγε µία εικόνα ως περιεχόµενο του κελιού.

Το tag αυτό παίρνει κάποιες παραµέτρους:

Π.χ. <td width="80" height="120" bordercolor="#990000"

background="images/square.jpg" bgcolor="#CCCCCC">

Η έννοια των παραµέτρων του tag <td> είναι αντίστοιχη µε τις παραµέτρους του πίνακα απλά προστίθεται η παράµετρος valign που παίρνει τιµές top,middle,bottom,baseline η οποία αφορά στην κατακόρυφη στοίχιση του περιεχοµένου του κελιού του πίνακα


109. Τι είναι οι επώνυμες άγκυρες (Named Anchors), και σε ποιούς τύπους ιστοσελίδων χρησιμοποιούνται; Αναφέρατε ένα παράδειγμα.

Ένα στοιχείο ονομάζεται άγκυρα επειδή οι οι web designers μπ designers μπορούν να το χρησιμοποιήσουν για να «αγκυροβολήσουν» μια διεύθυνση URL σε κάποιο κείμενο σε μια ιστοσελίδα. ιστοσελίδα. Όταν οι χρήστες προβάλλουν την ιστοσελίδα σε ένα πρόγραμμα περιήγησης, μπορούν να κάνουν κλικ στο κείμενο αυτό για να ενεργοποιήσουν το σύνδεσμο και να επισκεφτούν τη σελίδα του οποίου η διεύθυνση URL βρίσκεται στη σύνδεση.

Στην HTML, μια άγκυρα μπορεί να είναι είτε η προέλευση (το κείμενο της άγκυρας) είτε το τέλος (προορισμού) μιας υπερσύνδεσης. Με τις ιδιότητες HTML name ή id, το στοιχείο στο οποίο έχουμε θέσει μια άγκυρα γίνεται στόχος. Ένα URL μπορεί να συνδεθεί με αυτόν τον στόχο μέσω ενός αναγνωριστικού θραύσματος. 

....Δημιουργία Άγκυρας (Anchor) Ο δεσμός άγκυρας (anchor) μάς μεταφέρει σ' ένα άλλο σημείο της ίδιας ιστοσελίδας. Για να δημιουργήσουμε έναν τέτοιο δεσμό, πρώτα επιλέγουμε το σημείο στο οποίο θέλουμε να πάμε, που αποκαλείται επώνυμη άγκυρα (named anchor), και επιλέγουμε Named Anchor από το μενού Insert ή πατάμε τα πλήκτρα Control+Alt+A ή επιλέγουμε το εργαλείο Insert Named Anchor του πίνακα Invisibles της παλέτας αντικειμένων. Στο πλαίσιο διαλόγου Named Anchor και στο πλαίσιο κειμένου Anchor Name δίνουμε ένα όνομα στην επώνυμη άγκυρα. Οι επώνυμες άγκυρες ανήκουν στα αόρατα στοιχεία (invisible elements) του DreamWeaver, που για να τα δούμε, πρέπει να επιλέξουμε Invisible Elements από το μενού View ή να πατήσουμε τα πλήκτρα Control+Shift+I. Το εικονίδιο μιας επώνυμης άγκυρας είναι μια άγκυρα με χρυσό περίβλημα. Μπορούμε να επιλέξουμε το σύμβολο μιας επώνυμης άγκυρας και να αλλάξουμε το όνομά της από τον Property Inspector. Για να δημιουργήσουμε έναν δεσμό προς μια επώνυμη άγκυρα, επιλέγουμε το κείμενο που θα αποτελέσει τον δεσμό προς την επώνυμη άγκυρα και εισάγουμε το όνομα της επώνυμης άγκυρας με το σύμβολο # μπροστά του στο πλαίσιο κειμένου Link του Property Inspector. Μπορούμε να χρησιμοποιήσουμε επώνυμες άγκυρες και προς άλλες ιστοσελίδες ή URL που θέλουμε να συνδέσουμε. Απλά προσθέτουμε το σύμβολο # και το όνομα της επώνυμης άγκυρας στο τέλος της διεύθυνσης. Για να δημιουργήσουμε έναν δεσμό προς μια επώνυμη άγκυρα, μπορούμε αφού επιλέξουμε το κείμενο του δεσμού, να σύρουμε το εικονίδιο Point to File, που βρίσκεται δεξιά από το πλαίσιο κειμένου Link και έχει στρογγυλό σχήμα, πάνω σε μια επώνυμη άγκυρα. Το όνομα επώνυμης άγκυρας μαζί με το πρόθεμα # θα εμφανισθεί μέσα στο πλαίσιο κειμένου Link. 


110. Με ποιόν τρόπο μπορούμε να τοποθετήσουμε κείμενο πάνω σε μια εικόνα;

Υπάρχουν ορισμένοι browsers που δεν υποστηρίζουν την εμφάνιση γραφικών με αποτέλεσμα να μην εμφανίζονται οι εικόνες που τοποθετούμε στις σελίδες μας. Η χρήση της ιδιότητας alt έχει σαν αποτέλεσμα σε έναν τέτοιο browser να εμφανίζεται αντί της εικόνας, το κείμενο το οποίο ορίζεται με την ιδιότητα. Συνήθως το κείμενο αυτό περιγράφει την εικόνα έτσι ώστε ο χρήστης που δεν μπορεί να την δει, να πάρει μια ιδέα για το τι απεικονίζετε σε αυτήν. Το alt είναι τα τρια πρώτα γράμματα από την λέξη alternative.

Αν θέλουμε να βάλουμε κείμενο πάνω στην εικόνα και αυτό να εμφανίζεται πάντα τότε θα πρέπει να χρησιμοποιήσουμε κάποιο πρόγραμμα επεξεργασίας εικόνων. Το πιο εύκολο και γρήγορο είναι το paint των windows. Ανοίγουμε την εικόνα που θέλουμε μέσα από το εν λόγω πρόγραμμα και το μόνο που μας μένει να κάνουμε είναι να πατήσουμε από τα εργαλεία που βρίσκονται αριστερά, το κουμπί με το γράμμα Α ή αλλιώς την επιλογή κείμενο. Γράφουμε ότι θέλουμε μέσα στο πλαίσιο που θα επιλέξουμε μ θέλουμε μέσα στο πλαίσιο που θα επιλέξουμε μόλις πατήσουμε το A και στην συνέχεια πατάμε από το μενού "Αρχείο" και "Αποθήκευση"

..Ο τρόπος για να βάλουμε ένα κείμενο πάνω σε μία εικόνα είναι καταρχήν να δημιουργήσουμε ένα div που θα περιέχει την εικόνα μαζί με το κείμενο. Στη συνέχεια η css να περιέχει την ιδιότητα position για την ενότητα div να έχει οριστεί ως relative, οπότε ορίζοντας την ίδια ιδιότητα (position) για το αντικείμενο που περιέχει το κείμενο σε absoluteμε τις css ιδιότητες top, left, bottom, right μπορούμε να το τοποθετήσουμε όπου θέλουμε.

Οι εικόνες στην html

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

Κείμενο Spectacular Mountain

<!DOCTYPE html>

<html>

<body>

<h2>Spectacular Mountain</h2>

<img src=»pic_mountain.jpg» alt=»Mountain View» style=»width:304px;height:228px;»>

</body>

</htm

Το αποτέλεσμα φαίνεται στην εικόνα:  at: https://html.gr/ikones-stin-html/

Σύνταξη εικόνων HTML 

Στη γλώσσα HTML οι εικόνες παρουσιάζονται χρησιμοποιώντας την ετικέτα . Η ετικέτα  είναι κενή, δηλαδή περιέχιε μόνο χαρακτηριστικά (attributes), και δεν περιέχει ετικέτα κλεισίματος. Το χαρακτηριστικό src attribute καθορίζει τη διεύθυνση URL (διεύθυνση web address) της εικόνας: »some_text»

Το χαρακτηριστικό alt 

Το χαρακτηριστικό alt μας επιτρέπει αν δηλώσουμε ένα εναλλακτικό κείμενο για την εικόνα. Το εναλλακτικό αυτό κείμενο θα εμφανιστεί εάν για οποιαδήποτε αιτία η εικόνα δεν καταφέρει να φτάσει στο φυλλομετρητή του χρήστη. Υπάρχουν πολλές αιτίες για τις οποίες η εικόνα μπορεί να μην καταφέρει να φτάσει στο φυλλομετρητή του χρήστη. Πιθανώς λόγω αργής σύνδεσης. Πιθανώς λόγω σφάλματος στο χαρακτηριστικό src. Πιθανώς επειδή ο χρήστης χρησιμοποιεί screen reader. Εάν ο φυλλομετρητής δεν βρει την εικόνα, τότε θα εμφανίσει το εναλλακτικό κείμενο που δηλώθηκε στο χαρακτηριστικό alt. Ακολουθεί παράδειγμα που δείχνει τη χρήση του χαρακτηριστικού alt για τις εικόνες στην html:

<!DOCTYPE html>

<html>

<body>

<p>If a browser cannot find an image, it will display the alternate text:</p>

<img src=»wrongname.gif» alt=»HTML5 Icon» style=»width:128px;height:128px;»>

</body>

</html> 


111. Τι είναι το CSS (Cascading Style Sheet) και με ποιούς τρόπους μπορεί να ενσωματωθεί σε μια ιστοσελίδα; (αναφέρατε τουλάχιστον δύο τρόπους)

Η CSS (Cascading Style Sheets-Διαδοχικά Φύλλα Στυλ) ή (αλληλουχία φύλλων στυλ) είναι μια γλώσσα υπολογιστή που χρησιμοποιείται δηλαδή για τον έλεγχο της εμφάνισης ενός εγγράφου που γράφτηκε στις γλώσσες HTML και XHTML, δηλαδή για τον έλεγχο της εμφάνισης μιας ιστοσελίδας και γενικότερα ενός εμφάνισης μιας ιστοσελίδας και γενικότερα ενός ιστοτόπου. Η CSS είναι μια γλώσσα όπου. Η CSS είναι μια γλώσσα υπολογιστή προορισμένη να αναπτύσσει στυλιστικά μια ιστοσελίδα δηλαδή να διαμορφώνει περισσότερα χαρακτηριστικά, χρώματα, στοίχιση και δίνει περισσότερες δυνατότητες σε σχέση με την html. Για μια όμορφη και καλοσχεδιασμένη ιστοσελίδα η χρήση της CSS κρίνεται ως απαραίτητη. Δύο τρόποι σύνδεσή τους με την HTML είναι οι εξής:

Μέθοδος 1: Εξωτερική Μέθοδος 1: Εξωτερική σύνδεση σύνδεση - External (link to a style sheet)

Ο πρώτος τρόπος, που είναι αυτός που συνιστάται να χρησιμοποιούμε, είναι ένας σύνδεσμος (link) προς ένα εξωτερικό αρχείο φύλλου στυλ (external stylesheet). Ένα εξωτερικό αρχείο φύλλου στυλ (external style sheet) είναι απλά ένα αρχείο κειμένου (text file) που έχει επέκταση (extension) .css. Μπορούμε να το τοποθετήσουμε (upload) στον Web server, όπως όλα τα άλλα αρχεία.

Για παράδειγμα, ας υποθέσουμε ότι το αρχείο μας style sheet έχει όνομα style.css και βρίσκεται στον φάκελο style. Για να δημιουργήσουμε έναν σύνδεσμο (link) από το HTML έγγραφο, που είναι το default.htm, προς το αρχείο του style sheet, που είναι το style.css, θα πρέπει να γράψουμε τον εξής κώδικα :

<link rel="stylesheet" type="text/css" href="style/style.css" />

Μέθοδος 2 : In-line (attribute style)

Ο άλλος τρόπος με τον οποίο μπορούμε να εφαρμόσουμε ένα CSS σ' ένα HTML κείμενο είναι να χρησιμοποιήσουμε την ιδιότητα (attribute) style της HTML. Το είδαμε ήδη προηγουμένως με το κόκκινο χρώμα φόντου και μπορεί ν με το κόκκινο χρώμα φόντου και μπορεί να εφαρμοσθεί α εφαρμοσθεί ως εξής:

<html>

<head>

<title>Παράδειγμα</title>

</head>

<body style="background-color: #FF0000;">

<p>Αυτή είναι μια κόκκινη σελίδα</p>

</body>

</html>

Το πρότυπο css είναι μία γλώσσα υπολογιστή που ανήκει στην κατηγορία των γλωσσών φύλλων στυλ που χρησιμοποιείται για την εύκολη μαζική μορφοποίηση μια ιστοσελίδας ή ολόκληρου ιστοτόπου.

Υπάρχουν δύο τρόποι να εισάγουμε αυτό το πρότυπο.

Στον πρώτο τρόπο οι εντολές css ενσωματώνονται στο html αρχείο. Οι κατάλληλες εντολές περιλαμβάνονται ανάμεσα στους κωδικούς:

Όλο αυτό το τμήμα θα πρέπει να περιλαμβάνεται μεταξύ των κωδικών <HEAD> και </HEAD> του αρχείου html.

<STYLE TYPE="TEXT/CSS">

και

</STYLE> .

Στο δεύτερο τρόπο, δημιουργούμε ένα ξεχωριστό αρχείο με τις κατάλληλες εντολές, το οποίο και καλείται από τα αρχεία html. Σ' αυτήν την περίπτωση, στο αρχείο html εισάγουμε, πάλι μεταξύ <HEAD> και </HEAD>, την εντολή:

<LINK REL="stylesheet" TYPE="TEXT/CSS" href="/filename.css">

όπου τώρα το αρχείο filename.css περιέχει απλά τις εντολές, με την ίδια μορφή που έχουν όταν ενσωματώνονται στο html αρχείο.


112. Δώστε τον ορισμό του Hyperlink (Υπερσύνδεση) και εξηγήστε ποιό θα είναι το αποτέλεσμα του ορισμού των κάτωθι target: _self, _parent, _blank και _top όταν αυτά θα ενσωματωθούν σε ένα Hyperlink.

Σε ηλεκτρονικό περιβάλλον ως σύνδεσμος (link) ή και υπερσύνδεσμος (hyperlink) ονομάζεται

η σύνδεση (αναφορά ή παραπομπή) μεταξύ των κόμβων του υπερκειμένου. Συνήθως είναι μια λέξη ή φράση, μαρκαρισμένη με χρωματισμό μπλε και με υπογράμμιση, ή ακόμη και μια

εικόνα, που εντοπίζεται στο ηλεκτρονικό κείμενο μιας ιστοσελίδας στο διαδίκτυο και περιέχει

την εντολή να «μεταφέρει» τον χρήστη σε άλλη σχετική ιστοσελίδα, από τον κόμβο

προέλευσης στον κόμβο προορισμού.

Όταν ορίζουμε στην HTML την εντολή  για έναν υπερσ έχουμε τη δυνατότητα να της αποδώσουμε τις εξής ιδιότητες: Self: Ανοίγει την σελίδα στο ίδιο πλαίσιο το οποίο έγινε κλικ. 

Blank: Ανοίγει την σελίδα σε νέο παράθυρο. Αφού πατήσετε τον σύνδεσμο, ανοίγει ένα νέο

παράθυρο του browser στο οποίο θα εμφανιστε;i την σελίδα.

Parent: Ανοίγει την σελίδα στο "πατρικό πλαίσιο ".

Top: ανοίγει την σελίδα στο ίδιο αγνοώντας τα πλαίσια που τυχόν υπάρχουν. 


...Hyperlink: Οι υπερσύνδεσμοι είναι δεσμοί που συνδέονται με κείμενα και γραφικά σε ιστοσελίδες και σε έγγραφα και οι οποίοι βοηθούν να γίνεται απευθείας μετάβαση σε άλλη ιστοσελίδα, χωρίς να χρειαστεί να πληκτρολογηθεί το URL. Κείμενο που σχετίζεται με υπερσύνδεσμο, έχει καθιερωθεί να εμφανίζεται σε μπλε, υπογραμμισμένο φόντο. Για να ενεργοποιηθεί ο υπερσύνδεσμος, πρέπει να γίνει "κλικ" στο κείμενο ή το γραφικό της ιστοσελίδας. 

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

Τα αποτελέσματα με τη χρήση των παρακάτω target _self : ο υπερσύνδεσμος θα ανοίξει στο παράθυρο που βρισκόμαστε. _parent : ο υπερσύνδεσμος θα ανοίξει σε γονικό πλαίσιο (το χρησιμοποιούμε μόνο όταν έχουμε frames _blank : ο υπερσύνδεσμος θα ανοίξει σε καινούργιο παράθυρο του περιηγητή ή σε καινούργια καρτέλα αυτού. _top : ο υπερσύνδεσμος θα ανοίξει σε όλο το πλάτος και το μήκος του ενεργού παραθύρου 


113. Αναφέρατε τον ορισμό του Χάρτη Εικόνας (Image Map). Ποιο εργαλείο χάρτη εικόνας σάς επιτρέπει να σχεδιάσετε ακανόνιστα σχήματα;

Στην HTML και XHTML, ένας image map είναι ένας κατάλογος συντεταγμένων που

σχετίζονται με μια συγκεκριμένη εικόνα και δημιουργήθηκε για να συνδέσει περιοχές της

εικόνας σε διαφορετικούς προορισμούς ή κείμενα (σε αντίθεση με έναν κανονικό σύνδεσμο

εικόνας, στον οποίο συνδέεται ολόκληρη η περιοχή της εικόνας ένα μόνο προορισμό).

Κατάλληλα εργαλείαγια τη δημιουργία Χαρτών Εικόνας είναι τα: Adobe Dreamweaver, το dobe Dreamweaver, το 

KImageMapEditor (ή KDE), και το imagemap p KImageMapEditor (ή KDE), και το imagemap plugin που lugin που έχει η εφαρμογή GIMP

Eίναι μια διαδικασία με την οποία μπορούμε να δημιουργήσουμε πεδία με δυνατότητα κλικ σε μια εικόνα και να τις συνδέσουμε σε διαφορετικούς προορισμούς.

Η επέκταση ImageMap επιτρέπει χάρτες εικόνων με δυνατότητα κλικ. Ένας χάρτης εικόνας είναι μια λίστα συντεταγμένων σε μια συγκεκριμένη εικόνα, η οποία συνδέει περιοχές της εικόνας με πολλούς προορισμούς (σε αντίθεση με έναν κανονικό σύνδεσμο εικόνας, στον οποίο ολόκληρη η περιοχή της εικόνας συνδέεται με έναν μόνο προορισμό). Για παράδειγμα, ένας χάρτης του κόσμου μπορεί να έχει υπερ-σύνδεση σε κάθε χώρα με περαιτέρω πληροφορίες για τη συγκεκριμένη χώρα. Η πρόθεση ενός χάρτη εικόνας είναι να παρέχει έναν εύκολο τρόπο σύνδεσης διαφόρων τμημάτων μιας εικόνας χωρίς να χωρίζει την εικόνα σε ξεχωριστά αρχεία εικόνας. 

;;;;;Στην κύρια περιοχή του παραθύρου χάρτη εικόνας, στην αριστερή πλευρά, θα βρείτε την περιοχή εργασίας όπου μπορείτε να σχεδιάσετε όλες τις περιοχές σχημάτων που θέλετε μαζί με τα σχετικά εργαλεία.

Δίπλα στην περιοχή εργασίας υπάρχουν κάθετα εμφανιζόμενες εικόνες, μια για κατεύθυνση, τρεις για κλήσεις εργαλείων για δημιουργία περιοχές ποικίλου σχήματος, μία για επεξεργασία ιδιοτήτων ζώνης και τελικά μία για σβήσιμο επιλεγμένης ζώνης· Μπορείτε να καλέσετε αυτές τις λειτουργίες με το μενού απεικόνισης επίσης.

Το GIMP είναι ένα εργαλείο επεξεργασίας φωτογραφίας πολλών λειτουργικών. 

Πώς κατασκευάζουμε image maps

HTML Χάρτες Γραφικών (Image Maps)

ΜΑΘΗΜΑΤΑ HTML


114. Ποια είναι η χρήση της παραμέτρου Cell Padding για έναν πίνακα μιας ιστοσελίδας και ποια της παραμέτρου Cell Spacing.

Το CELLSPACING είναι το πλάτος των εικονοστοιχείων (pixel) μεταξύ των επιμέρους κελιών

δεδομένων στον πίνακα. (Το πάχος των γραμμών που παράγει το πλέγμα του πίνακα). Η

προεπιλογή είναι μηδέν. Εάν το BORDER είναι ρυθμισμένο στο 0, οι γραμμές

CELLSPACING θα είναι αόρατες.

Το CELLPADDING αναφέρεται στην απόσταση εικονοστοιχείων μεταξύ των περιεχομένων

των κελιών και του πλαισίου του πίνακα. Η προεπιλογή για αυτήν την ιδιότητα είναι επίσης

μηδέν. Αυτή η λειτουργία δεν χρησιμοποιείται συχνά, αλλά μερικές φορές είναι χρήσιμη όταν

έχουν ενεργοποιηθεί και είναι εμφανή τα πλαίσια και θέλετε το περιεχόμενο να είναι "μακριά" από το περίγραμμα για μια πιο ευδιάκριτη προβολή. Το CELLPADDING είναι αόρατο, ακόμακαι με την ιδιότητα BORDER ενεργοποιημένη.

HTML πίνακες

Περιθώρια περιεχομένου από το περίγραμμα (Cell Padding) 

Η ιδιότητα cell padding καθορίζει το περιθώριο ανάμεσα στο περιεχόμενο του κελιού και στα περιγράμματα του κελιού. Εάν δεν καθορίσουμε τιμή για το cell padding, τότε τα περιεχόμενα των κελιών του πίνακα θα παρουσιάζονται χωρίς περιθώρια.

Το cell spacing καθορίζει την απόσταση μεταξύ των κελιών.

HTML Table Padding & Spacing

Το Cell padding (μαζί με το Cell Spacing ) είναι ένας όροι που χρησιμοποιούνται στη γλώσσα HTML. Όταν χρησιμοποιούνται σε συνδυασμό με το στοιχείο πίνακα, καθορίζουν το διάστημα μεταξύ του περιγράμματος ενός κελιού πίνακα και των περιεχομένων του.


115. Οι περισσότερες ιστοσελίδες χρησιμοποιούν εικόνες και γραφικά για την αναπαράσταση πληροφοριών. Περιγράψτε τα τρία βασικότερα είδη εικόνων (GIF, JPEG, PNG) και εξηγήστε για το καθένα απ' αυτά τα πλεονεκτήματα χρήσης του σε μια ιστοσελίδα.

Κάθε είδος εικόνας έχει τα πλεονεκτήματα του και επιλέγεται κάθε φορά ανάλογα με τη χρήση

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

Η τεχνολογία JPEG είναι ο κατάλληλος τύπος αρχείου για αποθήκευση φωτογραφιών ή

εικόνων που αποτελούνται από πολλά χρώματα. Χρησιμοποιεί πολύπλοκο αλγόριθμο

συμπίεσης που επιτρέπει διαβαθμισμένα να μικραίνει το μέγεθος του αρχείου με την ανάλογη (μικρή) απώλεια στην ποιότητα της εικόνας.

Δεν είναι κατάλληλο για γραφικά, banner, εικόνες με κείμενο ή ξεκάθαρα σχήματα αφού η

μικρή κατά τα άλλα απώλεια θα φαίνεται έντονα στα όρια των γραμμών και της εναλλαγής

σχημάτων. Προγράμματα όπως το Adobe Photoshop μπορούν εύκολα να παράγουν το αρχείο

που θέλουμε.

Τα αρχεία GIF χρησιμοποιούνται όταν η εικόνα αποτελείται από ευδιάκριτα σχήματα και έχει

λίγα χρώματα. Έτσι και αλλιώς τα αρχεία GIF υποστηρίζουν μέχρι 256 χρώματα. Από αυτό το

στοιχείο και μόνο καταλαβαίνουμε πως δεν είναι κατάλληλα αρχεία για φωτογραφίες. Επίσης

ένας άλλος λόγος είναι ότι οι φωτογραφίες έχουν πολλά (άπειρα) πιθανά χρώματα και

αποχρώσεις ενώ δεν έχουν ευδιάκριτα σχήματα. Συμπερασματικά λοιπόν προκύπτει πως μια φωτογραφία δεν πρέπει να αποθηκευτεί ως αρχείο GIF. Ένα άλλο γραφικό όμως π.χ. ένα

διαφημιστικό banner το οποίο είναι απλό και έχει ένα απλό φόντο και ένα κείμενο θα έχει

μικρότερο μέγεθος ως αρχείο GIF. Ο αλγόριθμος συμπιέσεως είναι πολύ απλός, όταν όμως

συναντήσει μια μικρή παλέτα από χρώματα γίνεται πολύ αποδοτικός.

Το βασικό χαρακτηριστικό - πλεονέκτημα των αρχείων GIF δεν είναι το μέγεθος. Μπορεί να

υνδυάσει - συμπεριλάβει περισσότερες των 1 εικόνες και να δημιουργήσει αυτό που λέγεται

animated GIF , δηλαδή μια κινούμενη εικόνα. Όλοι έχουν δει στο διαδίκτυο εικόνες που

κινούνται ή εναλλάσσονται πιο σωστά. Ένα τρόπος για να δημιουργηθούν είναι τα

προγράμματα που παράγουν animated GIF αρχεία.

Οι εικόνες GIF υποστηρίζουν και την διαφάνεια ( transparency ) . Δηλαδή ένα μέρος της

εικόνας να μην έχει περιεχόμενο και στην θέση του να φαίνεται ότι υπάρχει από πίσω. Οι εικόνες PNG αναπτύχθηκαν με σκοπό παρόμοιο με αυτόν των αρχείων GIF. Έχουν μικρό

μέγεθος σε ξεκάθαρα σχήματα, δεν είναι κατάλληλη μορφή για αποθήκευση φωτογραφιών

αλλά υπερτερούν όσον αφορά την δυνατότητα της διαφάνειας. Η δυνατότητα των αρχείων GIF για τέλεια αποτύπωση διαφανών εικόνων είναι περιορισμένη ενώ αντίστοιχα το αποτέλεσμα με την χρήση των αρχείων PNG μπορεί να είναι τέλειο. Άρα το δυνατό σημείο των αρχείων PNG είναι η ικανότητα στον τομέα της διαφάνειας ( transparency ).

Το jpg χρησιμοποιείται ευρέως για στο διαδίκτυο για φωτογραφικές εικόνες και αυτό γιατί μας δίνει πολύ περισσότερες λεπτομέρειες και συγχρόνως έχει και μικρή χωρητικότητα. Οι εικόνες PNG πολύ συχνά χρησιμοποιούνται για την δημιουργία των λογοτύπων που ενέχει διαφάνεια και ξεθώριασμα. Ο τύπος αρχείων GIF, χρησιμοποιείται σε κινούμενα σχέδια καθώς και για λογότυπα με πλακάτα χρώματα.Λόγω του ότι ο τύπος αρχείων εικόνων GIF δεν έχει απώλειες, μπορεί να χρησιμοποιηθεί στις περιπτώσεις που χρειάζεται να διατηρηθούν οι αυστηρές γραμμές στην τυπογραφία και στα γεωμετρικά σχήματα. 


116. Διατυπώστε τη συνάρτηση swap_image() σε Javascript που δέχεται ως ορίσματα α) το id του αντικειμένου που θέλουμε να διαχειριστούμε και β) το path της εικόνας "pic2.jpg" που θα χρησιμοποιήσουμε ως rollover image. Προσδιορίστε τι είναι το HTML αντικείμενο που καλεί τη συνάρτηση.

Αρχικά πρέπει να ορίσουμε το script στο head της HTML.

<head>

<script <script language=" language="javascript"> javascript">

function swap_image(){

document.get document.getElementById("m ElementById("myID").src = yID").src = "path/pic2.jpg "path/pic2.jpg";

</script>

</head>

Έπειτα Έπειτα στο body δηλώνουμε δηλώνουμε το HTML αντικείμενο αντικείμενο που θα κάνει rollover

<body>

<img src="path/pi src="path/pic2.jpg" c2.jpg"

onMouseOver="swap_image()"/>

</body>

......

<html>

<head>

<script type="text/javascript">

function changeImage(ImageID,ImageFileName) {

ImageFileName = ImageFileName + '/pic2.jpg';

document.getElementById(ImageID).src = ImageFileName;

} </script>

</head>

<body>

<img src="images/pic1.jpg" id= "TestID"

onmouseover="changeImage('TestID','images')" />

</body>


117. Διατυπώστε τη συνάρτηση check_form() σε Javascript, που ελέγχει εάν τα πεδία username και password της HTML φόρμας "form1" δεν είναι κενά. Εάν κάποιo από αυτά είναι κενό, να ανοίγει ένα message box με την αντίστοιχη ειδοποίηση στον client.

function check_form(){

if(document.form1.username. form1.username.value== "" value== "" ||

document.form1.password.value==){

window.alert window.alert("Username or ("Username or password is empty"); password is empty");

}

}

<html>

<head>

<title>WebCheatSheet - JavaScript Tutorial</title>

<script >

function validateFormOnSubmit(theForm) {

var reason = "";

reason += validateEmpty(theForm.username);

reason += validateEmpty(theForm.pwd);

if (reason != "") {

alert("Some fields need correction:\n" + reason);

return false;

}

return true;

}

function validateEmpty(fld) {

var error = "";

if (fld.value.length == 0) {

fld.style.background = 'Yellow';

error = "The required field has not been filled in.\n"

} else {

fld.style.background = 'White';

}

return error;

}

</script>

</head>

<body>

<h1>WebCheatSheet - JavaScript Tutorial</h1>

<form name="demo" onsubmit="return validateFormOnSubmit(this)" action="test.htm">

<table summary="Demonstration form">

<tbody>

<tr>

<td><label for="username">Your user name:</label></td>

<td><input size="35" maxlength="50" type="text"></td>

</tr>

<tr>

<td><label for="pwd">Your password</label></td>

<td><input size="35" maxlength="25" type="password"></td>

</tr>

<tr>

<td>&nbsp;</td>

<td><input value="Send" type="submit" ></td>

<td>&nbsp;</td>

</tr>

</tbody>

</table>

</form>

</body>

</html>


118. Διατυπώστε τον κώδικα για να διαβάσετε το cookie "user" και εάν αυτό υπάρχει, τυπώστε στο browser " Hello..." και ό,τι περιέχει το cookie, αλλιώς αποθηκεύσατε το cookie "user" με τιμή "Unknown visitor" και διάρκεια ζωής 1 ώρα.

<?php

if(isset($_COOKIE["user"])){

echo "Hello...".$_C "Hello...".$_COOKIE["user OOKIE["user"];

}else{

setcookie( setcookie("user", "user", "Unknown "Unknown visitor",tim visitor",time()+3600,"/"); e()+3600,"/");

}

?>

<!DOCTYPE html>

<html>

<head>

<script>

function setCookie(cname,cvalue,exmins) {

var d = new Date();

d.setTime(d.getTime() + (exmins*60*1000));

var expires = "expires=" + d.toGMTString();

document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";

}

function getCookie(cname) {

var name = cname + "=";

var decodedCookie = decodeURIComponent(document.cookie);

var ca = decodedCookie.split(';');

for(var i = 0; i < ca.length; i++) {

var c = ca[i];

while (c.charAt(0) == ' ') {

c = c.substring(1);

}

if (c.indexOf(name) == 0) {

return c.substring(name.length, c.length);

}

}

return "";

}

function checkCookie() {

var user=getCookie("user1");

if (user != "") {

alert("Welcome again " + user);

} else {

setCookie("user1", "unknown user", 60);

}

}

</script>

</head>

<body onload="checkCookie()">

</body>

</html>


119. Διατυπώστε τον κώδικα για ένα script που θα τυπώσει ένα HTML table με 7 σειρές και 6 στήλες. Σε κάθε κελί θα υπάρχει και ένας αριθμός σε αύξουσα σειρά από το 1 ως το 42. Ο πίνακας θα είναι κεντραρισμένος στην σελίδα, με border 1 και padding 4. Η στοίχιση μέσα στα κελιά θα είναι κεντρική και κάθε έβδομος αριθμός (7,14,21...) θα είναι έντονος (bold) και θα έχει χρώμα κόκκινο.

<script>

function makeTableHTML( function makeTableHTML() {

var result = "<table align="center" border= "1" cellspacing="4"

cellpadding="4">";

var sum=1;

for(var for(var i=1; i<=7; i++) {

result += "<tr>";

for(var j=1; j<=6 j++){

if (sum%7==0){

result += "<td bgcolor="#FF0000" align=

"center"><b> "center"><b>"+ sum +"</b></td>"; sum +"</b></td>";

sum++;}

else{

result += "<td result += "<td align= "center">"+ sum +"</td>"; align= "center">"+ sum +"</td>";

sum++;}

}

result += "</tr>";

}

result += "</table>";

return result;

}

</scri

<html>

<body>

<script>

document.write('<table>');

var i,j,num=0;

for (i = 0; i < 7; i++) {

num++;

document.write('<tr><td> <font color="red"> <b>'+num+'</b></font></td>');

for (j=2; j<7; j++) {

num++;

document.write('<td>'+num+'</td>');

}

document.write("</tr>");

}

document.write('</table>');

</script>

</body>

</html>


120. Στείλτε ένα email σε όλες τις εγγραφές του πίνακα subscribers χρησιμοποιώντας τη συνάρτηση mail (to, subject, body). Το email θα έχει θέμα "Login info" και περιεχόμενο "Your username is <το username χρήστη> and your password is <το password χρήστη> ". Δεν απαιτείται ο κώδικας σύνδεσης με τον (My)Sql server. Ο πίνακας subscribers έχει τα πεδία id, username, password, email.

<?php

$servername = "localhost";

$username = "username";

$password = "password";

$dbname = "myDB";

$subject = "Login info";

// Create connection

$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection

if ($conn->connect_error) {

die("Connection failed: " . $conn->connect_error);

}

$sql = "SELECT id, username, password, email FROM subscribers";

$result = $conn->query($sql);

if ($result->num_rows > 0) {

// output data of each row

while($row = $result->fetch_assoc()) {

$body = "Your username is" . $row["username"] . "and your password is" . $row["password"];

mail($row["email"], $subject, $body);

}

} else {

echo "0 results";

}

$conn->close();

?>


121. Ποιές είναι οι σημάνσεις HTML (<σήμανση>), όπως εμφανίζονται στον επιλογέα σήμανσης του Dreamweaver, α) για ένα πίνακα, β) για μια γραμμή πίνακα, γ) για ένα κελί πίνακα, και δ) για μια κεφαλίδα πίνακα; Αναφέρατε μόνο τον κώδικό σήμανσης για την κάθε μια από τις τέσσερις περιπτώσεις.

<table>

<tr>

<td>

<th>

Το Adobe Dreamweaver είναι το δημοφιλέστερο και επικρατέστερο πρόγραμμα σχεδιασμού ιστοσελίδων στην αγορά. Με το Dreamweaver μπορείτε να κάνετε όλες τις απαιτούμενες εργασίες για τον σχεδιασμό και τη συντήρηση απλών αλλά και σύνθετων ιστοχώρων. 

Πίνακες HTML

Οι πίνακες στην html ορίζονται με τις ετικέτες table, tr και td οι οποίες όλες μαζί έχουν την ακόλουθη δομή:

<table>

<tr>

<td>1.1</td>

<td>1.2</td>

<td>1.3</td>

</tr>

<tr>

<td>2.1</td>

<td>2.2</td>

<td>2.3</td>

</tr>

</table>

 Οι ετικέτες <table> και </table> ορίζουν την αρχή και τον τερματισμό του πίνακα. Κάθε γραμμή του πίνακα ορίζεται από τις ετικέτες <tr> και </tr>. Στο συγκεκριμένο παράδειγμα βλέπουμε 2 ζευγάρια αυτών των ετικετών, δηλαδή 2 γραμμές. Σε κάθε μια γραμμή έχουμε 3 κελιά κάθε ένα από τα οποία ορίζεται με τις ετικέτες <td> και </td>. Στην ουσία οι ετικέτες αυτές ορίζουν τις στήλες του πίνακα. Για τον λόγο αυτόν βλέπουμε μεταξύ των ετικετών γραμμών, tr, να ορίζονται 3 κελιά με τις ετικέτες td.

1.1 1.2 1.3

2.1 2.2 2.3

Σε έναν πίνακα μπορούμε να ορίσουμε τα κελιά, td, μιας γραμμής, tr, ως επικεφαλίδες. Αυτό γίνεται με την χρήση της ετικέτας <th> στην θέση της ετικέτας <td>. Η μορφοποίηση της γραμμής-επικεφαλίδας είναι κεντραρισμένο κείμενο με έντονη γραφή. Στο ακόλουθο παράδειγμα παρατηρήστε την χρήση του th ως ετικέτα επικεφαλίδας:

<table>

<tr>

<th scope="col">Όνομα</th>

<th scope="col">Επίθετο</th>

<th scope="col">Βαθμός</th>

</tr>

<tr>

<td>Γιώργος</td>

<td>Γεωργόπουλος</td>

<td>14</td>

</tr>

<tr>

<td>Γιάννης</td>

<td>Γιαννόπουλος</td>

<td>16</td>

</tr>

</table>

if ($result->num_rows > 0) {

// output data of each row

while($row = $result->fetch_assoc()) {

$body = "Your username is" . $row["username"] . "and your password is" . $row["password"];

mail($row["email"], $subject, $body);

}

} else {

echo "0 results";

}

$conn->close();

?>

Στhn πρώτη γραμμή του πίνακα, η οποία ορίζεται από το πρώτο ζευγάρι tr, χρησιμοποιείται η ετικέτα th ως επικεφαλίδα.

Όνομα Επίθετο Βαθμός

Γιώργος Γεωργόπουλος 14

Γιάννης Γιαννόπουλος 16


122. Γιατί είναι προτιμότερο να ορίζω το στυλ των ιστοσελίδων μου (CSS) σε ένα εξωτερικό αρχείο παρά να εισάγω το στυλ εσωτερικά σε κάθε μια ιστοσελίδα; Ποιό είναι το πρόβλημα με την χρήση εσωτερικών (inline) στυλ;

Είναι προτιμότερο να ορίζω το στυλ των ιστοσελίδων μου (CSS) σε ένα εξωτερικό αρχείο γιατί έχουμε:

  • Πλήρη έλεγχο της δομής της σελίδας.
  • Ευκολότερη συντήρηση της ιστοσελίδας μας.
  • Λιγότερο χρόνο loading της σελίδας λόγω του ότι το css γίνεται cached στον browser.
  • Μεγαλύτερο page ranking(SEO Friendly).

Τα προβλήματα που προκύπτουν με την χρήση εσωτερικού στυλ είναι ύ στυλ είναι ότι:

  • Mπορεί να κάνει override που εμείς δεν θέλουμε λόγω αλληλουχίας
  • Πρέπει να γράφουμε το στυλ για κάθε element π Πρέπει να γράφουμε το στυλ για κάθε element που θέλουμε να προσθέσουμε. ουμε να προσθέσουμε.
  • Δεν μπορούμε να βάλουμε στυλ σε ψευδο-elements.
  • Μεγαλώνει πολύ το html αρχείο μας.

Τι είναι το CSS (Cascading Style Sheet) και με ποιούς τρόπους μπορεί να ενσωματωθεί σε μια ιστοσελίδα;  

Το πρότυπο css είναι μία γλώσσα υπολογιστή που ανήκει στην κατηγορία των γλωσσών φύλλων στυλ που χρησιμοποιείται για την εύκολη μαζική μορφοποίηση μια ιστοσελίδας ή ολόκληρου ιστοτόπου.

Υπάρχουν δύο τρόποι να εισάγουμε αυτό το πρότυπο.

Στον πρώτο τρόπο οι εντολές css ενσωματώνονται στο html αρχείο. Οι κατάλληλες εντολές περιλαμβάνονται ανάμεσα στους κωδικούς:

Όλο αυτό το τμήμα θα πρέπει να περιλαμβάνεται μεταξύ των κωδικών <HEAD> και </HEAD> του αρχείου html.

<STYLE TYPE="TEXT/CSS">

και

</STYLE> .

Στο δεύτερο τρόπο, δημιουργούμε ένα ξεχωριστό αρχείο με τις κατάλληλες εντολές, το οποίο και καλείται από τα αρχεία html. Σ' αυτήν την περίπτωση, στο αρχείο html εισάγουμε, πάλι μεταξύ <HEAD> και </HEAD>, την εντολή:

<LINK REL="stylesheet" TYPE="TEXT/CSS" href="/filename.css">

όπου τώρα το αρχείο filename.css περιέχει απλά τις εντολές, με την ίδια μορφή που έχουν όταν ενσωματώνονται στο html αρχείο.

Εισαγωγή στο CSS 

Μπορούμε να εισάγουμε CSS στη σελίδα μας με τρεις διαφορετικούς τρόπους, αναλόγως την περίπτωση. Οι τρόποι αυτοί, κατά σειρά φθίνουσα προτεραιότητας, είναι:

Inline CSS: Αν επιθυμούμε να μορφοποιήσουμε ένα στοιχείο μόνο, και δεν πρόκειται να χρειαστούμε αυτό το είδος μορφοποίησης για τίποτε άλλο στο site, μπορούμε να γράψουμε «χύμα» (δηλ. χωρίς το κομμάτι του CSS selector και χωρίς αγκύλες) CSS properties μέσα στο attribute style, το οποίο το διαθέτει σχεδόν κάθε στοιχείο html. Παραδείγματος χάριν, για να κάνουμε μια συγκεκριμένη παράγραφο κόκκινη,μπορούμε να προσθέσουμε style="color:red;" στο <p> tag (ολοκληρωμένα: <p style="color:red;">).

Αξίζει να σημειωθεί, ότι αν κάποιες από τις ιδιότητες που θα γράψουμε εντός της attribute style ενός στοιχείου «συγκρούονται» με κανόνες CSS που έχουν οριστεί για αυτό αλλού και το αφορούν, τότε ο browserθα επιλέξει να εφαρμόσει αυτά που γράψαμε εντός του attribute style, ως πιο συγκεκριμένα για το στοιχείο αυτό.

CSS για μια συγκεκριμένη σελίδα: Πολλές φορές, μπορεί να θέλουμε να εφαρμόσουμε κάποιους κανόνες CSSμόνο για τη συγκεκριμένη σελίδα και όχι για όλο το site (ή να διαφοροποιήσουμε σε κάποιες ιδιότητες τους υπάρχοντες). Ένας τρόπος να το κάνουμε αυτό, για να μην δημιουργήσουμε ξεχωριστό αρχείο CSS είναι να εισάγουμε εντός των tags <head>...</head> της σελίδας τους κανόνες CSS μας μέσα σε <style> tags(με την html attribute type τους σε text/css). Παραδείγματος χάριν, για να κάνουμε το χρώμα γραμμάτων μιας συγκεκριμένης σελίδας γκρι, θα γράφαμε στο head της:

<style type="text/css">

body

{

color:gray;

}

</style>

Αξίζει να σημειωθεί ότι συνήθως όταν ξεκινάμε την ανάπτυξη ενός site, είναι πιο βολικό να χρησιμοποιήσουμε αυτό τον τρόπο αρχικά, μιας και πρέπει να επεξεργαζόμαστε μόνο ένα αρχείο αντί για δύο. Όταν τελειώνουμε την πρώτη σελίδα, συνήθως μεταφέρουμε το CSS που έχουμε γράψει σε εξωτερικό αρχείο (βλ. παρακάτω) ώστε να μπορούμε να χρησιμοποιήσουμε τους ίδιους κανόνες CSS και στις άλλες σελίδες του site μας, χωρίς να πρέπει φυσικά να τους κάνουμε copy‐paste σε κάθε σελίδα.

Εξωτερικό αρχείο CSS: Η πιο «σωστή» χρήση του CSS και αυτή που θα έπρεπε να είναι η πρώτη λύση στην οποία θα καταφύγουμε, είναι η χρήση εξωτερικού αρχείου CSS. Για να τη χρησιμοποιήσουμε, γράφουμε τους κανόνες CSS μας σε ένα αρχείο με επέκταση css (πχ main.css) και στο head της κάθε σελίδας του site μας γράφουμε <link href="main.css" type="text/css" /> (αν το όνομα του αρχείου CSS είναι main.css, αλλιώς προφανώς γράφουμε το σωστό όνομα αρχείου). Αξίζει να σημειωθεί ότι μπορούμε να έχουμε πολλά αρχεία css στην ίδια σελίδα, και μεγαλύτερη προτεραιότητα έχει πάντα αυτό που έχει γραφτεί τελευταίο.


123 (Cascading Style Sheet); Περιγράψτε ποιος είναι ο ρόλος του κάθε τύπου. Δώστε ένα παράδειγμα για κάθε τύπο.

cascade - αλληλουχία style -μορφή sheet -φύλλο


• HTML Selector: Για να καθορίσουμε τον τρόπο με τον οποίο μια συγκεκριμένη ετικέτα
HTML θα πρέπει να είναι (στυλ) σε ολόκληρη την ιστοσελίδα μας, χρησιμοποιήστε τον
επιλογέα HTML. Για παράδειγμα, εάν θέλουμε όλες οι ετικέτες επιπέδου κεφαλίδας 2 (h2)
πρέπει να είναι κόκκινες:h2{color:red}.
• Class Selector: Αν δεν θέλoυμε όλες οι ετικέτες μας να εμφανίζονται ακριβώς ίδιες,
χρειαζόμαστε χρειαζόμαστε έναν επιλο έναν επιλογέα που μπο που μπορεί να εφαρμοστεί εφαρμοστεί σε οποιαδήποτε σε οποιαδήποτε ετικέτα ετικέτα HTML.
Αυτός είναι ο επιλογέας class. Κατά τον ορισμό μιας class, τοποθετούμε μια τελεία αμέσως
πριν από το όνομα της class για να γνωρίζει το πρόγραμμα περιήγησης ότι πρόκειται για
class selector.Αν θέλαμε να κάνουμε το background-color κίτρινο χρησιμοποιώντας class
θα γράφαμε:
CSS
.example{background-color:yellow;}
HTML
<h2 class="example">text</h2>
• ID Selector: Το πρώτο πράγμα που πρέπει να γνωρίζουμε για τον ID Selector είναι ότι,
χρησιμοποιείται αυτός ο επιλογέας μόνο μια φορά σε μια ετικέτα HTML και λειτουργεί
ακριβώς όπως ο Class Selector. Η μόνη προφανής διαφορά είναι ότι, στην αρχή,
χρησιμοποιείτε ένα # για να το δηλώσουμε, αντί μιας τελείας. Αν θέλαμε ένα text να έχει
χρώμα πράσινο με την χρήση του ID Se χρώμα πράσινο με την χρήση του ID Selector θα γράφα lector θα γράφαμε:
CSS
#example{color:green;}
HTML
<div>text</div>

Which CSS entities participate in the cascade

..................................

Cascading Style Sheet

Τι είναι το CSS

Το CSS σημαίνει Cascading Style Sheets, που σημαίνει Cascading Style Sheets. Χρησιμοποιείται για τη διακόσμηση ιστοσελίδων. Εάν το HTML περιέχει περιεχόμενο (τι θα εμφανίσει το πρόγραμμα περιήγησης), τότε το CSS καθορίζει την εμφάνισή του (πώς θα το εμφανίσει το πρόγραμμα περιήγησης). Η ομορφιά του CSS είναι ότι με τη βοήθεια ενός στυλ μπορείτε να σχεδιάσετε όλα τα στοιχεία του ίδιου τύπου μιας σελίδας ή ενός ολόκληρου ιστότοπου ταυτόχρονα (όλοι οι σύνδεσμοι, οι παράγραφοι, οι λίστες ταυτόχρονα). Με ένα στυλ CSS, ορίζετε μία φορά πώς πρέπει να μοιάζει ένα συγκεκριμένο στοιχείο, για παράδειγμα, εικόνες και αλλάζουν την εμφάνισή τους σε όλα τα έγγραφα ταυτόχρονα. Για να αλλάξετε τη μορφοποίηση του κειμένου σε ολόκληρο τον ιστότοπό σας, χρειάζεται μόνο να αλλάξετε τον κώδικα CSS μία φορά.


124. Περιγράψτε πώς, με τη βοήθεια σχετικού εργαλείου, μπορείτε να εισάγετε σε μια ιστοσελίδα έναν πίνακα δύο στηλών (η πρώτη πλάτους 100 pixels και η δεύτερη πλάτους 300 pixels) και τριών γραμμών, στοιχισμένο στο κέντρο.

1ος τρόπος: Χρησιμοποιούμε editor και ακολουθούμε τα βήματα:

Μπορούμε να χρησιμοποιήσουμε το εργαλείο Notepad++,

  • File->New
  • Γράφουμε τον παρακάτω κώδικα:

<table border="1">

<tr>

<tdwidth:100px; text-align: text-align:center;">col1 center;">col1,row1</td> ,row1</td>

<tdwidth:300px; text-align:center; text-align:center;">col2,row1</t ">col2,row1</td>

</tr>

<tr>

<tdwidth:100px; text-align:center; text-align:center;">col1,row2</t ">col1,row2</td>

<tdwidth:300px; text-align:center; text-align:center;">col2,row2</t ">col2,row2</td>

</tr>

<tr>

<tdwidth:100px; h:100px; text-align:center; text-align:center;">col1,row3</t ">col1,row3</td>

<tdwidth:300px; text-align:center; text-align:center;">col2,row3</t ">col2,row3</td>

</tr>

  • Αποθηκεύουμε το αρχείο με κατάληξη .html (πχ. test.html)
  • Για να δούμε το αποτέλεσμα ανοίγουμε το αρχείο html με ένα browser(chrome,mozilla,IE)

2ος τρόπος:Χρησιμοποιούμε dreamweave

Ανοίγουμε το dreamweaver,από το menu πατάμε Εισαγωγή->πίνακας και στο παράθυρο που ανοίγει βάζουμε τις τιμές που επιθυμούμε.


125. Περιγράψτε πώς με τη χρήση σχετικού εργαλείου, μπορείτε να δημιουργήσετε IMAGE HOTSPOTS, να εισάγετε ένα JAVA APPLET και πώς μπορείτε να εισάγετε μια αριθμημένη λίστα σε μια ιστοσελίδα. Ποιους άλλους τύπους λίστας μπορείτε να εισάγετε και με ποιο τρόπο;

Για να δημιουργήσουμε ένα image hotspot μέσα στο tag <img> βάζουμε το attribute usemap="#name"Μετά ορίζουμε το map μας:

<map name="name">

<area shape="circle" cords="90,58,3 href="example.htm" alt="Example"

</map>

Για να εισάγουμε ένα java applet στην σελίδα μας χρησιμοποιούμε το tag <applet>Για να εισάγουμε

ένα applet το οποίο θα ζωγραφίζει φούσκες ο κώδικας μας θα ήταν έτσι:<applet code="Bubbles.class"

width="400px" height="200">Example applet that draws bubbles</applet>

Για την εισαγωγή αριθμημένης λίστας χρησιμοποιούμε το attribute type στο tag <ol>:

<ol type="1">

<li>Example1</li>

<li>Example2</li>

</ol> Ο κώδικας αυτός θα δημιουργήσει: 1.Example1

2.Example2

Άλλοι τύποι λιστών είναι: Αρίθμηση με κεφαλαία γράμματα(type="A"),αρίθμηση με πεζά γράμματα(type="a"),αρίθμηση με κεφαλαίους λατινικούς αριθμούς(type="I") και αρίθμηση με πεζούς λατινικούς αριθμούς(type="i").

Επίσης άλλος τρόπος εισαγωγής αποτελεί η λίστα περιγραφής (Descri ption List). Η List). Η ετικέτα <dl> ετικέτα <dl> ορίζει τη ορίζει τη λίστα περι λίστα περιγραφής, η ετικέ γραφής, η ετικέτα <dt> τα <dt> ορίζει τον ορίζει τον όρο (όν όρο (όνομα) και η ετικέτα <dd> περιγράφει κάθε όρο:

<dl>

<dt>Example></dt>

<dd>this is an <dd>this is an example</dd> example</dd>

</dl>


126. Τι είναι τα «ερωτήματα» (queries) στο σχεσιακό μοντέλο Βάσεων δεδομένων;

Τα ερωτήματα είναι εντολές που υποβάλλονται προς τη βάση δεδομένων. Χρησιμοποιούνται για την ενημέρωση και διαχείριση των σχεσιακών βάσεων δεδομένων. Για τη σύνταξη των ερωτημάτων χρησιμοποιείται η γλώσσα SQL. 

Εισαγωγή στις Βάσεις Δεδομένων 

Βάση Δεδομένων: μια μεγάλη συλλογή δεδομένων, μοντελοποιεί μια επιχείρηση του πραγματικού κόσμου. Οντότητες (πχ. Φοιτητές, Μαθήματα) Συσχετίσεις (πχ. Ο Γιάννης παρακολουθεί το Β18) 

Το σχεσιακό μοντέλο Το πιο διαδεδομένο μοντέλο ΒΔ σήμερα. Βασικό δομικό στοιχείο: η σχέση Είναι ένα σύνολο εγγραφών. Ή επίσης ένας πίνακας με στήλες και σειρές. Κάθε σχέση έχει το δικό της σχήμα, που περιγράφει τις στήλες του πίνακα, ή αλλιώς τα πεδία. Περιορισμοί ορθότητας εξασφαλίζουν συνθήκες για τις εγγραφές. 

Τα queries είναι ερωτήματα προς μια βάση δεδομένων. Στις σχεσιακές βάσεις δεδομένων υλοποιούνται με μια γλώσσα ερωταποκρίσεων που ονομάζεται SQL (συντομογρ. του όρου Structured Qeury Language).

Κάθε ερώτημα επεξεργάζεται από το σύστημα διαχείρισης της βάσης και συναρτήσει των δεδομένων που υπάρχουν στους πίνακες εξάγει κάποιες πληροφορίες. Η δομή και το συντακτικό της SQL ορίζεται από τον οργανισμό ANSI. Υπάρχουν πολλές παραλλαγές της SQL ανάλογα με τον κατασκευαστή της εκάστοτε βάσης δεδομένων.

Στο σχεσιακό μοντέλο βάσης δεδομένων, οι αντίστοιχες πράξεις της σχεσιακής άλγεβρας υλοποιούνται με χρήση ερωτημάτων. Οι βασικές πράξεις της σχεσιακής αλγεβρας είναι η επιλογή, η προβολή, η ένωση, η διαφορά και το καρτεσιανό γινόμενο.



127. Τι είναι ένα σύστημα διαχείρισης βάσης δεδομένων;

Σύστημα Διαχείρισης Βάσεων Δεδομένων (DBMS) είναι ένα σύνολο προγραμμάτων που επιτρέπουν το χειρισμό των πληροφοριών μιας ή περισσοτέρων Βάσεων Δεδομένων που δημιουργήθηκαν από το ίδιο σύστημα. Τα συστήματα αυτά, δίνουν γενικής χρήσης εργαλεία που επιτρέπουν τη δημιουργία και τον χειρισμό πληροφοριών. 

Το σχεσιακό μοντέλο δεδομένων

Εισαγωγή στα Συστήματα Βάσεων Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Δεδομένων

Σύστημα Διαχείρισης Βάσεων Δεδομένων (ΣΔΒΔ) Database Management System (DBMS) λογισμικό (σύνολο από προγράμματα) για δημιουργία και χρήση μιας βάσης δεδομένων.

Βάση Δεδομένων: συλλογή από σχετιζόμενα δεδομένα.

Ένα σύστημα διαχείρισης βάσης δεδομένων (ΣΔΒΔ) (database management system (DBMS)) αποτελείται από ένα σύνολο δεδομένων και προγράμματα πρόσβασης στα δεδομένα αυτά. Το σύνολο των δεδομένων καλείται βάση δεδομένων (database). Στόχος του ΣΔΒΔ είναι η εύκολη και γρήγορη χρήση και ανάκτηση των δεδομένων. Η διαχείριση των δεδομένων περιλαμβάνει:
  • τον ορισμό δομών για τη αποθήκευση των δεδομένων
  • τον ορισμό μεθόδων για τη διαχείριση των δεδομένων
Ο ορισμός της δομής της βάσης δεδομένων βασίζεται σε ένα μοντέλο δεδομένων το οποίο ορίζει τον τρόπο που περιγράφονται τα δεδομένα, οι σχέσεις τους, η σημασία τους και οι περιορισμοί πάνω στα δεδομένα αυτά.

Το σχεσιακό μοντέλο (relational model) δεδομένων παριστάνει δεδομένα και τις σχέσεις τους ως ένα σύνολο πινάκων. Κάθε πίνακας (table) αποτελείται από στήλες (columns) με μοναδικά ονόματα. Μια γραμμή (row) του πίνακα παριστάνει μια σχέση (relationship) ανάμεσα σε ένα σύνολο από τιμές. Ο πίνακας που ακολουθεί παριστάνει έναν τηλεφωνικό κατάλογο. Αποτελείται από δύο στήλες και πέντε γραμμές. 

Η SQL (structured query language) αποτελεί σήμερα την πιο διαδεδομένη γλώσσα διαχείρισης σχεσιακών βάσεων δεδομένων. Η SQL παρέχει δυνατότητες για:

  • τον ορισμό, τη διαγραφή και τη μεταβολή πινάκων και κλειδιών,
  • τη σύνταξη ερωτήσεων (queries),
  • την εισαγωγή, διαγραφή και μεταβολή στοιχείων,
  • τον ορισμό όψεων (views) πάνω στα δεδομένα,
  • τον ορισμό δικαιωμάτων πρόσβασης,
  • τον έλεγχο της ακεραιότητας των στοιχείων,
  • τον έλεγχο συναλλαγών (transaction)

Η SQL είναι ορισμένη ως διεθνές πρότυπο. Ένα υποσύνολο της SQL υποστηρίζεται από την βάση δεδομένων Microsoft Access.


128. Τι χρησιμοποιούμε προκειμένου να απεικονίσουμε τον πραγματικό κόσμο σ' ένα μοντέλο, το οποίο εύκολα μεταφράζεται σε Σύστημα Διαχείρισης Βάσης Δεδομένων (ΣΔΒΔ);

Στην περίπτωση των σχεσιακών βάσεων δεδομένων, οι πληροφορίες συνδέονται μεταξύ τους με ΣΧΕΣΕΙΣ που απορρέουν από τα κοινά πεδία διαφορετικών αρχείων. Σε αυτό το είδος Βάσεων Δεδομένων, τα αρχεία λέγονται "tables" (πίνακες), τα records "rows" (γραμμές) και τα πεδία "columns" (στήλες). 

Μοντελοποίηση 


129. Εξηγήστε τι σημαίνει ότι «μία σχέση οντοτήτων είναι ένα προς πολλά». Δώστε ένα παράδειγμα.

Μία συσχέτιση είναι "Ένα - προς - Πολλά" όταν κάθε μέλος της πρώτης συνδέεται με οποιοδήποτε αριθμό μελών της δεύτερης, ενώ κάθε μέλος της δεύτερης συνδέεται το πολύ με ένα μέλος της πρώτης. Έτσι σχέση "Ένα - προς - Πολλά" έχουμε όταν το πρωτεύον κλειδί ενός πίνακα αντιστοιχεί σε πολλές εγγραφές σε έναν άλλο πίνακα. Παραδείγματα σχέσης "Ένα - προς - Πολλά" είναι: Πελάτης - Παραγγελίες του πελάτη Μαθητής - Βαθμοί του μαθητή Κάθε προμηθευτής προμηθεύει πολλά προϊόντα και κάθε προϊόν προμηθεύεται από έναν μόνο προμηθευτή.

Μοντέλο Οντοτήτων ΣυσχετίσεωνΛ.

Στοιχεία Θεωρίας Σχεδιασμού Σχεσιακών Βάσεων Δεδομένων 

Μοντέλο Οντοτήτων-Συσχετίσεων

 Ενδεικτικές λύσεις ασκήσεων


130. Τι είναι λειτουργικές εξαρτήσεις (functional dependecies); Ποιες μορφές λειτουργικών εξαρτήσεων γνωρίζετε;

Μια λειτουργική εξάρτηση σημαίνει ότι χρησιμοποιώντας τη γνωστή τιμή μίας στήλης η αντίστοιχη τιμή ή σύνολο τιμών μιας άλλης στήλης ή ομάδας στηλών μπορεί να καθορίζεται πάντα μοναδικά. Τετριμμένη λειτουργική Εξάρτηση (→) έχουμε όταν μία στήλη εξαρτάται από το κλειδί ενός στήλη εξαρτάται από το κλειδί ενός πίνακα. πίνακα. Π.χ. Από τον κωδικό του υπαλλήλου καθορίζονται μοναδικά το επίθετο και το όνομα του υπαλλήλου. Emp_no→emp_lname Εξάρτηση πολλαπλών τιμών (→ →) έχουμε όταν η τιμή μίας στήλη μπορεί να καθορίζει το αντίστοιχο σύνολο τιμών άλλης στήλης ή στηλών. Π.χ. Ο κωδικός ISBN του βιβλίου καθορίζει πάντα όλους τους συγγραφείς του. Έτσι η ιδιότητα authros έχει εξάρτηση πολλαπλών τιμών από την ι authros έχει εξάρτηση πολλαπλών τιμών από την ιδιότητα isbn. ητα isbn. Isbn→→authors H θεωρία των λογικών εξαρτήσεων χρησιμοποιείται για την εξάλειψη του πλεονασμού δεδομένων σε έναν πίνακα (κανονικοποίηση). 


131. Ποια είναι τα στάδια ανάπτυξης μίας βάσης δεδομένων;

Ανάλυση απαιτήσεων ● Εννοιολογική σχεδίαση ● Λογική Σχεδίαση Βάσης ● Εκλέπτυνση Σχήματος ● Φυσικός Σχεδιασμός Βάσης ● Υλοποίηση Εφαρμογής και Μηχανισμών Ασφάλειας

132. Tί σημαίνει ο ορισμός Supertype και τι Subtype; Δώστε ένα παράδειγμα για τον κάθε ορισμό.

Το Supertype είναι ένας τύπος οντότητας που έχει σχέσεις (σχέση parent-child) με έναν ή περισσότερους subtypes και περιέχει ιδιότητες που είναι κοινές μεταξύ τους. Τα Subtype είναι υποομάδες της ο υποομάδες της οντότητας ντότητας Supertype και έχουμε Supertype και έχουμε μοναδικά χαρακτηριστικά μοναδικά χαρακτηριστικά αλλά είναι ξεχωριστά από κάθε subtype.

133. Τι ονομάζουμε κανονικοποίηση μιας βάσης δεδομένων και πότε λέμε ότι μία σχέση ή πίνακας βρίσκεται σε πρώτη κανονική μορφή;

Κανονικοποίηση δεδομένων είναι μια διαδικασία κατά την οποία οι πίνακες αναδομούνται σε πολλαπλούς μέχρι να εξαλειφθούν οι εξαρτήσεις μεταξύ των στηλών του. Στόχος της κανονικοποίησης είναι η εξάλειψη του πλεονασμού των δεδομένων σε έναν πίνακα. δεδομένων σε έναν πίνακα. Ένας πίνακας βρίσκεται σε 1η Κανονική Μορφή (1st Normal Form) όταν: ● Όλα τα records έχουν τα ίδια πεδία. ● Κανένα πεδίο δεν περιλαμβάνει υπο - πεδία. ● Δεν υπάρχουν επαναλήψεις πεδίων. ● Τα παραπάνω τα επιβάλει το ΣΔΒΔ (DBMS).

134. Εξηγήστε την οργάνωση αρχείων με δείκτη «index» σε ένα σύστημα διαχείρισης βάσεων δεδομένων.

Τα ευρετήρια επιτρέπουν την άμεση πρόσβαση στην πληροφορία χρησιμοποιώντας δείκτες προς τις εγγραφές και εξαλείφουν την ανάγκη για εξερεύνηση σειριακά της βάσης δεδομένων (σάρωση πινάκων) ή για ανακατασκευή των αρχείων της. Για κάθε εγγραφή στη βάση, δημιουργείται μία αντίστοιχη εγγραφή στο ευρετήριο για τη θέση οιχη εγγραφή στο ευρετήριο για τη θέση της στο της στο αρχείο. Τα ευρετήρια είναι σε δομές δένδρου για γρήγορη αναζήτηση και ενημερώνονται αυτόματα από το σύστημα της βάσης δεδομένων. Μπορούμε να έχουμε πολλά ευρετήρια για τον ίδιο πίνακα ανάλογα με την ιδιότητα που θέλουμε να έχουμε άμεση προσπέλαση.

135. Τι είναι «πρωτεύον κλειδί» (primary key) και τί «εξωτερικό κλειδί» (foreign key) στο σχεσιακό μοντέλο βάσεων δεδομένων;

Το πρωτεύον κλειδί (Primary Key), είναι ένα πεδίο ή ο ελάχιστος αριθμός πεδίων που μας επιτρέπουν τη μονοσήμαντη αναγνώριση κάθε πλειάδας σε έναν πίνακα. Για παράδειγμα, σε έναν πίνακα που περιέχει τα στοιχεία των μαθητών ενός σχολείου, το πρωτεύον κλειδί είναι ο αριθμός του μητρώου κάθε μαθητή, αφού βάσει αυτού μητρώου κάθε μαθητή, αφού βάσει αυτού μπορούμε να α μπορούμε να αναφερθούμε μονοσήμαντα σε κάθε μαθητή. ναφερθούμε μονοσήμαντα σε κάθε μαθητή. Το εξωτερικό κλειδί (Foreign Key), είναι ένα πεδίο ή συνδυασμός πεδίων ενός πίνακα που αντιστοιχούν στο πεδίο ή στα πεδία του πρωτεύοντος κλειδιού ενός άλλου πίνακα. Το ξένο κλειδί καθορίζει το είδος της συσχέτισης των πινάκων, αφού τα δεδομένα του ξένου κλειδιού πρέπει να ταιριάζουν με τα δεδομένα του πρωτεύοντος.  

136. Ποιους τύπους δεδομένων υποστηρίζει η γλώσσα προγραμματισμού σχεσιακών βάσεων δεδομένων SQL;

NUMBER VARCHAR2 DATE 

137. Εξηγήστε πότε λέμε ένα ότι ένα σύστημα βάσεων δεδομένων λειτουργεί σε περιβάλλον πολλαπλών χρηστών.

Ένα σύστημα βάσεων δεδομένων λειτουργεί σε περιβάλλον πολλαπλών χρηστών όταν: ● Εξυπηρετεί πολλούς χρήστες ταυτόχρονα (multi-user). ● Λειτουργεί σε περιβάλλον Λειτουργεί σε περιβάλλον δικτύου και στο μοντέλο πε δικτύου και στο μοντέλο πελάτη-εξυπηρετητή (client-server). ● Αποθηκεύει τα δεδομένα σε ένα server ή σε κατανεμημένους servers που είναι προσβάσιμοι από όλους τους χρήστες. ● Διασφαλίζεται η εξουσιοδοτημένη πρόσβαση και η ακεραιότητα των δεδομένων.

138. Εξηγήστε τι είναι τα κατανεμημένα συστήματα βάσεων δεδομένων (distributed database systems).

Οι κατανεμημένες Βάσεις Δεδομένων είναι ειδικές Β.Δ., στις οποίες τα δεδομένα είναι αποθηκευμένα σε ξεχωριστές τοπικές Βάσεις που επικοινωνούν με μια κεντρική βάση. Στην κεντρική βάση βρίσκεται η συνολική πληροφορία για τη δομή της ως αυτόνομη οντότητα, ωστόσο η πληροφορία βρίσκεται στις τοπικές βάσεις δεδομένων. Σε κάθε ερώτημα προς την κεντρική βάση, αυτή επικοινωνεί με τις τοπικές βάσεις, προκειμένου να συλλέξει τη ζητούμενη πληροφορία. Οι τοπικές βάσεις μπορεί να είναι του ίδιου τύπου (ομοιογενείς ΚΒΔ) ή διαφορετικού τύπου (ετερογενείς ΚΒΔ). Πλεονεκτήματα: ● Κατανομή του έργου σε πολλούς υπολογιστές ● Ασφάλεια σε περίπτωση βλάβης. ● Μικρός χρόνος απόκρισης για τα τοπικά δεδομένα. Μειονεκτήματα: ● Δεν υπάρχει κεντρικός έλεγχος. ● Κίνδυνος να κλαπούν δεδομένα. ● Μεγάλος χρόνος απόκρισης για μη τοπικά δεδομένα.

139. Εξηγήστε τι ονομάζουμε ανοικτά συστήματα διασύνδεσης βάσεων δεδομένων, όπως τα συστήματα που υποστηρίζουν το «Open Database Connectivity (ODBC)».

Ο όρος «ανοικτά συστήματα» υποδηλώνει κατά βάση την ανεξαρτησία από συγκεκριμένο προμηθευτή και την υποχρεωτική χρήση προτύπων (Standards) που διασφαλίζουν: ● την αρμονική συνεργασία και λειτουργία μεταξύ συστημάτων και λειτουργικών εφαρμογών διαφορετικών προμηθευτών ● την μέσω δικτύων συνεργασία και εφαρμογών που βρίσκονται σε διαφορετικά υπολογιστικά συστήματα ● τη μεταφερσιμότητα των εφαρμογών ● τη δυνατότητα αύξησης του μεγέθους των μηχανογραφικών συστημάτων χωρίς αλλαγές στη δομή και τη φιλοσοφία. 

140. Τι σημαίνει «Ακεραιότης Αναφορών-Referential Integrity»; Δώστε ένα παράδειγμα.

Ακεραιότητα Αναφοράς (Referential Integrity) είναι ο κανόνας των σχεσιακών βάσεων δεδομένων που επιβάλλει ότι όταν γίνονται μεταβολές στα περιεχόμενα της βάσης, δε διαταράσσεται η ακεραιότητα των υφιστάμενων σχέσεων μεταξύ των πινάκων της βάσης. Έτσι για παράδειγμα, όταν σβήνεται ένα πρωτεύον κλειδί, πρέπει να σβηστούν και οι εγγραφές που το περιέχουν σαν εξωτερικό κλειδί, αλλιώς οι εγγραφές αυτές θα είναι ασύνδετες.

Παραδείγματα:

Έχουμε την οντότητα πελάτες και την οντότητα παραγγελίες. Κάθε παραγγελία περιέχει τον κωδικό του πελάτη που έκανε την παραγγελία.

Όταν καταχωρείται η παραγγελία θα πρέπει  να ελέγχεται αν έχει ήδη καταχωρηθεί ο πελάτης, αλλιώς να μη γίνεται δεκτή.

Αν διαγραφεί ο πελάτης, τότε οι παραγγελίες του θα περιέχουν έναν κωδικό πελάτη που δεν αντιστοιχεί σε κανέναν υπαρκτό πελάτη. Αυτό μπορεί να δημιουργήσει πολλά προβλήματα, όταν για παράδειγμα τυπωθεί το τιμολόγιο της παραγγελίας, ενώ δε θα υπάρχουν τα στοιχεία του πελάτη.

Οι λύσεις είναι δύο, ή δε θα σβήνονται οι πελάτες, ή ό πελάτης, ή όταν σβήνονται, θα πρέπει ταυτόχρονα να σβήνονται και οι παραγγελίες τους.

141. Να αναφέρετε τα μοντέλα βάσεων δεδομένων που γνωρίζετε και ποιες είναι οι διαφορές τους.

Τα τρία μοντέλα Βάσεων Δεδομένων είναι:

Hierarchical (Ιεραρχικό), Network (Δικτυωτό), Relational (Σχεσιακό)

ΙΕΡΑΡΧΙΚΟ: Σε αυτές τις ΒΔ οι πληροφορίες αναπαρίστανται με Δενδρικής μορφής δομές δεδομένων και συνδέονται μεταξύ τους με συνδέσμους "links".

ΔΙΚΤΥΩΤΟ: Η διαφορά των Δικτυωτών βάσεων από τις Ιεραρχικές είναι ότι στις πρώτες κάποιο record μπορεί να έχει ακαθόριστο αριθμό πατρικών (parent) records.

ΣΧΕΣΙΑΚΟ: Στην περίπτωση των σχεσιακών βάσεων δεδομένων, οι πληροφορίες συνδέονται μεταξύ τους με σχέσεις που απορρέουν από τα κοινά πεδία διαφορετικών αρχείων. Σε αυτό το είδος Βάσεων Δεδομένων, τα αρχεία λέγονται "tables" (πίνακες), τα records "rows" (γραμμές) και τα πεδία "columns" (στήλες).

142. Εξηγήστε τι είναι «γλώσσα χειρισμού δεδομένων» (Data Manipulation Language) και τι «γλώσσα ορισμού δεδομένων» (Data Definition Language), τα δυο βασικά τμήματα που χωρίζεται η γλώσσα διαχείρισης βάσεων δεδομένων SQL.

Γλώσσα χειρισμού δεδομένων (DML) είναι το σύνολο των εντολών της SQL που αφορούν τη

διαχείριση των δεδομένων μας. Αυτές οι εντολές αφορούν την αναζήτηση εγγραφών / πεδίων (select),τη διαγραφή (delete), την ενημέρωση (update) και την εισαγωγή (insert).

Γλώσσα ορισμού δεδομένων (DDL) είναι το σύνολο των εντολών της SQL που αφορούν τη

δημιουργία του σχήματος της βάσης. Αυτές οι εντολές, αφορούν τη δημιουργία / τροποποίηση /

143. Ποιοι είναι οι τρεις πρώτοι κανόνες κανονικοποίησης; Δώστε ένα παράδειγμα για τον κάθε ένα από αυτούς.

Για το παράδειγμα θα χρησιμοποιήσουμε έναν πίνακα με τα πεδία: ΚΩΔΙΚΟΣ ΜΑΘΗΤΗ,ΟΝΟΜΑ,ΕΠΩΝΥΜΟ,ΗΜ. ΓΕΝΝΗΣΗΣ,ΣΥΜΒΟΥΛΟΣ,ΤΗΛ ΣΥΜΒΟΥΛΟΥ,ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ 1,ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ 1,ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ2,ΠΕΡΙΓΡΑ ΜΑΘΗΜΑΤΟΣ2,ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ2.

1ος κανόνας κανόνας κανονικοποίησης: Στην πρώτη μορφή κανονικοποίησης βρίσκεται μια σχέση όταν: κάθε όνομα γνωρίσματος(στήλης) είναι μοναδικό, όλες οι τιμές κάθε γνωρίσματος είναι ίδιου τύπου, κάθε τιμή γνωρίσματος είναι ατομική,τα γνωρίσματα δεν έχουν διάταξη από αριστερά προς τα δεξιά, οι συστοιχίες δεν έχουν διάταξη από πάνω προς τα κάτω, δεν υπάρχουν 2 ίδιες συστοιχίες σε μία σχέση.Έστω ότι έχουμε έναν πίνακα ΜΑΘΗΜΑΤΑ ο οποίος είναιι σε μέσα σε έναν άλλον πίνακα ΜΑΘΗΤΕΣ. .

Σε αυτόν τον κανόνα,κάθε τιμή γνωρίσματος είναι ατομική αλλά επειδή πολλά πεδία είναι επαναλαμβανόμενα καταχωρούνται σε ένα πεδίο το ΜΑΘΗΜΑ(ομάδα πολλών τιμών).Έτσι αυτά έρχονται σε σύγκρουση με τον πρώτο κανόνα κανονικοποίησης άρα,διασπάμε τον αρχικό πίνακα σε δυο ξεχωριστους (ΜΑΘΗΜΑ,ΜΑΘΗΤΕΣ)

2ος κανόνας κανονικοποίησης: Σε 2η μορφή κανονικοποίησης βρίσκεται μια σχέση εάν είναι σε 1η μορφή κανονικοποίησης και επιπλέον κάθε γνώρισμα που δεν είναι κλειδί εξαρτάται ολόκληρο από το πρωτεύον κλειδί και όχι από ένα τμήμα του. Στο παράδειγμα μας με τους πίνακες ΜΑΘΗΤΕΣ, ΜΑΘΗΜΑ,στο πίνακα μαθημάτων θα δημιουργήσουμε ένα πρωτεύων κλειδί που θα συνδυάζει τον ΚΩΔΙΚΟ ΜΑΘΗΤΗ+ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ. Ο ΚΩΔΙΚΟΣ ΜΑΘΗΤΗ δεν θα είναι μοναδικό κλειδί από μόνο του στον πίνακα γιατί ένας μαθητής μπορεί να έχει πολλά μαθήματα. Ανάλογα τον ΚΩΔΙΚΟ ΜΑΘΗΜΑΤΟΣ δεν θα είναι μοναδικό κλειδί από μόνο του σε αυτόν τον πίνακα,γιατί ένα μάθημα μπορεί να το έχουν πολλοί μαθητές. Έτσι τα πεδία μας ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ,ΕΚΠΑΙΔΕΥΤΗΣ ΜΑΘΗΜΑΤΟΣ είναι τα ίδια για κάθε μάθημα(εξαρτώνται μόνο από τον κωδικό Μαθητή) ανεξάρτητα από τον σπουδαστή που παίρνει το μάθημα.

3ος κανόνας κανονικοποίησης: Μια σχέση βρίσκεται σε 3η μορφή κανονικοποίησης εάν είναι σε δεύτερη και δεν περιέχει μεταβατικές συναρτήσεις. Το πεδίο ΤΗΛ ΣΥΜΒΟΥΛΟΥ δεν περιέχει πληροφορίες για τον μαθητή άρα πρέπει να δημιουργήσουμε ξεχωρ ουμε ξεχωριστό πίνακα για τους Σύμβουλους.

144. Τί είναι το Μοντέλο Οντοτήτων Συσχετίσεων(ΜΟΣ); Παρουσιάστε σχηματικά πώς απεικονίζονται στο ΜΟΣ οι οντότητες (entity), οι ιδιότητες των οντοτήτων (attributes), τα πρωτεύοντα κλειδιά (primary key) και οι σχέσεις (relation type και identifying relationship type).

Είναι ένα μοντέλο σχεδίασης το οποίο το χρησιμοποιούμε για να περιγράψουμε με γραφικά σύμβολα τα δεδομένα ως οντότητες, συσχετίσεις και γνωρίσματα αυτών. Χρησιμοποιείται κατά το στάδιο του εννοιολογικού σχεδιασμού της ΒΔ. Σχηματικά,οι οντότητες «μπαίνουν» σε ένα παραλληλόγραμμο,οι ιδιότητες αυτών σε έναν κύκλο,τα πρωτέυων κλειδιά υπογραμμίζονται και οι σχέσεις «μπαίνουν» σε ένα ρόμβο.

145. Έχουμε δύο οντότητες: Η μία είναι Πολίτης και η άλλη Πόλη. Για αυτές τις δύο οντότητες αναπαραστήστε σχηματικά, με τη βοήθεια της γλώσσας ERDish, τις ακόλουθες σχέσεις: 1. Κάθε Άτομο πρέπει να έχει γεννηθεί μόνο σε μία Πόλη / Κάθε Πόλη μπορεί να είναι γενέτειρα ενός ή περισσότερων Πολιτών 2. Κάθε Πολίτης πρέπει να έχει μόνιμη κατοικία σε μία μόνο Πόλη / Κάθε Πόλη μπορεί να είναι ο τόπος κατοικίας ενός ή περισσότερων Πολιτών 3. Κάθε Πολίτης μπορεί να είναι επισκέπτης μίας ή περισσοτέρων Πόλεων / Κάθε Πόλη πρέπει να την έχει επισκεφθεί ένας ή περισσότεροι Πολίτες.


146. Αναλύστε τις βασικές διαφορές μεταξύ C και C++, όσον αφορά στα χαρακτηριστικά που προσθέτει η C++.

  • Ορισμοί μεταβλητών μπορούν να δοθούν σε οποιοδήποτε σημείο
  • Σχόλια της μιας γραμμής μπορούν να οριστούν με τους χαρακτήρες //
  • Μεταβλητές μπορούν να οριστούν ως αναφορά
  • Συναρτήσεις μπορούν να οριστούν πολυμορφικά
  • Οι δηλώσεις δομών ορίζουν αυτόματα και έναν νέο τύπο
  • Οι τελεστές new και delete[] δεσμεύουν και ελευθερώνουν και μνήμη
  • Στα ορίσματα των συναρτήσεων μπορούν να δωθούν αρχικές τιμές
  • Ορίζεται ο τύπος bool για λογικές μεταβλητές

Η C είναι μια γλώσσα προγραμματισμού γενικής χρήσης, που δημιουργήθηκε αρχικά για συστήματα Unix. Χρησιμοποιείται συνήθως σε συστήματα cross-platform, για κωδικοποίηση συστημάτων Unix, παιχνιδιών και ειδικών εφαρμογών (automotive, ενσωματωμένα συστήματα, ρομποτική κτλ.). Επιλέγεται πιο συχνά, επειδή είναι πιο συμπαγής από την C++ και τρέχει πιο γρήγορα. Είναι, η δεύτερη πιο συνηθισμένη γλώσσα προγραμματισμού ακολουθώντας την Java. Η C αποτελεί τη βάση για να δημιουργηθούν πολλές άλλες γλώσσες προγραμματισμού συμπεριλαμβανομένων των C#, Java, JavaScript, Perl, PHP και Python.

Διαδικαστικός προγραμματισμός η γλώσσα C

γλώσσα προγραμματισμού υψηλού επιπέδου, η γλώσσα C. Ο όρος γλώσσα υψηλού επιπέδου υποδηλώνει ότι δεν είναι κατασκευασμένη για να λειτουργεί σε συγκεκριμένη αρχιτεκτονική υπολογιστή, αλλά δύναται να λειτουργήσει σε πληθώρα αρχιτεκτονικών 

Για να είναι μία γλώσσα συμβατή με τις γλώσσες μηχανής διάφορων αρχιτεκτονικών, θα πρέπει να λαμβάνει χώρα μεταγλώττιση από τη γλώσσα προγραμματισμού στην εκάστοτε γλώσσα μηχανής. Όντως αυτό συμβαίνει και το λογισμικό που επιτελεί τη συγκεκριμένη εργασία ονομάζεται μεταγλωττιστής (compiler). Με βάση τα παραπάνω, οι γλώσσες προγραμματισμού υψηλού επιπέδου είναι ως επί το πλείστον μεταγλωττισμένες γλώσσες, αποσκοπώντας στο να είναι ευανάγνωστες και κατανοητές.

Σε ό,τι αφορά τη C, παρουσιάζει μία σειρά από ενδιαφέροντα και χρήσιμα χαρακτηριστικά:  Μπορεί να χρησιμοποιηθεί και ως γλώσσα προγραμματισμού χαμηλού επιπέδου, επιτρέποντας άμεση πρόσβαση στους πόρους του υπολογιστή. -2-  Είναι σχετικά μικρή και εύκολη στην εκμάθηση.  Υποστηρίζει δομημένο προγραμματισμό.  Είναι αποτελεσματική, παράγοντας συμπαγή και γρήγορα στην εκτέλεση προγράμματα.  Έχει φορητότητα, δηλαδή ο κώδικάς της μεταγλωττίζεται από διάφορους μεταγλωττιστές χωρίς να απαιτούνται τροποποιήσεις.  Μετά από τέσσερις και πλέον δεκαετίες συνεχίζει να αποτελεί μία από τις ευρύτερα χρησιμοποιούμενες γλώσσες προγραμματισμού, γεγονός που έχει δημιουργήσει πολύ μεγάλη εγκατεστημένη βάση εφαρμογών που αναπτύχθηκαν με αυτήν τη γλώσσα και πρέπει να συντηρούνται και να εξελίσσονται.  Αποτελεί μία εξαιρετική εκκίνηση για την εκμάθηση γλωσσών που στηρίζονται στον αντικειμενοστραφή προγραμματισμό (C++, Java, C#), καθώς ο τελευταίος έχει δανειστεί πολλά χαρακτηριστικά από τη C. 

Ωστόσο, η γλώσσα C παρουσιάζει και μία σειρά μειονεκτημάτων, που την καθιστούν απαιτητική στον χειρισμό. Παρέχοντας μεγάλο βαθμό ελευθερίας στον προγραμματιστή και χαρακτηριζόμενη από έλλειψη περιορισμών και μικρό βαθμό ελέγχου λαθών, υποχρεώνει τον προγραμματιστή να είναι ιδιαίτερα προσεκτικός και να χρησιμοποιεί διαδικασίες ελέγχου λαθών, οι οποίες παρέχονται αυτόματα σε άλλες γλώσσες προγραμματισμού. Επιπλέον, σε πολλές περιπτώσεις εισάγονται λάθη που είναι μη ανιχνεύσιμα από τον μεταγλωττιστή και οδηγούν σε καταστάσεις απροσδιοριστίας, δηλαδή μη αναμενόμενες καταστάσεις με μη προσδιορισμένη συμπεριφορά.  

Η C δεν διαθέτει κάποιες από τις δυνατότητες νεώτερων γλωσσών, όπως τον προσανατολισμό στα αντικείμενα και την συλλογή απορριμάτων (garbage collection) 

Η C++ είναι μια γλώσσα προγραμματισμού μέσου επιπέδου που είναι αντικειμενοστρεφής. Προέρχεται από τη C, ωστόσο, έχει πρόσθετα και βελτιώσεις που την καταστά μια πιο πολυεπίπεδη γλώσσα προγραμματισμού. Είναι κατάλληλη για μεγάλα project, καθώς μπορεί να σπάσει σε τμήματα που επιτρέπουν την εύκολη συνεργασία. Χρησιμοποιείται από τις πιο γνωστές εταιρείες τεχνολογίας στον κόσμο, συμπεριλαμβανομένων των Adobe, Google, Mozilla και Microsoft. 

 10 γλώσσες προγραμματισμού

Εισαγωγή - Η γλώσσα C++

Η C++ είναι μια γλώσσα που έχει προέλθει από τη C.
Πλεονεκτήματά της σε σχέση με τη C είναι:
η δυνατότητα οργάνωσης δεδομένων σε μια κλάση (class),
ο ορισμός κληρονομικότητας (inheritance) στη δομή των κλάσεων,
η δυνατότητα αρχικοποίησης δεδομένων,
ο ορισμός μεταβλητών ως αναφορά (reference) σε κάποια άλλη,
ο πολυμορφικός (polymorphic) καθορισμός συναρτήσεων με βάση τον τύπο του ορίσματός τους,
η υπερφόρτωση (overloading) τελεστών,
η πλούσια βιβλιοθήκη βασικών δομών δεδομένων και
η δυνατότητα ορισμού πολυμορφικών βασικών τύπων με βάση ένα πρότυπο (template).
Τα παραπάνω στοιχεία επιτρέπουν στη γλώσσα να υποστηρίζει τον αντικειμενοστρεφή προγραμματισμό (object-oriented programming).

Υπάρχουν παρόλ' αυτά εφαρμογές οι οποίες γράφονται καλύτερα σε C. Τέτοιες είναι:

  • προγράμματα που έχουν άμεση σχέση με το υλικό όπως ο πυρήνας του λειτουργικού συστήματος και οι οδηγοί συσκευών,
  • ενσωματωμένες (embedded) εφαρμογές που εκτελούνται σε περιβάλλον που δεν μπορεί να ανταποκριθεί στις απαιτήσεις της C++.

147. Ποια είναι η διαφορά μεταξύ του αντικειμένου και της κλάσης; Δώστε ένα παράδειγμα.

Η διαφορά είναι ότι το αντικείμενο (object) είναι το στιγμιότυπο μίας κλάσης, δηλαδή αυτή καθαυτή η δομή δεδομένων (με αποκλειστικά δεσμευμένο χώρο στη μνήμη) βασισμένη στο «καλούπι» που βασισμένη στο «καλούπι» που προσφέρει η κλάση. Παραδείγματος χάρη, σε μία αντικειμενοστρεφή γλώσσα προγραμματισμού θα μπορούσαμε να ορίσουμε κάποια κλάση ονόματι BankAccount, η οποία αναπαριστά έναν τραπεζικό λογαριασμό, και να δηλώσουμε ένα αντικείμενο της με όνομα MyAccount. Το αντικείμενο αυτό θα έχει δεσμεύσει χώρο στη μνήμη με βάση τις μεταβλητές και τις μεθόδους που περιγράψαμε όταν δηλώσαμε την κλάση. Έτσι, στο αντικείμενο θα μπορούσε να περιέχεται ένα γνώρισμα Balance (=υπόλοιπο) και μία μέθοδος GetBalance (=επίστρεψε το υπόλοιπο). Ακολούθως θα μπορούσαμε να δημιουργήσουμε ακόμα ένα ή περισσότερα αντικείμενα της ίδιας κλάσης τα οποία θα είναι διαφορετικές δομές δεδομένων (διαφορετικοί τραπεζικοί λογαριασμοί στο παράδειγμα). Τα αντικείμενα μίας κλάσης μπορούν να προσπελάσουν τα ιδιωτικά περιεχόμενα άλλων αντικειμένων της ίδιας κλάσης.

Μία Κλάση (Class) είναι ένα σύνολο δηλώσεων που αφορούν στην περιγραφή μιας συγκεκριμένης κατηγορίας αντικειμένων (object).

Δηλώνουμε μία Κλάση House ως εξής:

class House

{

String owner;

String address;

int post_code;

float sq_metres;

}

Στο παραπάνω παράδειγμα η Κλάση House ορίζει όλες τις παραμέτρους που χρειάζονται για να προσδιορίσουμε

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

Τον ιδιοκτήτη του σπιτιού

Τη διεύθυνση

Τον ταχυδρομικό κώδικα

Το εμβαδόν

Ένα αντικείμενο (object) αποτελεί μία εκδοχή μιας συγκεκριμένης κλάσης (class instance). Έτσι σύμφωνα με το

παραπάνω παράδειγμα θα μπορούσαμε να είχαμε τα παρακάτω αντικείμενα:

 Μία Κλάση στην ουσία αποτελεί τη μήτρα για να παραχθούν συγκεκριμένου τύπου αντικείμενα


148. Ποιες είναι οι διαφορές μεταξύ του δομημένου προγραμματισμού και του προγραμματισμού οδηγούμενου από γεγονότα;

Σε μια εφαρμογή που έχει αναπτυχθεί με τη φιλοσοφία του δομημένου προγραμματισμού, η εκτέλεσήτης ξεκινά από την αρχική εντολή του προγράμματος και η ροή εκτέλεσής της είναι καθορισμένη από τις διαδικασίες και τις συναρτήσεις που περιλαμβάνει το πρόγραμμα. Σύμφωνα με τα παραπάνω το δομικό στοιχείο του προγράμματος αποτελούν οι διαδικασίες και οι συναρτήσεις. Σε όλη τη διάρκεια της εκτέλεση της εφαρμογής, το πρόγραμμα διατηρεί τον έλεγχο της, ενώ στο χρήστη έχει ανατεθεί δευτερεύων ρόλος και απλά πληκτρολογεί κάποια δεδομένα, όταν το πρόγραμμα το απαιτεί. Αντίθετα με τον οδηγούμενο από γεγονότα προγραμματισμό, ο χρήστης με την έναρξη της εκτέλεσης της εφαρμογής αποκτά τον έλεγχο της και αποφασίζει, χρησιμοποιώντας το πληκτρολόγιο ή το ποντίκι, ποιο τμήμα του προγράμματος θα εκτελεστεί. Κάθε ενέργεια του χρήστη δημιουργεί μηνύματα με τη μορφή γεγονότων, τα οποία αντιλαμβάνεται το πρόγραμμα και ανταποκρίνεται σε αυτά.


149. Αναφέρετε τι καθορίζει η κλάση (class) ενός αντικειμένου και τι το στιγμιότυπο (instance) ενός αντικειμένου σε μια αντικειμενοστραφή γλώσσα προγραμματισμού

Στον αντικειμενοστραφή προγραμματισμό όλα είναι αντικείμενα και χρησιμοποιούνται για αποθήκευση δεδομένων όπως και για την εκτέλεση υπολογισμών πάνω σε δεδομένα.. Τα αντικείμενα λένε το ένα στο άλλο τι να κάνει µέσω ανταλλαγής μηνυμάτων. Για να εγερθεί ένα αίτημα σε κάποιο αντικείμενο στέλνουμε ένα μήνυμα προς αυτό µε αποτέλεσμα την κλήση μιας συνάρτησης του αντικειμένου. αντικειμένου. Κάθε αντικείμενο έχει τ Κάθε αντικείμενο έχει τη δική του η δική του μνήμη η ο μνήμη η οποία αποτελείται από ποία αποτελείται από άλλα αντικείμενα. άλλα αντικείμενα. Κάθε αντικείμενο έχει τύπο: Κάθε αντικείμενο είναι στιγμιότυπο μιας κλάσης (κλάση ≈ τύπος). Η κλάση καθορίζει τα χαρακτηριστικά και τις συμπεριφορές αντικειμένων: αντικείμενα της ίδιας κλάσης μπορούν να αποδεχθούν τα ίδια μηνύματα.

Μιά κλάση είναι μιά περιγραφή ενός τύπου αντικειμένου: περιγράφει τα χαρακτηριστικά καί τη συμπεριφορά του συγκεκριμένου τύπου αντικειμένου

Όλα τα αντικείμενα είναι στιγμιότυπα μιάς κλάσης

Η σχέση ενός αντικειμένου με μιά κλάση είναι παρόμοια με τη σχέση μιάς μεταβλητής με τον τύπο της μεταβλητής σε μιά γλώσσα προγραμματισμού

Μία κλάση είναι ένα πρότυπο για τη δημιουργία παρόμοιων αντικειμένων. • Μία κλάση είναι όπως ένα αρχιτεκτονικό σχέδιο: περιγράφει τις ιδιότητες ενός αντικειμένου • Όλα τα αντικείμενα σε μία κλάση έχουν τα ίδια χαρακτηριστικά, τις ίδιες μεθόδους αλλά όχι τις ίδιες τιμές. • Από μία κλάση μπορούν να δημιουργηθούν πολλάστιγμιότυπα (αντικείμενα)


150. Τι είναι ο constructor και τι ο destructor σε μια κλάση; Ποιος είναι ο λόγος χρήσης τους;

Σε κάθε κλάση μπορεί να οριστεί μια συνάρτηση κατασκευής (constructor ) με όνομα ίδιο με αυτό της κλάσης και μια συνάρτηση καταστροφής (destructor ) με όνομα το όνομα της κλάσης με το πρόθεμα ~. Η συνάρτηση κατασκευής καλείται κάθε φορά που δημιουργείται ένα νέο αντικείμενο (σε επίπεδο καθολικό, τοπικό, ή με new). Η συνάρτηση καταστροφής καλείται κάθε φορά που παύει να υπάρχει ένα αντικείμενο δηλαδή αντίστοιχα όταν τελειώνει το πρόγραμμα, όταν η ροή βγαίνει από το τοπικό τμήμα, ή καλείται η delete. Το όρισμα που δηλώνουμε στη συνάρτηση κατασκευής επιτρέπει προσδιορισμό ιδιοτήτων του αντικειμένου που δημιουργούμε (π.χ. τον αριθμό στοιχείων σε μια στοίβα) ή αρχικών τιμών. Η συνάρτηση καταστροφής δε δέχεται κάποιο όρισμα. Οι συναρτήσεις αυτές μπορούν να χρησιμοποιηθούν για να διαχειριστούν τη μνήμη αντικειμένων που απαιτούν τη χρήση δυναμικής μνήμης με κατάλληλες κλήσεις στις new και delete.

Εκτός απ'τις μεθόδους και τις μεταβλητές που ορίζουμε εμείς, κάθε Κλάση περιλαμβάνει και μία ειδική μέθοδο που αφορά ένα σύνολο εντολών το οποίο εκτελείται κάθε φορά που ένα νέο αντικείμενο δημιουργείται. Η ειδική αυτή μέθοδος καλείται constructor και ξεχωρίζει από τις υπόλοιπες μεθόδους της Κλάσης, αφού η ονομασία που της δίνουμε είναι αυτή της Κλάσης:

class Sphere

{

// Class variables

static final double PI = 3.14;

static int count = 0;

// Instance variables

double radius;

double xCenter;

double yCenter;

double zCenter;

//Class constructor

Sphere(double theRadius, double x, double y, double z)

{

radius = theRadius;

xCenter = x;

yCenter = y;

zCenter = z;

++count;

}

//static method

static int getCount()

{

return count;

}

//instance method

double volume()

{

return 4.0/3.0*PI*radius*radius*radius;

}

...

}

Η παραπάνω μέθοδος constructor κάθε φορά που θα καλείται για να δημιουργηθεί ένα αντικείμενο κλάσης Sphere,αφενός θα δίνει κάποιες τιμές στις μεταβλητές radius, xCenter, yCenter και zCenter για το κάθε αντικείμενο,αφετέρου θα αυξάνει την μεταβλητή κλάσης count κατά μία μονάδα. Επειδή όπως είδαμε και πριν μία μεταβλητή κλάσης μοιράζεται από όλα τα αντικείμενα της ίδιας Κλάσης, η μεταβλητή αυτή θα λειτουργεί σαν μετρητής: για κάθε νέο αντικείμενο που θα δημιουργείται θα προστίθεται σε αυτήν και μία μονάδα.

Πώς δημιουργούνται αντικείμενα από μια Κλάση; Όταν δηλώνουμε:

Sphere ball;

στην ουσία δεν δημιουργούμε κάποιο αντικείμενο. Απλώς δηλώνουμε πως δημιουργούμε την μεταβλητή ball η οποία θα αναφέρεται σε ένα αντικείμενο Κλάσης Sphere, όταν και όποτε αυτό δημιουργηθεί. Προκειμένου να δημιουργήσουμε ένα αντικείμενο κάνουμε χρήση της δήλωσης new ακολουθούμενο από την μέθοδο constructor με τα επιθυμητά ορίσματα:

ball = new Sphere(10.0, 1.0, 1.0, 1.0);

Οι παραπάνω δύο δηλώσεις, μπορούν να συμπτυχθούν σε μία:

Sphere ball = new Sphere(10.0, 1.0, 1.0, 1.0);

Μία Κλάση μπορεί να έχει πολλαπλούς constructors, καθένας απ'τους οποίους διαφοροποιείται απ'τους υπόλοιπους με βάση τα ορίσματα που χρησιμοποιεί. Έτσι, εκτός απ'το παραπάνω παράδειγμα μπορούμε να φτιάξουμε δύο ακόμη constructors, ο πρώτος εκ των οποίων δημιουργεί αντικείμενα μοναδιαίας ακτίνας (radius = 1) και ο δεύτερος επίσης μοναδιαίας ακτίνας και στην αρχή των αξόνων (0, 0, 0):

class Sphere

{

. . .

//Class constructor #1

Sphere(double theRadius, double x, double y, double z)

{

radius = theRadius;

xCenter = x;

yCenter = y;

zCenter = z;

++count;

}

//Class constructor #2

Sphere(double x, double y, double z)

{

radius = 1.0;

xCenter = x;

yCenter = y;

zCenter = z;

++count;

}

//Class constructor #3

Sphere()

{

radius = 1.0;

xCenter = 0.0;

yCenter = 0.0;

zCenter = 0.0;

++count;

}

. . .

}

με αντίστοιχες κλήσεις:

Sphere unaryBall = new Sphere(3.0, 4.0, 5.0);

Sphere originBall = new Sphere();

Όπου ανάλογα τα ορίσματα που δηλώνουμε καλείται ο αντίστοιχος constructor.

Στη C++, ό,τι αντικείμενο δημιουργούμε δυναμικά πρέπει να το καταστρέφουμε (συνήθως με την εντολή delete) ελευθερώνοντας όλους τους πόρους που δεσμεύσαμε κατά την ύπαρξή του (κλείσιμο αρχείων, αποσύνδεση από βάσεις δεδομένων, τερματισμός threads, αποδέσμευση μνήμης, κλπ). Η καταστροφή του αντικειμένου γίνεται καλώντας μια μέθοδο που καλείται καταστροφέας (destructor). Το όνομα του destructor είναι το ίδιο με της κλάσης προπορευόμενο από τον τελεστή ~. Δηλαδή για την κλάση Car, το όνομα του καταστροφέα είναι ~Car(). Ενώ ο δημιουργός είναι απαραίτητο να οριστεί τις περισσότερες φορές, δεν είναι πάντα απαραίτητος ο ορισμός του καταστροφέα. Κάτι τέτοιο έχει νόημα μόνο όταν στον δημιουργό πραγματοποιούμε κάποια δυναμική λειτουργία (άνοιγμα δικτυακής σύνδεσης, αρχείου, κλπ), και την οποία πρέπει να τερματίσουμε κατά την καταστροφή του αντικειμένου (π.χ. κλείσιμο αρχείου, τερματισμός σύνδεσης, κλπ) 


151. Δώστε τον ορισμό των πιο σημαντικών χαρακτηριστικών του αντικειμενοστραφούς προγραμματισμού: Ενθυλάκωση (Encapsulation), Πολυμορφισμός (Polymorphism), Κληρονομικότητα (Inheritance)

Κληρονομικότητα στον αντικειμενοστραφή προγραμματισμό αναφέρεται στη δυνατότητα επαναχρησιμοποίησης κώδικα από ήδη υπάρχοντα αντικείμενα, στη δημιουργία νέων αντικειμένων τα οποία μοιράζονται ιδιότητες με ήδη υπάρχοντα ή και τα δύο ανάλογα τη γλώσσα προγραμματισμού. Ένα αντικείμενο αντικείμενο αντικείμενο αντικείμενο αποτελεί αποτελεί ένα στιγμιότυπο στιγμιότυπο μιας κλάσης, κλάσης, οι κλάσεις κλάσεις μπορούν μπορούν να κληρονομούν από άλλες κλάσεις τόσο τα γνωρίσματα όσ Ενθυλάκωση δεδομένων (data encapsulation) καλείται ο και της μεθόδους. η ιδιότητα που προσφέρουν οι κλάσεις να «κρύβουν» τα ιδιωτικά δεδομένα τους από το υπόλοιπο πρόγραμμα και να εξασφαλίζουν πως μόνο μέσω των δημόσιων μεθόδων τους θα μπορούν αυτά να προσπελαστούν. Αυτή η τακτική παρουσιάζει μόνο οφέλη καθώς εξαναγκάζει κάθε εξωτερικό πρόγραμμα να φιλτράρει το χειρισμό που επιθυμεί να κάνει στα πεδία μίας κλάσης μέσω των ελέγχων που μπορούν να περιέχονται στις δημόσιες μεθόδουςτης κλάσης. Πολυμορφισμός είναι η δυνατότητα εκτέλεσης διαφορετικών λειτουργιών μιας μεθόδου που είναι κοινή σε διαφορετικές κλάσεις (συνήθως κλάση-γονέα και κλάση-παιδί), ανάλογα µε το αντικείμενο της κλάσης που την καλεί.

Encapsulation () Η διαδικασίες κρύβονται από το χρήστη και τα ίδια τα δεδομένα προσδιορίζουν τους τρόπους διαχείρισης τους. • Polymorphism (πολυμορφισμός) Αντικείμενα που ανήκουν σε παρόμοιες κλάσεις μπορούν να έχουν κοινό τρόπο προσπέλασης, με αποτέλεσμα ο χρήστης να μπορεί να τα χειριστεί με τον ίδιο τρόπο χωρίς να χρειάζεται να μάθει νέες διαδικασίες. • Inheritance (κληρονομικότητα) Μπορούμε να δημιουργήσουμε ένα νέο αντικείμενο παίρνοντας ως βάση ένα άλλο ήδη υπάρχον. Το νέο αντικείμενο θα έχει τα χαρακτηριστικά του παλιού ενώ θα μπορέι να τα τροποποιήσει, να τα επεκτείνει και να προσθέσει καινούρια για να καλύψει συγκεκριμένες ανάγκες. Ενθυλάκωση ή Κελυφοποίηση ή απόκρυψη πληροφοριών (encapsulation) Η απόκρυψη των λεπτομερειών υλοποίησης ενός αντικειμένου (ελεγχόμενη ορατότητα των πεδίων και μεθόδων του αντικειμένου). Δημόσια (public) πεδία/μέθοδοι: αυτά που μπορούν να χρησιμοποιηθούν (κληθούν/ προσπελαστούν) από τα άλλα αντικείμενα. Ιδιωτικά (private) πεδία/μέθοδοι: αυτά που χρησιμοποιούνται μόνο από το ίδιο το αντικείμενο. ΣΧΕΣΕΙΣ ΜΕΤΑΞΥ ΚΛΑΣΕΩΝ Κληρονομικότητα ή γενίκευση (inheritance - generalization) Όταν μία κλάση αποδίδει σε μία άλλη κλάση τα χαρακτηριστικά της. Η πρώτη κλάση λέγεται κλάση-γονέας η δε δεύτερη κλάση-παιδί, και μπορεί να διαθέτει επιπλέον χαρακτηριστικά (πεδία και μεθόδους) από αυτά που κληρονομεί. Σε μία σχέση κληρονομικότητας με ένα μόνο γονέα έχουμε την απλή κληρονομικότητα (single inheritance), ενώ στην αντίθετη περίπτωση πολλαπλή κληρονομικότητα (multiple inheritance). Αν δούμε την κληρονομικότητα από την κλάση-παιδί προς την κλάση-γονέα, τότε παρατηρούμε ότι η κλάση-γονέας έχει λιγότερα χαρακτηριστικά από την κλάση-παιδί, δηλαδή αποτελεί γενίκευσή (generalization) της. Με την κληρονομικότητα έχουμε και τον ορισμό της επαναχρησιμοποίησης (δεδομένων και λειτουργιών). Πολυμορφισμός (polymorphism) Πολυμορφισμός είναι η δυνατότητα εκτέλεσης διαφορετικών λειτουργιών μιας μεθόδου που είναι κοινή σε διαφορετικές κλάσεις (συνήθως κλάση-γονέα και κλάση-παιδί), ανάλογα με το αντικείμενο της κλάσης που την καλεί. Είναι μία σημαντική ιδιότητα του αντικειμενοστρεφούς προγραμματισμού που χρησιμοποιείται ευρέως στην επεκτασιμότητα των εφαρμογών.


152. Αναλύστε τις διαφορετικές τεχνικές προγραμματισμού procedural (διαδικαστικός), structured (δομημένος) και object-oriented (αντικειμενοστραφή).

Αντικειμενοστραφή προγραμματισμό (object-oriented programming), ονομάζουμε ένα προγραμματιστικό υπόδειγμα το οποίο εμφανίστηκε στα τέλη της δεκαετίας του 1960 και καθιερώθηκε κατά τη δεκαετία του 1990,αντικαθιστώντας σε μεγάλο βαθμό το παραδοσιακό υπόδειγμα του δομημένου προγραμματισμού. Πρόκειται για μία μεθοδολογία ανάπτυξης προγραμμάτων, , υποστηριζόμενη από κατάλληλες γλώσσες προγραμματισμού, όπου ο χειρισμός σχετιζόμενων δεδομένων και των διαδικασιών που επενεργούν σε αυτά γίνεται από κοινού,μέσω μίας δομής δεδομένων που τα περιβάλλει ως αυτόνομη οντότητα με ταυτότητα και δικά της χαρακτηριστικά. Αυτή η δομή δεδομένων καλείται αντικείμενο και αποτελεί πραγματικό στιγμιότυπο στη μνήμη ενός σύνθετου, και πιθανώς οριζόμενου από τον χρήστη, τύπου δεδομένων τύπου δεδομένων ονόματι κλάση. Η κλάση προδιαγράφει τόσο δεδομένα όσο και τις διαδικασίες οι οποίες επιδρούν επάνω τους· αυτή υπήρξε η πρωταρχική καινοτομία του αντικειμενοστραφή προγραμματισμού


153. Αναλύστε ποιός είναι ο ρόλος της οδηγίας #include <iostream>.

Το iostream είναι μέρος της πρότυπης βιβλιοθήκης της γλώσσας προγραμματισμού C++ για την είσοδο/έξοδο δεδομένων. Στην πραγματικότητα είναι ένα ψευδώνυμο (typedef) για την εξειδίκευση του πρωτύπου κλάσης basic_iostream basic_iostream για είσοδο - έξοδο δεδομένων σε μορφή char. Παράγεται με διπλή κληρονομικότητα από τα πρότυπα κλάσεων basic_ostream και basic_istream. Τα αρχικά io στο όνομα της βιβλιοθήκης αναφέρονται στις αγγλικές λέξεις Input/Output Stream που μεταφράζονται ως είσοδος/έξοδος ροής (stream) δεδομένων. Η βιβλιοθήκη iostream παρέχει την βασική είσοδο/έξοδο σε ένα πρόγραμμα της C++. Το cin είναι σε ένα πρόγραμμα της C++. Το cin είναι αντικείμενο αντικείμενο της istream (παράφραση του αγγλικού see-in που σημαίνει δες είσοδο), και τα cout (παράφραση του αγγλικού see - out που σημαίνει δες έξοδο), cerr (παράφραση του αγγλικού see -err or που σημαίνει δες έξοδο λαθών), και clog (παράφραση του αγγλικού see-log που σημαίνει δες έξοδο αρχείου καταγραφής) αντικείμενα της ostream για την ροή δεδομένων στην τυπική έξοδο, την έξοδο λαθών και την έξοδο στο αρχείο καταγραφής αντίστοιχα. Όλα αυτά τα αντικείμενα βρίσκο Όλα αυτά τα αντικείμενα βρίσκονται κάτω από το χώρ νται κάτω από το χώρο ονομάτων (namespace) std


154. Δώστε ένα παράδειγμα σε C++ που να εκτυπώνει τα παρακάτω μηνύματα το ένα κάτω από το άλλο: "Ένα απλό Πρόγραμμα", "Είναι γραμμένο σε C++" , "Η C++ είναι αντικειμενοστραφής γλώσσα προγραμματισμού".

#include <iostream>

int main() {

cout << "Ένα απλό πρόγραμμα\n";

cout << "Είναι γραμμένο σε C++\n";

cout << "Η C++ cout << "Η C++ είναι αντικειμενοστραφής γλώσσα προγραμματισμού \n";

return 0;

.......

#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

using namespace std;

int main(int argc, char** argv) {

cout << "Ena aplo programma" << endl;

cout << "Einai grammeno se C++" << endl;

cout << "H C++ einai ...." << endl;

return 0;

}


155. Αναλύστε τι είναι το λάθος σε χρόνο εκτέλεσης και τι λάθος κατά την μεταγλώττιση. Να αναφέρετε από δύο αιτίες που προκαλούν αυτά τα λάθη.

Τα λάθη του προγράμματος είναι γενικά δύο ειδών, λογικά και συντακτικά. Τα λογικά λάθη εμφανίζονται μόνο στην εκτέλεση, ενώ τα συντακτικά λάθη στο στάδιο της μεταγλώττισης. Tα λογικά λάθη που είναι τα πλέον σοβαρά και δύσκολα στη διόρθωση τους, οφείλονται σε σφάλματα κατά την υλοποίηση του αλγορίθμου, ενώ τα συντακτικά οφείλονται σε αναγραμματισμούς ονομάτων εντολών, παράληψη δήλωσης δεδομένων και πρέπει πάντα να διορθωθούν, ώστε να παραχθεί το τελικό εκτελέσιμο πρόγραμμα. Ο μεταγλωττιστής ανιχνεύει λοιπόν τα συντακτικά λάθη και εμφανίζει κατάλληλα διαγνωστικά μηνύματα. Το στάδιο που ακολουθεί είναι η διόρθωση των λαθών. Το διορθωμένο πρόγραμμα επαναϋποβάλεται για μεταγλώττιση και η διαδικασία αυτή επαναλαμβάνετα επαναλαμβάνεται, μέχρις ι, μέχρις ότου εξαληφθούν πλήρως όλα τα ότου εξαληφθούν πλήρως όλα τα λάθη. 


156. Αναλύστε τις διαφορές μεταξύ if και else if όσον αφορά στον έλεγχο και στη χρήση τους. Δώστε παράδειγμα.

Η εντολή if χρησιμοποιείται όταν θέλουμε να εκτελέσουμε κάποιες εντολές μόνο όταν ικανοποιείται κάποια συνθήκη:

if (συνθήκη)

{ εντολές; }

else

{ εντολές; }

Μπορούν να συνδυαστούν πολλές εντολές if μεταξύ τους, όταν θέλουμε να ελέγξουμε περισσότερες από δύο περιπτώσεις, όπως στο ακόλουθο παράδειγμα:

if (x == 1) {

cout << "x is one." << endl;

}

else if (x == 2) {

cout << "x is two." << endl;

}

else if (x == 3) {

cout << "x is three." << endl;

}

else if (x == 4) {

cout << "x is four." << endl;

}

else {

cout << "x is not between 1-4." << endl;

}

Το if ελέγχει παντα την συνθηκη ενώ το else if θα ελέγξει την συνθηκη μόνο αν ο προηγούμενος έλεγχος (If ή else if) έχει αποτέλεσμα ψευδές 

Η εντολή if...elseif...else είναι μία δομή ελέγχου με την οποία μπορούμε να εκτελέσουμε υπό ορισμένες συνθήκες ένα κομμάτι κώδικα. η else if και else είναι προαιρετικές δομές (δηλαδή μπορούμε να χρησιμοποιήσουμε την if σκέτη) για να μας δώσουν περισσότερη ευελιξία στην περίπτωση που θέλουμε να εκτελεστεί διαφορετικό κομμάτι κώδικα αν δεν είναι αληθής η συνθήκη μέσα στην If. 

Σύνταξη

if (Συνθήκη Α)

{

// Τρέξε τον κώδικα Α

}

else if (Συνθήκη Β)

{

// Τρέξε τον κώδικα Α

}

else

{

// Τρέξε τον κώδικα Γ

}

Παράμετροι

Σύνθήκη Α, Β, Γ: πρέπει να είναι μία έκφραση boolean η οποία θα επιτρέφει true ή false.

Θα πρέπει να έχετε υπ' όψιν πως όταν χρησιμοποιείτε μία λογική συνθήκη θα χρησιμοποιήσετε έναν ή περισσότερους τελεστές σύγκρισης.

x == y (x είναι ίσο με y)

x != y (x δεν είναι ίσο με y)

x < y (x είναι μικρότερο από y)

x > y (x είναι μεγαλύτερο από y)

x <= y (x είναι μικρότερο ή ίσο από y)

x >= y (x είναι μεγαλύτερο ή ίσο από y)

Προσοχή

Όταν θέλετε να ελέγξετε αν δύο μεταβλητές ή δύο μέρη μία συνθήκης ότι είναι ίσα να χρησιμοποιείτε πάντα δύο = (==). Για παράδειγμα αν το Χ=1 και το Υ=2 για να ελέγξετε αν οι δύο μεταβλητές είναι ίσες θα πρέπει να γράψετε if (Χ==Υ) το οποίο θα επιστρέψει false.

Αν γράψετε if (X=Y) αυτό που θα συμβεί είναι να πάρει το Χ την τιμή του Y, δηλαδή να γίνει ανάθεση τιμής όπως θα γράφαμε π.χ. Υ=5. Το if(Χ=Υ) θα δώσει την τιμή 2 στο Χ, το οποίο μεταφράζεται τελικά if(2) όπου επιστρέφεται η τιμή true.

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

Παράδειγμα κώδικα με if...else if...else

Να γράψετε πρόγραμμα που θα βρίσκει τον μεγαλύτερο από τρεις αριθμούς.

A = 5;

B = 7;

C = 3;

if ((A>B) && (A>C))

{

Serial.print("Ο μεγαλύτερος αριθμός είναι ο Α");

}

else if (B>C)

{

Serial.print("Ο μεγαλύτερος αριθμός είναι ο Β");

}

else

{

Serial.print("Ο μεγαλύτερος αριθμός είναι ο C");

}


157. Αναλύστε τη χρήση των πινάκων χαρακτήρων string στον προγραμματισμό με C++.

Αντίθετα με τα strings σε άλλες γλώσσες προγραμματισμού (C, PASCAL) που είναι απλώς πίνακες χαρακτήρων, στη C++ τα strings είναι κανονικά αντικείμενα, που υλοποιούνται με την κλάση string (στο namespace std). Φυσικά, για λόγους συμβατότητας με τη C, υπάρχει πλήρης υποστήριξη των strings υπό την μορφή πινάκων χαρακτήρων (char * ή char []) μορφή πινάκων χαρακτήρων (char * ή char []). 

158. Αναλύστε τις διαφορές μεταξύ for, while και do while, όσον αφορά στον έλεγχο των συνθηκών τους. Δώστε από ένα παράδειγμα σε C++.

H for εκτελείται για προκαθορισμένο αριθμό επαναλήψεων

for (int i = 1; i < 10; i += 3)

{

cout << i << endl;

}

int x = 1;

Η while εκτελείται μόνο εφόσον η συνθήκη της είναι TRUE

while (x <10){

cout << x << endl;

x+=3;

}

H do while εκτελείται τουλάχιστον μία φορά ανεξαρτήτως της συνθήκης της

int x = 1;

do {

cout << x << endl;

x+=3;

}

while (x <10);

159. Αναλύστε τη χρήση της υπερφόρτωσης σε συναρτήσεις και κατασκευαστές.

Με την υπερφόρτωση συναρτήσεων μπορούμε να ορίσουμε πολλές συναρτήσεις με το ίδιο όνομα, έχοντας διαφορετικά σύνολα παραμέτρων (διαφορετικούς τύπους ή διαφορετικό αριθμό ορισμάτων). Το ίδιο ισχύει και για την υπερφόρτωση κατασκευαστών, μπορούμε να ορίσουμε διαφορετικούς κατασκευαστές για ένα αντικείμενο έχοντας διαφορετικά σύνολα παραμέτρων (διαφορετικούς τύπους ή διαφορετικό αριθμό ορισμάτων). 


160. Τι είναι ένα string στην C++ και σε τι διαφέρει από ένα αλφαριθμητικό C-string;

Στο C, οι συμβολοσειρές είναι απλά συστοιχίες char, οι οποίες, κατά σύμβαση, τελειώνουν με ένα byte NULL. Στη C++, οι συμβολοσειρές (std :: string) string) είναι αντικείμενα με όλη τη σχετική αυτοματοποιημένη διαχείριση μνήμης και ελέγχου που τα κάνει πολύ ασφαλέστερα και ευκολότερα στη χρήση.

Strings are objects that represent sequences of characters

 Οι συμβολοσειρές είναι αντικείμενα που αντιπροσωπεύουν ακολουθίες χαρακτήρων.

Συμβολοσειρές C++

Οι συμβολοσειρές χρησιμοποιούνται για την αποθήκευση κειμένου.

Μια stringμεταβλητή περιέχει μια συλλογή χαρακτήρων που περιβάλλονται από διπλά εισαγωγικά:

Παράδειγμα

Δημιουργήστε μια μεταβλητή τύπου stringκαι αντιστοιχίστε της μια τιμή:

string greeting = "Hello";

Για να χρησιμοποιήσετε συμβολοσειρές, πρέπει να συμπεριλάβετε ένα επιπλέον αρχείο κεφαλίδας στον πηγαίο κώδικα, τη <string>βιβλιοθήκη:

Παράδειγμα

// Include the string library

#include <string>

//Create a string variable

string greeting = "Hello";

Αλφαριθμητικά στη C++

Αλφαριθμητικό (string) είναι οποιαδήποτε ακολουθία χαρακτήρων, και στη C++ ορίζεται ως ένας πίνακας. Τα στοιχεία του πίνακα είναι οι χαρακτήρες του αλφαριθμητικού, συν τον ειδικό χαρακτήρα τέλους (null character). Όλα τα αλφαριθμητικά περιέχουν το χαρακτήρα τέλους, έτσι πχ η λέξη hello είναι πίνακας 6 και όχι 5 θέσεων.

Αλφαριθμητικές σειρές (character strings)  

Η αλφαριθμητική σειρά (character string ή απλούστερα string) είναι μια σειρά από χαρακτήρες τους οποίους διαχειριζόμαστε ως ενιαίο σύνολο. Η αλφαριθμητική σειρά είναι ένας αναγκαίος τύπος δεδομένων που υποστηρίζεται από τις περισσότερες γλώσσες προγραμματισμού. Κυρίως χρησιμοποιείται για την αποθήκευση και διαχείριση λεκτικών, π.χ. ονόματα, περιΠαραδοσιακές αλφαριθμητικές σειρές 

 Η C παραδοσιακά αναπαριστά τις σειρές ως πίνακες χαρακτήρων στους οποίους το τέλος των έγκυρων χαρακτήρων σημειώνεται με τον χαρακτήρα null (άκυρος χαρακτήρας), '\0'. Για παράδειγμα, σε ένα πίνακα μήκους x χαρακτήρων μπορεί να αποθηκευτεί οποιαδήποτε σειρά με μέγεθος x-1, δηλ. πλήθος έγκυρων χαρακτήρων, από 1 έως x-1. Στην περίπτωση που στον προαναφερόμενο πίνακα αποθηκευτεί 1 χαρακτήρας, τότε στην θέση του πίνακα με δείκτη 1 πρέπει να αποθηκευτεί ο null χαρακτήρας. Στην περίπτωση που αποθηκευτούν x-1 χαρακτήρες, δηλ. καταληφθούν οι θέσεις 0 έως x-2, τότε ο null χαρακτήρας πρέπει να τοποθετηθεί στην θέση x-1. Οι σειρές αυτές είναι γνωστές ως τερματιζόμενες με null σειρές (null-terminated strings). Εφόσον οι τερματιζόμενες με null σειρές, υλοποιούνται ως πίνακες χαρακτήρων, ότι ισχύει για τους μονοδιάστατους πίνακες και τους pointers, ισχύει και για τις τερματιζόμενες με null σειρές. Επιπλέον, μία σειρά από χαρακτήρες που περιβάλλεται από διπλή απόστροφο (double quotes) συνιστά μια τερματιζόμενη με null σειρά.γραφές αντικειμένων, κλπ. 

Στην C++ έχουμε δύο διαφορετικούς τύπους για την αναπαράσταση των σειρών, τα παραδοσιακά (conventional) strings που προέρχονται από την C και την κλάση string που έχει αναπτυχθεί στο πλαίσιο του αντικειμενοστραφούς υποδείγματος. 

Συµβολοσειρές στην C++ 

Στην C++ υπάρχουν εκτός από τις συµβολοσειρές που

υπάρχουν στην C, και ειδική κλάση string για αντικείµενα

τυπου συµβολοσειρά (string)• char color[] = "blue";

• string color="blue";

- Για αλυσίδες τύπου C υπάρχουν συναρτήσεις στην

βιβλιοθήκη <cstring> ενώ για τα αντικείµενα string της C++

στην <string>


161. Αναλύστε τη χρήση των πινάκων χαρακτήρων string στον προγραμματισμό με C++.

Στην C++ χρησιμοποιούμε πίνακες χαρακτήρων string για την αποθήκευση μιας συλλογής δεδομένων. Κάθε string-κελί του πίνακα το αντιμετωπίζουμε ως ένα object αυξάνοντας έτσι την ευκολία χρησιμοποίησης τους από το χρήστη.


162. Δημιουργήστε σε C++ ένα πρόγραμμα το οποίο θα δέχεται από τον χρήστη ένα αριθμό και θα επιστρέφει ως τιμή το παραγοντικό του αριθμού. Χρησιμοποιήστε συναρτήσεις αναδρομής.Παράδειγμα το παραγοντικό του 7! είναι:5040 (1*2*3*4*5*6*7). Γενικά:Ν!=(1*2*3...*Ν) και 0!=1

#include <iostream>

#include <string> using namespace std;

int main(){

string num;

int x;

cout<<("Dwse arithmo");

cin>>num;

x=atoi(num);

x=factorial(num);

cout<<"To paragwntiko tou arithmou pou cout<<"To paragwntiko tou arithmou pou dwsate einai dwsate einai:"<<x;

int factorial(int n)

{

if(n > 1)

return n * factorial(n - 1);

else

return 1;

}

....

#include <iostream>

class parag{

int input;

int output;

public:

int calc(int x)

{

if (x==1)

return 1;

else

{

return(x*calc(x-1));

}

}

parag(int a)

{

input = a;

output = calc(a);

}

int get_output()

{

return output;

}

};

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

using namespace std;

int main(int argc, char** argv) {

int number;

cin >> number;

parag ask1(number);

cout << ask1.get_output();

return 0;


163. Δημιουργήστε το πρόγραμμα εύρεσης λέξης string σε C++. Το πρόγραμμα δημιουργεί δύο πίνακες string που ο πρώτος περιέχει την πρόταση «C++ is an object oriented Language and is a superset of C». Ο δεύτερος περιέχει την λέξη «is». Το πρόγραμμα πρέπει να ψάχνει στον πρώτο πίνακα να βρει εάν υπάρχει η λέξη που περιέχεται στο δεύτερο πίνακα και να επιστρέφει τη θέση στην οποία βρίσκεται καθώς και πόσες φορές επαναλαμβάνεται.


#include <iostream>

#include <string>

using namespace std;

int main() {

string first []="C++ is an object oriented Language and is a superset of C ";

string second[]="i second[]="is";

int found=first[0].find(second[0]);

int sum=0;

while (found!=string::npos){

cout<<"foun cout<<"found at:"<<found at:"<<found<<endl; <<endl;

sum+=1;

found=first[0].find(second[0],found+1);

if(found==string::npos)

cout<<"The string doesnt cout<<"The string doesnt exists\n"<<e exists\n"<<endl;

}

cout<<sum;

return 0;

}


#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

using namespace std;

int main(int argc, char** argv) {

string s1="C++ is an object oriented Language and is a superset of C";

string s2 = "is";

int ndx, cnt;

cnt=0;

ndx = s1.find("is");

while((0<=ndx) && (ndx < s1.length()))

{

cout << ndx << endl;

cnt++;

ndx = s1.find("is",ndx+1);

}

cout << cnt <<endl;

return 0;

}


164. Γράψτε δυο συναρτήσεις που θα υπολογίζουν τον Μέγιστο Κοινό Διαιρέτη (ΜΚΔ) και το Ελάχιστο κοινό πολλαπλάσιο (ΕΚΠ) δυο ακέραιων αριθμών. ΜΚΔ είναι ο μεγαλύτερος από τους κοινούς διαιρέτες δηλαδή τους αριθμούς που τους διαιρούν ακριβώς. Κοινό πολλαπλάσιο (Κ.Π.) δύο ή περισσοτέρων αριθμών λέγεται κάθε ακέραιος, εκτός από το 0, που το συναντάμε κοινό στα πολλαπλάσια των δύο αριθμών. Ο μικρότερος από τα κοινά πολλαπλάσια κάποιων ακέραιων αριθμών λέγεται Ελάχιστο Κοινό Πολλαπλάσιο (Ε.Κ.Π.).

void megistos_koinos_diairetis(int a,int b){

int m;

if(b>a){

m=a;

a=b;

b=m;

}

if(b!=0){

do

{

m=a-(a/b)* b;

if(m==0)

break;

a=b;

b=m;

}while(m>0);

cout<<"Megistos Koinos Diairetis = "<<b;

}

else

{

cout<<"megistos koinos diairetis = "<<a;

}}

void megistos_koinos_diairetis(int a,int b){

int x,y,max,min,ekp,c;

do

{

x=a;

y=b;

}while(!(x>0 && y>0));

if(x>y){

max=x;

min=y;

}

else{ max=y;

min=x;

}

c = 1;

do{

ekp=max*c;

c++;

} while ((ekp%min)!=0) ;

cout<<"\n\nEKP=%d\n---"<<ekp);

cout<<("\n\n");

}

ΜΕΓΣΙΤΟΣ ΚΟΙΝΟΣ ΔΙΑΙΡΕΤΗΣ

#include<iostream>

using namespace std;

int main() {

int first_number;

cout<<"Enter First Number : ";cin>>first_number;

int second_number;

cout<<"Enter Second Number: ";cin>>second_number;

int gcd;

for(int i=1;i<=first_number&&i<=second_number;i++){

if(first_number%i==0 && second_number%i == 0 ){

gcd=i;

}

}

cout<<"Greatest Common Divison (GCD):"<<gcd<<endl;

return 0;

}

ΕΛΑΧΙΣΤΟ ΚΟΙΝΟ ΠΟΛΛΑΠΛΑΣΙΟ

#include<iostream>

using namespace std;

int main() {

int first_number;

cout<<"Enter First Number : ";cin>>first_number;

int second_number;

cout<<"Enter Second Number: ";cin>>second_number;

int ekp, a,b;

if(first_number < second_number)

{

a= first_number;

b= second_number;

}

else

{

a= second_number;

b=first_number;

}

for(int i=1;;i++)

{

ekp = a*i;

if(ekp%b == 0)

break;

}

cout<<"EL KO PO:"<<ekp<<endl;

return 0;

}


165. Αναλύστε τους όρους "κληρονομικότητα" και "πολυεπίπεδη κληρονομικότητα" (multi- level inheritance). Δώστε παραδείγματα σε C++ κώδικα.

Η κληρονομικότητα είναι ένα από τα βασικά χαρακτηριστικά μιας αντικειμενοστραφούς γλώσσας προγραμματισμού Επιτρέπει στους προγραμματιστές να αντλούν μια νέα κλάση από την υπάρχουσα κλάση. Η παράγωγη κλάση κληρονομεί τα χαρακτηριστικά της βασικής κλάσης. Υπάρχουν διάφορα μοντέλα κληρονομιάς στον προγραμματισμό C ++.

Στην C ++, μπορούμε να αντλήσουμε μια κλάση από την κλάση βάσης(base class) αλλά μπορούμε επίσης να αντλήσουμε μια κλάση από την παράγωγη κλάση.  Αυτή η μορφή κληρονομικότητας είναι γνωστή ως πολυεπίπεδη κληρονομικότητα

Παράδειγμα:

class A

{ class A

... .. ...

};

class B: public A

{

... .. ...

};

class C: public B

{

... ... ...

};

Εδώ, η κλάση Β προέρχεται από την κλάση βάσης Α και η κλάση C προέρχεται από την παράγωγη κλάση Β.

Άλλο παράδειγμα κληρονομικότητας:

#include <iostream>

using namespace std;

// Base class

class Shape {

public:

void setWidth(int w) {

width = w;

}

void setHeight(int h) {

height = h;

}

protected:

int width;

int height;

};

// Derived class

class Rectangle: public Shape {

public:

int getArea() {

return (width * height);

}

};

int main(void) {

Rectangle Rect;

Rect.setWidth(5);

Rect.setHeight(7);

// Print the area of the object.

cout << "Total area: " << Rect.getArea() << endl;

return 0;

}

Σε αυτό το παράδειγμα έχουμε μια βασική κλάση Shape και από αυτή κληρονομεί τα βασικά χαρακτηριστικά της κλάσης μια νέα κλάση με όνομα Rectangle. Η Rectangle, έχει όλα τα γνωρίσματα του γονέα της και μια επιπλέον συνάρτηση που υπολογίζει το εμβαδόν του ορθογωνίου.


166. Ποια χρωματικά μοντέλα υπάρχουν; Δώστε μια σύντομη περιγραφή για τη λειτουργία τους και για τα χρώματα που χρησιμοποιούνται στο κάθε ένα.

Χρωματικό μοντέλο RGB Η ονομασία RGB του χρωματικού μοντέλου προέρχεται από τα αρχικά Red Green Blue (Κόκκινο Πράσινο Μπλέ). Με τα βασικά αυτά χρώματα κωδικοποιούνται όλα τα χρώματα που μπορεί να εμφανιστούν σε μία οθόνη υπολογιστή. Στην 8bit μορφή του χρωματικού αυτού μοντέλου κάθε χρώμα μπορεί να παρασταθεί με μία τριάδα αριθμών από 0 έως 255. Το μοντέλο βασίζεται στο γεγονός ότι, όταν μία οθόνη δεν εκπέμπει φως, εμφανίζεται μαύρη. Τα υπόλοιπα χρώματα δημιουργούνται με υπέρθεση - ανάμιξη των τριών βασικών με συγκεκριμένη αναλογία. Μερικά παραδείγματα χρωμάτων δίνονται παρακάτω στην 8bit αυτή έκδοση του μοντέλου: • Μαύρο: (0,0,0) • Λευκό: (255,255,255) • Κόκκινο: (255,0,0) • Πράσινο: (0,255,0) • Πορτοκαλί: (255,102,0) Χρωματικό μοντέλο CMYK (Χρώμα C Χρωματικό μοντέλο CMYK (Χρώμα CMYK) Πολλές φορές θα έχετε παρατηρήσει ότι όταν τυπώνετε μια έγχρωμη εικόνα από τον υπολογιστή, η εικόνα που τυπώνεται αποκλίνει χρωματικά σε πολλά σημεία από αυτή που βλέπετε στον υπολογιστή. Κι αυτό γιατί δεν μπορούν να χρησιμοποιηθούν στην εκτύπωση μελάνια των τριών χρωμάτων που χρησιμοποείται στο RGB(κόκκινο, πράσινο, μπλε). Η επικάλυψη δύο και μόνο εξ αυτών δημιουργεί μαύρο. Χρειάζεται επομένως μια διαφορετική προσέγγιση. Στην εκτύπωση των εντύπων χρησιμοποιείται ευρέως το σύστημα C=Cyan M=Magenta Y=Yellow που είναι συμπληρωματικό μοντέλο του R μοντέλο του RGB. Με τα τ Με τα τρία αυτά χρώματα ρία αυτά χρώματα δημιουργούνται δημιουργούνται τα δευτερογενή Κόκ τα δευτερογενή Κόκκινο - κινο - Πράσινο - Μπλε ως εξής: ● Κόκκινο: Ματζέντα + Κίτρινο Πράσινο: Κίτρινο + Γαλάζιο ● Μπλε: Γαλάζιο + Ματζέντα Το μοντέλο αυτό βασίζεται στο γεγονός ότι το υπόβαθρο της εκτύπωσης είναι το λευκό χαρτί που ανακλά όλα τα χρώματα (μήκη κύματος). Κάθε βασικό χρώμα που προστίθεται με ένα ρώμα που προστίθεται με ένα μελάνι απορροφά ορισμένα χρώματα και αποδίδει τα υπόλοιπα. Για παράδειγμα το κίτρινο μελάνι απορροφά το μπλε χρώμα και αφήνει το πράσινο και το κόκκινο να ανακλαστεί. Εδώ ο συνδυασμός των τριών βασικών χρωμάτων δίνει το μαύρο χρώμα (πλήρης απορρόφηση των ακτινοβολιών). Για το λόγο αυτό το μοντέλο CMY χαρακτηρίζεται και ως "αφαιρετικό". Μαύρο χρώμα, επίσης, προκύπτει από το συνδυασμό ενός βασικού και του αντίθετου δευτερογενούς: ● Μαύρο: Γαλάζιο + Ματζέντα + Κίτρινο ● Μαύρο: Γαλάζιο + Κόκκινο ● Μαύρο: Ματζέντα + Πράσινο ● Μαύρο: Κίτρινο + Μπλε Tα μελάνια, όμως, από τη φύση τους δεν μπορούν να αποδώσουν συγκεκριμένα μήκη κύματος - χρώματα (όπως τα εικονοστοιχεία (pixels) μίας οθόνης) αλλά, μία πιο ευρεία περιοχή του χρωματικού φάσματος. Το αποτέλεσμα είναι ο συνδυασμός των τριών βασικών χρωμάτων να δίνει ένα καφετί χρώμα αντί για το μαύρο. Για το λόγο αυτό προστέθηκε στο μοντέλο CMY και το μαύρο μελάνι, με αποτέλεσμα να προκύψει το χρωματικό μοντέλο CMYK (Cyan - Magenta - Yellow - Black). Πρακτικά στην εκτύπωση δεν χρησιμοποιείται σήμερα το CMY μοντέλο αλλά το CMYK. Χρωματικό μοντέλο HSB Αναλύει το χρώμα σε τρεις παραμέτρους: Απόχρωση (Hue) Το χρώμα που αντανακλάται ή μεταδίδεται διαμέσου ενός αντικειμένου. Μετράται ως περιοχή στον τυπικό δίσκο χρωμάτων που εκφράζεται ως μοίρα μεταξύ του 0° και του 360°. Σε κοινή χρήση, η απόχρωση αναγνωρίζεται από το όνομα του χρώματος όπως κόκκινη, πορ ως κόκκινη, πορτοκαλί ή πράσινη. τοκαλί ή πράσινη. Κορεσμός (Saturation) Ισχύς ή καθαρότητα του χρώματος (ορισμένες φορές αποκαλείται chroma). Ο κορεσμός αντιπροσωπεύει την ποσότητα του γκρι σε αναλογία με την απόχρωση και μετράται ως ποσοστό από 0% (γκρι) έως 100% (πλήρης κορεσμός). Στον τυπικό δίσκο χρωμάτων ο κορεσμός αυξάνεται από το κέντρο προς την άκρη. Φωτεινότητα (Brightne (Brightness) Η σχετική φωτεινότητα ή σκοτείνιασμα του χρώματος μετράται συνήθως ως ποσοστό από το 0% (μαύρο) έως το 100% (λευκό). Διαδικτυακά Χρώματα Η γλώσσα γραφής των ιστοσελίδων HTML, χρησιμοποιεί για την απεικόνιση των χρωμάτων το μοντέλο RGB στην δεκαεξαδική του μορφή. Χρωματικό μοντέλο Lab Το μοντέλο αυτό αναλύει το χρώμα του κάθε εικονοστοιχείου σε τρεις παραμέτρους L,a,b: ● Ένταση φωτεινότητας (L Ένταση φωτεινότητας (Luminocity). Χρωματική θέση ανάμεσα στο κόκκινο και το συμπληρωματικό του πράσινο (a). ● Χρωματική θέση ανάμεσα μπλε και το συμπληρωματικό του κίτρινο (b).

167. Ποιο χρώμα ονομάζουμε πρωτεύον συμπληρωματικό και ποια δευτερεύοντα; Δώστε δύο (2) παραδείγματα, καθώς και αιτιολογία για το λόγο χρήσης τους.

Τα βασικά ή πρωτεύοντα χρώματα είναι τρία, το κόκκινο, το μπλε και το κίτρινο. Αυτά χρησιμοποιούνται ως βάση για την παραγωγή των άλλων χρωμάτων και τη δημιουργία αρμονικών χρωματικών συνθέσεων. Ονομάζονται βασικά επειδή δεν μπορούν να παραχθούν από την μείξη άλλων χρωμάτων. Η ανάμειξη των βασικών χρωμάτων ανά δύο παράγει τα σύνθετα ή δευτερεύοντα χρώματα. Η ανάμειξη του κόκκινου και του κίτρινου δίνει το πορτοκαλί, η ανάμειξη του μπλε και του κόκκινου δίνει το μωβ και η ανάμειξη του κίτρινου και του μπλε δίνει το πράσινο. Η ανάμειξη και των τριών παράγει ένα καφέ-γκρίζο χρώμα. Τι είναι όμως τα συμπληρωματικά ή αντίθετα χρώματα; Για κάθε βασικό χρώμα υπάρχει ένα δεύτερο που βρίσκεται σε ιδιαίτερη σχέση μαζί του. Είναι το χρώμα που δημιουργήθηκε χωρίς τη συμμετοχή αυτού του βασικού. Έτσι π. χ. για το κόκκινο έχουμε το πράσινο, που δημιουργείται με την ανάμειξη των άλλων δύο βασικών χρωμάτων του κίτρινου και του μπλε. Με τον τρόπο αυτό λοιπόν, δημιουργούνται τρία ζευγάρια χρωμάτων: κόκκινο-πράσινο, κίτρινο-μωβ, μπλε-πορτοκαλί. Τα χρώματα αυτών των ζευγαριών είναι μεταξύ τους αντίθετα και συμπληρωματικά. Όταν δηλ. τοποθετήσουμε ένα κόκκινο αντικείμενο σε πράσινο φόντο η εντύπωση που δημιουργείται είναι η αντίθεση. Φαντάζομαι μπορείς να το αντιληφθείς και μόνο απ' τις χρωματιστές λέξεις βλέποντάς τες δίπλα-δίπλα. Αυτός ο λόγος για τον οποίο το κόκκινο με το πράσινο, το κίτρινο με το μωβ, και το μπλε με το πορτοκαλί ονομάζονται αντίθετα χρώματα. Συμπληρωματικά απ' την άλλη ονομάζονται γιατί σαν ζευγάρι το κάθε ένα από αυτά συμπληρώνει το χρωματικό φάσμα. Όπως έγραψα παραπάνω το κόκκινο, το κίτρινο και το μπλε μπορούν να δημιουργήσουν όλα τα υπόλοιπα χρώματα, ολόκληρο δηλ. το χρωματικό φάσμα. Παίρνοντας ένα ζευγάρι συμπληρωματικών είναι σαν να παίρνουμε και τα τρία βασικά χρώματα, το ένα μόνο του και τα άλλα δύο σε ανάμειξη: ΚΟΚΚΙΝΟ+ ΠΡΑΣΙΝΟ = ΚΟΚΚΙΝΟ+ (ΜΠΛΕ+ ΚΙΤΡΙΝΟ) ΚΙΤΡΙΝΟ+ ΜΩΒ = ΚΙΤΡΙΝΟ+ (ΚΟΚΚΙΝΟ+ ΜΠΛΕ) ΜΠΛΕ+ ΠΟΡΤΟΚΑΛΙ = ΜΠΛΕ+ (ΚΟΚΚΙΝΟ+ ΚΙΤΡΙΝΟ)

168. Ποια είναι τα χαρακτηριστικά μιας ψηφιογραφικής εικόνας (bitmap);

Τα χαρακτηριστικά μια ψηφιογραφικής εικόνας (bitmap) είναι: ● Η ανάλυση ή διακριτική ικανότητα (resolution), που εκφράζει την πυκνότητα των εικονοστοιχείων (pixels) του γραφικού bitmap σε κάθε διάσταση και μετριέται σε κουκίδες ανά ίντσα (dots per inch, dpi). ● Βάθος χρώματος (color depth) ονομάζεται ο αριθμός των bits που χρησιμοποιούνται για την κωδικοποίηση της πληροφορίας της χρωματικής απόχρωσης κάθε εικονοστοιχείου. Αν το βάθος χρώματος είναι n bits, μια εικόνα μπορεί να διαθέτει μέχρι 2n διαφορετικά χρώματα. ● Το μέγεθός της (size), που εκφράζει την απαιτούμενη χωρητικότητα για την αποθήκευση του γραφικού bitmap σε κάποιο αποθηκευτικό μέσο. 

169. Ποιο είναι το μέγεθος μίας ασυμπίεστης εικόνας bitmap (σε bytes), διαστάσεων 100x100 pixels, αν είναι α) true-color; β) grayscale;

Το μέγεθος σε bits μιας εικόνας προκύπτει αν πολλαπλασιάσουμε την ανάλυση με το βάθος χρώματος. Στη συνέχεια πρέπει να διαιρέσουμε το αποτέλεσμα με το 8 για να το μετατρέψουμε σε bytes. Ο τύπος υπολογισμού είναι:

(Ύψος x Πλάτος x Βάθος χρώματος) / 8.

Στην περίπτωση του true-color το βάθος χρώματος είναι 24bit. Συνεπώς το μέγεθος της ασυμπίεστης εικόνας bitmap, διαστάσεων 100x100 pixels είναι:

(100 x 100 pixels x 24 bits) / 8 = 30000 bytes.

Το βάθος χρώματος στην περίπτωση του grayscale είναι 8 bits. Συνεπώς το μέγεθος είναι:

(100 x 100 pixels x 8 bits) / 8 = 10000 bytes.

170. Να αναφέρετε τέσσερις μορφές αρχείων ψηφιογραφικών εικόνων (bitmap) και πού χρησιμοποιούνται, συνήθως, αντίστοιχα.

  • Bmp: αποτελεί πρότυπο γραφικών bitmap και παλαιότερα χρησιμοποιούνταν πολύ, σε

πληθώρα προγραμμάτων ζωγραφικής και επεξεργασίας εικόνας.

  • Gif : χρησιμοποιούνται στη διακίνηση εικόνων κινούμενων εικόνων στο Διαδίκτυο.
  • Jpg: χρησιμοποιούνται στη διακίνηση εικόνων στα δίκτυα υπολογιστών και το

Διαδίκτυο, λόγω της καλής συμπίεσης που επιτυγχάνουν.

  • Tiff : χρησιμοποιείται στην αποθήκευση εικόνων που εισάγονται στον υπολογιστή για

επεξεργασία και είναι η πλέον διαδεδομένη μορφή αποθήκευσης για τις γραφικές

τέχνες.

  • Pcx: χρησιμοποιείται στο πακέτο ζωγραφικής Paintbrush των Windows και σε

πληθώρα προγραμμάτων ζωγραφικής και επεξεργασίας πληθώρα προγραμμάτων ζωγραφικής και επεξεργασίας εικόνας.

171. Ποια η χρησιμότητα μάσκας κατά την επεξεργασία εικόνας;

Οι μάσκες επιτρέπουν την απομόνωση και προστασία περιοχών της εικόνας κατά την εφαμογή χρωματικών αλλαγών, φίλτρων ή άλλων επιδράσεων στην υπόλοιπη εικόνα. Όταν επιλέγουμε μια περιοχή της εικόνας, η μη επιλεγμένη περιοχή χαρακτηρίζεται προστατευμένη από αλλαγές. Οι μάσκες μπορούν να χρησιμοποιηθούν επίσης σε σύνθετες ενέργειες επί των εικόνων, όπως η σταδιακή εφαρμογή χρωματικών αλλαγών ή επιδράσεων φίλτρων κλπ. Μπορούμε να θεωρήσουμε τις μάσκες σαν ένα εναλλακτικό τρόπο επιλογής εικόνας ή τμήματος αυτής,  με τις ίδιες ακριβώς ιδιότητες.  

172. Τι είναι πρότυπο συμπίεσης εικόνας JPEG; Ποια είναι τα μειονεκτήματα και τα πλεονεκτήματα του;

Η τύπου JPEG αποθήκευση σχεδιάστηκε από το Joint Photographic Expert Group και είχε ως στόχο να επιτύχει τη μέγιστη δυνατή συμπίεση μιας εικόνας, χρησιμοποιώντας τεχνικές συμπίεσης με απώλειες. Αυτό σημαίνει την οριστική απώλεια πληροφορίας, δηλαδή από τη στιγμή που μια εικόνα συμπιεστεί και μετά αποσυμπιεστεί, η παραγόμενη εικόνα δεν είναι ακριβώς ίδια με την αρχική. Παρ' όλα αυτά, συνήθως οι απώλειες δε γίνονται αντιληπτές από το ανθρώπινο μάτι. Τα πλεονεκτήματα εδώ είναι, ότι ενώ οι περισσότερες από τις άλλες μεθόδους πετυχαίνουν συμπίεση 3:1, η JPEG τεχνική πετυχαίνει λόγους συμπίεσης 20:1 ή και περισσότερο. Τα μειονεκτήματα είναι ότι η ευελιξία αυτού του τύπου αρχείων μπορεί να οδηγήσει σε προβλήματα ασυμβατότητας. Καθώς η εικόνα συμπιέζεται όταν αποθηκεύεται, ο περαιτέρω χειρισμός εικόνων σε JPEG μορφή, μπορεί να οδηγήσει σε χειροτέρευση του ποσοστού αλλοίωσης της ποιότητας.

173. Τι ονομάζουμε Bit Depth, τι ονομάζουμε Color Depth και ποιες κατηγορίες εικόνων γνωρίζετε με βάση το bit depth;

  • 21 = 2: Ασπρόμαυρη εικόνα (χωρίς διαβαθμίσεις γκρίζου).
  • 28: = 256 χρώματα (ή αποχρώσεις του γκρίζου).
  • 216 = 65536 χρώματα Η εικόνα με αυτό το βάθος χρώματος αναφέρεται και ως Highcolor.
  • 224 = 16.777.216 χρώμ. Η εικόνα με αυτό το βάθος χρώματος αναφέρεται και ως Truecolor.
  • 248 = Αυτό το βάθος χρώματος υπερβαίνει την διακριτική ικανότητα του ανθρώπινου οφθαλμού. Χρησιμοποιείται, ωστόσο, για πρακτικούς λόγους, από π όγους, από πολλούς σαρωτές.

Βάθος μπιτ (Bit Depth), είναι ακριβώς το ίδιο με το Color Depth, απεικονίζει δηλαδή τον αριθμό των bits που χρησιμοποιούνται για να αναπαραστήσουν το pixel μιας εικόνας.

174. Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα των ψηφιογραφικών εικόνων bitmap;

Τα μειονεκτήματα των γραφικών bitmap είναι: • Μεγαλύτερο μέγεθος αρχείων σε σχέση με τα διανυσματικά γραφικά. • Δεν παρέχουν δυνατότητες γεωμετρικών μετασχηματισμών (μετακίνηση, μεγέθυνση, σμίκρυνση, περιστροφή, διάτμηση και αναστροφή) των σχημάτων χωρίς να προκληθούν αλλοιώσεις. • Το γραφικό bitmap αποτελεί ένα ενιαίο αντικείμενο και δεν επιτρέπει τον άμεσο διαχωρισμό των συστατικών του στοιχείων ούτε και την ανεξάρτητη επεξεργασία του καθενός. • Η επεξεργασία τους είναι πιο δύσκ Η επεξεργασία τους είναι πιο δύσκολη και πιο αργή σ ολη και πιο αργή σε σχέση με τα διανυσματικά ε σχέση με τα διανυσματικά γραφικά. Το πλεονέκτημα των γραφικών bitmap είναι ότι είναι κατάλληλα για φωτορεαλιστικές και τρισδιάστατες απεικονίσεις, διότι προσφέρουν μεγάλο εύρος χρωμάτων, λεπτομερειών και φωτοσκιάσεων. 

175. Αναφέρετε τους τρόπους λήψης και ψηφιοποίησης ψηφιογραφικής εικόνας.

Μερικοί τρόποι λήψης/ψηφιοποίησης εικόνων bitmap είναι με: ● Προγράμματα δημιουργίας και επεξεργασίας εικόνας. ● Ψηφιοποίηση εικόνων με σαρωτή. ● Σύλληψη εικόνων από την οθόνη του υπολογιστή μέσω κατάλληλου λογισμικού. ● Χρήση ψηφιακής φωτογραφικής μηχανής. ● Ψηφιοποίηση εικόνας βίντεο ή τηλεόρασης μέσω ειδικής κάρτας σύλληψης εικόνας βίντεο.

176. Με ποια εντολή δημιουργούμε, διαγράφουμε έναν πίνακα και με ποια εντολή διαγράφουμε τα δεδομένα ενός πίνακα;

π.χ. CREATE TABLE Persons (

PersonID int,

LastName varchar(255),

FirstName varchar(255),

Address varchar(255),

City varchar(255)

);

Διαγραφή πίνακα: DROP TABLE

π.χ. DROP TABLE Persons;

Διαγραφή δεδομένων πίνακα: DELETE FROM TABLE

WHERE συνθήκη

π.χ. DELETE FROM Persons Persons

WHERE LastName= 'Petrou';

177. Τί εννοούμε όταν αναφερόμαστε στις όψεις; Ορίστε την "όψη" στην SQL.

Η όψη (view) είναι μια σχέση μιας βάσης δεδομένων, που δεν έχει δημιουργηθεί με κάποια εντολή create table. Με τις όψεις μπορούμε να εμφανίζουμε ορισμένα μόνο πεδία μιας σχέσης ή και κάποιες άλλες πληροφορίες που αν δεν ήταν οι όψεις θα έπρεπε να δίνουμε κάθε φορά πολύπλοκες εντολές για να δούμε τις πληροφορίες που θέλουμε. Μπορούμε να δημιουργούμε, να τροποποιούμε και να διαγράφουμε όσες όψεις θέλουμε, χωρίς να επηρεάζονται καθόλου τα δεδομένα των σχέσεων στις οποίες αναφέρονται οι όψεις. Η όψη μπορεί να χρησιμοποιηθεί ως πίνακας σε ερωτήματα ή υποερώτημα SELECT υποερώτημα SELECT.

Για να δημιουργήσουμε μια όψη, δίνουμε την εντολή create view as, ως εξής :

Create view ΑΘΛΗΤΗΣ_1 as

(Select Κωδικός_Αθλητή, Επώνυμο, Ημνία_Γέννησης

From ΑΘΛΗΤΗΣ);

178. Τί είναι ένα ευρετήριο (index); Δώστε ένα παράδειγμα με χρήση κώδικα SQL.

Ένα ευρετήριο(index), είναι μια βοηθητική δομή αρχείου που κάνει πιο αποδοτική την αναζήτηση μιας εγγραφής σε ένα αρχείο. Το ευρετήριο καθορίζεται (συνήθως) σε ένα γνώρισμα του αρχείου που καλείται πεδίο ευρετηριοποίησης (indexing field).


π.χ. CREATE INDEX idx_lastname

ON Persons (LastName);

Παραπάνω δημιουργήσαμε ένα ευρετήριο με όνομα idx_lastname, πάνω στο πεδίο LastName του πίνακα Persons.


179. Ποια είναι η χρήση των stored procedures; Δώστε δύο παραδείγματα για τη δομή τους.

Μια stored procedure (αποθηκευμένη διαδικασία) είναι ένα τμήμα προγράμματος που αποθηκεύεται στον κατάλογο της Βάσης Δεδομένων και στη συνέχεια μπορεί να κληθεί από ένα πρόγραμμα ή μια άλλη stored procedure. Τα πλεονεκτήματα μίας stored procedure είναι τα εξής: ● Βελτιώνει την απόδοση μιας εφαρμογής. Όταν δημιουργηθεί, μεταγλωττίζεται και αποθηκεύεται στον κατάλογο της Βάσης Δεδομένων. Εκτελείται πιο γρήγορα από απλές SQL εντολές που δεν έχουν μεταγλωττιστεί. ● Μειώνει το επικοινωνιακό φορτίο μεταξύ της εφαρμογής και του εξυπηρετητή Βάσεων Δεδομένων. Αυτό συμβαίνει γιατί, αντί να στέλνονται μη μεταγλωττισμένες SQL εντολές, η εφαρμογή χρειάζεται να στείλει στον εξυπηρετητή μόνο το όνομα της stored procedure για να πάρει τα αποτελέσματα. ● Είναι επαναχρησιμοποιήσιμη για κάθε εφαρμογή. Διευκολύνει τον προγραμματιστή, ο οποίος δε χρειάζεται να δημιουργήσει συναρτήσεις για λειτουργίες που έχουν ήδη υλοποιηθεί σε μια stored procedure. Χρειάζεται απλώς να καλέσει την κατάλληλη stored procedure από το πρόγραμμά του. ● Είναι ασφαλής. Ο διαχειριστής του εξυπηρέτη Βάσεων Δεδομένων μπορεί να δώσει δικαιώματα χρήσης σε stored procedures που υπάρχουν αντί να δώσει δικαιώματα επεξεργασίας σε πίνακες της Βάσης Δεδομένων. Τα μειονεκτήματα των stored procedures είναι τα εξής: ● Αυξάνουν τον φόρτο του εξυπηρετητή Βάσεων Δεδομένων, τόσο από πλευράς επεξεργασίας, όσο και από πλευράς μνήμης. Αντί ο εξυπηρέτης να χρησιμοποιείται μόνο για την αποθήκευση και την ανάκτηση δεδομένων, θα πρέπει να εκτελεί ένα πλήθος από απλές έως πολύπλοκες εντολές των stored procedur es. ● Περιέχουν ένα σύνολο δηλωτικών εντολών σε SQL και δεν μπορούν να χρησιμοποιηθούν για πολύπλοκα προγράμματα που γίνονται παραδοσιακά με χρήση γλωσσών προγραμματισμού όπως C++, Java κτλ. ● Η ανίχνευση λαθών (debugging) σε μια stored procedure είναι δύσκολη. Κατά τη μεταγλώττιση δεν εμφανίζονται τα γνωστά μηνύματα λάθους που εμφανίζει ένας τυπικός μεταγλωττιστής.

Παραδείγματα

1)DELIMITER //

CREATE PROCEDURE GetAllMovies()

BEGIN

SELECT * FROM MOVIES;

END //

DELIMITER ;

Η πρώτη εντολή είναι η εντολή DELIMITER //. Η εντολή αυτή δε σχετίζεται με τη stored procedure.

Η εντολή DELIMITER στη MySQL χρησιμοποιείται για να αλλάξουμε το βασικό delimiter της

MySQL που είναι το ελληνικό ερωτηματικό (;) σε κάποιον άλλο. Σε αυτή την περίπτωση ο delimiter

αλλάζει από ελληνικό ερωτηματικό (;) σε //, ώστε να μπορούμε να έχουμε πολλαπλές SQL εντολές σε

μια stored procedure που να διαχωρίζονται με το ελληνικό ερωτηματικό (;).

Για να δημιουργήσουμε μια νέα stored procedure χρησιμοποιούμε την εντολή CREATE

PROCEDURE. Μετά την εντολή CREATE PROCEDURE γράφουμε το όνομα της stored procedure,

το οποίο στην περίπτωσή μας είναι το GetAllMovies. To κυρίως τμήμα της stored procedure είναι ένα

block που αρχίζει αρχίζει με την εντολή BEGIN και τελειώνει τελειώνει με την εντολή END. Σε αυτό το τμήμα

μπορούμε να γράψουμε SQL εντολές. Μετά την εντολή END χρησιμοποιούμε το delimiter // για να

δείξουμε το τέλος της stored procedure. Μετά την εντολή END της stored procedure θα πρέπει

οπωσδήποτε να αλλάξoυμε πάλι τον delimiter στο ελληνικό ερωτηματικό (;) με χρήση της εντολής

DELIMITER ;

2) DELIMITER //

CREATE PROCEDURE GetMoviesByYear (IN inputYear INT)

BEGIN

SELECT id, title

FROM MOVIES

WHERE year = inputYear;

END //

DELIMITER ;

Η παραπάνω stored procedure, είναι procedure με παραμέτρους. Ο τύπος IN είναι ο default τύπος

παραμέτρου. Όταν χρησιμοποιούμε το ΙΝ για μια παράμετρο, τότε η τιμή της παραμέτρου περνάει στη

stored procedure αλλά οποιαδήποτε αλλαγή στην τιμή της παραμέτρου μέσα στη stored procedure δεν

αλλάζει την αρχική τιμή της παραμέτρου. Xρησιμοποιήσαμε ως ΙΝ παράμετρο το inputYear με τύπο

δεδομένων INT. Στο block της stored procedure που βρίσκεται ανάμεσα στις εντολές BEGIN και

END, γράψαμε μια SQL ερώτηση για να ανακτήσουμε όλες τις ταινίες οι οποίες δημιουργήθηκαν το

έτος inputYear .

Αν υποθέσουμε ότι θέλουμε να ανακτήσουμε όλες τις ταινίες που δημιουργήθηκαν το έτος 2010. Τότε

απλώς περνάμε ως παράμετρο το έτος 2010 στη stored procedure και την καλούμε ως εξής:

CALL GetMoviesByYear(2010);

180. Με τη χρήση κώδικα SQL δημιουργήστε ένα πίνακα ο οποίος στην πρώτη στήλη με τίτλο "Κωδικός" και τιμές 053, 109, 027, στη δεύτερη την ιδιότητα με τίτλο: "Όνομα" και τιμές: Παπαδόπουλου, Χατζηκώστα, Καρανίκα, στη τρίτη με τίτλο "Τηλέφωνο" και τιμές 21041111, 21033099, 21023322. Η κάθε στήλη θα έχει και τον αντίστοιχο τύπο δεδομένων.


CREATE TABLE Persons (

Κωδικός int,

Όνομα varchar(25),

Τηλέφωνο varchar(15),

);

INSERT INTO Persons (Κωδικός, Όνομα, INSERT INTO Persons (Κωδικός, Όνομα, Τηλέφωνο) Τηλέφωνο)

VALUES

(053,'Παπαδοπούλου' 21041111),

(109,'Χατζηκώστα' 21033099),

(027,'Καρανίκα' 21023322);

181. Τί είναι τα ψευδώνυμα και πού τα χρησιμοποιούμε; Εξηγήστε τον ακόλουθο κώδικα:

SELECT E.NAME, S.NAME FROM EMPLOYEE E, EMPLOYEE S WHERE E.SUPERSN=S.SN

Τα ψευδώνυμα χρησιμοποιούνται για λόγους συντόμευσης της γραφής της γλώσσας SQL. Ουσιαστικά μπορούμε να δώσουμε σε έναν πίνακα ή ακόμα και σε ένα πεδίο ψευδόνυμα για να μπορούμε να αναφερόμαστε σε αυτά με μεγαλύτερη ευκολία. Είναι δηλαδή, ένας προσωρινός τρόπος μετονομασίας, χωρίς το πραγματικό όνομα του πίνακα ή του π πίνακα ή του πεδίου να αλλάζει στη βάση. εδίου να αλλάζει στη βάση. Στο παραπάνω ερώτημα, έχουμε δώσει 2 ψευδώνυμα στον πίνακα EMPLOYEE (E και S). Μετέπειτα, ζητάμε δύο φορές το πεδίο NAME, μια φορά με το ψευδώνυμο E και μια φορά με το ψευδώνυμο S, κάνοντας join στον εαυτό του στα πεδία E.SUPERSN και S.SN. 

182. Αν στο αποτέλεσμα ενός ερωτήματος πάρουμε ως απάντηση πολλαπλές πλειάδες πώς τις εξαλείφουμε; Δώστε ένα παράδειγμα σε SQL.

Χρησιμοποιούμε την εντολή DISNTICT.

π.χ. SELECT DISTINCT Country

FROM Customers;

Με το παραπάνω ερώτημα ζητάμε να μας φέρει όλες τις χώρες (Country) που βρίσκονται στον πίνακα Customers, χωρίς όμως να τις επαναλαμβάνει. Αν για παράδειγμα, στο πεδίο Country είχαμε καταχωρημένη πολλές φορές την Ελλάδα, χρησιμοποιώντας το DISTINCT μας τη φέρνει μόνο μία φορά.

183. Πώς επιτυγχάνουμε τη διάταξη των αποτελεσμάτων του ερωτήματος; Δώστε ένα παράδειγμα όπου θα επιλέγεται από ένα πίνακα το ονοματεπώνυμο ενός σπουδαστή και θα εμφανίζονται τα αποτελέσματα ταξινομημένα κατά αύξουσα αλφαβητική σειρά στο όνομα και κατά φθίνουσα αλφαβητική σειρά στο επώνυμο.

Με την εντολή ORDER BY για αύξουσα σειρά και την εντολή ORDER BY DESC για φθίνουσα σειρά.

π.χ. Αύξουσα αλφαβητική σειρά

SELECT * FROM Students

ORDER BY Name, Surmame;

Φθίνουσα αλφαβητική σειρά

SELECT * FROM Students

ORDER BY Surmame DESC;

184. Εξηγήστε τον ακόλουθο κώδικα:

SELECT ΝΑΜΕ

FROM WORKER W

WHERE EXISTS

(SELECT * FROM CONNECT C WHERE ID=C.CONNECT_ID AND W.Name=C.CONNECT_Name);

SELECT ΝΑΜΕ

FROM WORKER W WHERE EXISTS

(SELECT * FROM CONNECT C WHERE I (SELECT * FROM CONNECT C WHERE ID=C.CONNECT_ID AND D=C.CONNECT_ID AND

W.Name=C.CONNECT_Name);

Το παραπάνω query μας επιστρέφει τα ονόματα τον εργατών όπου υπάρχει το id του εργάτη στον πίνακα CONNECT και το όνομα του υπάρχει και στον πίνακα WORKER και στον CONNECT.

185. Δώστε 3 τύπους συνένωσης στην SQL (όχι το απλό JOIN) και για κάθε έναν από αυτούς δώστε ένα παράδειγμα με χρήση κώδικα SQL.

  • INNER JOIN: Το INNER JOIN επιλέγει όλες τις σειρές Το INNER JOIN επιλέγει όλες τις σειρές και από τους και από τους δύο πίνακες, εφόσον δύο πίνακες, εφόσον υπάρχει αντιστοιχία μεταξύ των στηλών. Εάν υπάρχο υπάρχει αντιστοιχία μεταξύ των στηλών. Εάν υπάρχουν εγγραφές στον πίνακα "Orders" που ν εγγραφές στον πίνακα "Orders" που δεν έχουν αντιστοιχίες στους "Customers", αυτές οι παραγγελίες δεν θα εμφανιστούν.

SELECT Orders.OrderID, Customers.CustomerName

FROM Orders

INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

  • LEFT JOIN: Το LEFT JOIN επιστρέφει όλες τις εγγραφές από τ Το LEFT JOIN επιστρέφει όλες τις εγγραφές από τον αριστερό πίνακα ριστερό πίνακα (Customers), ακόμη και αν δεν υπάρχουν αντιστοιχίσεις στο δεξί πίνακα (Orders).

SELECT Customers.CustomerName, Orders.OrderID

FROM Customers

LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID

ORDER BY Customers.CustomerName;

  • RIGHT JOIN: Το RIGHT JOIN επιστρέφει όλες τις εγγραφές από το δεξιό πίνακα (Orders), ό πίνακα (Orders), ακόμα και αν δεν υπάρχουν αντ δεν υπάρχουν αντιστοιχίσεις στον αριστερό πίνακα (C ιστοιχίσεις στον αριστερό πίνακα (Customers). ustomers).

SELECT Orders.OrderID, Customers.LastName, Customers.FirstName

FROM Orders

RIGHT JOIN Orders ON Orders.CustomerID = Customers.CustomerID

ORDER BY Orders.OrderID;


186. Αναλύστε τη χρήση των συναρτήσεων στον αντικειμενοστραφή προγραμματισμό. Δώστε παράδειγμα πως οι συναρτήσεις καλούνται ως μηνύματα σύνδεσης μεταξύ τάξεων.

Η συνάρτηση (function) είναι ένας συνδυασμός οδηγιών/εντολών συνδυασμένων για ναεπιτευχθεί κάποιο αποτέλεσμα. Οι συναρτήσεις μπορούν να δεχθούν δεδομένα εισόδου και να δημιουργήσουν αποτέλεσμα επιστροφής. Εάν μια συνάρτηση δεν επιστρέφει ένα αποτέλεσμα, συνήθως ονομάζεται διαδικασία (procedure).

Απ την άλλη, οι μέθοδοι ("member functions") είναι παρόμοιες με τις συναρτήσεις, ανήκουν σε τάξεις ή αντικείμενα και συνήθως εκφράζουν τις λειτουργίες των αντικειμένων / τάξεων. Για παράδειγμα, ένα αντικείμενο τύπου Window συνήθως θα έχει δημόσιες (public) και ιδιωτικές (private) μεθόδους οι οποίες αντιστοιχούν στις λειτουργίες του αντικειμένου που ανήκουν.

Στον αντικειμενοστραφή προγραμματισμό οι μεταβλητές και οι συναρτήσεις που επενεργούν πάνω σε αυτές τις μεταβλητές ομαδοποιούνται σε μι πάνω σε αυτές τις μεταβλητές ομαδοποιούνται σε μια αφαίρεση που ονομάζουμε κλάση. αφαίρεση που ονομάζουμε κλάση.

Παρακάτω δίνεται η κλά Παρακάτω δίνεται η κλάση Box και στη συνέχεια και στη συνέχεια φαίνεται πως οι μέθοδο φαίνεται πως οι μέθοδοί της αξιοποιούνται ί της αξιοποιούνται στην ανταλλαγή μηνυμάτων - επικοινωνία μεταξύ κλά επικοινωνία μεταξύ κλάσεων από την από την κλάση BoxDemo. κλάση BoxDemo.

class Box {

double width;

double height;

double depth;

Box(double x, double y, double z) {

width = x;

height = y;

depth = z;

}

double volume(){

return width * height * depth;

}

class BoxDemo {

Box mybox1 = new Box(10, 20, 15);

Box mybox2 = new Box(3, 6, 9);

double vol;

vol = mybox1.volu mybox1.volume();

System.out.pr System.out.println("Vol intln("Volume is " + vol);

vol = mybox2.volum mybox2.volume();

System.out.p System.out.println("Volume is " + rintln("Volume is " + vol);

187. Ποια από τα ακόλουθα είναι σωστά και ποια είναι λάθος; Αιτιολογήτε την απάντησή σας για κάθε περίπτωση.

Person p1 = new Student();

Person p2 = new PhDStudent();

PhDStudent phd1 = new Student();

Prof t1 = new Person();

Student s1 = new PhDStudent();

Person p1 = new Student();

Person p2 = new PhDStudent();

PhDStudent phd1 = new Student();

Prof t1 = new Person();

Student s1 = new PhDStudent();

Προκύπτει λογικά ότι η συσχέτιση μεταξύ των ανωτέρω κλάσεων είναι η εξής:

Student ISA Person

Prof ISA Person

Phd ISA Student (επειδή ισχύει Student ISA Person, ως εκ τούτου ισχύει PhD ISA Person)

Έτσι, λόγω της κληρονομικότητας οι προτάσεις PhDStudent phd1 = new Student(); και Prof t1 = new Person(); είναι σωστές. Απεναντίας, οι προτάσεις Student s1 = new PhDStudent();, Person p1 = new Student(); και Person p2 = new PhDStudent(); είναι λανθασμένες καθώς αντικείμενα κατώτερης τάξης δε μπορούν να καλέσουν constructors ανώτερων τάξεων.

188. Γιατί δεν μπορούμε να αφαιρέσουμε πεδία από μια subclass ενώ μπορούμε να προσθέσουμε;

Από τον ορισμό της υποκλάσης (μια υποκλάση κληρονομεί και επεκτείνει τα πεδία και τις μεθόδους της μητέρας κλάσης) δεν είναι δυνατόν η υποκλάση να μην αποτελέσει υπερσύνολο, αναφορικά με τις μεθόδους και τα πεδία της μητέρας κλάσης.

Αρκεί να αναλογιστούμε για παράδειγμα την περίπτωση του τετραγώνου και του κύβου, όπου εν προκειμένω το τετράγωνο είναι η μητέρα είναι η μητέρα κλάση (με δυο κλάση (με δυο τουλάχιστον πεδία μήκος κα τουλάχιστον πεδία μήκος και ύψος) ι ύψος) και από την άλλη πλευρά η υποκλάση κύβος που επεκτείνει ουσιαστικά το την μητέρα κλάση τετράγωνο να μην έχει τουλάχιστον τουλάχιστον τις δυο επίπεδες επίπεδες διαστάσεις διαστάσεις - πεδία μήκος και ύψος αντίστοιχα. Τόσο κατά την αρχική υπόθεση όπου είχε αφαιρεθεί το ένα πεδίο της μητέρας κλάσης (μη κληρονόμιση) τετράγωνο όπου για παράδειγμα η κλάση κύβος είχε μόνο 2 πεδία π.χ. μήκος -βάθος, όσο και στην περίπτωση που δε προστίθενται περεταίρω πεδία (μη επέκταση) η κλάση κύβος θα ενέπιπτε στη κλάση τετράγωνο και ως εκ τούτου δε θα θεωρείτο υποκλάση.

189. Ποια είναι η διαφορά μεταξύ ενός Frame και ενός Dialog;

Ενώ αμφότερα το JFrame και το JDialog κληρονομούν τις ιδιότητες της κλάσης Window, ώστε να μοιράζονται πολλές λειτουργίες, το JFrame είναι ένα κανονικό παράθυρο με (προαιρετικά) κουμπιά και τις διακοσμήσεις, ενώ το JDialog από την άλλη πλευρά δεν έχει κουμπιά μεγιστοποίησης και ελαχιστοποίησης και συνήθως δημιουργείται με στατικές μεθόδους JOptionPane και είναι καλύτερα προσαρμοσμένο στις τροποποιήσεις του αναφορικά με το ότι μπλοκάρει άλλα components μέχρι ο χρήστης να το κλείσει. 

190. Ποια είναι η διαφορά μεταξύ ενός αντικείμενου Menu και ενός MenuBar (σε Java);

Το Menu και το MenuBar είναι συστατικά στοιχεία πλοήγησης που υποστηρίζουν διάφορες λειτουργίες και εμφανίζουν επιλογές. Μπορούν να έχουν πολλαπλά επίπεδα υπο-Menu και τα στοιχεία Menu μπορούν είτε να ενεργοποιήσουν τις ενέργειες διακομιστή είτε να χρησιμεύσουν ως σύνδεσμοι σε εξωτερικές διευθύνσεις URL. Η κύρια διαφορά μεταξύ του Menu και του MenuBar είναι ότι το Menu εμφανίζεται κάθετα, ενώ το MenuBar εμφανίζεται οριζόντια. Ακόμη από κατασκευαστικής άποψης το Menu είναι υποκλάση του MenuBar. Έτσι, το MenuBar μπορεί να φιλοξενίσει πολλά Menu και κατ επέκταση MenuItems.

191. Ποια είναι η διαφορά μεταξύ ενός Menu και ενός MenuItem (σε Java);

Το Menu περιέχει τα στοιχεία του μενού. Το MenuItem εμφανίζει την πραγματική επιλογή που μπορεί να επιλέξει ο χρήστης μέσα σε ένα Menu. Τα στοιχεία του Menu (MenuItem-s) προστίθενται στο μενού με τη μέθοδο addMenuItem ().

192. Ποια είναι η διαφορά μεταξύ της επανεκκίνησης και της επαναφόρτωσης ενός Java applet;

Οι λειτουργίες επανεκκίνησης (Restart) και ανανέωσης (Reload) χρησιμοποιούνται για την επανεκκίνηση της εκτέλεσης της εφαρμογής. Η διαφορά μεταξύ αυτών των δύο επιλογών είναι ότι η επαναφόρτωση (Reload) εκφορτώνει την μικροεφαρμογή πριν την επανεκκίνησή της, ενώ η επανεκκίνηση (Restart) όχι. Η επιλογή επαναφόρτωση (Reload) ισοδυναμεί με το κλείσιμο του προγράμματος προβολής μικροεφαρμογών και το άνοιγμα ξανά στην ίδια ιστοσελίδα. 

193. Τι είναι οι constructors στην JAVA; Δώστε ένα παράδειγμα.

Μια κλάση Μια κλάση περιέχει constructors περιέχει constructors που καλούνται να καλούνται να δημιουργήσουν δημιουργήσουν αντικείμενα από αντικείμενα από το πρότυπο της κλάσης. Οι δηλώσεις των constructors μοιάζουν με δηλώσεις μεθόδου - εκτός από το ότι χρησιμοποιούν το όνομα της κλάσης και δεν έχουν τύπο επιστροφής. Για παράδειγμα, το ποδήλατο έχει έναν constructor:

public Bicycle(int startCadence, int startSpeed, int startGear) {

gear = startGear;

cadence = startCadence;

speed = startSpeed;

}

Για να δημιουργήσουμε ένα νέο αντικείμενο Bicycle που ονομάζεται myBike, ένας constructor καλείται ως εξής:

Bicycle myBike = new Bicycle(30, 0, 8);

new Bicycle(30, 0, 8)

Eτσι, ο constructor δεσμεύει χώρο στη μνήμη για το αντικείμενο προετοιμάζοντας τα πεδία του.

194. Να αναφέρετε από ποια μέρη αποτελείται η Java Virtual Machine και ποιες μεθόδους τρέχει.

Μια εικονική μηχανή Java (JVM) είναι μια αφηρημένη υπολογιστική μηχανή που επιτρέπει σε έναν υπολογιστή να εκτελεί ένα πρόγραμμα Java. Υπάρχουν τρία συστατικά του JVM: το specification, το implementation, και το instance. Η προδιαγραφή (specification) είναι ένα έγγραφο που περιγράφει επίσημα τι απαιτείται για μια υλοποίηση της JVM. Έχοντας μια ενιαία προδιαγραφή διασφαλίζει ότι όλες οι υλοποιήσεις (implementations) είναι διαλειτουργικές (interoperable). Μια εφαρμογή JVM (JVM implementation) είναι ένα πρόγραμμα υπολογιστή που πληροί τις απαιτήσεις της προδιαγραφής (specification) JVM. Τέλος το στιγμιότυπο (instance) ενός JVM είναι μια υλοποίηση (implementation) που εκτελείται σε μια διαδικασία που εκτελεί ένα πρόγραμμα υπολογιστή που έχει συνταχθεί σε Java bytecode. 

195. Ποιοι είναι οι τύποι μεταβλητών στην Java;

Οι τύποι μεταβλητών (variables) που εντοπίζονται στη Java είναι οι εξής:

a) Local variables

b) Instance variables

c) Class/Static variables

196. Τι κάνει το παρακάτω JAVA πρόγραμμα:int j=5; int k=10; long max=0; max=k>j?k:j;

Η σύνταξη βασίζεται στη δομή ελέγχου: condition ? first_expression : second_expression; Έτσι, ελέγχει αν το k είναι μεγαλύτερο του j και θέτει στο max τη τ έτει στο max τη τιμή του k αλλιώς (αν το j ιμή του k αλλιώς (αν το j είναι μεγαλύτερο) θέτει στο max τη τιμή του είναι μεγαλύτερο) θέτει στο max τη τιμή του j. 

197. Ποιος ο ρόλος των εξαιρέσεων στα προγράμματα εισόδου / εξόδου; Δώστε δύο παραδείγματα σε JAVA.

Ο χειρισμός εξαιρέσεων (Exception Handling) είναι η διαδικασία αντίδρασης στην εμφάνιση, κατά τον υπολογισμό, εξαιρέσεων - ανώμαλων ή εξαιρετικών συνθηκών που απαιτούν ειδική επεξεργασία - αλλάζοντας συχνά την κανονική ροή εκτέλεσης του προγράμματος. Συγκεκριμένα, οι εξαιρέσεις εισόδου/εξόδου (IOExceptions) είναι η γενική κατηγορία εξαιρέσεων που παράγονται από αποτυχημένες ή διακοπείσες λειτουργίες εισόδου / εξόδου. Δυο παραδείγματα χρήσης αυτών παρατίθενται στη συνέχεια όπου εμφανίζονται τα trycatch κατά την εγγραφή σε αρχεία και την ανάγνωση αυτών.

import java.io.*;

import static java.nio.fil java.nio.file.StandardO e.StandardOpenOption.*; penOption.*;

import java.nio.fi java.nio.file.*; import java.io.*;

import java.nio.ch java.nio.charset.Charse arset.Charset;

public class Test {

public static void main(String[] args) {

String s = "Hello World! ";

byte data[] = byte data[] = s.getBytes() s.getBytes();

Path p = Paths.get(" Paths.get("C:\\Users\\Us C:\\Users\\User\\Desktop\ er\\Desktop\\test.txt"); \test.txt");

write_file(p,data);

read_file(p);

}

// Paradeigma xeirismou eggrafhs se arxeio me xrhsh IOException

public static void write_file(Path p,byte data[]){

try (OutputStream out = new BufferedOutputStr new BufferedOutputStream(

Files.newOutputStream(p, CREATE, APPEND))) {

out.write(da out.write(data, 0, data.length) data.length);

}

catch (IOException x) {

System.err.println(x);

}

}

// Paradeigma xeirismou anagnwshs apo arxeio me xrhsh IOException

public static void read_file(Path p){

Charset charset Charset charset = Charset.forN Charset.forName("US-ASCII ame("US-ASCII");

import java.io.*;

import static java.nio.fil java.nio.file.StandardO e.StandardOpenOption.*; penOption.*;

import java.nio.fi java.nio.file.*; import java.io.*;

import java.nio.ch java.nio.charset.Charse arset.Charset;

public class Test {

public static void main(String[] args) {

String s = "Hello World! ";

byte data[] = byte data[] = s.getBytes() s.getBytes();

Path p = Paths.get(" Paths.get("C:\\Users\\Us C:\\Users\\User\\Desktop\ er\\Desktop\\test.txt"); \test.txt");

write_file(p,data);

read_file(p);

}

// Paradeigma xeirismou eggrafhs se arxeio me xrhsh IOException

public static void write_file(Path p,byte data[]){

try (OutputStream out = new BufferedOutputStr new BufferedOutputStream(

Files.newOutputStream(p, CREATE, APPEND))) {

out.write(da out.write(data, 0, data.length) data.length);

}

catch (IOException x) {

System.err.println(x);

}

}

// Paradeigma xeirismou anagnwshs apo arxeio me xrhsh IOException

public static void read_file(Path p){

Charset charset Charset charset = Charset.forN Charset.forName("US-ASCII ame("US-ASCII");

try (BufferedReader reader = Files.newBufferedReader(p,

charset)) {

String line = null;

while ((line = reader.readLine()) != null) {

System.out.println(line);

}

}

catch (IOException x) {

System.err. System.err.format("IOE format("IOException: xception: %s%n", x);

}

}

}

198. Δημιουργήστε σε JAVA το παιχνίδι κρεμάλα (hangman). O χρήστης εισάγει γράμματα τα οποία και συγκρίνονται με λέξεις που επιλέγονται τυχαία από έναν πίνακα με λέξεις string. Μηνύματα επιτυχίας ή αποτυχίας εμφανίζονται στο χρήστη και τον καθοδηγούν για το αποτέλεσμα. Για διευκόλυνσή σας τοποθετήστε στον πίνακα 5 διαφορετικές λέξεις και το πρόγραμμά σας μην επεκταθείτε στη δημιουργία GUI.

package hangman;

import java.util.Arrays;

import java.util.Scanner;

public class Hangman{

public static void main(String[] args) {

String[] words = {"hello", String[] words = {"hello", "world","hungman","wrote "world","hungman","wrote","that","program"}; ","that","program"};

int randomWordNumber = (int) (Math.random() * words.length);

char[] enteredLetters = new char[words[randomWordNumber].length()];

int triesCount = 0;

boolean wordIsGuessed = false;

do {

switch (enterLetter(words[randomWordNumber], enteredLetters) dLetters)) {

case 0:

triesCount++;

break;

case 1:

triesCount++;

break; case 2:

break;

case 3:

wordIsGuessed = true;

break;

}

} while (! wordIsGuessed);

System.out.println("\nThe word is " + words[randomWordNumber] +

" You missed " + (triesCount - " You missed " + (triesCount -findEmptyPosition(ent findEmptyPosition(enteredLetters)) + eredLetters)) +

" time(s)");

}

public static public static int enterLetter(String int enterLetter(String word, char word, char[] enteredLetters) [] enteredLetters) {

System.out.print("(Guess) Enter a letter in word ");

if (! printWord(word, enteredLetters)){return 3;}

System.out.print(" > ");

Scanner input = new Scanner(System.in);

int emptyPosition = findEmptyPosition(enteredLetters);

char userInput = input.nextLine().charAt(0);

if (inEnteredLetters(userInput, enteredLetters)) {

System.out.println(userInput + " is already in the word");

return 2;

}

else if (word.contains(String.valueOf(userInput))) {

enteredLetters[emptyPosition] = userInput;

return 1; }

else {

System.out.println(userInput + " is not in the word");

return 0;

} }

public static boolean printWord(String word, char[] enteredLetters) {

boolean asteriskPrinted = false;

for (int i = 0; i < for (int i = 0; i < word.length(); i++) { word.length(); i++) {

char letter = word.charAt(i);

if (inEnteredLetters(letter, enteredLetters))

System.out.print(letter);

else {

System.out.print('*');

asteriskPrinted = true;

}

}

return asteriskPrinted;

}

public static boolean inEnteredLetters(char letter, char[] enteredLetters) {

return new String(enteredLetters).contains(String.valueOf(letter));

}

public static int findEmptyPosition(char[] enteredLetters) {

int i = 0;

while (enteredLetters[i] != '\u0000') i++;

return i;

}

}

199. Να ορίσετε σε JAVA την κλάση Tires (Λάστιχα) με τις ακόλουθές ιδιότητες:width Πλάτος της επιφάνειας του ελαστικού (inches)radius Ακτίνα του ελαστικού (inches)rim Ζαντα (inches)type Τύπος ελαστικού0 - Παντός Καιρού1 - Ξηρό2 - Βροχή3 - Χιόνι brand Κατασκευαστής model Μοντέλο year έτος κατασκευής Να δημιουργήσετε constructor για την κλάση αυτή, ο ποιος να παίρνει παραμέτρους για όλα τα στοιχεία της κλάσης.

public class Tyre {

private static int width;

private static int radius;

private static int rim;

private static String type;

private static String brand;

private static String model;

private static int year;

public Tyre(int wd, int rd, int r public Tyre(int wd, int rd, int rm, String tp, Stri m, String tp, String br, String md, int yr) { ng br, String md, int yr) {

this.width = wd;

this.radius = rd;

this.rim = rm;

this.type = tp;

this.brand = br;

this.model = md;

this.year = yr;

System.out.println("Tyre created with the following specs:");

System.out.println("Tyre width= "+ this.width);

System.out.println("Tyre radius= "+ this.radius);

System.out.println("Tyre rim= "+ this.rim);

System.out.println("Tyre type= "+ this.type);

System.out.println("Tyre brand= "+ this.brand );

System.out.println("Tyre model= "+ this.model );

System.out.println("Tyre year= "+ this.year );

}

public static void main(String[] args){

int the_width=185;

int the_radius=60;

int the_rim=18;

String the_type="snow";

String the_brand="Michelin";

String the_model="all_terain_pro";

int the_year=2017;

Tyre my_car_tyre= newTyre(the_width,the_radius,the_rim,the_type,the_brand,the_model,the_year);

}

}

200. Ποια είναι η διαφορά μεταξύ μιας abstract class και ενός interface (σε Java);

Η abstract κλάση μπορεί να έχει αφηρημένες και μη αφηρημένες μεθόδους. Η interface μπορεί να έχει μόνο αφηρημένες μεθόδους. 2) Η abstract κλάση δεν υποστηρίζει πολλαπλή κληρονομικότητα. Η interface υποστηρίζει πολλαπλή κληρονομικότητα. 3) Η abstract κλάση μπορεί να έχει final, non-final, static και non-static μεταβλητές. Η interface έχει μόνο static και final μεταβλητές. 4) Η abstract κλάση μπορεί να προσφέρει την υλοποίηση της interface. Η interface δεν μπορεί να προσφέρει την υλοποίηση abstract κλάσης. 5) To keyword "abstract" χρησιμοποιείται για να δηλώσει δηλώσει abstract abstract κλάση. Στο interface, interface, το αντίστοιχο keyword χρησιμοποιείται για να δηλώσει interface.7) Μια abstract κλάση μπορεί να επεκτείνει μια άλλη συγκεκριμένη (κανονική) κλάση ή abstract κλάση. Μια interface μπορεί να επεκτείνει μόνο μια άλλη interface 8) Σε μια abstract κλάση το keyword "abstract" είναι υποχρεωτικό για να δηλωθεί μια μέθοδος ως abstract. abstract. Σε ένα interface το interface το keyword keyword "abstract" είναι "abstract" είναι προαιρετικό για προαιρετικό για να δηλωθεί δηλωθεί μια μέθοδος ως abstract. 9) Μια abstract 9) Μια abstract κλάση μπορεί να κλάση μπορεί να έχει protected έχει protected και public abstract μεθόδους και public abstract μεθόδους Μια interface Μια interface μπορεί να έχει μόνο public abstract μεθόδους

201. Τι είναι τα interfaces στην JAVA; Πώς δημιουργούμε ένα interface; Δώστε ένα παράδειγμα.

Η διεπαφή (interface) μοιάζει με κλάση, αλλά δεν είναι κλάση. Μια διεπαφή μπορεί να έχει μεθόδους και μεταβλητές όπως ακριβώς και η κλάση, αλλά οι μέθοδοι που δηλώνονται στη διεπαφή είναι από προεπιλογή αφηρημένες (abstract) (μόνο υπογραφή μεθόδου, χωρίς σώμα). Επίσης, οι μεταβλητές που δηλώνονται σε μια διεπαφή είναι public static και final από προεπιλογή. Δεδομένου ότι οι μέθοδοι στα interfaces δεν έχουν σώμα, πρέπει να υλοποιηθούν από τη κλάση πριν αποκτηθεί πρόσβαση. Η κλάση που υλοποιεί interface πρέπει να υλοποιήσει όλες τις μεθόδους αυτού του interface.

interfainterface MyInterface{

public void method1();

public void method2();

}

class Demo implements MyInterface{ 

public void method1(){ 

System.out.println("implementation of method1"); 

public void method2(){ 

System.out.println("implementation of method2");  }

 public static void main(String arg[]){

MyInterface obj =  new Demo();

 obj.method1(); 


202. Γράψτε σε Java ένα πρόγραμμα που θα μετατρέπει την θερμοκρασία από βαθμούς Fahrenheit σε Celcius σημείωση: C = 5 (F - 32) / 9"

import javautil.Scanner;

public class Fahrenheit {

public static void main(String[] args) {

float temperatue;

Scanner in = new Scanner(System.in);

System.out.println ("Enter temperatue in Fahrenheit");

temperatue = in.nextInt();

temperatue = ((temperatue - 32)*5)/9;

System.out.println("Temperatue in Celsius = " + temperatue);

}

}

203. Γράψτε πρόγραμμα σε Java, το οποίο θα ζητάει από το χρήστη να εισάγει μία λίστα με 6 ονόματα στην αρχική του σειρά, θα ταξινομεί τα ονόματα με αύξουσα αλφαβητική σειρά και κατόπιν θα εμφανίζει ξανά τη λίστα.

import java.util.ArrayList;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

ArrayList<String> Names = new ArrayList<String>();

Scanner in = new Scanner(System.in);

String name;

String temp;

for(int i=0;i<5;i++){

System.out.print("give name:");

name= in.next();

Names.add(name);

}

System.out.println("List of names:"+Names);

for(int i=0;i<Names.size();i++){

for(int j=i+1;j<Names.size();j++){

if(Names.get(i).compareTo(Names.get(j))>0){

temp=Names.get(i);

Names.set(i, Names.get(j));

Names.set(j,temp );

}

}

}

System.out.println("List of names in alphabetical order:"+Names);

}

}

204. Τι είναι το Method Overloading; Δώστε ένα παράδειγμα με χρήση κώδικα Java.

Η μέθοδος "Overloading" είναι μια δυνατότητα που επιτρέπει σε μια κλάση να έχει περισσότερες από μία μεθόδους με το ίδιο όνομα, εάν τα argument lists τους είναι διαφορετικά. Είναι παρόμοιο με την υπερφόρτωση του constructor που επιτρέπει σε μια κλάση να έχει περισσότερους από έναν constructors που έχουν διαφορετικά argument lists.

 class DisplayOverloading {

public void disp(char c) {

System.out.println(c);

}

public void disp(char disp(char c, int num) {

System.out.println(c + " "+num);

}

}

class Sample{

public static void main(String args[]) {

DisplayOverloading obj = new DisplayOverloading();

obj.disp('a');

obj.disp('a',10);

}

}

205. Τι είναι το Method Overriding; Δώστε ένα παράδειγμα με χρήση κώδικα Java.

Η δήλωση μιας μεθόδου στην υποκλάση που υπάρχει ήδη στην γονική κλάση είναι γνωστή ως μέθοδος overriding. Η παράκαμψη γίνεται έτσι ώστε μια κλάση παιδιού να μπορεί να δώσει τη δική της implementation σε μια μέθοδο που παρέχεται ήδη από τη μητρική κλάση. Σε αυτήν την περίπτωση, η μέθοδος στην γονική κλάση ονομάζεται overridden μέθοδος και η μέθοδος στην κατηγορία παιδιού ονομάζεται overriding μέθοδος. Στο παράδειγμα η eat() στη κλάση Boy κάνει override την eat() στη κλάση Human.

 class Human{

public void eat(){

System.out.println("Human is eating");

}

}

class Boy extends Human{

public void eat(){

System.out.println("Boy is eating");

}

public static void main( String args[]) {

Boy obj = new Boy();

obj.eat();

}

}

206. Εξηγήστε αναλυτικά τον παρακάτω κώδικα: interface MyInterface{ public void method1();public void method2(); } class XYZ implements MyInterface {

public void method1(){System.out.println(""implementation of method1"");}

public void method2(){System.out.println(""implementation of method2"");}

public static void main(String arg[]){MyInterface obj=new XYZ(); obj.method1();}}

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

Το interface ΜyInterface περιέχει τις μεθόδους void method1() και void method2(), των οποίων την υλοποίηση παρέχει η κλάση XYZ (στην ουσία κάνουν από μια εκτύπωση η κάθε μια).

Τέλος η main δημιουργεί ένα αντικείμενο της κλάσης ΧΥΖ (το obj) και πάnω σε αυτό καλείται η μέθοδος method1() η οποία και τυπώνει το μήνυμα implementation of method1.

package inventory;

import java.util.Enumeration;

import java.util.Scanner;

import java.util.Vector;

public class Inventory {

private String inventory_it inventory_item;

public Inventory(String item){

this.inventory_item=item;

System.out.println( this.inventory_item+" added to the

inventory");

}

public static void main(String[] args) {

Scanner SC = new Scanner(System.in);

System.out.print("Define invenotry capacity: ");

int invenotry_size = SC.nextInt();

String item;

Vector<Inventory> invenotry_list = new

Vector<Inventory>(invenotry_size) notry_size);

for(int i=0; i<invenotry_size;i++){

System.out.print("\nset item to be adde to the inventory: "); item = SC.next();

Inventory new_item=new Inventory(item);

invenotry_list.addEleme st.addElement(new_item);

}

System.out.print("\n\nInventory contains: ");

for(int i=0; i<invenotry_size;i++){

System.out.print(invenotry_list.get try_list.get(i).inventory_item+ ", ");

}

}

}

207. Δημιουργήστε (σε Java) το class inventory χρησιμοποιώντας Vector Arrays μέσα στο inventory όπου εμπεριέχονται αντικείμενα τύπου string[ ] με χαρακτηριστικά όπλων π.χ mithril sword, Plate Armour κτλ.

208. Δημιουργήστε (σε Java) το πρόγραμμα Print(), που εκτυπώνει μέσω κληρονομικότητας στην οθόνη το αποτέλεσμα των τάξεων:

sum, που προσθέτει αριθμούς integer,

sub, που αφαιρεί αριθμούς integer και

multiply που πολλαπλασιάζει αριθμούς integer.

package calculator;

import java.lang.Math;

import java.util.Scanner;

class Summary{

public static int add(int a, int b){

return Math.addExact(a, b);

}

}

class Subtract extends Summary{

public static int sub(int a, int b){

int c=b*(-1);

return add(a, c);

}

}

class Multiplication extends Summary{

public static int multi(int a, int b){

int result=0;

for(int i=0;i<b; (result=add(a, result);} result);}

return result;

}

}

public class Calculator {

private static int x;

private static int y;

public Calculator( public Calculator(int a, int int a, int b){

this.x=a;

this.y=b;

}

public static void main(String[] args) {

int factor_1,factor_2;

Scanner SC = new Scanner (System.in);

System.out.print ("\nset factor 1: ");

factor_1= SC.nextInt();

System.out.print ("\nset factor 2: ");

factor_2= SC.nextInt();

Calculator result= new Calculator(factor_1,factor_2);

print(result);

}

public static void print(Calculator input){ lator input){

System.out.println ("sum="+Summary m="+Summary.add (input.x, input.y));

System.out.println("sub="+Subtract.sub(input.x, input.y));

System.out.println ("mlt="+Multipl t="+Multiplication.multi(input.x, input.y));

}

}

209. Δημιουργήστε (σε Java) την τάξη Rectangle, την τάξη Square και την τάξη Circle η κάθε μία περιέχει τουλάχιστον 3 μεταβλητές και μια συνάρτηση που υπολογίζει το εμβαδόν τους. Οι τάξεις Square και Circle κληρονομούν από την τάξη Rectangle τις μεταβλητές της, υπολογίζουν και εκτυπώνουν το εμβαδόν τους (εμβαδό κύκλου = 2*3.14*R*R, εμβαδό τετραγώνου = Width*Width).

package shapes;

public class Rectangle{

public int width = 0;

public int height = 0;

public static String color[];

public Rectangle(in public Rectangle(int w, int h, String cl[]){

width = w;

height = h;

System.arraycopy(color, 0, cl, 0, cl.length);

}

public int getArea(){

return width * height;

}

}

----------------------------------------------------------------------------------------------------

public class Square extends Rectangle{

public Square(int w,int h, String cl[]){

super(w,h,cl);

}

public int getArea(){

return width * height;

}}

----------------------------------------------------------------------------------------------------

public class Circle extends Rectangle{

public Circle(int w,int h,String cl[]){

super(w,h,cl);

}

public double getCircleArea(){

return width*2*3.14*3.14;

}

}

210. Να γραφεί συνάρτηση σε OpenGL που να σχεδιάζει ένα επίπεδο (plane).

void drawAPlane(){

glBegin(GL_QUADS);

glVertex3f(-1,-1, 0);

glVertex3f(-1,1, 0);

glVertex3f(1, -1, 0);

glEnd();

}

211. Σε τι οφείλουμε το γεγονός ότι η OpenGL μπορεί να δείξει από 256 έως δισεκατομμύρια χρώματα χωρίς να χρειαστεί να ξαναγράψουμε ή να ξανακάνουμε compile τον κώδικα;

Η OpenGL υποστηρίζει το χρωματικό μοντέλο RGB, σε μια ελαφρώς εκτεταμένη μορφή. Προσθέτει μια τέταρτη συνιστώσα στο χρώμα, η οποία ονομάζεται alpha και παίζει το ρόλο "συντελεστής διαφάνειας". Ο "συντελεστής διαφάνειας" χρησιμοποιείται όταν συνδυάζονται τα χρώματα μεταξύ τους. Το αναθεωρημένο μοντέλο ονομάζεται μοντέλο RGBA. Τα χρώματα στην OpenGL προσδιορίζονται καθορίζοντας τιμές για το χρωματικό μοντέλο RGBA μεταξύ 0.0 και 1.0. Για παράδειγμα η εντολή glColor3f glColor3f (0.0f , 0.0f , 1.0f , 1.0f); // (R, G, B, A) // (R, G, B, A) καθορίζει το μπλέ χρώμα με πλήρη αδιαφάνεια. 

212. Η OpenGL χρησιμοποιεί μια απλή, βασική, μορφή ονοματολογίας για τις εντολές της. Αναφέρατε ποιαείναι αυτή και παραθέστε παράδειγμα.

Οι εντολές OpenGL χρησιμοποιούν το πρόθεμα gl και αρχικά κεφαλαία γράμματα για κάθε λέξη που συνθέτει το όνομα της εντολής (π.χ. gClearColor gClearColor()). Πολλές από τις συναρτήσεις της δέχονται προκαθορισµένα ορίσµατα (συµβολικές σταθερές) που αρχίζουν με GL_, γράφονται με κεφαλαία γράμματα και οι λέξεις διαχωρίζονται με κάτω παύλα (π.χ. GL_COLOR_BUFFER_BIT). Πολλές εντολές χρησιμοποιούν αριθμούς και γράμματα ως επίθυμα (suffix) για να μπορούμε να χρησιμοποιούμε διαφορετικό αριθμό και τύπο ορισμάτων. Π.χ. η εντολή glVertex3f glVertex3f(); δηλώνει ότι ως όρισματα δέχεται 3 float αριθμούς. 

213. Αναφέρατε τι ονομάζουμε GLUT στην OpenGL. Για ποιο λόγο δημιουργήθηκε και ποιες βασικές

λειτουργίες προσφέρει;

Το πρότυπο της OpenGL είναι ανεξάρτητο πλατφόρµας, περιορίζεται όμως στη δυνατότητα εμφάνισης του προγράμματος. Η OpenGL Utility Toolkit (GLUT) είναι μια βιβλιοθήκη η οποία προσφέρει εντολές εντολές εισόδου- εξόδου προσφέροντας έτσι δυνατότητα αλληλεπίδρασης του χρήστη του προγράμματος με αυτό. Η βιβλιοθήκη GLUT περιλαµβάνει εντολές απεικόνισης παραθύρων στην οθόνη, δηµιουργίας menus, διαχείρισης γεγονότων κλπ. Όλες οι εντολές της ξεκινούν µε το πρόθεµα glut.

214. Με ποια εντολή δημιουργούμε ένα τρισδιάστατο ορθογραφικό παράθυρο με διαστάσεις: αριστερά -3, δεξιά 3, πάνω 3, κάτω -3 και clipping planes στα 1 και 100 για το near και far αντίστοιχα (στην OpenGL);

 glOrtho (-3.0f, 3.0f, -3.0f, 3.0f, 1.0f, 100.0f); 

215. Εξετάστε την ισχύ των παρακάτω προτάσεων δηλώνοντας ΣΩΣΤΟ ή ΛΑΘΟΣ και εξηγώντας την επιλογή σας (Όπου κρίνετε απαραίτητο, παραθέστε παράδειγμα). α) 1. Τα επικρατέστερα Λειτουργικά Συστήματα (Windows, Unix, Linux, Mac OS) υποστηρίζουν την OpenGL. β) Η OpenGL μπορεί αποκλειστικά να κληθεί (is callable) από τις γλώσσες προγραμματισμού C / C++ (δηλαδή υπάρχει μοναδικό language binding). γ) Το μοναδικό περιβάλλον ανάπτυξης προγραμμάτων OpenGL είναι το DEV C++. δ) Η OpenGL περιέχει εντολές επιλογής (τύπου If ... else). ε) Οι εντολές της OpenGL ξεκινούν με το πρόθεμα gl.

α)Τα επικρατέστερα Λειτουργικά Συστήματα (Windows, Unix, Linux, Mac OS)υποστηρίζουν την OpenGL.

Σωστό. Η OpenGL είναι ανεξάρτητη λειτουργικού συστήματος και συνήθως αλληλεπιδρά με

την κάρτα γραφικών ώστε να πετύχει ταχύτερη απόδοση γραφικών.

β) Η OpenGL μπορεί αποκλειστικά να κληθεί (is callable) από τις γλώσσες προγραμματισμού C / C++ (δηλαδή υπάρχει μοναδικό language binding).

Σωστό. Μια βιβλιοθήκη που υλοποιεί το πρότυπο της OpenGL µπορεί να συνταχθεί σε οποιαδήποτε γλώσσα προγραµµατισµού (η OpenGL είναι πρότυπο ανεξάρτητο πλατφόρµας).

γ) Το μοναδικό περιβάλλον ανάπτυξης προγραμμάτων OpenGL είναι το DEV C++.

Λάθος. Η OpenGL είναι ένα σύνολο εντολών (Application Programming Interface - API) που μας επιτρέπει την δημιουργία τριδιάστατων γραφικών. Δεν είναι γλώσσα προγραμματισμού αλλά μπορεί να χρησιμοποιηθεί με μια πληθώρα γλωσσών προγραμματισμού (C, C++, Java και άλλες). Συνεπώς DEV C++ δεν είναι το μοναδικό περιβάλλον ανάπτυξης προγραμμάτων.

δ) Η OpenGL περιέχει εντολές επιλογής (τύπου If ... else).

Σωστό. H OpenGL χρησιμοποιεί μια μηχανή καταστάσεων (state machine) για να επικοινωνεί με την εφαρμογή. Σε αυτή την μηχανή καταστάσεων η OpenGL παραμένει διαρκώς σε μια κατάσταση μέχρι να αλλάξει η εφαρμογή την κατάσταση

ε) Οι εντολές της OpenGL ξεκινούν με το πρόθεμα gl.

Σωστό. Οι εντολές OpenGL χρησιμοποιούν το πρόθεμα gl και αρχικά κεφαλαία γράμματα για κάθε λέξη που συνθέτει το όνομα της εντολής (π.χ. glClearColor()). Πολλές από τις συναρτήσεις της δέχονται προκαθορισµένα ορίσµατα (συµβολικές σταθερές) που αρχίζουν με GL_, γράφονται με κεφαλαία και οι λέξεις διαχωρίζονται με κάτω παύλα (π.χ. GL_COLOR_BUFFER_B (π.χ. GL_COLOR_BUFFER_BIT).

216. Ποια η λειτουργία των παρακάτω εντολών στην OpenGL και τι παραμέτρους δέχονται; Να δοθεί παράδειγμα.α) glutInitWindowPosition β) glutInitWindowSize γ) glutCreateWindow

Η glutInitWindowPosition(int x, int y); καθορίζει τη θέση στην οθόνη, στην οποία θα εμφανιστεί το παράθυρο της εφαρμογής (συντεταγμένη της άνω αριστερής κορυφής) όπου x παράμετρος η απόσταση του παραθύρου σε pixels από την πάνω αριστερή γωνία της οθόνης στον άξονα X και y παράμετρος η απόσταση του παραθύρου σε pixels από την πάνω αριστερή γωνία της οθόνης στον άξονα Υ . π.χ. glutInitWindowPosition(150,150); Το παράθυρο θα τοποθετηθεί 150,150 pixels από την πάνω αριστερή γωνία της οθόνης.

Η glutInitWindowSize(int width, int height); καθορίζει το πλάτος και ύψος του παραθύρου της εφαρμογής σε pixels όπου width το πλάτος του παραθύρου σε pixels και height το μήκος του παραθύρου σε pixels. Π.χ. glutInitWindowSize(400, 400); // Το παράθυρο θα έχει μέγεθος 400×400 pixels.

Η glutCreateWindow(char *name); εµφανίζει το παράθυρο της εφαρµογής στην οθόνη και του αποδίδει έναν τίτλο. Π.χ. glutCreateWindow("ΙΕΚ ΔΕΛΤΑ OPENGL"); // Το παράθυρο θα έχει τον τίτλο ΙΕΚ ΔΕΛΤΑ OPENGL.

217. Περιγράψτε τρεις βασικές βιβλιοθήκες εντολών της OpenGL που περιέχουν εντολές σχεδίασης, γραφικών και απόδοσης. Σε ποιο σημείο του προγράμματος δηλώνονται;

OpenGL core library

Βασική βιβλιοθήκη (OpenGL core library ή GL):

Η βασική βιβλιοθήκη της OpenGL έχει σχεδιαστεί ως μια βελτιωμένη διεπαφή ανεξάρτητη από το hardware, περιέχει τις κύριες εντολές σχεδίασης όπως η σχεδίαση βασικών γεωµετρικών σχημάτων, ο ορισμός χρωμάτων κλπ. Όλες οι εντολές της βιβ ορισμός χρωμάτων κλπ. Όλες οι εντολές της βιβλιοθήκης αυτής διακρίνονται από το πρόθεμα gl. Πολλές από τις συναρτήσεις της δέχονται προκαθορισμένα ορίσματα (συμβολικές σταθερές) τα οποία έχουν οριστεί στη βιβλιοθήκη και αντιστοιχούν και αντιστοιχούν σε διάφορες παραμέτρους ή καταστάσεις λειτουργίας. Οι σταθερές αυτές ξεκινούν με το πρόθεμα GL_.

OpenGL Utility Library (GLU):

Η βιβλιοθήκη GLU είναι χτισμένη πάνω στην κορυφή της OpenGL και περιλαμβάνει συναρτήσεις που εκτελούν σύνθετους αλγορίθμους όπως π.χ. τον καθορισμό μητρώων προβολής και το σχηματισμό σύνθετων καμπυλών και επιφανειών. Κάθε υλοποίηση της OpenGL εμπεριέχει τη βιβλιοθήκη GLU. Όλες οι εντολές της βιβλιοθήκης GLU με το πρόθεμα glu_ (π.χ.gluLookAt, gluPerspective).

OpenGL Utility Toolkit (GLUT):

Η OpenGL είναι ένας γρήγορος και ευέλικτος τρόπος για την επικοινωνία με το hardware των γραφικών του υπολογιστή χωρίς να ενδιαφέρουν το χρήστη οι λεπτομέρειες υλοποίησης του. Από την άλλη, δεν προσφέρει καθόλου λειτουργίες GUI (Graphical User Interface), δηλαδή δεν έχει τη δυνατότητα να ανοίξει και να κλείσει παράθυρα στο λειτουργικό σύστημα, να ζωγραφίσει σε αυτά, ούτε να καταλάβει το πάτημα ενός πλήκτρου ή την κίνηση του ποντικιού, ούτε μπορεί να διαβάσει ένα αρχείο από το δίσκο. Μια από τις πιο διαδεδομένες βιβλιοθήκες για αυτό το σκοπό είναι το GLUT (OpenGL Utility Toolkit) που είναι και αυτή σχεδιασμένη (η εργαλειοθήκη) να τρέχει σε πολλά λειτουργικά συστήματα. Η GLUT προσφέρει ένα σύνολο εντολών που αναλαμβάνουν να ανοίξουν και να κλείσουν εύκολα παράθυρα, να καταγράψουν το πάτημα ενός πλήκτρου ή την κίνηση του ποντικιού). Η βιβλιοθήκη αυτή περιλαμβάνει ακόμη εντολές απεικόνισης παραθύρων στην οθόνη, δημιουργία μενού, κλπ. Όλες οι εντολές της ξεκινούν με το πρόθεμα glut_.

Οι βιβλιοθήκες που χρησιμοποιούνται στο πάνω μέρος του προγράμματος από τις εντολές

#include <gl\gl.h>

#include <gl\glu.h>

#include <gl\glut.h>

218. Αναφέρετε την λειτουργία της glutMainLoop() στην OpenGL. Σε ποιο σημείο πρέπει να καλείται;

Η glutMainLoop glutMainLoop() ενεργοποιεί τον κύκλο διαχείρισης γεγονότων (event processing loop). Στον κύκλο αυτό, η εφαρµογή αναµένει επ' άπειρον και ανταποκρίνεται σε γεγονότα, όπως λ.χ. στο πάτηµα ενός κουµπιού, στην αλλαγή του σκηνικού ή στην κίνηση του ποντικιού. Από το πρόθεµά της, παρατηρούµε ότι η συγκεκριµένη εντολή εµπεριέχεται στη βιβλιοθήκη GLUT, αφού το πρότυπο της OpenGL, ως πρότυπο ανεξάρτητο πλατφόρµας, δεν ορίζει διαδικασίες εισόδου - εξόδου

219. Ποια είναι τα πλεονεκτήματα χρήσης μιας πλατφόρμας CMS (Content Management System), σε σχέση με την δημιουργία εκ νέου ενός web site;

⦁ Ορθολογική και εύκολη διαδικασία συγγραφής άρθρων.

⦁ Ταχύτερος χρόνος ολοκλήρωσης για νέες σελίδες και αλλαγές.

⦁ Μεγαλύτερη συνοχή στην πλοήγηση του δικτυακού τόπου.

⦁ Δυνατότητα επεκτασιμότητας της ιστοσελίδας.

⦁ Υποστήριξη χρηστών με συγκεκριμένα δικαιώματα.

⦁ Αυξημένη ασφάλεια.

⦁ Μειωμένο κόστος συντήρησης site.

⦁ Πολλές επιλογές για καλό SEO.

⦁ Όμορφο design, γραφικά και εφέ.

220. To σύστημα διαχείρισης περιεχομένου (CMS) υποστηρίζει την εγκατάσταση διαφόρων modules. Τι είναι τα modules και γιατί είναι χρήσιμα για ένα CMS;

Το Module στα CMS, είναι μια συλλογή αρχείων κώδικα, που προσθέτει επιπλέον λειτουργίες στην ιστοσελίδα μας. Απαραίτητη προϋπόθεση για να δουλέψει το module, είναι να εγκαταστήσουμε πρώτα το core code του CMS που θα χρησιμοποιήσουμε. Στη συνέχεια, αν θέλουμε να επεκτείνουμε την ιστοσελίδα μας με επιπλέον λειτουργίες (π.χ υποστήριξη forum, social media buttons κλπ), εγκαθιστούμε το module που μας ενδιαφέρει. Για κάθε CMS η έννοια του module, έχει διάφορες σημασίες. Πιο συγκεκριμένα: ● Wordpress: Δεν υπάρχει καθόλου η λέξη modules. Αντί αυτής, χρησιμοιείται η λέξη plugin και widget. ● Joomla: Εδώ τα modules, είναι στην ουσία «κουτιά», τα οποία ενσωματώνονται γύρω από ένα component (π.χ article), προσθέτοντας νέες λειτουργίες. ● Drupal: Εδώ τα modules είναι ένας γενικός όρος για κώδικα, που προσθέτει επιπλέον λειτουργίες. Τα modules του Drupal, ουσιαστικά αντιστοιχούν στα plugins που έχει το wordpress.

221. Στην διάρκεια κατασκευής μιας ιστοσελίδας πολλές φορές καλούμαστε να προσθέσουμε alt και title tags. Τι είναι το καθένα απ' αυτά και για ποιο σκοπό χρησιμοποιούνται; Είναι απαραίτητη ή προαιρετική η συμπλήρωσή τους;

Τα tags alt και title, χρησιμοποιούνται για λόγους SEO κατά τη διάρκεια κατασκευής μιας ιστοσελίδας. Όταν λέμε SEO (Search Engine Optimization) εννοούμε όλες τις τεχνικές που χρησιμοποιούνται, για να καταφέρει η ιστοσελίδα μας να βγει ψηλά στις μηχανές αναζήτησης

Ένας βασικός παράγοντας για πετυχημένο SEO είναι το είναι το title tag, στο οποίο θα πρέπει να βάζουμε το όνομα της σελίδας. Για να καταλάβουμε πόσο σημαντικό είναι το title tag, αρκεί να δούμε πως η Google είναι το πρώτο που εμφανίζει στα αποτελέσματά της για μια ιστοσελίδα και ακριβώς από κάτω εμφανίζει το description της ιστοσελίδας. Το title λοιπόν θα πρέπει να υποδηλώνει το περιεχόμενο μιας συγκεκριμένης σελίδας.

To alt tag, είναι ένας ακόμα βασικός παράγοντας SEO και ουσιαστικά είναι μια επιπρόσθετη πληροφορία για το περιεχόμενο μιας φωτογραφίας. Με το alt tag, περιγράφουμε τι βρίσκεται μέσα στη φωτογραφία και χρησιμοποιείται από Screen Readers, browsers για ανθρώπους με προβλήματα όρασης κ.α.

Τέλος, υπάρχει και το title tag που προστίθεται σε μια φωτογραφία (επιπλέον από το alt tag) και αυτό περιγράφει ένα πιο γενικό περιεχόμενο της φωτογραφίας. Επίσης το title tag της φωτογραφίας χρησιμοποιείται και σαν tooltip από ορισμένους browsers (Firefox, Opera) εμφανίζοντάς το, όταν αφήνουμε τον κέρσορα του ποντικιού πάνω στη φωτογραφία. Επιτυγχάνουμε δηλαδή, καλύτερη «εμπειρία χρήστη» (user experience), κάτι που οι μηχανές αναζήτησης επιθυμούν ώστε να συμπεριλάβουν μια ιστοσελίδα στα αποτελέσματά τους 

222. Η επιστήμη του SEO (Serch Engine Optimization), δίνει μεγάλη βαρύτητα στην σωστή συμπλήρωση τριών tags (title tag, keyword tag, description tag). Τι ακριβώς είναι το καθένα από αυτά τα tags και με ποιον τρόπο γίνεται η σωστή επιλογή του περιεχομένου τους, έτσι ώστε η ιστοσελίδα να ανταποκρίνεται στα κριτήρια σωστής διάρθρωσης της επιστήμης SEO;

Title tag: To title tag είναι ένας από τους πιο βασικούς παράγοντες για SEO. Υποδηλώνει το περιεχόμενο της ιστοσελίδας και δε θα πρέπει να ξεπερνάει τους 66 χαρακτήρες. Αυτοί οι 60 χαρακτήρες θα πρέπει να αποτελούνται από τις λέξεις κλειδιά που θέλουμε να χρησιμοποιήσουμε, με τις πιο σημαντικές λέξεις να βρίσκονται στην αρχή του title. Για να καταλάβουμε πόσο σημαντικό είναι το title tag, αρκεί να δούμε πως η Google είναι το πρώτο που εμφανίζει στα αποτελέσματά της για μια ιστοσελίδα και ακριβώς από κάτω εμφανίζει για μια ιστοσελίδα και ακριβώς από κάτω εμφανίζει το description της ιστοσελίδας.

Keyword tag: Το keyword tag, είναι ένα metatag στο οποίο βάζουμε keywords τα οποία είναι οι βασικές λέξεις-κλειδιά της ιστοσελίδας μας και είναι ορατά μόνο από τις μηχανές αναζήτησης (όχι από τους επισκέπτες). Τα keywords που μπαίνουν στο keyword-tag χρησιμοποιούνται σαν ranking factor από τις μηχανές αναζήτησης. Παλιότερα, το keyword-tag, ήταν αρκετό για να πετύχουμε υψηλά αποτελέσματα στις μηχανές αναζήτησης. Το 2009, η Google, το Yahoo και το Bink ανακοίνωσαν ότι δε θα χρησιμοποιούν το keyword-tag σαν κριτήριο κατάταξης, οπότε, και πλέον έχει χάσει την αξία του.

Description tag: Το description tag, περιγράφει με περισσότερη λεπτόμερεια το περιεχόμενο μιας ιστοσελίδας και εμφανίζεται ακριβώς κάτω από το title στα αποτελέσματα της Google. To description δε θα πρέπει να ξεπερνάει τους 160 χαρακτήρες. Και εδώ θα πρέπει να δοθεί ιδιαίτερη προσοχή στις λέξεις που θα γράψουμε, με τις πιο σημαντικές λέξεις-κλειδιά να πρέπει να γράφονται στην αρχή του description

223. Μετά την υλοποίηση της ιστοσελίδας με χρήση CMS τοπικά, ποια βήματα πρέπει να γίνουν ώστε να " ανέβει" (upload) στο Internet;

Τα βήματα που πρέπει να γίνουν ώστε να ανέβει η CMS ιστοσελίδα μας στο διαδίκτυο είναι:

● Αγορά domain name (όνομα ιστοσελίδας στο διαδίκτυο) και web hosting(υπολογιστής που θα φιλοξενεί την ιστοσελίδα μας).

● Εξαγωγή τοπικής βάσης δεδομένων (συνηθίζεται για εύκολη εξαγωγή το phpmyadmin).

● Ανέβασμα wordpress files στον κατάλληλο φάκελο που βρίσκεται στον public_html, αν μιλάμε για linux server (για μεταφορά αρχείων μπορεί να χρησιμοποιηθεί ένας FTP client π.χ. Filezilla).

● Δημιουργία MySQL Βάσης στον web hosting μας.

● Εισαγωγή της παλιάς βάσης στη νέα βάση που δημιουργήσαμε.

224. Τι είναι τα σχεδιαστικά χνάρια και ποια η χρησιμότητα τους;

Η χρήση σχεδιαστικών χναριών είναι μια αρκετά πρόσφατα υιοθετημένη πρακτική από την επιστήμη της ηλεκτρονικής μάθησης, η οποία αποδεικνύεται ιδιαίτερα αποτελεσματική, ιδιαίτερα σε περιπτώσεις στις οποίες ο σχεδιαστής ενός συστήματος στερείται μεγάλης εμπειρίας, καθώς βοηθά στον αποτελεσματικό σχεδιασμό χωρίς να απαιτείται «εκ νέου ανακάλυψη του τροχού». Η έννοια του σχεδιαστικού χναριού είχε περιγραφεί αρχικά από τον Alexander ως επαναχρησιμοποιούμενες λύσεις για την αντιμετώπιση προβλημάτων αρχιτεκτονικής σχεδίασης τα οποία προκύπτουν με μεγάλη συχνότητα. Συγκεκριμένα, «ένα χνάρι περιγράφει ένα πρόβλημα που προκύπτει κατ' επανάληψη και το οποίο περιγράφει τον πυρήνα της λύσης του προβλήματος αυτού, με τέτοιο τρόπο που η λύση αυτή να εφαρμοστεί πολλαπλές φορές, χωρίς να χρειαστεί να ακολουθηθεί ο ίδιος τρόπος δεύτερη φορά». Η χρήση ενός CMS (Wordpress, Joomla, Drupal) είναι ένα παράδειγμα σχεδιαστικού χναριού, αφού ελαχιστοποιεί τον παράγοντα ανθρώπινου κόπου χάρη στην ευκολία χρήσης του και την προσαρμοστικότητά του 

Τέλος Γενικού 

ΔΙΕΚ ΑΙΓΙΝΑΣ 2021 - 2023 ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ
Υλοποιήθηκε από τη Webnode Cookies
Δημιουργήστε δωρεάν ιστοσελίδα! Αυτή η ιστοσελίδα δημιουργήθηκε με τη Webnode. Δημιουργήστε τη δική σας δωρεάν σήμερα! Ξεκινήστε