Correction Informatique. Session Juin 2009

Documents pareils
Algorithmique & programmation

Examen Médian - 1 heure 30

LES TYPES DE DONNÉES DU LANGAGE PASCAL

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Corrigé des TD 1 à 5

Utilitaires méconnus de StrataFrame

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

Recherche dans un tableau

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

Introduction à MATLAB R

Chap III : Les tableaux

Algorithmes et programmation en Pascal. Cours

Algorithmique et programmation : les bases (VBA) Corrigé

Cours Informatique Master STEP

Définitions. Numéro à préciser. (Durée : )

1. Structure d'un programme FORTRAN 95

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

Programmation Objet - Cours II

Compilation (INF 564)

Approche Contract First

Application 1- VBA : Test de comportements d'investissements

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Utilisation d objets : String et ArrayList

= constante et cette constante est a.

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

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Propagation sur réseau statique et dynamique

Cours 7 : Utilisation de modules sous python

Matrice d accès. Master SEMS, Pierre Paradinas. October 16, 2013

Création d installateurs pour Windows avec InnoSetup

Plan du cours Cours théoriques. 29 septembre 2014

OCL - Object Constraint Language

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

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Cours d algorithmique pour la classe de 2nde

Cours d initiation à la programmation en C++ Johann Cuenin

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

STAGE IREM 0- Premiers pas en Python

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

CORRECTION EXERCICES ALGORITHME 1

Ordonnancement temps réel

Cours Bases de données 2ème année IUT

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0

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

Problèmes liés à la concurrence

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

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)

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin Algorithmique 1

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Correction TD algorithmique

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Enseignement secondaire technique

Adama MBODJI MBODJ.SYSTEM

L ALGORITHMIQUE. Algorithme

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

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

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

Algorithmique et Programmation, IMA

Génie Logiciel avec Ada. 4 février 2013

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

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

Représentation d un entier en base b

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Package Java.util Classe générique

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Programme Compte bancaire (code)

Architecture des Systèmes d Information Architecture des Systèmes d Information

Cours d Informatique

Programme awk------introduction rapide

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Les deux points les plus proches

TRIGONOMETRIE Algorithme : mesure principale

1 Imputation par la moyenne

ALGORITHMIQUE ET PROGRAMMATION En C

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Sciences et Technologies Examen janvier 2010

Bases de programmation. Cours 5. Structurer les données

Feuille TD n 1 Exercices d algorithmique éléments de correction

Rapport de Mini-Projet en ArcGIS Engine

Présentation du PL/SQL

Programmation structurée et algorithmes de base en Pascal

Java Licence Professionnelle CISII,

Perl Orienté Objet BioPerl There is more than one way to do it

Chapitre 10. Les interfaces Comparable et Comparator 1

Paris Airports - Web API Airports Path finding

4 Exemples de problèmes MapReduce incrémentaux

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

Introduction à la programmation concurrente

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Correction Code nécessaire à la compilation : let bs ="\\" let nl = "\n" ;; let appliquer = List.map ;; (* affichage d'un noeud *)

I. Introduction aux fonctions : les fonctions standards

Les structures. Chapitre 3

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

1 Recherche en table par balayage


Transcription:

PARTIE I (8 points) Correction Informatique Exercice N 1 : (1,5 points = 0,25 x 6) Règles à appliquer : Si la définition d un module M nécessite la déclaration de X objets notés O i et de Y sous-modules notés M i, alors les X objets O i seront reconnus par le module M mais également par les Y sousmodules M i. Application de la règle sur l objet p : La définition du module Somme nécessite la déclaration de l objet p et d une fonction Produit, donc p est reconnu par le module Somme mais également par le sous-module Produit. Application de la règle sur les objets q et r : La définition du module Produit nécessite la déclaration des objets q et r et d aucun sous-module, donc q et r sont reconnus par le module Produit et ne seront pas reconnus ailleurs. Reconnu par la fonction Objet Somme Produit p O O q N O r N O NB: On n'acceptera que les réponses O/N et Oui/Non Exercice N 2 : (3,5 points = 0,5 par croix et 0,25 par justification = 0.5*6 + 0.25*2) Readln(jour) ; Cette instruction n est pas valide car, on ne peut pas lire une variable de type scalaire énuméré. langue :=Anglais ; Cette instruction est valide. En effet, langue étant une variable de type langues_etrangeres et Anglais étant une des valeurs de cet ensemble, l affectation est possible. aujourdhui := Dimanche ; Cette instruction est valide. En effet, aujourdhui étant une variable de type jour_semaine et dimanche étant une des valeurs de cet ensemble, l affectation est possible. Writeln(langue) ; Cette instruction n est pas valide car, on ne peut pas afficher une variable de type scalaire énuméré. res := aujourdhui<jour ; Cette instruction est valide. En effet, il s agit d affecter à une variable de type logique (res) le résultat de la comparaison aujourdhui<jour, qui est un résultat de type logique. Exemple : si aujourdhui vaut Dimanche et jour vaut Lundi, alors aujourdhui<jour est faux, car ord(dimanche) > ord(jour) n := ord(langue) ; Cette instruction est valide. En effet, il s agit d affecter à une variable de type entier (n) le numéro d ordre (ord) du contenu de la variable langue. Ce numéro est un entier. Exemple : si langue vaut Anglais, alors ord(langue) = 1 et n vaut 1. Corrigé Informatique Sections Scientifiques Page 1/6

Exercice N 3 (3 points = 1 + 1 + 1) 1. Function Essai (ch: string; nb, p: integer): string; (1 pt=2*0,5) Var i : Byte ; r : string ; Il est possible d'accepter le type Integer pour la variable i. Begin r := ; For i:=1 to length (ch) do if i in [p..p+nb-1] then r := r + ch[i]; Essai := r; End; 2. Le résultat de cette fonction pour les paramètres effectifs suivants : Ch = Protocole p= 3 et nb= 4 Ch Protocole Protocole Protocole Protocole Protocole Protocole Protocole Protocole Protocole Nb 4 4 4 4 4 P 3 3 3 3 3 I 1 2 3 4 5 6 7 8 9 r o ot oto otoc otoc otoc otoc La fonction retourne la valeur : otoc (1 pt) 3. la fonction essai renvoie une sous-chaîne de nb caractères et formée à partir d une chaîne notée Ch en commençant à la position p. Il s agit de la fonction prédéfinie COPY (Ch, p, nb). (1 pt) PARTIE II (12 points) Analyse (8 Pts) On acceptera toute forme d'analyse descendante. On acceptera toute solution correcte. Algorithme Pour être évalué, l'algorithme doit présenter un contenu en relation avec le problème demandé Cohérence=0,5 Modularité= 1 Taille = 0,25*2 Tableau= 0,25*4 PP (1,5 pts) Saisie (1,5 pts) PP (1 pt) Saisie (1 pt) Corrigé Informatique Sections Scientifiques Page 2/6

Union = 1 Ordre = 1 Redondance = 1 Fusion (3 pts) Affichage (1 pts=2*0,5) Divers (1 pts) Entête des modules (mode de passage, ordre et types de paramètres) T.D.O et des nouveaux types Fusion (1,5 pt) Affichage (0,5 pt) Nom = Distinct 4 3 2 1 5 Résultat = Proc Afficher (K, V3) (K, V3) = Proc Fusion (N, M, V1, V2, K, V3) (N, V1) = Proc Saisie (N, V1) (M, V2) = Proc Saisie (M, V2) Fin K, V3 Afficher Fusion N, V1 M, V2, saisie Tableau de déclaration des nouveaux types Type Tabd =Tableau de 20 entiers Tabr = Tableau de 40 entiers T.D.O.G K Entier Longueur du tableau final V3 N Entier Longueur du tableau V1 M Entier Longueur du tableau V2 V1 Tabd Tableau donné V2 Tabd Tableau donné V3 Tabr Tableau final Afficher Procédure Affiche le tableau final Saisie Procédure Saisie d un tableau et sa longueur Fusion Procédure Fusionne V1 et V2 dans V3 sans redondance DEF PROC Saisie (var Nb : entier ; var T :Tabd) Résultat = Nb, T 1 Nb = [ ] Nb = donnée Commentaires Validation de la taille des tableaux Corrigé Informatique Sections Scientifiques Page 3/6

2 3 Jusqu à Nb dans [2..20] T= [ T[1] = donnée] Pour i de 2 à Nb faire T[i]=donnée Jusqu à T[i] > T[i-1] Fin i Lecture de l élément n 1 Tous les autres éléments doivent être dans un ordre strictement croissant T.D.O.L i Entier Compteur DEF PROC Fusion (N, M : Entier ; V1, V2 : Tabd ; Var K : Entier ; Var V3 : Tabr) 1 Résultat = K, V3 (K,V3)=[i 1, j 1, K 0] Si V1[i]<V2[j] alors i i+1 Si V1[i]=V2[j] alors i i+1 j j+1 V3[K] V2[j] j j+1 Jusqu à (i>n) ou (j>m) i, j 2 Si j>m Alors Pour c de i à N faire c V3[K] V1[c] Pour c de j à M faire V3[K] V2[c] Fin Pour 3 Fin Commentaires L élément de V1 est plus petit que celui de V2, on range V1[i] et on avance dans V1 Ecriture d un seul élément (sans redondance) L élément de V2 est plus petit que celui de V1, on range V2[j] et on avance dans V2 Répétition du traitement jusqu à la fin de V1 ou de V2. Ecriture des éléments de V1 (car c est la fin de v2) Ecriture des éléments de V2 (car c est la fin de V1) Corrigé Informatique Sections Scientifiques Page 4/6

T.D.O.L i Entier compteur j Entier compteur c Entier compteur DEF PROC afficher ( Nb : entier ; T :tabr) 1 2 Résultat = [ ] Pour i de 1 à Nb faire Ecrire (T[i]) Fin i T.D.O.L I Entier compteur Les algorithmes Programme Principal 0) Début Distinct 1) Proc Saisie (N, V1) 2) Proc Saisie (M, V2) 3) Proc Fusion (N, M, V1, V2, K, V3) 4) Proc Afficher (K, V3) 5) Fin Distinct Procédure Saisie 0) DEF PROC saisie (Var Nb : Entier ; Var T :Tabd) 1) Lire (Nb) Jusqu à Nb dans [2..20] lire(t[1]) 2) Pour i de 2 à Nb faire Lire (T[i]) Jusqu à T[i] >T[i-1] 3) Fin saisie Procédure Fusion 0) DEF PROC Fusion (N, M : entier ; V1,V2 : tabd ; var K : entier ; var V3 : tabr) 1) i 1, j 1, K 0 Si V1[i]<V2[j] alors Corrigé Informatique Sections Scientifiques Page 5/6

2) 3) i i+1 Si V1[i]=V2[j] alors i i+1 j j+1 V3[K] V2[j] j j+1 FinSI Jusqu à (i>n) ou (j>m) Si j>m Alors Pour c de i à N faire V3[K] V1[c] Pour c de j à M faire V3[K] V2[c] Fin Pour Fin Fusion Procédure Afficher 0) DEF PROC Afficher ( Nb : entier ; T :tabr) 1) Pour i de 1 à Nb faire Ecrire (T[i]) 2) Fin Afficher Corrigé Informatique Sections Scientifiques Page 6/6