Vous êtes sur la page 1sur 29

Afin d'éviter la fuite de questions, ce rapport ne doit pas être partagé avec les candidats.

Karim Fathallah (fathallah.karim@gmail.com)

Campagne : Développeur Web (Javascript, HTML, CSS) - Senior Langage(s) de programmation : Javascript Langage : Français Date : 26/07/2019

SCORE RANG DURÉE MEILLEUR QUE

91% 1 0H12 99%


1 500 / 1 650 pts /5 / 1H12 des développeurs

Javascript 91%
(1 500 / 1 650)

Connaissance du langage 91%


(630 / 694)

Fiabilité 75%
(260 / 346)

Modélisation 100%
(120 / 120)

Résolution de problèmes 100%


(490 / 490)

1 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 1: [CSS] Gras
Javascript 00:07 / 00:25 20 / 20 pts

Question
Comment afficher un texte en gras en CSS ?

Réponse
font: b
style: bold
font-weight: bold
font-style: bold
bold: activated

Résultat
Réponse correcte
Connaissance du langage +20pts

2 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 2: [HTTP] 401
Javascript 00:09 / 00:30 20 / 20 pts

Question
Que signifie le code HTTP  401  ?

Réponse
Bad Request
Unauthorized
Forbidden
Not Found
Ce code HTTP n'existe pas

Résultat
Réponse correcte
Connaissance du langage +20pts

3 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 3: [JS] Comparaison avec ===
Javascript 00:11 / 00:30 20 / 20 pts

Question
En JavaScript, quel est le résultat de l'expression suivante :

"2" === 2;

Réponse
true
false
null
undefined

Résultat
Réponse correcte
Connaissance du langage +20pts

4 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 4: [JS] Quitter une boucle
Javascript 00:09 / 00:30 20 / 20 pts

Question
En JavaScript, laquelle des instructions suivantes permet de sortir d'une boucle ?

Réponse
exit;
quit();
i=99999999;
break;

Résultat
Réponse correcte
Connaissance du langage +20pts

5 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 5: [CSS] Acronyme CSS
Javascript 00:09 / 00:20 20 / 20 pts

Question
Que signifie CSS ?

Réponse
Create Simple Samples
Clean and Simple Styles
Cascading Style Sheets
Common Sheet Styles

Résultat
Réponse correcte
Connaissance du langage +20pts

6 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 6: [HTML] Acronyme
Javascript 00:08 / 00:25 20 / 20 pts

Question
Que veut dire HTML ?

Réponse
Hybrid Text Meta Language
HyperText Markup Language
High Transfer Meta Linking
Hifi Text Media Links

Résultat
Réponse correcte
Connaissance du langage +20pts

7 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 7: [JS] Java
Javascript 00:08 / 00:25 20 / 20 pts

Question
JavaScript est...

Réponse
Dérivé de Java
Une version web de Java
Sans rapport avec Java

Résultat
Réponse correcte
Modélisation +20pts

8 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 8: [JS] Moyenne
Javascript 02:06 / 03:00 100 / 100 pts

Question
Inplémentez la fonction  average(table) .

La fonction doit renvoyer la valeur moyenne du tableau  table  donné en paramètre.  table  est toujours
un tableau défini, et ne contient que des nombres.

average  doit retourner  0  si  table  est vide.

Réponse

1 // JavaScript code below


2 // Use printErr(...) to debug your solution.
3
4 function average(table) {
5 // Your code goes here
6 if (table.length==0)
7 {return 0;}
8 else
9 {
10 s=0;
11 for (i=0;i<table.length;i++)
12 {
13 s=s+table[i];
14 }
15 return (s/table.length)
16 }
17 }

Résultat
La solution calcule des moyennes
Connaissance du langage +50pts

La solution fonctionne avec un tableau vide


Fiabilité +25pts

La solution fonctionne avec un large jeu de données


Fiabilité +25pts

9 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 9: [JS] Objets
Javascript 00:17 / 00:40 40 / 40 pts

Question
var myJson = {
"cities": [
{"name": "Paris", "pop": 2},
{"name": "London", "pop": 8},
{"name": "New York", "pop": 9}
]
};

Parmi les propositions suivantes, laquelle affiche 2 ?

Réponse
myJson.cities.Paris.pop
myJson.cities[0].pop
myJson.cities['Paris']['pop']
myJson->cities->Laos->pop

Résultat
Réponse correcte
Connaissance du langage +40pts

10 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 10: [HTML] title
Javascript 00:08 / 00:30 40 / 40 pts

Question
Quel attribut HTML peut être utilisé pour afficher un texte dans une bulle d'aide (tooltip) quand la souris
passe sur un élément ?

Réponse
class
title
id
label
alt
style

Résultat
Réponse correcte
Connaissance du langage +40pts

11 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 11: [JS] Evénements
Javascript 00:09 / 00:30 40 / 40 pts

Question
En JavaScript, quel est l'évènement qui est déclenché lorsqu'un élément <button> ou <textarea> perd le
focus ?

Réponse
onblur
onclick
ondblclick
onfocus
onfocuslost

Résultat
Réponse correcte
Connaissance du langage +40pts

12 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 12: [JS] Syntaxe
Javascript 00:09 / 00:30 40 / 40 pts

Question
Qu'affiche ce code Javascript ?

a = new Array();
a['b'] = 'hello world';
alert(a->b);

Réponse
0
hello world
a->helloworld
Une erreur de syntaxe

Résultat
Réponse correcte
Connaissance du langage +40pts

13 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 13: [JS] Erreurs Console
Javascript 00:40 / 00:45 40 / 40 pts

Question
En JavaScript, quelle fonction utilisez-vous pour afficher une erreur dans la console ?

Réponse
console.error();

Résultat
Réponse correcte
Connaissance du langage +40pts

Réponse(s) correcte(s)
console.error();
console.error
console.error()

14 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 14: [CSS] Sélecteur
Javascript 00:12 / 00:25 40 / 40 pts

Question
En CSS, comment sélectionner tous les éléments de type span dans un élément de type p ?

Réponse
p > span
p.span
span p
p span
span < p

Résultat
Réponse correcte
Connaissance du langage +40pts

15 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 15: [JS] Sélecteur JQuery
Javascript 00:15 / 00:45 40 / 40 pts

Question
En JavaScript avec JQuery, quel est le meilleur sélecteur qui permet de sélectionner l'élément suivant :

<div class="box" id="content"></div>

(Une seule réponse attendue)

Réponse
$('#box');
$('#content');
$('.box');
$('.content');
$('box');
$('content');

Résultat
Réponse correcte
Connaissance du langage +40pts

16 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 16: [JS] Utilisation des exceptions
Javascript 00:09 / 00:30 40 / 40 pts

Question
Vous réalisez une bibliothèque en JavaScript. Parmi ces options, laquelle privilégiez-vous pour traiter un
comportement inattendu ?

Réponse
throw "Comportement Inattendu";
quit(-1);
console.err('Comportement Inattendu');
return false;

Résultat
Réponse correcte
Modélisation +40pts

17 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 17: [JS] Rendu de monnaie
Javascript 02:01 / 40:00 400 / 400 pts

18 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question
Les supermarchés s’équipent de plus en plus de caisses automatiques. La plupart de ces caisses n’
acceptent que le paiement par carte bancaire bien qu’une part non négligeable de consommateurs paye
encore en espèces (avec des billets et des pièces).

Une des problématiques rencontrées avec le paiement en espèces est le rendu de monnaie : comment
rendre une somme donnée de façon optimale, c'est-à-dire avec le nombre minimal de pièces et billets ?
C'est un problème qui se pose à chacun de nous quotidiennement, à fortiori aux caisses automatiques.

Dans cet exercice, on vous demande d’essayer de trouver une solution optimale pour rendre la monnaie
dans un cas précis : quand une caisse automatique ne contient que des pièces de  2€ , des billets de  5€
 et de  10€ .

Pour simplifier le problème, nous considérerons que toutes ces pièces et billets sont disponibles en 
quantité illimitée .

Voici quelques exemples de rendu de monnaie :


Monnaie à rendre Solutions possibles Solution optimale 1 Impossible Impossible 6 2 + 2 + 2 2 + 2 + 2 10 2
+ 2 + 2 + 2 + 2 5 + 5 10 10 9007199254740991 ... 10 * 900719925474098  + 5 + 2 * 3

Le rendu de monnaie est exprimé par un objet possédant  3 propriétés :  two ,  five  et  ten  qui,
respectivement, stockent le nombre de pièces de 2€, de billets de 5€ et de billets de 10€.

Par exemple, si on reprend l’exemple n°2 du tableau (6€), on devrait obtenir l'objet:
{
two: 3, // 3 pièces de 2€
five: 0, // 0 billets de 5€
ten: 0 // 0 billets de 10€
}

Implémentez la méthode  change(cash)  qui retourne un objet  contenant les pièces et billets dont la
somme vaut  s . S’il est impossible de rendre la monnaie (comme dans l’exemple n°1), retournez  null .

Pour obtenir un maximum de points votre solution devra toujours rendre la monnaie quand c’est
possible et avec le nombre minimal de pièces et billets.

Données : 0 < c ash  <  9007199254740991

19 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Réponse

1 // JavaScript code below


2 // Use printErr(...) to debug your solution.
3
4 function change(cash) {
5 //Your code goes here
6 var nbten=0;
7 var nbtwo=0;
8 var nbfive=0;
9 if (cash<2)
10 {return null;}
11
12 if (cash%2===0)
13 {
14 nbten=Math.trunc(cash/10);
15 cash=cash%10;
16 nbfive=0;
17 nbtwo=Math.trunc(cash/2);
18 return {two:nbtwo,five:nbfive,ten:nbten};
19 }
20
21 if((cash-5>=0))
22 {
23 cash=cash-5;
24 nbten=Math.trunc(cash/10);
25 cash=cash%10;
26 nbfive=1;
27 nbtwo=Math.trunc(cash/2);
28 return {two:nbtwo,five:nbfive,ten:nbten};
29 }
30
31
32
33 return null;
34
35 }

20 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Résultat
La monnaie est correcte pour une somme de 10€
Résolution de problèmes +40pts

La monnaie est optimale pour une somme de 10€ (1*10)


Résolution de problèmes +40pts

null est retourné quand la somme vaut 1


Fiabilité +40pts

Le programme rend correctement la monnaie quand la somme vaut 31


Résolution de problèmes +40pts

La monnaie est optimale pour une somme de 31€ (2*10 +5 + 3*2)


Résolution de problèmes +40pts

null est retourné quand la somme vaut 3


Fiabilité +40pts

Le programme rend correctement la monnaie quand la somme vaut 8 (4 * 2)


Résolution de problèmes +40pts

La monnaie est optimale pour une somme de 8€ (4*2)


Résolution de problèmes +40pts

Résultat correct et dans les temps avec 9007199254740991€


Résolution de problèmes +40pts

La monnaie est optimale avec 9007199254740991€


Résolution de problèmes +40pts

21 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 18: [JS] Jumeaux
Javascript 01:28 / 15:00 300 / 300 pts

Question
Le jumeau (twin) d'un mot est un mot écrit avec exactement les mêmes lettres (indépendamment de la
casse), mais pas nécessairement dans le même ordre.

Par exemple  Marion est le jumeau de  Romain.

La fonction  isTwin(a, b) retourne  true si  b est le jumeau de  a ou  false si ce n'est pas le cas.  a et  b sont
deux chaînes de caractères non null.

Écrivez le corps de la fonction  isTwin(a, b) .

Réponse

1 // JavaScript code below


2 // Use printErr(...) to debug your solution.
3
4 function isTwin(a, b) {
5 if (a.length !== b.length) {
6 return false;
7 }
8
9 const sorteda = a.toUpperCase().split('').sort().join('');
10 const sortedb = b.toUpperCase().split('').sort().join('');
11
12 return sorteda === sortedb;
13 }

22 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Résultat
Tests simples
Résolution de problèmes +105pts

Insensible à la casse
Résolution de problèmes +65pts

Chaines courtes ou vides


Fiabilité +45pts

Même lettres mais pas jumeaux


Fiabilité +85pts

23 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 19: [JS] Dates
Javascript 01:24 / 03:00 0 / 150 pts

Question
Implémentez la fonction  nextWeek(date)  qui renvoie une date 7 jours après la  date  donnée en
paramètre.

date  est toujours un objet Date défini.

Réponse

1 // JavaScript code below


2 // Use printErr(...) to debug your solution.
3 function nextWeek(date) {
4 // Your code goes here...
5
6
7 var nextweek = new Date();
8 nextweek.setDate(date.getDate()+7);
9 return nextweek;
10 }

Résultat
La solution fonctionne avec la date courante et une date donnée
Connaissance du langage +64pts

La solution ne modife pas le paramètre d'entrée


Fiabilité +86pts

24 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 20: [JS] Paramètres
Javascript 00:18 / 00:40 60 / 60 pts

Question
En JavaScript, quel est le mot clé utilisé pour accéder au tableau des arguments d'une fonction ?

Réponse
arguments

Résultat
Réponse correcte
Connaissance du langage +60pts

Réponse(s) correcte(s)
arguments

25 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 21: [JS] Comparaison de strings
Javascript 00:10 / 00:30 60 / 60 pts

Question
En JavaScript, qu'affiche ce code ?

var x = "2", y = "10";


alert(x < y);

Réponse
true
false
"2<10"
null
Une erreur JavaScript

Résultat
Réponse correcte
Connaissance du langage +60pts

26 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 22: [JS] Nombres Aléatoires
Javascript 00:16 / 00:30 60 / 60 pts

Question
En JavaScript, laquelle de ces expressions renvoie un nombre aléatoire entre 0 et 10 ?

Réponse
Math.rand()*10;
Math.random(0,10);
random()*10;
Math.random()*10;
rand(10);

Résultat
Réponse correcte
Connaissance du langage +60pts

27 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Question 23: [JS] Prototypes
Javascript 00:37 / 01:30 60 / 60 pts

Question
Soit un objet obj définit par le code suivant:

MyClass = function() {
this.a = 'hello';
this.b = 'world';
};

MyClass.prototype.a = 'john';
MyClass.prototype.c = 12;

obj = new MyClass();

Parmis les proposition suivantes, cochez celles qui sont vraies

(Plusieurs réponses attendues)

Réponse
obj.a s'évalue à 'hello'
obj.a s'évalue à 'john'
obj.b s'évalue à undefined
obj.b s'évalue à 'world'
obj.c s'évalue à undefined
obj.c s'évalue à 12
obj.d s'évalue à null

Résultat
Réponse correcte
Modélisation +60pts

28 / 29
Karim Fathallah (fathallah.karim@gmail.com)
Glossaire

Connaissance du langage

La mesure de cette compétence permet de déterminer l'expérience du candidat dans la pratique d'un langage de
programmation. Privilégiez cette compétence si, par exemple, vous recherchez un développeur qui devra être
rapidement opérationnel.

Modélisation

Cette mesure fournit une indication sur la capacité du candidat à appliquer des solutions standard pour résoudre des
problèmes récurrents. Un développeur ayant un bon niveau dans cette compétence augmentera la qualité
(maintenabilité, évolutivité) de vos applications. Cette compétence ne dépend pas spécifiquement d'une technologie.
Privilégiez cette compétence si, par exemple, vous recherchez un développeur qui sera amené à travailler sur les
briques qui structurent vos applications, à anticiper les besoins de demain pour développer des solutions pérennes.

Résolution de problèmes

Cette compétence correspond aux aptitudes du candidat à comprendre et à structurer son raisonnement pour trouver
des solutions à des problèmes complexes. Cette compétence ne dépend pas spécifiquement d'une technologie.
Privilégiez cette compétence si, par exemple, vos applications ont une composante technique importante (R&D,
innovation).

Fiabilité

La fiabilité caractérise la capacité du candidat à réaliser des solutions qui prennent en compte les cas particuliers. Plus
cette compétence est élevée, plus vos applications sont robustes (moins de bugs).

29 / 29
Karim Fathallah (fathallah.karim@gmail.com)

Vous aimerez peut-être aussi