Corrigé des exercices sur les fonctions (suite)



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

Corrigés des premiers exercices sur les classes

Premiers Pas en Programmation Objet : les Classes et les Objets

Java Licence Professionnelle CISII,

Utilisation d objets : String et ArrayList

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

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

Programme Compte bancaire (code)

ACTIVITÉ DE PROGRAMMATION

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

Chapitre 10. Les interfaces Comparable et Comparator 1

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Solutions du chapitre 4

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

Langage Java. Classe de première SI

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

Introduction au langage C

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

TP, première séquence d exercices.

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

Package Java.util Classe générique

Programmer en JAVA. par Tama

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

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

TD/TP PAC - Programmation n 3

Exercices sur les interfaces

Projet de programmation (IK3) : TP n 1 Correction

Cours 1: Java et les objets

as Architecture des Systèmes d Information

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

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

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

Synchro et Threads Java TM

Conventions d écriture et outils de mise au point

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

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

Derrière toi Une machine virtuelle!

Flux de données Lecture/Ecriture Fichiers

INF 321 : mémento de la syntaxe de Java

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

Programmation par les Objets en Java

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

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Généralités sur le Langage Java et éléments syntaxiques.

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)

TD/TP PAC - Programmation n 3


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

Java 1.5 : principales nouveautés

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

Principes des langages de programmation INF 321. Eric Goubault

1. Langage de programmation Java

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

Le prototype de la fonction main()

Auto-évaluation Programmation en Java

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; };

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

PROGRAMMATION PAR OBJETS

Java Licence Professionnelle CISII,

Programmation avec des objets : Cours 7. Menu du jour

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Threads. Threads. USTL routier 1

Une introduction à Java

Calcul Parallèle. Cours 5 - JAVA RMI

Programmation en Java IUT GEII (MC-II1) 1

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

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

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

Claude Delannoy. 3 e édition C++

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

Un ordonnanceur stupide

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

Programmation Objet I

Remote Method Invocation Les classes implémentant Serializable

Dis papa, c est quoi un bus logiciel réparti?

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

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

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN :

Le langage C. Séance n 4

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

I. Introduction aux fonctions : les fonctions standards

Programmation système de commandes en C

Cours Programmation Système

Desktop Intégration. Rémi Forax

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

Introduction : les processus. Introduction : les threads. Plan

Lier Erlang avec d autres langages de programmation

OpenPaaS Le réseau social d'entreprise

Les arbres binaires de recherche

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

Les bases de l informatique et de la programmation. École polytechnique

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

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

Programmation système en C/C++

Programmation Par Objets

Algorithmique et Programmation, IMA

Master d Informatique Corrigé du partiel novembre 2010

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

Transcription:

Corrigé des exercices sur les fonctions (suite) Exercice 5.2.1 somme des carrés Ecrire une fonction qui calcule la somme des n premiers carrés 1 2 +2 2 +...+n 2. class Exo9_1{ static int npremierscarres(int x){ int npc = 0; for (int i=1; i<= x; i++){ npc = npc + (i*i); return npc; public static void main(string[] args){ int res; Terminal.ecrireString("Entrez le nombre n : "); res = npremierscarres(terminal.lireint()); Terminal.ecrireStringln("Le résultat est "+ res); Exercice 5.2.2 sondage Un institut de sondage veut faire une enquête sur les intentions de vote à un référendum. Il y a trois intentions possibles : voter oui voter non voter blanc ou s abstenir L institut veut distinguer les intentions de vote des hommes et des femmes. Le résultat du sondage sera donné sous la forme d un tableau du genre : oui non abstention homme 12 37 25 femme 9 47 13 Ce tableau signifie par exemple que 12 hommes ont l intention de voter oui, 37 de voter non, etc. La représentation en Java d un tel tableau se fera de la façon suivante : 1

0 1 2 0 12 37 25 1 9 47 13 Il y a donc un encodage où l indice 0 signifie une intention de vote oui, l indice 1 pour le non, l indice 2 pour l abstention, ainsi que l indice 0 pour les hommes et l indice 1 pour les femmes. Ecrivez un programme qui lit au clavier un tel tableau et qui comporte les fonctions suivantes : une fonction qui calcule le nombre de femmes prises en compte dans l enquête. une fonction qui calcule le nombre total de personnes ayant une intention de vote donnée. Cette intention de vote, de même que le tableau, sera un paramètre de la fonction. Elle pourra être donné sous forme de l indice encodant cette intention. une fonction qui prédit le résultat du vote. Ce résultat ne prend pas en compte les abstentionnistes. Seuls les votes exprimés sont pris en compte (en France). une fonction qui détermine si les hommes et les femmes sont équitablement représentés dans l enquête. class Exo9_2{ static int nbfemmes(int[][] tab){ return tab[1][0] + tab[1][1] +tab[1][2]; static int nbpersonnes(int intention, int[][] tab){ return tab[0][intention] + tab[1][intention]; static int resultat(int[][] tab){ int oui, non; oui = tab[0][0] + tab[1][0]; non = tab[0][1] + tab[1][1]; if (oui == non){ return 2; else if (oui > non){ return 0; else{ return 1; static boolean parite(int[][] tab){ int hommes = 0; int femmes = 0; for (int col=0; col<3; col++){ hommes = hommes + tab[0][col]; femmes = femmes + tab[1][col]; return hommes == femmes; public static void main(string[] argv){ int[][] resenq = new int[2][3]; int res; Terminal.ecrireStringln("Entrez ligne par ligne les valeurs du tableau."); for (int lig=0; lig<2; lig++){ for (int col=0; col<3; col++){ Terminal.ecrireString("Ligne " + lig + " colonne " + col + " : "); resenq[lig][col] = Terminal.lireInt(); 2 NFA031 c CNAM 2012

Terminal.ecrireString("Nombre de femmes: "); Terminal.ecrireIntln(nbFemmes(resEnq)); Terminal.ecrireString("Nombre de personnes votant oui: "); Terminal.ecrireIntln(nbPersonnes(0,resEnq)); Terminal.ecrireString("Nombre de personnes s abstenant: "); Terminal.ecrireIntln(nbPersonnes(2,resEnq)); res = resultat(resenq); if (res == 0){ Terminal.ecrireStringln("Victoire du oui"); else if (res == 1){ Terminal.ecrireStringln("Victoire du non"); else{ Terminal.ecrireStringln("Egalite du oui et du non"); if (parite(resenq)){ Terminal.ecrireStringln("La parite est respectee"); else{ Terminal.ecrireStringln("La parite n est pas respectee"); Exercice 5.2.3 triangle (bis) Adaptez le programme qui dessine un triangle pour qu au lieu d afficher les espaces et les étoiles à l écran, il les mette dans un tableau de caractères à deux dimensions. Le calcul du tableau sera fait dans une fonction qui prendra la taille du triangle en paramètre. Exemple de tableau avec une dimension 3 : 0 1 2 3 4 0 * 1 * * * 2 * * * * * Question 1 Ecrivez trois méthodes qui affichent un tableau contenant un triangle. La première doit afficher le triangle avec la pointe en haut. La deuxième doit afficher la pointe à droite et la troisième, la pointe en bas. class Exo9_3{ static char[][] calculetableau(int taille){ char[][] res; int nbet = 1; int nbesp = taille-1; res = new char[taille][2*taille-1]; for (int lig=0; lig<taille; lig++){ NFA031 c CNAM 2012 3

// les espaces du debut for (int col=0; col< nbesp; col++){ res[lig][col] = ; // les etoiles du milieu for (int col=nbesp; col< nbesp+nbet; col++){ res[lig][col] = * ; // les espaces de la fin for (int col=nbesp+nbet; col< res[lig].length; col++){ res[lig][col] = ; nbesp = nbesp -1; nbet = nbet+2; return res; static void afficherpointeenhaut(char[][] t){ for (int lig=0; lig<t.length; lig++){ for (int col=0; col<t[lig].length; col++){ static void afficherpointeadroite(char[][] t){ for (int col=0; col<t[0].length; col++){ for (int lig=t.length-1; lig>=0; lig--){ static void afficherpointeenbas(char[][] t){ for (int lig=t.length-1; lig>=0; lig--){ for (int col=0; col<t[lig].length; col++){ public static void main(string[] args){ afficherpointeenhaut(calculetableau(3)); afficherpointeadroite(calculetableau(4)); afficherpointeenbas(calculetableau(5)); Les méthodes d affichage ne calculent pas de valeur : on les déclare donc avec void comme type de la valeur calculée. Noter que dans les deux dernières méthodes, on fait des parcours de boucle avec 4 NFA031 c CNAM 2012

décrémentation : on parcourt le même intervalle de valeurs, mais dans l ordre inverse. NFA031 c CNAM 2012 5