ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE



Documents pareils
TP : Gestion d une image au format PGM

Les chaînes de caractères

Introduction au langage C


Claude Delannoy. 3 e édition C++

Les structures. Chapitre 3

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Programme Compte bancaire (code)

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

Cours d Algorithmique et de Langage C v 3.0

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Introduction à l héritage en C++

1.6- Génération de nombres aléatoires

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

Java Licence Professionnelle CISII,

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

Chap III : Les tableaux

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

V- Manipulations de nombres en binaire

UE C avancé cours 1: introduction et révisions

COMPARAISONDESLANGAGESC, C++, JAVA ET

Introduction à l algorithmique et à la programmation M1102 CM n 3

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

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

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Programmation système de commandes en C

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

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

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

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

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

Initiation. àl algorithmique et à la programmation. en C

Canevas théoriques du projet sur le poker Partie A

SUPPORT DE COURS. Langage C

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)

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

Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string

Chapitre 1 : La gestion dynamique de la mémoire

IRL : Simulation distribuée pour les systèmes embarqués

Examen Médian - 1 heure 30

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

EXCEL TUTORIEL 2012/2013

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Programmer en JAVA. par Tama

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

INFO-F-105 Language de programmation I Séance VI

Programmation système I Les entrées/sorties

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

Notions fondamentales du langage C# Version 1.0

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Algorithmique et Programmation, IMA

Examen d informatique première session 2004

PROJET 1 : BASE DE DONNÉES REPARTIES

Anis ASSÈS Mejdi BLAGHGI Mohamed Hédi ElHajjej Mohamed Salah Karouia

et Programmation Objet

Chapitre 10. Les interfaces Comparable et Comparator 1

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

TP 1. Prise en main du langage Python

Manuel de l utilisateur à l intention des candidats externes

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C

INITIATION A LA PROGRAMMATION

Directives aux surveillants des contrôles périodiques

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Programmation en C/C++

Recherche dans un tableau

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Quelques éléments de compilation en C et makefiles

Programmation impérative

I. Introduction aux fonctions : les fonctions standards

UE Programmation Impérative Licence 2ème Année

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Corrigés des premiers exercices sur les classes

Département Automatisation et Informatisation Année Programmation en C++ Institut des Sciences et Techniques de l Ingénieur d Angers

Environnements informatiques

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

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

as Architecture des Systèmes d Information

Cours de C/C++ par la pratique. Hugues Talbot

Introduction au pricing d option en finance

TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique

Connecter les formulaire d identification Qualifio à votre système d enregistrement (SSO) Mars 2012

Pour ajouter un représentant ou avoir accès à un compte client, le client et le représentant auront besoin des éléments suivants :

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

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

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

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

Poker. A rendre pour le 25 avril

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

Une introduction à Java

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

MINIMUM. connaissances nécessaires à la programmation des microcontrôleurs PIC18 en langage C (une introduction au langage c A.N.S.

Premiers Pas en Programmation Objet : les Classes et les Objets

Structurer ses données : les tableaux. Introduction à la programmation

La programmation des PIC en C. Les fonctions, les interruptions.

Transcription:

ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE ING1025 : INFORMATIQUE EXAMEN INTRA Date Vendredi 10 octobre 2003 Heure De 8h30 à 10h20 Notes Ce questionnaire contient 4 questions sur 8 pages. Aucune documentation n est permise. Calculatrices interdites. Ne recopiez pas les déclarations ni les instructions déjà fournies dans l examen. Vous n avez pas à ajouter de commentaires dans vos programmes ni les fichiers d en-tête. QUESTION 1 (4 points) Indiquez, pour chaque section de programme, l affichage obtenu après l exécution des instructions suivantes (n inscrivez sur votre cahier que la lettre correspondante à la proposition; il n y a qu une seule réponse possible). Question 1.1 (1 point) char c1 [20 ] = "Brice"; char c2 [20 ] = "de"; char c3 [20 ] = "Nice"; char c4 [100]; strcpy ( c4, c3 ); strcat ( c2, c1 ); strcpy ( c1, c2 ); strcat ( c4, c2 ); A. NicedeBricede B. BricedeNice C. NicedeBricedeBrice D. NicedeBriceBricedeBrice cout << c4 << c1 << endl; Page 1 de 8

Question 1.2 (1 point) char c [ ] = "ABCD"; int res = 0; for ( int i = 0 ; i < 4 ; i++ ) switch ( c[i] ) case 'A': i++; res += 4; break; case 'B': res = 2 + i; break; case 'C': res -= 3; default: res++; cout << res << endl; A. 3 B. 2 C. 1 D. 4 Question 1.3 (1 point) int j, i = -1; for ( j = 0 ; j < 4 ; j++ ); i+=2; cout << j << " "; if ( i = 8 ) cout << i+2 << " "; A. 4 B. 4 10 8 C. 4 9 7 D. 4 7 cout << i << " "; cout << "\n\n"; Page 2 de 8

Question 1.4 (1 point) int i = 10; int j; do for ( j = 0 ; j < 3 ; j++ ) cout << i - j << " "; i--; while (i > j); A. 10 8 6 7 5 3 4 2 0 B. 10 8 6 4 2 0 C. 10 8 6 4 6 4 2 0 D. 10 8 6 8 6 4 4 2 0 cout << endl; Page 3 de 8

QUESTION 2 (5 points) Le jeu intitulé, Bataille Navale, consiste à déterminer la position des bateaux de l adversaire sur une grille de 16 cases par 16 cases. Inspiré de ce jeu, vous devez compléter le programme de la page suivante qui affiche la position et le nom de chaque bateau sur la grille d un joueur, sachant que un bateau occupant 2 case est un torpilleur; un bateau occupant 3 cases est un cuirassé; un bateau occupant 4 cases est un croiseur; un bateau occupant 5 case est un porte-avions. Afin de simplifier le traitement nous considérons que une case contenant le caractère O n est pas occupée par une partie de bateau; une case contenant le caractère X est occupée par une partie de bateau; tous les bateaux sont obligatoirement en position horizontale; voici un exemple d une grille possible correcte et d une grille incorrecte : OOOXXXXXOOOOOOOO OOOXXXXOOXXXXOOO OOOXXXOOXXXOOOOO OOOXXXOOOOXXXOOO OOOOOOOOOOOOOOXX XXOOOOOOOOOOOOXX OOOOOOXXOOOOOOOO Grille correcte OOOXOOOOOOOOOOOO OOOXOOOOOOOOOOOO OOOXOOOOOOOOXOOO OOOOOOOOOOOOXOOO OOOXXXXOOOOOXOOO OOOOOOOOOOOOXOOO OOOXXXOOXXXOOOOO OOOXXXXXXXXOOOOO XXOOOOOOOOOOOOXX OOOOOOXOOOOOOOOO OOOOOOXOOOOOOOOO Grille Incorrecte la case précédant un bateau est obligatoirement un espace (à moins qu il soit en première colonne) et la case qui suit est obligatoirement un espace (à moins qu il occupe la dernière colonne); la première ligne est la ligne 0 et la première colonne est la colonne 0. (Suite à la page suivante) Page 4 de 8

Compléter les instructions du programme ci-dessous sans ajouter aucune déclaration. #include <iostream> #include <fstream> using namespace std; void main() const int MAXLIGNE=16; const int MAXCOLONNE=16; char Grille[MAXLIGNE][MAXCOLONNE]; // Tableau où sont mémorisés les bateaux int Ligne, Colonne; // Pour manipuler le tableau Grille int Longueur; // La longueur d'un bateau /*** VOUS NE DEVEZ PAS ÉCRIRE CES INSTRUCTIONS ***/ //Placer les bateaux sur la grille //Instructions qui mémorisent dans le tableau Grille //la position des bateaux /*** VOUS NE DEVEZ PAS ÉCRIRE CES INSTRUCTIONS ***/ /*** VOUS DEVEZ ÉCRIRE LES INSTRUCTIONS CI-DESSOUS ***/ // Structure répétitive pour balayer le tableau Grille // Si un bateau est trouvé cout << "Il y a un bateau en case (" <<Ligne <<','<<Colonne<<')'; // Déterminer la longueur du bateau // Afficher le type de bateau correspondant a la longueur cout << " il s'agit d'un "; // à compléter Page 5 de 8

QUESTION 3 (6 points) À la suite d une commotion cérébrale subie sur les pentes de ski à la fin de la session d automne, un professeur d Ing1025 sort de l hôpital et retourne chez lui pour compiler les notes de ses étudiants. Malheureusement, il ne se rappelle plus d aucun concept de programmation et son programme qui lui aurait permit de compiler les notes est inachevé. Au cours de la session, il a stocké les notes de ses étudiants dans un fichier «Notes.txt» qui prend la forme suivante. Sur chaque ligne, nous retrouvons le matricule de l étudiant, son nom, son prénom, et les cinq notes obtenues lors des contrôles. 1087593 Jean Grincheux 12.50 17.00 11.25 18.25 12.00 1098465 Mark Bizarre 11.00 08.25 18.25 13.50 14.00 1036985 Lucie Jones 13.25 15.75 13.00 18.75 16.00. Fichier «Notes.txt» fourni à titre d exemple Le nombre d étudiants est inconnu mais heureusement, aucun élève n a de nom composé (i.e. tous les étudiants possèdent un prénom et un nom qui n incluent pas d espace) et aucun élève a été absent lors d un contrôle (i.e. tous les étudiants ont obtenus 5 notes durant la session). Complétez le programme ci-dessous qui lit le fichier «Notes.txt» au complet. Pour chaque étudiant le programme calcule la moyenne des cinq notes obtenues. Une fois ce calcul effectué, le programme écrit dans le fichier «Resultats.txt» le matricule de l étudiant et la moyenne qu il a obtenue. 1087593 14.2 1098465 13 1036985 15.35. Fichier «Resultats.txt» fourni à titre d exemple Précisions: 1) Pour des raisons de confidentialité, nous désirons seulement retrouver dans le fichier «Resultats.txt» le matricule des étudiants et sa moyenne. 2) Ne pas oublier de tester si l ouverture des fichiers s est fait correctement. 3) Inutile de configurer le nombre de décimales lors de l écriture des moyennes dans le fichier «Resultats.txt» 4) Inutile de retranscrire la portion de programme déjà fournie sur votre copie. Page 6 de 8

/* ----------------------------------------------------------------------------------------------- */ /* Programme: Compilation.cpp */ /* Auteur: James Kastoilagueulensky */ /* */ /* Description: Transcrit le matricule de chaque etudiant de ma section, du fichier */ /* Notes.txt dans le fichier Resultats.txt. Calcule la moyenne des */ /* des 5 notes obtenues par chaque etudiant conservees dans le */ /* fichier Notes.txt. Ecrit cette moyenne dans le fichier Resultats.txt */ /* */ /* Date de creation: 12 decembre 2003 */ /* */ /* Notes: Ne pas oublier de tester l ouverture des fichiers. */ /* ----------------------------------------------------------------------------------------------- */ #include <iostream> #include <fstream> using namespace std; void main(void) ifstream FicNotes; ofstream FicResultats; // Pour lire le fichier Notes.txt // Pour ecrire dans le fichier Resultats.txt unsigned int Matricule; float Note1, Note2, Note3, Note4, Note5; float Moyenne; char Prenom[25], Nom[25]; // Pour lire le matricule de ch. etud. // Pour lire les notes de ch. etudiant // Pour calculer la moyenne. // Pour lire les noms de ch. etudiant /* --- A COMPLETER CI-DESSOUS --- */ Page 7 de 8

QUESTION 4 (5 points) La suite de Fibonacci est une suite classique de nombres entiers dont les deux premiers éléments sont 1, et les éléments suivants sont obtenus en sommant les deux éléments précédents. Les 7 premiers termes de la suite sont donc : 1, 1, 2, 3, 5, 8, 13, On demande d écrire un programme permettant d afficher la séquence des nombres entiers positifs plus petits ou égaux à n (n entré par l usager et n < 500) qui ne font pas partie de la suite de Fibonacci, et de calculer leur somme. Le résultat de l affichage pour n=15 est : 4, 6, 7, 9, 10, 11, 12, 14, 15, somme = 88 Page 8 de 8