Analyse des examens de programmation C++ GESP : Niveau 2 (Mars 2024)

Problème 1 : Calcul de Produit

Description

Étant donné un ensemble d'entiers positifs, calculez leur produit. Si le produit dépasse 1 000 000, affichez ">1000000". Sinon, affichez le produit calculé.

Entrée

La première ligne contient un entier n, le nombre d'entiers. Les n lignes suivantes contiennent chacune un entier a.

Sortie

Affichez ">1000000" si le produit dépasse 1 000 000, sinon affichez le produit.

Exemple d'entrée


2
3
5
 

Exemple de sortie


15
 

Étiquettes d'algorithme

Boucles, GESP, 2024

Détails du code

Voici une implémentation en C++ utilisnat une approche itérative pour calculer le produit et vérifier la limite.


#include <iostream>

int main() {
   int count;
   std::cin >> count;
   long long product = 1; // Utiliser long long pour éviter le dépassement précoce
   const long long limit = 1000000;

   for (int i = 0; i < count; ++i) {
       int number;
       std::cin >> number;
       product *= number;
       if (product > limit) {
           std::cout << ">1000000" << std::endl;
           return 0;
       }
   }

   std::cout << product << std::endl;
   return 0;
}
 

Résultat de l'exécution (Exemple)


2
3
5
15
 

Problème 2 : Matrice en forme de "日"

Description

Construire une matrice N×N (où N est un nombre impair) remplie de caractères. Les colonnes les plus à gauche et à droite sont des '|'. La première ligne, la dernière ligne et la ligne du milieu ( (N+1)/2 -ième ligne) contiennent des '-' dans les positions intermédiaires. Toutes les autres positions sont remplies avec 'x'.

Entrée

Un entier N (5 ≤ N ≤ 49, N est impair).

Sortie

La matrice "日" correspondante. La sortie doit être exacte, sans espaces ni lignes vides supplémentaires.

Exemple d'entrée


5
 

Exemple de sortie


|---|
|xxx|
|---|
|xxx|
|---|
 

Étiquettes d'algorithme

Boucles, GESP, 2024

Détails du code

Ce code C++ génère la matrice en itérant sur chaque cellule et en appliquant les règles de remplissage.


#include <iostream>
#include <vector>

int main() {
   int n;
   std::cin >> n;

   // Utilisation d'un vecteur de chaînes pour représenter la matrice
   std::vector<std::string> matrix(n, std::string(n, ' '));

   for (int i = 0; i < n; ++i) {
       for (int j = 0; j < n; ++j) {
           // Colonnes extérieures
           if (j == 0 || j == n - 1) {
               matrix[i][j] = '|';
           }
           // Lignes spécifiques (début, fin, milieu)
           else if (i == 0 || i == n - 1 || i == (n - 1) / 2) {
               matrix[i][j] = '-';
           }
           // Reste des cellules
           else {
               matrix[i][j] = 'x';
           }
       }
   }

   // Affichage de la matrice
   for (int i = 0; i < n; ++i) {
       std::cout << matrix[i] << std::endl;
   }

   return 0;
}
 

Résultat de l'exécution (Exemple)


5
|---|
|xxx|
|---|
|xxx|
|---|
 

Étiquettes: C++ GESP algorithmes Structures de contrôle Gestion des Erreurs

Publié le 7 août à 16h52