Corrigé des exercices sur les tableaux
Corrigé des exercices sur les tableaux. Exercice 5.1.1 tableau d'entiers. Dans cet exercice on va travailler avec un tableau d'entiers initialisé :.
Corrigé des exercices sur les tableaux à deux dimensions
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
Corrigés des premiers exercices sur les classes
Corrigés des premiers exercices sur les classes. Exercice 2.1.1 utilisation d'une classe Pour cela notez bien qu'il faut d'abord créer le tableau puis.
Corrigés des exercices sur les fonctions
Il faut encore voir les éléments suivants d'où la boucle. Exercice 5.1.4 fonctions sur les tableaux. Question 1. Ecrire une fonction qui cherche si un élément
SUJET + CORRIGE
Exercice 2 : Algorithmes de rang. (14 points). Le probl`eme de la sélection consiste `a trouver dans un tableau de nombres l'élément dit de rang i.
SUJET + CORRIGE
16 jui. 2014 Exercice 1 : Le tri par tas. (28 points). Le but de l'exercice est l'écriture d'un algorithme de tri de tableaux basé sur la notion de tas.
SUJET + CORRIGE
Exercice 1 : Compréhension de fonction. (3 points). La fonction mystere(ts) donnée ci-dessous prend en param`etre deux tableaux t et s. def mystere(t
SUJET + CORRIGE
13 avr. 2012 Suites et tableaux. 12. Tableaux et prédicats. 10. Fonction myst`ere. 9. Complexité. 11. Total: 42. Exercice 1: Suites et tableaux.
Corrigés des exercices sur les fonctions récursives
Corrigés des exercices sur les fonctions Exercice 7.1.1 sous-programmes récursifs ... Deux paramètres : un tableau d'entiers tab et un indice ind.
Corrigés des exercices sur lhéritage
Corrigés des exercices sur l'héritage. Exercice 6.1.1 comptes bancaires inférieurs hiérarchiques directs dans un tableau.
![Corrigés des exercices sur les fonctions Corrigés des exercices sur les fonctions](https://pdfprof.com/Listes/16/35459-16corriges-sous-programmes-1.pdf.pdf.jpg)
Question 1
Modifiez le programme pour que le calcul de la division soit réalisé par une fonction à deux
paramètres,xety.Question 2
Que se passe-t-il dans le cas où le deuxième nombre entré vaut0? Le programme risque deboucler éternellement si x est positif : en effet, soustraire 0à chaque tour de boucle ne change en rien la valeur de la condition. Modifiez le programme pour qu'une erreur soit déclenchée quand le diviseur y vaut 0. Le programme suivant répond aux deux premières questions. public classExo8_1bis{ static intdivision(intx,inty){ intres = 0; intcour = x; if(y == 0){ throw newDiviseParZero(); while(cour>=y){ cour = cour -y; res = res+1; returnres; public static voidmain(String[] args){ inta, b;Terminal.ecrireString("Entrez
lenombre:"); a = Terminal.lireInt();Terminal.ecrireString("Entrez
l'exposant:"); b = Terminal.lireInt();Terminal.ecrireString("" + a + "/" + b + "
Terminal.ecrireIntln(division(a,b));
classDiviseParZeroextendsError{} 1Question 3
Modifiez le programme pour qu'il fonctionne également pour xou y négatifs. public classExo8_1ter{ static intdivision(intx,inty){ intres = 0; intsigne = 1; intcour, moins; if(x<0){ cour = -x; signe = -1; }else{ cour = x; if(y<0){ moins = -y; signe = -1 *signe; }else{ moins = y; if(y == 0){ throw newDiviseParZero(); while(cour>=moins){ cour = cour -moins; res = res+1; returnres*signe; public static voidmain(String[] args){ inta, b;Terminal.ecrireString("Entrez
lenombre:"); a = Terminal.lireInt();Terminal.ecrireString("Entrez
l'exposant:"); b = Terminal.lireInt();Terminal.ecrireString("" + a + "/" + b + "
Terminal.ecrireIntln(division(a,b));
classDiviseParZeroextendsError{}Exercice 5.1.2fonctions mathématiques
Ecrire un programme avec les fonctionscarreetcubequi calculent respectivement le carré et le cube (ou puissance 3) d'un nombre de typedouble. La méthodemaindoit tester ces deux fonctions sur plusieurs exemples. classExo8_2{ static doublecarre(doublex){ returnx *x;2NFA031c?CNAM 2012
static doublecube(doublex){ returnx*x*x; public static voidmain(String[] argv){ doublen;Terminal.ecrireString("Entrez
unnombre:"); n = Terminal.lireDouble();Terminal.ecrireString("" + n + "
aucarre=");Terminal.ecrireDoubleln(carre(n));
Terminal.ecrireString("" + n + "
aucube=");Terminal.ecrireDoubleln(cube(n));
Quelques remarques sur ce programme. Les deux fonctions quenous avons là sont très simples. Ilest aussi rapide d'écrire dans le programmen*nque l'appel àla fonctioncarre(n),pour un résultat
équivalent. Le seul intérêt éventuel d'une fonction dans unpareil cas est d'améliorer la lisibilité du
programme. Ici, c'est relativement discutable.Autre remarque : voyez comme on évite de faire les entrées-sorties dans les fonctions. Les fonc-
tions servent seulement à calculer. Les entrées-sorties sont effectuées dans la méthode main. On pour-
rait également utiliser une méthode spécialisée dans les entrées-sorties, mais il faut toujours éviter de
mêler des calculs et des entrées-sorties.Exercice 5.1.3égalité de tableaux
Bien souvent, on veut comparer deux tableaux selon une égalité selon laquelle les deux tableaux
t1ett2sont égaux si et seulement si ils ont la même longueur et les éléments de même indice sont
égaux, c'est à dire quet1[i] == t2[i]pour tout indicei.Ecrire une fonction appeléeestEgalqui réalise ce test d'égalité pour des tableaux de type
int[]. classExo8_3{ static booleanestEgal(int[] ti1,int[] ti2){ booleanres =true; if(ti1.length != ti2.length){ res =false; }else{// ti1.length == ti2.length for(inti=0; iTerminal.ecrireStringln("t1
=t3?" + estEgal(t1,t3));Terminal.ecrireStringln("t1
=t4?" + estEgal(t1,t4));NFA031
c?CNAM 20123Le principe de la méthode de test est d'abord, traiter le cas des tableaux de longueurs différentes
qui ne peuvent être égaux. Ensuite, pour le cas où les deux tableaux sont de même longueur, on fait
une bouclefordont le compteuriva prendre successivement toutes les valeurs des indices des deux tableaux, en commençant par 0. Pour chaque indice, on compare les valeurs des cases de tableaux à cet indice (ti1[i] == ti2[i]). Il suffit qu'un seul des tests successifs soit faux pour quelavariablerescontiennent la valeurfalse. C'est là l'intérêt du connecteur logique&&. Même si le
test faux est suivi de tests vrais, la variableresreste àfalse.Onpourrait améliorer quelque peu la fonction en arrêtant leparcours dès qu'on a trouvé un résultat
faux. En effet, dès qu'un test échoue,respasse àfalseet ne peut plus jamais changer de valeur.
On peut interrompre la boucleforsoit avec une instructionbreak, soit en utilisant unreturnqui met fin à l'exécution de la fonction. Voilà ce que cela donne : static booleanestEgal(int[] ti1,int[] ti2){ if(ti1.length != ti2.length){ return false; }else{// ti1.length == ti2.length for(inti=0; id'être arrivé à la fin de la boucle sans avoir fait dereturn, pour pouvoir conclure positivement. Ce
serait une erreur grave de faire unelseauifde la boucle : en effet, avoir un test vrai ne permet pas de conclure. Il faut encore voir les éléments suivants, d'oùla boucle.Exercice 5.1.4fonctions sur les tableaux
Question 1
Ecrire une fonction qui cherche si un élément appartient à untableau dechar. Le caractère
recherché et le tableau seront les deux paramètres de la fonction.Question 2
Ecrire une fonction qui compte le nombre d'occurrences d'uncaractère dans un tableau, c'est àdire le nombre de fois où un élément apparaît dans un tableau de caractères. Le caractère recherché et
le tableau seront les deux paramètres de la fonction.Question 3
Ecrire une fonction qui prend deux tableaux en paramètres etqui teste si tous les éléments du
premier tableau apparaissent au moins une fois dans le deuxième tableau. Il est possible d'utiliser
4NFA031c?CNAM 2012
dans le corps de cette fonction la fonction écrite pour la réponse à la question 1. Voici un programme qui répond aux trois questions. classExo8_4{ static booleanappartient(charelem,char[] tab){ booleanres =false; for(inti = 0; iTerminal.ecrireStringln("'c'
appartientàx?" + appartient('c',x));Terminal.ecrireStringln("nombre
de'a'dansx?" + nbOccurrences('a',x));Terminal.ecrireStringln("nombre
de'b'dansx?" + nbOccurrences('b',x));Terminal.ecrireStringln("nombre
de'z'dansx?" + nbOccurrences('z',x));Terminal.ecrireStringln("y
inclusdansx?" + inclus(y,x));Terminal.ecrireStringln("z
inclusdansx?" + inclus(z,x));La remarque de l'exercice précédent sur la possibilité d'interrompre la boucle peut s'appliquer
NFA031
c?CNAM 20125 aux méthodesappartientetinclus.Exercice 5.1.5concaténation de tableaux
On appelleconcaténationl'opération qui prend deux tableaux et calcule un tableau contenant leséléments du premier tableau, puis, à leur suite, les éléments du second tableau, dans le même ordre,
mais avec un indice différent.Ecrire une fonction qui calcule la concaténation de deux tableaux d'entiers. Indice : il faut créer
le tableau résultat dans le corps de la fonction. classExo8_5{ static int[] concatene(int[] t1,int[] t2){ int[] res =new int[t1.length+t2.length]; for(inti = 0; iTerminal.sautDeLigne();
Exercice 5.1.6affichage de tableau
On reprend le programmeAfficheTabledonné dans le cours du chapitre 8.Question 1
Dans un premier temps, on ne s'intéressera qu'aux entiers strictement positifs. Le nombre decaractères-à afficher à chaque tour de boucle dépend du nombre de chiffre de la valeur contenue
dans le tableau à l'indicei. classExo8_6_1{ static voidafficheTable(int[] t){ intnb;Terminal.ecrireChar('+');
for(inti=0; i6NFA031c?CNAM 2012
Terminal.ecrireChar('-');nb = nb / 10;
quotesdbs_dbs29.pdfusesText_35[PDF] MLO - TD logique des prédicats - Ensiie
[PDF] EXERCICE 1 (5 points ) (Commun ? tous les - Math France
[PDF] Fiabilité
[PDF] Machine frigorifique : corrigé
[PDF] Travaux dirigés de magnétisme
[PDF] Fiabilité
[PDF] Dossier de Maintenance- Corrigé - Eduscol
[PDF] Marche de potentiel
[PDF] Corrigé Mathématiques financières 2
[PDF] Mathématiques financières EXERCICES CORRIGES - Cours
[PDF] Exercices et examens résolus: Mécaniques des Systèmes de
[PDF] Mécanique Quantique 2`eme édition - Laboratoire de Physique
[PDF] LA COMPTABILITE A BASE D 'ACTIVITES Méthode - IUT en Ligne
[PDF] Analyse Numérique