Examen de NFA031 (S2)

Documents pareils
Programme Compte bancaire (code)

Premiers Pas en Programmation Objet : les Classes et les Objets

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

Les structures. Chapitre 3

Programmation système I Les entrées/sorties

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

Algorithmique et Programmation, IMA

Corrigés des premiers exercices sur les classes

Utilisation d objets : String et ArrayList

Projet de programmation (IK3) : TP n 1 Correction

Java Licence Professionnelle CISII,

Flux de données Lecture/Ecriture Fichiers

Corrigé des exercices sur les références

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

TP, première séquence d exercices.

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

Programmation Objet Java Correction

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

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

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

Le langage C. Séance n 4

Chapitre 10. Les interfaces Comparable et Comparator 1

TD/TP PAC - Programmation n 3

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

ACTIVITÉ DE PROGRAMMATION

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

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

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

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

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

Langage Java. Classe de première SI

Introduction au langage C


Package Java.util Classe générique

Le prototype de la fonction main()

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

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

Programmer en JAVA. par Tama

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

INF 321 : mémento de la syntaxe de Java

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

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

Structure d un programme

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

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

Programmation impérative

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

Examen Médian - 1 heure 30

Représentation d un entier en base b

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)

Problèmes liés à la concurrence

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

Programmation Orientée Objet

TP3 : Manipulation et implantation de systèmes de fichiers 1

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

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

Les fichiers. Chapitre 4

Remote Method Invocation (RMI)

TP : Gestion d une image au format PGM

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)

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

Cours de Systèmes d Exploitation

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

Exercices sur les interfaces

Java DataBaseConnectivity

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

Java Licence Professionnelle CISII,

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

I. Introduction aux fonctions : les fonctions standards

Licence Sciences et Technologies Examen janvier 2010

GESTION DES FICHIERS C/UNIX

Architecture des ordinateurs

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

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

Les arbres binaires de recherche

INITIATION AU LANGAGE JAVA

Programmation Orientée Objet Java

Programmation C. Apprendre à développer des programmes simples dans le langage C

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Programmation par les Objets en Java

Cours 14 Les fichiers

Présentation du langage et premières fonctions

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

Solutions du chapitre 4

Chapitre 2. Classes et objets

V- Manipulations de nombres en binaire

Auto-évaluation Programmation 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

Algorithmique et programmation : les bases (VBA) Corrigé

Cours 1: Java et les objets

Programmation système de commandes en C

as Architecture des Systèmes d Information

Rappels d architecture

GOL502 Industries de services

Transcription:

Examen de NFA03 (S2) Juin 203 Durée : 3 heures. Documents, calculettes, portables, ordinateurs interdits. Barême indicatif. Précision : pour les entrées/sorties, on utilise dans ces exercices la classe Terminal, déjà écrite, qui dispose (entre autres) des méthodes suivantes : public static void ecrirechar(char c) : écrit un caractère (char) ; public static void ecrirestring(string s) : écrit une String ; public static void ecrirestringln(string s) : écrit une String et saute à la ligne ; public static void ecrireintln(int i) : écrit un entier et saute à la ligne ; public static void sautdeligne() : saute une ligne (écrit le catactère \n) ; public static String lirestring() : fonction qui lit et retourne une String tapée au clavier ; public static int lireint() : fonction qui lit et retourne un entier tapé au clavier ; public static int liredouble() : fonction qui lit et retourne un double tapé au clavier ; Exercice 4 points Soit le programme : p u b l i c c l a s s P2 { i n t t [ ] = { 7,, 6,, 9, 5 ; i n t t 2 [ ] = {, 3, 6, 2 0, 9 ; f o r ( i n t i = 0 ; i < t. l e n g t h ; i ++) { i n t j = 0 ; while ( j < t 2. l e n g t h && t [ i ] > t 2 [ j ] ) { j ++; i f ( j < t 2. l e n g t h && t [ i ] == t 2 [ j ] ) { T e r m i n a l. e c r i r e I n t l n ( t [ i ] ) ; Qu affiche le programme? 6 Correction

Exercice 2 4 points Écrire un programme qui demande 00 entiers, et affiche gagné si l utilisateur a saisi deux valeurs successives identiques (et perdu sinon). une solution parmis d autre. On peut aussi envisager d écrire gagné et perdu à chaque fois... p u b l i c c l a s s Cent { p u b l i c s t a t i c void main ( S t r i n g a [ ] ) { boolean gagne= f a l s e ; i n t p r e c e d e n t = T e r m i n a l. l i r e I n t ( ) ; / / p r e m i e r e n t i e r... f o r ( i n t i = 0 ; i < 9 9 ; i ++) { / / 99 s u i v a n t s i n t c= T e r m i n a l. l i r e I n t ( ) ; i f ( c== p r e c e d e n t ) { gagne= true ; p r e c e d e n t = c ; i f ( gagne ) { T e r m i n a l. e c r i r e S t r i n g ( gagné ) ; e l s e { T e r m i n a l. e c r i r e S t r i n g ( perdu ) ; Exercice 3 5 points Question 3. 2 points Écrire la fonction nombredoccurrence, qui prend comme arguments un tableau de char t et un char a, et renvoie le nombre de fois où on a trouvé a dans t. p u b l i c s t a t i c i n t nombredoccurrence ( char t [ ], char a ) { i n t c p t = 0 ; f o r ( i n t i = 0 ; i< t. l e n g t h ; i ++) { i f ( t [ i ]== a ) c p t ++; return c p t ; Question 3.2 3 points Écrire la fonction caractereleplusfrequent, qui prend comme argument un tableau de char t et renvoie le caractère qui se rencontre le plus fréquemment dans t. Dans le cas où plusieurs caractères sont possibles, vous renverrez le premier que l on rencontre dans le tableau. Exemple : { c, a, d, a, b, e, a, b, a : le caractère le plus fréquent dans ce tableau est a (4 occurrences). Exemple : { c, f, f, d, c : on rencontre c et f deux fois chacun. On renvoie donc c, qui se trouve en premier dans le tableau. 2

p u b l i c s t a t i c char c a r a c t e r e L e P l u s F r e q u e n t ( char t [ ] ) { i n t m e i l l e u r N b = 0 ; char r e s u l t = ; f o r ( i n t i = 0 ; i< t. l e n g t h ; i ++) { i n t nb= nombredoccurrence ( t, t [ i ] ) ; i f ( nb > m e i l l e u r N b ) { m e i l l e u r N b = nb ; r e s u l t = t [ i ] ; return r e s u l t ; Exercice 4 7 points Dans une école, les étudiants passent un certain nombre de modules. Ils ont une note par module, et obtiennent le diplôme si : ils ont au moins 0 de moyenne générale (les modules ont tous le même coefficient) ; ils ont au moins 8 dans chaque module (une note strictement inférieure à 8 est éliminatoire). Les noms des étudiants sont représentés par un tableau de Strings. Les notes par un tableau à deux dimensions, notes[][]. notes[i][j] représente la note numéro j de l étudiant numéro i ; le nom de celui-ci est nom[i]. p u b l i c c l a s s E2 { i n t n b r e E t u d i a n t s ; double n o t e s [ ] [ ] ; S t r i n g noms [ ] ; noms= s a i s i r N o m s ( ) ; n o t e s = s a i s i r N o t e s ( noms ) ; T e r m i n a l. e c r i r e S t r i n g ( e n t r e z l e nom d un des e t u d i a n t s ) ; S t r i n g e t u d = T e r m i n a l. l i r e S t r i n g ( ) ; i f ( p a s s e ( etud, noms, n o t e s ) ) { T e r m i n a l. e c r i r e S t r i n g l n ( e t u d + a eu son diplome ) ; e l s e { T e r m i n a l. e c r i r e S t r i n g l n ( e t u d + n a pas eu son diplome ) ; p u b l i c s t a t i c S t r i n g [ ] s a i s i r N o m s ( ) { return n u l l ; p u b l i c s t a t i c double [ ] [ ] s a i s i r N o t e s ( S t r i n g noms [ ] ) { return n u l l ; p u b l i c s t a t i c boolean p a s s e ( S t r i n g nometudiant, S t r i n g noms [ ], double n o t e s [ ] [ ] ) { return f a l s e ; p u b l i c s t a t i c i n t i n d i c e E t u d i a n t ( S t r i n g nomunetudiant, S t r i n g [ ] noms ) { / / COMPLETER return ; 3

Question 4. point Écrire la méthode indiceetudiant, qui cherche la position d un étudiant dont on donne le nom dans le tableau des noms. Si l étudiant n est pas trouvé, retourner -. Question 4.2 point Écrire la méthode saisirnom, qui demande combien d étudiants il y a, saisit et retourne leurs noms. Question 4.3 2 point Écrire la méthode saisirnotes, qui demande combien de modules il y a, puis saisit et retourne les notes de tous les étudiants dans ces modules. Question 4.4 3 point Écrire la méthode passe, qui permet de savoir si un étudiant dont on donne le nom a obtenu le diplôme (c est-à-dire a 0 de moyenne sur l ensemble des modules, et 8 ou plus à chaque module). p u b l i c c l a s s E2 { i n t n b r e E t u d i a n t s ; double n o t e s [ ] [ ] ; S t r i n g noms [ ] ; noms= s a i s i r N o m s ( ) ; n o t e s = s a i s i r N o t e s ( noms ) ; T e r m i n a l. e c r i r e S t r i n g ( e n t r e z l e nom d un des e t u d i a n t s ) ; S t r i n g e t u d = T e r m i n a l. l i r e S t r i n g ( ) ; i f ( p a s s e ( etud, noms, n o t e s ) ) { T e r m i n a l. e c r i r e S t r i n g l n ( e t u d + a eu son diplome ) ; e l s e { T e r m i n a l. e c r i r e S t r i n g l n ( e t u d + n a pas eu son diplome ) ; p u b l i c s t a t i c S t r i n g [ ] s a i s i r N o m s ( ) { T e r m i n a l. e c r i r e S t r i n g ( nombre de noms : ) ; i n t nb= T e r m i n a l. l i r e I n t ( ) ; S t r i n g r e s u l t [ ] = new S t r i n g [ nb ] ; f o r ( i n t i = 0 ; i < r e s u l t. l e n g t h ; i ++) { r e s u l t [ i ]= T e r m i n a l. l i r e S t r i n g ( ) ; return r e s u l t ; p u b l i c s t a t i c double [ ] [ ] s a i s i r N o t e s ( S t r i n g noms [ ] ) { double [ ] [ ] n o t e s ; T e r m i n a l. e c r i r e S t r i n g ( nombre de modules : ) ; i n t nbmod= T e r m i n a l. l i r e I n t ( ) ; n o t e s = new double [ noms. l e n g t h ] [ nbmod ] ; f o r ( i n t i = 0 ; i < noms. l e n g t h ; i ++) { f o r ( i n t j = 0 ; j < nbmod ; j ++) { T e r m i n a l. e c r i r e S t r i n g ( n o t e de + noms [ i ] + 4

dans l e module num. + j + : ) ; n o t e s [ i ] [ j ]= T e r m i n a l. l i r e D o u b l e ( ) ; return n o t e s ; p u b l i c s t a t i c boolean p a s s e ( S t r i n g nometudiant, S t r i n g noms [ ], double n o t e s [ ] [ ] ) { i n t pos= i n d i c e E t u d i a n t ( nometudiant, noms ) ; boolean sup8= true ; double moyenne= 0 ; f o r ( i n t i = 0 ; i < n o t e s [ pos ]. l e n g t h ; i ++) { double v= n o t e s [ pos ] [ i ] ; i f ( v < 8) sup8= f a l s e ; moyenne+= v ; moyenne= moyenne / n o t e s [ pos ]. l e n g t h ; return sup8 && ( moyenne >= 0. 0 ) ; p u b l i c s t a t i c i n t i n d i c e E t u d i a n t ( S t r i n g nomunetudiant, S t r i n g [ ] noms ) { f o r ( i n t i = 0 ; i < noms. l e n g t h ; i ++) { i f ( nomunetudiant. e q u a l s ( noms [ i ] ) ) return i ; return ; 5