Partage
  • Partager sur Facebook
  • Partager sur Twitter

[javascript] remplissage d'un tableau

comment remplir un tableau ? + quelques questions en javascript

9 janvier 2008 à 17:17:02

bonjour,

j'ai un exercice, en javascript,qui consiste à calculer le temps de remboursement d'un emprunt, de donner le résultat, et de remplir un tableau en fonction des résultats.

le calcul ça va, il trouve bien le nombre d'année, mais mon soucis c'est pour remplir le tableau. en effet, même s'il me met bien le bon nombre de ligne (en fonction du nombre d'années) et bien il me met la même chose dans toutes les lignes...

pourriez vous voir mon code ? et me dire ce qui ne va pas ?

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
  3.       <head>
  4.         <title>         ... remboursement d'emprunt ...         </title>
  5.         <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />     <!-- donne l'encodage de la page-->
  6.       </head>
  7.       <body>
  8.           <h1>tableau... </h1>
  9.           <br>
  10.           <u>calcul du nombre d'années de remboursement en fonction de la somme empruntée, du taux d'intérets et de la somme remboursée annuellement :</u>
  11.           <br>
  12.           <br>
  13.             <script language="Javascript" type="text/javascript">
  14.             <!--
  15.               var a, e, t, r, R ;                               // années , emprunt , taux , remboursement , Restant dû
  16.               var i,j,val;                                      // paramètres pour le tableau
  17.               var interet;                                      // pour le calcul des intérêts
  18.               //-----------------------------------------
  19.               // 1- lecture des données :
  20.               //-----------------------------------------
  21.               e = prompt ("Quelle est la somme empruntée ?" , "1000");
  22.               document.writeln("la somme empruntée est de " +e+ " Euros , ");
  23.               t = prompt ("A quel taux ?" , "5");
  24.               document.writeln("le taux d'intérêt est de " +t+ " pourcents , ");
  25.               r = prompt ("Quel est le remboursement annuel ?" , "200");
  26.               document.writeln("le remboursement annuel est de " +r+ " Euros par an.");
  27.               document.writeln('<br>');
  28.               document.writeln('<br>');
  29.               //-----------------------------------------
  30.               // 2- calcul :
  31.               //-----------------------------------------
  32.               // cas d'un remboursement trop faible
  33.               if (r <= (e*t/100)) document.writeln("Impossible ! Le remboursement est trop faible !");
  34.               // sinon
  35.               a=0;
  36.               while (e > 0)                                     // tant que e > 0, faire
  37.               {
  38.                    a = a+1;
  39.                    interet = (e*t/100);
  40.                    e = e + interet - r;
  41.                    R = e;
  42.               }
  43.               document.writeln("Votre emprunt sera remboursé en " +a+ " années");
  44.               document.writeln('<br>');
  45.               document.writeln('<br>');
  46.               //-----------------------------------------
  47.               // 3- écriture et remplissage du tableau :
  48.               //-----------------------------------------
  49.               // création du 1er "tableau", comportant les noms des colonnes
  50.               document.writeln('<table width="100%" border="1">');
  51.               document.writeln('<tr>');
  52.               document.writeln('<th width = "25%"> Année </th> ');
  53.               document.writeln('<th width = "25%"> Montant Emprunté </th>');
  54.               document.writeln('<th width = "25%"> Intérêts </th>');
  55.               document.writeln('<th width = "25%"> Restant dû </th>');
  56.               document.writeln('</tr>');
  57.               document.writeln('</table>');
  58.               // création du 2eme tableau, comportant les résultats des calculs
  59.               document.writeln('<table width="100%" border="1">');
  60.               for (i=0; i< a; i++)
  61.                  {
  62.                    document.writeln('<tr>');
  63.                    document.writeln('<th width = "25%"><center> année '+a+'</center></th>')
  64.                    document.writeln('<th width = "25%"><center> '+e+'</center></th>');
  65.                    document.writeln('<th width = "25%"><center> '+interet+'</center></th>');
  66.                    document.writeln('<th width = "25%"><center> '+R+'</center></th>');
  67.                  }
  68.               document.writeln('</table>');
  69.               document.writeln('<br>');
  70.             //-->
  71.             </script>
  72.       </body>
  73. </html>


l'exemple de l'exercice se fait avec 1000 €uros d'emprunt, 5% d'intérêt, et 200 €uros de remboursement annuel. et ça donne 6 ans de remboursement.

une autre question : dans les "document.writeln", est ce qu'il faut mettre une ou deux quote ? (' ou ") les deux fonctionnent apparemment, mais je voudrais être sur ^^ .

merci pour vos réponses >_< .

ps: c'est normal qu'en mettant " <code = html> autour de mon code, rien ne s'affichait ?
  • Partager sur Facebook
  • Partager sur Twitter
9 janvier 2008 à 18:49:49

Salut,
je suis pas trop rentré dans la logique de ton code (nom de variable trop court)
Mais je peux te dire qu'il y a une boucle infinie ici:
  1. while (e > 0)                                     // tant que e > 0, faire
  2.               {
  3.                    a = a+1;
  4.                    interet = (e*t/100);
  5.                    e = e + interet - r;
  6.                    R = e;
  7.               }

Sinon, préfère les ' au " pour des raisons pratiques avant tout ^^

PS: Il y a souvent un problème avec le code HTML

BloodyDark.
  • Partager sur Facebook
  • Partager sur Twitter
9 janvier 2008 à 19:44:53

en quoi c'est une boucle infinie ? :euh:

je dis :

  1. while (e > 0)                                     // tant que e > 0, faire
  2.                 {
  3.                       a = a+1;
  4.                       interet = (e*t/100);
  5.                       e = e + interet - r;
  6.                       R = e;
  7.                  }


1 - tant que e (somme empruntée) est supérieure à 0 ,
3 - a (année) = a + 1 , donc on ajoute une année à chaque boucle ,
4 - je dis ce que vaut la variable "intérêt", soit la somme empruntée, fois le taux d'intérêt divisé par 100 ,
5 - je dis que la somme empruntée devient la somme empruntée, plus les intérêts, moins la somme remboursée, (en français ça veut pas dire grand chose ^^ )
6 - enfin, je dis que la somme empruntée "devient" la somme restante (ça c'est pour moi, dans le tableau)

hum, voilà l'explication, donc je ne vois pas en quoi c'est une boucle infini... en revanche, ça en devient une si la somme remboursée (r) est inférieure aux intérêts.
  • Partager sur Facebook
  • Partager sur Twitter
9 janvier 2008 à 21:54:26

Re,
Simple: ajouter un alert('ok'); dans ta boucle...

La boucle est infinie, maintenant pourquoi, je sais pas, sûrement un problème dans l'algo.

BloodyDark.
  • Partager sur Facebook
  • Partager sur Twitter
10 janvier 2008 à 0:05:58

le "alert(ok)" se fera à chaque tour de boucle... je veux pas ça moi :euh:

après un essai avec le "alert", je vois bien que ça fait une boucle infini >_< , va falloir que je regarde ça demain ... là j'vais au lit u_u .
  • Partager sur Facebook
  • Partager sur Twitter
12 juillet 2020 à 20:14:04 - Message modéré pour le motif suivant : Message complètement hors sujet


13 juillet 2020 à 17:49:30

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter