Απορια στο Αν...Αλλιως_αν

Ξεκίνησε από alexis_zoure, 23 Οκτ 2007, 08:36:03 ΜΜ

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

alexis_zoure

Εστω οτι η ασκηση ειναι:"Η ταδε κινητη τηλεφωνια χρεωνει ως εξης:
Χρονος ομιλιας σε λεπτα-χρονοχρεωση (θα χρησιμοποιησω ακεραιους για να ειναι ευκολες οι πραξεις)
1-500                           1ευρω ανα λεπτο
501-1000                      2ευρω ανα λεπτο
1001 και ανω                 3ευρω ανα λεπτο
Χρεωνεται και μηνιαιο παγιο 4 ευρω"

Λυση μαθητη:

Αλγοριθμος Χρεωση
Διαβασε x
Αν x=>1 και x<=5ΟΟ τοτε
y<-x
Αλλιως_αν x>500 και x<=1000 τοτε
y<-500+(x-500)*2
Αλλιως_αν x>1000 τοτε
y<-500+(500*2)+(x-1000)*3
Τελος_αν
z<-y+4
Εμφανισε z
Τελος Χρεωση


Λυση σωστη:

Αλγοριθμος Χρεωση
Διαβασε x
Αν x=>1 και x<5ΟΟ τοτε
y<-x
Αλλιως_αν x<=1000 τοτε
y<-500+(x-500)*2
Αλλιως
y<-500+(500*2)+(x-1000)*3
Τελος_αν
z<-y+4
Εμφανισε z
Τελος Χρεωση

Αρα γινεται σαφες στην πρωτη ασκηση οτι γινεται λαθος λογω μη κατανοησης της εντολης Αν...Αλλιως_αν

Ομως σημερα σχολειο εγινε το εξης:

Η ασκηση ελεγε:"Τα διοδια πληρωνονται αναλογα με το ειδος των οχηματων:Φορτηγα("Φ"),αυτοκινητα("Α") και μηχανες("Μ").Μπλα μπλα μπλα..."Σημειωση:δεν ζηταει ελεγχο ορθοτητας

Δικη μου λυση:

Αν x="Φ" τοτε
Δ<-3
Αλλιως_αν x="A" τοτε
Δ<-2
Αλλιως
Δ<-1
Τελος_αν

Και ενος αλλου παιδιου:

Αν x="Φ" τοτε
Δ<-3
Αλλιως_αν x="A" τοτε
Δ<-2
Αλλιως_αν x="M" τοτε
Δ<-1
Τελος_αν

Το θεμα ειναι οτι τις πηρε και τις δυο σωστες και μου ειπε οτι ειναι ισοδυναμες...Μα δεν φαινεται καθαρα οτι γινεται παλι λανθασμενη χρηση του Αν...Αλλιως_αν?Ειναι εντελως ισοδυναμες? ???

Αλεξανδρος Ζουρελιδης
Μαθητης Γ Λυκειου

georgesp

Καλημέρα alexi

Καταρχάς, η "λύση μαθητή" που γράφεις δεν είναι λάθος στην πρώτη άσκηση. Έχει ένα μειονέκτημα και ένα πλεονέκτημα συγκρινόμενη με τη "σωστή λύση". Το μειονέκτημα είναι ότι το

Αλλιως_αν x>500 και x<=1000 τοτε

μπορεί να γραφτεί όπως στη "σωστή λύση"

Αλλιως_αν x<=1000 τοτε

και αυτό γιατί ο έλεγχος χ>500 είναι περιττός. Μιας και αν χ<=500 θα είχε μπει στο προηγούμενο ΑΝ και δε θα έμπαινε στο Αλλιώς_αν.

Έχει όμως ένα πλεονέκτημα, το οποίο είναι ότι αν δοθεί ΑΡΝΗΤΙΚΗ ΤΙΜΗ στο χ με τη εντολή Διάβασε η "λύσης μαθητή" δεν το επεξεργάζεται καθόλου. Η "σωστή λύση" όμως το επεξεργάζεται στο ΑΛΛΙΩΣ και εμφανίζει... παπάδες.

Αντίστοιχα στη δεύτερη άσκηση η δική σου λύση κάνει το ίδιο "λάθος". Στο ΑΛΛΙΩΣ θα επεξεργαστεί τιμές του χ διαφορετικές από τις "Φ" και "Α", ενώ η λύση του άλλου παιδιού δε θα επεξεργαστεί τιμές εισόδου άλλες από τις "Φ", "Α", "Μ".

Πιστεύω κατάλαβες τις διαφορές των λύσεων. Τώρα σχετικά με το σωστό και λάθος. Επειδή μάλλον οι ασκήσεις αυτές δόθηκαν στη Δομή Επιλογής, όπου ο έλεγχος δεδομένων δεν πολυχρησιμοποιείται από πολλούς καθηγητές, γιατί θα χρησιμοποιηθεί περισσότερο στη Δομή Επανάληψης υπάρχει μια τάση στη λύση των ασκήσεων να θεωρούμε ότι οι τιμές εισόδου είναι "φυσιολογικές" δηλαδή μη αρνητικές στην πρώτη άσκηση και όχι διαφορετικές από "Φ", "Α", "Μ" στην δεύτερη. Αν ισχύει αυτό τότε οι λύσεις είναι όλες εξίσου σωστές. Όχι όμως ισοδύναμες. Ο λόγος είναι ότι αν δοθούν μη "φυσιολογικές" (ή μη αναμενόμενες) τιμές τότε τα αποτελέσματα που βγάζουν θα είναι διαφορετικά.

Ελπίζω να βοήθησα.

alexis_zoure

Απλα την "λυση μαθητη" στην πρωτη μου την πηρε λαθος!!! Δεν ζηταει ελενγχο ορθοτητας και μας ειπε οτι θεωρουμε οτι ο χρηστης δινει μονο επιτρεπομενες τιμες...Σε αυτη την περιπτωση ειναι ισοδυναμες? Ποια ειναι η πιο ισχυρη?
Παντως σημερα (αν και αρρωστος πηγα μια ωρα για να γραψω) μας εβαλε στο τεστ μια κλιμακωτης χρεωσης,την ελυσα με την "σωστη λυση" της πρωτης και πηρα ολες τις μοναδες ενω ενα αλο παιδι που εκανε την "λυση μαθητη" της εκοψε μορια...
Αλεξανδρος Ζουρελιδης
Μαθητης Γ Λυκειου

georgesp

Αλέξανδρε

Ο μόνος λόγος που μπορώ να σκεφτώ για τον οποίο θεωρεί λανθασμένη τη "λύση μαθητή", εφόσον οι τιμές εισόδου υποθέτουμε ότι είναι οι επιτρεπόμενες, προέρχεται από το εξής σημείο στο βιβλίο σας:
σελίδα 172, σχολικό βιβλίο

"Ένα συχνό λάθος που παρατηρείται στα προγράμματα είναι ο έλεγχος περιττών συνθηκών. Οι επιπλέον έλεγχοι αυξάνουν την πολυπλοκότητα του προγράμματος".

Στη συνέχεια δίνει ένα παράδειγμα πολλαπλής επιλογής αντίστοιχο με την άσκηση που έγραψες.

Επειδή, λοιπόν, το βιβλίο σας αναφέρει ότι είναι ΣΥΧΝΟ ΛΑΘΟΣ η εμφάνιση περιττών συνθηκών και εφόσον ο καθηγητής σου στην άσκηση κάνει την υπόθεση ότι οι τιμές εισόδου θα είναι οι "πρέπουσες", τότε υποθέτω ότι ο λόγος που θεωρεί λανθασμένη τη "λύση μαθητή" και κόβει μονάδες είναι αυτός. Οι περιττές συνθήκες. Οι οποίες δεν είναι καθόλου περιττές, εάν δεν έχουμε κάνει την υπόθεση ότι πχ οι τιμές εισόδου θα είναι >=0.

Οι εκφωνήσεις στις πανελλήνιες συνήθως είναι ιδιαίτερα ακριβείς και σαφής, οπότε θα ξέρεις αν πρέπει να ελέγχεις για "μη πρέπουσες τιμές". Από την άλλη αν έχεις καταλάβει :
1. Γιατί είναι περιττές οι συνθήκες που λέει το βιβλίο σας
2. Τι ακριβώς ελέγχεις με κάθε Αν...Αλλιώς_Αν κλπ
τότε δεν έχεις πρόβλημα. Διαβάζεις την άσκηση. Κάνεις τους ελέγχους ορθότητας δεδομένων (εάν απαιτείται) και μετά χρησιμοποιείς την πολλαπλή επιλογή χωρίς τις περιττές συνθήκες.

kkoutsak

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

alexis_zoure

Προσωπικα εγω στο σχολειο τις λυνω οπως τις θελει αυτος αφου και δεν εχουμε διδαχθει ελεγχο εγκροτητας και μας λεει παντα οτι παντα ο,τι εισαγει ειναι μεσα στα πλαισια των επιτρεπομενων τιμων...Στο φροντιστηριο παλι χρησημοποιω σχεδον παντα ελεγχο εγκυροτητας αφου τον εχω διδαχθει για να ειμαι παντα σωστος...Ομως αν δεν ζητειται μηπως μπορει να θεωρηθει περιττος?
Αλεξανδρος Ζουρελιδης
Μαθητης Γ Λυκειου

georgesp

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

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

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

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

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

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

kkoutsak

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