Download as pdf
Download as pdf
You are on page 1of 34
Exercices de programmation} Pascal Exercices de programmation Pascal EEIGM - ENSGSI 1998/1999 APPRENDRE A PROGRAMMER EST INCONTOURNABLE + parce qu'un minimum de programmation est néeessaire pour certains cours et peut Pétre pour la vie professionnelle ; + pour vraiment comprendre la difficulté de la qualité en programmation ; * pour permetire de choisir P’outil adéquat entre langage et logiciel, entre L3G et L4G ; + pour la formation intelleetuelle (approche “constructiviste” différente des maths) + + et pour comprendre comment réagit un ordinateur, Mais ici apprendre 2 programmer n'a surtout pas pour finalité de devenir un programmeur professionnel. BUTS DU SEMINAIRE : Savoir aborder, analyser, programmer des problémes simples ; connaitre les concepts fondamentaux de 1a programmation, indépendants du langage ; structurer les connaissances et le savoir faire. + analyser : définir un probléme pour parvenir & exprimer l’algorithme de résolution. fi étre sensibilisé aux méthodes de spécification descendantes pour y parvenir. + programmer : exprimer l'algorithme dans un langage de programimation, Pascal. fl connaitre {a syntaxe de Pascal, fl comprendre le fonctionnement des instructions, fet savoir appliquer des normes de programmation, A maitriser environnement de programmation et le systme d’exploitation. + valider : fi laborer des jeux de tests ; fl améliorer le programme pour lui donner des qualités professionnelles. L'objectif est de permettre de réaliser des programmes simples, en insistant sur es qualités a attcindre: correet, lisible, fiable, robuste, modulaire, maintenable, réutilisable... La sophistication ne fait pas partie des qualités demandées. CONTENU DU SEMINAIRE : + bases : traitements séquentiel, conditionnel, itératif; variables, tableaux; procédures et fonctions; localité + compléments : récursivité; calcul numérique et non numérique; modularité, programmation structurée, spécification descendante; intégration de composants logiciels; normes de programmation ; structuration des données. + place de la programmation classique dans les outils informatiques de Pingénieur ORGANISATION : L'enseignement de la programmation en période bloquée et dense est tres efficace. Une pratique intensive et une aide individualisée concourent 3 la réussite de Vapprentissage. ‘Aussi fa promotion est répartie sur deux semaines par petits groupes. Chaque séance débute par un bref amphi suivi de TD intensifs en salle ordinateurs. Méthode: un minimum de théorie, lire et surtout écrire des programmes, pa intensif sur machine, Matériel informatique : un poste de travail par éleve. Site web du sminaire : nip#/dafne.mines.u-nancy.tr-tisseran/EEIGM/ Exercices de programmation Pascal EEIGM - ENSGSI 1998/1999 Les séances suivent une progression qu'il faut respecter, en ajustant sur le niveau de chaque groupe. De méme les exercices proposés sont également progressifs, Ils ne seront généralement pas tous traités aw cours de la séance, aussi un polycopié de corrigés est remis aux Gloves pour leur permetire de parfaire leur assimilation, et pour pouvoir réviser le langage Pascal plus tard si la nécessité s'en fait sentir, A chaque séance correspondent des exercices facultatifs, destinés aux groupes forts et aux éleves passionnés. Les encadrants sont seuls juges de la progression d respecter et des exercices & traiter. ° séance — premier contact avec Pascal 1— Amphi : Notion de programme Objectifs et plan, Pourquoi et comment apprendre A programmer ? Structure générale d'un programme, 2— TD Prise en mains *de la machine (PC), + du systéme d'exploitation (Windows NT), * du compilateur Borland Turbo Pascal }, + du langage (Pascal) ITD par groupes de niveau, un ou deux éléves par ordinateur. 3 programmes courts sont fournis pour cette premidre expérience. + S'initier au compilateur et au systeme : Editeur, commandes, premiers contacts. Entrer et exécuter un programme : Entrer un programme. Essais avec différentes données. Metre au point : Commandes de débogage. + Lecomprendre : Fonctionnement des programmes instruction par instruction, Structure générale] Jdes programmes. + Le modifier : Modifications. Essais. Mise au point |Exercices facultatifs, pour ceux qui iraient vite : la formule de Viete. Exereices de programmation Pascal EEIGM - ENSGSI 1998/1999 2° séance — itérations et tableaux 1— Amphi : développement d'un programme. Exemple de développement d’un programme. Notions d’itération et de récurrence, Boucles, impressions. Procédures. Boucle for. Ikérations pour parcourir un tableau. 2— TD en salle machine : itérations, Exercices sur les itgrations pour appréhender les notions de tableaux, de matrices, diindices, de procédures, *Le 1° exercice fait tabuler des fonctions simples, comme en amphi + Le 2° fait écrire une boucle for, pour reconnattre si un entier est premier. + Le 3° fait initialiser et afficher un tableau 2 deux dimensions. + Le 4° et le 5° font manipuler des indices de matrice. + Le 6° manipule un tableau & une dimension. + Le 7° apprend a lire au clavier wn élément dans une matrice + Le 8° surle triangle de Pascal, apprend jongler avec les indices dans les matrices. + Exercice supplémentaire si nécessaire : suite de Syracuse. 3— Travaux personnels encadrés. Lorsque les exercices sont bien avancés, une heure environ avant la fin de la séance, choisir son travail : poursuivre les exercices, revenir sur un exercice ou une notion, etc. |4— Test, pour juger de l'assimilation des notions de base. ‘Travail pour Je lendemain : }+ Lire dans le poly pages 62 4 77, (§ 5.2 a 6.8) : structure d'un programme, déclarations, indentation, structures de contrOle, affectation, variable, expressions, appel, instruction lcomposée, itérations, for et page 101, (§ 7.4 tableaux) 3° séance — procédures, fonctions, booléens i— Amphi : procédures Procédures, fonctions, paramétres. Mécanisme des param@ires valeur et variables. Tableaux et matrices. Conditionnelies : if, booléens 2— TD en salle machine, + Exercice sur l'algebre de Boole. + Exercice sur les itérations et conditions : décomposition en facteurs premiers. + Exercices de calcu! vectorie! et de calcul matriciel : parcours avec itéra conditions, sous forme d'une procédure accompagné d'un programme de test. Ce [des exercices simples qu'il faut savoir faire sans hésiter. ions et sont} + Exercice facultatif : le nombre d’or. suite! Exercices de programmation Paseal EEIGM - ENSGSI 1998/1999 3? sdance - suite 3— Travaux personnels encadrés. Travail pour le lendemain : + Lire dans le poly pages 77 8 83, § 6.9.2§ 6.11 while, repeat, if pages 89 2 100, § 7.1 4 § 7.3 integer, boolean, intervalle, real, chaines pages 121 4 131, chapitre 9 fonctions et procédures jusqu'au § 9.4.4 p 131 4° séance— analyse et modularité 1— Amphi : analyse et paramétres. Pourquoi faut il une démarche d'analyse. Exemple de la construction du tri par bulles. Quiest-ce qu'un algorithme ? Importance de ia modularité, Mécanisme des paramétres, de la localité, Exemples d’effets de bord vicieux. 2— TD sans machine ; exercices de réflexion + Exercices sur les effets de bord. + Calcul en représentation exacte : définition dune bibliothéque de composants. + Facultatif : Réflexion sur les tris : algorithmes, efficacité, complexité. 3— Travaux personnels encadrés. + Rechercher sur le web des bibliothéques de composants pour faire du calcul en représentation exacte, + Faire tourner sur machine les programmes correspondants aux exercices de la séance, 5° séance — itérations et récurrence itérations, itérations par récursivité, : suites récurrentes et mécanismes Pascal, notion de variable. While, repeat, for Récursivité. 2— TD : passage des programmes de la séance précédente. * Exécuter un programme de tri. puis + Exercices de récursivité: pged, Fibonacci, McCarthy, Ackermann, triangle de Pascal, + Exercices sur les itérations : em + Exercice sur la modularité : intégrer au calcul de e ou de m les composants logiciels ramenés du web, + Commencer la réflexion du jeu de la vie, qui sera traité demain. Lire !’énoncé. * Exercices facultatifs : Cryptanalyse, Crible d’Eratosthéne. suite Exercices de programmation Pascal EEIGM - ENSGSI 1998/1999 3? séance - suite 3— Travaux personnels encadrés. Terminer si nécessaire les exercices. |4— Test pour juger de Passimi ion des bases de la programmation et de Pas 5— Pour la séance suivante, lire 'énoncé du projet "jeu de la vie". Travail pour le lendemain : 1) Lire dans le poly d'exercices I'énoneé du “jeu de Ia vie", pp. 22 & 25. Nous Vanalyserons et le programmerons ensemble. 2) Lire dans le poly de cours Pascal pages 9.4 17, des programmes pour découvrir Pascal pages 41 & 50, analyse d'un probleme pages 59 & 61, modules et blocs 6° séance — informatique et langages 1—Amphi_ = place de la programmation dans Pinformatique. Place des L3G et L4G dans les outils informatiques. Implications “sociales” : droits de propriété, virus et intrusions, législations. 2— TD sans ordinateur : analyse du projet, programmation. Exercice “jeu de la vie” Analyse en groupe du probléme avant d'en commencer individuellement la programmation. 3— Test final de niveau (1h 15) qui permettra de faire un bilan précis des acquis. 7° séance — méthodologie 1— Amphi : Spée Cycle de vie du logiciel. Assurance qualité, 16 des problémes de qualité du logiciel. 2— TD : Mise au point sur machine du projet. ‘Terminer le projet. Exercice supplémentaire facultatif : tests de QI. 3— Evaluation . Exercices de programmation Pascal EEIGM - ENSGSI 1998/1999 Compte rendus de TD Chaque éleve doit rendre au cours du séminaire un compte rendu de TD, sous forme d'un exercice rédigé. Un compte rendu doit comporter sous forme concise mais compléte : Pénoneé précis du probléme que l'on cherche & résoudre analyse : hypotheses, justification du choix des algorithmes, découpage en modules, les données et les résultats, 3° Je programme commenté + des jeux d’essais commentés et les résultats obtenus Se une conclusion sur Ia validité du travail effectué, ses limites, ses prolongements possibles Evaluation La note finale tiendra compte de l'ensemble des aspects suivants, dans l'ordre d'importance décroissante : - Ianote de test final - la progres ~ fe travail ~ la motivation et du comportement. - lanote du compte rendu de TD - les 2 notes de tests de fin de journée Exereices de programmation Pascal EEIGM - ENSGSI 1998/1999 remiers exer 1) Taper et exéeuter chacun des programmes suivants lprogran ecco; (calcul itératif aun PCCD) 1 lrar a,b:incegers lnegin write('ai readin(a); weite(" readin(b); hi hi while ac>b do if a>b then -b writeln(a); readin (pour Borland Turbo Pascal) lend. program Noyenne.de_n.valeure; 2 var n, isinteger; s,v,m:real; begin repeat read(n) ; if neO then weiteln(‘erreur! (n>0!)") until m0; 120 for i: begin read(v): to n do writeln('moyennes ',m); readin (pour Borland Turbo Pascal) lena Exercices de programmation Pascal EEIGM - ENSGSI 1998/1999 program factorielle: 3 var n:integer: fact:real; i:integer: begin write('actorielle de '); readln(n); fact for i:=1 to n do fact:=fact*i; writeln(n,'! = ', fact); readin {pour Borland Turbo Pascal) Jend. 2) Décrire le fonctionnement de chaque programme, par oral, instruction par instruction, en examinant le programme 3) Déerire le fonctionnement, sur dexécution par la pose de points d'arrét et l'exécution pas a pa Te mécanisme 4) Modifier ces programmes, pour les traitements suivants : #1 : imprimer les valeurs intermédiaires de a et b, les numéroter, #2: afficher un message d’invite A chaque lecture. #3: imprimer la suite des factorielles inféricures & 100 000. Exercice facultatif supplémentaire, pour ceux qui vont vite : la formule de Vidte (Gnoneé en fin de poly). Exercices de programmation Pascal EEIGM - ENSGSI 1998/1999 1— Tabuler une fonction. ‘Tabuler par une boucle for les valeurs des fonctions x, x? et x3, pour x de -5 4 15. Indications : 4 Vamphi nous avons vu le programme suivant program TableDesinusztpecosinus; { tabuler les fonctions sinus et cosinus ) procedure tete; (imprimer L‘en-téte de 1a table) begin writeln{‘angle':15, ‘sin’ :15,'cos':15) end procedure pied; {impriner le pied de 1a tabl Begin writeln{’ ':15,‘cos's15, ‘sin’ 15, ‘angle':15) end) procedure table; (inprimer 1a table des sinus et cosinus) var angle: integer; Eunotion R(d:integer) :xeal; {conversion en radians d'un angle en degeéa) agin Rr=d/180.0*3.141592653509793238 end; (function R) begin (table) for angle:s0 to 45 do {calcul de degré en degré) weiteln(angle:15,sin(R(angle) ):15:10,cos (Riangle) } :15:10,90-angle:15) end; (table) begin tete; table; pied; readin (pour Borland Turbo Pascal} end. 2— Reconnaitre un nombre premier. Entrer un nombre N au clavier. ae Programmer une boucle for qui affiche les restes des divisions successives de N. par tous les entiers 22 et 7(541) then échanger Tj] et TI3+1] Gchanger s'écrit en Pascal: x:=?{41; rigell: 1) simuler & {a main Vexécution de cet algorithme, en examinant & chaque étape le contenu du tableau et les valeurs de indices de boucle. 2) In deuxigme boucle n’a pas besoin daller jusque n-1 : pourquoi ? Modifier Palgorithme. 3) la premidre boucle n’a pas besoin d’aller jusque n : pourquoi ? Modifier lalgorithme. 2. Exercice facultatif : Chercher d’autres méthodes de tri. Les décrire. Evaluer leur performance: le nombre d’opérations est il k ou bien est il kn loggn? Les programmer. Les tester. En mesurer la performance sur machine. Le temps d’exécution est il en o(n?) ou bien en o(n logan) ? Combien vaut le Facteur k théorique ? ‘On pourra remplir les tableaux trier avec des nombres tirés au sort sur PC en QuickPascal Is fonction random reourne un nombre récl entre 0.0 et 1.0; te genérateur aléztoire peut tre iitialiséalgatoirement par appel & Ia procécre randomize Sur Mae en ThinkPascal la fonction zandom rend un nombre algatoire entier compris enue -32768 et 32767: Te générateur algatoire peut re initalisé en modifiant ta variable RndSeed (On pourra aussi mesurer le temps d'exécution : sur PC en QuickPascal la fonction GetTime retoume eure (le programme doit componter uses DOS) GetTime(var heure, minute, seconde, centiemes : integer) 0..23' 0..59 0.59 | 0.99 Is Exereices de programmation Pascal EEIGM - ENSGSI 1998/1999 La société de services en informatique « X DATA » a été chargée de réaliser le logiciel dun terminal de payement par carte de erédit, terminal qui sera lové & des commergants. Pour maximiser s autres sociétés : n cash-flow, X DATA a sous-traité la réalisation du logiciel & deux — ZBROGLOWYTCH ZLYPRNCK GROBT, dans un pays de l'Est ot les salaires @ingénieurs sont bas malgré la compétence élevée. Cette société a réalisé le module de calcul du code secret. Ila été testé intensivement, et fonctionne correctement, — YIN GO SHU, en Indonésie, Ceite société a développé tous les autres modules, & exception du programme principal. Elle a livré une version beta de ses modules il y a six semaines, Depuis, la crise du sud-est asiatique est passée par la, la société a fait faillie. Les programmeurs s'étant tous fait hara kiri, fa mise au point définitive des modules est compromise. Le programme principal a été réalisé par Kevin DUGSEM, éléve de premitre année dans une école européenne d’ingénieurs, qui vient de suivre un séminaire de programmation, et neven du beau-frére par alliance de ta secrétaire du directeur de X DATA. Il semblerait que ce programme comporte des errcurs.. X DATA doit livrer une version de démonstration de son logiciel impérativement pour ce soir 4 17h30, sous peine d’indemnités de retard qui conduiraient a la faillite, Votre mission consiste & mettre au point & temps ce logiciel. Vous trouverez le programme dans son état actuel !'URL : http: //dafne.mines.u-nancy.fr/~tisseran/EEIGM/documents/test2.htm Pour le ramener sur voire PC sous Turbo Pascal, vous allez = sous Netscape sauvegarder en format texte, dans un fichier U:\est2.txt (commande « Enregistrer sous », attention 2 prendre le format texte et non pas html) ~ quitter Netscape, lancer Turbo Pascal ~ ouvrir le fichier U\Mext2.txt contenant le texte du programme = sauvegarder sur Us\test2.pas le programme source Puis vous corrigerez, les fautes de syntaxe. Enfin vous testerez le fonctionnement du programme. Selon Kevin, qui avait commencé Ja mise au point en décembre 199¥ Ie logiciel fonctionne parfaitement, Selon un testeur qui aessayé le logiciel avec sa carte de crédit personnelle toute neuve, fin janvier 1998, le programme plante, Le code secret de la carte est 2183. Si vous renconirez, une faute de fonctionnement, notez-la ct identifiez Ia bogue. Dans l'attente de cette mise au point, confiant en votre diligence, et vous en remerciant par avance, nous vous prions de croire en l'expression de notre considération la plus distinguée. Les professeurs 16 Exercices de programmation Pascal EEIGM - E 1998/1999 IES iteration ee Igorithmique: Exécuter un programme de tri. 1— Suite de Fibonacci. Programmer récursivement le calcul du n't terme de la suite de Fibonacci (exercices facultatifs, 3° séance) F(n) = F(n-l) + F(-2) avec FQ) =0 et F(I)=1 Placer des ordre d’écriture pour suivre le déroulement de I’algorithme. 2— Fonetion étrange de MacCarthy. MacCarthy(100) vaut 91 avec les définitions suivantes : pourn>!00 MacCarthy (n) = n-10 pour ng100 MacCarthy (n) = MacCarthy(MacCarthy (n+111)) Exercices facultatifs complémentaires sur_la_récursivité 3— Fonction d'Ackermann. Elle est définie par les équations récurrentes suivante: Ackermann (i, j) = Ackermann (i-1, Ackermann(i, j-1)) Ackermann (i, 0) = Ackermann (-1, 1) Ackermann (0,j) = j#1 4— Triangle de Pascal. Calculer directement par récursivité les combinaisons (2° séance) : CyP= Cy.1P"! + Cy? pour n et p donnés, avec Ob pgcd(a,b) = pged(a-b,b) sinon pged(a,b) = pgeda,b-a) 7 Exercices de programmation Pascal EEIGM - ENSGSI 1998/1999 ‘aleuldee== Calculer e par son développement en série se o Dai ie Caleuler m par fa formule de John Machin : m= 16 AtnL-4 Atan gL 16 Atan 5-4 Aan a5 Pour calculer la valeur de m, ta premigre idée revient & partir de la formule de Leibnitz m=Atan(1) et de calculer l’are tangente par son développement en série : Alana) =x Atan(x) &! Oe Vx tel que -I 7| — 3 NAISSANCE. Sur une case vide comportant exactement trois cellules voisines, il nait une cellule a la génération suivante. *E}—> CE Ces régles sont simultanées pour une génération donnée : la naissance d'une cellule sur une case n’influe pas sur la survie ou la mort des cellules de la génération précédente. Autrement dit, les seules cellules que l’on doit prendre en compte pour Pétablissement de la génération future sont celles de la génération “actuelle”. Pour réaliser le programme de simulation, les générations successives peuvent étre représentées dans un méme tableau a deux dimensions G —Génération— en donnant & chaque élément du tableau Ia valeur 1 pour la présence dune cellule, la valeur O pour absence de cellule. Si le tableau a Xmax colonnes et Ymax lignes : const trax = 25; (I"univers torique est représenté dans un tableau) Ynax + 6; (dei: 6 lignes 25 colonnes) type univers = arvay(1..tmasc, 1..Ymax) of 0 ver G : univers; {coordonnées d’affichage du tableau 23. xmax } i ee He ete e tee t Zee el C - ~ ~ i ¢ mx 7 TLD Un premier tableau auxiliaire ¥ —Voisins— servira & compler Je nombre de voisins de chaque cellule : Vii_ = ({Guy)-Gij_u de i-1 4 i+, v de j-1 a i+] 20 Exercices de programmation Pascal EEIGM - ENSGSI 1998/1999 Un second tableau auxiliaire P —Prochaine génération— permettra de construire 1a nouvelle génération avant de la faire devenir, d'un coup, la génération en cours : SGi=T alors si(Vy=2ou Vj=3) alors Py = 1 SURVIE sinon Pi MORT. si Gi=Oalors si (Vy =3) alors Py = 1 NAISSANCE sinon Pi MORT ce qui peut se programmer = Si(Vi= 3) alors Py = 1 SURVIE_ou NAISSANCE sinon si (Vj =2) alors Py= Gi CONSERVATION sinon Pi MORT puis le programme effectue le basculement a la nouvelle genération = Gin P Dans notre simulation, nous allons utiliser un espace fini, rectangulaire, de géométrie torique, Cela revient & identifier le rectangle avec la surface dun tore qui aurait &é dgcoupé selon un petit cercle et un grand cercle puis aplati, c’est A dire que nous considérons que les cétés droits et gauches du rectangle se rejoignent, ainsi que les cdtés haut et bas, Par ce biais on confine les populations dans le domaine considéré tout en évitant les effets de bord, chaque case posséde effectivement hit voisines. Attention cependant, la notion de case voisine posséde des propriétés déconcertantes ! En effet lorsqu’une case est intérieure au domaine, ses voisines sont identiques a celles qu'elle aurait sur Je plan infini_ (quatre voisines adjacentes orthogonales et quatre voisines adjacentes diagonales). En revanche, pour une case “de bord” ou “de coin”, les cases voisines sont disposées “de l'autre cOté"(figure 6). Ceci peut se programmer par une fonetion qui catcule x4! et recentre le résultat dans Vintervalle I..n: function ada (i,xn : integer) ; integer; ( calcule x recadré dans 1..n ) begin if (lexdel then addran else if (ieclon then addi=1 else addi-iex end Un autre aspect déroutant de la vie sur un tore est qu’un méme organisme peut se présenter 8 V'écran sous plusieurs formes différentes, selon la fagon dont on découpe le fore sur lequel il vit. En effet une permutation circulaire des lignes ou des colon: laisse invariant le tore ; si par ce procédé on peut passer d'une structure de cellules & une autre, ces deux structures représentent Je méme organisme (figure 6). Choisissez. maintenant quelques organismes simples (a trois, quatre ou cing cellules adjacentes, soit orthogonalement, soit diagonalement ) et étudiez leurs générations successives. Un peu d’expérimentation vous montrera que dans quelques cas ces organismes meurent mais que le plus souvent ils conduisent soit 4 des organismes tables, c*est A dire identiques de génération en génération, soit & des oscillateurs, c'est A dire des organismes qui se retrouvent identiques A eux mémes et 2 la méme place au bout d’un certain nombre de générations appelé la période de 'oscitlateur. L’affichage d’une génération n’a pas besoin d’utiliser des graphismes élaborés, car il s’agit de valider lalgorithme de simulation et non pas de faire une belle interface. On peut par exemple programmer une procédure qui affiche des ‘' et des blancs : procedure affichers var x.y : integers Begin ‘eritein; weiteln(tunGeneration): for yie 2 to wimax do begin (parcours ligne @ Ligne) for x:= 1 to imax do. (parcours des colonnes dane une Ligne) if Gly;x) = 1 then write("o') elge write(’ ")7 weiteln end ends Le programme principal pourrait avoir la forme suivante : var richar; .. initialisations; repeat calcul; affichage; readin(r) untdl ro-' *) Comment ruser ? En cas de besoin, des modules du programme peuvent étre déchargés depuis le web hhetp://dafne.mines.u-nancy.fr/~tisseran/cours/pascal/jeu.de_la_vie-heml 20 Exercices de programmation Pascal EEIGM - ENSGSI 1998/1999 i Ter Tiere: | i tier Tei Tere! Ter Terer_t rrttt ert Pris Perr petit tte ter Ee oie | jet ier tf fel fel i it teiei fei iet : | le, jet Titel Tel it tel jet 7 ttere, | lier ert lem 11 lel lel Cer er TT foto] eee a er eT} 4. Queiques formes de vie stables sur le plan injiné Terao Tere 5. Quelquer voisseaux sur le plan injini fale rie Pela eed tr] 7 Ti eee] ere 22 Exereices de programmation Pascal EEIGM « ENSGSI 1998/1999 Ea octopre 1970, date ou oremer Ro amelede Marin Gardner, joan Conway avant fait la conjecture aw aucun ora fusme ne pouvait eroitre indéiniment. EEE SS —— —— = 2 ET ES Un mots apres des chercneurs aus M.L.T. trouverent, 3 l'aide d'un orcinateur. ce quils appeigrent un « canon @ vais seau » (ceprezenté sur ia figure 7). Cette configuration ejecte un vausseau a cing ceilules a ia 40¢ generation. puis osciile avec une période de 30 génerations. en Gectant un nouveau vaisseau & chaque période. Comme chaaue vaisseau ajoute Ging cellules & organisme. cet orga- nisme croit indéGniment et la conjecture de J. Conway ext done réfutée. Une question venant navurellement & esprit a propos du jeu deJ. Conway est la suivante; existe-til un organisme aut ne posséde pas d'antéeédent, c'esti-dire qui ne peut étre engendré par un autre organisms ? Longtemps conjectures, cos wadams » (ou Eden pour les Angio- saxons) n'ont éé découverts gue beau- coup plus tard, Le premier a ctéconsiruit en 1974 par Jean Hardown-Dupare ce VUniversté de Bordeaus i surun rectan- ale 6 x 122. Par la suite, Roger Banks et Steve Ward du MIT en ont eonstrutt ‘ua plus peuit baptisé « orphelin », sur wun rectangle 9 33 ‘Avant d’en terminer avec fe jew de Ia vie sur un plan infin je conseille au lecteur de ne pas se lancer « &lamain » dans étude des générations successives du pentomina A ci-demous Cher Thee Corer Ter Tat Tne se stabilise qu’a la 1103 généra~ tion en donnant 19 formes stables (pas toutes diférentes) inserites dans un ree- tangle SI X 109, cequi ext pour le moins jimprévisible : John Conway aime ce cété «« imprevisible » de la reproduction, (a) (bo) {1 (a) i) an (a) th) 7. Le canon & veisseau du M.LT. oT 7 Ter [Ter | jer | jet Li ie} {ite Torer CO tr rH Tei | elit ott [Ter Tiel Tite LLiie jie [TTT COMI eT Tet tt tt Sere [ere Te] Exercices de programmation Pascal EEIGM - ENSGSI 1998/1999 1— Formule de Viete : soient deux suites récurrentes u et v alors quand ne, Vérifier par un programme cette assertion, La convergence est-elle assez rapide pour ne pas introduire trop d'ecreurs d'arrondi ? 2— Généralisation: soient deux suites récurrentes u et v: { wo=Vi) van e4/ EB | { =U0) t= 22} alors quand neo uy f(x) et val En choisissant certaines valeurs pour les fonctions U et V, on peut obtenir ainsi un grand nombres de lignes trigonométriques et hyperboliques f: UG) = V(x) = f(x) = conditions x Thx ‘Ate sin (x) “TEKST Tix? x Are cos (x) “Tex=s1 i Are tg ix? lax? 1 aon ‘Are cote @) Lex? Vix? Hx-J) T+ rTncey x50 : ¥x241 Arg sh (x) x21 x Aigeh Ket Aigin@y Tex we we Les rests de QL: EEIGM - ENSGSI

You might also like