Corrigé des exercices sur les tableaux



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

Corrigés des premiers exercices sur les classes

Utilisation d objets : String et ArrayList

Premiers Pas en Programmation Objet : les Classes et les Objets

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


Java Licence Professionnelle CISII,

Recherche dans un tableau

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

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

Langage Java. Classe de première SI

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

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

Programmer en JAVA. par Tama

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

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

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

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

INF 321 : mémento de la syntaxe de Java

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

Algorithmique et Programmation, IMA

Conventions d écriture et outils de mise au point

PROGRESSION TIC AU PRIMAIRE. Document de référence. Commission scolaire des Découvreurs

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

STAGE IREM 0- Premiers pas en Python

Bases de programmation. Cours 5. Structurer les données

1. Langage de programmation Java

LES TYPES DE DONNÉES DU LANGAGE PASCAL

TP 1. Prise en main du langage Python

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

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)

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

Chap III : Les tableaux

Solutions du chapitre 4

Programmation avec des objets : Cours 7. Menu du jour

Algorithmique et programmation : les bases (VBA) Corrigé

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

Programme Compte bancaire (code)

as Architecture des Systèmes d Information

1 Recherche en table par balayage

Introduction au langage C

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

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

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

Chapitre 2 Devine mon nombre!

Projet de programmation (IK3) : TP n 1 Correction

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Cours de Systèmes d Exploitation

Programmation en Java IUT GEII (MC-II1) 1

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

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Découverte de Python

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

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

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

Le langage C. Séance n 4

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Traduction des Langages : Le Compilateur Micro Java

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)

Présentation du langage et premières fonctions

B2i Brevet Informatique. Internet. Livret de l enseignant

Cours Informatique Master STEP

Les structures de données. Rajae El Ouazzani

Notions fondamentales du langage C# Version 1.0

Introduction à MATLAB R

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

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

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

Architecture des Systèmes d Information Architecture des Systèmes d Information

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

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

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

Les arbres binaires de recherche

TP, première séquence d exercices.

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

LES MOTEURS DE RECHERCHE SUR INTERNET

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Initiation à la programmation en Python

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

Programmation Classique en langage C

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

I. Introduction aux fonctions : les fonctions standards

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

Principes des langages de programmation INF 321. Eric Goubault

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

PHP 4 PARTIE : BASE DE DONNEES

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

INITIATION AU LANGAGE JAVA

Programmation par les Objets en Java

Lier Erlang avec d autres langages de programmation

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

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)

Transcription:

Corrigé des exercices sur les tableaux Exercice 4.1.1 tableau d entiers Dans cet exercice, on va travailler avec un tableau d entiers initialisé : int[] tab = {12, 15, 13, 10, 8, 9, 13, 14; Question 1 Ecrire un programme qui saisit un entier au clavier et qui recherche si cet entier appartient au tableau (réponse de type oui/non). class Exo6_6_1{ int[] tab = {12, 15, 13, 10, 8, 9, 13, 14; boolean estla = false; Terminal.ecrireString("Entrez le nombre a chercher: "); if (tab[i] == n){ estla = true; if (estla){ Terminal.ecrireStringln("Le nombre est dans le tableau"); else{ Terminal.ecrireStringln("Le nombre n est pas dans le tableau"); Note : il serait possible d arrêter la recherche dès qu on a trouvé le nombre avec une instruction break pour sortir de la boucle for. Question 2 Ecrire un programme qui saisit un entier au clavier et qui recherche si cet entier appartient au tableau. Au cas où la réponse est positive, l indice de cet entier dans le tableau est affiché. S il y a plusieurs occurrences, le dernier indice est affiché. 1

class Exo6_6_2{ int[] tab = {12, 15, 13, 10, 8, 9, 13, 14; int indice = -1; Terminal.ecrireString("Entrez le nombre a chercher: "); if (tab[i] == n){ indice = i; if (indice!= -1){ Terminal.ecrireString("Le nombre est à l indice "); Terminal.ecrireIntln(indice); else{ Terminal.ecrireStringln("Le nombre n est pas dans le tableau"); Question 3 Même question, mais s il y a plusieurs occurrences, le premier indice est affiché. class Exo6_6_3{ int[] tab = {12, 15, 13, 10, 8, 9, 13, 14; int indice = -1; Terminal.ecrireString("Entrez le nombre a chercher: "); if ((tab[i] == n) && (indice == -1)){ indice = i; if (indice!= -1){ Terminal.ecrireString("Le nombre est à l indice "); Terminal.ecrireIntln(indice); else{ Terminal.ecrireStringln("Le nombre n est pas dans le tableau"); Ici aussi, on aurait pu interrompre la boucle dès qu on a trouvé l élément recherché. Question 4 Ecrire un programme qui saisit un entier et un indice et met cet entier dans le tableau à cet indice. Il faudra vérifier que l indice correspond bien à une case du tableau (par exemple 0 ou 3 sont corrects, 2 NFA031 c CNAM 2012

mais -1 ou 123 ne sont pas des indices corrects pour ce tableau). Le programme affichera le contenu du tableau avant et après cette transformation. class Exo6_6_4{ int[] tab = {12, 15, 13, 10, 8, 9, 13, 14; int n, indice; Terminal.ecrireString("Entrez le nombre a inserer: "); Terminal.ecrireString("Entrez l indice: "); indice = Terminal.lireInt(); if ((indice >= 0) && (indice < tab.length)){ Terminal.ecrireString("tableau avant insertion : "); tab[indice] = n; Terminal.ecrireString("tableau après insertion : "); else{ Terminal.ecrireStringln("indice non valide"); Question 5 Ecrire un programme qui saisit deux indices et échange les valeurs contenues dans le tableau à ces deux indices. Le programme affichera le contenu du tableau avant et après cette transformation. class Exo6_6_5{ int[] tab = {12, 15, 13, 10, 8, 9, 13, 14; int indice1, indice2, memoire; Terminal.ecrireString("Entrez le premier indice: "); indice1 = Terminal.lireInt(); Terminal.ecrireString("Entrez le deuxième indice: "); indice2 = Terminal.lireInt(); if ((indice1 < 0) (indice1 >= tab.length)){ Terminal.ecrireStringln("indice 1 non valide"); else if((indice2 < 0) (indice2 >= tab.length)){ Terminal.ecrireStringln("indice 2 non valide"); else{ Terminal.ecrireString("tableau avant echange : "); NFA031 c CNAM 2012 3

memoire = tab[indice1]; tab[indice1] = tab[indice2]; tab[indice2] = memoire; Terminal.ecrireString("tableau après echange : "); Exercice 4.1.2 tableau entré au clavier Question 1 Ecrire un programme qui saisit 6 entiers et les stocke dans un tableau, puis affiche le contenu de ce tableau une fois qu il est rempli. class Exo6_7_1{ int[] table; table = new int[6]; Terminal.ecrireString("Entrez l entier " + (i+1) + ": "); table[i] = Terminal.lireInt(); Terminal.ecrireStringln("Voici le tableau: "); Terminal.ecrireString(" " + table[i]); Question 2 Reprendre la partie saisie du programme précédent pour écrire un nouveau programme qui recherche et affiche le plus grand élément du tableau. class Exo6_7_2{ int[] table; int plusgrand; table = new int[6]; Terminal.ecrireString("Entrez l entier " + (i+1) + ": "); table[i] = Terminal.lireInt(); 4 NFA031 c CNAM 2012

plusgrand = table[0]; for (int i = 1; i<table.length; i++){ if (table[i] > plusgrand){ plusgrand = table[i]; Terminal.ecrireStringln("Plus grand: " + plusgrand); Question 3 Même question, c est à dire saisie d un tableau et recherche du plus grand élément, mais cette fois pour un tableau contenant des caractères. class Exo6_7_3{ char plusgrand; table = new char[6]; plusgrand = table[0]; for (int i = 1; i<table.length; i++){ if (table[i] > plusgrand){ plusgrand = table[i]; Terminal.ecrireStringln("Plus grand: " + plusgrand); On voit que seules les déclarations et les entrées-sorties changent. Les autres instructions sont identiques dans le deux programmes. Question 4 Ecrire un programme qui saisit un tableau de 6 entiers puis calcule la moyenne de ces six entiers. Attention, la moyenne des entiers n est pas un entier. class Exo6_7_4{ int[] table; double moyenne = 0.0; table = new int[6]; Terminal.ecrireString("Entrez l entier " + (i+1) + ": "); table[i] = Terminal.lireInt(); NFA031 c CNAM 2012 5

moyenne = moyenne + table[i]; moyenne = moyenne / table.length; Terminal.ecrireStringln("Moyenne: " + moyenne); Question 5 Ecrire un programme qui saisit d abord un nombre n, puis ensuite saisit n caractères et les place dans un tableau. class Exo6_7_5{ Terminal.ecrireString("Entrez le nombre d elements: "); table = new char[n]; Terminal.ecrireString("Voici le tableau: "); Terminal.ecrireString(" "+table[i]); On voit ici comment on peut faire une boucle qui parcourt un tableau dont on ne connait pas la longueur au moment où on écrit le programme. Cette longueur ne sera connue qu à l exécution. Exercice 4.1.3 nombre de lettres dans un tableau Ecrire un programme qui saisit 10 caractères au clavier, puis ensuite, calcule le nombre de majuscules, et le nombre de lettres dans ce tableau. Un caractère n est pas forcément une lettre : ce peut être un chiffre, un signe de ponctuation, un caractère spécial. Question 1 Pour cette question, on ne considère que les lettres sans accent. Pour déterminer si un caractère est une lettre, on utilise l ordre sur les caractères. Est une lettre tout caractère compris entre a et z et entre A et Z. Est une majuscule tout caractère compris entre A et Z. class Exo6_5{ int nblettres = 0; 6 NFA031 c CNAM 2012

int nbmajuscules = 0; table = new char[10]; if ((table[i] >= A ) && (table[i] <= Z )){ nblettres++; nbmajuscules++; else if ((table[i] >= a ) && (table[i] <= z )){ nblettres++; Terminal.ecrireStringln("Nombre de majuscules: " + nbmajuscules); Terminal.ecrireStringln("Nombre de lettre: " + nblettres); Question 2 Ecrire le même programme en utilisant les deux méthodes suivantes pour déterminer si un caractère est une lettre et une majuscule. Character.isLetter qui prend en paramètre un caractère et renvoie un boolean. Character.isUppercase qui prend en paramètre un caractère et renvoie un boolean. class Exo6_5bis{ int nblettres = 0; int nbmajuscules = 0; table = new char[10]; if (Character.isUpperCase(table[i])){ nbmajuscules++; if (Character.isLetter(table[i])){ nblettres++; Terminal.ecrireStringln("Nombre de majuscules: " + nbmajuscules); Terminal.ecrireStringln("Nombre de lettre: " + nblettres); NFA031 c CNAM 2012 7