ugrás a tartalomhoz

Javascript számolás

mikee · 2009. Feb. 5. (Cs), 15.58
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>
 
1

hibák

mikee · 2009. Feb. 5. (Cs), 16.02
Ameddig jutottam:
- 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)
2

Hibák

Poetro · 2009. Feb. 5. (Cs), 16.25
  1. Formázva küldd már be a kódot, mert így olvashatatlan.
  2. A szöveget + esetén konkatenálja, és nem összeadja, ezért ha számként akarod kezelni, akkor alakítsd számmá.
  3. A számláló szam nem lett nullazva törlés esetén.
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  2. <html>  
  3.   <head>  
  4.     <meta name="generator" content="HTML Tidy for Windows (vers 14 October 2008), see www.w3.org">  
  5.     <meta http-equiv="Content-type" content="text/html; charset=utf-8">  
  6.     <meta http-equiv="Content-Language" content="hu-hu">  
  7.     <title></title>  
  8.   </head>  
  9.   <body>  
  10.     <script type="text/javascript">  
  11.       var szam = 0;  
  12.       var jegy = new Array();  
  13.       var kredit = new Array();  
  14.   
  15.       var tkredit = new Array(); //teljesített kredit  
  16.       var szorzat = new Array();  
  17.   
  18.       function Adok() {  
  19.         //bekéri és kiírja az adatokat, ha nincs akkor jelez  
  20.         var ajegy = document.kreditszamolo.erdemjegy.value;  
  21.   
  22.         var akredit = document.kreditszamolo.kreditek.value;  
  23.   
  24.         if (ajegy > " " && akredit > " ") {  
  25.           if (0 < ajegy < 6 && 0 < akredit < 10) {  
  26.   
  27.             jegy[szam] = ajegy;  
  28.             kredit[szam] = akredit;  
  29.             szam++;  
  30.           }  
  31.           else alert("Betűkből nem lehet súlyozott átlagot számolni")  
  32.   
  33.         }  
  34.         else alert("Nem írtál be adatot")  
  35.   
  36.         document.kreditszamolo.kiijegy.value = jegy.join("\n");  
  37.         document.kreditszamolo.kiikredit.value = kredit.join("\n");  
  38.   
  39.         document.kreditszamolo.erdemjegy.value = ("");  
  40.         document.kreditszamolo.kreditek.value = ("");  
  41.       }  
  42.   
  43.       function Clear() {  
  44.         /*document.kreditszamolo.kiijegy.value = ("");  
  45.   
  46.        document.kreditszamolo.kiikredit.value = ("");*/  
  47.         szam = 0;  
  48.         kredit = new Array();  
  49.         jegy = new Array();  
  50.         tkredit = new Array();  
  51.         szorzat = new Array();  
  52.         document.kreditszamolo.kiijegy.value = '';  
  53.   
  54.         document.kreditszamolo.kiikredit.value = '';  
  55.       }  
  56.   
  57.       function Szamol() {  
  58.         /*A függvény korrigált súlyozott átlagot fog számolni:  
  59.       sum (teljesített kredit * jegy) / felvett kredit*/  
  60.   
  61.         //Összeadja a kredit tömböt  
  62.         var felvettkredit = 0;  
  63.         for (i = 0; i < kredit.length; i++) {  
  64.           felvettkredit += parseInt(kredit[i], 10);  
  65.         }  
  66.         alert("Felvett kredit összértéke: " + felvettkredit);  
  67.   
  68.         //A teljesített krediteteket pakolja be a tkredit tömbbe  
  69.         for (i = 0; i < kredit.length; i++) {  
  70.           if (jegy[i] == 1) {  
  71.             kredit[i] = parseInt(tkredit[i], 10);  
  72.             tkredit[i] = 1;  
  73.   
  74.           }  
  75.         }  
  76.   
  77.         //A számolás első lépéseként a jegyet összeszorozza a teljesített kredittel  
  78.         do {  
  79.           i = 0;  
  80.   
  81.           szorzat[i] = tkredit[i] * parseInt(jegy[i], 10);  
  82.           i++;  
  83.         }  
  84.         while ( szorzat [ i ] > " ");  
  85.   
  86.         //A szorzat tömb elemeit összeadja  
  87.         var sumszorzat = 0;  
  88.         for (i = 0; i < szorzat.length; i++) {  
  89.           sumszorzat += szorzat[i];  
  90.         }  
  91.   
  92.         //A számolás utolsó lépése  
  93.         eredmeny = sumszorzat / felvettkredit;  
  94.         alert(eredmeny);  
  95.       }  
  96.     </script>  
  97.     <h3>  
  98.       Kreditszámló  
  99.     </h3>  
  100.     <form name="kreditszamolo" id="kreditszamolo">  
  101.       <!--  
  102.   
  103.  do {  
  104.   
  105.  atlag = (kredit * jegy) / kredit  
  106.  document.bevitelimezo.jegyek.value = nev.join("\n");}  -->  
  107.       <table>  
  108.         <tr>  
  109.           <td><p>Éredemjegyed:</p></td>  
  110.           <td><input type="text" maxlength="1" size="1" name="erdemjegy"> ha nem sikerült akkor 1 est írj</td>  
  111.         </tr>  
  112.         <tr>  
  113.           <td>  
  114.             Kredit:  
  115.           </td>  
  116.           <td><input type="text" maxlength="1" size="1" name="kreditek"> (mindenképpen írd be a tárgy kreditét)</td>  
  117.         </tr>  
  118.       </table>  
  119.       <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>  
  120.       <br>  
  121.       <textarea cols="5" rows="10" name="kiijegy"></textarea>  
  122.       <textarea cols="5" rows="10" name="kiikredit"></textarea>  
  123.     </form>  
  124.   </body>  
  125. </html>  
3

Köszönet

mikee · 2009. Feb. 5. (Cs), 16.54
Köszi szépen a gyors választ. Megyek is és agyalok rajta.