mercredi 23 mars 2011

Examen Programmation PASCAL Exercices Initiation a la programmation

Objectifs : - Utiliser les boucles dans PASCAL.
                  - Créer des procédures et des fonctions sous PASCAL.
                  - Manipuler les chaînes de caractères sous PASCAL.

Initiation à  la programmation

Exercice 1 :     Sur les cartes

On souhaite  que les tas de cartes  soient remplis de la manière suivante  :

– tas 1 : Un pique surmonté d’un nombre  quelconque de trèfles puis par un pique.
– tas 2 : Un trèfle surmonté d’un nombre  quelconque de carreaux,  puis par un trèfle.
– tas 3 : Un carreau  surmonté d’un nombre quelconque de cœurs.
– tas 4 : Un cœur surmonté d’un nombre quelconque de piques.

Q1  . Donner  une suite  d’instructions  en Pascal  permettant d’initialiser  le robot  avec cette situation  initiale.    


On souhaite  atteindre la situation suivante  (qu’on désigne S1  par la suite)  :

Tas 1 : P[T]    Tas 2 : T[K]    Tas 3 : K[C]    Tas 4 : C[P]


Q2 . Donner  les instructions en Pascal qui permettent de passer  de la situation initiale  à  la situation  S1 .     

Q3 . Quelqu’un a écrit en Pascal la fonction ci-dessous, pour déterminer le plus petit numéro de tas différent de t1 et t2

f u n c t i o n  UnAutreTas ( const   t 1 , t 2   :   T a s P o s s i b l e s )   :   T a s P o s s i b l e s ;
var  r e s   :   T a s P o s s i b l e s ;
begin
r e s   :=   1 ;
while  ( r e s  = t 1 )  and  ( r e s  = t 2 )  do begin
r e s   :=   r e s  + 1 ; end  { w h i l e } ; UnAutreTas   :=   r e s ;
end  { UnAutreTas } ;


Q 3.1.  Quel est l’affichage produit  par  l’instruction writeln(UnAutreTas(1,2)) ? Est-ce  l’affichage  attendu  ?      
Q 3.2.  Comment corriger l’erreur commise par le programmeur et rendre  correcte  la fonction UnAutreTas  ?     
Q 3.3.   La  fonction  peut-elle  retourner  la  valeur  4  ?    

Q 4 . On souhaite  réaliser une procédure nommée DeplacerFond  paramétrée par deux numéros de tas t1 et t2. L’action de cette  procédure consiste à déplacer la carte  située au fond du tas t1 vers le sommet  du t2.

    Q 4.1.   Voyez-vous  des  contraintes  à    l’utilisation  de  cette  procédure  ?    
    Q 4.2.   Donner  la  ligne  de  spécifications  de  la  procédure  DeplacerFond.    
    Q 4.3.   Réalisez  la  proc´edure  DeplacerFond.


Q5 . En utilisant la procédure DeplacerFond,  donnez une séquence d’instructions pour passer de la   situation S1  (décrite dans la question  2) à la situation suivante  :

Tas 1 : [T]    Tas 2 : [K]    Tas 3 : [C]    Tas 4 : [P]

Exercice 2 :     Calcul de moyenne


Q 1 . On veut calculer la somme d’une suite de nombres réels tapés au clavier un par un, suite achevée dès qu’un nombre négatif est lu. Par  exemple, si la suite de nombres tapés est 
3.5    1.2    6.1    2.0    -1
la somme est 12.8 (-1 n’est pas compté dans la somme). Et si la suite de nombres est réduite au seul nombre négatif, alors la somme est 0.

    Q 1.1.   Déclarez  les  variables  nécessaires  au  calcul  de  cette  somme.    
    Q 1.2.   Donnez   la  suite  d’instruction  calculant  cette   somme.    

Q  2  . On veut  maintenant  calculer  la moyenne  arithmétique  des nombres  lus, c’est–a–dire  la somme de ces nombres divisées par leur nombre. On suppose qu’au moins un nombre positif est lu.

    Q 2.1.   Déclarez  les  variables  supplémentaires  pour  effectuer  ce  calcul.    
    Q 2.2.   Donnez  les  instructions  permettant  de  calculer  cette  moyenne.    


Exercice 3 :     Sur les chaînes de caractères

Le but  de cet exercice est de réaliser une fonction  de mélange des caractères d’une chaîne. Le mélange souhaité est obtenu

1. en  séparant  la  chaîne  S  à  mélanger  en  deux  chaînes  S  et  S  obtenues  en  prenant  un caractère sur deux, Sl  contenant les caractères d’indice impair, S2  contenant ceux d’indices pairs.

                    timoleon 7→ Sl =tmlo et S2 =ioen

2. puis en concaténant les deux chaînes obtenues
             
                   Sl +S2 =tmloioen

Ainsi le mélange de la chaîne timoleon est tmloioen.

Q1 . Écrivez  les  instructions  permettant  de  calculer  S et  S2  à    partir  d’une  chaîne  S.    
Q2 . Réalisez  la  fonction  nommée  mélange  qui  réalise  le  mélange  souhaité.

0 commentaires:

Enregistrer un commentaire

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites

 

IP