• Aucun résultat trouvé

IF1: Introduction à l'Informatique et à la programmation - Devoir sur Table

N/A
N/A
Protected

Academic year: 2022

Partager "IF1: Introduction à l'Informatique et à la programmation - Devoir sur Table"

Copied!
3
0
0

Texte intégral

(1)

Université Paris-Diderot - L1 Octobre 2012

IF1: Introduction à l'Informatique et à la programmation - Devoir sur Table

(Correction)

Documents non autorisés. Le barème est donné seulement à titre indicatif.

Exercice 1 (7 points) Écrire un programme Java PlusPetitDiviseur3 qui demande à l'utilisateur de rentrer au clavier un entier positif n, puis demande à l'utilisateur de rentrer 3 autres entiers positifs e1, e2, e3, enn le programme ache le plus petit diviseur de n parmis les entiers e1, e2, e3.

Voici quelques exemples d'exécution de l'appel java PlusPetitDiviseur3.

> java PlusPetitDiviseur3

Donnez un nombre positif quelconque : 12 Entrez l'entier numero 1 :5

Entrez l'entier numero 2 :6 Entrez l'entier numero 3 :2 Le plus petit diviseur est: 2

> java PlusPetitDiviseur3

Donnez un nombre positif quelconque : 39 Entrez l'entier numero 1 :24

Entrez l'entier numero 2 :3 Entrez l'entier numero 3 :2 Le plus petit diviseur est: 3 Correction :

import java.util.Scanner;

class PlusPetitDiviseur3{

public static void main(String[] args){

int j,k,l,n,min;

Scanner sc = new Scanner(System.in);

System.out.print("Donnez un nombre positif quelconque : ");

n = sc.nextInt();

System.out.print("Premier entier positif : ");

j = sc.nextInt();

System.out.print("Deuxieme entier positif : ");

k = sc.nextInt();

System.out.print("Troisieme entier positif : ");

l = sc.nextInt();

min=n+1;

if (n > 0 && j>0 && k>0 && l>0){

if ((n%j==0) && (j < min)) min = j;

if ((n%k==0) && (k < min)) min = k;

if ((n%l==0) && (l < min)) min = l;

(2)

if (min == n+1)

System.out.println("Pas de diviseur");

else System.out.println("Plus Petit Diviseur de "+n+": " + min);

}else System.out.println("Saisie Incorrecte");

}}

Exercice 2 (7 points) Un entrepreneur réalise des travaux de rénovation en fournissant lui même les matériaux pour ces travaux. Le parquet pour le revêtement de sols coûte 200elem2, la pose du parquet étant facturée 50e le m2. Les moulures de portes coûtent 30e le mètre linéaire (ml) et la pose est facturée la somme de 300e plus 20e le ml. L'enlèvement de gravats, si nécessaire, est facturé 120e.

Écrire un programme Java PrixEntrepreneur qui traite une commande et qui renvoie comme résultat son prix. Le programme doit lire d'abord le nombre de m2 à revetir, le nombre de mètres linéaires de moulures, et puis un entier lui indiquant si l'enlèvement de gravats est nécessaire.

Le prix à payer est de 0e si la commande est vide ou si elle ne respecte pas les contraintes énoncées dans l'ennoncé.

Voici quelques exemples d'exécution:

> java PrixEntrepreneur

Mètres carrés de parquet : 5,5 Mètres linéaires de moulure : 20,4 Enlèvement gravats (Oui/1 - Non/0) : 1 Prix a payer: 2815.0

> java PrixEntrepreneur

Mètres carrés de parquet : 5,5 Mètres linéaires de moulure : 0

Enlèvement gravats (Oui/1 - Non/0) : 0 Prix a payer: 1375.0

Correction :

import java.util.Scanner;

class PrixEntrepreneur{

public static double prix(double parquet, double moulures, int gravats){

double prix = 0;

if ((0 <= parquet) && (0 <= moulures) && (0 <= gravats) && (gravats <=1)){

prix = parquet*250 + moulures*50 + gravats*120 ; if (moulures >0) prix = prix + 300;

return prix;

}else return prix;

}

public static void main(String[] args){

double p, m; int g;

Scanner sc = new Scanner(System.in);

(3)

System.out.print("Metres carres de parquet : ");

p = sc.nextDouble();

System.out.print("Metres lineaires de moulure : ");

m = sc.nextDouble();

System.out.print("Enlevement gravats (Oui/1 - Non/0) : ");

g = sc.nextInt();

System.out.println("Prix a payer: " + prix(p,m,g));

}}

Exercice 3 (6 points) On considère le programme suivant:

import java.util.Scanner;

class Rec3{

public static void repeter (int n){

if (n > 3){

System.out.print("#");

System.out.print("@");

repeter(n - 3);

}

else System.out.println();

}

public static void main(String[] args){

int k;

Scanner sc = new Scanner(System.in);

System.out.print("Donnez un nombre quelconque : ");

if (sc.hasNextInt()){

k = sc.nextInt();

repeter(k);

System.out.println();

} }}

1. Qu'ache l'exécution du programme Rec3 lorsqu'on rentre l'entier 15?

Correction :

Donnez un nombre quelconque : 15

#@#@#@#@

2. Tracer tous les appels récursifs de repeter(15).

Correction :

repeter(15) println()

print("#")print("@")repeter(12)

print("#")print("@")repeter(9)

print("#")print("@")repeter(6)

print("#")print("@")repeter(3) println()

Références

Documents relatifs

Avez-vous déjà ouvert un livre de cuisine pour concocter une bonne ouiche lorraine!. Avez-vous déjà déchiffré une notice de montage d’une

Il suffit, pour déduire le gain en puissance d'un amplificateur, de mesurer la valeur en dB indiquée lorsque le voltmètre est branché en sortie puis en entrée de

In the sec- ond section, we extend the simple projective type sys- tem with the ML Let typing rules and add concrete data types to the language: this denes the language we

One would, however, lose a property we believe important: rule Inherits shows that the type a class gives to self is an instance of the types given to self by its ancestors; as

One would, however, lose a property we believe important: rule Inherit shows that the type a class gives to self is a common instance of the different types of self in its ancestors;

Seulessontautorisées, d'unepart,lesreproductions strictementréser- véesà l'usageprivéducopisteet nondestinéesàuneutilisationcollec tive,et d'autrepart

De la chaleur de la série bois au minimalisme de la série laquée, les portes intérieures Dimoldura sont la solution parfaite pour la maison.. Le grand choix de produits et

nance Tamjout (Maroc) apparaît la plus précoce et la plus infectée, bien qu’elle ne présente pas la sensibilité intrinsèque la plus forte.. L’augmentation