Вы находитесь на странице: 1из 2

D partement STPI e

Jeudi 12 avril 2012

I3 - Algorithmique
Dur e : 1h30 e Documents autoris s : AUCUN (calculatrice comprise) 1 e Remarques : Veuillez lire attentivement les questions avant de r pondre. e Le bar` me donn est un bar` me indicatif qui pourra evoluer lors de la correction. e e e Rendez une copie propre. ` Nutilisez pas de crayon a papier.

Question de cours (3 points)


1. Quelle est la diff rence entre it ration d terministe et it ration ind terministe ? e e e e e 2. Quest ce que lencapsulation ? 3. Quel est le r le de la conception pr liminaire ? o e

Le jeu Sogo (8 points)

` Le Sogo est le nom donn en 1978 a la premi` re edition francaise par la soci t Ravensburger dun jeu e e ee qui existait depuis 1968 aux Etats-Unis dAm rique sous le nom de Score four. Les premi` res versions du jeu e e datent de 1968 alors que le jeu Puissance 4 nest apparu quen 1974. Le Sogo est un jeu dalignement en trois dimensions, avec un effet de gravit : une pi` ce ne peut etre jou e e e e ` a un niveau sup rieur que si des pi` ces ont d j` et jou es a tous les niveaux inf rieur au m me endroit. e e eae e ` e e Le but du jeu est daligner 4 pi` ces de sa couleur le premier. Lalignement peut etre vertical, horizontal ou e suivre nimporte quelle diagonale. (Wikip dia). e

F IGURE 1 Le jeu Sogo (source Wikip dia) e Comme nous lavons vu en cours, on peut mod liser ce jeu de la facon suivante : e Constante LARGEUR = 4 Constante PROFONDEUR = 4 Constante HAUTEUR = 4 Type Contenu = {vide,pionNoir,pionBlanc} Type PlateauSogo = tableau[1..LARGEUR ][ 1..PROFONDEUR][1..HAUTEUR] de Contenu 1. Proposez la proc dure vider, qui permet de vider enti` rement un plateau du jeu Sogo. e e 2. Proposez la fonction hauteur, qui permet de calculer le nombre de pions verticaux pr sents sur une e colonne (identi e par son abscisse et son ordonn e). e e
1. Sauf les dictionnaires pour les etudiants non francophones

3. Proposez la proc dure jouerUnPion, qui permet de jouer un pion sur une colonne (identi e par son e e abscisse et son ordonn e). Cette colonne ne devant pas etre totalement remplie. e

Une analyse descendante (9 points)

Soit lanalyse descendante pr sent e par la gure 2 qui permet de rechercher la position dune chane de cae e ` ract` res dans une autre chane ind pendemment de la casse (do` le sufxe IC a lop ration positionSousChaineIC), e e u e cest-` -dire que lon ne fait pas de distinction entre majuscule et minuscule. a

positionSousChaineIC

longueur

sontEgalesIC

sousChaine

minuscule

F IGURE 2 Une analyse descendante Pour r soudre ce probl` me il faut pouvoir : e e obtenir la longueur dune chane de caract` res ; e obtenir la sous-chane dune chane en pr cisant lindice de d part de cette sous-chane et sa longueur (le e e premier caract` re dune sous-chane a lindice 1) ; e ` savoir si deux chanes de caract` res sont egales ind pendemment de la casse. e e Lop ration positionSousChaineIC retournera la premi` re position de la chane recherch e dans la e e e chane si cette premi` re est pr sente, 0 sinon. e e Par exemple : positionSousChaine("AbCdEfGh","cDE") retournera la valeur 3 ; positionSousChaine("AbCdEfGh","abc") retournera la valeur 1 ; positionSousChaine("AbCdEfGh","xyz") retournera la valeur 0. 1. Compl tez lanalyse descendante en pr cisant les types de donn es en entr e et en sortie. e e e e 2. Donnez les signatures compl` tes (avec pr conditions si n cessaire) des sous-programmes (fonctions ou e e e proc dures) correspondant aux op rations de lanalyse descendante. e e ` 3. Donnez lalgorithme du sous-programme correspondant a lop ration positionSousChaineIC (vous e ne donnerez pas les algorithmes des autres op rations). e 4. Donnez le code Pascal de ce sous programme en ayant au pr alable d clarer les autres sous-programmes. e e

Вам также может понравиться