Στο πλαίσιο μιας μελέτης, ένας φιλόλογος θέλει να ελέγξει τη χρήση ενός δείγματος εκατό (100) ναυτικών λέξεων σε σύγχρονα νεοελληνικά κείμενα. Για τον σκοπό αυτό:
Γ1. Να κατασκευάσετε υποπρόγραμμα, με όνομα ΑΝΑΖΗΤΗΣΗ, το οποίο να δέχεται
- ένα μονοδιάστατο πίνακα χαρακτήρων Π[100],
- μια ακέραια μεταβλητή Ν,
- μια αλφαριθμητική μεταβλητή Χ και να επιστρέφει
- μια λογική μεταβλητή ΒΡΕΘΗΚΕ και
- μια ακέραια μεταβλητή ΘΕΣΗ.
Το υποπρόγραμμα να αναζητά μια λέξη, την τιμή της μεταβλητής Χ στις θέσεις 1 έως Ν του πίνακα Π. Αν βρεθεί η λέξη, το υποπρόγραμμα να επιστρέφει την τιμή ΑΛΗΘΗΣ και τη θέση που βρέθηκε. Αν δεν βρεθεί, να επιστρέφει την τιμή ΨΕΥΔΗΣ και την τιμή 0.
Μονάδες 5
Στη συνέχεια να κατασκευάσετε κύριο πρόγραμμα το οποίο:
Γ2. Να ζητά 100 ναυτικές λέξεις και να τις καταχωρίζει σε πίνακα ΛΕΞΕΙΣ[100]. Κάθε λέξη που δίνεται να τη δέχεται, μόνο εφόσον ελέγξει ότι δεν έχει ήδη καταχωριστεί στον πίνακα. Ο έλεγχος να γίνεται με τη χρήση του υποπρογράμματος ΑΝΑΖΗΤΗΣΗ.
Μονάδες 5
Γ3. Να ζητά, με τη σειρά, τις λέξεις ενός νεοελληνικού κειμένου. Η εισαγωγή να τερματίζεται όταν δοθεί ως λέξη η ακολουθία χαρακτήρων «ΤΕΛΟΣ_ΚΕΙΜΕΝΟΥ».
Μονάδες 2
Γ4. Να εμφανίζει τις σπανιότερες ναυτικές λέξεις του δείγματος που υπάρχουν στο νεοελληνικό κείμενο, δηλαδή τις λέξεις με τη μικρότερη συχνότητα εμφάνισης, χρησιμοποιώντας κατάλληλα το υποπρόγραμμα ΑΝΑΖΗΤΗΣΗ.
Μονάδες 8
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΘΕΜΑ_Γ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Ι,Ν, ΘΕΣΗ, ΣΥΧΝΟΤΗΤΑ[100], Min, ΟΡΙΟ, Πλήθος_Λέξεων ΧΑΡΑΚΤΗΡΕΣ: ΛΕΞΕΙΣ[100], ΛΕΞΗ ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ, βρέθηκεMin ΑΡΧΗ ! Γ2 ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΔΙΑΒΑΣΕ ΛΕΞΕΙΣ[Ι] ΟΡΙΟ <-- Ι - 1 ΚΑΛΕΣΕ ΑΝΑΖΗΤΗΣΗ(ΛΕΞΕΙΣ, ΟΡΙΟ, ΛΕΞΕΙΣ[Ι], ΒΡΕΘΗΚΕ, ΘΕΣΗ) ΜΕΧΡΙΣ_ΟΤΟΥ ΒΡΕΘΗΚΕ = ΨΕΥΔΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! Γ3 ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100 ΣΥΧΝΟΤΗΤΑ[Ι] <-- 0 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΔΙΑΒΑΣΕ ΛΕΞΗ Ν <-- 100 πλήθος_Λέξεων <-- 0 !δεν προσμετράται το ΤΕΛΟΣ_ΚΕΙΜΕΝΟΥ ΟΣΟ ΛΕΞΗ <> 'ΤΕΛΟΣ_ΚΕΙΜΕΝΟΥ' ΕΠΑΝΑΛΑΒΕ Πλήθος_Λέξεων <-- πλήθος_Λέξεων + 1 ΚΑΛΕΣΕ ΑΝΑΖΗΤΗΣΗ(ΛΕΞΕΙΣ, Ν, ΛΕΞΗ, ΒΡΕΘΗΚΕ, ΘΕΣΗ) ΑΝ ΒΡΕΘΗΚΕ = ΑΛΗΘΗΣ ΤΟΤΕ ΣΥΧΝΟΤΗΤΑ[ΘΕΣΗ] <-- ΣΥΧΝΟΤΗΤΑ[ΘΕΣΗ] + 1 ΤΕΛΟΣ_ΑΝ ΔΙΑΒΑΣΕ ΛΕΞΗ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! Γ4 Min <-- Πλήθος_Λέξεων + 1 βρέθηκεMin <-- ΨΕΥΔΗΣ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100 ΑΝ ΣΥΧΝΟΤΗΤΑ[Ι] > 0 ΚΑΙ ΣΥΧΝΟΤΗΤΑ[Ι] < Min ΤΟΤΕ Min <-- ΣΥΧΝΟΤΗΤΑ[Ι] βρέθηκεMin <-- ΑΛΗΘΗΣ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΑΝ βρέθηκεMin = ΑΛΗΘΗΣ ΤΟΤΕ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100 ΑΝ ΣΥΧΝΟΤΗΤΑ[Ι] = Min ΤΟΤΕ ΓΡΑΨΕ 'Λέξη με την μικρότερη συχνότητα εμφάνισης: ', Ι, '. ', ΛΕΞΕΙΣ[Ι] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΑΛΛΙΩΣ ΓΡΑΨΕ 'Καμία λέξη δε βρέθηκε στο κείμενο' ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ! Γ1 ΔΙΑΔΙΚΑΣΙΑ ΑΝΑΖΗΤΗΣΗ(Π, Ν, Χ, ΒΡΕΘΗΚΕ, ΘΕΣΗ) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Ν, ΘΕΣΗ, Ι ΧΑΡΑΚΤΗΡΕΣ: Π[100], Χ ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ ΑΡΧΗ ΘΕΣΗ <-- 0 ΒΡΕΘΗΚΕ <-- ΨΕΥΔΗΣ Ι <-- 1 ΟΣΟ Ι <= Ν ΚΑΙ ΒΡΕΘΗΚΕ = ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ ! Καλύπτεται και η περίπτωση Ν=0 ΑΝ Π[Ι] = Χ ΤΟΤΕ ΘΕΣΗ <-- Ι ΒΡΕΘΗΚΕ <-- ΑΛΗΘΗΣ ΤΕΛΟΣ_ΑΝ Ι <-- Ι + 1 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
Κατεβάστε ένα δοκιμαστικό αρχείο δεδομένων: arxeio100naytikonoron-3
Πρόσφατα σχόλια