Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% ont trouvé ce document utile (0 vote)
17 vues13 pages

TP 2 Atelier de Programmation 1 Correction 1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1/ 13

Faculté des Sciences de Monastir Module : Atelier de Programmation 1

Département des Sciences de l'Informatique Niveau : LSI 1

Travaux Pratiques N° 2 (Correction)

Exercice 1

1)

#include <stdio.h>

int main() {

int n1, n2;

// Demander à l'utilisateur de saisir le premier nombre

printf("Entrez le premier nombre : ");

scanf("%d", &n1);

// Demander à l'utilisateur de saisir le deuxième nombre

printf("Entrez le deuxième nombre : ");

scanf("%d", &n2);

// Vérifier la parité des deux nombres

if ((n1 % 2 == 0 && n2 % 2 == 0) || (n1 % 2 != 0 && n2 % 2 != 0)) {

printf("Les deux nombres sont de même parité.\n");

} else {

printf("Les deux nombres ne sont pas de même parité.\n");

return 0;

Enseignant : Mohamed Ali Sghaier


Faculté des Sciences de Monastir Module : Atelier de Programmation 1
Département des Sciences de l'Informatique Niveau : LSI 1

Exercice 2

#include <stdio.h>

int main() {

const int Min = -100;

const int Max = 100;

int N;

// Demander à l'utilisateur de saisir un nombre N

printf("Entrez un nombre N : ");

scanf("%d", &N);

// Vérifier la relation entre N, Min et Max

if (N < Min) {

printf("N est inférieur à Min.\n");

} else if (N >= Min && N <= Max) {

printf("N est compris entre les bornes.\n");

} else {

printf("N est supérieur à Max.\n");

return 0;

Enseignant : Mohamed Ali Sghaier


Faculté des Sciences de Monastir Module : Atelier de Programmation 1
Département des Sciences de l'Informatique Niveau : LSI 1

Exercice 3

#include <stdio.h>

int main() {

int A, B;

// Demander à l'utilisateur de saisir les valeurs A et B

printf("Entrez la valeur de A : ");

scanf("%d", &A);

printf("Entrez la valeur de B : ");

scanf("%d", &B);

// Vérifier le signe du produit sans effectuer la multiplication

if ((A > 0 && B > 0) || (A < 0 && B < 0)) {

printf("Le produit de A et B est positif.\n");

} else if (A == 0 || B == 0) {

printf("Le produit de A et B est nul.\n");

} else {

printf("Le produit de A et B est négatif.\n");

return 0;

Enseignant : Mohamed Ali Sghaier


Faculté des Sciences de Monastir Module : Atelier de Programmation 1
Département des Sciences de l'Informatique Niveau : LSI 1

Exercice 4

#include <stdio.h>

int main() {

int a, b, c, temp;

// Demander à l'utilisateur de saisir trois entiers

printf("Entrez le premier entier : "); scanf("%d", &a);

printf("Entrez le deuxième entier : "); scanf("%d", &b);

printf("Entrez le troisième entier : "); scanf("%d", &c);

// Trier les entiers en ordre décroissant

if (a < b) {

temp = a;

a = b;

b = temp;

if (b < c) {

temp = b;

b = c;

c = temp;

if (a < b) {

temp = a;

a = b;

b = temp;

// Afficher les entiers triés

printf("Les entiers triés par ordre décroissant sont : %d, %d, %d\n", a, b, c);

return 0;

Enseignant : Mohamed Ali Sghaier


Faculté des Sciences de Monastir Module : Atelier de Programmation 1
Département des Sciences de l'Informatique Niveau : LSI 1

Exercice 5
1) Avec Si .. Sinon si .. sinon

#include <stdio.h>

int main() {

char categorie;

int heuresSupplementaires;

float salaireFinal;

const float prixHeureSupplementaire_A = 5.0 ;

float prixHeureSupplementaire_B = 10.0 ;

float prixHeureSupplementaire_C = 15.0 ;

float salaireBase_A = 600 ;

float salaireBase_B = 700 ;

float salaireBase_C = 900 ;

// Demander à l'utilisateur de saisir la catégorie de l'employé

do{

printf("Entrez la catégorie de l'employé (A, B ou C) : ");

scanf(" %c", &categorie);

}while (categorie != 'A' && categorie != 'B' && categorie != 'C' );

// Demander à l'utilisateur de saisir le nombre d'heures supplémentaires


travaillées

printf("Entrez le nombre d'heures supplémentaires travaillées : ");

scanf("%d", &heuresSupplementaires);

// Calculer le prix d'une heure supplémentaire en fonction de la catégorie

if (categorie == 'A') {

salaireFinal = salaireBase_A + (prixHeureSupplementaire_A *


heuresSupplementaires);

} else if (categorie == 'B') {

Enseignant : Mohamed Ali Sghaier


Faculté des Sciences de Monastir Module : Atelier de Programmation 1
Département des Sciences de l'Informatique Niveau : LSI 1

salaireFinal = salaireBase_B + (prixHeureSupplementaire_B *


heuresSupplementaires);

} else{

salaireFinal = salaireBase_C + (prixHeureSupplementaire_C *


heuresSupplementaires);

// Afficher le salaire final

printf("Le salaire final de l'employé est : %.2f dinars\n", salaireFinal);

return 0;

2) Avec Switch

#include <stdio.h>

int main() {

char categorie;

int heuresSupplementaires;

float salaireFinal;

const float prixHeureSupplementaire_A = 5.0 ;

float prixHeureSupplementaire_B = 10.0 ;

float prixHeureSupplementaire_C = 15.0 ;

float salaireBase_A = 600 ;

float salaireBase_B = 700 ;

float salaireBase_C = 900 ;

// Demander à l'utilisateur de saisir la catégorie de l'employé

do{

printf("Entrez la catégorie de l'employé (A, B ou C) : ");

scanf(" %c", &categorie);

}while (categorie != 'A' && categorie != 'B' && categorie != 'C' );

// Demander à l'utilisateur de saisir le nombre d'heures supplémentaires


travaillées

printf("Entrez le nombre d'heures supplémentaires travaillées : ");

Enseignant : Mohamed Ali Sghaier


Faculté des Sciences de Monastir Module : Atelier de Programmation 1
Département des Sciences de l'Informatique Niveau : LSI 1

scanf("%d", &heuresSupplementaires);

// Calculer le prix d'une heure supplémentaire en fonction de la catégorie

switch (categorie) {

case 'A' : salaireFinal = salaireBase_A + (prixHeureSupplementaire_A *


heuresSupplementaires); break ;

case 'B' : salaireFinal = salaireBase_B + (prixHeureSupplementaire_B *


heuresSupplementaires); break ;

default : salaireFinal = salaireBase_C + (prixHeureSupplementaire_C *


heuresSupplementaires); break ;

// Afficher le salaire final

printf("Le salaire final de l'employé est : %.2f dinars\n", salaireFinal);

return 0;

Exercice 6

#include <stdio.h>

int main() {

int heures, minutes, secondes;

// Étape 1 : Saisir les heures, les minutes et les secondes

do {

printf("Entrez les heures : ");

scanf("%d", &heures);

}while (heures < 0 || heures > 23);

do {

printf("Entrez les minutes : ");

scanf("%d", &minutes);

}while ( minutes < 0 || minutes > 59);

Enseignant : Mohamed Ali Sghaier


Faculté des Sciences de Monastir Module : Atelier de Programmation 1
Département des Sciences de l'Informatique Niveau : LSI 1

do {

printf("Entrez les secondes : ");

scanf("%d", &secondes);

}while (secondes < 0 || secondes > 59);

// Étape 3 : Incrémenter le temps d'une seconde

secondes++; // Incrémente les secondes

// Vérifier si nous devons ajuster les minutes et les heures

if (secondes >= 60) {

secondes = 0;

minutes++; // Incrémente les minutes

if (minutes >= 60) {

minutes = 0;

heures++; // Incrémente les heures

if (heures >= 24) {

heures = 0; // Minuit, revenir à 00:00:00

// Étape 4 : Afficher le temps mis à jour en utilisant Les opérateurs


conditionnels ( ? :)

printf("Il est %d heure%s %d minute%s %d seconde%s.\n",

heures, (heures == 1 ? "" : "s"),

minutes, (minutes == 1 ? "" : "s"),

secondes, (secondes == 1 ? "" : "s"));

// Étape 4 : Afficher le temps mis à jour en utilisant Si

/*

Enseignant : Mohamed Ali Sghaier


Faculté des Sciences de Monastir Module : Atelier de Programmation 1
Département des Sciences de l'Informatique Niveau : LSI 1

char th = 's' , tm = 's' , ts = 's' ; // th : terminaison heure , tm :


terminaison minute , ts : terminaison seconde

if (heures == 1)

th = '\0';

if (minutes == 1)

tm = '\0';

if (secondes == 1)

ts = '\0';

// Étape 4 : Afficher le temps mis à jour

printf("Il est %d heure%c %d minute%c %d seconde%c.\n", heures, th, minutes, tm,


secondes, ts);

*/

return 0;

Exercice 7

#include <stdio.h>

int main() {

int jour, mois;

int annee = 2023; // Année courante

// Étape 1 : Saisir le jour et le mois

printf("Entrez le jour : ");

scanf("%d", &jour);

Enseignant : Mohamed Ali Sghaier


Faculté des Sciences de Monastir Module : Atelier de Programmation 1
Département des Sciences de l'Informatique Niveau : LSI 1

printf("Entrez le mois : ");

scanf("%d", &mois);

// Étape 2 : Contrôler la saisie

if (mois < 1 || mois > 12 || jour < 1 || jour > 31) {

printf("Saisie invalide. Le mois doit être entre 1 et 12, et le jour doit


être entre 1 et 31.\n");

return 1; // Sortie avec erreur

// Vérifier si l'année est bissextile

int estBissextile = (annee % 4 == 0 && (annee % 100 != 0 || annee % 400 == 0));

if (jour == 29 && !estBissextile){

printf("L'année n'est bissextile\n");

return 1 ;

// Étape 2 : Déterminer la saison

if ((mois == 9 && jour >= 23) || (mois == 10) || (mois == 11) || (mois == 12 &&
jour <= 21)) {

printf("Saison d'automne\n");

} else if ((mois == 12 && jour >= 22) || (mois == 1) ||(mois == 3 && jour <= 19)
||

(mois == 2 && ((jour <= 29 && estBissextile) || (jour <= 28 &&


!estBissextile)))) {

printf("Saison d'hiver\n");

else if ((mois == 3 && jour >= 20) || (mois == 4) || (mois == 5) || (mois == 6 &&
jour <= 20)) {

printf("Saison de printemps\n");

Enseignant : Mohamed Ali Sghaier


Faculté des Sciences de Monastir Module : Atelier de Programmation 1
Département des Sciences de l'Informatique Niveau : LSI 1

} else {

printf("Saison d'été\n");

return 0;

Exercice 8

1)
#include <stdio.h>

int main() {

// 1. Déclaration des données nécessaires

char emplacement;

float surface, prix_unitaire, prix_total;

// 2. Lecture de l'emplacement et de la surface du lot

printf("Entrez l'emplacement du lot (A, B, C) : ");

scanf(" %c", &emplacement); // Utilisation de l'espace avant %c pour ignorer les


caractères blancs

// 3. Contrôle de la saisie de l'utilisateur

if (emplacement != 'A' && emplacement != 'B' && emplacement != 'C') {

printf("Emplacement invalide. Veuillez entrer A, B ou C.\n");

return 1; // Code de sortie d'erreur

printf("Entrez la surface du lot en mètres carrés : ");

scanf("%f", &surface);

Enseignant : Mohamed Ali Sghaier


Faculté des Sciences de Monastir Module : Atelier de Programmation 1
Département des Sciences de l'Informatique Niveau : LSI 1

if (surface <= 0) {

printf("Surface invalide \n");

return 1; // Code de sortie d'erreur

if (emplacement != 'C' && surface <= 300) {

printf("Surface invalide pour l'emplacement spécifié.\n");

return 1; // Code de sortie d'erreur

// Calcul du prix total du lot

if (emplacement == 'A' && surface == 500) {

prix_unitaire = 100;

} else if (emplacement == 'A' && surface == 1000) {

prix_unitaire = 90;

} else if (emplacement == 'B' && surface == 500) {

prix_unitaire = 120;

} else if (emplacement == 'B' && surface == 1000) {

prix_unitaire = 100;

} else if (emplacement == 'C' && surface <= 300) {

prix_unitaire = 200;

} else if (emplacement == 'C' && surface == 500) {

prix_unitaire = 150;

} else {

Enseignant : Mohamed Ali Sghaier


Faculté des Sciences de Monastir Module : Atelier de Programmation 1
Département des Sciences de l'Informatique Niveau : LSI 1

printf("Combinaison emplacement/surface non valide.\n");

return 1; // Code de sortie d'erreur

prix_total = surface * prix_unitaire;

printf("Le prix total du lot est de %.2f dinars.\n", prix_total);

return 0; // Sortie normale

Enseignant : Mohamed Ali Sghaier

Vous aimerez peut-être aussi