giorgosmp Δημοσ. 13 Φεβρουαρίου 2015 Δημοσ. 13 Φεβρουαρίου 2015 Καλησπερα παιδια! Οπως καταλαβαινετε ειμαι σε σχολη μηχανικων πληροφορικης και οπως καταλαβαινετε εχω και προγραμματισμο.. Στην εξεταστικη μου ζητηθηκε ενα προγραμμα που να δινω 3 αριθμους και να βγαζει μεγαλυτερο μεσαιο μικροτερο σε Pyhton η javascript... Επελεξα Python διοτι τα πηγαινω πολυ καλυτερα και πηρα στο παρακατω προγραμμα 3/10... εσεις τι βαθμο θα βαζατε μονο απο περιεργεια γιατι το εχω δοκιμασει 1000 φορες και δουλευει ρολοι.. Να πω οτι ειμαι τελείως αρχαριος! print("Δώσε 3 αριθμούς") a=input() b=input() c=input() max=a if max<b: max=b if max<c: max=c if a<b<max: mid=b if a<c<max: mid=c if b<a<max: mid=a if b<c<max: mid=c if c<a<max: mid=a if c<b<max: mid=b if a<mid<max: min=a if b<mid<max: min=b if c<mid<max: min=c print("Τελικό αποτέλεσμα") print(max) print(mid) print(min)
imni Δημοσ. 13 Φεβρουαρίου 2015 Δημοσ. 13 Φεβρουαρίου 2015 Ειναι πολυ απλο προγραμμα..γιατι θες να το βαθμολογισουμε?
giorgosmp Δημοσ. 13 Φεβρουαρίου 2015 Μέλος Δημοσ. 13 Φεβρουαρίου 2015 Ειναι πολυ απλο προγραμμα..γιατι θες να το βαθμολογισουμε? Γιατι ειμαι σιγουρος δεν αξιζα 3/10 που μου εβαλε ο καθηγητης.... Και θελω να δω εσεις σαν κριτες που κατι ξερετε πως θα με βαθμολογουσατε... Η πειτε μου απλα αν θα μου βαζατε λιγοτερο η περισσοτερο απο 3!
Anubis13 Δημοσ. 13 Φεβρουαρίου 2015 Δημοσ. 13 Φεβρουαρίου 2015 Για 3 στα 10 δεν ειναι αλλα περα απο την ορθοτητα τον ενδιαφερει και πως το εγραψες. Υπαρχει συντομοτερος και καλυτερος τροπος να γραφει. Στην τελικη εσυ οταν συγκρινεις 3 αριθμους πως το κανεις?
instasomniac Δημοσ. 13 Φεβρουαρίου 2015 Δημοσ. 13 Φεβρουαρίου 2015 δε γνωρίζω python αλλά αν το προγραμμα δουλευει, ο μοναδικος λογος που μου ερχεται για να παρεις 3/10 είναι επειδη ο κωδικας σου δεν ακολουθει τις καλυτερες πρακτικες της γλωσσας. p.s. δε παιζει να μην υπαρχει max και min συναρτηση στη python. edit: οπως είπε και ο λορδος ανουβις, υπαρχει πολυ πιο καλος τροπος να γραφει. Αν και το προγραμμα λειτουργει, μπορεις ευκολα να αποφύγεις κωδικα. Σε αλγοριθμικο επιπεδο, το προγραμματακι σου δεν ειναι τελειο αφου εχεις πεταξει 11 λογικους ελεγχους που ολοι θα τρεξουν ενω καποιοι θα μπορουσαν να ειχαν αποφευχθει
giorgosmp Δημοσ. 13 Φεβρουαρίου 2015 Μέλος Δημοσ. 13 Φεβρουαρίου 2015 Για 3 στα 10 δεν ειναι αλλα περα απο την ορθοτητα τον ενδιαφερει και πως το εγραψες. Υπαρχει συντομοτερος και καλυτερος τροπος να γραφει. Στην τελικη εσυ οταν συγκρινεις 3 αριθμους πως το κανεις? Μα το εχω τρεξει χιλιες φορες στο προγραμμα τον windows (python 3.4.2) και δουλευει κανονικοτατα χωρις κανενα προβλημα... Οκ το πιστευω οτι υπαρχει συντομοτερος τροπος αλλα οπως ειπα ειμαι αρχαριος και δεν ξερω και πολλα.. σιγουρα παντως ετσι οπως το εχω κανει ειναι σωστο και απλα ελεγχο ολες τις πιθανοτητες... Τι να πω ευχαριστω παντως που μου λετε οτι δεν εχω κανει καπου λαθος για να με κοψει και με το δικιο του...
Papakaliati Δημοσ. 13 Φεβρουαρίου 2015 Δημοσ. 13 Φεβρουαρίου 2015 Λογικο να παρεις 3 εφοσον ελυσες την ασκηση με τον χειροτερο δινατο τροπο. Δεν εχει σημασια το οτι βρηκες το αποτελεσμα, αυτο και ενα παιδακι του δημοτικου μπορει να το βγαλει, το θεμα ειναι να το βγαλεις με τον πιο σωστο τροπο, και αυτο βαθμολογισε o καθηγητης σου. Αμα σου βαζεις στην σειρα 10 νουμερα πχ με την λυση σου θα επρεπε να γραψεις 200 γραμμες κωδικα... Ο σωστος τροπος θα ητανε να βαλεις τα δεδομενο σε μια λιστα και να τα κανεις sort. a=input() b=input() c=input() var list = [a,b,c ] list.sort(); list.reverse(): for(var i = 0; i < list.length; i++) { print(list)} Και για αυτο πηρες 3 και οχι 0 στην τελικη, επειδη τρεχει. 5
Apoll Δημοσ. 13 Φεβρουαρίου 2015 Δημοσ. 13 Φεβρουαρίου 2015 1/10 θα σου έδινα. Γιατί;Γιατί απλά έχασες την ουσία του προβλήματος. Τί θα έκανες αν σου έλεγε 100 αριθμούς; Θα έγραφες 1000 if statements;Το πρόβλημα είναι εύκολο, σου ζητά να βρεις τον μέγιστο και τον μεσαίο και τον μικρότερο σε λίστα 3 αριθμών.Για το μέγιστο, πέρνεις την λίστα και χρησιμοποιεί στην Python την μέθοδο max()Για τον μικρότερο πέρνεις την λίστα και χρησιμοποιείς την μέθοδο min()Για τον median η Python 3.4 και μετά έχει το statistics built-in οπότε μπορείς να χρησιμοποιείσεις την μέθοδο statistics.median. 2
Anubis13 Δημοσ. 13 Φεβρουαρίου 2015 Δημοσ. 13 Φεβρουαρίου 2015 Μα το εχω τρεξει χιλιες φορες στο προγραμμα τον windows (python 3.4.2) και δουλευει κανονικοτατα χωρις κανενα προβλημα... Οκ το πιστευω οτι υπαρχει συντομοτερος τροπος αλλα οπως ειπα ειμαι αρχαριος και δεν ξερω και πολλα.. σιγουρα παντως ετσι οπως το εχω κανει ειναι σωστο και απλα ελεγχο ολες τις πιθανοτητες... Τι να πω ευχαριστω παντως που μου λετε οτι δεν εχω κανει καπου λαθος για να με κοψει και με το δικιο του... Ναι εγω το καταλαβαινω οτι εισαι αρχαριος για αυτο σου λεω εστω οτι εισαι εσυ σου δινουν 3 αριθμους, κανεις 11 ελεγχους για 3 αριθμους για να βρεις μικροτερο και μεγαλυτερο? Απλα και σε μας ετσι λειτουργουσε, αν το εκανες σωστα επαιρνες μεχρι Χ βαθμους, ολους τους επαιρνες με μια αποδοτικη και σωστη λυση.
giorgosmp Δημοσ. 13 Φεβρουαρίου 2015 Μέλος Δημοσ. 13 Φεβρουαρίου 2015 Λογικο να παρεις 3 εφοσον ελυσες την ασκηση με τον χειροτερο δινατο τροπο. Δεν εχει σημασια το οτι βρηκες το αποτελεσμα, αυτο και ενα παιδακι του δημοτικου μπορει να το βγαλει, το θεμα ειναι να το βγαλεις με τον πιο σωστο τροπο, και αυτο βαθμολογισε o καθηγητης σου. Αμα σου βαζεις στην σειρα 10 νουμερα πχ με την λυση σου θα επρεπε να γραψεις 200 γραμμες κωδικα... Ο σωστος τροπος θα ητανε να βαλεις τα δεδομενο σε μια λιστα και να τα κανεις sort. a=input() b=input() c=input() var list = [a,b,c ] list.sort(); list.reverse(): for(var i = 0; i < list.length; i++) { print(list) } Και για αυτο πηρες 3 και οχι 0 στην τελικη, επειδη τρεχει. μαλιστα δηλαδη μου λες στο τει που ειμαι χωρις να εχει διδαχτει αυτο εκανα κατι τετοιο.. Δεν λεω λογικο αλλα οπως ειπα ειμαι αρχαριος δεν ξερω ουτε καν τα περισσοτερα βασικα...
Papakaliati Δημοσ. 13 Φεβρουαρίου 2015 Δημοσ. 13 Φεβρουαρίου 2015 μαλιστα δηλαδη μου λες στο τει που ειμαι χωρις να εχει διδαχτει αυτο εκανα κατι τετοιο.. Δεν λεω λογικο αλλα οπως ειπα ειμαι αρχαριος δεν ξερω ουτε καν τα περισσοτερα βασικα... Για αυτο πηρες 3, επειδη δεν ξερεις οπως ειπες τα περισσοτερα βασικα. Και εφοσον δεν ξερεις τις λιστες ορθα επρεξε ο καθηγητης σου. Αλλωστε τωρα εμαθες κατι κανουργιο, οποτε σε καλο θα σου βγει. 2
giorgosmp Δημοσ. 13 Φεβρουαρίου 2015 Μέλος Δημοσ. 13 Φεβρουαρίου 2015 1/10 θα σου έδινα. Γιατί; Γιατί απλά έχασες την ουσία του προβλήματος. Τί θα έκανες αν σου έλεγε 100 αριθμούς; Θα έγραφες 1000 if statements; Το πρόβλημα είναι εύκολο, σου ζητά να βρεις τον μέγιστο και τον μεσαίο και τον μικρότερο σε λίστα 3 αριθμών. Για το μέγιστο, πέρνεις την λίστα και χρησιμοποιεί στην Python την μέθοδο max() Για τον μικρότερο πέρνεις την λίστα και χρησιμοποιείς την μέθοδο min() Για τον median η Python 3.4 και μετά έχει το statistics built-in οπότε μπορείς να χρησιμοποιείσεις την μέθοδο statistics.median. Εισαι σκληρος για εναν αρχαριο φιλε.. Αν το πηγαινες ετσι καθε χρονο θα ειχες τους διπλασιους φοιτητες.. Αλλα ναι οντως εχεις δικιο αν μου εδινε 100 αριθμους... Σε ευχαριστω παντως για την απαντηση... Για αυτο πηρες 3, επειδη δεν ξερεις οπως ειπες τα περισσοτερα βασικα. Και εφοσον δεν ξερεις τις λιστες ορθα επρεξε ο καθηγητης σου. Αλλωστε τωρα εμαθες κατι κανουργιο, οποτε σε καλο θα σου βγει. Ενταξει δεν εχεις αδικο... παντως στο δικο σου προγραμμα μου εβγαζε εδω λαθος -> var list = [a,b,c] μαλλον απο κεκτημενη ταχυτητα!!
migf1 Δημοσ. 13 Φεβρουαρίου 2015 Δημοσ. 13 Φεβρουαρίου 2015 (επεξεργασμένο) Φίλε Γιώργο, τα πάντα εξαρτώνται από το τι σας έχει διδάξει ο καθηγητής μέχρι τώρα και άρα τι περιμένει από εσάς. Άρα σωστός και λάθος τρόπος δεν υπάρχει αντικειμενικά εδώ. Υπάρχει υποκειμενικά, με σημείο αναφοράς την διδακτέα ύλη. Χωρίς λοιπόν να ξέρουμε αυτές τις πληροφορίες, και σε αντίθεση με όσους σου είπαν εδώ ότι έπρεπε να σκεφτείς το τι θα γινόταν αν αντί για 3 νούμερα είχες ν, εγώ θα σου πω πως καλά έκανες και έμεινες στα 3 μόνο νούμερα. Για τον απλούστατο λόγο ότι η άσκηση δεν σου ζήτησε ν νούμερα, σου ζήτησε 3 νούμερα. Αν έχετε μάθει τις max() and min() (που το θεωρώ αρκετά πιθανό) τότε μια πιο "κομψή" λύση θα μπορούσε να είναι κάτι σαν το παρακάτω: maximum = max( a, max(b,c) ) minimum = min( a, min(b,c) ) middle = a + b + c - minimum - maximum Αν δεν έχετε μάθει τις min() και max() αλλά έχετε μαθει να φτιάχνετε συναρτήσεις, θα μπορούσες να φτιάξεις 2 δικές σου υλοποιήσεις αυτών των 2 συναρτήσεων. Επεξ/σία 13 Φεβρουαρίου 2015 από migf1 4
giorgosmp Δημοσ. 13 Φεβρουαρίου 2015 Μέλος Δημοσ. 13 Φεβρουαρίου 2015 Φίλε Γιώργο, τα πάντα εξαρτώνται από το τι σας έχει διδάξει ο καθηγητής μέχρι τώρα και άρα τι περιμένει από εσάς. Άρα σωστός και λάθος τρόπος δεν υπάρχει αντικειμενικά εδώ. Υπάρχει υποκειμενικά, με σημείο αναφοράς την διδακτέα ύλη. Χωρίς λοιπόν να ξέρουμε αυτές τις πληροφορίες, και σε αντίθεση με όσους σου είπαν εδώ ότι έπρεπε να σκεφτείς το τι θα γινόταν αν αντί για 3 νούμερα είχες ν, εγώ θα σου πω πως καλά έκανες και έμεινες στα 3 μόνο νούμερα. Για τον απλούστατο λόγο ότι η άσκηση δεν σου ζήτησε ν νούμερα, σου ζήτησε 3 νούμερα. Αν έχετε μάθει τις max() and min() (που το θεωρώ αρκετά πιθανό) τότε μια πιο "κομψή" λύση θα μπορούσε να είναι κάτι σαν το παρακάτω: maximum = max( a, max(b,c) ) minimum = min( a, min(b,c) ) middle = a + b + c - min - max Αν δεν έχετε μάθει τις min() και max() αλλά έχετε μαθει να φτιάχνετε συναρτήσεις, θα μπορούσες να φτιάξεις 2 δικές σου υλοποιήσεις αυτών των 2 συναρτήσεων. Να πω πως αυτο ηταν στο εργαστηριο... Ναι ειχαμε μαθει max min θεωρια αλλα δεν μας ειχα πει κατι για ποιο απλο τροπο.. Τι να πω θα παω να τον βρω απο κοντα γιατι δεν γινετε να το δηλωσω για 3η φορα...
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα