Άσκηση με συνθήκη τερματισμού και άλλα...

Ξεκίνησε από Cloud_Strife, 24 Απρ 2010, 06:54:58 ΜΜ

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

Cloud_Strife

Μπορείτε να με βοηθήσετε με την παρακάτω άσκηση;

Ορίστε η εκφώνηση:


Και εδώ η λύση της που έγραψα:


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

andreas_p

1)
  max <- 0  ! ??????  Αν ΟΛΕΣ οι ακέραιες τιμές (που θα δοθούν) είναι αρνητικές ;;;

  Το αυτό και για το max2 !!!!!!!!!!!!!!

2)

Διάβασε ΑΡ
Αν ΑΡ <>0  και ΑΡ <> 9999 τότε
...

Cloud_Strife

Παράθεση από: andreas_p στις 24 Απρ 2010, 07:23:11 ΜΜ
1)
  max <- 0  ! ??????  Αν ΟΛΕΣ οι ακέραιες τιμές (που θα δοθούν) είναι αρνητικές ;;;

2)

Διάβασε ΑΡ
Αν ΑΡ <>0  και ΑΡ <> 9999 τότε
...
1) Πιστεύω ότι οι αριθμοί θα είναι θετικοί (0, +∞). Αλλιώς δεν μπορείς να αρχικοποιήσεις σε μια απίθανα ελάχιστη τιμή αφού τότε το διάστημα θα είναι (-∞,+∞). Και μπερδεύει το πράγμα...

2) ΚΑΙ, σωστά. Έγινε διόρθωση στην παραπάνω λύση...

tom

Στο ερώτημα viii, με τον τρόπο που υπολογίζεις το μ.ο., όταν το i πάρει την τιμή 11 θα γίνει διαίρεση με το 0, οπότε αυτό θέλει προσοχή. Βασικά πρέπει στον παρανομαστή να βάλεις (i-11+1).

Επίσης νομίζω ότι η Όσο είναι πιο κατάλληλη δομή επανάληψης απ τη στιγμή που αποφεύγεις την αρχική συνθήκη.

Την είδα λίγο βιαστικά. Αν προσέξω κάτι άλλο θα σου πω.
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

Cloud_Strife

Παράθεση από: tom στις 24 Απρ 2010, 07:33:36 ΜΜ
Στο ερώτημα viii, με τον τρόπο που υπολογίζεις το μ.ο., όταν το i πάρει την τιμή 11 θα γίνει διαίρεση με το 0, οπότε αυτό θέλει προσοχή. Βασικά πρέπει στον παρανομαστή να βάλεις (i-11+1).

Επίσης νομίζω ότι η Όσο είναι πιο κατάλληλη δομή επανάληψης απ τη στιγμή που αποφεύγεις την αρχική συνθήκη.

Την είδα λίγο βιαστικά. Αν προσέξω κάτι άλλο θα σου πω.
Ευχαριστώ για την παρατήρηση και τις συμβουλές... Το διόρθωσα!
Πάντως πιστεύω ότι το ερώτημα i είναι λίγο ασαφές. Τι λέτε? Αντιφάσκει με το iii, αφού max δεν μπορείς να αρχικοποιήσεις... Σε τέτοιες περιπτώσεις τι μπορούμε να κάνουμε?

tom

Παράθεση από: Cloud_Strife στις 24 Απρ 2010, 07:44:28 ΜΜ
Ευχαριστώ για την παρατήρηση και τις συμβουλές... Το διόρθωσα!
Πάντως πιστεύω ότι το ερώτημα i είναι λίγο ασαφές. Τι λέτε? Αντιφάσκει με το iii, αφού max δεν μπορείς να αρχικοποιήσεις... Σε τέτοιες περιπτώσεις τι μπορούμε να κάνουμε?

Δε νομίζω να είναι αντιφατικό. Τα 0 και 9999 είναι κάποιες αυθαίρετες τιμές ελέγχου. Το πρόβλημα με το 0 μπορεί να το ξεπεράσεις ως εξής:

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

Διάβασε ΑΡ
max<-ΑΡ
Όσο ΑΡ <> 0 και ΑΡ <> 9999 επανάλαβε


   Διάβασε ΑΡ
Τέλος_επανάληψης


Υ.Γ. Σε σχέση με την προηγούμενη επισήμανση που έκανα ισχύει:

Για κάθε ακολουθία αριθμών n,n+1,n+2,...,m όπου m>n, πλήθος όρων: m-n+1

π.χ.   για τους αριθμούς 14,15,16,17,18, πλήθος όρων: 18-14+1=5.
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

Cloud_Strife

Παράθεση από: tom στις 24 Απρ 2010, 07:52:02 ΜΜ
Δε νομίζω να είναι αντιφατικό. Τα 0 και 9999 είναι κάποιες αυθαίρετες τιμές ελέγχου. Το πρόβλημα με το 0 μπορεί να το ξεπεράσεις ως εξής:

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

Διάβασε ΑΡ
max<-ΑΡ
Όσο ΑΡ <> 0 και ΑΡ <> 9999 επανάλαβε


   Διάβασε ΑΡ
Τέλος_επανάληψης


Υ.Γ. Σε σχέση με την προηγούμενη επισήμανση που έκανα ισχύει:

Για κάθε ακολουθία αριθμών n,n+1,n+2,...,m όπου m>n, πλήθος όρων: m-n+1

π.χ.   για τους αριθμούς 14,15,16,17,18, πλήθος όρων: 18-14+1=5.
Λοιπόν, σωστή η απάντηση. Λοιπόν για να μην αλλάζω την λύση ολοκληρη έχουμε:
max<--0
max2<--0

...
i<--i+1
Αν i=1 τότε
   max<--AP
   max2<--AP
Τέλος_αν

...

Και τώρα πιστεύω πως είναι οκ. Όντως τελικά με την "'Οσο-επανάλαβε" θα την έλυνα πιο εύκολα, και πιο κατανοητά για τον εξεταστή...

tom

Παράθεση από: Cloud_Strife στις 24 Απρ 2010, 08:05:43 ΜΜ
Λοιπόν, σωστή η απάντηση. Λοιπόν για να μην αλλάζω την λύση ολοκληρη έχουμε:
max<--0
max2<--0

...
i<--i+1
Αν i=1 τότε
   max<--AP
   max2<--AP
Τέλος_αν

...
Και τώρα πιστεύω πως είναι οκ. Όντως τελικά με την "'Οσο-επανάλαβε" θα την έλυνα πιο εύκολα, και πιο κατανοητά για τον εξεταστή...
Ναι σωστό είναι άλλα μπερδεμένο.

Εγώ χρησιμοποιώ την Αρχή_επανάληψης μόνο όταν:

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

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

tom

Στο ερώτημα iv) μήπως θα έπρεπε να είναι έτσι:
...
Αν i>=32 και i<=88 τότε
   Αν ΑΡ>max2 τότε
       max2<-ΑΡ
       θ<-i
   Τέλος_αν
Τέλος_αν
...


Επίσης ο αλγόριθμός σου δεν έχει έξοδο! :o

Όταν μια άσκηση λέει "Να υπολογίζει" εννοεί και να εμφανίζει... ;)

Πάντως αυτή η άσκηση θα λύνονταν πιο εύκολα με πίνακες. Δεν καταλαβαίνω γιατί το απαγορεύει...

Καλό θα ήταν να "τρέξεις" τον αλγόριθμό σου στο διερμηνευτή της ψευδογλώσσας για να δεις μήπως υπάρχουν και άλλα λαθάκια.
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

Cloud_Strife

Παράθεση από: tom στις 24 Απρ 2010, 08:29:51 ΜΜ
Στο ερώτημα iv) μήπως θα έπρεπε να είναι έτσι:
...
Αν i>=32 και i<=88 τότε
   Αν ΑΡ>max2 τότε
       max2<-ΑΡ
       θ<-i
   Τέλος_αν
Τέλος_αν
...


Επίσης ο αλγόριθμός σου δεν έχει έξοδο! :o

Όταν μια άσκηση λέει "Να υπολογίζει" εννοεί και να εμφανίζει... ;)

Πάντως αυτή η άσκηση θα λύνονταν πιο εύκολα με πίνακες. Δεν καταλαβαίνω γιατί το απαγορεύει...

Καλό θα ήταν να "τρέξεις" τον αλγόριθμό σου στο διερμηνευτή της ψευδογλώσσας για να δεις μήπως υπάρχουν και άλλα λαθάκια.
Λολ... Στο iv ξέχασα την εμφωλευμένη αν... Αχ... Ευχαριστώ. Θα το κοιταξω...
Απλά μας περιορίζει ο καθηγητής τη χρήση πινάκων για να "θυμηθούμε" και τις απλές δομές επανάληψης!

andreas_p

Αν i=1 τότε
   max<--AP
   max2<--AP ! Όχι εδώ
Τέλος_αν 
...  !    μπορείς να το βρεις ...

bagelis

Παράθεση από: tom στις 24 Απρ 2010, 08:29:51 ΜΜ

Πάντως αυτή η άσκηση θα λύνονταν πιο εύκολα με πίνακες. Δεν καταλαβαίνω γιατί το απαγορεύει...

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


Παράθεση από: tom στις 24 Απρ 2010, 08:29:51 ΜΜ
Όταν μια άσκηση λέει "Να υπολογίζει" εννοεί και να εμφανίζει...
όταν μία άσκηση λέει "Να υπολογίζει" τότε αυστηρά πρέπει να βάζουμε Αποτελέσματα // ... //,  προσωπικά όμως δεν θα έκοβα ποτέ από μαθητή για κάτι τέτοιο...

tom

Παράθεση από: bagelis στις 29 Απρ 2010, 02:21:15 ΠΜ
Αν και κάπου έχει ξαναγίνει αυτή η κουβέντα, δεν νομίζω ότι μπορεί η συγκεκριμένη άσκηση να λυθεί με πίνακες μιας και το μέγεθος δεν είναι εκ των προτέρων γνωστό.
Εντάξει, ναι έχω παρακολουθήσει και γω 1-2 τέτοιες συζητήσεις. Απλά είμαι σε αυτούς που πιστεύουν ότι η ψευδωγλώσσα είναι η πρώτη επαφή με την αλγοριθμική σκέψη και αντιμετώπιση ενός προβλήματος και δε θα ήθελα τα παιδιά να έχουν τέτοιους περιορισμούς. Στη ΓΛΩΣΣΑ αλλάζει το πράγμα. Τέλος πάντων.

Παράθεση από: bagelis στις 29 Απρ 2010, 02:21:15 ΠΜ
όταν μία άσκηση λέει "Να υπολογίζει" τότε αυστηρά πρέπει να βάζουμε Αποτελέσματα // ... //,  προσωπικά όμως δεν θα έκοβα ποτέ από μαθητή για κάτι τέτοιο...

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

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

Cloud_Strife

Παράθεση από: tom στις 29 Απρ 2010, 08:53:11 ΠΜ
Εντάξει, ναι έχω παρακολουθήσει και γω 1-2 τέτοιες συζητήσεις. Απλά είμαι σε αυτούς που πιστεύουν ότι η ψευδωγλώσσα είναι η πρώτη επαφή με την αλγοριθμική σκέψη και αντιμετώπιση ενός προβλήματος και δε θα ήθελα τα παιδιά να έχουν τέτοιους περιορισμούς. Στη ΓΛΩΣΣΑ αλλάζει το πράγμα. Τέλος πάντων.

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

Ακόμη, σε ΓΛΩΣΣΑ δεν μπορεί να γραφεί η άσκηση αυτή με πίνακες διότι, το μέγεθος του πίνακα δεν είναι εκ των προτέρων γνωστό... Όπως και να έχει είναι μια θεωρητικη-αλγοριθμική άσκηση!

tom

Παράθεση από: Cloud_Strife στις 02 Μαΐου 2010, 05:11:51 ΜΜ
Σίγουρα απαιτείται έξοδος για να μην παραβιάζετε το κριτήριο της αποτελεσματικότητας, ...
Εννοείς το κριτήριο της εξόδου.
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι