Introduction
Dans ce laboratoire, vous apprendrez à construire des structures de prise de décision en programmation C. Vous commencerez par comprendre le concept fondamental de l'instruction if, qui permet à votre programme de prendre des décisions en fonction de conditions spécifiques. Vous explorerez ensuite les opérateurs d'inégalité, les instructions if-else en chaîne, combinerez des expressions avec des opérateurs logiques et pratiquerez la logique conditionnelle. À la fin de ce laboratoire, vous aurez une solide compréhension de la création de structures de prise de décision dans vos programmes C, vous permettant d'écrire un code plus sophistiqué et intelligent.
Comprendre l'instruction if
Dans cette étape, vous apprendrez le concept fondamental des instructions if en programmation C, qui sont essentielles pour créer des structures de prise de décision dans votre code. Les instructions if permettent à votre programme de prendre des décisions et d'exécuter différents blocs de code en fonction de conditions spécifiques.
Commençons par créer un simple programme C qui démontre la syntaxe de base de l'instruction if. Ouvrez l'éditeur VSCode et créez un nouveau fichier appelé if_statement.c dans le répertoire ~/project :
cd ~/project
touch if_statement.c
#include <stdio.h>
int main() {
int temperature = 25;
if (temperature > 30) {
printf("It's a hot day!\n");
}
if (temperature <= 30) {
printf("The temperature is comfortable.\n");
}
return 0;
}
Compilez et exécutez le programme :
gcc if_statement.c -o if_statement
./if_statement
Exemple de sortie :
The temperature is comfortable.
Décortiquons l'instruction if :
- Le mot-clé
ifest suivi d'une condition entre parenthèses() - La condition est une expression logique qui s'évalue à vrai ou faux
- Si la condition est vraie, le bloc de code entre accolades
{}est exécuté - Si la condition est fausse, le bloc de code est ignoré
Maintenant, créons un exemple plus interactif qui montre comment les instructions if peuvent prendre des décisions en fonction de l'entrée de l'utilisateur :
#include <stdio.h>
int main() {
int age;
printf("Enter your age: ");
scanf("%d", &age);
if (age >= 18) {
printf("You are eligible to vote.\n");
}
if (age < 18) {
printf("You are not old enough to vote.\n");
}
return 0;
}
Compilez et exécutez le programme :
gcc voting_eligibility.c -o voting_eligibility
./voting_eligibility
Exemple de sortie :
Enter your age: 20
You are eligible to vote.
Points clés à retenir :
- Les instructions
ifpermettent à votre programme de prendre des décisions - La condition est évaluée comme vraie ou fausse
- Seul le bloc de code pour la condition vraie sera exécuté
- Vous pouvez utiliser des opérateurs de comparaison tels que
>,<,>=,<=,==,!=
Explorer les opérateurs d'inégalité
Dans cette étape, vous approfondirez votre connaissance de la programmation C en explorant les opérateurs d'inégalité, qui sont essentiels pour créer des instructions conditionnelles plus complexes. Les opérateurs d'inégalité vous permettent de comparer des valeurs et de prendre des décisions en fonction de leurs relations.
Créons un nouveau fichier appelé inequality_operators.c dans le répertoire ~/project pour démontrer différents opérateurs d'inégalité :
cd ~/project
touch inequality_operators.c
#include <stdio.h>
int main() {
int x = 10;
int y = 20;
// Equal to (==) operator
if (x == y) {
printf("x is equal to y\n");
} else {
printf("x is not equal to y\n");
}
// Not equal to (!=) operator
if (x!= y) {
printf("x is different from y\n");
}
// Greater than (>) operator
if (y > x) {
printf("y is greater than x\n");
}
// Less than (<) operator
if (x < y) {
printf("x is less than y\n");
}
// Greater than or equal to (>=) operator
if (y >= x) {
printf("y is greater than or equal to x\n");
}
// Less than or equal to (<=) operator
if (x <= y) {
printf("x is less than or equal to y\n");
}
return 0;
}
Compilez et exécutez le programme :
gcc inequality_operators.c -o inequality_operators
./inequality_operators
Exemple de sortie :
x is not equal to y
x is different from y
y is greater than x
x is less than y
y is greater than or equal to x
x is less than or equal to y
Créons un autre exemple qui démontre les opérateurs d'inégalité avec une entrée utilisateur :
#include <stdio.h>
int main() {
int score;
printf("Enter your exam score: ");
scanf("%d", &score);
if (score >= 90) {
printf("Excellent! You got an A.\n");
} else if (score >= 80) {
printf("Good job! You got a B.\n");
} else if (score >= 70) {
printf("Not bad. You got a C.\n");
} else if (score >= 60) {
printf("You passed. You got a D.\n");
} else {
printf("Sorry, you failed the exam.\n");
}
return 0;
}
Compilez et exécutez le programme :
gcc grade_calculator.c -o grade_calculator
./grade_calculator
Exemple de sortie :
Enter your exam score: 85
Good job! You got a B.
Points clés à retenir :
- Les opérateurs d'inégalité aident à comparer des valeurs
==vérifie si les valeurs sont égales!=vérifie si les valeurs ne sont pas égales>vérifie si la valeur de gauche est supérieure à la valeur de droite<vérifie si la valeur de gauche est inférieure à la valeur de droite>=vérifie si la valeur de gauche est supérieure ou égale à la valeur de droite<=vérifie si la valeur de gauche est inférieure ou égale à la valeur de droite
Chaîner les instructions if-else
Dans cette étape, vous apprendrez à chaîner les instructions if-else pour créer des structures de prise de décision plus complexes en programmation C. La chaîne d'instructions if-else vous permet de gérer plusieurs conditions et de fournir des chemins de code alternatifs lorsque les conditions précédentes ne sont pas remplies.
Créons un fichier appelé weather_advisor.c dans le répertoire ~/project pour démontrer les instructions if-else chaînées :
cd ~/project
touch weather_advisor.c
#include <stdio.h>
int main() {
int temperature;
char weather_type;
printf("Enter the temperature: ");
scanf("%d", &temperature);
printf("Enter the weather type (S for sunny, R for rainy, C for cloudy): ");
scanf(" %c", &weather_type);
if (temperature > 30 && weather_type == 'S') {
printf("It's a hot and sunny day. Stay hydrated and use sunscreen!\n");
} else if (temperature > 30 && weather_type == 'R') {
printf("It's hot and rainy. Be careful of potential thunderstorms.\n");
} else if (temperature > 30 && weather_type == 'C') {
printf("It's hot and cloudy. Wear light clothing.\n");
} else if (temperature >= 20 && temperature <= 30) {
printf("The temperature is comfortable.\n");
} else if (temperature < 20) {
printf("It's a bit cool today. Consider wearing a light jacket.\n");
} else {
printf("Invalid input. Please check your temperature and weather type.\n");
}
return 0;
}
Compilez et exécutez le programme :
gcc weather_advisor.c -o weather_advisor
./weather_advisor
Exemple de sortie :
Enter the temperature: 35
Enter the weather type (S for sunny, R for rainy, C for cloudy): S
It's a hot and sunny day. Stay hydrated and use sunscreen!
Créons un autre exemple qui démontre une utilisation plus pratique des instructions if-else chaînées :
#include <stdio.h>
int main() {
char category;
double price, discount = 0.0;
printf("Enter product category (A/B/C): ");
scanf(" %c", &category);
printf("Enter product price: ");
scanf("%lf", &price);
if (category == 'A') {
if (price > 1000) {
discount = 0.2; // 20% discount for high-value A category
} else {
discount = 0.1; // 10% discount for A category
}
} else if (category == 'B') {
if (price > 500) {
discount = 0.15; // 15% discount for high-value B category
} else {
discount = 0.05; // 5% discount for B category
}
} else if (category == 'C') {
if (price > 200) {
discount = 0.1; // 10% discount for high-value C category
} else {
discount = 0.0; // No discount for low-value C category
}
} else {
printf("Invalid category!\n");
return 1;
}
double discounted_price = price * (1 - discount);
printf("Original price: $%.2f\n", price);
printf("Discount: %.0f%%\n", discount * 100);
printf("Discounted price: $%.2f\n", discounted_price);
return 0;
}
Compilez et exécutez le programme :
gcc discount_calculator.c -o discount_calculator
./discount_calculator
Exemple de sortie :
Enter product category (A/B/C): B
Enter product price: 600
Original price: $600.00
Discount: 15%
Discounted price: $510.00
Points clés à retenir :
- Les instructions
if-elsechaînées vous permettent de gérer plusieurs conditions - Chaque condition est vérifiée dans l'ordre du haut vers le bas
- Seul le bloc de code de la première condition correspondante est exécuté
- Le bloc
elsefournit une action par défaut si aucune condition précédente n'est remplie - Vous pouvez imbriquer les instructions
if-elsepour créer des structures de décision plus complexes
Combiner des expressions avec des opérateurs logiques
Dans cette étape, vous apprendrez à combiner plusieurs conditions à l'aide d'opérateurs logiques en programmation C. Les opérateurs logiques vous permettent de créer des instructions conditionnelles plus complexes en reliant plusieurs expressions.
Créons un fichier appelé logical_operators.c dans le répertoire ~/project pour démontrer les trois principaux opérateurs logiques : ET (&&), OU (||) et NON (!) :
cd ~/project
touch logical_operators.c
#include <stdio.h>
int main() {
int age, income;
char is_student;
printf("Enter your age: ");
scanf("%d", &age);
printf("Enter your annual income: ");
scanf("%d", &income);
printf("Are you a student? (Y/N): ");
scanf(" %c", &is_student);
// AND (&&) operator: Both conditions must be true
if (age >= 18 && income < 30000) {
printf("You qualify for a basic credit card.\n");
}
// OR (||) operator: At least one condition must be true
if (age < 25 || is_student == 'Y') {
printf("You may be eligible for a student discount.\n");
}
// Combining multiple conditions
if ((age >= 18 && income >= 30000) || (is_student == 'Y')) {
printf("You qualify for a premium credit card.\n");
}
// NOT (!) operator: Negates the condition
if (!(age < 18)) {
printf("You are an adult.\n");
}
return 0;
}
Compilez et exécutez le programme :
gcc logical_operators.c -o logical_operators
./logical_operators
Exemple de sortie :
Enter your age: 22
Enter your annual income: 25000
Are you a student? (Y/N): Y
You qualify for a basic credit card.
You may be eligible for a student discount.
You qualify for a premium credit card.
You are an adult.
Créons un autre exemple qui démontre des conditions logiques plus complexes :
#include <stdio.h>
int main() {
char membership_type;
int visits_per_month, total_spending;
printf("Enter your membership type (B for Bronze, S for Silver, G for Gold): ");
scanf(" %c", &membership_type);
printf("Enter number of visits per month: ");
scanf("%d", &visits_per_month);
printf("Enter total monthly spending: ");
scanf("%d", &total_spending);
// Complex condition using multiple logical operators
if ((membership_type == 'G') ||
(membership_type == 'S' && visits_per_month >= 10) ||
(membership_type == 'B' && total_spending > 500)) {
printf("You are eligible for a special promotion!\n");
}
// Demonstrating NOT operator with complex conditions
if (!(membership_type == 'B' && visits_per_month < 5)) {
printf("You can access additional membership benefits.\n");
}
return 0;
}
Compilez et exécutez le programme :
gcc membership_conditions.c -o membership_conditions
./membership_conditions
Exemple de sortie :
Enter your membership type (B for Bronze, S for Silver, G for Gold): S
Enter number of visits per month: 12
Enter total monthly spending: 300
You are eligible for a special promotion!
You can access additional membership benefits.
Points clés à retenir :
- L'opérateur
&&(ET) : Les deux conditions doivent être vraies - L'opérateur
||(OU) : Au moins une condition doit être vraie - L'opérateur
!(NON) : Négation de la condition - Vous pouvez combiner plusieurs conditions pour créer une logique complexe
- Les parenthèses peuvent aider à clarifier l'ordre d'évaluation
Pratiquer la logique conditionnelle
Dans cette étape finale, vous allez appliquer tout ce que vous avez appris sur les structures de prise de décision en C en créant un programme complet qui démontre plusieurs techniques de logique conditionnelle.
Créons un programme polyvalent appelé personal_finance_advisor.c dans le répertoire ~/project qui aidera les utilisateurs à prendre des décisions financières :
cd ~/project
touch personal_finance_advisor.c
#include <stdio.h>
int main() {
double income, expenses, savings;
char employment_status, age_group;
// Input financial information
printf("Enter your monthly income: $");
scanf("%lf", &income);
printf("Enter your monthly expenses: $");
scanf("%lf", &expenses);
printf("Enter your current savings: $");
scanf("%lf", &savings);
printf("Employment status (F for Full-time, P for Part-time, U for Unemployed): ");
scanf(" %c", &employment_status);
printf("Age group (Y for Young (18-35), M for Middle-aged (36-55), S for Senior (56+)): ");
scanf(" %c", &age_group);
// Calculate savings rate
double savings_rate = (savings / income) * 100;
double disposable_income = income - expenses;
// Financial advice using complex conditional logic
printf("\n--- Financial Analysis ---\n");
// Savings advice
if (savings_rate < 10) {
printf("Warning: Your savings rate is low (%.2f%%).\n", savings_rate);
} else if (savings_rate >= 10 && savings_rate < 20) {
printf("Good start! Your savings rate is moderate (%.2f%%).\n", savings_rate);
} else {
printf("Excellent! Your savings rate is strong (%.2f%%).\n", savings_rate);
}
// Investment recommendations
if ((employment_status == 'F' && disposable_income > 500) ||
(age_group == 'Y' && savings > 5000)) {
printf("Recommendation: Consider starting an investment portfolio.\n");
}
// Emergency fund advice
if (savings < (expenses * 3)) {
printf("Advice: Build an emergency fund covering at least 3 months of expenses.\n");
}
// Spending control
if (expenses > (income * 0.7)) {
printf("Alert: Your expenses are too high compared to your income.\n");
}
// Special conditions
if ((age_group == 'Y' && employment_status == 'F') ||
(savings > (income * 2))) {
printf("You are in a good financial position!\n");
}
// Detailed financial health assessment
if (!(disposable_income < 0)) {
printf("Your disposable income is: $%.2f\n", disposable_income);
} else {
printf("Warning: Your expenses exceed your income.\n");
}
return 0;
}
Compilez et exécutez le programme :
gcc personal_finance_advisor.c -o personal_finance_advisor
./personal_finance_advisor
Exemple de sortie :
Enter your monthly income: $5000
Enter your monthly expenses: $3500
Enter your current savings: $10000
Employment status (F for Full-time, P for Part-time, U for Unemployed): F
Age group (Y for Young (18-35), M for Middle-aged (36-55), S for Senior (56+)): Y
--- Financial Analysis ---
Good start! Your savings rate is moderate (40.00%).
Recommendation: Consider starting an investment portfolio.
You are in a good financial position!
Your disposable income is: $1500.00
Créons un programme de défi bonus pour pratiquer encore plus la logique conditionnelle :
#include <stdio.h>
int main() {
int math_score, science_score, english_score;
char extra_credit;
printf("Enter Math score (0-100): ");
scanf("%d", &math_score);
printf("Enter Science score (0-100): ");
scanf("%d", &science_score);
printf("Enter English score (0-100): ");
scanf("%d", &english_score);
printf("Did you complete extra credit? (Y/N): ");
scanf(" %c", &extra_credit);
// Calculate average
double average = (math_score + science_score + english_score) / 3.0;
// Comprehensive grade determination
if (average >= 90 ||
(extra_credit == 'Y' && average >= 85)) {
printf("Congratulations! You earned an A grade.\n");
} else if (average >= 80 ||
(extra_credit == 'Y' && average >= 75)) {
printf("Great job! You earned a B grade.\n");
} else if (average >= 70 ||
(extra_credit == 'Y' && average >= 65)) {
printf("You passed. You earned a C grade.\n");
} else {
printf("You need to improve. Consider retaking the courses.\n");
}
return 0;
}
Compilez et exécutez le programme :
gcc grade_calculator.c -o grade_calculator
./grade_calculator
Exemple de sortie :
Enter Math score (0-100): 85
Enter Science score (0-100): 88
Enter English score (0-100): 92
Did you complete extra credit? (Y/N): N
Great job! You earned a B grade.
Points clés à retenir :
- Combinez plusieurs conditions à l'aide d'opérateurs logiques
- Utilisez des instructions
if-elseimbriquées pour des prises de décision complexes - Prenez en compte les cas limites et fournissez une logique complète
- Découpez les problèmes complexes en conditions plus petites et gérables
Résumé
Dans ce laboratoire, vous avez appris le concept fondamental des instructions if en programmation C, qui sont essentielles pour créer des structures de prise de décision dans votre code. Vous avez exploré comment les instructions if permettent à votre programme de prendre des décisions et d'exécuter différents blocs de code en fonction de conditions spécifiques. Vous avez également appris à utiliser les opérateurs d'inégalité, à chaîner les instructions if-else, à combiner des expressions avec des opérateurs logiques et à pratiquer la logique conditionnelle pour construire des structures de prise de décision plus complexes dans vos programmes C.
Les points clés abordés dans ce laboratoire incluent la compréhension de la syntaxe de base des instructions if, l'évaluation d'expressions logiques comme vraies ou fausses et l'exécution du bloc de code approprié en fonction de la condition. Vous avez également appris à utiliser les instructions if pour prendre des décisions en fonction de l'entrée utilisateur, ce qui est une compétence essentielle pour la création d'applications interactives.



