Masse moléculaire [dx06] - Exercice

Documents pareils
alg - Classes, instances, objets [oo] Exercices résolus

C++ - Classes, instances, objets [oo] Exercices résolus

Logiciel de Base. I. Représentation des nombres

Comprendre l Univers grâce aux messages de la lumière

THEME 2. LE SPORT CHAP 1. MESURER LA MATIERE: LA MOLE

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

Feuille couverture de tâche du cadre du CLAO

Physique Chimie. Utiliser les langages scientifiques à l écrit et à l oral pour interpréter les formules chimiques

Équivalence masse-énergie

A retenir : A Z m n. m noyau MASSE ET ÉNERGIE RÉACTIONS NUCLÉAIRES I) EQUIVALENCE MASSE-ÉNERGIE

INSTRUCTION DE CRÉATION D UN COMPTE CLIENT

4 ème PHYSIQUE-CHIMIE TRIMESTRE 1. Sylvie LAMY Agrégée de Mathématiques Diplômée de l École Polytechnique. PROGRAMME 2008 (v2.4)

Chapitre 2. Eléments pour comprendre un énoncé

Algorithmique et Programmation, IMA

Comparaison de fonctions Développements limités. Chapitre 10

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

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

Priorités de calcul :

TP 1. Prise en main du langage Python

Résonance Magnétique Nucléaire : RMN

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

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

TP Codage numérique des caractères. Un ordinateur ne manipule que des 0 et des 1 : Comment alors code-t-il du texte?

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

PRESENTATION DES RECOMMANDATIONS DE VANCOUVER

HTML. Notions générales

NOTICE TELESERVICES : Créer mon compte personnel

DE LA HOLDING ANIMATRICE A LA HOLDING PATRIMONIALE : QUELLES CONSEQUENCES? 15 septembre 2014

Arguments d un programme

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

La protection de la vie privée et les appareils mobiles

Instructions et spécifications pour la transmission en format XML de déclarations par lots. 30 mai 2015 MODULE 1

Le chiffre est le signe, le nombre est la valeur.

Travaux Dirigés n 1 : chaînes de caractères

I- Définitions des signaux.

Atelier : L énergie nucléaire en Astrophysique

Manuel Utilisateur. Module CAISSE

COMPTABILITE SAGE LIGNE 30

EPFL TP n 3 Essai oedomètrique. Moncef Radi Sehaqui Hamza - Nguyen Ha-Phong - Ilias Nafaï Weil Florian

Correction TD algorithmique

Présentation générale des principales sources d énergies fossiles.

Algorithme. Table des matières

Initiation à la Programmation en Logique avec SISCtus Prolog

Chapitre 5 : Noyaux, masse et énergie

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Stage : "Développer les compétences de la 5ème à la Terminale"

TS1 TS2 02/02/2010 Enseignement obligatoire. DST N 4 - Durée 3h30 - Calculatrice autorisée

NORMES DE PRÉSENTATION DES MANUSCRITS

DM 10 : La fusion nucléaire, l énergie de l avenir? CORRECTION

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.

Guide de l utilisateur Faronics System Profiler Standard

Lycée français La Pérouse TS. L énergie nucléaire CH P6. Exos BAC

Conversion d un entier. Méthode par soustraction

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)

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

L INSEE EN BREF. L Insee en bref. La mesure du chômage par l Insee. N 4 Septembre Combien y a t il de chômeurs en France?

STRICTEMENT CONFIDENTIEL

K W = [H 3 O + ] [OH - ] = = K a K b à 25 C. [H 3 O + ] = [OH - ] = 10-7 M Solution neutre. [H 3 O + ] > [OH - ] Solution acide

Chapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :

UNIVERSITE DE TOULON UFR FACULTE DE DROIT REGLEMENT D EXAMEN ANNEE 2012/2017 LICENCE DROIT MENTION DROIT GENERAL

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)

Dispositions pour les apprentis Indications pour remplir le contrat d apprentissage et renseignements généraux

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

Faire de la publicité sur GOOGLE AD-WORDS

Coefficients binomiaux

Les chaînes de caractères

PROJET ALGORITHMIQUE ET PROGRAMMATION II

L informatique en BCPST

Aide - mémoire gnuplot 4.0

Créer une base de données

L exclusion mutuelle distribuée

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

Compétence 3-1 S EXPRIMER A L ECRIT Fiche professeur

1 Recherche en table par balayage

PROGRESSION TIC AU PRIMAIRE. Document de référence. Commission scolaire des Découvreurs

Limites finies en un point

Compte rendu de LA37 B, TP numéro 1. Evolution de la température et du degrée d'hydratation


La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Service de la promotion économique et du commerce (SPECo) aides financières. création, implantation et développement d entreprises

Chapitre 02. La lumière des étoiles. Exercices :

SERVICES EN LIGNE DES SUBVENTIONS ET DES CONTRIBUTIONS

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Mon aide mémoire traitement de texte (Microsoft Word)

Le langage C. Séance n 4

Formavie Différentes versions du format PDB Les champs dans les fichiers PDB Le champ «ATOM» Limites du format PDB...

1 Introduction au codage

Travaux dirigés d introduction aux Probabilités

Cours de Probabilités et de Statistique

Continuité et dérivabilité d une fonction

EXERCICES - ANALYSE GÉNÉRALE

Comment utiliser RoundCube?

Molécules et Liaison chimique

Traitement de texte : Quelques rappels de quelques notions de base

Suites numériques. Exercice 1 Pour chacune des suites suivantes, calculer u 1, u 2, u 3, u 10 et u 100 : Introduction : Intérêts simpleset composés.

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

Ce que tu écris est le reflet de ta personnalité

Gestion distribuée (par sockets) de banque en Java

Loi binomiale Lois normales

Transcription:

Masse moléculaire [dx06] - Exercice Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 9 avril 2015 Table des matières 1 Représentation des éléments (4 points) 1 2 Fonctions num, design, abrev (4 points) 2 3 Masse moléculaire 2 3.1 Chargement des données........................... 2 3.2 Analyse de la formule............................. 4 3.3 Masse moléculaire d un composé....................... 5 3.4 Facultatif : Complément........................... 7 Masse moléculaire / pg-fschimiea1 (C++, TP) 1 Représentation des éléments (4 points) Le système de classification périodique des éléments chimiques (abrégé CPE) a la particularité d être quasiment figé. Un élément du CPE est décrit par : Son abréviation abrv (le symbole chimique, chaîne de caractères). Son poids atomique poids (réel). Son numéro d ordre num (entier). Sa désignation design (chaîne de caractères). (0.5 point) Définissez le type Element, structure qui inclut tous les champs représentant un élément du CPE. (0.5 point) Définissez la constante NMAX (nombre maximum d éléments) de valeur 200 puis le type TableauCPE, structure qui inclut : Un tableau elems de taille maximale NMAX contenant des Element. Un entier nelems mémorisant le nombre effectif d éléments dans le tableau. 1

Unisciel algoprog Masse moléculaire / dx06 2 (1 point) Écrivez une procédure afficherelement(e) qui affiche les données d un Element e. (2 points) Déduisez une procédure affichercpe(t) qui affiche tous les éléments d un TableauCPE t. 2 Fonctions num, design, abrev (4 points) Dans cette partie, toutes les fonctions étant similaires, la documentation DOXYGEN sera réalisée pour la fonction rechlin et la fonction num uniquement. (2 points) Écrivez une fonction rechlin(t,abrv) qui recherche une abréviation abrv (chaîne de caractères) dans un TableauCPE t et renvoie son indice. Dans le cas d une recherche infructueuse, la fonction renvoie -1 comme valeur. (1 point) Déduisez des fonctions num(t,abrv) et design(t,abrv) qui recherchent une abréviation abrv (chaîne de caractères) dans un TableauCPE t et renvoient respectivement le numéro d ordre et la désignation de l élément. Dans le cas d une recherche infructueuse, la fonction renvoie -1 (ou la chaîne vide) comme valeur. (1 point) Écrivez une fonction abrev(t,num) qui recherche un numéro atomique num (entier) dans un TableauCPE t et renvoie le symbole chimique de l élément, la chaîne vide (en cas de recherche infructueuse). 3 Masse moléculaire 3.1 Chargement des données On dispose d un fichier texte qui contient les éléments de la classification périodique, à raison d un élément du CPE par ligne : le symbole chimique, le numéro atomique, la masse atomique et la désignation. Voici un bref extrait du fichier :

Unisciel algoprog Masse moléculaire / dx06 3 Symbol AtNo MasseAtom1 Name H 1 1.008 Hydrogen He 2 4.002602 Helium... U 92 238.02891 Uranium Écrivez une fonction lireelement(e,is) qui lit un Element dans e depuis un flux d entrée is et renvoie Vrai si l opération de lecture a été effectuée, Faux sinon. Déduisez une fonction chargercpe(t,fn) qui charge les données dans un TableauCPE t depuis un fichier de nom fn. Elle renvoie Vrai si l opération de chargement a été effectuée, Faux sinon (erreur ouverture). Écrivez une procédure test_charger qui demande et saisit le nom du fichier contenant les données, charge les données puis affiche le tableau des éléments. Testez. Copiez/collez la procédure test_charger en la procédure test_fncs1. Supprimez l appel de la procédure d affichage puis complétez-la pour qu elle demande et saisit une abréviation puis vérifie les résultats renvoyées par les fonctions, et ce jusqu à ce que l utilisateur tape le mot FIN pour finir.

Unisciel algoprog Masse moléculaire / dx06 4 Testez. 3.2 Analyse de la formule Une formule chimique brute est constituée de symboles chimiques éventuellement suivis de valeurs numériques. Exemples : CH3, C2H3O2Na, CI2, H2O, etc. (On se limitera aux valeurs numériques strictement inférieures à 10.) La première étape consiste à analyser la formule brute pour savoir de combien d éléments elle est composée et le nombre d éléments de chaque sorte. Exemples : H2O contient 2 éléments : H et O et on a 2H et 1O. De même HO3H2Cl peut être décomposé en : 1H, 3O, 2H et 1Cl. Pour analyser une formule brute s (chaîne de caractères), on peut alors utiliser la stratégie suivante : Pour chacune des majuscules détectées dans s : 1. Calculer le nombre de caractères u présents entre cette majuscule et la suivante (Comment faire pour déterminer le nombre de caractères qui suit la dernière majuscule?). 2. Selon la valeur de ce nombre u, identifier le nom de l élément e et son nombre z. Nous commencerons donc par écrire des fonctions utilitaires au problème et terminerons par la procédure de calcul de e et z. Écrivez une fonction estmajuscule(c) qui teste et renvoie Vrai si le caractère c est une majuscule, Faux sinon. De même, par copier/collez, définissez une fonction estminuscule(c) qui teste et renvoie Vrai si le caractère c est une minuscule, Faux sinon. Écrivez une fonction estchiffre(c) qui teste et renvoie Vrai si le caractère c représente un chiffre, Faux sinon. Écrivez une fonction cvchiffre(c) qui renvoie la valeur numérique (un entier) du caractère c représentant un chiffre. Exemples : cvchiffre( 0 ) ==> 0 cvchiffre( 8 ) ==> 8 Écrivez une fonction evalcaract(txt,p) qui renvoie le p-ème caractère de txt (chaîne de caractères).

Unisciel algoprog Masse moléculaire / dx06 5 Écrivez une fonction rechmajuscule(s,k) qui recherche la prochaine majuscule après l indice k dans une chaîne de caractères s, et qui renvoie sa position, -1 en cas de recherche infructueuse. Attention, on recherche à partir de k+1. Écrivez une procédure calculerez(s,k1,k2,abrv,z) qui, pour une formule brute s (chaîne de caractères), recherche la prochaine majuscule à partir de k1 (entier) et restitue cette position dans k2 (entier). Elle calcule également l abréviation correspondante dans abrv (chaîne de caractères) et la valeur du chiffre dans z (entier). Aide détaillée Si u vaut 1 : cela signifie que deux majuscules se suivent. Le nom de l élément e est alors égal au caractère de la formule et z vaut 1. Si u vaut 2 : le caractère situé entre les deux majuscules peut être une minuscule ou un chiffre. A l aide d un test adéquat, faites l affectation pour e et z. Si u vaut 3 : on a obligatoirement une minuscule suivie d un chiffre. Identifiez e et z. 3.3 Masse moléculaire d un composé Écrivez une fonction poids(t,abrv) qui recherche une abréviation abrv (chaîne de caractères) dans un TableauCPE t et renvoie le poids atomique. Dans le cas d une recherche infructueuse, la fonction renvoie 0 comme valeur.

Unisciel algoprog Masse moléculaire / dx06 6 Dans un premier temps, on suppose que la formule est correcte (c.-à-d. sans erreur). Écrivez une fonction masse(t,s) qui, étant donné un TableauCPE t, calcule et renvoie la masse moléculaire d une formule brute s (chaîne de caractères) en utilisant la procédure calculerez. Aide simple Pour chacune des majuscules détectées dans s : 1. Identifiez le nom de l élément e et son nombre z. 2. Cumulez la masse moléculaire de ce sous-composé. Copiez/collez la procédure test_charger en la procédure test_masse. Supprimez l appel de la procédure d affichage puis complétez-la pour qu elle demande et saisit un composé, en détermine les éléments et les quantités puis affiche la masse moléculaire du composé. Itérez jusqu à ce que l utilisateur tape le mot FIN pour finir. Testez avec un ou deux des éléments suivants : Mn 2 P 2 O 7 = 283.81632 CaCO 3 = 100.0862 K 2 IrCl 6 = 483.12 SiHF 3 = 86.089

Unisciel algoprog Masse moléculaire / dx06 7 3.4 Facultatif : Complément Copiez/collez la fonction masse en la fonction masse2. Complétez la fonction masse2 pour traiter les cas d erreurs de la formule. En particulier : 1. Le premier caractère doit être une majuscule. 2. Si u vaut 2, le second caractère de la chaîne ne peut pas être autre chose qu un chiffre ou une minuscule. 3. Si u vaut 3, le second caractère doit être une minuscule et le troisième un chiffre. 4. u ne peut pas être plus grand que 3. Copiez/collez la procédure test_masse en la procédure test_masse2 et modifiez l appel de la fonction. Testez.