Corrigé des exercices sur les tableaux à deux dimensions



Documents pareils
Corrigé des exercices sur les références

Solutions du chapitre 4

Corrigés des premiers exercices sur les classes

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

Premiers Pas en Programmation Objet : les Classes et les Objets

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

Algorithmique et programmation : les bases (VBA) Corrigé

Corrigé des exercices avancés sur les structures récursives

Java Licence Professionnelle CISII,

Utilisation d objets : String et ArrayList

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

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

TC3 - Guide d utilisation pour la saisie des FA

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Programme Compte bancaire (code)

Examen Médian - 1 heure 30

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

Programmation avec des objets : Cours 7. Menu du jour

R01 Import de données

STAGE IREM 0- Premiers pas en Python

Programmation en Java IUT GEII (MC-II1) 1

UML et les Bases de Données

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Chapitre 2 Devine mon nombre!

TP 1. Prise en main du langage Python

TP : Gestion d une image au format PGM

Notions fondamentales du langage C# Version 1.0

Nouveauté - Nouvelles modalités d inscription

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

Présentation du langage et premières fonctions

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Convention Foyer des Jeunes Travailleurs Institut de Formation de l Artisanat

Projet de programmation (IK3) : TP n 1 Correction

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

Manuel du gestionnaire

Les chaînes de caractères

Animer son cours depuis la tablette

Introduction au langage C

Algorithmique et Programmation, IMA

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

Initiation à la programmation en Python

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3

- LOGICIEL DE SAISIE DES NOTES DE FRAIS

- affichage digital - aiguille

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

Langage Java. Classe de première SI

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

Master d Informatique Corrigé du partiel novembre 2010

Afin d accéder à votre messagerie personnelle, vous devez vous identifier par votre adresse mail et votre mot de passe :

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

STAGE ENTREPRISE. Chers Parents,

Les structures de données. Rajae El Ouazzani

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

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

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)


DIPLOME D ACCES AUX ÉTUDES UNIVERSITAIRES

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

Chapitre 10. Les interfaces Comparable et Comparator 1

MY BMW CONNECTED DRIVE.

Un ordonnanceur stupide

ACTIVITÉ DE PROGRAMMATION

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

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

E-documents Simple, sûr et écologique

Plateforme PAYZEN. Définition de Web-services

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

Dossier d inscription English Club Année

Programmation Classique en langage C

CYBER-BASE M. E. F. I 2 RIVES. Programme des Ateliers

SOMMAIRE. 1. Connexion à la messagerie Zimbra Pré-requis Ecran de connexion à la messagerie 4

Cours d algorithmique pour la classe de 2nde

Date De Création 14/05/2013. PIC Poitou Charente. Préparé par : Cécilia CHARTIER. Modification 14/05/2013

INF 321 : mémento de la syntaxe de Java

QUESTIONS PRATIQUES / 2015

1 Lecture de fichiers

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

Système d impression Guide d utilisation pour les étudiants. Haute école pédagogique du canton de Vaud Unité Informatique

Nous serons heureux de vous y accueillir dans le cas de votre acceptation définitive et de vous souhaiter la bienvenue.

Planifier et contrôler un projet avec Microsoft Project

Recherche dans un tableau

Découverte de Python

Synthèse Sondagetransport. Clayes. FM Nov-14

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Document d information sur les offres de La Poste et leurs accès aux personnes handicapées intellectuelles

Programmer en JAVA. par Tama

TD/TP PAC - Programmation n 3

Direction Artistique Marie-Danielle Grimaud Lettre d information n 69, Février 2015

Objectif de progression Actions Indicateurs chiffrés. Diligenter une enquête auprès des salariés pour connaitre précisément leurs besoins

Introduction à JDBC. Accès aux bases de données en Java

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

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

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

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

Objets et Programmation. origine des langages orientés-objet

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Programmation Objet - Cours II

Transcription:

Corrigé des exercices sur les tableaux à deux dimensions Exercice 4.3.1 Tableau de vente On va considérer un tableau à deux dimensions qui regroupe les informations relatives aux ventes de voitures dans une concession. Une première dimension sert à représenter les différents modèles de voitures (une colonne pour chaque modèle). Une deuxième dimension sert à représenter les ventes d un vendeur de l entreprise (une ligne par vendeur). Une case contient le nombre de voitures d un modèle donné vendu par un vendeur X. Question 1 On suppose qu il y a 4 modèles et 4 vendeurs. Ecrivez un programme qui crée le tableau des ventes et lit au clavier les données permettant de le remplir. Question 2 Ecrivez un programme qui donne le nombre d exemplaires vendus pour chacun des modèles. Question 3 On donne le prix de chaque modèle dans un second tableau à une seule dimension. Ecrire un programme qui calcule le chiffre d affaire généré par chacun des vendeurs, c est à dire le total de ses ventes exprimé en euros. public class ExoTab3_1{ int[][] ventes = new int[4][5]; for (int i=0; i<4; i++){ for (int j=0; j<5; j++){ Terminal.ecrireString("Entrez les ventes du modèle numero "); Terminal.ecrireInt(i); Terminal.ecrireString(" par le vendeur numero "); Terminal.ecrireInt(j); Terminal.ecrireStringln(": "); ventes[i][j]=terminal.lireint(); 1

for (int i=0; i<4; i++){ int total = 0; for (int j=0; j<5; j++){ total=total+ventes[i][j]; Terminal.ecrireString("Ventes du modèle " + i + ": "); Terminal.ecrireIntln(total); // question 3 int[] prix = {10000,20000,30000,40000; for (int ligne=0; ligne<5; ligne++){ int total=0; for (int col=0; col<4; col++){ total=total+(ventes[col][ligne]*prix[col]); Terminal.ecrireString("Ventes du vendeur " + ligne + ": "); Terminal.ecrireStringln(total + " euros"); Exercice 4.3.2 occupation de salle Une salle de réunion peut être utilisée par différents employés d une entreprise. La réservation se fait par plage d une heure, de 8H00 du matin à 19H00. Chaque plage d une heure commence à l heure pile (par exemple, il y a une plage 9H00-10H00 mais il n y a pas de plage 9H15-10H15. Un tableau de booléens à deux dimensions est utilisé pour représenter si la salle est occupée (valeur true) ou disponible (valeur false) pendant une semaine. Une dimension est utilisée pour coder les jours ouvrables de 0 (lundi) à 4 (vendredi). L autre dimension est utilisée pour les plages horaires de 0 (8H00-9H00) à 10 (18H00-19H00). Chaque case correspond à la réservation de la salle pour une plage d un jour donné. boolean[][] occupee = {{false,true,true,true,false,true,true,false,true,false, {false,true,true,true,false,true,true,false,true,false, {false,false,true,true,false,false,true,false,true,false, {true,true,false,true,false,true,true,false,true,true, {false,true,false,true,false,true,true,false,false,false; Question 1 affichage écrire un programme qui déclare la variable occupee comme ci-dessus et qui affiche l occupation de la salle de façon intelligible (par exemple : salle occupee le mardi de 9H00 à 10H00). Question 2 taux d occupation écrire un programme qui calcule le taux d occupation de la salle, c est à dire le nombre de plages réservées divisé par le nombre total de plages. 2 NFA031 c CNAM 2012

Question 3 reservation écrire un programme qui permet à l utilisateur de réserver une plage. Il faut vérifier que la salle est libre au moment demandé. public class ExoTab3_2{ boolean[][] occupee = {{false,true,true,true,false,true,true,false,true,true,false, {false,true,true,true,false,true,true,false,true,false,true, {false,false,true,true,false,false,true,true,false,true,false, {true,true,false,true,false,true,true,false,true,true,true, {false,true,false,true,true,false,true,true,false,false,false; Terminal.ecrireStringln("lundi"); if (occupee[0][plage]){ Terminal.ecrireStringln("mardi"); if (occupee[1][plage]){ Terminal.ecrireStringln("mercredi"); if (occupee[2][plage]){ Terminal.ecrireStringln("jeudi"); if (occupee[3][plage]){ Terminal.ecrireStringln("vendredi"); if (occupee[4][plage]){ int nbocc = 0; for (int jour=0; jour<5; jour++){ NFA031 c CNAM 2012 3

if (occupee[jour][plage]){ nbocc++; Terminal.ecrireStringln("Taux d occupation: " + (nbocc *100)/55); // question 3 int jour; String rep; Terminal.ecrireString("Entrez le jour de la réservation (lundi: 0,etc) "); jour = Terminal.lireInt(); int plage; Terminal.ecrireString("Entrez l heure de début de la réservation "); Terminal.ecrireString(" (ex: 8 pour 8H00) "); plage = Terminal.lireInt() -8; if (occupee[jour][plage]){ Terminal.ecrireStringln("Desole, la salle n est pas disponible"); else{ occupee[jour][plage]=true; Terminal.ecrireStringln("reservation enregistree"); Question 4 On veut représenter une photo en noir et blanc comme un ensemble de points, avec pour chaque point un niveau de gris codé par un entier compris entre 0 (pour noir) et 255 (blanc). Les points ont des coordonnées cartésiennes (x,y) indiquant leur position sur l image. y x Ecrivez un programme (méthode main) qui contienne successivement : la saisie d une image au clavier. Pour cela, on pourra demander à l utilisateur de rentrer le niveau de gris de chaque point. Il faut vérifier que ce niveau de gris est bien compris entre 0 et 255. le calcul du nombre de points blancs sur cette image et le pourcentage des points qui sont blancs. Ce pourcentage pourra être de type entier ou de type nombre à virgule. l éclaircissement de l image obtenu en ajoutant 30 à chaque niveau de gris, sans dépasser toutefois le nombre de 255 (par exemple 100 sera transformé en 130, 255 restera 255 et 240 deviendra 4 NFA031 c CNAM 2012

255). public class ExoTab3_3{ int largeur, hauteur; Terminal.ecrireString("Entrez la largeur de l image: "); largeur = Terminal.lireInt(); Terminal.ecrireString("Entrez la hauteur de l image: "); hauteur = Terminal.lireInt(); int[][] image = new int[largeur][hauteur]; do{ Terminal.ecrireString("Entrez la valeur du point ("+x+"," + y +"): "); image[x][y] = Terminal.lireInt(); while(image[x][y]<0 image[x][y]>255); int nbbl = 0; if (image[x][y]==255){ nbbl++; Terminal.ecrireStringln("Nombre de points blancs: " + nbbl); Terminal.ecrireStringln("Pourcentage de points blancs: " + ((nbbl*100)/(largeur*hauteur)) + "%"); // question 3 eclaircir l image if (image[x][y]<=225){ image[x][y]=image[x][y]+30; else{ image[x][y]=255; NFA031 c CNAM 2012 5