PROG2 - Programmation impérative TP 08 Les tableaux à deux dimensions



Documents pareils
Examen Médian - 1 heure 30

Corrigé des TD 1 à 5

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

SERVEUR DE SAUVEGARDE POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

Enseignement secondaire technique

Algorithmes et programmation en Pascal. Cours

1. Structure d'un programme FORTRAN 95

Programmation structurée et algorithmes de base en Pascal

Cours Informatique Master STEP

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

TD3: tableaux avancées, première classe et chaînes

Cours d algorithmique pour la classe de 2nde

Algorithmique & programmation

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

EES : Engineering Equation Solver Fiche récapitulative - Marie-Sophie Cabot

Programmation C++ (débutant)/instructions for, while et do...while

Application 1- VBA : Test de comportements d'investissements

Propagation sur réseau statique et dynamique

Arbres binaires de recherche

Organigramme / Algorigramme Dossier élève 1 SI

TP 1 Introduction à Matlab Février 2009

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Recherche dans un tableau

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Licence Sciences et Technologies Examen janvier 2010

Algorithmique et Programmation, IMA

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Algorithmique et programmation : les bases (VBA) Corrigé

Tableau et enregistrement en Pascal et Première version du jeu du puissance 4 I3 - Algorithmique et programmation

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Compilation (INF 564)

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

MINISTERE DE L ENSEIGNEMENT TECHNIQUE ET DE LA FORMATION PROFESSIONNELLE. (Pour l obtention du diplôme d analyste programmeur)

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Chaque ordinateur est constitué de différentes unités de stockage de données (Disque dur, Graveur ) que l on peut imaginer comme de grandes armoires.

Programmation sous Delphi

Utilitaires méconnus de StrataFrame

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Logiciel Libre Cours 2 Fondements: Programmation

Plan du cours Cours théoriques. 29 septembre 2014

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Préparation à l examen EFA en Macro

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Consigne : je remplis le tableau en tenant compte des informations de la ligne supérieure et de la colonne de gauche (droite pour les gauchers)

3 ème Partie : Vérification par tests

Choisir le mode d envoi souhaité. Option 1 : Envoyer un SMS à un nombre réduit de numéros (0 10 )

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Plan du cours. Historique du langage Nouveautés de Java 7

TP JAVASCRIPT OMI4 TP5 SRC

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Grille fluide. Une grille fluide sert à structurer la mise en page, la rendre harmonieuse et faciliter le passage au responsive web design

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Visual Basic for Applications

Introduction à MATLAB R

TRIGONOMETRIE Algorithme : mesure principale

ACTIVITÉ DE PROGRAMMATION

L ALGORITHMIQUE. Algorithme

Travaux publics et Services gouvernementaux Canada. Title - Sujet Services de réparation mécanique. Solicitation No. - N de l'invitation W SO53

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

KL5121. Pour activer des sorties en fonction de la position d'un codeur

CM2 L architecture MIPS32

TP : Gestion d une image au format PGM

Cours 1 : Qu est-ce que la programmation?

Cette Leçon va remplir ces attentes spécifiques du curriculum :

PIC EVAL Dev Board PIC18F97J60

Programme Compte bancaire (code)

Résolution de systèmes linéaires par des méthodes directes

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Procédure de sauvegarde pour AB Magique


Cours de Systèmes d Exploitation

Solutions du chapitre 4

Paginer les données côté serveur, mettre en cache côté client

Représentation d un entier en base b

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Initiation à l algorithmique

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Algorithmes de recherche d itinéraires en transport multimodal

Algorithmes récursifs

CHAPITRE 9. Codes source. 9.1 Insertion brute

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

Comment se servir de l utilitaire de validation?

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

Présentation du PL/SQL

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Gestion de stock pour un magasin

Programmation Web. Madalina Croitoru IUT Montpellier

Transcription:

PROG2 - Programmation impérative TP 08 Les tableaux à deux dimensions Julien Sopena Février 2008 Exercice 1 : Carré magique Un carré magique de taille n est un arrangement en carré de n 2 valeurs. Ces nombres sont disposés de manière à ce que leurs sommes sur chaque rangée, sur chaque colonne et sur chaque diagonale soient égales. Un carré magique est dit normal s il est rempli avec les nombres entiers compris entre 1 et n 2 (inclus). Le dessin suivant représente un carré magique de taille 5 : 15 8 1 24 17 16 14 7 5 23 22 20 13 6 4 3 21 19 12 10 9 2 25 18 11 Question 1 Formuler, par rapport àn, la valeur constante S des sommes des lignes, colonnes et diagonales dans un carré magique normal. Puisque le carré considéré est normal, la somme des valeurs contenues dans l ensemble de ses cases est égale à la somme des n 2 premiers entiers. Et puisqu il y a n lignes dans le carré : n 2 n S = i = S = n(n2 + 1) 2 i=1 Question 2 Déclarer les types et constantes nécessaires à l élaboration d un carré magique. const N_MAX = 10 ; 1

LICENCE MIA - Première année, S2 Correction PROG2 - Programmation impérative page 2/5 type t_indice = 1..N_MAX ; t_cmag = array[t_indice, t_indice] of word ; Question 3 Écrire un sous-programme affichercarremagique qui permet d afficher un carré magique. procedure affichercarremagique(c : t_cmag ; n :t_indice) ; i, j : t_indice ; for j :=1 to n do write(c[i,j] :3, ) ; writeln ; Question 4 Écrire un sous-programme sommeligne qui calcule la somme des valeurs contenues dans la ième ligne d un carré. function sommeligne(c : t_cmag ; n : t_indice ; l : t_indice) :word ; j : t_indice ; s : word ; for j :=1 to n do s :=s+c[l,j] ; sommeligne :=s ; Question 5 Écrire un sous-programme sommecolonne qui calcule la somme des valeurs contenues dans la ième colonne d un carré. function sommecolonne(c : t_cmag ; n :t_indice ; col : t_indice) : word ; i : t_indice ; s : word ; s :=s+c[i,col] ; sommecolonne :=s ;

LICENCE MIA - Première année, S2 Correction PROG2 - Programmation impérative page 3/5 Question 6 Écrire un sous-programme sommediag1 qui calcule la somme des valeurs contenues dans la diagonale NO-SE d un carré. function sommediag1(c : t_cmag ; n : t_indice) : word ; s :word ; s :=s+ c[i,i] ; sommediag1 :=s ; Question 7 Écrire un sous-programme sommediag2 qui calcule la somme des valeurs contenues dans la diagonale SO-NE d un carré. function sommediag2(c :t_cmag ; n : t_indice) :word ; s :word ; s :=s+ c[i,n-i+1] ; sommediag2 :=s ; Question 8 Écrire un sous-programme testcarremagique qui teste si un carré est bien un carré magique normal. function testcarremagique(c :t_cmag ; n :t_indice) :boolean ; valm : word ; valid :boolean ; valm :=n*(sqr(n)+1) div 2 ; valid :=(sommediag1(c,n)=valm) and (sommediag2(c,n)=valm) ; i :=1 ; while (valid) and (i<=n) do valid :=(sommeligne(c,n,i)=valm) and (sommecolonne(c,n,i)=valm) ; i :=i+1 ;

LICENCE MIA - Première année, S2 Correction PROG2 - Programmation impérative page 4/5 testcarremagique :=valid ; Question 9 Écrire un sous-programme carremagique qui construit un carre magique normal de taille n, n impair, en plaçant les valeurs 1, 2,..., n 2 suivant le principe suivant : On place la valeur 1 au milieu de la ligne 1, On continue en montant en diagonale vers la gauche : si cela conduit à déborder en haut ou à gauche, le nombre est placé dans la dernière ligne ou la dernière colonne. Par exemple, 2 est placé dans la dernière ligne, et 23 est placé dans la dernière colonne. Si on atteint une case déjà remplie, le nombre est placé en dessous du nombre précédent ; cette dernière situation se produit chaque fois qu on vient de placer un multiple de N. Par exemple, 6 est placé sous 5 et 11 est placé sous 10. function successeur (x : t_indice ; n :t_indice) : t_indice ; successeur := (x mod n) + 1 ; function predecesseur (x : t_indice ; n :t_indice) : t_indice ; if (x = 1) then predecesseur := n else predecesseur := x - 1 ; procedure carremagique ( c : t_cmag ; n :t_indice) ; i,j :t_indice ; k :word ; for i := 1 to n do for j := 1 to n do c[i,j] :=0 ; i := 1 ; j := (n div 2)+1 ; for k := 1 to sqr(n) do c[i,j] :=k ; if c[predecesseur(i,n),successeur(j,n)] = 0 then i := predecesseur(i,n) ; j := predecesseur(j,n) ; end else i := successeur(i,n) ; end Question 10

LICENCE MIA - Première année, S2 Correction PROG2 - Programmation impérative page 5/5 A l aide de l ensemble de ces sous-programmes, écrire un programme qui construise et teste un carré magique normal d au moins une case. c : t_cmag ; n : t_indice ; repeat write ( Enrer la largeur du carre magique (entre 1 et,n_max, ) : ) ; readln (n) ; until (1<n) and (n<n_max) ; carremagique(c,n) ; affichercarremagique(c,n) ; writeln ; writeln( Le carre est-il magique?,testcarremagique(c,n)) ; readln ; end.