Corrigé des exercices simples sur les boucles



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

Premiers Pas en Programmation Objet : les Classes et les Objets

Programme Compte bancaire (code)

Utilisation d objets : String et ArrayList

ACTIVITÉ DE PROGRAMMATION

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

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

Corrigés des premiers exercices sur les classes

Projet de programmation (IK3) : TP n 1 Correction

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Java Licence Professionnelle CISII,

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

Examen Médian - 1 heure 30

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

TP, première séquence d exercices.

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

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

Chapitre 10. Les interfaces Comparable et Comparator 1

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

Flux de données Lecture/Ecriture Fichiers

Package Java.util Classe générique

Programmer en JAVA. par Tama

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

INF 321 : mémento de la syntaxe de Java

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

Langage Java. Classe de première SI

as Architecture des Systèmes d Information

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Introduction au 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)

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

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

Notions fondamentales du langage C# Version 1.0

Solutions du chapitre 4

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

Programmation avec des objets : Cours 7. Menu du jour

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

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

Java Licence Professionnelle CISII,

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

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

Threads. Threads. USTL routier 1

Un ordonnanceur stupide

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

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

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

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

Recherche dans un tableau

Tp 1 correction. Structures de données (IF2)

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Derrière toi Une machine virtuelle!

Programmation en Java IUT GEII (MC-II1) 1

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets


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

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

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Le prototype de la fonction main()

Programmation par les Objets en Java

Java DataBaseConnectivity

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

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

Synchro et Threads Java TM

Java 1.5 : principales nouveautés

Introduction au langage Java

Les processus légers : threads. Système L3, /31

PROGRAMMATION PAR OBJETS

1. Langage de programmation Java

Convers3 Documentation version Par Eric DAVID : vtopo@free.fr

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

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)

Serveur d'archivage 2007 Installation et utilisation de la BD exist

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Une introduction à Java

TD2 Programmation concurrentielle

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Cours Programmation Système

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

TP1 : Initiation à Java et Eclipse

Exercices sur les interfaces

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

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

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

Claude Delannoy. 3 e édition C++

Programmation Objet I

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

Langage à objets : JAVA (1)

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Introduction : les processus. Introduction : les threads. Plan

Conventions d écriture et outils de mise au point

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

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

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

Programmation Objet Java Correction

Cours 14 Les fichiers

Cours de Systèmes d Exploitation

Transcription:

Corrigé des exercices simples sur les boucles Exercice 3.1.1 déroulement d une boucle for Avec un tableau comme celui donné dans l exemple 4.0, retracez une exécution du programme suivant dans laquelle on entre au clavier la valeur 5. 1 class Exo4_1{ 2 3 int x; 4 Terminal.ecrireString("Un entier svp: "); 5 x = Terminal.lireInt(); 6 for (int i = 0; i<4; i++){ 7 Terminal.ecrireIntln(x+i); 8 9 Terminal.ecrireStringln("Fini"); 10 11 Voici le tableau qui retrace l exécution de ce programme : nb test x i clavier écran 3? NEP 4? NEP Un entier svp : 5 5 NEP 5 6.init 5 0 6.test true 5 0 7 5 0 5 6.modif 5 1 6.test true 5 1 7 5 1 6 6.modif 5 2 6.test true 5 2 7 5 2 7 6.modif 5 3 6.test true 5 3 7 5 3 8 6.modif 5 4 6.test false 5 4 9 5 NEP Fini 1

Les affichages seuls de ce programme sont : > java Exo4_1 Un entier svp: 5 5 6 7 8 Fini Exercice 3.1.2 déroulement d une boucle while Cet exercice n est pas corrigé. Exercice 3.1.3 calculs 1. Écrivez un programme qui affiche la table de multiplication d un chiffre. Ce chiffre sera entré par l utilisateur. Par exemple, si le chiffre est 3, le programme affiche: \begin{verbatim 1 x 3 = 3 2 x 3 = 6 3 x 3 = 9 4 x 3 = 12 5 x 3 = 15 6 x 3 = 18 7 x 3 = 21 8 x 3 = 24 9 x 3 = 27 \end{verbatim 2. Si vous ne l avez pas déjà fait, modifiez votre programme pour qu il vérifie que le nombre entré par l utilisateur est bien un chiffre (c est à dire un nombre compris entre 1 et 9). class Exo4_3_2{ int chiffre = -1; int res; while(chiffre<1 chiffre>9){ Terminal.ecrireStringln("Entrez le chiffre a multiplier: "); chiffre = Terminal.lireInt(); if (chiffre<1 chiffre>9){ Terminal.ecrireString("Ce nombre n est pas compris entre 1"); Terminal.ecrireStringln(" et 9. Recommencez."); for (int i=1; i<10; i++){ res = i*chiffre; Terminal.ecrireInt(i); Terminal.ecrireString(" x " + chiffre + " = "); 2 NFA031 c CNAM 2012

Terminal.ecrireIntln(res); 3. Écrivez un programme qui calcule x y oùxet y sont deux entiers saisis au clavier. class Exo4_3_3{ int x, y; int res=1; Terminal.ecrireStringln("Entrez le chiffre a multiplier: "); x = Terminal.lireInt(); Terminal.ecrireStringln("Entrez l exposant: "); y = Terminal.lireInt(); for (int i=1; i<=y; i++){ res = res*x; Terminal.ecrireInt(x); Terminal.ecrireStringln(" puissance "+y+" vaut "+res); 4. Écrivez un programme qui affiche la valeur de la fonction x 2 (la fonction qui à un entier associe son carré) pour les dix premiers entiers positifs. class Exo4_3_4{ int carre; for (int i=1; i<=10; i++){ carre = i*i; Terminal.ecrireIntln(carre); Exercice 3.1.4 conversion en dollars Le programme suivant est une version du programme Conversion des notes de cours, modifié afin de calculer la conversion en dollars d une somme en euros saisie au clavier. public class Exo2_1_2 { public static void main (String[] args) { double euros, dollar, cours; Terminal.ecrireStringln("Cours du dollar (valeur de 1 dollar)? "); cours = Terminal.lireDouble(); Terminal.ecrireStringln("Somme en euros? "); euros = Terminal.lireDouble(); dollar = euros / cours; Terminal.ecrireStringln("La somme en francs: "+ dollar); NFA031 c CNAM 2012 3

Modifiez ce programme pour que pour un cours du dollar donné (et qui ne change pas pendant l exécution du programme), on puisse convertir plusieurs sommes. Prévoyez un moyen d arrêter l exécution du programme. public class Exo4_4 { public static void main (String[] args) { double euros, dollar, cours; char reponse = o ; Terminal.ecrireStringln("Cours du dollar (valeur de 1 dollar)? "); cours = Terminal.lireDouble(); while (reponse == o ){ Terminal.ecrireStringln("Somme en euros? "); euros = Terminal.lireDouble(); dollar = euros / cours; Terminal.ecrireStringln("La somme en francs: "+ dollar); Terminal.ecrireStringln("Voulez-vous faire une autre conversion" + " (tapez o pour oui ou n pour non)"); reponse = Terminal.lireChar(); Exercice 3.1.5 date correcte Écrivez un programme qui saisit une date correcte sous la forme de trois entiers (jour, mois et année). Le programme doit tester si la date est correcte, et si ce n est pas le cas, doit signaler le type d erreur rencontrée, puis demander une nouvelle saisie. Le programme finit lorsqu une date correcte est enfin saisie, avec l affichage de celle-ci. Dans le cas où le mois de la date est février, votre programme devra calculer si l année est bissextile. De manière générale, il devra calculer le nombre de jours maximal du le mois de la date saisie, de manière à valider le numéro de jour qui a été saisi. Réponse : Il n y a pas de réelle difficulté dans ce programme, si ce n est de bien organiser les calculs. Par exemple, si l année et le mois sont correctes, on peut calculer le nombre maximal de jours dans le mois pour cette année, et ensuite utiliser ce nombre pour tester si le numéro de jour donné est correcte. En revanche, cela n a pas de sens de faire ce calcul si le mois ou l année sont invalides. class DateCorrecte { /* Sasit une date et teste si elle correcte. Demande une nouvelle saisie tant que la date est incorrecte et signale l erreur eventuelle (1 erreur a la fois). */ public static void main(string [] args) { int jour; int mois; int annee; boolean dateok = false; 4 NFA031 c CNAM 2012

do { Terminal.ecrireString("Donnez un jour: "); jour = Terminal.lireInt(); Terminal.ecrireString("Donnez un mois: "); mois = Terminal.lireInt(); Terminal.ecrireString("Donnez une annee: "); annee= Terminal.lireInt(); if (annee<=0) { Terminal.ecrireStringln("L annee doit etre positive."); else if (mois<1 mois>12) { Terminal.ecrireStringln("Le mois doit etre compris entre 1..12"); else { int nbjours; if (mois == 4 mois== 6 mois==9 mois==11) { nbjours=30; else if (mois==2) { boolean bissextile= (annee%4 ==0) &&!(annee%100==0) (annee % 400 == 0); if (bissextile) nbjours = 29; else nbjours = 28; else { nbjours=31; if (jour < 1 jour > nbjours) { Terminal.ecrireString("Numero de jour incorrect: pour le mois "+mois); Terminal.ecrireString(" de l annee "+annee); Terminal.ecrireStringln(", le jour doit etre compris entre 1.."+nbJours); else { dateok = true; while (!dateok); Terminal.ecrireString("La date saisie est "); Terminal.ecrireInt(jour); Terminal.ecrireString(" / "); Terminal.ecrireInt(mois); Terminal.ecrireString(" / "); Terminal.ecrireIntln(annee); NFA031 c CNAM 2012 5