Η εικοστή πρώτη επαναληπτική άσκηση για το μάθημα της Πληροφορικής
(πρώην ΑΕΠΠ) αποτελεί μία ακόμα άσκηση στην κατηγορία των δισδιάστατων πινάκων. Απαιτεί επίσης τη χρήση εμφωλευμένων δομών επανάληψης.
21η Επαναληπτική Άσκηση
Τίτλος: Τυφλό Σύστημα Πληκτρολόγησης
Κατηγορία: Δισδιάστατοι Πίνακες
Σε ένα διαγωνισμό πέντε υποψήφιοι εξετάζονται στο τυφλό σύστημα πληκτρολόγησης. Οι υποψήφιοι εξετάζονται σε μεγάλο κείμενο, που αποτελείται από 3000 χαρακτήρες, για χρονική διάρκεια 10 λεπτών. Η βαθμολογία κάθε υποψηφίου προκύπτει αν προσθέτουμε ένα βαθμό για κάθε χαρακτήρα που πληκτρολογήθηκε σωστά και αφαιρούμε δύο βαθμούς για κάθε χαρακτήρα που πληκτρολογήθηκε λανθασμένα. Ωστόσο η συνολική βαθμολογία δεν μπορεί να είναι αρνητική.
Να γραφεί πρόγραμμα το οποίο:
α) Θα διαβάζει τα ονόματα των πέντε υποψηφίων,
β) Θα διαβάζει, χαρακτήρα – χαρακτήρα, το κείμενο που έπρεπε να πληκτρολογήσουν οι υποψήφιοι,
γ) Για κάθε υποψήφιο, θα διαβάζει πόσους χαρακτήρες κατάφερε να πληκτρολογήσει (να γίνεται έλεγχος ώστε ο αριθμός αυτός να είναι μικρότερος ή ίσος από τον αριθμό των χαρακτήρων του αρχικού κειμένου). Στη συνέχεια θα διαβάζει το κείμενο που πληκτρολόγησε χαρακτήρα – χαρακτήρα και θα το αποθηκεύει σε έναν δισδιάστατο πίνακα 5Χ3000 θέσεων (οι υπόλοιπες κενές θέσεις θα πρέπει να γεμίσουν με τον κενό χαρακτήρα),
δ) Για κάθε υποψήφιο, θα υπολογίζει την τελική του βαθμολογία και
ε) Θα εμφανίζει το όνομα του νικητή του διαγωνισμού (θεωρείστε ότι οι βαθμολογίες των υποψηφίων είναι όλες διαφορετικές μεταξύ τους)
Λύση 21ης επαναληπτικής άσκησης
ΠΡΟΓΡΑΜΜΑ Τυφλό_Σύστημα
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ι, ΧΑΡ, Κ, Σ_ΒΑΘΜ[5], ΜΕΓ, Θ_ΜΕΓ
ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[5], ΚΕΙΜΕΝΟ[3000], ΠΛΗΚΤΡ[5, 3000]
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5
ΓΡΑΨΕ 'Ποιο είναι το όνομα του ', Ι, ' ου υποψηφίου; '
ΔΙΑΒΑΣΕ ΟΝ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 3000
ΔΙΑΒΑΣΕ ΚΕΙΜΕΝΟ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Πόσους χαρακτήρες πληκτρολόγησε ο ',Ι, 'ος υποψήφιος; '
ΔΙΑΒΑΣΕ ΧΑΡ
ΜΕΧΡΙΣ_ΟΤΟΥ ΧΑΡ <= 3000
ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ ΧΑΡ
ΔΙΑΒΑΣΕ ΠΛΗΚΤΡ[Ι, Κ]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Κ ΑΠΟ ΧΑΡ + 1 ΜΕΧΡΙ 3000
ΠΛΗΚΤΡ[Ι, Κ] <- ''
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5
Σ_ΒΑΘΜ[Ι] <- 0
Κ <- 1
ΟΣΟ Κ <= 3000 ΚΑΙ ΠΛΗΚΤΡ[Ι, Κ] <> '' ΕΠΑΝΑΛΑΒΕ
ΑΝ ΠΛΗΚΤΡ[Ι, Κ] = ΚΕΙΜΕΝΟ[Κ] ΤΟΤΕ
Σ_ΒΑΘΜ[Ι] <- Σ_ΒΑΘΜ[Ι] + 1
ΑΛΛΙΩΣ
Σ_ΒΑΘΜ[Ι] <- Σ_ΒΑΘΜ[Ι] - 2
ΤΕΛΟΣ_ΑΝ Κ <- Κ + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ Σ_ΒΑΘΜ[Ι] < 0 ΤΟΤΕ
Σ_ΒΑΘΜ[Ι] <- 0
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΕΓ <- Σ_ΒΑΘΜ[1]
Θ_ΜΕΓ <- 1
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 5
ΑΝ Σ_ΒΑΘΜ[Ι] > ΜΕΓ ΤΟΤΕ
ΜΕΓ <- Σ_ΒΑΘΜ[Ι]
Θ_ΜΕΓ <- Ι
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Νικητής του διαγωνισμού είναι ο ', ΟΝ[Θ_ΜΕΓ]
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Τυφλό_Σύστημα
Όλες τις επαναληπτικές ασκήσεις για το μάθημα της Πληροφορικής (πρώην ΑΕΠΠ) μπορείτε να τις βρείτε στο παρακάτω άρθρο:
Ωραίες ασκήσεις συγχαρήτηρια. Ως προς τη λύση πρέπει να βάλετε Κ<-Κ+1 μεσα στην ΟΣΟ και νομιζω οτι η σωστη εντολη ειναι ΑΝ ΠΛΗΚΤΡ[Ι, Κ] = ΚΕΙΜΕΝΟ[Κ]
ΑπάντησηΔιαγραφήΣε ευχαριστώ πολύ για τις παρατηρήσεις σου. Έχεις απόλυτο δίκιο σε αυτά που λες. Μόλις έκανα τις απαραίτητες διορθώσεις.
Διαγραφή