> 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

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>
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 )

Publicité
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
Ecran PC 24.5 pouces HP Omen 25 (FHD 144 Hz, FreeSync) à 99 €
99 € 149 € -34% @Leclerc

Leclerc fait une belle promotion sur l'écran PC 24.5 pouces HP Omen 25 qui passe 99 € alors qu'on le trouve ailleurs à partir de 149 €. Il possède une dalle de 24.5 pouces Full HD TN et offre une fréquence de rafraichissement de 144 Hz et un temps de réponse de 1 ms. Il intègre une connectivité 2xHDMI et DP ainsi qu'un hub 3xUSB 3.0.


Voir le bon plan
Mini PC T-bao T8 Plus (Intel N100, 8 Go DDR5, SSD 512 Go, Windows 11) à 149 €
149 € 220 € -32% @Geekbuying

GeekBuying fait une belle promotion sur le mini PC T-bao T8 Plus qui passe à 149 € avec le code NNNFRSOLDET8PL au lieu de 220 €. Une bonne affaire pour ce mini PC équipé d'un processeur Intel N100 (4 coeurs, 3.4 GHz, 12ème génération), 8 Go de DDR5, un SSD M.2 SATA de 512 Go, du WiFi/Bluetooth, de 2 ports Ethernet Gigabit, 3 ports HDMI et tourne sous Windows 11 Pro.


Voir le bon plan
SSD Crucial P3 4 To (NVMe, PCIe, M.2, 3500 Mo/s) à 194,85 € livré
194,85 € 260 € -25% @Geekbuying

Amazon Royaume-Uni fait une promotion sur le SSD Crucial P3 4 To (NVMe, PCIe, M.2) qui passe à 159,29 £. Avec la conversion en euros, la livraison en France et les taxes d'importation (gérées par Amazon), il vous reviendra à 194,85 € tout compris au lieu de 260 €. 

Ce SSD offre des vitesses de lecture/écriture séquentielle allant jusqu’à 3 500 Mo/s. Il est garanti 5 ans.


Voir le bon plan
Portable 15,6' Lenovo Legion 5 (FHD, Ryzen 5, 8Go, SSD 512Go, RTX3060) à 799,99 €
799,99 € 990 € -19% @Cdiscount

Cdiscount fait une promotion sur le PC portable Lenovo Legion 5 (15ACH6H) dédié aux joueurs qui passe à 799,99 € au lieu de 990 €. Ce PC portable très bien équipé possède un écran 15,6 pouces LED Full HD 120 Hz, un processeur AMD Ryzen 5 5600H, 8 Go de RAM (extensible), un SSD NVMe de 512 Go et une carte graphique GeForce RTX 3060 6 Go dédiée 130W qui avalera tous vos jeux sans broncher.


Voir le bon plan
Manette Microsoft Xbox sans fil + adaptateur pour PC à 55,99 €
55,99 € 69 € -19% @Amazon

Amazon fait une promotion sur la nouvelle manette Microsoft Xbox sans fil + adaptateur pour PC qui passe à 55,99 € alors qu'on la trouve ailleurs à partir de 69 €.  Sur Xbox, la connexion se fera directement sans fil et sur PC, il vous suffira de brancher l'adaptateur Bluetooth fourni pour en profiter aussi sans fil. 


Voir le bon plan
Clavier mécanique Logitech G513 Carbon Lightsync RVB à 89,99 €
89,99 € 120 € -25% @Cdiscount

Amazon fait une belle promotion sur le clavier Gaming Logitech G513 Carbon Lightsync RVB qui passe à 89,99 € au lieu de 120 € ailleurs. Mélange parfait de performances, de technologies et d'une conception d'une qualité inégalée, le clavier G513 est un clavier gaming mécanique RVB équipé des switches mécaniques tactiles avancés GX Brown plébiscités par les professionnels d'eSports du monde entier.

La coque en alliage aluminium robuste et légère apporte une rigidité et une apparence haut de gamme tout en lui conférant une forme fine semblable à une lame. Et pour davantage de confort, le Logitech G513 dispose d'un repose-poignets en mousse à mémoire de forme. 


Voir le bon plan

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