PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Probleem JavaScriptiga
Postitaja: Repentinus 2007-03-19 00:54:15
Tere, olen programmeerimises suht algaja ja tean ka, et see ei lähe päris teemaga kokku, aga ehk keegi saab aidata. Tegelen hetkel kalkulaatori tegemisega, nii palju valmis:
<script language="javascript">

var eelmine = 0;
var tehe = '+';

function Arvuta() {
var x = document.getElementById('x');
teine = parseFloat(x.value);
if(tehe == '+') {
x.value = eelmine + teine;
eelmine = x.value;
} else if(tehe == '-') {
x.value = eelmine - teine;
eelmine = x.value;
} else if(tehe == '*') {
x.value = eelmine * teine;
eelmine = x.value;
} else if(tehe == '/') {
x.value = eelmine / teine;
eelmine = x.value;
} else if(tehe == '*') {
x.value = eelmine * eelmine;
eelmine = x.value;
};

};

function Liida() {
var x = document.getElementById('x');
Arvuta();
eelmine = parseFloat(x.value);
tehe = '+';
x.value = '';
x.focus();
};

function Lahuta() {
var x = document.getElementById('x');
Arvuta();
eelmine = parseFloat(x.value);
tehe = '-';
x.value = '';
x.focus();
};

function Korruta() {
var x = document.getElementById('x');
Arvuta();
eelmine = parseFloat(x.value);
tehe = '*';
x.value = '';
x.focus();
};

function Jaga() {
var x = document.getElementById('x');
Arvuta();
eelmine = parseFloat(x.value);
tehe = '/';
x.value = '';
x.focus();
};
</script>


Vaja oleks:

  • Ruut
  • Kuup
  • Ruutjuur
  • Astendamine
  • Tehete prioriteetsuse arvestamine


Aitäh võimalikule abistajale.

Viimati muudetud: 19-03-2007 00:58:47
Muutja: Repentinus
Põhjus:

RE: Probleem JavaScriptiga
Postitaja: asdfff 2007-03-19 00:57:43
TSITEERITUD:
Tere, olen programmeerimises suht algaja ja tean ka, et see ei lähe päris teemaga kokku, aga ehk keegi saab aidata. Tegelen hetkel kalkulaatori tegemisega, nii palju valmis:
<script language="javascript">

var eelmine = 0;
var tehe = '+';

function Arvuta() {
var x = document.getElementById('x');
teine = parseFloat(x.value);
if(tehe == '+') {
x.value = eelmine + teine;
eelmine = x.value;
} else if(tehe == '-') {
x.value = eelmine - teine;
eelmine = x.value;
} else if(tehe == '*') {
x.value = eelmine * teine;
eelmine = x.value;
} else if(tehe == '/') {
x.value = eelmine / teine;
eelmine = x.value;
} else if(tehe == '*') {
x.value = eelmine * eelmine;
eelmine = x.value;
};

};

function Liida() {
var x = document.getElementById('x');
Arvuta();
eelmine = parseFloat(x.value);
tehe = '+';
x.value = '';
x.focus();
};

function Lahuta() {
var x = document.getElementById('x');
Arvuta();
eelmine = parseFloat(x.value);
tehe = '-';
x.value = '';
x.focus();
};

function Korruta() {
var x = document.getElementById('x');
Arvuta();
eelmine = parseFloat(x.value);
tehe = '*';
x.value = '';
x.focus();
};

function Jaga() {
var x = document.getElementById('x');
Arvuta();
eelmine = parseFloat(x.value);
tehe = '/';
x.value = '';
x.focus();
};
</script>


Vaja oleks:

  • Ruut
  • Kuup
  • Ruutjuur
  • Astendamine
  • Tehete prioriteetsuse arvestamine


Aitähh võimalikule abistajale.


Alustame sellest, et aitäh mitte aitähh.
RE: Probleem JavaScriptiga
Postitaja: ffffdsssa 2007-03-19 14:12:53
TSITEERITUD:


Alustame sellest, et aitäh mitte aitähh.

Alustame sellest, et aitäh, mitte aitähh.
RE: Probleem JavaScriptiga
Postitaja: Keegi_Teine 2007-03-19 15:44:29
RE: Probleem JavaScriptiga
Postitaja: Repentinus 2007-03-19 19:01:19
Aitäh, sain siit abi natuke, aga ootamatult tekkis väike probleem, vaadake, tehke mõni tehe, liitke ja siis korrutage näiteks, näete viga, kas keegi oskab ära parandada:

http://ho7.awardspace.com/calc.htm
RE: Probleem JavaScriptiga
Postitaja: ninnunännu 2007-03-19 19:59:21
TSITEERITUD:
Aitäh, sain siit abi natuke, aga ootamatult tekkis väike probleem, vaadake, tehke mõni tehe, liitke ja siis korrutage näiteks, näete viga, kas keegi oskab ära parandada:

http://ho7.awardspace.com/calc.htm
Oot, esmalt teed arvutuse ja siis leiad tehte... Miks nii?
RE: Probleem JavaScriptiga
Postitaja: Repentinus 2007-03-19 21:50:19
TSITEERITUD:
Oot, esmalt teed arvutuse ja siis leiad tehte... Miks nii?


Ei:

Sisestad arvu
Vajutad tehteklahvi
Sisestad arvu
Vajutad arvutus
Viga ilmneb:
Uut thete sama moodi tehes.
RE: Probleem JavaScriptiga
Postitaja: Keegi_Teine 2007-03-20 12:45:06
"x has no properties"
selline error
RE: Probleem JavaScriptiga
Postitaja: axelpaan_ 2007-03-20 13:10:02
tegin ka kunagi ammu kalkulaatori
http://www.axel.ee/calc/
võib-olla saad seal paar ideed juurde
RE: Probleem JavaScriptiga
Postitaja: Repentinus 2007-03-21 13:38:28
TSITEERITUD:
"x has no properties"
selline error

Leidsin selle natuke enne, see viga oli html'is. Tänud ka axelplaanile.
RE: Probleem JavaScriptiga
Postitaja: kommija 2007-03-22 13:39:47
TSITEERITUD:


Alustame sellest, et aitäh mitte aitähh.

Sa oled ikka ohmu küll. See on ikkagi programmeerimisalane foorum.
RE: Probleem JavaScriptiga
Postitaja: asdasdf 2007-03-22 17:11:20
TSITEERITUD:

Sa oled ikka ohmu küll. See on ikkagi programmeerimisalane foorum.

Programeerimisel võib üks vale täht kogu süsteemi metsa viia.
RE: Probleem JavaScriptiga
Postitaja: eriti näiteks kommentaarides :P 2007-03-23 12:50:22
TSITEERITUD:
Programeerimisel võib üks vale täht kogu süsteemi metsa viia.
eriti näiteks kommentaarides :P
RE: Probleem JavaScriptiga
Postitaja: tolbajob 2007-03-23 13:31:42
Mina lasen kõik kommentaarid filoloogist keeletoimetajal üle kontrollida.
RE: Probleem JavaScriptiga
Postitaja: Asdffff 2007-03-23 17:49:03
Tee seda, palun.
RE: Probleem JavaScriptiga
Postitaja: tolbajob 2007-03-23 20:34:30
TSITEERITUD:
Tee seda, palun.

Nii, kommentaarid on nüüd nii perfektsed, et sellest tuleb kõige vingem programm.
Aga kuidas ma oma programmi tööle saan?
Pliiiz!

NB! ASJAGA ON KIIRE!!!!!!!!!
RE: Probleem JavaScriptiga
Postitaja: Repentinus 2007-03-24 03:44:40
TSITEERITUD:

Nii, kommentaarid on nüüd nii perfektsed, et sellest tuleb kõige vingem programm.
Aga kuidas ma oma programmi tööle saan?
Pliiiz!

NB! ASJAGA ON KIIRE!!!!!!!!!


Kuidas sinu programm minu probleemiga seondub?
RE: Probleem JavaScriptiga
Postitaja: hmzz 2007-03-24 09:00:33
TSITEERITUD:


Kuidas sinu programm minu probleemiga seondub?


Sul on IKKA VEEL see probleem? Sel juhul äkki teeks väikse guugelduse teemal "javascript calculator", saad ideid niiet tapab. Siin ei tee keegi sinu eest seda ära.
RE: Probleem JavaScriptiga
Postitaja: Suxxor 2007-03-24 23:20:52

<html><head>


<meta name="author" content="Heiki Ojasild"><title>Kalkulaator</title></head><body>
<script language="javascript">

var eelmine = 0;
var tehe = '+';

function Arvuta() {
var x = document.getElementById('x');
teine = parseFloat(x.value);
if(tehe == '+') {
x.value = eelmine + teine;
eelmine = x.value;
} else if(tehe == '-') {
x.value = eelmine - teine;
eelmine = x.value;
} else if(tehe == '*') {
x.value = eelmine * teine;
eelmine = x.value;
} else if(tehe == '/') {
x.value = eelmine / teine;
eelmine = x.value;
} else if(tehe == 'p') {
x.value = Math.pow(eelmine,teine);
eelmine = x.value;
}
eelmine=0;
tehe='+';

}

function Liida() {
var x = document.getElementById('x');
Arvuta();
eelmine = parseFloat(x.value);
tehe = '+';
x.value = '';
x.focus();
}

function Lahuta() {
var x = document.getElementById('x');
Arvuta();
eelmine = parseFloat(x.value);
tehe = '-';
x.value = '';
x.focus();
}

function Korruta() {
var x = document.getElementById('x');
Arvuta();
eelmine = parseFloat(x.value);
tehe = '*';
x.value = '';
x.focus();
}

function Jaga() {
var x = document.getElementById('x');
Arvuta();
eelmine = parseFloat(x.value);
tehe = '/';
x.value = '';
x.focus();
}

function Astmesse(y) {
var x = document.getElementById('x');
x.value = Math.pow(parseFloat(x.value),y);
}

function Astenda() {
var x = document.getElementById('x');
Arvuta();
eelmine = parseFloat(x.value);
tehe = 'p';
x.value = '';
x.focus();
}
</script>

<form method="post" action="--WEBBOT-SELF--">
<p>
<input id="x" size="20" type="text">
</p>
<p>
<input value="+" name="B3" onclick="Liida()" type="button">
<input value="-" name="B4" onclick="Lahuta()" type="button">
<input value="*" name="B5" onclick="Korruta()" type="button">
<input value="/" name="B6" onclick="Jaga()" type="button">
<input value="sqrt" name="B7" onclick="Astmesse(0.5)" type="button">
<input value="^2" name="B8" onclick="Astmesse(2)" type="button">
<input value="^3" name="B9" onclick="Astmesse(3)" type="button">
<input value="^" name="B10" onclick="Astenda()" type="button">
<input value="Arvuta" name="B11" onclick="Arvuta()" type="button">
</p>
</form>
<p></p><div id="d1">NB!</div> Kalkulaator ei arvesta tehete prioriteestsust.(Tehted tehakse sisestatud järjekorras)<p></p></body></html>


Nullisin Arvuta() all eelmise ja tehte ära, see parandab asja.

Tehete järjekorra jaoks pead oma üllast progret põhimõtteliselt muutma. Ilmselt tuleb teha nullimisklahv ja täisarvu eelmine asemel tuleb kasutusele võtta täisarvude järjend ja tehete järjend. Nüüd nendest hakkad hiljem prioriteetsemaid tehteid välja sorteerima.

Nagu näed, äärmiselt ebamugavaks läheb ja põhjuseks on see, et niiviisi ei tehta seda asja. Postitatud link http://www.axel.ee/calc/ on oma lakoonilisuses musternäidis, milline peaks kalkulaator olema. Nagu näha, kõigepealt kirjutab kasutaja ühe stringi (soovi korral JS nuppude abil) ja see string antakse eval()-ile ette. Kui tegijal oleks olnud tahtmist, oleks ta võinud ka seda stringi teistmoodi töödelda.

Teine asi on üldises koodi kirjutamises. Nii JavaScriptis kui teistes C-süntaksiga keeltes ei kirjutata loogilise sulu järgi semikoolonit. Veel märgin, et funktsioonid Liida, Lahuta, Korruta, Jaga ja ka minu poolt lisatud Astenda on täpselt sama struktuuriga. Ainsaks erinevuseks nende vahel on muutuja tehe väärtus. Seega saaks need 5 funktsiooni ühe funktsiooniga kokku võtta, kusjuures muutuja tehe väärtus antakse ette.

Igatahes edu!
RE: Probleem JavaScriptiga
Postitaja: Repentinus 2007-03-28 15:29:32
Suured tänud.

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0865490436554