Vous êtes sur la page 1sur 8

Intra 1015 H2013

file:/1fU sers/pascal/Academic/Cours!IFf 10 15/H20 13/Intra_1 0

IFT1015, Hiver 2013

Professeur: Pascal Vincent

Examen Intra Durée: 2h00

Seule documentation permise: deux feuilles recto-verso (format letter, et sans loupe!) résumant le cours. L'utilisation de tout appareil électronique (ordinateur, ipad, ipod, calculatrice) est interdite durant l'examen, à l'exception d'une montre pour connaître l'heure

Prénom:

Nom:

Code permanent:

Le total de l'examen est sur 100 pts. Veuillez répondre aux questions dans les zones de blanc laissées à cet effet.

On suppose que les programmes sont exécutés dans un environnement où une fonction print existe pour l'affichage (tel que dans CodeBoot).

Remarque: il n'y a aucune erreur de syntaxe dans les extraits de programmes ci-dessous.

Bonne chance!

1 sur 9

13-03-01 14:46

lntra 1015 H2013

file://lUsers/pascal/Academic/Cours!IFT 10 15/H20 13/Intra_1 0

Exercice 1: Variables et expressions (10 pts)

Soit l'extrait de programme suivant, indiquez, à côté de chaque déclaration de variable, la valeur que contiendra la variable et son type. (pour les types string, écrivez la valeur entre "").

var el

var e2

var e3

var e4

var eS

var e6

var e6

var e7

var e8

var e9

var elû

var ell

var el2

var el3

var el4

var el5

var

s

=

1+2;

"el";

"el"+l;

el+2+3;

el+2*3;

"e2"+2*3;

e2+2+3;

e2+2*3;

11 e2"+u2*3";

(e2==el);

("e2"==e2);

("el"==e2);

Math.sqrt(eS)==el;

e4>el

e4>el

e4>el

Il

&&

&&

( el<2

!

(

1(

el<2

el<2

Il

Il

e4>6

e4>6

&& e4>6

"Bonjour";

)

;

)

);

;

var el6

Math.sqrt(s.length-3);

var el7

s.charAt(2)+s.charAt(l);

var el8

s.charAt(s.length-2)+s.charAt(s.length-l);

var

el9

s .charAt( 1 )==("Bonjour" .charAt( 4));

2 sur9

13-03-01 v

u-.

Intra 1015 H2013

file:/1lUsers/pascal/Academic/Cours/IFfl0 15/H2013/lntra_l0

3 sur9

Exercice 2: Affectations (6 pts)

+:46

Pour le programme suivant, écrivez pour chaque print ce qu'il affiche (écrivez-le à droite des//)

var allo,

bonjour,

salut;

al.lo

=

"salut";

bonjour

= allo;

salut "bonjour";

salut = bonjour;

print(allo);

11

print(bonjour);

Il

print(salut);

Il

salut = "au revoir" ; bonjour = "bonjour"; al.lo = "ciao"; bonjour = salut; salut = allo; al.lo = bonjour + + allo;

 

print(allo);

Il

print(bonjour);

Il

pr int (salut);

Il

 

13-03-01 14:46

Intra 1015 H2013

file://fUsers/pascal/Academic/Cours/IFTl0 15/H20 13/Intra_l0

Exercice 3: Exécution conditionnelle (10 pts)

Qu'affiche le programme suivant (donnez la réponse dans l'espace laissé blanc à droite).

var a=S;

var

var b=c;

var t

if

c="a";

=

false;

(b=="c")

{

print( "Chat");

}

eLse

if

(cl="a"

Il

! (a>S))

{

print( "Lapin");

if

(a==("Lapin".length))

print( "Souris");

}

eL se

{

print( "Chien");

}

if

( false) print( "Dragon");

el se

print ("Serpent"); switch(b)

{

case

nell:

 

print( "Tigre");

break;

 

case

"a":

print( "Lion");

case

"b":

 

t=

!tIl

a<lO;

if

(t)

print( "Panda");

el se

print( "Tortue"); break; default:

print( "Escargot");

}

4 sur9

13-03-01 14:46

Intra 1015 H2013

file:/1/Users/pascaUAcademic/Cours/IFTl 0 15/H20 13/lntra_10

Exercice 4: Écriture de fonction (30pts)

Ecrivez une fonction qui prend deux paramètres: une chaîne de caractères, et un caractère (c.a.d. une clJ.aîne de longueur 1). Elle ne doit rien afficher, mais doit calculer et retourner le nombre de fois que le caractère spécifié est présent dans la chaîne. (Remarque: choisissez un nom que vous jugez approprié pour cette fonction).

Écrivez également une deuxième fonction effectuant un test unitaire de cette première fonction (pour vérifier son bon fonctionnement), Le test devra être effectué avec la chaîne "Bonjour Monsieur" et les caractères "o" puis "z". Vous pouvez utiliser soit if et print soit assert pour vérifiez que vous obtenez le bon résultat, libre à vous.

5 sur9

13-03-01 14:

Intra 1015 H2013

file://lUsers/pascal!Academic/CoursllFTl 0 15/H2013/Intra_l;

Exercice 5: Boucles (15pts)

Écrivez pour chacun des programmes suivants ce qu'il afficherait à l'écran.

Programme 4.1

var i

1;

var n

10;

var b

3;

var s

0;

 

1)

wh.ile

(i<=n)

{

if

( i%b==O)

s =

s+i;

{

 

print(i+",

"+s);

}

i

i+1;

}

print( "Finalement i=" print( "Finlernent s="

Programme 4.2

i)

+ s);

+

var

n

=

6;

for

(var

i=O;

i<n;

i++)

{

var

s

=

for(var

j=n-i;

j>i;

j

1)

{

 

s

=

s+j;

}

print(s);

}

Programme 4.3

var

t

=["il",

"etait",

"une",

"fois",

"un",

"petit",

"chaperon",

"rouge"];

for

(var

i=O;

i<t.length;

i++)

{

}

if

}

(i%2==0

=

t[i]

print(t);

&& i+2<t.length)

t[i+2];

{

Écrivez simplement ce que contiendra le tableau après la boucle (c'est ce que le print final affichera).

7 sur9

13-03-01 14:46

Intra

1015 H2013

file:/1lUsers/pascal/Academic/CoursllFf 10 15/H20 13/lntra_1 0

Exercice 6: Appels de fonctions et passage de praramètres (13

pts)

Dans le programme suivant, écrivez à côté de chaque print ce qu'il affiche (écrivez-le à droite du Il)

var

f

=

function(a,b)

{

 

if

(b>=a)

{

 

b

=

b*2;

 

a

= b;

 
 

}

return

 

a;

}

var

a,b;

 

a

=

1;

b

=

2;

f ( a,b);

 
 

//

11

print(

 

f(a,b)

) ;

11

 

//

print(

 

f(b,a)

) ;

11

a

=

f(a,b);

 

print(a);

 

//

print(b);

11

a

=

1;

b

=

2;

c

=

f(b,a);

 

print(c);

 

11

print(

 

f(c,c)

) ;

11

print(

a==

f(a,b)

);

//

print(

2*b

 

==

f(a,b)

) ;

11

print(

b

=

f(b+b,a)

);

//

print(b);

 

11

8 sur 9

13-03-01 14:.:,;

Intra 1015 H2013

file://fU sers/pascal/Academic/Cours!IFT 1015/H20 13/lntra_l 0

Exercice 7: Fonction de recherche dans un tableau bidimensionnel (16pts)

Écrivez une fonction nommée maxEtPosition qui prend en paramètre un tableau à 2 dimensions (matrice) de nombres. La fonction doit trouver l'élément du tableau ayant la valeur maximale en se souvenant de sa position (ligne, colonne). Elle devra retourner un tableau de taille 3 contenant: la valeur maximale trouvée, son indice de ligne et son indice de colonne. Remarque: si le tableau bidimensionnel reçu en paramètre contient plusieurs éléments ayant la même valeur maximale, retournez les informations du premier tel élément que vous avez rencontré lors de votre parcours.

9 sur9

13-03-01 14:46