Καλησπέρα σας και ευχαριστώ πολύ για το υλικό που μοιράζεστε μαζί μας.
Θα ήθελα μια απάντηση από κάποιους που έχουν εμπειρία σε βαθμολογικά.
Έστω ότι στις εξετάσεις ζητάει συνάρτηση η οποία να δίνει το μεγαλύτερο μεταξύ δύο αριθμών ή τον ίδιο τον αριθμό αν οι αριθμοί είναι ίσοι.
Έστω λοιπόν οι παρακάτω απαντήσεις:
1η Απάντηση:
def max(a,b):
if a>b:
return a
return b
2η Απάντηση:
def max(a,b):
if a>b:
return a
else:
return b
2η Απάντηση:
def max(a,b):
if a>b:
return a
elif b>a:
return b
else:
return a
Θα έπαιρναν άριστα και οι τρεις απαντήσεις;
Ευχαριστώ
Η απάντηση στην ερώτησή σου είναι ΝΑΙ . Ζητείται ορθή αλγοριθμική προσέγγιση και όχι η βέλτιστη ή πιο έξυπνη.
Αυτή που θα προκαλούσε συζήτηση είναι η:
def max(a,b):
if a > b:return a
if b > a:return b
if a == b:return a
ή ακόμα περισσότερο η
def max(a,b):
if a > b:temp = a
if b > a:temp = b
if a == b:temp = a
return temp
Σε εργαστηριακές ασκήσεις καλό ήταν να αποφεύγαμε βέβαια το όνομα max καθόσον είναι <built-in function>
Καλημέρα σε όλους
Να ρωτήσω, η πρώτη λύση είναι σίγουρα σωστή ;; αν δώσουμε 7 και 5 πχ,πως θα γίνει η επιστροφή ;; γιατί ισχύει το if και θα πάει και στην κάτω εντολή ...
μάλλον είχες στο μυαλό σου αυτό
def max(a,b):
temp = a
if b > a:
temp = b
return temp
στο return ο δείκτης εκτέλεσης επιστρέφει στο κύριο πρόγραμμα δεν συνεχίζει
Ευχαριστώ
Παράθεση από: taxata στις 12 Μαΐου 2018, 08:52:37 ΠΜ
Η απάντηση στην ερώτησή σου είναι ΝΑΙ . Ζητείται ορθή αλγοριθμική προσέγγιση και όχι η βέλτιστη ή πιο έξυπνη.
Αυτή που θα προκαλούσε συζήτηση είναι η:
def max(a,b):
if a > b:return a
if b > a:return b
if a == b:return a
ή ακόμα περισσότερο η
def max(a,b):
if a > b:temp = a
if b > a:temp = b
if a == b:temp = a
return temp
Σε εργαστηριακές ασκήσεις καλό ήταν να αποφεύγαμε βέβαια το όνομα max καθόσον είναι <built-in function>
Ριψοκίνδυνη, , άσχημη αλλά σωστή. Κάνει την δουλειά που ζητήθηκε. Πρέπει να βαθμολογηθεί ως σωστή κατά την γνώμη μου.