0% ont trouvé ce document utile (0 vote)
10 vues7 pages

Exemples de programmes C++ et exercices

Transféré par

ayyesaadbouh
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
10 vues7 pages

Exemples de programmes C++ et exercices

Transféré par

ayyesaadbouh
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Devoir d’Algo et break; }

using namespace std; }


Programmat C++ return 0; Je m'excuse pour la
14/01/2022 void calc(int nums[], int } confusion. Permettez-moi
count) de clarifier l'utilisation de
#include<iostream> { Exercice 3 any_of et de la lambda
using namespace std; int result = 0; function dans ce contexte.
for (int i = 0; i < count; i+ Écrire un programme C++ La fonction any_of est un
int main(){ +) qui demande à l'utilisateur algorithme de la
int i=1, j; { de saisir une chaîne de bibliothèque standard C++
while (i <=5){ result += nums[i]; caractères alphabétiques qui vérifie si au moins un
j=i } et d'au moins dix lettres. élément dans une plage
%3; Le programme force (définie par les itérateurs
cout << "Result Is : " << l'utilisateur de continuer à begin et end) satisfait une
switch (j){ result << "\n"; refaire la saisie si la chaine condition donnée. Dans ce
ne respecte pas les deux cas, la condition est
case 0: cout<<+ } conditions. Votre définie par la lambda
+j*3 << endl; programme affiche function [](char c)
int main() ensuite le nombre de { return !isalpha(c); }, qui
{ caractères majuscules et renvoie true si le caractère
break; int arrayOfNumbers[] = minuscules de la chaine. c n'est pas alphabétique.
{10, 20, 30, 40, 100}; #include <iostream>
case 1: int numsSize = #include <cctype> signifie "Y a-t-il au
cout<<(i+j++)%2 << endl; sizeof(arrayOfNumbers); moins un caractère dans
calc(arrayOfNumbers, using namespace std; la chaîne qui n'est pas
numsSize); alphabétique ?". Si la
case 2: cout<<(i+j) % 4 <<
return 0; int main() { réponse est true, cela
endl;
} string chaine; signifie que la chaîne
}
const int longueurMin = contient au moins un
i++;
10; caractère non
Exercice 2 alphabétique, et la
}
Qu’affiche le programme do { boucle do-
return 0;
cout << "Veuillez while continue de
}
#include <iostream> saisir une chaine d'au demander à l'utilisateur
using namespace std; moins dix lettres : "; de saisir une nouvelle
0
getline(cin, chaine); chaîne jusqu'à ce que la
3
int main() { condition soit fausse
0
int i = 1, j; } while ([Link]() (c'est-à-dire que tous les
3
while (i <= 5) { < longueurMin || caractères sont
1
j = i % 3; any_of([Link](), alphabétiques et que la
2
switch (j) { [Link](), [](char c) longueur de la chaîne est
3
case 0 : cout << ++j { return !isalpha(c); })); d'au moins dix lettres).
* 3 << endl; break; En résumé, any_of est
Calculatrice
case 1 : cout << // Initialiser les utilisé ici pour vérifier si
(i+j++)%2 << endl; compteurs de majuscules au moins un caractère
#include<iostream>
case 2 : cout << et de minuscules dans la chaîne ne satisfait
using namespace std;
(i+j) % 4 << endl; int majuscules = 0, pas la condition définie
} minuscules = 0; par la lambda function. Si
int main(){
i++; tel est le cas, l'utilisateur
int i, j; char op;
} // Parcourir chaque est invité à saisir une
cout <<
return 0; caractère de la chaîne nouvelle chaîne. J'espère
"entr..."; cin >> i >> j;cin
} for (char caractere : que cela clarifie
>> op;
chaine) { l'utilisation de cette partie
switch (op ) {
#include <iostream> if (isupper(caractere)) du code.
case
using namespace std; { // Parcourir chaque
'+' : cout << i+j;break;
majuscules++; caractère de la chaîne
case
int main() { } else if for (int i=0; i <
'-' : if (i>j) cout << i-j; else
int i = 3, j; (islower(caractere)) { [Link](); i++ ){
cout << j-i; break;
j = i % 3; minuscules++; if (isupper(chaine[i]))
case
switch (j) { } {
'*' : cout << i*j;break;
case 0 : } majuscules++;
case
cout << ++j * 3 << } else if
'/' : if (j !=0) cout <<
endl; // Afficher les résultats (islower(chaine[i])) {
i/j;break;
break; cout << "Nombre de minuscules++;
}
case 1 : majuscules : " << }
cout << (i+j++) % 2 majuscules << endl; }
return 0;
<< endl; cout << "Nombre de C’est la méthode vu en
}
break; minuscules : " << classe mais les deux
fonction
case 2 : minuscules << endl; s’exécutent correctement.
addition des nombres
cout << (i+j) % 4 <<
endl; return 0;
#include <iostream>
un entier n et qui affiche // Si le tableau est vide, const int size = 5;
Exercice 4 le triangle de Pascal retourner une valeur int myArray[size] = {5, 2,
Soit U de n la suite d'ordre n. spéciale (par exemple 8, 1, 9};
définie comme suit, U INT_MAX)
de 0 égale racine carrée #include <iostream> if (size == 0) { // Appeler la fonction
de 2, U de 1 égale 1, U using namespace std; return INT_MAX; pour calculer la somme
} des éléments du tableau
de n égale 2 * U de n - 1
// Fonction pour calculer int sum =
+ U de n - 2 pour toute
le coefficient binomial C(n, // Initialiser la variable calculateSum(myArray,
n> 1. Donner le k) de minimum avec la size);
prototype de la fonction int binomialCoefficient(int première valeur du
U(n) qui retourne Un n, int k) { tableau cout << "La somme des
Voici le prototype de la if (k == 0 || k == n) { int minVal = T[0]; éléments du tableau est :
fonction U en C++ qui return 1; " << sum << endl;
calcule U_n selon la } else { // Parcourir le tableau
définition donnée : return pour trouver le minimum return 0;
#include <cmath> binomialCoefficient(n - 1, for (int i = 1; i < size; i++) }
k - 1) + { Écrire en c++ une fonction
double U(int n); binomialCoefficient(n - 1, if (T[i] < minVal) { qui prend comme
Cette fonction peut k); minVal = T[i]; paramètre un tableau T
ensuite être définie et } } d’entiers de 6 éléments. La
} } fonction retourne la valeur
implémentée comme
minimale et maximales
suit :
// Fonction pour afficher return minVal; qui peuvent être calculés
#include <cmath>
le triangle de Pascal } en additionnant
d'ordre n exactement 5 des six
double U(int n) {
void int main() { entiers.
if (n == 0) {
printPascalTriangle(int n) { const int size = 5;
return sqrt(2.0); //
for (int i = 0; i < n; i++) { int myArray[size] = {5, 2,
Racine carrée de 2 #include <iostream>
// Affiche les 8, 1, 9};
} else if (n == 1) { #include <algorithm> //
coefficients binomiaux de
return 1.0; Inclure la bibliothèque
la ligne i // Appeler la fonction
} else { pour utiliser std::sort
for (int j = 0; j <= i; j+ pour trouver le minimum
return 2 * U(n - 1) +
+) { dans le tableau
U(n - 2); using namespace std;
cout << int minimum =
}
binomialCoefficient(i, j) << findMin(myArray, size);
} // Fonction pour trier le
" ";
} cout << "Le minimum tableau par ordre
pour obtenir la valeur de ` dans le tableau est : " << croissant en utilisant le tri
cout << endl; minimum << endl; à bulles
} void bubbleSort(int arr[],
U_n pour un } return 0; int size) {
certain n. Par exemple : } for (int i = 0; i < size - 1;
#include <iostream> int main() { i++) {
int n; La somme for (int j = 0; j < size - i
int main() { cout << "Entrez l'ordre - 1; j++) {
int n; du triangle de Pascal : "; #include <iostream> if (arr[j] > arr[j + 1])
std::cout << "Entrez la cin >> n; {
valeur de n : "; using namespace std; // Échanger les
std::cin >> n; printPascalTriangle(n); éléments s'ils sont dans le
// Fonction pour calculer mauvais ordre
double result = U(n); return 0; la somme des éléments int temp = arr[j];
} d'un tableau arr[j] = arr[j + 1];
std::cout << "U(" << n Contrôlé de compétences int calculateSum(const int arr[j + 1] = temp;
<< ") = " << result << Exercice 2 T[], int size) { }
std::endl; Écrire la fonction Min qui // Initialiser la variable }
prend comme paramètre de somme à zéro }
return 0; un tableau T d’entiers et int sum = 0; }
} retourne le minimum de T.
#include <iostream> // Parcourir le tableau // Fonction pour calculer
#include <climits> // et ajouter chaque élément la valeur minimale et
Cette fonction récursive maximale en additionnant
calcule la valeur de U_n Inclure la bibliothèque à la somme
pour utiliser INT_MAX for (int i = 0; i < size; i++) exactement 5 des six
selon la définition donnée
{ entiers
pour n supérieur à 1. Vous
pouvez appeler cette using namespace std; sum += T[i]; void
fonction dans votre } findMinMaxSum(const int
programme principal // Fonction pour trouver T[], int size) {
le minimum dans un return sum; // Vérifier si la taille du
Exercice 5 tableau } tableau est correcte
Écrire une fonction qui int findMin(const int T[], if (size != 6) {
prend comme paramètre int size) { int main() {
cout << "Le tableau } int S = calculateSum(t, cout << "U(1) = " <<
doit avoir exactement 6 n); U(1) << endl;
éléments." << endl; Autre méthode qui int mini = findMin(t, n); cout << "U(2) = " <<
return; regroupe toutes les int maxi = findMax(t, n); U(2) << endl;
} fonctions cout << "U(3) = " <<
int valmini = S - maxi; U(3) << endl;
// Copier le tableau #include <iostream> int valmaxi = S - mini;
dans un tableau return 0;
temporaire using namespace std; // Vous pouvez faire }
// int tempArray[6]; quelque chose avec Exercice 2
// copy(T, T + size, // Fonction pour trouver valmini et valmaxi ici
tempArray); le minimum dans un // Pour l'instant, je vais Écrire une fonction qui
int tempArray[6]; tableau simplement les afficher prend comme paramêtre
for(int i = 0; i<size; i++) { int findMin(int T[], int size) cout << "Addition Min : un caractère et qui
tempArray[i] = T[i]; { " << valmini << endl; retourne le caractère avec
} // Initialiser la variable cout << "Addition Max : une inversion des
de minimum avec la " << valmaxi << endl; majuscules et
// Trier le tableau première valeur du [Link] c++
temporaire par ordre tableau return 0;
croissant en utilisant le tri int minVal = T[0]; } #include <iostream>
à bulles // Parcourir le tableau
bubbleSort(tempArray, pour trouver le minimum int main() { using namespace std;
size); for (int i = 1; i < size; i++) int n = 6;
{ int t[n] = {1, 3, 5, 7, 9, char
// Calculer la valeur if (T[i] < minVal) { 4}; inverserMajusculesMinusc
minimale en additionnant minVal = T[i]; ules(char caractere) {
les 5 plus petits éléments } valMiMa(t, n); // Vérifier si le caractère
int minSum = } est une majuscule
tempArray[0] + return minVal; return 0; if (isupper(caractere)) {
tempArray[1] + } } // Si c'est une
tempArray[2] + majuscule, retourner la
tempArray[3] + // Fonction pour trouver version minuscule
tempArray[4]; le maximum dans un Examen de return
tableau rattrapage tolower(caractere);
// Calculer la valeur int findMax(int T[], int } else if
maximale en additionnant size) {
d’Algorihmique et (islower(caractere)) {
les 5 plus grands éléments // Initialiser la variable programmation C+ // Si c'est une
int maxSum = de maximum avec la + minuscule, retourner la
tempArray[1] + première valeur du version majuscule
tempArray[2] + tableau
25/02/2O22 return
tempArray[3] + int maxVal = T[0]; Exercice 1 toupper(caractere);
tempArray[4] + // Parcourir le tableau Écrire une fonction int } else {
tempArray[5]; pour trouver le maximum U(int n) qui renvoie la // Si ce n'est ni une
for (int i = 1; i < size; i++) valeur Un de la suite majuscule ni une
cout << "La valeur { définie comme suit. minuscule, retourner le
minimale en additionnant if (T[i] > maxVal) { U0=1 caractère inchangé
exactement 5 des six maxVal = T[i]; Un =2Un-1+1 si n est pair return caractere;
entiers est : " << minSum } Un =2n-5 si n est impair }
<< endl; } Tous en c++ }
cout << "La valeur return maxVal;
maximale en additionnant } #include <iostream> int main() {
exactement 5 des six // Testons la fonction
entiers est : " << maxSum // Fonction pour calculer using namespace std; avec quelques caractères
<< endl; la somme des éléments char c1 = 'A';
} d'un tableau int U(int n) { char c2 = 'b';
int calculateSum(int T[], if (n == 0) { char c3 = '7';
int main() { int size) { return 1;
const int size = 6; // Initialiser la variable } else if (n % 2 == 0) { cout << "Inversion de
int myArray[size] = {1, 3, de somme à zéro // Si n est pair majuscules/minuscules
5, 7, 9, 4}; int sum = 0; return 2 * U(n - 1) + 1; pour " << c1 << " : " <<
// Parcourir le tableau } else { inverserMajusculesMinusc
// Appeler la fonction et ajouter chaque élément // Si n est impair ules(c1) << endl;
pour trouver la valeur à la somme return 2 * n - 5; cout << "Inversion de
minimale et maximale en for (int i = 0; i < size; i++) } string
additionnant 5 des six { } inverserMajusculesMinusc
entiers sum += T[i]; ules(const string& chaine)
} int main() { {
findMinMaxSum(myArray, return sum; // Testons la fonction string resultat = "";
size); } avec quelques valeurs de
n for (char caractere :
return 0; int valMiMa(int t[], int n) { cout << "U(0) = " << chaine) {
U(0) << endl;
if (isupper(caractere)) string texte = "Hello void tri(int T[], int n) { // Demander à
{ World! 123"; for (int i = 0; i < n - 1; i+ l'utilisateur de saisir les
resultat += +) { valeurs du tableau
tolower(caractere); cout << "Avant : " << for (int j = 0; j < n - i - cout << "Saisissez les
} else if texte << endl; 1; j++) { valeurs du tableau :\n";
(islower(caractere)) { cout << "Après : " << if (T[j] > T[j + 1]) { for (int i = 0; i < n; i++) {
resultat += inverserMajusculesMinusc int temp = T[j]; cout << "T[" << i <<
toupper(caractere); ules(texte) << endl; T[j] = T[j + 1]; "] : ";
} else { T[j + 1] = temp; cin >> T[i];
resultat += return 0; } }
caractere; } }
} } // Afficher le tableau
} Une autre méthode } avant le tri
string cout << "\nTableau
return resultat; inverserMajusculesMinusc int main() { avant le tri : ";
}majuscules/minuscules ules(const string& chaine) int n = 5; // Vous devez for (int i = 0; i < n; i++) {
pour " << c2 << " : " << { spécifier une taille pour le cout << T[i] << " ";
inverserMajusculesMinusc string resultat = ""; tableau }
ules(c2) << endl; int t[] = {2, 7, 1, 0, 5}; //
cout << "Inversion de for (char caractere : Initialisation correcte du // Appeler la fonction
majuscules/minuscules chaine) { tableau de tri à bulles
pour " << c3 << " : " << if (isupper(caractere)) tri(t, n); triBulles(T, n);
inverserMajusculesMinusc {
ules(c3) << endl; resultat += // Affichage du tableau // Afficher le tableau
tolower(caractere); trié après le tri
return 0; } else if cout << "Tableau trié : "; cout << "\nTableau
} (islower(caractere)) { for (int i = 0; i < n; i++) { après le tri : ";
resultat += cout << t[i] << " "; for (int i = 0; i < n; i++) {
Version chaine de toupper(caractere); } cout << T[i] << " ";
caractères } else { }
resultat += return 0;
#include <iostream> caractere; } return 0;
#include <cctype> // } 2. }
Inclure la bibliothèque } #include <iostream>
pour isupper, islower,
toupper, tolower return resultat; using namespace std;
} Examen
using namespace std; // Fonction de tri à bulles

Exercice 3 void triBulles(int T[], int n) d’Algorithmi


string {
inverserMajusculesMinusc for (int i = 0; i < n - 1; i+ que et
Il y a quelques erreurs
ules(const string& chaine)
{ dans votre programme :
+) {
for (int j = 0; j < n - i - programmati
string resultat = "";
Vous devez spécifier une
1; j++) {
if (T[j] > T[j + 1]) {
on C++
for (int i = 0; i < taille pour le tableau t // Échanger les
dans la fonction main.
[Link](); i++) {
char caractere = Actuellement, vous
éléments si ils sont dans le
mauvais ordre Session
chaine[i];
if (isupper(caractere))
utilisez int n; sans
initialiser n. Vous devez
int temp = T[j];
T[j] = T[j + 1];
Principale
{ déclarer n et lui attribuer T[j + 1] = temp; Exercice 1
resultat += une valeur avant de créer } #include <iostream>
tolower(caractere); le tableau. }
} else if }
(islower(caractere)) { La fonction tri a un type } int
resultat += de retour void, ce qui
countDivisibleByTwo(int
toupper(caractere); signifie qu'elle ne int main() { n);
} else { retourne rien. Dans le int n;
resultat += main, cout << tri(t, n) <<
caractere; endl; ne fonctionnera pas // Demander à
} comme prévu, car la l'utilisateur de saisir la int main() {
} fonction tri ne produit taille du tableau
aucune sortie à afficher. cout << "Saisissez la int num;
return resultat; taille du tableau : ";
} Voici une version corrigée cin >> n;
de votre programme :
std::cout << "Entrez un
int main() { // Créer un tableau de
entier : ";
// Testons la fonction #include <iostream> taille n
std::cin >> num;
avec une chaîne de int T[n];
caractères using namespace std;
int count = cout << "Entrez une {1, 4, 6}, Initialiser(tableau,
countDivisibleByTwo(num) phrase : "; {4, 5, 9}, taille);
; getline(cin, {6, 9, 2}
inputPhrase); }; // Vous pouvez utiliser
std::cout << num << " n = 3; le tableau initialisé ici.
est divisible par 2 " << string modifiedPhrase =
count << " fois." << replaceSpaces(inputPhras /* return 0;
std::endl; e); cout << "Saisissez la }
taille de la matrice carrée :
return 0; cout << "Phrase "; 2.
} modifiée : " << cin >> n;
modifiedPhrase << endl; Ecrire une fonction
int int matrice[MAX][MAX]; PremOccurrence () qui
countDivisibleByTwo(int n) return 0; prend comme paramètre
{ } cout << "Saisissez les un tableau T et sa taille n
int count = 0; éléments de la matrice et un réel x puis elle
string carrée :\n"; retourne la position de la
while (n % 2 == 0 && n ! replaceSpaces(string for (int i = 0; i < n; i++) { première occurrence de x
= 0) { phrase) { for (int j = 0; j < n; j++) dans T, sinon elle retourne
n /= 2; for (int i = 0; i < { -1
count++; [Link](); i++) { cout << "M[" << i << #include <iostream>
} if (phrase[i] == ' ') { "][" << j << "] : ";
phrase[i] = '_'; cin >> matrice[i][j]; int PremOccurrence(const
return count; } } double T[], int n, double x)
} } } {
return phrase; */ for (int i = 0; i < n; ++i) {
Exercice 2 } if (T[i] == x) {
Exercice 4 if return i; //
#include <iostream> (Est_Symetrique(matrice, Retourne la position si
#include <cstdlib> Une matrice symétrique n)) { l'occurrence est trouvée
#include <ctime> est une matrice carrée qui cout << "La matrice }
using namespace std; est égale à sa propre est symétrique.\n"; }
transposée, c'est-à- } else { return -1; // Retourne -
int fibonacci(int n); dire telle que al,j = aj, cout << "La matrice 1 si l'occurrence n'est pas
pour tous i et J compris n'est pas symétrique.\n"; trouvée
int main() { entre 0 et n-1. } }
int n; Ecrire une fonction
srand(time(0)); Est_Symétrique() qui return 0; int main() {
n = rand() % 101; prend comme paramètres } const int taille = 5;
cout << "n = " << n << une matrice carrée M double tableau[taille];
endl; d'ordre n et affiche si M
est symétrique ou non. Exercice 5
// Remplir le tableau
int result = fibonacci(n); std::cout << "Saisissez
#include <iostream> les valeurs du tableau :\
cout << "F" << n << " = "
<< result << endl;
#define MAX 3
using namespace std; 1 . n";
for (int i = 0; i < taille; +
#include <iostream>
+i) {
return 0; using namespace std;
std::cout << "T[" << i
} bool Est_Symetrique(int << "] : ";
M[MAX][MAX], int n) { const int MAX = 100;
std::cin >> tableau[i];
int fibonacci(int n) { // Vérifier la symétrie }
if (n <= 1) { par rapport à la diagonale void Initialiser(double
return n; principale T[MAX], int& n) {
// Saisir la valeur à
} else { for (int i = 0; i < n; i++) { cout << "Saisissez la
rechercher
return fibonacci(n - 2) for (int j = i + 1; j < n; taille du tableau : ";
double
+ fibonacci(n - 1); j++) { cin >> n;
valeurRecherchee;
} if (M[i][j] != M[j][i]) std::cout << "Saisissez la
} { cout << "Saisissez les
valeur à rechercher : ";
Exercice 3 return false; valeurs réelles du
std::cin >>
#include <iostream> } tableau :\n";
valeurRecherchee;
#include <string> } for (int i = 0; i < n; i++) {
} cout << "T[" << i <<
// Appeler la fonction et
using namespace std; return true; "] : ";
afficher le résultat
} cin >> T[i];
int position =
string }
PremOccurrence(tableau,
replaceSpaces(string int main() { }
taille, valeurRecherchee);
phrase); int n;
int main() {
if (position != -1) {
int main() { // Matrice donnée en double tableau[MAX];
std::cout <<
string inputPhrase; exemple int taille;
"Première occurrence de "
int matrice[3][3] = { << valeurRecherchee << "
à la position : " << position position : " << position << // Remplir le tableau Exercice 5
<< std::endl; std::endl; std::cout << "Saisissez #include <iostream>
} else { } else { les valeurs du tableau :\ using namespace std;
std::cout << "Aucune std::cout << "Aucune n";
occurrence de " << occurrence de " << for (int i = 0; i < taille; + int main() {
valeurRecherchee << " valeurRecherchee << " +i) { int nombre, inverse = 0;
trouvée dans le tableau." trouvée dans le tableau." std::cout << "T[" << i
<< std::endl; << std::endl; << "] : "; // Demander à
} } std::cin >> tableau[i]; l'utilisateur d'entrer un
} nombre
return 0; return 0; cout << "Entrez un
} } // Saisir la valeur à nombre entier : ";
rechercher cin >> nombre;
4 double
3. #include <iostream> valeurRecherchee; // Inverser le nombre
#include <iostream> std::cout << "Saisissez la while (nombre != 0) {
int PremOccurrence(const valeur à rechercher : "; int chiffre = nombre %
int DernOccurrence(const double T[], int n, double x) std::cin >> 10;
double T[], int n, double x) { valeurRecherchee; inverse = inverse * 10
{ for (int i = 0; i < n; ++i) { + chiffre;
int position = -1; // if (T[i] == x) { // Appeler la fonction et nombre /= 10;
Initialise la position à -1, return i; // afficher le résultat }
au cas où x ne serait pas Retourne la première if
trouvé position de l'occurrence (UneOccurrence(tableau, // Afficher le nombre
} taille, valeurRecherchee)) inversé
for (int i = 0; i < n; ++i) { } { cout << "Le nombre
if (T[i] == x) { return -1; // Retourne - std::cout << "Il y a inversé est : " << inverse
position = i; // Met 1 si l'occurrence n'est pas une occurrence unique de << endl;
à jour la position trouvée " << valeurRecherchee <<
lorsqu'une occurrence de } " dans le tableau." << return 0;
x est trouvée std::endl; }
} int DernOccurrence(const } else {
} double T[], int n, double x) std::cout << "Il n'y a Intel Hyper-Threading (HT)
{ pas une occurrence et Turbo Boost sont deux
return position; int position = -1; // unique de " << technologies intégrées
} Initialise la position à -1, valeurRecherchee << " dans les processeurs Intel
au cas où x ne serait pas dans le tableau." << pour améliorer les
int main() { trouvé std::endl; performances et
const int taille = 5; } l'efficacité énergétique.
double tableau[taille]; for (int i = 0; i < n; ++i) {
if (T[i] == x) { return 0; Exercice 1
// Remplir le tableau position = i; // Met }
std::cout << "Saisissez à jour la position #include <iostream>
les valeurs du tableau :\ lorsqu'une occurrence de Exercice 3 #include <cmath>
n"; x est trouvée
for (int i = 0; i < taille; + } #include <iostream> #define MAX 100
+i) { } using namespace std;
std::cout << "T[" << i using namespace std;
<< "] : "; return position; int main() {
std::cin >> tableau[i]; } char c = 'B'; int
} int a = 0; calculateDiagonalDifferenc
bool UneOccurrence(const int b = 0; e(int matrix[MAX][MAX],
// Saisir la valeur à double T[], int n, double x) int n) {
rechercher { switch(c) { int leftToRightDiagonal =
double int premiereOccurrence case 'A': b = a++ + 2; 0;
valeurRecherchee; = PremOccurrence(T, n, x); break; int rightToLeftDiagonal =
std::cout << "Saisissez la int derniereOccurrence case 'B': b = a++ + 2; 0;
valeur à rechercher : "; = DernOccurrence(T, n, x); case 'C': ++b;
std::cin >> case 'D': b++;break; for (int i = 0; i < n; i++) {
valeurRecherchee; return default: a++; leftToRightDiagonal
(premiereOccurrence != -1 } += matrix[i][i];
// Appeler la fonction et && derniereOccurrence != rightToLeftDiagonal
afficher le résultat -1 && cout << a << endl; += matrix[i][n - 1 - i];
int position = premiereOccurrence == cout << b << endl; }
DernOccurrence(tableau, derniereOccurrence);
taille, valeurRecherchee); } return 0; return
} abs(leftToRightDiagonal -
if (position != -1) { int main() { rightToLeftDiagonal);
std::cout << "Dernière const int taille = 5; 1 }
occurrence de " << double tableau[taille]; 4
valeurRecherchee << " à la
void inputMatrix(int
matrix[MAX][MAX], int n)
{
cout << "Saisissez les
éléments de la matrice :\
n";
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
{
cout << "matrix["
<< i << "][" << j << "] : ";
cin >> matrix[i][j];
}
}
}

int main() {
int n;

cout << "Saisissez la


taille de la matrice carrée :
";
cin >> n;

int matrix[MAX][MAX];

if (n <= 0 || n > MAX) {


cout << "Taille de la
matrice invalide." << endl;
return 1;
}

inputMatrix(matrix, n);

int difference =
calculateDiagonalDifferenc
e(matrix, n);

cout << "La différence


absolue entre les sommes
des diagonales est : " <<
difference << endl;

return 0;
}

Common questions

Alimenté par l’IA

The Pascal Triangle is constructed by arranging numbers into a triangular format where each number is the sum of the two directly above it. Each element in the triangle corresponds to a binomial coefficient, computed using the recursive relation C(n, k) = C(n-1, k-1) + C(n-1, k) with base cases of C(n, 0) = C(n, n) = 1. The triangle is printed row by row for a given order n .

Inverting an integer's digits involves reversing the sequence of its digits. This process continuously takes the last digit from the original number using modulus operation, appends it to the result that is being built by multiplying it by 10, and then removes that digit from the original number by integer division by 10 until only one digit remains .

The recursive function U(n) is defined with U0 = 1 as the base case. For n > 0, if n is even, U(n) = 2 * U(n - 1) + 1; if n is odd, U(n) = 2 * n - 5 .

The diagonal difference in a matrix is the absolute difference between the sums of its principal diagonals. The left-to-right diagonal sum is calculated by summing elements at positions (i, i), and the right-to-left diagonal sum by summing elements at positions (i, n-1-i). The difference provides insight into the skew or bias of the matrix distribution .

A matrix is symmetric if it is equal to its transpose, which means for every element (i, j) in the matrix, the element at (j, i) must be identical. The function Est_Symetrique checks this condition by iterating through the upper triangular part of the matrix and comparing it to the corresponding element in the lower triangular part. If all these pairs are equal, the matrix is symmetric .

The algorithm employs two functions: one to find the first occurrence and another to find the last occurrence of the value in an array. If both functions return the same index and it is not -1, the value occurs uniquely. This logic is based on checking if a value appears only once in its entire span within the array and it leverages two linear passes through the array, one forward and one backward .

The algorithm iterates through the array from the beginning, checking each element to see if it matches the target value. It returns the index of the first match found and returns -1 if no match is found. This linear search is efficient for unsorted arrays or when the goal is simply to find the first occurrence .

The string manipulation program transforms spaces into underscores by iterating over each character in the string. If a space is encountered, it is replaced with an underscore. This is a common operation to prepare strings for contexts where spaces are not allowed or to visually format text to emphasize that it is a single entity, such as in URLs or file names .

Bubble sort is used to sort the array in ascending order to easily access the smallest and largest elements for sum calculations. Its simplicity and in-place operation make it appropriate for small arrays (e.g., size 6). However, bubble sort has a computational complexity of O(n^2), which may be inefficient for larger datasets, highlighting trade-offs in algorithm choice .

To find the minimum sum, you sum the five smallest integers in the array, which is achieved by sorting the array and summing the first five elements. To find the maximum sum, you sum the five largest integers, achieved by summing the last five elements after sorting. The sorting ensures easy selection of smallest and largest subsets of five elements .

Vous aimerez peut-être aussi