Προς το περιεχόμενο

javascript


epiphone6

Προτεινόμενες αναρτήσεις

Δημοσ.

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

 

Code:

 

--------------------------------------------------------------------------------------------------

<html>

<head>

<title>javascript</title>

<script type="text/javascript">

 

function add_number(v)

{

 

}

 

function add_operator(v)

{

 

}

 

function clear_results()

{

 

}

 

function calculate_results()

{

 

}

</script>

 

</head>

<body>

<form name="mycalc">

<table width="100%" border="0" cellspacing="4" cellpadding="0">

<tr>

<td width="70">number a:</td>

<td width="100"><input type="text" name="na" value="" size="6" /></td>

<td rowspan="4">

<input type="button" name="c1" value="1" style="width:30px;"

onclick="add_number(this.value)"/>

<input type="button" name="c2" value="2" style="width:30px;" />

<input type="button" name="c3" value="3" style="width:30px;" />

<input type="button" name="c4" value="4" style="width:30px;" />

<br />

<input type="button" name="c5" value="5" style="width:30px;" />

<input type="button" name="c6" value="6" style="width:30px;" />

<input type="button" name="c7" value="7" style="width:30px;" />

<input type="button" name="c8" value="8" style="width:30px;" />

<br />

<input type="button" name="c9" value="9" style="width:30px;" />

<input type="button" name="c0" value="0" style="width:30px;" />

<input type="button" name="c" value="C" style="width: 64px;" />

<br />

<input type="button" name="sin" value="+" style="width:30px;" />

<input type="button" name="plin" value="-" style="width:30px;" />

<input type="button" name="epi" value="*" style="width:30px;" />

<input type="button" name="dia" value="/" style="width:30px;" />

<br />

<input type="button" name="ison" value="=" style="width: 132px;" />

</td>

</tr>

<tr>

<td width="70">operator:</td>

<td width="100"><input type="text" name="op" value="" size="6" /></td>

</tr>

<tr>

<td width="70">number b:</td>

<td width="100"><input type="text" name="nb" value="" size="6" /></td>

</tr>

<tr>

<td width="70">result:</td>

<td width="100"><input type="text" name="res" value="" size="6" /></td>

</tr>

</table>

</form>

</body>

</html>

 

---------------------------------------------------------------------------------------

 

το ζητούμενο του καθηγητή :

 

Σας δίνεται το αρχείο ask1.html.

Συμπληρώστε το αρχείο αυτό με κώδικα javascript (ή HTML αν χρειαστεί) έτσι ώστε να υλοποιήσετε την λειτουργικότητα μιας μικρής αριθμομηχανής. Η αριθμομηχανή θα λειτουργεί ως εξής:

• στο αρχικό στάδιο δεν υπάρχουν καθόλου τιμές όπως στην εικόνα 1.

• όταν ο χρήστης πατάει σε κουμπί με αριθμό τότε αυτός θα προστίθεται στο πεδίο number a (π.χ. αν ο χρήστης πατήσει διαδοχικά τα κουμπιά 1, 4, και 3 τότε το πεδίο number a θα έχει την τιμή 143)

• όταν ο χρήστης πατήσει έναν από τους τελεστές (+, -, *, /) τότε αυτός θα αναγράφεται στο πεδίο operator ( αν υπάρχει ήδη κάποιος τελεστής εκεί θα διαγράφεται ο παλιός και στη θέση του θα μπαίνει ο νέος)

• στη συνέχεια επαναλαμβάνεται η διαδικασία του πεδίου number a για το πεδίο number b.

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

• με το κουμπί C θα γίνεται καθαρισμός όλων των πεδίων της αριθμομηχανής

• φροντίστε να ενσωματώστε στον κώδικά σας μηνύματα λάθους τα οποία θα εμφανίζονται σε alert (Εικόνα 3). Λάθος μπορεί να συμβαίνει στις ακόλουθες περιπτώσεις:

o ο χρήστης επιλέγει τελεστή ενώ δεν έχει συμπληρωθεί το πεδίο number a ή υπάρχει τιμή στο πεδίο number b

o ο χρήστης επιλέγει το κουμπί = ενώ δεν έχουν συμπληρωθεί οι αντίστοιχες τιμές στα υπόλοιπα πεδία της αριθμομηχανής

 

--------------------------------------------------------------------------------------------------------------

 

Παιδιά ευχαριστώ πολύ

Δημοσ.

αν και δεν θα έπρεπε να ο κώδικάς σου..

αν έχω λάθη μην παρεξηγήσεις πρώτη φορά γράφω javascript

>
<html>
<head>
	<title>javascript</title>
	<script type="text/javascript">

		function add_number(v)
		{
			var na = document.getElementById('na');
			var nb = document.getElementById('nb');
			var op = document.getElementById('op');
			if(op.value=="")
			{				
				na.value=v;
			}
			else
			{
				nb.value=v;
			}
		}

		function add_operator(v)
		{
			var op = document.getElementById('op');
			op.value=v;
		}

		function clear_results()
		{
			var na = document.getElementById('na');
			var nb = document.getElementById('nb');
			var op = document.getElementById('op');
			var res = document.getElementById('res');
			na.value=nb.value=op.value=res.value="";
		}

		function calculate_results()
		{
			var na = parseInt(document.getElementById('na').value);
			var nb = parseInt(document.getElementById('nb').value);
			var op = document.getElementById('op').value;
			var res = document.getElementById('res');
			
			switch(op)
			{
				case '+':
					res.value=na+nb;
					break;
				case '-':
					res.value=na-nb;
					break;
				case '*':
					res.value=na*nb;
					break;
				case '/':
					res.value=na/nb;
					break;
				default:
					res.value="choose operator";
			}
			
		}
	</script>

</head>
<body>
	<form name="mycalc">
		<table width="100%" border="0" cellspacing="4" cellpadding="0">
			<tr>
				<td width="70">number a:</td>
				<td width="100">
					<input type="text" name="na" id="na" value="" size="6" /></td>
				<td rowspan="4">
					<input type="button" name="c1" value="1" style="width:30px;" 
					onclick="add_number(this.value)"/>
					<input type="button" name="c2" value="2" style="width:30px;" 
					onclick="add_number(this.value)"/>
					<input type="button" name="c3" value="3" style="width:30px;" 
					onclick="add_number(this.value)"/>
					<input type="button" name="c4" value="4" style="width:30px;" 
					onclick="add_number(this.value)"/>
					<br />
					<input type="button" name="c5" value="5" style="width:30px;" 
					onclick="add_number(this.value)"/>
					<input type="button" name="c6" value="6" style="width:30px;" 
					onclick="add_number(this.value)"/>
					<input type="button" name="c7" value="7" style="width:30px;" 
					onclick="add_number(this.value)"/>
					<input type="button" name="c8" value="8" style="width:30px;" 
					onclick="add_number(this.value)"/>
					<br />
					<input type="button" name="c9" value="9" style="width:30px;" 
					onclick="add_number(this.value)"/>
					<input type="button" name="c0" value="0" style="width:30px;" 
					onclick="add_number(this.value)"/>
					<input type="button" name="c" value="C" style="width: 64px;" 
					onclick="clear_results()"/>
					<br />
					<input type="button" name="sin" value="+" style="width:30px;" 
					onclick="add_operator(this.value)"/>
					<input type="button" name="plin" value="-" style="width:30px;" 
					onclick="add_operator(this.value)"/>
					<input type="button" name="epi" value="*" style="width:30px;" 
					onclick="add_operator(this.value)"/>
					<input type="button" name="dia" value="/" style="width:30px;" 
					onclick="add_operator(this.value)"/>
					<br />
					<input type="button" name="ison" value="=" style="width: 132px;" 
					onclick="calculate_results()"/>
				</td>
			</tr>
			<tr>
				<td width="70">operator:</td>
				<td width="100">
					<input type="text" name="op" id="op" value="" size="6" /></td>
			</tr>
			<tr>
				<td width="70">number b:</td>
				<td width="100">
					<input type="text" name="nb" id="nb" value="" size="6" /></td>
			</tr>
			<tr>
				<td width="70">result:</td>
				<td width="100">
					<input type="text" name="res" id="res" value="" size="6" /></td>
			</tr>
		</table>
	</form>
</body>
</html>

Δημοσ.

ελπίζω μονάχα να κάτσεις να διαβάσεις τον κώδικα και να κατανοήσεις τι κάνει..

Πολλά θες. Το μόνο που θα τον αγχώνει ειναι αν υπάρχουν συμφοιτητες που διαβάζουν Ιnsomnia και σκάσουν και άλλα γραπτά με την ίδια απάντηση.

Δημοσ.

Φίλε μου ευχαριστώ πολύ για την βοήθεια. Είναι άψογο! αλλά, αν είναι ευκολο πες μου τι να αλλάξω στον κώδικο ώστε στα πεδία number a & number b να δέχονται παραπάνω από ένα χαρακτήρα.πχ να μπορεί να γίνει η πράξη 156 + 23... ευχαριστώ και πάλι

 

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

Δημοσ.

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

τέλος πάντων.

>
if(op.value=="")
{                               
  na.value+=v;
}
else
{
  nb.value+=v;
}

Δημοσ.

 

 

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

 

προφανως δεν κανεις για την συγκεκριμενη σχολη.

 

 

MeTaXaS4 απορω με την υπομονη σου. Ειναι ξεκαθαρο οτι ο topic starter δεν εχει καμια διαθεση να κατανοησει ουτε μια γραμμη απο αυτα που του εγραψες.

Δημοσ.

φίλε το ξέρω , αλλά μιας και δεν είχα ξανά γράψει javascript (δεν είχε τύχει) είπα να την πιάσω να δω την δυσκολία της έστω και σε αυτό το απλό κομμάτι..

Δημοσ.

Είσαι αστέρι στην javascript φίλε!!!!

Και τώρα που μελέτησε και κατάλαβε τον κώδικα ας βάλει και ένα κουμπάκι για πράξεις με τους αρνητικούς αριθμούς. :rolleyes:

Αρχειοθετημένο

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

  • Δημιουργία νέου...