Exercices corrigés sur les bases de la programmation
Dans ces exercices de programmation, nous nous concentrerons sur les bases de la programmation. Après avoir terminé ces exercices, vous apprendrez la structure de base et la sémantique d'un programme et comment écrire des programmes mathématiques.
Tous les problèmes sont résolus en utilisant les trois langages de programmation les plus utilisés comme C, Python et Java
Exercice 1
Écrivez un programme qui lit deux nombres à partir de l'utilisateur, puis calcule leur somme.
- Saisir le premier nombre : 7
- Saisir le deuxième nombre : 8
Données de sortie
- La somme = 15
Corrigé
#include <stdio.h>
int main()
{
int nb1, nb2, somme;
/*
* Lecture des deux nombres
*/
printf("Saisir le premier nombre : ");
scanf("%d", &nb1);
printf("Saisir le deuxième nombre :");
scanf("%d", &nb2);
/* calculer la somme */
somme = nb1 + nb2;
/* Afficher le résultat */
printf("la somme = %d", somme);
return 0;
}
nb1=int(input('Saisir le premier nombre :'))
nb2=int(input('Saisir le deuxième nombre :'))
somme = nb1 + nb2
print("la somme = ", somme)
import java.util.Scanner;
public class Test {
public static void main(String[] variables) {
Scanner clavier = new Scanner(System.in);
int nb1, nb2, somme;
// Fournir les données d'entrée
System.out.print("Saisir le premier nombre : ");
nb1 = clavier.nextInt();
clavier.nextLine(); // récupérer le caractère de touche Entrée abandonné
System.out.print("Saisir le deuxième nombre :");
nb2 = clavier.nextInt();
clavier.nextLine();
// calculer la somme
somme = nb1 + nb2;
// Afficher le résultat
System.out.println("la somme = " + somme);
// fermer les ressources
clavier.close();
}
}
Exercice 2
Écrivez un programme qui lit la longueur et la largeur d'un rectangle en entrée et calcule ensuite son périmètre.
$$ perimetre = 2(longueur+largeur) $$
- Saisir la longueur : 5
- Saisir la largeur : 10
Données de sortie
- le périmètre = 30
Corrigé
#include <stdio.h>
int main()
{
float longueur, largeur, perimetre;
/*
* Fournir les données
*/
printf("Saisir la longueur : ");
scanf("%f", &longueur);
printf("Saisir la largeur: ");
scanf("%f", &largeur);
/* Calculer le perimètre */
perimetre = 2 * (longueur + largeur);
/* Afficher le résultat */
printf("le périmètre = %f ", perimetre);
return 0;
}
longueur=float(input('Saisir la longueur :'))
largeur=float(input('Saisir la largeur:'))
perimetre = 2 * (longueur + largeur)
print("le périmètre = ", perimetre)
import java.util.Scanner;
public class Test {
public static void main(String[] variables) {
Scanner clavier = new Scanner(System.in);
float longueur, largeur, perimetre;
// Fournir les données d'entrée
System.out.print("Saisir la longueur : ");
longueur = clavier.nextFloat();
clavier.nextLine(); // récupérer le caractère de touche Entrée abandonné
System.out.print("Saisir la largeur : ");
largeur = clavier.nextFloat();
clavier.nextLine();
// Calculer le perimètre
perimetre = 2 * (longueur + largeur);
// Afficher le résultat
System.out.println("le périmètre = " + perimetre);
// fermer les ressources
clavier.close();
}
}
Exercice 3
Écrivez un programme qui lit la longueur en centimètres en entrée et la convertit ensuite en mètres et kilomètres.
- Saisir la longueur en centimètres : 1000
Données de sortie
- Longueur en mètres = 10 m
- Longueur en Kilomètres = 0.01 km
Corrigé
#include <stdio.h>
int main()
{
float cm, metre, km;
/* fournir la longueur en cm */
printf("Saisir la longueur en centimètres : ");
scanf("%f", &cm);
/* Convertir en m et km */
metre = cm / 100.0;
km = cm / 100000.0;
printf("Longueur en mètres = %.2f m \n", metre);
printf("Longueur en Kilomètres = %.2f km", km);
return 0;
}
cm = float(input('Saisir la longueur en centimètres :'))
metre = cm / 100.0
km = cm / 100000.0
print("Longueur en mètres = {0} m".format(metre))
print("Longueur en Kilomètres = {0} km".format(km))
import java.util.Scanner;
public class Test {
public static void main(String[] variables) {
Scanner clavier = new Scanner(System.in);
float cm, metre, km;
// fournir la longueur en cm
System.out.print("Saisir la longueur en centimètres : ");
cm = clavier.nextFloat();
// Convertir en m et km
metre = cm / 100;
km = cm / 100000;
// Afficher le résultat
System.out.println("Longueur en mètres = " + metre + " m \n");
System.out.println("Longueur en Kilomètres = " + km + " km");
// fermer les ressources
clavier.close();
}
}
Exercice 4
Écrivez un programme pour saisir le nombre de jours de l'utilisateur et convertissez-le en années, semaines et jours.
- Saisir le nombre de jours : 373
Données de sortie
- 1 an(s)
- 1 semaine(s)
- Jour(s) : 1 jour(s)
Corrigé
#include <stdio.h>
int main()
{
int jours, annees, semaines;
/* Fournir le nombre de jours */
printf("Saisir le nombre de jours : ");
scanf("%d", &jours);
/* Conversion */
annees = (jours / 365);
semaines = (jours % 365) / 7;
jours = jours - ((annees * 365) + (semaines * 7));
/* afficher le résultat */
printf("%d an(s) \n", annees);
printf("%d semaine(s) \n", semaines);
printf("%d jour(s)", jours);
return 0;
}
jours = int(input('Saisir le nombre de jours : '))
annees = (jours // 365)
semaines = (jours % 365) // 7
jours = jours - ((annees * 365) + (semaines * 7))
print("{0} an(s) \n".format(annees))
print("{0} semaine(s) \n".format(semaines))
print("{0} jour(s)".format(jours))
import java.util.Scanner;
public class Test {
public static void main(String[] variables) {
Scanner clavier = new Scanner(System.in);
int jours, annees, semaines;
// Fournir les données d'entrée
System.out.print("Saisir le nombre de jours : ");
jours = clavier.nextInt();
// Conversion
annees = (jours / 365);
semaines = (jours % 365) / 7;
jours = jours - ((annees * 365) + (semaines * 7));
// afficher le résultat
System.out.println(annees + " an(s)");
System.out.println(semaines + " semaine(s)");
System.out.println(jours + " jour(s)");
// fermer les ressources
clavier.close();
}
}
Exercice 5
Écrivez un programme qui lit deux nombres en entrée à partir de l'utilisateur et trouve ensuite leur puissance.
- Saisir la base : 6
- Saisir l'exposant : 2
Données de sortie
- 6 ^ 2 = 36
Corrigé
#include <stdio.h>
#include <math.h> // Used for pow() function
int main()
{
double base, expo, puissance;
/* fournir la base et l'exposant */
printf("Saisir la base : ");
scanf("%lf", &base);
printf("Saisir l'exposant : ");
scanf("%lf", &expo);
/* calculer la puissance */
puissance = pow(base, expo);
printf("%.2lf ^ %.2lf = %.2lf", base, expo, puissance);
return 0;
}
import math
base = float(input('Saisir la base : '))
expo = float(input("Saisir l'exposant : "))
puissance = math.pow(base, expo)
print('{0} ^ {1} = {2}'.format(base, expo, puissance))
import java.util.Scanner;
import java.lang.Math;
public class Test {
public static void main(String[] variables) {
Scanner clavier = new Scanner(System.in);
double base, expo, puissance;
// Fournir les données d'entrée
System.out.print("Saisir la base : ");
base = clavier.nextDouble();
System.out.print("Saisir l'exposant : ");
expo = clavier.nextDouble();
// calculer la puissance
puissance = Math.pow(base, expo);
// Afficher le résultat
System.out.println(base + " ^ " + expo + " = " + puissance);
// fermer les ressources
clavier.close();
}
}
Exercice 6
Écrivez un programme pour saisir un nombre et calculer sa racine carrée.
- Saisir un nombre : 9
Données de sortie
- La racine carrée du 9 = 3
Corrigé
#include <stdio.h>
#include <math.h>
int main()
{
double nb, racine;
/* Fournir un nombre */
printf("Saisir un nombre : ");
scanf("%lf", &nb);
/* Calculer la racine */
racine = sqrt(nb);
/* Afficher le résultat */
printf("La racine carrée du %.2lf = %.2lf", nb, racine);
return 0;
}
import math
nb = int(input('Saisir un nombre : '))
racine = math.sqrt(nb)
print("La racine carrée du {0} = {1}".format(nb, racine))
import java.util.Scanner;
import java.lang.Math;
public class Test {
public static void main(String[] variables) {
Scanner clavier = new Scanner(System.in);
double nb, racine;
// Fournir les données d'entrée
System.out.print("Saisir un nombre : ");
nb = clavier.nextDouble();
// Calculer la racine
racine = Math.sqrt(nb);
// Afficher le résultat
System.out.println("La racine carrée du " + nb + " = " + racine);
// fermer les ressources
clavier.close();
}
}
Exercice 7
Écrivez un programme pour saisir deux angles de l'utilisateur et trouver le troisième angle du triangle.

$$a + b + c= 180 $$
- Angles : 50 30
Données de sortie
- 3ème angle = 100
Corrigé
#include <stdio.h>
int main()
{
int a, b, c;
/* Fournir les angles */
printf("Angles : ");
scanf("%d%d", &a, &b);
/* Calculer la 3ème angle */
c = 180 - (a + b);
/* Afficher le résultat */
printf("3ème angle = %d", c);
return 0;
}
a=int(input('Saisir angle 1'))
b=int(input('Saisir angle 2'))
c = 180 - (a + b)
print("3eme angle = ", c)
import java.util.Scanner;
import java.lang.Math;
public class Test {
public static void main(String[] variables) {
Scanner clavier = new Scanner(System.in);
int a, b, c;
// Fournir les données d'entrée
System.out.print("Saisir angle 1 : ");
a = clavier.nextInt();
System.out.print("Saisir angle 2 : ");
b = clavier.nextInt();
// Calculer la 3ème angle
c = 180 - (a + b);
// Afficher le résultat
System.out.println("3ème angle = " + c);
// fermer les ressources
clavier.close();
}
}
Exercice 8
Écrivez un programme pour saisir la base et la hauteur d'un triangle et trouver la surface du triangle donné.

$$ surface = \frac{h*b}{2}$$
- Saisir la base : 15
- Saisir la hauteur : 30
Données de sortie
- La surface est = 225
Corrigé
#include <stdio.h>
int main()
{
float base, hauteur, surface;
/* Fournir la base et la hauteur */
printf("Saisir la base : ");
scanf("%f", &base);
printf("Saisir la hauteur: ");
scanf("%f", &hauteur);
/* Calculer la surface */
surface = (base * hauteur) / 2;
/* Afficher le résultat */
printf("La surface est = %.2f", surface);
return 0;
}
base = float(input('saisir la base : '))
hauteur = float(input('Saisir la hauteur : '))
surface = (base * hauteur) / 2
print("La surface est = ", surface)
import java.util.Scanner;
public class Test {
public static void main(String[] variables) {
Scanner clavier = new Scanner(System.in);
float base, hauteur, surface;
// Fournir les données d'entrée
System.out.print("Saisir la base : ");
base = clavier.nextFloat();
System.out.print("Saisir la hauteur: ");
hauteur = clavier.nextFloat();
// Calculer la surface
surface = (base * hauteur) / 2;
// Afficher le résultat
System.out.println("La surface est = " + surface);
// fermer les ressources
clavier.close();
}
}
Exercice 9
Écrivez un programme pour saisir les notes de cinq matières d'un élève et calculer le total, la moyenne et le pourcentage de toutes les matières.
- Saisir les notes de 5 matières : 10 11 12 13 14
Données de sortie
- Total = 60
- Moyenne = 12
- Pourcentage = 12.00 %
Corrigé
#include <stdio.h>
int main()
{
float mat1, mat2, mat3, mat4, mat5;
float total, moyenne, pourcentage;
/* Fournir les notes */
printf("Saisir les notes de 5 matières : ");
scanf("%f%f%f%f%f", &mat1, &mat2, &mat3, &mat4, &mat5);
/* Calculer les résultats */
total = mat1 + mat2 + mat3 + mat4 + mat5;
moyenne = total / 5.0;
pourcentage = (total / 500.0) * 100;
/* Afficher les résultats */
printf("Total = %.2f\n", total);
printf("Moyenne = %.2f\n", moyenne);
printf("Pourcentage = %.2f", pourcentage);
return 0;
}
mat1 = float(input('Saisir la 1ere note : '))
mat2 = float(input('Saisir la 2eme note : '))
mat3 = float(input('Saisir la 3eme note : '))
mat4 = float(input('Saisir la 4eme note : '))
mat5 = float(input('Saisir la 5eme note : '))
total = mat1 + mat2 + mat3 + mat4 + mat5
moyenne = total / 5.0
pourcentage = (total / 500.0) * 100
print("Total = ", total)
print("Moyenne = ", moyenne)
print("Pourcentage = ", pourcentage)
import java.util.Scanner;
public class Test {
public static void main(String[] variables) {
Scanner clavier = new Scanner(System.in);
float mat1, mat2, mat3, mat4, mat5;
float total, moyenne, pourcentage;
// Fournir les données d'entrée
System.out.print("Saisir la 1ere note : ");
mat1 = clavier.nextFloat();
System.out.print("Saisir la 2eme note : ");
mat2 = clavier.nextFloat();
System.out.print("Saisir la 3eme note : ");
mat3 = clavier.nextFloat();
System.out.print("Saisir la 4eme note : ");
mat4 = clavier.nextFloat();
System.out.print("Saisir la 5eme note : ");
mat5 = clavier.nextFloat();
// Calculer la surface
total = mat1 + mat2 + mat3 + mat4 + mat5;
moyenne = total / 5;
pourcentage = (total / 500) * 100;
// Afficher le résultat
System.out.println("Total = " + total);
System.out.println("Moyenne = " + moyenne);
System.out.println("Pourcentage = " + pourcentage);
// fermer les ressources
clavier.close();
}
}
Exercice 10
Écrivez un programme pour saisir le côté d'un triangle équilatéral de l'utilisateur et trouvez la surface du triangle donné.

$$surface=\frac{\sqrt{3}}{4} * d^2$$
- Saisir le côté d'un triangle : 30
Données de sortie
- La surface du triangle = 389.71
Corrigé
#include <stdio.h>
#include <math.h> // Used for sqrt() function
int main()
{
float cote, surface;
/* Fournir le côté */
printf("Saisir le côté d'un triangle : ");
scanf("%f", &cote);
/* Calculer la surface */
surface = (sqrt(3) / 4) * (cote * cote);
/* Afficher le résultat */
printf("La surface du triangle = %.2f", surface);
return 0;
}
import math
cote = float(input("Saisir le cote d'un triangle :"))
surface = (math.sqrt(3) / 4) * (cote * cote)
print("La surface du triangle = ", surface)
import java.util.Scanner;
import java.lang.Math;
public class Test {
public static void main(String[] variables) {
Scanner clavier = new Scanner(System.in);
double cote, surface;
// Fournir les données d'entrée
System.out.print("Saisir le côté d'un triangle : ");
cote = clavier.nextDouble();
// Calculer la surface
surface = (Math.sqrt(3) / 4) * (cote * cote);
// Afficher le résultat
System.out.println("La surface du triangle " + surface);
// fermer les ressources
clavier.close();
}
}
