ασκηση υποπρογραμματα2

Ξεκίνησε από kiro, 11 Απρ 2006, 02:57:53 ΠΜ

« προηγούμενο - επόμενο »

kiro

Στέλνω και μια δεύτερη άσκηση και θα ήθελα τη γνώμη σας για τα τις παρατηρήσεις στο τέλος.

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

Σημείωση : Παλινδρομική φράση ή λέξη είναι αυτή που μπορεί να διαβαστεί και αντίστροφα π.χ. ΑΝΝΑ

ΛΥΣΗ

Πρόγραμμα Παλινδρομική_Φράση
Μεταβλητές
Ακέραιες : Μήκος
Χαρακτήρες : Λέξη[30], γ
Λογική : Αποτέλεσμα
Αρχή
Μήκος ί 0
Αρχή_επανάληψης
Γράψε ‘Δώσε το’, Μήκος +1 , ‘ο γράμμα της λέξης/φράσης’
Γράψε  ‘ (μέχρι 30 γράμματα και τελεία για τέλος) ’
Διάβασε γ
Αν γ >=’Α’ και  γ<=’Ω’ τότε
   Μήκος ί Μήκος +1
   Λέξη[Μήκος] ί γ
Τέλος_αν
Μέχρις_ότου γ=’.’ ή γ>30
Αποτέλεσμα ί Παλινδρομική(Λέξη, Μήκος)
Αν Αποτέλεσμα = Ψευδής τότε
Γράψε ‘Η λέξη/φράση δεν είναι παλινδρομική’
Αλλιώς
   Γράψε ‘Η λέξη/φράση  είναι παλινδρομική’
Τέλος_αν
Τέλος_Προγράμματος

! =========================================================

Συνάρτηση Παλινδρομική(Λέξη, Μήκος): Λογική
Μεταβλητές
Ακέραιες : Μήκος, i, j
Χαρακτήρες : Λέξη[30]
Αρχή
Παλινδρομική ί Αληθής
i ί 1
j ί Μήκος
Όσο i < j και Παλινδρομική = Αληθής επανάλαβε
   Αν Λέξη <> Λέξη[j] τότε
      Παλινδρομική ί Ψευδής
   Τέλος_αν
i ί i + 1
j ί j –1
Τέλος_επανάληψης
Τέλος_Συνάρτησης


1.  στο προγραμμα στο Μέχρις_ότου γ=’.’ ή γ>30
το γ>30 πιστεύω είναι λάθος, το γ το αρχικοποιήσαμε χαρακτήρα. Λογικά θα έπρεπε Μήκος>30 έτσι δεν είναι?
2. επίσης στην ίδια  Μέχρις_ότου θετει μέχρι 30 γράμματα και τελεία για το τέλος, Θα ήθελα να ρωτήσω αν είναι απαραίτητο να θέσουμε μεταβλητή για την οποία θα τερματίζει το πρόγραμμα η μπορούμε να αρκεστούμε στο πλήθος>30. Θα ήταν λάθος αν ένας μαθητής δεν το έβαζε?
3. Και κάτι τελευταίο αν η άσκηση δεν διευκρινίζει αν η μεταβλητή που πρέπει να πάρουμε είναι ακέραια η πραγματική θα ήταν λάθος αν τη βάζαμε πραγματική ακόμα και αν είναι λογικό να είναι ακέραια, όπως πχ.  το μήκος στην παραπάνω άσκηση?

Ευχαριστώ πολύ!



Laertis

Αγαπητέ/ή kiro

Η άσκηση αυτή μάλλον είναι στο δικό μου site

1) όντως είναι λάθος. Θα πρέπει να γίνει
Μέχρις_ότου γ=’.’ ή Μήκος>30

Ευχαριστώ για την υπόδειξη  ;)

2) Η συνθήκη αυτή μπαίνει έτσι ώστε να μπορεί να δεχθεί και λέξεις μικρότερες των 30 χαρακτήρων (μέχρι 30 αναφέρει η εκφώνηση)

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

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

:)


Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

kiro


andreas_p

Προς : Laertis

Μήπως το σωστό είναι το παρακάτω ;

Αγαπητέ/ή kiro

Η άσκηση αυτή μάλλον είναι στο δικό μου site

1) όντως είναι λάθος. Θα πρέπει να γίνει
Μέχρις_ότου γ=’.’ ή Μήκος=30

Laertis

Δεν κατάλαβα τι θέλεις να πεις Ανδρέα.
Μπορείς να γίνεις περισσόερο σαφής ;
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

Laertis

Συγγνώμη τώρα είδα τη διαφορά που αναφέρεις (δεν είχα προσέξει το Μήκος=30)  :)

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

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

Καλή δύναμη
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola