Strategos Δημοσ. 15 Μαΐου 2008 Δημοσ. 15 Μαΐου 2008 Καλησπερα στην σχολη καναμε μια ασκηση που βρησκει το max απο 3 αριθμους σε html εμενα με τον δικο μου τροπο που ειναι ο πρωτος δουλεβε κανονικα αλλα οταν του εδινα 5-10-15 μου εβγαζε μεγαλυτερο το 5 ή διαφορετικων ψηφιων αριθμους. Εγραψα τωρα και τον τροπο του καθηγητή παλι το ιδιο λαθος μου βγαζει γιατί; ><HTML> <HEAD> <script language="JavaScript"> function a(){ a=prompt("ΔΩΣΕ ΑΡΙΘΜΟ","") } function b(){ b=prompt("ΔΩΣΕ ΑΡΙΘΜΟ","") } function c(){ c=prompt("ΔΩΣΕ ΑΡΙΘΜΟ","") } function max(){ max=0; if(a>b && a>c){ max=a;} if(b>a && b>c){ max=b;} if(c>a && c>{ max=c;} return max; } </script> </HEAD> <BODY> <FORM> <input type="button" value="A" onclick="a()"> <input type="button" value="B" onclick="b()"> <input type="button" value="C" onclick="c()"><br> <input type="button" value="MAX" onclick="form.test.value=max()"> <input type="test" name="test" size="20"> </FORM> </BODY> </HTML> ><HTML> <HEAD> <script language="JavaScript"> function a(){ a=prompt("ΔΩΣΕ ΑΡΙΘΜΟ","") } function b(){ b=prompt("ΔΩΣΕ ΑΡΙΘΜΟ","") } function c(){ c=prompt("ΔΩΣΕ ΑΡΙΘΜΟ","") } function max(){ max=a; if(b>max){ max=b;} if(c>max){ max=c;} return max; } </script> </HEAD> <BODY> <FORM> <input type="button" value="A" onclick="a()"> <input type="button" value="B" onclick="b()"> <input type="button" value="C" onclick="c()"><br> <input type="button" value="MAX" onclick="form.test.value=max()"> <input type="test" name="test" size="20"> </FORM> </BODY> </HTML>
alex2005 Δημοσ. 15 Μαΐου 2008 Δημοσ. 15 Μαΐου 2008 To πρόβλημά σου δεν είναι καθόλου κουφό είναι φυσιολογικότατο. Το λάθος είναι στο ότι δεν έχεις λάβει υπόψιν σου ότι η prompt επιστρέφει string. Οπότε όταν κάνεις τις συγκρίσεις στην max() τις κάνει ορθογραφικά. Και εκεί το 5 είναι μεγαλύτερο από το 15. Η λύση είναι να μετατρέψεις τα string σε int. Άρα πχ: a = parseInt(prompt("ΔΩΣΕ ΑΡΙΘΜΟ","")); Κάντο αυτό και στα b,c.
Strategos Δημοσ. 15 Μαΐου 2008 Μέλος Δημοσ. 15 Μαΐου 2008 οκ σε ευχαριστω, οχι τπτ γιατι ελεγε οτι εφτεγε ο τροπος ευρεσης του max που ειχα κανει αλλα μου φαινοτανε μια χαρα.
alex2005 Δημοσ. 15 Μαΐου 2008 Δημοσ. 15 Μαΐου 2008 Ωραίος καθηγητής....δεν κατάλαβε την απλούστατη και ορθότατη υλοποίησή σου,ενώ και αυτός έκανε το ίδιο ακριβώς λάθος με σένα.
antonl Δημοσ. 15 Μαΐου 2008 Δημοσ. 15 Μαΐου 2008 Γίνομαι ψείρας ίσως αλλά αν δώσεις 15,15,5 επιστρέφει μηδέν (αν είδα καλά). Οπότε αν θες να επιστρέφει πάντα σωστό αποτέλεσμα θα πρέπει να διακρίνεις κάποιες παραπάνω περιπτώσεις. Ο δεύτερος τρόπος δεν έχει αυτό το "bug". Επίσης διαβάζοντας το topic με έστειλες λίγο. Με javascript είναι όχι με HTML
Strategos Δημοσ. 16 Μαΐου 2008 Μέλος Δημοσ. 16 Μαΐου 2008 ισως αν εβαζα >= αντι για >. νομιζω τωρα ειναι οκ. function max(){ max=null; if(a>=b && a>=c){ max=a;} if(b>=a && b>=c){ max=b;} if(c>=a && c>={ max=c;} return max; } Επίσης διαβάζοντας το topic με έστειλες λίγο. Με javascript είναι όχι με HTML ναι εχεις δικαιο απλα ελεγα μπας και δεν ηταν το λαθος στο μερος του javascript αλλα μηπως ειχε σχεση με html. ετσι και αλλιως στο μαθημα java την εκανα.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.