Javascript számolás
Sziasztok!
Nem régen tanulom a Javascriptet és valakivel konzultálnom kellene hogy előrébb hajtson. Már vért izzadtam és nem tudok rájönni mi lehet a hiba. Ez betudható a Javascritptben való járatlanságomnak is. Legyetek szivesek tekintsétek meg az alábbi kódot. Mi lehet a hiba?
Ez egy súlyozott átlagszámoló lenne de nem akar összejönni.
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="hu-hu" />
</head>
<body>
<script LANGUAGE="Javascript" type="text/javascript">
var szam = 0;
var jegy = new Array();
var kredit = new Array();
var tkredit = new Array(); //teljesített kredit
var szorzat = new Array();
function Adok() {
//bekéri és kiírja az adatokat, ha nincs akkor jelez
ajegy = document.kreditszamolo.erdemjegy.value;
akredit = document.kreditszamolo.kreditek.value;
if (ajegy > " " && akredit > " ") {
if (0 < ajegy < 6 && 0 < akredit < 10) {
jegy[szam] = ajegy;
kredit[szam] = akredit;
szam++;
}
else alert("Betűkből nem lehet súlyozott átlagot számolni")
}
else alert("Nem írtál be adatot")
document.kreditszamolo.kiijegy.value = jegy.join("\n");
document.kreditszamolo.kiikredit.value = kredit.join("\n");
document.kreditszamolo.erdemjegy.value = ("");
document.kreditszamolo.kreditek.value = ("");
}
function Clear() {
/*document.kreditszamolo.kiijegy.value = ("");
document.kreditszamolo.kiikredit.value = ("");*/
kredit = [];
jegy = [];
tkredit = [];
szorzat = [];
document.kreditszamolo.kiijegy.value = jegy;
document.kreditszamolo.kiikredit.value = kredit;
}
function Szamol() {
/*A függvény korrigált súlyozott átlagot fog számolni:
sum (teljesített kredit * jegy) / felvett kredit*/
//Összeadja a kredit tömböt
var felvettkredit = 0;
for (i=0; i<kredit.length; i++) {
felvettkredit += kredit[i];
}
alert("Felvett kredit összértéke: " + felvettkredit);
//A teljesített krediteteket pakolja be a tkredit tömbbe
for (i=0; i<kredit.length; i++) {
if (jegy[i] == 1) {
kredit[i] = tkredit[i];
tkredit[i] = 1;
}
}
//A számolás első lépéseként a jegyet összeszorozza a teljesített kredittel
do {
i = 0;
szorzat[i] = tkredit[i] * jegy[i];
i++;
}
while (szorzat[i] > " ");
//A szorzat tömb elemeit összeadja
var sumszorzat = 0;
for (i=0; i<szorzat.length; i++)
{
sumszorzat += szorzat[i];
}
//A számolás utolsó lépése
eredmeny = sumszorzat/felvettkredit;
alert(eredmeny);
}
</script>
<h3>Kreditszámló</h3>
<form name="kreditszamolo">
<!--
do {
atlag = (kredit * jegy) / kredit
document.bevitelimezo.jegyek.value = nev.join("\n");} -->
<table>
<tr>
<td><p>Éredemjegyed: </td>
<td><input type="text" maxlength = "1" size = "1" name="erdemjegy"> ha nem sikerült akkor 1 est írj</td>
</tr>
<tr>
<td>Kredit:</td>
<td><input type="text" maxlength = "1" size = "1" name="kreditek"> (mindenképpen írd be a tárgy kreditét)</p></td>
</tr>
</table>
<input type="button" name="hozzaad" onClick="Adok();" value="Hozzáad">
<input type="button" name="torol" onClick="Clear();" value="Töröl">
<input type="button" name="szamol" onClick="Szamol();" value="Számol">
</br>
</br>
<textarea cols="5" rows="10" name="kiijegy">
</textarea>
<textarea cols="5" rows="10" name="kiikredit">
</textarea>
</form>
</body>
</html>
■ Nem régen tanulom a Javascriptet és valakivel konzultálnom kellene hogy előrébb hajtson. Már vért izzadtam és nem tudok rájönni mi lehet a hiba. Ez betudható a Javascritptben való járatlanságomnak is. Legyetek szivesek tekintsétek meg az alábbi kódot. Mi lehet a hiba?
Ez egy súlyozott átlagszámoló lenne de nem akar összejönni.
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="hu-hu" />
</head>
<body>
<script LANGUAGE="Javascript" type="text/javascript">
var szam = 0;
var jegy = new Array();
var kredit = new Array();
var tkredit = new Array(); //teljesített kredit
var szorzat = new Array();
function Adok() {
//bekéri és kiírja az adatokat, ha nincs akkor jelez
ajegy = document.kreditszamolo.erdemjegy.value;
akredit = document.kreditszamolo.kreditek.value;
if (ajegy > " " && akredit > " ") {
if (0 < ajegy < 6 && 0 < akredit < 10) {
jegy[szam] = ajegy;
kredit[szam] = akredit;
szam++;
}
else alert("Betűkből nem lehet súlyozott átlagot számolni")
}
else alert("Nem írtál be adatot")
document.kreditszamolo.kiijegy.value = jegy.join("\n");
document.kreditszamolo.kiikredit.value = kredit.join("\n");
document.kreditszamolo.erdemjegy.value = ("");
document.kreditszamolo.kreditek.value = ("");
}
function Clear() {
/*document.kreditszamolo.kiijegy.value = ("");
document.kreditszamolo.kiikredit.value = ("");*/
kredit = [];
jegy = [];
tkredit = [];
szorzat = [];
document.kreditszamolo.kiijegy.value = jegy;
document.kreditszamolo.kiikredit.value = kredit;
}
function Szamol() {
/*A függvény korrigált súlyozott átlagot fog számolni:
sum (teljesített kredit * jegy) / felvett kredit*/
//Összeadja a kredit tömböt
var felvettkredit = 0;
for (i=0; i<kredit.length; i++) {
felvettkredit += kredit[i];
}
alert("Felvett kredit összértéke: " + felvettkredit);
//A teljesített krediteteket pakolja be a tkredit tömbbe
for (i=0; i<kredit.length; i++) {
if (jegy[i] == 1) {
kredit[i] = tkredit[i];
tkredit[i] = 1;
}
}
//A számolás első lépéseként a jegyet összeszorozza a teljesített kredittel
do {
i = 0;
szorzat[i] = tkredit[i] * jegy[i];
i++;
}
while (szorzat[i] > " ");
//A szorzat tömb elemeit összeadja
var sumszorzat = 0;
for (i=0; i<szorzat.length; i++)
{
sumszorzat += szorzat[i];
}
//A számolás utolsó lépése
eredmeny = sumszorzat/felvettkredit;
alert(eredmeny);
}
</script>
<h3>Kreditszámló</h3>
<form name="kreditszamolo">
<!--
do {
atlag = (kredit * jegy) / kredit
document.bevitelimezo.jegyek.value = nev.join("\n");} -->
<table>
<tr>
<td><p>Éredemjegyed: </td>
<td><input type="text" maxlength = "1" size = "1" name="erdemjegy"> ha nem sikerült akkor 1 est írj</td>
</tr>
<tr>
<td>Kredit:</td>
<td><input type="text" maxlength = "1" size = "1" name="kreditek"> (mindenképpen írd be a tárgy kreditét)</p></td>
</tr>
</table>
<input type="button" name="hozzaad" onClick="Adok();" value="Hozzáad">
<input type="button" name="torol" onClick="Clear();" value="Töröl">
<input type="button" name="szamol" onClick="Szamol();" value="Számol">
</br>
</br>
<textarea cols="5" rows="10" name="kiijegy">
</textarea>
<textarea cols="5" rows="10" name="kiikredit">
</textarea>
</form>
</body>
</html>
hibák
- Bekértem és kiirtam az adatokat
- A törlés után maradnak üres tömbelemek (nem tudom miért)
- A számolásnál az elsőnél elakadtam. A tömbben lévő számokat nem összeadja hanem egymás után illeszti. (ezt sem értem)
Hibák
szam
nem lett nullazva törlés esetén.Köszönet