[PDF] [PDF] Algorithmique et Programmation - Banque dexercices - MIS

2- Écrire la déclaration d'un type enregistrement permettant de représenter un actif 3- Écrire une fonction qui prend en entrée un tableau d'actifs et un entier n 



Previous PDF Next PDF





[PDF] Algorithmes et structures de données : TD 4 Corrigé - LaBRI

Licence MASS/Scico 5`eme semestre (2006/2007) Algorithmes et structures de données : TD 4 Corrigé Types - Enregistrements - Temps d'un algorithme T(n)



[PDF] Exercices avec Solutions

Exercices Corrigés d'Algorithmique – 1ére Année MI 5 En algorithmique, on ne peut pas avoir une fonction de type enregistrement, donc on utilise une



[PDF] Algorithmique et Programmation - Banque dexercices - MIS

2- Écrire la déclaration d'un type enregistrement permettant de représenter un actif 3- Écrire une fonction qui prend en entrée un tableau d'actifs et un entier n 



[PDF] Série dexercices : Les Enregistrements - Jimdo

Soit le fichier NOMBRES BIN qui contient une liste de nombres entiers Écrire un algorithme qui affiche les nombres du fichier, leur somme et leur moyenne 2



[PDF] Les types utilisateurs (Algo) Corrigé

ALGORITHMIQUE ET PROGRAMMATION 1 3 3 Déclaration d'une variable de type enregistrement Exercice 1 : Occurrences des chiffres d'un entier



[PDF] Exercice 1 - apcpedagogie

Corrigé de l'épreuve d'Algorithmique et Programmation 2012 – Sciences de l' Informatique Exercice 1 (3,5 points) directement deux enregistrements



[PDF] Les tableaux 1 Exercice 1 - LIPN

Ecrire les algorithmes permettant : 1 Le calcul du nombre d'occurences d'un élément donné dans un tableau Nb_occurences (T: Tableau d'entier, N: entier) 



[PDF] Algorithmique - FMI

12 fév 2017 · [Livre] Le champion de l'algorithmique de la programmation Cours et TP corrigés avec turbo pascal 7; 4ème Introduction de la structure d' enregistrement (RECORD) ▫ Exemple: la Série de TD sur les Enregistrements



[PDF] Algorithmes et programmation en Pascal TD corrigés

Edouard Thiel TD corrigés Algorithmes et programmation en Pascal Edouard Thiel TD Deug 1 Mass MA, 1997 `a 2004 7 2 Intervalles et enregistrements

[PDF] exercice corrigé algorithme les boucles pdf

[PDF] exercice corrigé algorithme matrice

[PDF] exercice corrigé algorithme programmation pdf

[PDF] exercice corrigé algorithme tableau pdf

[PDF] exercice corrigé analyse financière esg

[PDF] exercice corrigé analyse swot

[PDF] exercice corrigé audit interne

[PDF] exercice corrigé batterie

[PDF] exercice corrigé c++ classe

[PDF] exercice corrigé calcul d'erreur

[PDF] exercice corrigé calcul de ph

[PDF] exercice corrigé champ magnétique crée par un solénoide

[PDF] exercice corrigé chiffre d'affaire prévisionnel

[PDF] exercice corrigé chimie organique licence

[PDF] exercice corrigé chimie organique mecanisme reactionnel

Algorithmique et Programmation - Banque d'exercices Remarque : jusqu'en 2018, les conventions du langage algorithmique étaient un peu différentes

-les tableaux sont dynamiques (la taille n'est pas forcément fixée à la déclaration) et l'opération redim

permet de fixer la taille d'un tableau.

-les tableaux et enregistrements sont supposés être toujours passés par référence, les autres

paramètres par valeur.

Thème : tableaux et enregistrements

1- L'informatique au service de la santé (45 mn - 2009/1) - Correction

2- L'informatique au service du ministère du travail (45 mn - 2009/2) - Correction

3- L'informatique au service des transports aériens (45 mn - 2010/1) - Correction

4- L'informatique au service des traders (45 mn - 2010/2) - Correction

5- L'informatique au service des rencontres (60 mn - 2011/1) - Correction

6- Analyse de réseau social (60 mn - 2011/2) - Correction

7- Intentions de vote (60 mn - 2012/1) - Correction

8- Jeu, set et match (45 mn - 2012/2) - Correction

9- Traçabilité de la viande (60 mn - 2013/1) - Correction

10- Paradis fiscal (60 mn - 2013/2) - Correction

11- É coutes téléphoniques (60 mn - 2014/1) - Correction

12- Coupe du monde de football (60 mn - 2014/2) - Correction

13- É pidémie (60 mn - 2015/1) - Correction

14- Séismes (60 mn - 2015/2) - Correction

15- É nergie électrique (60 mn - 2016/1) - Correction

16- Migration (45 mn - 2016/2) - Correction

17- Assistants parlementaires (60 mn - 2017/1) - Correction

18- Trains (60 mn - 2017/2) - Correction

19- ParcourSup (60 mn - 2018/1) - Correction

20- Sécurité routière (45 mn - 2018/2) - Correction

21- Météorologie (60 mn) - Correction

1- L'informatique au service de la santé (45 mn)

Des épidémiologistes veulent étudier la propagation de la grippe. Ils disposent de données décrivant

trois types d'événements épidémiologiques : contamination, guérison ou décès. À chaque événement est

associé le numéro de sécurité sociale du patient et la date de l'événement.

1- Écrire la déclaration d'un type enregistrement permettant de représenter une date avec un jour, un

mois et une année.

2- Écrire la déclaration d'un type enregistrement permettant de représenter un événement

épidémiologique avec le numéro de sécurité sociale du patient (entier), la date de l'événement et le type de

l'événement (contamination, guérison ou décès).

On suppose que tous les événements épidémiologiques sont stockés dans un tableau

d'enregistrements. On suppose qu'on dispose d'une fonction egalDate qui prend en entrée deux dates et renvoie

vrai si les dates sont les mêmes et faux sinon, et d'une fonction distDate qui prend en entrée deux dates et

renvoie la distance entre les deux dates sous forme d'un entier positif qui représente le nombre de jours

séparant les deux dates.

3- Écrire une fonction qui prend en entrée un tableau d'enregistrements d'événements épidémiologiques

et une date et renvoie le nombre de décès ayant eu lieu à cette date.

4- Les épidémiologistes veulent pouvoir identifier les contaminations proches dans le temps. Écrire une

fonction qui prend en entrée un tableau d'enregistrements d'événements épidémiologiques et une date et qui

renvoie, parmi les événements du tableau qui sont de type contamination, celui dont la date est la plus proche

de celle passée en paramètre (sans qu'elle soit forcément égales).

2- L'informatique au service du ministère du travail (45 mn)

Le ministère du travail veut disposer d'un système d'information permettant d'étudier la population

active. Le ministère veut connaître, pour chaque actif, son diplôme le plus élevé, depuis combien de temps il est

sur le marché du travail (durée en nombre d'années) et l'activité qu'il exerce. Une activité est décrite par un type

d'activité (les 3 types possibles sont fonctionnaire, salarié du privé, profession libérale) et le revenu annuel brut.

1- Écrire la déclaration d'un type enregistrement permettant de représenter une activité.

2- Écrire la déclaration d'un type enregistrement permettant de représenter un actif.

3- Écrire une fonction qui prend en entrée un tableau d'actifs et un entier n supposé positif et renvoie le

nombre de fonctionnaires qui ont fini leurs études depuis plus de n années.

4- Le ministère veut savoir si, pour un diplôme donné, ceux qui en sont titulaires sont plus nombreux à

être fonctionnaires qu'à travailler dans le secteur concurrentiel (salarié du privé ou profession libérale). Écrire

une fonction qui prend en entrée un tableau d'actifs et un diplôme et renvoie vrai si, parmi les personnes

possédant ce diplôme, il y a plus de fonctionnaires que de non fonctionnaires.

3- L'informatique au service des transports aériens (45 mn)

Les compagnies aériennes veulent gérer automatiquement le cas des passagers qui ont raté leur avion

(pour cause d'éruption volcanique ou autre). On suppose qu'un type enregistrement Date est déjà disponible,

ainsi qu'un type énuméré Ville (ses valeurs représentent toutes les villes disposant d'un aéroport). On suppose

également qu'il existe une fonction distance(Date d1, Date d2), qui retourne un entier dont la valeur absolue est

le nombre de jours séparant d1 et d2 (cet entier est positif si d1 est antérieure à d2, nul si d1 = d2 et négatif si

d1 est postérieure à d2). Il faut maintenant représenter les données sur les vols et des fonctions permettant de

traiter ces données.

1- Écrire la déclaration d'un type enregistrement permettant de représenter un vol avec un numéro de

vol (nombre entier), une ville de départ, une ville d'arrivée, une date et un nombre de places encore disponibles.

2- Écrire une fonction récursive qui prend en paramètre un tableau de vols et un numéro de vol et

décrémente de 1 le nombre de places disponibles sur le vol correspondant au numéro.

3- Écrire une fonction qui prend en paramètres un tableau de vols, une ville de départ, une ville d'arrivée

et une date et renvoie le prochain vol reliant les deux villes sur lequel il reste au moins une place disponible (ce

vol doit avoir lieu le plus tôt possible, mais à une date postérieure à celle donnée en paramètre). Si aucun vol du

tableau ne vérifie ces conditions, on peut retourner la valeur null qui correspond à un "enregistrement vide".

4- L'informatique au service des traders (45 mn)

Une banque d'affaire veut pouvoir gérer informatiquement les transactions de ses traders à la bourse où

sont cotées les entreprises. Une entreprise est caractérisée par un nom, un état de santé économique (A+, A, B

ou C), le prix courant de son action (nombre réel) et le nombre total d'actions émises par l'entreprise. Un paquet

d'actions détenu par la banque est caractérisé par l'entreprise qui a émis les actions, le prix auquel les actions

ont été achetées (prix par action, nombre réel), le nombre d'actions du paquet et le nom du trader qui les a

achetées pour la banque.

1- Écrire les 3 déclarations de type permettant de représenter l'état d'une entreprise, une entreprise et

un paquet d'actions.

2- On veut trouver parmi les paquets d'actions détenus par la banque celui qu'il est préférable de

vendre. Écrire une fonction qui prend en paramètre un tableau de paquets d'actions et renvoie le paquet d'action

qu'il est préférable de vendre, c'est-à-dire le paquet pour lequel le bénéfice est le plus élevé. Ce bénéfice est

égal au prix de vente (nombre d'actions du paquet fois le prix courant de l'action) moins le prix d'achat (nombre

d'actions du paquet fois le prix d'achat de l'action). Seuls les paquets d'actions d'entreprises qui sont dans l'état

C sont à prendre en compte, les actions des entreprises dans les états A+, A ou B pouvant encore voir leur prix

augmenter. Si aucun paquet ne correspond à ces critères, on peut renvoyer la valeur null qui correspond à un

"enregistrement vide".

3- Écrire une fonction qui prend en paramètres un tableau de paquets d'actions et un nom de trader et

renvoie le bonus que la banque verse au trader. Ce bonus dépend de la valeur courante des actions achetées

par le trader et de leur valeur d'achat. La valeur d'achat (respectivement courante) des actions achetées par le

trader est égale à la somme des valeurs d'achat (respectivement courantes) des paquets d'actions qu'il a

achetés, chaque paquet valant le prix d'achat (respectivement courant) de l'action fois le nombre d'actions du

paquet. Si la valeur courante des actions achetées par le trader est inférieure à la valeur d'achat, le bonus est

nul, sinon il est égal à 20% de la différence entre la valeur courante et la valeur d'achat.

5- L'informatique au service des rencontres (60 mn)

Un site Web de rencontre doit permettre de mettre en relation les clients du site en fonction de leurs

passe-temps. Chaque client indiquera donc sur le site ses passe-temps parmi jeu, sport, jardinage, cuisine,

theatre. Vous êtes chargé de développer le programme qui gérera les données relatives aux clients.

1- Écrire la déclaration d'un type Hobby pour pouvoir représenter les passe-temps possibles, puis la

déclaration d'un type Client, chaque client ayant un identifiant entier, une adresse mail et plusieurs passe-temps.

On suppose que chaque client a au moins un passe-temps.

2- Écrire une fonction sameHobbies qui prend en paramètres deux Client et retourne vrai s'ils ont

exactement les mêmes passe-temps, et faux sinon.

3- Écrire une fonction soulmates qui prend en paramètres un Client c, un tableau de Client tab, et

renvoie tous les Client contenus dans tab qui ont les mêmes passe-temps que c. On suppose que c n'est pas

dans le tableau tab.

6- Analyse de réseau social (60 mn)

On veut écrire un programme pour analyser les pages web d'un réseau social. Une page est

représentée par le nom de son propriétaire, sa date de création et le nombre d'internautes qui visitent la page

chaque jour. On suppose qu'il existe un type de données Date, qui représente une date, et une fonction avec

retour Date creerDate(int a, int m, int j) qui prend en paramètres les année, mois et jour d'une date et renvoie la

Date correspondante.

1- Proposer une structure de données pour représenter les pages du réseau social. Écrire un

programme qui initialise les données relatives à la page de Toto, créée le 13 juin 2010 et visitées tous les jours

par 234 internautes.

2- Écrire une fonction qui prend en entrée un tableau de pages et renvoie le nombre moyen

d'internautes qui visitent les pages du tableau.

3- Écrire une fonction qui prend en entrée un tableau de pages et renvoie vrai s'il existe au moins deux

pages ayant le même propriétaire et faux sinon.

On veut maintenant représenter les liens entre les pages du réseau social. Chaque propriétaire de page

peut en effet lier à sa page les pages de ses amis.

4- Améliorer la structure de données pour pouvoir représenter, pour chaque page, les pages qui lui sont

liées.

5- Écrire une fonction qui prend en entrée un tableau de pages, deux noms d'internautes, et renvoie vrai

s'il existe des pages des deux internautes qui sont liées, et faux sinon. Il est possible que les internautes

possèdent plusieurs pages dans le réseau, ou aucune.

7- Intentions de vote (60 mn)

Un institut de sondage veut réaliser un programme informatique pour analyser les intentions de vote

pour l'élection présidentielle de 2012. Les données à représenter portent sur les candidats à l'élection, les

catégories socio-professionnelles des citoyens et les intentions de votes dans chaque catégorie.

1- Écrire la déclaration d'un type Candidat pour pouvoir représenter les candidats possibles qui sont, par

ordre alphabétique : Bayrou, Hollande, Joly, Lepage, Lepen, Melanchon, Morin, Nihous, Sarkozy, Villepin.

2- Écrire la déclaration d'un type Categorie qui représente les données d'une catégorie socio-

professionnelle avec un nom, un nombre de citoyens, et un revenu moyen. Par exemple la catégorie des agents

de la fonction publique d'état a pour nom "agent de l'état", comprend 3681370 personnes et a pour revenu

annuel net moyen 26362 euros (source INSEE).

3- Écrire la déclaration d'un type Vote qui représente les intentions de vote des catégories socio-

professionnelles. Chaque vote associe une catégorie, un candidat, et le pourcentage de personnes de la

catégorie qui déclarent voter pour le candidat en question. Par exemple 0,01\% des agents de l'état ont

l'intention de voter pour Villepin.

4- Écrire une fonction qui prend en paramètres un tableau de Vote et une Categorie et renvoie le

Candidat préféré de la catégorie, c'est-à-dire celui qui recueille le plus d'intentions de vote dans cette catégorie.

5- Écrire une fonction qui prend en paramètres un Candidat et un tableau de Vote et renvoie le revenu

moyen des citoyens qui ont l'intention de voter pour ce candidat. Pour calculer le revenu moyen, il faut calculer

la somme des revenus de tous ceux qui déclarent voter pour le candidat, et diviser ce revenu total par le nombre

de citoyens déclarant voter pour le candidat.

8- Jeu, set et match (45 mn)

On veut écrire un programme pour gérer les résultats des matchs de tennis dans les tournois officiels.

Un match est constitué de sets, eux-mêmes constitués de jeux. Un match est décrit par le nom du tournoi dans

le cadre duquel il s'est déroulé, les deux noms des joueurs qui ont disputé le match, et le score. Le score

regroupe les résultat des différents sets (il peut y avoir entre 3 et 5 sets dans un match). Chaque set est décrit

par deux entiers qui donnent le nombre de jeux remportés par chaque joueur (le set le plus disputé de l'histoire

du tennis s'est terminé à 70-68).

Par exemple, le match entre Rafael Nadal et Roger Federer, joué lors de l'Open d'Australie 2012, a eu

pour score 6-7, 6-2, 7-6, 6-4 (cela signifie que dans le premier set Nadal a remporté 6 jeux et Federer en a

remporté 7, dans le deuxième set Nadal a remporté 6 jeux et Federer 2 et ainsi de suite).

1- Proposer une structure de données pour représenter les matchs.

2- Écrire un programme qui initialise les données relatives au match entre Nadal et Federer.

3- Écrire une fonction qui prend en entrée un tableau de matchs (tableau au sens informatique) et le

nom d'un tennisman et renvoie le nombre de jeux perdus par le tennisman durant ses matchs (par exemple,

dans le match décrit plus haut, Nadal a perdu 7+2+6+4=19 jeux et Federer en a perdu 6+6+7+6=25).

9- Traçabilité de la viande (60 mn)

La Commission Européenne veut mettre en place un outil informatique de suivi des lots de viande produits en

Europe.

1- Écrire la déclaration d'un type Viande ayant pour valeurs : cheval, boeuf, canard, poulet, mouton,

porc. Écrire la déclaration d'un type Site représentant les types d'entreprises agroalimentaires : élevage, abattoir,

usine de transformation, usine de conditionnement.

2- Écrire la déclaration d'un type représentant les entreprises agroalimentaires, décrites par un nom, un

type et un pays. On suppose qu'il existe un type énuméré Pays dont les valeurs sont les différents pays.

3- Écrire la déclaration d'un type Lot qui représente les lots de viande. Un lot possède un identifiant

(entier), un type de viande, un poids et la liste des entreprises par lesquelles il est passé. Exemple de lot :

537,45kg de viande de cheval, portant l'identifiant 12345 et passé par les trois entreprises suivantes : l'élevage

Ferma Satu Mare situé en Roumanie, l'abattoir Slachthuis van Maastricht situé aux Pays-Bas et l'usine de

transformation Spanghero située en France.}.

4- On veut pouvoir trouver les lots d'un type donné. Écrire une fonction qui prend en paramètres un

tableau de Lot et un type de viande et retourne un tableau de Lot contenant uniquement les lots du type spécifié.

5- On veut pouvoir trouver tous les lots qui sont passés par une entreprise donnée. Écrire une fonction

qui prend en paramètres un tableau de Lot et le nom d'une entreprise et affiche à l'écran les identifiants des lots

qui sont passés par l'entreprise. La fonction doit également retourner le poids total de viande traitée dans

l'entreprise. On suppose que le tableau ne contient pas deux fois le même lot.

10- Paradis fiscal (60 mn)

Le ministère des finances veut développer un programme pour détecter l'évasion fiscale. Il dispose pour

cela des données concernant les opérations bancaires importantes (de plus de 1000 euros) des banques. Une

opération bancaire est décrite par un numéro de compte bancaire (chaine de caractères), une somme (qui peut

être négative s'il s'agit d'un retrait) et une date. On suppose qu'il existe déjà un type Date représentant les dates

et qu'on peut comparer deux dates avec l'opérateur =.quotesdbs_dbs2.pdfusesText_3