Crossword1.txt, Crossword2.txt, Crossword3.txt, Crossword4.txt και Crossword5.txt, $ cat Crossword1.txt $

Σχετικά έγγραφα
M i,0 = fw(0, ), 0 i nfl M i,j = min. MinCost = nfl. min

dtw(a, B) = dtw(a n, B m )

i=1 f i = F i SF [0, f 1 ), [f 1, f 1 + f 2 ), [f 1 + f 2, f 1 + f 2 + f 3 ),..., [f 1 + f f P 1, 1) i 1

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

Α2. Να γράψετε στο τετράδιο απαντήσεών σας το κατάλληλο τμήμα κώδικα, κάνοντας τις απαραίτητες αλλαγές σύμφωνα με την εκάστοτε εκφώνηση:

./mydiz {-c -a -x -m -d -p -j} <archive-file> <list-of-files/dirs>

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Γ ΚΥΚΛΟΣ ΠΡΟΣΟΜΟΙΩΤΙΚΩΝ ΔΙΑΓΩΝΙΣΜΑΤΩΝ ΣΥΓΧΡΟΝΟ Προτεινόμενα Θέματα Γ Λυκείου Φεβρουάριος Ανάπτυξη Εφαρμογών ΘΕΜΑ Α

an:3 are:6 a:10

1. Ουρά α. Απώθηση 2. Στοίβα β. Εξαγωγή γ. Ώθηση δ. Εισαγωγή

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

city9 city8 city6 city7 city5 28 city3 25 city1 city0 P ijk =

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ ΥΠΟΛΕΙΠΟΜΕΝΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ

ΕΡΓΑΣΙΑ 3. Παίζοντας Sudoku. Ημερομηνία Ανάρτησης: 16/03/2018 Ημερομηνία Παράδοσης: 03/04/2018, 09:00

ΘΕΜΑΤΑ ΤΕΛΙΚΗΣ ΦΑΣΗΣ

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 5/12/10, 23:59

β. Ποια η σύνταξη και η λειτουργία της εντολής ΚΑΛΕΣΕ; ΠΙΝΑΚΑΣ Α

Οντοκεντρικός Προγραμματισμός II C++ Project Xειμερινό Εξάμηνο Organisms

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΡΤΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 6 (ΕΞΙ)

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2011

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

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

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

ΘΕΜΑ Α. 1. Στην εντολή εκχώρησης Χ ΨΕΥΔΗΣ η μεταβλητή Χ είναι τύπου χαρακτήρες.

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ

ΘΕΜΑ Α. 1. Στην εντολή εκχώρησης Χ ΨΕΥΔΗΣ η μεταβλητή Χ είναι τύπου χαρακτήρες.

Λογικός Προγραμματισμός Ασκήσεις

ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

Α2. Να γράψετε τους αριθμούς της Στήλης Α και δίπλα το γράμμα της Στήλης Β που αντιστοιχεί σωστά.

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

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

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ

Θέματα ΑΕΠΠ Πανελλήνιες Εξετάσεις 2007

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη.

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

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

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

Λογικός Προγραμματισμός Ασκήσεις

Β.1. i. Να εξηγήσετε τι εννοούμε με τον όρο μεταφερσιμότητα των προγραμμάτων. Μονάδες 3

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΠΤΑ (7)

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

Σενάριο Χρήσης Moodle

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΤΕΛΟΣ 1ΗΣ ΣΕΛΙΔΑΣ

Τµήµα Πληροφορικής. Δοµές Δεδοµένων - Εργασία 1. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης. Στοίβες και Ουρές. Οικονοµικό Πανεπιστήµιο Αθηνών

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ) Γ ΤΑΞΗΣ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ 2002

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

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

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙΔΕΣ

ΕΕΓΔ Οδηγίες προς τους μαθητές για τη χρήση του λογισμικού εξέτασης (EL)

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

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

1. ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΛΥΣΗ ΦΥΛΛΩΝ ΕΡΓΑΣΙΑΣ (Ή ΚΑΙ ΑΛΛΟΥ ΔΙΔΑΚΤΙΚΟΥ ΥΛΙΚΟΥ) ΑΞΙΟΛΟΓΗΣΗ ΤΩΝ ΜΑΘΗΤΩΝ

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

Στην εντολή while η επανάληψη συνεχίζεται όσο η λογική έκφραση έχει τιμή false.

Μονάδες 12 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ

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

(1) Σ 0 (2) Κ 0 (3) Αρχή_Επανάληψης (4) ιάβασε Χ (5) Σ Σ+Χ (6) Αν Χ>0 τότε (7) Κ Κ+1 (8) Τέλος_Αν (9) Μέχρις_ότου Σ>1000 (10) Εμφάνισε Χ

1. Ουρά α. Απώθηση 2. Στοίβα β. Εξαγωγή γ. Ώθηση δ. Εισαγωγή

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

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

Κεφάλαιο 10. Ερωτήσεις ανάπτυξης

Θέμα Α 1. 1 Τα θέματα προέρχονται από Επαναληπτικά Διαγωνίσματα από το "Στέκι των Πληροφορικών" και Π. Τσιωτάκη

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

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

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ

ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΡΟΟΠΤΙΚΗ

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

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

Επαναληπτικό Διαγώνισμα

ΘΕΜΑ Α. Α2. Να αναφέρετε από τι εξαρτάται η επιλογή του καλύτερου αλγορίθμου ταξινόμησης. Μονάδες 4. Σελίδα 1 από 8

Α2. Να γράψετε στο τετράδιό σας τους αριθμούς της Στήλης Α και δίπλα τα γράμματα της Στήλης Β που τους αντιστοιχούν.

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00

Λογικός Προγραμματισμός Ασκήσεις

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

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

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ

ΗΥ-100: Εισαγωγή στην Επιστήμη Υπολογιστών 3η σειρά ασκήσεων

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

σας φύλλο τον αριθμό της ερώτησης ακολουθούμενη από το γράμμα Σ (Σωστή) ή το γράμμα Λ (Λάθος).

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

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

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

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ

Transcript:

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ (0-) Εργασία Το πρόβλημα που καλείσθε να αντιμετωπίσετε στην άσκηση αυτή είναι η συμπλήρωση σταυρολέξων. Δεδομένα του προβλήματος είναι ένα κενό σταυρόλεξο, δηλαδή οι διαστάσεις του και οι θέσεις των μαύρων τετραγωνιδίων του, και ένα λεξικό που περιέχει ένα μεγάλο αριθμό λέξεων. Το ζητούμενο είναι να γράψετε ένα πρόγραμμα C, το οποίο να είναι σε θέση να επιλέξει λέξεις από το λεξικό για να συμπληρωθεί το σταυρόλεξο, έτσι ώστε να ισχύει ο γνωστός και προϕανής κανόνας των σταυρολέξων, που είναι ότι εκεί που διασταυρώνονται οριζόντιες και κάθετες λέξεις πρέπει να υπάρχει το ίδιο γράμμα. Επίσης, επισημαίνεται ότι όπου υπάρχουν απομονωμένα γράμματα, δηλαδή ένα γράμμα μεταξύ δύο μαύρων τετραγωνιδίων, αυτά δεν θεωρούνται λέξεις. Το αρχείο http://www.di.uoa.gr/~ip/hwfiles/crossword/words.txt, στο οποίο περιέχεται μία λέξη σε κάθε γραμμή, μπορεί να χρησιμοποιηθεί σαν λεξικό. Το συγκεκριμένο αρχείο είναι ταξινομημένο αλϕαβητικά, αλλά το πρόγραμμα που θα γράψετε δεν πρέπει να βασίζεται σ αυτό το γεγονός. Θα πρέπει να είναι σε θέση να λειτουργήσει σωστά ακόμα και για λεξικά που δεν είναι ταξινομημένα αλϕαβητικά. Στον κατάλογο http://www.di.uoa.gr/~ip/hwfiles/crossword βρίσκονται και άλλα λεξικά, με διαϕορετικά πλήθη λέξεων, που μπορείτε να χρησιμοποιήσετε. Ενδεικτικά κενά σταυρόλεξα για να ελέγξετε την ορθότητα και αποδοτικότητα του προγράμματός σας είναι τα αρχεία Crossword.txt, Crossword.txt, Crossword.txt, Crossword.txt και Crossword.txt, στον κατάλογο http://www.di.uoa.gr/~ip/hwfiles/crossword. Στα αρχεία αυτά, περιγράϕονται με κάποιο τρόπο που θα εξηγηθεί στη συνέχεια τετράγωνα σταυρόλεξα, δηλαδή με ίδιο πλάτος και ύψος. Το πρόγραμμα που θα γράψετε να χειρίζεται και αυτό μόνο τετράγωνα σταυρόλεξα. Η δομή ενός αρχείου σταυρολέξου είναι η εξής: Στην πρώτη γραμμή υπάρχει η διάσταση του σταυρολέξου και, στη συνέχεια, κάθε γραμμή αντιστοιχεί σε ένα μαύρο τετραγωνίδιο του σταυρολέξου, δίνοντας τις συντεταγμένες του, δηλαδή τον αύξοντα αριθμό της γραμμής και της στήλης στις οποίες βρίσκεται (οι γραμμές και οι στήλες αριθμούνται από το ). Τα πέντε αρχεία σταυρολέξων που προτείνεται να αντιγράψετε αντιστοιχούν στα σταυρόλεξα που ϕαίνονται στην τελευταία σελίδα της εκϕώνησης. Για να καταλάβετε καλύτερα τη μορϕή των αρχείων αυτών, δείτε παρακάτω τα περιεχόμενα του πρώτου απ αυτά, που αντιστοιχεί στο σταυρόλεξο () της τελευταίας σελίδας. cat Crossword.txt Εστω ότι το εκτελέσιμο πρόγραμμα που θα δημιουργήσετε έχει το όνομα crossword. Η πιο απλή χρήση του προγράμματος είναι να κληθεί με ένα όρισμα, το όνομα του αρχείου σταυρολέξου που πρέπει να συμπληρωθεί. Στην περίπτωση αυτή, σαν λεξικό πρέπει να χρησιμοποιηθεί ένα αρχείο με όνομα Words.txt που πρέπει να βρίσκεται στον τρέχοντα κατάλογο. Αν αντί γι αυτό θέλουμε να χρησιμοποιηθεί άλλο αρχείο λεξικού, θα πρέπει το πρόγραμμα να κληθεί και με την επιλογή -dict <dictionaryfile>, αλλά το πρώτο όρισμα κατά την κλήση πρέπει να είναι πάλι το αρχείο του σταυρολέξου. Το αποτέλεσμα του προγράμματος πρέπει να είναι οι επιλεγμένες λέξεις από το λεξικό που το συμπληρώνουν, οι οποίες πρέπει να εκτυπωθούν στην έξοδο, πρώτα οι οριζόντιες με

τη σειρά που εμϕανίζονται στις γραμμές, και μετά οι κάθετες, με τη σειρά που εμϕανίζονται στις στήλες. Υπενθυμίζεται ότι στα σταυρόλεξα δεν νοούνται λέξεις του ενός γράμματος. Παραδείγματα εκτέλεσης δίνονται στη συνέχεια../crossword Crossword.txt sst whee zaire anna pee zap wane shine sera tee./crossword Crossword.txt -dict MoreWords.txt wet torus forages york step err tau step elms enemies tears poe yes forte torrent work peep era mao tugs eire settles seams pus Το πρόγραμμά σας να είναι σε θέση να αναγνωρίζει και την επιλογή -check. Στην περίπτωση της επιλογής αυτής, να διαβάζει από την πρότυπη είσοδο (stdin) ένα σύνολο από λέξεις, μία σε κάθε γραμμή, όπως ακριβώς εκτυπώνονται σαν λύση ενός προβλήματος συμπλήρωσης σταυρολέξου από το ίδιο το πρόγραμμα, και, δεδομένου ενός αρχείου σταυρολέξου, που έχει δοθεί σαν πρώτο όρισμα, και ενός αρχείου λεξικού, είτε του./words.txt, είτε κάποιου που έχει δοθεί μέσω της επιλογής -dict, να ελέγχει αν το σύνολο από λέξεις είναι ορθή λύση για να συμπληρωθεί το σταυρόλεξο. Ανάλογα

με το αποτέλεσμα του ελέγχου, να εκτυπώνεται κατάλληλο διαγνωστικό μήνυμα, αν έχει προκύψει κάποιο λάθος, ή να μην εκτυπώνεται τίποτα, αν το σταυρόλεξο συμπληρώνεται επιτυχώς με τις λέξεις που δόθηκαν στην είσοδο. Το πρόγραμμά σας πρέπει να δοκιμάζει να τοποθετήσει τις λέξεις κατά σειρά που έχουν δοθεί στο σταυρόλεξο και αν η λύση δεν είναι ορθή, στο πρώτο πρόβλημα που θα συναντήσει να τερματίζει, εκτυπώνοντας και το σχετικό μήνυμα λάθους. Πιθανοί λόγοι για τους οποίους μία λύση δεν είναι σωστή είναι: Η λέξη που πρέπει να τοποθετηθεί δεν περιέχεται στο λεξικό. Η λέξη που πρέπει να τοποθετηθεί δεν ταιριάζει, είτε επειδή έχει διαϕορετικό μέγεθος από αυτό της θέσης που πρέπει να μπει, είτε επειδή κάποιο από τα ήδη τοποθετημένα γράμματα στη θέση δεν είναι το ίδιο με το αντίστοιχο γράμμα της λέξης. Οι λέξεις που δόθηκαν έχουν τοποθετηθεί επιτυχώς, αλλά το σταυρόλεξο δεν έχει συμπληρωθεί μέχρι τέλους. Το σταυρόλεξο συμπληρώθηκε σωστά, αλλά έχουν δοθεί περισσότερες λέξεις από όσες τελικά χρειαζόντουσαν. Παραδείγματα εκτέλεσης του προγράμματος με την επιλογή -check είναι τα εξής:./crossword Crossword.txt -check run bload Word "bload" not in dictionary./crossword Crossword.txt -check -dict MoreWords.txt the gear ares Word "ares" cannot be placed./crossword Crossword.txt head -./crossword Crossword.txt -check Not enough words (./crossword Crossword.txt ; echo more)./crossword Crossword.txt -check More words than needed./crossword Crossword.txt -dict KnuthWords.txt \./crossword Crossword.txt -dict KnuthWords.txt -check Τέλος, το πρόγραμμά σας να είναι σε θέση να αναγνωρίζει και την επιλογή -draw. Οταν δίνεται η επιλογή αυτή, να εκτυπώνεται στην έξοδο η λύση του προβλήματος με κάποιον παραστατικό τρόπο της επιλογής σας. Η εκτύπωση αυτής της μορϕής να γίνεται και στην περίπτωση που έχει δοθεί και η επιλογή -check, μόνο όταν η λύση που δόθηκε είναι σωστή. Πιθανά παραδείγματα εκτέλεσης και με την επιλογή αυτή ϕαίνονται στη συνέχεια.

./crossword Crossword.txt -draw ###### s s t ### w h e e z a i r e a n n a ### p e e ######./crossword Crossword.txt -draw -dict MoreWords.txt ######### w e t ######### ###### t o r u s ###### ### f o r a g e s ### y o r k ### s t e p e r r ######### t a u s t e p ### e l m s ### e n e m i e s ### ###### t e a r s ###### ######### p o e #########./crossword Crossword.txt -dict MoreWords.txt -draw l o g s ### p r o ### v i s a i d l e ### a i d ### a r i d n o u n ### t o o ### l i n d t r e a t s ### r o u s e s ######### t o y ### s u e ######### y e m e n ######### t r u s t e r a ##################### s u e s a t e s ######### s t e e n ######### s u s ### s u e ######### g o t t e n ### h e r p e s e r i e ### o r r ### r o w e m a n e ### r u e ### o p e n s l a m ### t e d ### r e n t./crossword Crossword.txt./crossword Crossword.txt -check -draw t a b u ### s c m ### a m r a e b e n ### e r e ### c a i n c l a d ### t a d ### c l o d h e t e r o g e n e i t y ######### r a n ### a i l ######### e r e c t ######### b e s e t s i a l ############### r a n t t o t a l ######### s o g g y ######### s e a ### t i m ######### m a s s a c h u s e t t s o v u m ### t o p ### t a r t d i r e ### o w l ### e r i e e v e n ### n e e ### r a m p

./crossword Crossword.txt -dict Words.txt -draw ### v ### s ### o ### l ### t h a l i a ### p a r ### z i m m e r m a n ### e ### u ### u g a n d a ### s ### o ### d ### g ### g i l c h r i s t ### s l i t t l e t o n ### n ### r a i n c o a t ### g ### h ### r o s e n z w e i g ### a n n e y o k e l ### r ### v ######### t r a w l ### i r ### t ### r ### s u r e t y ### i ############### s ### w h o ### w i s e ### o ### m a t u r a t e ### i ### m o r t ### a s t o r ### o ### o u r ### t s ### n ### o ### m p h ###### s c r o o g e ### w e p i c u r e ### a s h ### r e n t ### a w e a ### p ### g ### s t r i a t e ### u ### s t a n c l o t h ### m ### i n l e t ### s c h i s t r ### t ### t h e m ### u p s e t ###### a s ### y e b e n ###### r u s s e t ### a ### g w e n ### ### a n n ### v i c t o r ### a c r e ###### i ### o t t e r ### c h a i n ### z i o n i s m ### g ######### u ######### n d ### u t t e r ### p b s r i v u l e t ### z a i r e ###### e m i l e e ### t ### e ### a v a l a n c h e ### s t e w./crossword Crossword.txt -dict KnuthWords.txt \./crossword Crossword.txt -draw -dict KnuthWords.txt -check ### y ### z ### t ### w ### q u e s t s ### a g o ### s o p o r i f i c ### s ### p ### l i n i n g ### u ### n ### b ### z ### v a c a t i o n s ### i u n r a v e l e r ### g ### c o e n a m o r ### g ### t ### t o n o m e t e r s ### l o u t y e s e s ### b ### w ######### m y t h s ### n h ### s ### d ### t a v e r n ### a ############### c ### s t u ### y u r i ### y ### i n t i t u l e ### w ### n o o n ### s t e e l ### r ### r s a ### t i ### w ### u ### w a y ###### l a o t i a n ### s s w e l t e r ### p b s ### s w o t ### d y e h ### i ### h ### e v e r e t t ### y ### t s e t i n g l e ### s ### s o c i o ### s k e i n s e ### h ### s m t p ### w r e n s ###### r d ### e r e t s ###### l i m n e r ### t ### b y e s ### ### t e e ### r e c a s t ### h u r l ###### o ### f a d e r ### s a c h s ### o n e i r i c ### o ######### u ######### a i ### g u s t s ### g o p u l y s s e s ### w r i e r ###### s t o l e r ### r ### t ### c y s t a m i n e ### i r a n

./crossword Empty.txt -dict KnuthWords.txt -draw a s s e s s s t e l a e s e n i l e e l i c i t s a l i s h s e e t h e./crossword Empty.txt -dict KnuthWords.txt -draw s a r p s i s a b a l o n e r a d i a t e p l i n k e d s o a k a g e i n t e g e r s e e d e r s Το πρόβλημα που παρουσιάζεται στην άσκηση αυτή είναι ένα πρόβλημα αναζήτησης. Βρισκόμαστε, δηλαδή, σε μία αρχική κατάσταση, το άδειο σταυρόλεξο, και ο στόχος είναι, επιλέγοντας λέξεις από το λεξικό, σταδιακά να το συμπληρώσουμε, περνώντας από ενδιάμεσες καταστάσεις μερικώς συμπληρωμένων σταυρολέξων. Κατά τη διαδικασία συμπλήρωσης του σταυρολέξου, είναι πιθανόν κάποια στιγμή να βρεθούμε σε αδιέξοδο. Δηλαδή, να θέλουμε να συμπληρώσουμε μία λέξη σ αυτό, αλλά να μην υπάρχει κάποια κατάλληλη μέσα στο λεξικό, που να ταιριάζει και με τα ήδη τοποθετημένα γράμματα από άλλες διασταυρούμενες με αυτήν λέξεις. Τότε, ένας τρόπος για να ανακάμψουμε είναι να οπισθοδρομήσουμε στην πιο πρόσϕατη επιλογή που είχαμε κάνει, να την αναιρέσουμε και να ακολουθήσουμε κάποια άλλη. Για την υλοποίηση αυτής της οπισθοδρόμησης χρειαζόμαστε μία στοίβα, στην οποία να κρατάμε την αλληλουχία των βημάτων που έχουμε κάνει, ή κάτι ισοδύναμο. Εναλλακτικά, για να προσομοιώσουμε την οπισθοδρόμηση, μπορούμε να χρησιμοποιήσουμε και αναδρομή. Μπορούμε, βέβαια, αν βρεθούμε σε αδιέξοδο, να μην κάνουμε καθόλου οπισθοδρόμηση, αλλά να αναιρέσουμε κάποιες ενοχλητικές τοποθετήσεις λέξεων που είχαμε κάνει στο παρελθόν και να συνεχίσουμε ευελπιστώντας ότι όλα θα πάνε καλά τώρα. Αν ξαναβρεθούμε σε αδιέξοδο, προσπαθούμε πάλι να επιδιορθώσουμε την κατάσταση στην οποία βρισκόμαστε, ώστε να μπορέσουμε να συνεχίσουμε. Ουσιαστικά, για να μπορεί το πρόγραμμα που θα γράψετε να συμπληρώνει και μεγάλα σταυρόλεξα, θα πρέπει όταν είναι να πάρει κάποια απόϕαση να το κάνει με έξυπνο τρόπο. Για παράδειγμα, ίσως σας είναι προϕανές ότι είναι καλύτερο να ξεκινήσει κανείς να συμπληρώνει το σταυρόλεξο με τις μεγαλύτερες λέξεις πρώτα και μετά να προχωρά στις μικρότερες. Επίσης, ίσως θα πρέπει να συμπληρώνονται εναλλάξ οριζόντιες και κάθετες λέξεις, και μάλιστα με έναν τρόπο ώστε να εκμεταλλευόμαστε όσο νωρίτερα γίνεται τις διασταυρώσεις λέξεων. Πιθανότατα θα χρειαστεί επίσης να οργανώσετε το λεξικό σας με κάποιο τρόπο ώστε να είναι αποδοτική η αναζήτηση λέξεων που πληρούν κάποιες ιδιότητες. Αν δοκιμάσετε το πρόγραμμά σας και με άλλα σταυρόλεξα επιτυχώς, στο παραδοτέο σας να συμπεριλάβετε και τα αρχεία αυτών των σταυρολέξων. Παραδοτέο Θα πρέπει να δομήσετε το πρόγραμμά σας σε ένα σύνολο από τουλάχιστον τρία πηγαία αρχεία C (με κατάληξη.c) και τουλάχιστον δύο αρχεία επικεϕαλίδας (με κατάληξη.h). Επίσης, δημιουργήστε ένα απλό αρχείο κειμένου με όνομα README.txt, στο οποίο να δίνετε οδηγίες για τη μεταγλώττιση του προγράμματος, καθώς και ό,τι άλλο κρίνετε σκόπιμο να επισημάνετε. Προαιρετικά,

μπορείτε να παραδώσετε και ένα αρχείο Makefile που να αναλαμβάνει όλη τη διαδικασία της κατασκευής των τελικών εκτελέσιμων μέσω της εντολής make (δώστε man make για περισσότερες λεπτομέρειες). Για να παραδώσετε το σύνολο των αρχείων που θα έχετε δημιουργήσει για την εργασία αυτή, ακολουθήστε την εξής διαδικασία. Τοποθετήστε όλα τα αρχεία μέσα σ ένα κατάλογο που θα δημιουργήσετε σε κάποιο σύστημα Linux, έστω με όνομα crossword. Οντας στον κατάλογο που περιέχει τον κατάλογο crossword, δημιουργήστε ένα επιπεδοποιημένο tar αρχείο (έστω με όνομα crossword.tar) που περιέχει τον κατάλογο crossword και όλα του τα περιεχόμενα. Αυτό γίνεται με την εντολή tar cvf crossword.tar crossword. Συμπιέστε το αρχείο crossword.tar, ώστε να δημιουργηθεί το αρχείο crossword.tar.gz. Αυτό γίνεται με την εντολή gzip crossword.tar. Το αρχείο crossword.tar.gz είναι που θα πρέπει να υποβάλετε μέσω του eclass. Ομαδική εργασία Η εργασία αυτή μπορεί να παραδοθεί και από ομάδες των δύο ατόμων. Στην περίπτωση αυτή, θα παραδοθεί μόνο από το ένα μέλος της ομάδας, αλλά μέσα στο αρχείο README.txt θα αναϕέρονται σαϕώς τα στοιχεία των δύο μελών. Ο στόχος της διαδικασίας αυτής είναι να ενισχυθεί η ιδέα της ισότιμης συνεργασίας σε μία ομάδα για την επίτευξη ενός στόχου. Διαγωνισμός καλύτερων προγραμμάτων Τα προγράμματα που θα υποβληθούν θα μπορούν να συμμετάσχουν, εϕ όσον το δηλώσουν οι συγγρα- ϕείς τους, σε διαγωνισμό καλύτερων προγραμμάτων. Για τα τρία καλύτερα προγράμματα, θα υπάρξει επιβράβευση στη βαθμολογία τους κατά 00%, 0% και 0%, κατά σειρά. Περισσότερες λεπτομέρειες για τον διαγωνισμό θα ανακοινωθούν εν καιρώ στο ϕόρουμ του μαθήματος. Λάβετε υπόψη σας ότι η εστίαση του διαγωνισμού θα είναι στη συμπλήρωση σταυρολέξων που δεν θα είναι εκ των προτέρων γνωστή η μορϕή τους, σε περιορισμένο χρόνο. Αν θέλετε να ανακτήσετε την δενδρική δομή που έχει ϕυλαχθεί σε ένα επιπεδοποιημένο tar αρχείο file.tar, αυτό μπορεί να γίνει με την εντολή tar xvf file.tar. Αν θέλετε να αποσυμπιέσετε ένα αρχείο file.gz που έχει συμπιεσθεί με την εντολή gzip, αυτό μπορεί να γίνει με την εντολή gzip -d file.gz. Μην υποβάλετε ασυμπίεστα αρχεία ή αρχεία που είναι συμπιεσμένα σε άλλη μορϕή εκτός από tar.gz (π.χ. rar, z, zip, κλπ.), γιατί δεν θα γίνονται δεκτά για αξιολόγηση.

() () 0 0 () 0 0 () 0 0 0 0 ()