> Tous les forums > Forum des Webmasters
 Calcul avec du JavaScript
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
apz
  Posté le 23/09/2020 @ 14:10 
Aller en bas de la page 
Petit astucien

Bonjour à tous,

j'aimerais avoir un code JavaScript, qui me réalisera le calcul suivant :

par exemple :

nous avons la série des chiffres suivante : 1783254.

Cette série 1783254, devra être additionnée au code 13 12 11 10 9 8 7 6 5 4.

Chaque chiffre correspond à un chiffre de code.

le 4 correspond à 4.

5 --> 5, 2 --> 6, 3 --> 7, 8 --> 8, 7 --> 9, 1 --> 10

sommes = 4 + 4 + 5 + 5 + 2 + 6 + 3 + 7 + 8 + 8 + 7 + 9 + 1 + 10

somme est divisée par 100, pour récupérer le reste de la division (modulo/100) :

somme mod 100 = 79

Le résultat est = 79.

Merci.

Publicité
Jean-Pierre
 Posté le 23/09/2020 à 14:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Houllààààààà !!!

Pas très clair tout ça malgré tes efforts de présentation.

Faudrait nous établir un algo béton afin de s'appuyer dessus.

Autre chose : possèdes-tu un site ?

Si oui = ce serait mieux de passer ça en PHP.

Licette et JP

apz
 Posté le 23/09/2020 à 15:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour Jean-Pierre

Faudrait nous établir un algo béton afin de s'appuyer dessus.

Voila

Entrer votre numéro :

Je saisi : 1783254

Serie = Input(1783254)

Ls = len(Serie)

Code = 13121110987654

Lc = len(Code)

Somme = 0

Pour i=0 à Ls-1 faire

posSerie = Mid(Serie,ls-i,1)

posCode = Mid(Code,lc-i,1)

Somme = Somme + posSerie + posCode

Fin

Résultat = Somme MOD 100

Autre chose : possèdes-tu un site ?

J’aimerais faire cela sur une page blogger (Donc pas de PHP!)

apz
 Posté le 24/09/2020 à 11:32 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

J'ai réussi à concocter ce bout de code, qui fonctionne bien, mais je suis sûr qu'il a besoin d'un nettoyage et corriger l'erreur suivante :

document.write can be a form of eval.

Pour cette ligne de code, par exemple :

document.write("Somme = " + somme+"<br>");

et pour toutes les lignes document.write.

Le code :

<script language="JavaScript">

<!--

var s = "1783254";

var c = "13121110987654";

var somme = 0;

let j = 6;

let x = 0;

let z = 0;

let z1=0;

let y=c.length;

let y1=s.length;

while (j > 0)

{

z = y-1;

z1 = y1-1;

document.write(c+".substring("+z+","+y+") : "+Number(c.substring(z,y))+"<br>");

document.write(s+".substring("+z1+","+y1+") : "+Number(s.substring(z1,y1))+"<br>");

somme = somme + Number(c.substring(z,y))+Number(s.substring(z1,y1));

j-=1;

y-=1; y1-=1;

}

document.write("Somme = " + somme+"<br>");

j = c.length;

j1 = s.length;

z = z - 2;

z1 = z1-2;

//---

while (j > 10 && j1 > 6) {

document.write("j = "+j+"<br>");

document.write("j1 = "+j1+"<br>");

document.write(c+".substring("+z+","+y+") : "+Number(c.substring(z,y))+"<br>");

document.write(s+".substring("+z1+","+y1+") : "+Number(s.substring(z1,y1))+"<br>");

somme = somme + Number(c.substring(z,y))+Number(s.substring(z1,y1));

j-=1;

j1-=1;

z-=2;

z1-=1;

y-=2;

y1-=1;

}

document.write("Somme* = " + somme+"<br>");

document.write("Résulat = " + somme % 100 +"<br>");

// -->

</script>

Jean-Pierre
 Posté le 24/09/2020 à 12:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Hé bien tu vois que tu navet (ou pommes de terres) pas besoin d'aide, et que tu te débrouilles très bien

Licette et JP

apz
 Posté le 24/09/2020 à 13:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Malgré tout, je ne connais pas bien le JavaScript.

Et pour l'erreur signalée :

document.write can be a form of eval

comment la corriger ?

Comment différencie entre les déclarations des variables par let ou var ?

zoulouman
 Posté le 24/09/2020 à 14:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Ne t'inquiète pas, ce n'est pas une erreur mais un avertissement.
document.write est une très mauvaise pratique qu'il faut éviter. Un document.write doit être réservé pour faire des essais, des scripts à la maison, mais à éviter sur un site web.
A la place, tu peux utiliser un document.createElement par exemple.

Pour les déclarations de variables, il faut utiliser var. let est un ancêtre des début des langages de programmation (tous langages confondus).

Plus d'infos avec des exemples sur document.createElement : https://www.w3schools.com/JSREF/met_document_createelement.asp

Et vu que tu ne connais pas JS, voici une mine d'information : https://www.w3schools.com/JSREF/default.asp

Exemple de remplacement :

var x = 10;
var result = document.createElement("span");
result.innerHTML = "Le résultat est : " + x;
document.body.appendChild(result);

La phase Le résultat est : 10 sera insérée dans un <span></span>, ce qui est quand même plus propre.

EDIT

Correction d'une boulette...



Modifié par zoulouman le 24/09/2020 14:32
Jean-Pierre
 Posté le 24/09/2020 à 14:44 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Bravo tonton Zouzou

En effet, à la lecture de son code, devant les "let" : je me demandais...

var. let est un ancêtre des début des langages de programmation

apz
 Posté le 26/09/2020 à 11:44 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour zoulouman, JP,

Je vais suivre les liens, et essayer par la suite de modifier le code.

On verra ce que ça donne

Publicité
zoulouman
 Posté le 26/09/2020 à 18:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Tu peux aussi faire plus simple en préparant une DIV qui recevra ton résultat :

<div id="resultat1"></div>

<script>
var x = 10;
document.getElementById("resultat1").innerHTML = "<p>Le resultat 1 est : " + x + "</p>";
</script>

Ou avec une fonction pour plusieurs résultats :

<script>
function affiche(div, result) {
  document.getElementById(div).innerHTML = "<p>Le resultat " + number + " est : " + result + "</p>";
  number++;
}
</script>

<div id="resultat1"></div>
<div id="resultat2"></div>
<div id="resultat3"></div>

<script>
var number = 1;
var x = 10;
var y = 25;
var z = 50;

affiche("resultat1", x);
affiche("resultat2", y);
affiche("resultat3", z);
</script>


Modifié par zoulouman le 26/09/2020 18:05
apz
 Posté le 26/09/2020 à 21:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci zoulouman,

C'est un bon exemple, j'essayerai de l'adapter

zoulouman
 Posté le 01/10/2020 à 18:38 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

J'imagine que par ici le sujet est clos.
De rien !

C'est moi qui rêve ou je suis seul dans la rubrique Webmasters ?

Jean-Pierre
 Posté le 01/10/2020 à 21:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

zoulouman a écrit :

J'imagine que par ici le sujet est clos.
De rien !

C'est moi qui rêve ou je suis seul dans la rubrique Webmasters ?

Bonzour tonton Zouzou,

Bin nom moi ze suis là aux scies hein.

Papounet est sé la voizine alors ze m'amuze avec son ordi.

Licette

zoulouman
 Posté le 01/10/2020 à 22:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Ah ! Voilà la seconde personnalité de JP.

Comment vas-tu ma limacette ?

apz
 Posté le 01/10/2020 à 23:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Je mettrai mon codage ici, pour correction, quand j'aurai fini

zoulouman
 Posté le 02/10/2020 à 19:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Ok.

apz
 Posté le 02/11/2020 à 22:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir

Nouvel essai :

<div id="Calcul"></div>

<script language="JavaScript">
<!--
var Compte = "1783254";
var Key = "13121110987654";
var somme = 0;
var j = 6;
var x = 0;
var z = 0;
var z1 = 0;
var y = Key.length;
var y1 = Compte.length;
while (j > 0) {
    z = y - 1;
    z1 = y1 - 1;

    document.getElementById("Calcul").innerHTML = "<span>" + Key + ".substring(" + z + "," + y + ") : " + Number(Key.substring(z, y)) + "</span>";
    document.getElementById("Calcul").innerHTML = "<span>" + Compte + ".substring(" + z1 + "," + y1 + ") : " + Number(Compte.substring(z1, y1)) + "</span>";

    somme = somme + Number(Key.substring(z, y)) + Number(Compte.substring(z1, y1));
    j -= 1;
    y -= 1;
    y1 -= 1;
}

document.getElementById("Calcul").innerHTML = "<span>Somme = " + somme + "</span></br>";

j = Key.length;
j1 = Compte.length;
z = z - 2;
z1 = z1 - 2;

//---
while (j > 10 && j1 > 6) {

    document.getElementById("Calcul").innerHTML = "<span>" + "j = " + j + "</span></br>";
    document.getElementById("Calcul").innerHTML = "<span>" + "j1 = " + j1 + "</span></br>";
    document.getElementById("Calcul").innerHTML = "<span>" + Key + ".substring(" + z + "," + y + ") : " + Number(Key.substring(z, y)) + "</span></br>";
    document.getElementById("Calcul").innerHTML = "<span>" + Compte + ".substring(" + z1 + "," + y1 + ") : " + Number(Compte.substring(z1, y1)) + "</span></br>";

    somme = somme + Number(Key.substring(z, y)) + Number(Compte.substring(z1, y1));

    j -= 1;
    j1 -= 1;
    z -= 2;
    z1 -= 1;
    y -= 2;
    y1 -= 1;
}

document.getElementById("Calcul").innerHTML = "<span>Somme* = " + somme + "</span></br>";
document.getElementById("Calcul").innerHTML = "<span>Résulat = " + somme % 100 + "</span></br>";

// -->
</script>
Publicité
zoulouman
 Posté le 02/11/2020 à 22:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Tu as du bol, j'allais au lit.

J'ai vite regardé et je vais pas plus loin.
C'est nul ton truc. Tu n'auras jamais le temps de tout lire !

Tu fais je ne sais combien de calculs et tu affiches tout dans la même DIV en remplacement de ce qu'il y avait avant.
Tu comptes faire comment pour lire les résultats autres que le final ? Avec une caméra haute vitesse pour filmer l'écran et après tu fais du image/image ?

A demain !

P'tain ! Y a dès fois j'ai l'impression de parler au vent...



Modifié par zoulouman le 02/11/2020 22:59
apz
 Posté le 02/11/2020 à 23:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Il y a bien une âme qui t'écoute, ne t'inquiète pas !

Je vais essayer une autre fois

zoulouman
 Posté le 02/11/2020 à 23:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Tu peux très bien préparer tes div et résultats avec une boucle JS.

Au lieu d'écrire directement le résultat, tu commences par créer un tableau qui ensuite deviendra tes div.

Et ensuite, tu balances tes résultats, un seul par div bien identifiée.

Enfin bref.

apz
 Posté le 04/11/2020 à 19:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir,

Je suis en train de développer un code (un peu long )

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
GratuitJeu PC Train Sim World 2 gratuit
Valable jusqu'au 05 Août

Epic Game Store offre actuellement le jeu PC Train Sim World 2. L'évolution de la simulation ferroviaire ! Maîtrisez des locomotives légendaires sur des services à grande vitesse des frets long-courriers ou des transports de passagers et faites preuve de créativité avec les outils de personnalisation disponibles dans cette suite plus poussée. Embarquez dans l'univers de Train Sim World 2. Jeu en français. PEGI 3


> Voir l'offre
49,90 €Routeur TP-Link Archer AX10 WiFi 6 à 49,90 €
Valable jusqu'au 05 Août

Amazon fait une promotion sur le routeur TP-Link Archer AX10 WiFi 6 qui passe à 49,90 € au lieu de 80 €. La livraison est gratuite. L’Archer AX10 de TP-Link embarque la technologie WiFi 6 (802.11ax) qui permet de passer à la vitesse supérieure (1.5 Gbps) tout en étant rétro-compatible avec les normes WiFi 802.11a/b/g/n/ac. Doté de 4 antennes Wi-Fi et capable de prendre en charge la technologie 1024 QAM et les canaux 160 MHz, l'Archer AX10 est aussi pourvu d'une prise WAN 1 GbE et de 4 ports Ethernet Gigabit. Les nombreux appareils connectés peuvent ainsi bénéficier de la meilleure connexion possible en toute fluidité.


> Voir l'offre
114,94 €Carte mère MSI B550 Gaming Plus à 114,94 € livrée
Valable jusqu'au 05 Août

Amazon Allemagne fait une promotion sur la carte mère MSI B550 Gaming Plus à 107,62 €. Comptez 7,32 € pour la livraison en France soit un total de 114,94 € livrée. On la trouve ailleurs à partir de 130 €. Embarquant le chipset AMD B550, la carte mère MSI MPG B550 GAMING PLUS avec son socket AM4 est conçue pour accueillir les processeurs AMD Ryzen de 3ème génération. Elle permettra de composer une configuration Gaming disposant des dernières avancées technologiques : PCI-Express 4.0 pour les cartes graphiques et les SSD M.2, gestion de 128 Go de RAM DDR4. Tout est là pour une expérience gaming enivrante, à vous de jouer !


> Voir l'offre

Sujets relatifs
Lire du courrier en JavaScript avec Fossamail ??
Quiz web, XHTML, CSS, DOM (JavaScript), PHP, MySQL, accessibilité du web
Problème avec menu en javascript à éditer
Obtenir métadonnées dans images avec JavaScript?
Question divers avec du css
ouvrir et fermer du texte avec une petite croix
que dois je faire avec ses fichiers pour du flash
problème avec mon titre du forum
javascript donctionne avec IE et pas Firefox
javascript donctionne avec IE et pas Firefox
Plus de sujets relatifs à Calcul avec du JavaScript
 > Tous les forums > Forum Forum des Webmasters