We were unable to load Disqus. If you are a moderator please see our troubleshooting guide.

Hovhannes Kiramijyan • 4 years ago

pas envoie comme résultat : arg1.arg2 + arg1 + arg2 mais -> envoie comme résultat : arg1 * arg2 + arg1 + arg2

MathieuRoyer1 • 1 year ago

Merci !

RaiZD • 4 years ago

Where are the answers/results/solution for all these questions ??
I'd like to know what i'm getting wrong... Or why it says my exercise is wrong but i get the right result...

PLEASE <3

Anonymous • 4 years ago

yes

louloumwana • 2 years ago

Salut ! je suis bloquée sur les "Opération sur les variables"
pourtant j'ai l'impression que c'est juste .Aidez-moi svp ! Merci



// Déclarez les variables comme dans l'exercice précédent et appliquez les opérations demandées
let num = 33;
const x = num++;
x;
let txt = "255";
let bin = false;
let y = txt +" " +"est ici une chaîne de caractères";
y;
let flt = 34;
flt;
console.log(num);
console.log(y);
console.log(bin);
console.log(flt);

MerguezPat • 1 year ago

Voici le code qui a marché pour moi :

var num = 255;
num++
var txt = '255 '+'est ici une chaîne de caractères';
var bin = false;
var flt = 7.23 + num;

ManOB • 2 years ago

Bonjour,
Je ne comprend absolument pas l'exercice boucle et tableau. Help me please :(

Abcode • 1 year ago

Salut !

Voici une nouvelle façon d'expliquer l'énoncé :

Tu dois créer une fonction initXY qui va remplir tes deux tableaux posX et posY. Ces tableaux doivent contenir les abscisses et les ordonnées
de 20 points, chacun se situant à 40 pixels vers la droite et 30 pixels vers le bas du point précédent. Nos tableaux auront donc une longueur
de 20 chacun, avec pour posX une différence de 40 entre chaque valeur (ex : [0,40,80,...]) et pour posY une différence de 30 entre chaque
valeur (ex : [0,30,60,...]). Dans mes deux exemples en parenthèses, je dois comprendre que le premier point a pour coordonnée (0,0), le
deuxième (40,30), //etc.

Petits indices si tu veux continuer à cherche une solution par toi même :

indice 1 : Il faut utiliser une boucle dans ta fonction initXY de 20 steps car il faut remplir ton tableau de 20 valeurs.
indice 2 : Il faut utiliser la méthode push pour ajouter une valeur à la fin d'un tableau.
indice 3 : posX et posY peuvent directement être appelés dans ta fonction initXY car ils sont déclarés en début de code de manière globale.

Je te propose une solution possible en dessous. Je te mets deux versions, la première sans commentaire. La deuxième avec commentaires pour mieux comprendre ce que j'ai fait (moi aussi au début je n'avais pas compris le retour attendu). Les commentaires commence par //.

VERSION 1 (sans commentaires) :

var posX = [];
var posY = [];


function initXY(x0,y0){
for(i=0;i<20;i++){
posX.push(x0+i*40);
posY.push(y0+i*30);
}
}

VERSION 2 (avec commentaires) :



//Initialisation des variables globales posX et posY qui seront accessibles partout dans le code, y compris dans la fonction initXY.


var posX = [];
var posY = [];


//Création de la fonction initXY qui doit remplir les tableaux posX et posY. Ces tableaux doivent contenir les abscisses et les ordonnées
//de 20 points, chacun se situant à 40 pixels vers la droite et 30 pixels vers le bas du point précédent. Nos tableaux auront donc une longueur
//de 20 chacun, avec pour posX une différence de 40 entre chaque valeur (ex : [0,40,80,...]) et pour posY une différence de 30 entre chaque
// valeur (ex : [0,30,60,...]). Dans mes deux exemples en parenthèses, je dois comprendre que le premier point a pour coordonnée (0,0), le //deuxième (40,30), etc.


function initXY( x0, y0 ){


//Je créer une boucle dans ma fonction initXY de 20 tours car je dois remplir mes tableaux de 20 cases.
for(i=0;i<20;i++){
posX.push(x0+i*40); //la méthode push permet de rajouter une valeur à la fin du tableau.
posY.push(y0+i*30);
}
}


// Notes : je n'ai pas besoin de return car j'ajoute directement aux variables posX et posY.
// J'utilise le terme méthode pour désigner la fonction push car elle appartient à une classe. (ici celle des array) Pour mieux comprendre si
// cela ne t'es pas familier, je t'invite à te familiariser avec l'orienté objet.



Voila :) en espérant avoir été claire.
Bonne continuation dans ton apprentissage et bonne journée.

FredericB • 4 years ago

just so you know, in the last exercise of part 3 when referring to "arg1.arg2", a multiplication is expected.
pour info, dans le dernier exercice de la partie 3 "arg1.arg2" fait référence à la multiplication des deux arguments.

Psc.I • 2 years ago

je ne comprends pas, j'ai mis le code suivant pour la partie 5 exercice 2 :
var tablo = [1,2,3]
var item = tablo[1]
item = 5
et ça fonctionne pas... je ne vois pas mon erreur

Anonymous • 2 years ago

Bonjour, Ce n'est pas item=5; mais tablo[1]=5; pour assigner la valeur 5 dans la seconde position de tablo.
Courage!

JackOuille • 4 years ago

Sah c'est plutôt dur mais très bien pour réviser le javascript

coderlady • 4 years ago

Hey
I just started learning javascript, any tips and tricks?
Bonjour,
Je commence avec le javascript, des conseils à me donner?
Merci.

Anonymous • 4 years ago

Hello,
Je galère grave sur l'exercice 2 ou peut on trouver les réponses?

akid • 4 years ago

idem

sdsdf • 3 years ago

"arg1.arg2" fait référence à la multiplication des deux arguments arg1*arg2

Kiust • 2 years ago

pareille pour moi, je suis à l aret total! en fait après 2 ans tu as réussi ou pas? XD

ludovic_Ad_ • 2 years ago


function aprec(note){
  if(note >=0 && note <7){
    return "Hideux";
  }
  else if(note >=7 && note <10){
    return "Moche";
  }
  else if(note >=10 && note <15){
    return "Nice";
  }
  else if(note >=15 && note <=20){
    return "GG";
  }
  else {
    return "BUG";
  }
}

Stefoudu13 • 6 years ago

laisse poce bleu

User8455 • 3 years ago

Bonjour à tous !
Je ne comprends pas pourquoi l'exercice 2 n'est pas validé ...
(Test sur le type des paramètres)

voici mon code :
let test1 = 48;
let test2 = 'test2';

function myFct (arg1, arg2){
if((typeof(arg1)==="string")||(typeof(arg2)==="string")){
return -999999999;

} else {
return arg1*arg2 + arg1 + arg2;

}
}
myFct(test1, test2);

Merci d'avance

Elecsta • 3 years ago

Salut a toi je ne sais pas si tu as réussi depuis le temps mais j'ai été pas mal bloqué moi aussi et j'ai fini par trouver

Voici le code a utilisé :

function myFct(arg1, arg2){
if(typeof(arg1) !== "number" || typeof(arg2) !== "number" ){
return -999999999 ;
} else {
return arg1*arg2 + arg1 + arg2;
}
}

Pierredici • 1 year ago

Bonjour, Je ne trouve pas la réponse de l'ex 'Boucle et tableau' quelqu'un peut m'aider?

Abcode • 1 year ago

Salut !

Voici une nouvelle façon d'expliquer l'énoncé :

Tu dois créer une fonction initXY qui va remplir tes deux tableaux posX et posY. Ces tableaux doivent contenir les abscisses et les ordonnées de 20 points, chacun se situant à 40 pixels vers la droite et 30 pixels vers le bas du point précédent. Nos tableaux auront donc une longueur 20 chacun, avec pour posX une différence de 40 entre chaque valeur (ex : [0,40,80,...]) et pour posY une différence de 30 entre chaque valeur (ex : [0,30,60,...]). Dans mes deux exemples en parenthèses, je dois comprendre que le premier point a pour coordonnée (0,0), le deuxième (40,30), //etc.

Petits indices si tu veux continuer à cherche une solution par toi même :

indice 1 : Il faut utiliser une boucle dans ta fonction initXY de 20 steps car il faut remplir ton tableau de 20 valeurs.
indice 2 : Il faut utiliser la méthode push pour ajouter une valeur à la fin d'un tableau.
indice 3 : posX et posY peuvent directement être appelés dans ta fonction initXY car ils sont déclarés en début de code de manière globale.

Je te propose une solution possible en dessous. Je te mets deux versions, la première sans commentaire. La deuxième avec commentaires pour mieux comprendre ce que j'ai fait (moi aussi au début je n'avais pas compris le retour attendu). Les commentaires commence par //.

VERSION 1 (sans commentaires) :


var posX = [];
var posY = [];

function initXY(x0,y0){

for(i=0;i<20;i++){
posX.push(x0+i*40);

posY.push(y0+i*30);
}
}

VERSION 2 (avec commentaires) :



//Initialisation des variables globales posX et posY qui seront accessibles partout dans le code, y compris dans la fonction initXY.
var posX = [];
var posY = [];

//Création de la fonction initXY qui doit remplir les tableaux posX et posY. Ces tableaux doivent contenir les abscisses et les //ordonnées de 20 points, chacun se situant à 40 pixels vers la droite et 30 pixels vers le bas du point précédent. Nos tableaux //auront donc une longueur de 20 chacun, avec pour posX une différence de 40 entre chaque valeur (ex : [0,40,80,...]) et pour posY //une différence de 30 entre chaque valeur (ex : [0,30,60,...]). Dans mes deux exemples en parenthèses, je dois comprendre que le //premier point a pour coordonnée (0,0), le deuxième (40,30), //etc.

function initXY( x0, y0 ){

//Je créer une boucle dans ma fonction initXY de 20 tours car je dois remplir mes tableaux de 20 cases.
for(i=0;i<20;i++){
posX.push(x0+i*40); //la méthode push permet de rajouter une valeur à la fin du tableau.
posY.push(y0+i*30);
}
}

// Notes : je n'ai pas besoin de return car j'ajoute directement aux variables posX et posY.
// J'utilise le terme méthode pour désigner la fonction push car elle appartient à une classe. (ici celle des array) Pour mieux
// comprendre si cela ne t'es pas familier, je t'invite à te familiariser avec l'orienté objet.

Voila :) en espérant avoir été claire.
Bonne continuation dans ton apprentissage et bonne journée.

becot • 2 years ago

Bonjour,
Question bête mais que signifie TMP ?

Abcode • 1 year ago

Salut, si tu fais référence au nom de variable tmp, il s'agit souvent d'un raccourcis pour le terme "temporaire" (ou temporary en anglais).
La plupart du temps, on nomme une variable comme ça quand elle ne sera utilisée qu'un court instant dans le code. Souvent pour stocker des valeurs intermédiaires.

Bonne journée.

gindev • 2 years ago

franchement, j'ai rien compris à l'exercice 6.2 : Réalisez la fonction initXY , dans mon code sur Vscode, j'arrive à plusieurs résultats cohérents mais je dois surement pas comprendre ce qui est demandé car j'ai toujours des erreurs dans l'editeur de codingame.. c'est assez frustrant je dois dire .......

julie-j-code • 1 year ago

Voilà :

const posX = [];
const posY = [];

function initXY(x0, y0) {

for (let i = 0; i < 20; i++) {
posX[i] = x0 + (i*40);
posY[i] = y0 + (i*30);
}
}

initXY(100, 200);

console.log(posX);
console.log(posY);

Galdwir • 6 years ago

just chill dude its for beginner Have Fun and Good luck :D

Rattelise Lyautey • 2 years ago

Boucle et fonction :

function puissance (x, n){

var result = 1;
if(n == undefined)
n = 2;
for(var i=1; i<=n; i++) {
result = result * x;
}
return result;

}
console.log(puissance(2,4));

Anonymous • 1 year ago

je suis bloqué sur l'avant-dernier exercice et je me pose la question suivante, je suis arrivé au résultat avec ce code :

// Déclarez les variables
let num = 23;
let txt = "33";
let tmp = 0;

// et appliquez les opérations demandées
parseInt("33", 10);
tmp = tmp + parseInt("33", 10);

// Affichage du résultat
console.log(num+tmp);

// {

L'erreur en question:

56

Opération sur les variables : num, txt, et tmp:

1) Opération sur les variables : num, txt, et tmp

0 passing (22ms)
1 failing

1) Opération sur les variables : num, txt, et tmp:

AssertionError: 56 == 23
+ expected - actual

-56
+23

at Context.<anonymous> (test_variables4.js:7:12)

j'ai ça comme erreur et "revoyez vos opérateurs comme conseil, je n'ai pas compris pourquoi je n'arrive pas ? Peut-être parce que je ne suis pas arrivé à attribuer mon parseInt à mon txt?

Hveux • 1 year ago

Hello , voila j'ai un souci avec l'exercice sur la function istoolong pourriez vous m'aider a résoudre ce problème ? Voici mon code peut être une erreur de ma part "surement" , fin je ne sais pas ^^ :
function isTooLong(Bonjour) {
if (Bonjour.lenght > 10) {
return Truc (" la chaîne dépasse 10 caractères ")
}else {
return false (" la chaîne dépasse pas 10 caractères ")
}
}
console.log(isTooLong("bonjour"))

Anonymous • 1 year ago

why am I wrong?
function isTooLong (str){
if(typeof str === "string"){
if(str.length > 10){
console.log("true");
}else{
console.log("false");
}
}else{
console.log("Ce n'est pas un string");
}
}
isTooLong("La vie est belle");

Abcode • 1 year ago

Hello,

You have to use the function "typeof" like that : typeof(str).

And you have to return a boolean value instead of console.log("true") (here you just print a string)

If i use you syntax, i get this :




function isTooLong (str){
if(typeof(str) === "string"){
if(str.length > 10){
return true;
}else{
return false;
}
}else{
console.log("Ce n'est pas un string");
}
}


isTooLong("La vie est belle")


Personaly, i create this function :



function isTooLong(txt){


return txt.length>10


}

Bon apprentissage et bonne journée !

Nassera • 1 year ago

what's the answer of this please ?

EliasAg • 1 year ago

// Réalisez la fonction sortNumbers
function sortNumbers( tInit, tInf, tSup ) {for(var i=0; i<tinit.length;i++){if(tinit[i]<10)tinf.push(tinit[i]);if(tinit[i]>=10) tSup.push(tInit[i]); }}

Tomdevweb • 1 year ago

Il n'y a pas de correction ?? NUL !

Anonymous • 1 year ago

bonjour,

Pouvez vous m'aider voici mon code pour l'exercice :

Accédez aux données d'un tableau et les modifier
-Reprenez tablo qui contient 1, 2 et 3 de l'exercice précédent
-Accédez au 2ème élément du tableau tablo et rangez la valeur dans une variable nommée item
-Remplacez le 2ème élément du tableau par le nombre 5

mon code :

const tablo = [1,2,3];
let item = tablo[1];
tablo.slice(1,1, "5");

merci d'avance

rzafari42 • 1 year ago

Bonjour,
Tu n'as pas besoin de la méthode Slice
Ici un simple table[1] = 5 suffit 😉

Puis slice permet de copier une partie du tableau d'origine en lui indiquant l'index de début et de fin de copie (non inclu) et de mettre le résultat dans un nouveau tableau.
Donc ton code ici va renvoyer un tableau vide.

Par exemple:

const tablo = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let result = tablo.slice(0,5)

Ici result vaudra: [1, 2, 3, 4, 5]

MrKyHn • 1 year ago

Ma solution pour la fonction sortNumbers:

function sortNumbers( tInit, tInf, tSup)
{
tInit.forEach((el)=> (el < 10) ? tInf.push(el): tSup.push(el))
}

Ninzo • 1 year ago

answer at exercise 3 :

function myFct(arg1,arg2){
return arg1*arg2 + arg1 + arg2;
}

// {
module.exports = {
myFct: myFct
};
// }

JonhMrn • 2 years ago

function myFct(arg1, arg2){
return (arg1*arg2) + arg1 + arg2

Anonymous • 2 years ago

Sieur Bruniaux, je vous remercie donc de votre exercice,
bien à vous;
Liam Moreno

Anonymous • 2 years ago

Idem, je bloque sur l'exercice 2, par contre je trouve débile, qu'au final il y est pas de réponse corrigés et expliqués surtout

Abcode • 1 year ago

Salut,

Voila un peu d'aide qui, je l'espère te sera utile. En premier lieu, je te laisse des aides si tu veux essayer encore de chercher une solution. Puis, je te propose une correction possible à la fin.

Appliquez à num l'opérateur d'incrémentation




L'opérateur d'incrémentation est : ++

Écrire

variable1 = variable1+ 1OU variable1 += 1OU variable1++OU++variable1

Te permet dans les 4 cas d'ajouter 1 à la variable1. A noter que tu n'a pas besoin d'écrire "variable =" quand tu utilise l'opérateur ++, c'est implicite que tu ajoutes directement 1 à la variable1 (tu ne peux pas ajouter plus de 1 avec l'opérateur d'incrémentation ++). Attention il y a une différence entre mettre ++ avant ou après, en fait tu indiques à l'interpréteur s"il commence par ajouter 1 (++ devant) ou si tu le fais à fin de ton bloc de code (++ après).
Par exemple,

si j'écris

var a = 30;
var b = a++;
Ca te donne un résultat différent de

var a = 30;
var b = ++a;

Je te laisse tester dans un compilateur javascript pour voir par toi même :)

Concaténez à la chaîne txt la chaîne " est ici une chaîne de caractères"

L'opérateur de concaténation pour les chaines de caractères est +
exemple : "La vie" + " est belle." correspond à une nouvelle chaine de caractère "La vie est belle."
Un code possible donne donc
var ch = "La vie";
ch += " est belle."; (ici j'utilise une syntaxe raccourcis pour ajouter et enregistrer en même temps à la variable ch la chaine de caractères " est belle." Tu peux aussi écrire si tu n'es pas à l'aise avec cette syntaxe ch = ch+ " est belle.")

Inversez la valeur logique de bin


L'opérateur d'inversion est !

Tu le retrouves dans les conditions pour exprimer "différent de" exemple : 6 != 7
Si tu veux inverser une valeur boolean true, tu peux écrire !true. A toi d'adapter cette syntaxe si la valeur true se trouve dans une variable (ici bin).

Ajoutez à flt la valeur contenue dans num

L'opérateur d'ajout pour un nombre est +
exemple :

var a = 0;
a = a+ 6;
ou

a += 6; (syntaxe plus courte pour ajouter et stocker directement dans la variable.)

Voici une correction possible (les lignes commençant par // sont des commentaires):


//Déclaration des variables num,txt,bin et flt
var num = 255, txt = "255", bin = true, flt = 7.23;


//Opérations sur les variables.
num++;
txt += " est ici une chaîne de caractères";
bin = !bin;
flt += num

Voila, bonne continuation et bonne journée.

Rattelise Lyautey • 2 years ago

Answer for Modifiez un tableau avec push et pop

function sortNumbers( tInit, tInf, tSup )
{
var temp=0;
tInit.sort((a, b) => a - b);
console.log("sorted numbers"+tInit);

tInit.forEach((element) => {
if (element <10) {
temp = element;
tInf.push(temp);
}else if(element >=10) {
temp = element;
tSup.push(temp);
}
});

}

Nina.Toinon • 3 years ago

Je ne comprend pas ce que je dois faire pour l'exercice du Tests imbriqués !

Emir • 3 years ago

utilise l'opérateur &&. lis bien l'énoncé. Je t'ai mis en spoil le résultat si tu veux le voir mais essaye d'abord toute seule

function aprec(X){
if( X >=0 && X < 7) {return "Hideux"}
else if (X >=7 && X < 10 ){ return "Moche"}
else if (X >=10 && X < 15) {return "Nice"}
else if (X >=15 && X <= 20) {return "GG"}
else return "BUG"

}

Just Nyan • 3 years ago

Coucou, qui fait NSI la ? si vous faites NSI force à vous bande de bg !

User8455 • 3 years ago

Bonjour à tous !
Encore une fois, algo bon sur JSBIn mais ici ECHEC ...
function aprec(test){
if (test < 7){
return 'Hideux';
} else if (test < 10){
return 'Moche';
} else if (test < 15){
return 'Nice';
} else if (test <= 20){
return 'GG'
} else {
return 'BUG';
}
}

GirlyDev • 2 years ago

const aprec = (note) => {

if(note >=0 && note <= 6){
return "Hideux";
}
else if(note >=7 && note <=9){
return "Moche";
}
else if(note >=10 && note <=14){
return "Nice";
}
else if(note >=15 || note == 20){
return "GG";
}
else {
return "BUG";
}
}
aprec(18)