Algorithmique aplliquée
Potame137
Messages postés
32
Date d'inscription
Statut
Membre
Dernière intervention
-
Potame137 Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
Potame137 Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Le but est de créer un programme qui permet de saisir une matrice de valeurs représentant 4 nuances de couleur (blanc, gris clair, gris foncé et noir) et qui affiche l’image correspondante puis qui affiche l’image avec une accentuation du contraste.
Voici précisément ce que doit faire le programme :
• saisie d’une matrice NxN (on fixera en constante N à 10) avec uniquement des valeurs
entières entre 0 et 3 ;
• affichage de l’image correspondante (affichage de carrés de nuances (blanc, gris clair, gris
foncé, noir) ;
• calcul de la luminosité de l’image (moyenne des valeurs contenues dans la matrice) ;
• modification du contenu de la matrice en accentuant les contrastes ;
• affichage de la nouvelle image.
j'ai comme élements fourins la déclarions globale :
// constante
N = 10
// variable globale
couleur[0..3] : entier
et le programme principal :
programme image
image[0..N-1,0..N-1] : entier
debut
// codes couleurs : 15(blanc), 7(gris clair), 8(gris foncé), 0(noir)
couleur = {15, 7, 8, 0}
// saisie de la matrice d’origine
saisieMatrice(image)
// affi chage de l’image
affi cheImage(image)
// accentuation du contraste
accentueContraste(image)
// affi chage de l’image accentuée
affi cheImage(image)
fin
je suis perdu, je ne voie pas par ou commance. je ne cherche pas à ce qu'ont me face le travaille mais juste a ce que l'on méguille merci !
Le but est de créer un programme qui permet de saisir une matrice de valeurs représentant 4 nuances de couleur (blanc, gris clair, gris foncé et noir) et qui affiche l’image correspondante puis qui affiche l’image avec une accentuation du contraste.
Voici précisément ce que doit faire le programme :
• saisie d’une matrice NxN (on fixera en constante N à 10) avec uniquement des valeurs
entières entre 0 et 3 ;
• affichage de l’image correspondante (affichage de carrés de nuances (blanc, gris clair, gris
foncé, noir) ;
• calcul de la luminosité de l’image (moyenne des valeurs contenues dans la matrice) ;
• modification du contenu de la matrice en accentuant les contrastes ;
• affichage de la nouvelle image.
j'ai comme élements fourins la déclarions globale :
// constante
N = 10
// variable globale
couleur[0..3] : entier
et le programme principal :
programme image
image[0..N-1,0..N-1] : entier
debut
// codes couleurs : 15(blanc), 7(gris clair), 8(gris foncé), 0(noir)
couleur = {15, 7, 8, 0}
// saisie de la matrice d’origine
saisieMatrice(image)
// affi chage de l’image
affi cheImage(image)
// accentuation du contraste
accentueContraste(image)
// affi chage de l’image accentuée
affi cheImage(image)
fin
je suis perdu, je ne voie pas par ou commance. je ne cherche pas à ce qu'ont me face le travaille mais juste a ce que l'on méguille merci !
A voir également:
- Algorithmique aplliquée
- Videosurveillance algorithmique - Accueil - Protection
- Exercice simple d'algorithmique ✓ - Forum Algorithmes / Méthodes
- Exercice en Algorithmique (Boucles) ✓ - Forum Algorithmes / Méthodes
3 réponses
Dans ce que tu as copié, il y a des morceaux de code C++ et des morceaux de pseudo-code pour les 2 des 4 parties à faire :
Il manque donc :
- pseudo-code et code principal (qui appelle les 3 fonctions);
- pseudo-code et code de la fonction saisieMatrice();
- pseudo-code et code d'une fonction utilitaire saisie() qui est utilisée par saisieMatrice().
Il manque donc :
- mettre dans un fichier les 3 codes fournis (dans le bon ordre);
- écrire le code de la fonction afficheImage();
- écrire code de la fonction accentueContraste().
Une entité n'est utilisable qu'après avoir été déclarée ou définie. Donc
#include <conio.h> #include <iostream> using namespace std; int saisie( int x , int y ) { int val; do { gotoxy( x , y ); cout << "?"; gotoxy( x , y ); val = getche(); } while ( val < '0' || val > '3' ); return val - '0'; } // constante de la taille de la matrice #define N 10 // valeur des 4 couleurs : blanc, gris clair, gris foncé et noir int couleur[4] = {15, 7, 8, 0}; void saisieMatrice( int image[][N] ) { gotoxy( 1 , 1 ); cout << "Saisie de la matrice (valeurs 0 blanc, 1 gris clair, 2 gris foncé ou 3 noir) :"; // affichage des points pour montrer où se fait la saisie for ( int x = 0 ; x < N ; x++ ) { for ( int y = 0 ; y < N ; y++ ) { gotoxy( x*3+1 , y+2 ); cout << "."; } } // saisie for ( int x = 0 ; x < N ; x++ ) { for ( int y = 0 ; y < N ; y++ ) { image[x][y] = saisie( x*3+1 , y+2 ); } } } void afficheImage( int image[][N] , int posY ) { // RESTE A REMPLIR } void accentueContraste( int image[][N] ) { // RESTE A REMPLIR } int main() { // déclarations int image[N][N]; // saisie de la matrice d’origine saisieMatrice( image ); // affichage de l’image afficheImage( image , 1 ); // accentuation du contraste accentueContraste( image ); // affichage de l’image afficheImage( image , N+10 ); return 0; }PS : ce code c'est du C à 99% et du C++ à 1%, en C++ on écrirait ça différemment
Bonjour,
Il faut commencer par essayer de mettre le pseudo-code sous la forme de code C++, attention la syntaxe du C++ doit impérativement être connue.
codes couleurs : 15(blanc), 7(gris clair), 8(gris foncé), 0(noir) et variable globale couleur[0..3] : entier devient en C++
image[0..N-1,0..N-1] : entier devient en C++
La partie de programme image jusqu'à fin devient en C++
Les autres lignes du pseudo-code devraient être faisables.
Après il restera à écrire les trois fonctions :
Il faut commencer par essayer de mettre le pseudo-code sous la forme de code C++, attention la syntaxe du C++ doit impérativement être connue.
codes couleurs : 15(blanc), 7(gris clair), 8(gris foncé), 0(noir) et variable globale couleur[0..3] : entier devient en C++
const int couleur[4] = { 15, 7, 8, 0 };.
image[0..N-1,0..N-1] : entier devient en C++
int image[N][N];.
La partie de programme image jusqu'à fin devient en C++
int main() {jusqu'à
}.
Les autres lignes du pseudo-code devraient être faisables.
Après il restera à écrire les trois fonctions :
void saisieMatrice( int image[][N] ) void afficheImage( int image[][N] ) void accentueContraste( int image[][N] )Ces fonctions utilisent toutes une double boucle for pour aller de 0 à N-1.
Bonjour, merci de ton aide !
Je vien de voire que j'ai deux Annexe avec les éléments fournis pour le programme en version algorithmique puis en C++ !
Éléments algorithmiques fournis
Déclarations globales :
// constante
N = 10
// variable globale
couleur[0..3] : entier
Programme principal :
programme image
image[0..N-1,0..N-1] : entier
debut
// codes couleurs : 15(blanc), 7(gris clair), 8(gris foncé), 0(noir)
couleur = {15, 7, 8, 0}
// saisie de la matrice d’origine
saisieMatrice(image)
// affi chage de l’image
affi cheImage(image)
// accentuation du contraste
accentueContraste(image)
// affi chage de l’image accentuée
affi cheImage(image)
fin
Module permettant de réaliser une saisie contrôlée (pour forcer la saisie d’une valeur entre 0 et 3) :
fonction saisie() : entier
val : entier
debut
repeter
saisir val
jusqu’à val>=0 et val<=3
retourner val
fin
Module permettant d’afficher les points et de saisir la matrice (le positionnement du curseur n’est
pas géré dans l’algo) :
procedure saisieMatrice(image[0..N-1,0..N-1]:entier)
debut
afficher "Saisie de la matrice (valeurs 0 blanc, 1 gris clair, 2 gris
foncé ou 3 noir) :"
// affichage des points pour montrer où se fait la saisie
pour x de 0 à N-1
pour y de 0 à N-1
afficher "."
finpour
finpour
// saisie
pour x de 0 à N-1
pour y de 0 à N-1
image[x,y] ß saisie()
finpour
finpour
fin
Éléments de code correspondants fournis
Déclarations globales :
// constante de la taille de la matrice
#define N 10
// valeur des 4 couleurs : blanc, gris clair, gris foncé et noir
int couleur[4] = {15, 7, 8, 0} ;
Programme principal :
int main() {
// déclarations
int image[N][N] ;
// saisie de la matrice d’origine
saisieMatrice(image) ;
// affichage de l’image
afficheImage(image, 1) ;
// accentuation du contraste
accentueContraste(image) ;
// affichage de l’image
afficheImage(image, N+10) ;
return 0 ;
}
Module permettant de réaliser une saisie contrôlée (pour forcer la saisie d’une valeur entre 0 et
3), avec positionnement du curseur aux coordonnées (x, y) :
int saisie(int x, int y) {
int val ;
do {
gotoxy(x, y) ; cout << " " ;
gotoxy(x, y) ; val=getche() ;
}while(val<48 || val>51) ;
return (val-48) ;
}
Module permettant d’afficher les points et de saisie la matrice (le positionnement du curseur est
géré) :
void saisieMatrice(int image[N][N]) {
gotoxy(1, 1) ; cout << "Saisie de la matrice (valeurs 0 blanc, 1 gris
clair, 2 gris foncé ou 3 noir) :" ;
// affichage des points pour montrer où se fait la saisie
for (int x=0 ; x<N ; x++) {
for (int y=0 ; y<N ; y++) {
gotoxy(x*3+1, y+2) ; cout << "." ;
}
}
// saisie
for (int x=0 ; x<N ; x++) {
for (int y=0 ; y<N ; y++) {
image[x][y] = saisie(x*3+1, y+2) ;
}
}
Est donc la question est écrire les algoritmes correctement commentés et indentés des trois modules. Cela veux donc dire que je doit mettre tout le pseudo-code en C++ puis tout mettre boue a boue ??
Je vien de voire que j'ai deux Annexe avec les éléments fournis pour le programme en version algorithmique puis en C++ !
Éléments algorithmiques fournis
Déclarations globales :
// constante
N = 10
// variable globale
couleur[0..3] : entier
Programme principal :
programme image
image[0..N-1,0..N-1] : entier
debut
// codes couleurs : 15(blanc), 7(gris clair), 8(gris foncé), 0(noir)
couleur = {15, 7, 8, 0}
// saisie de la matrice d’origine
saisieMatrice(image)
// affi chage de l’image
affi cheImage(image)
// accentuation du contraste
accentueContraste(image)
// affi chage de l’image accentuée
affi cheImage(image)
fin
Module permettant de réaliser une saisie contrôlée (pour forcer la saisie d’une valeur entre 0 et 3) :
fonction saisie() : entier
val : entier
debut
repeter
saisir val
jusqu’à val>=0 et val<=3
retourner val
fin
Module permettant d’afficher les points et de saisir la matrice (le positionnement du curseur n’est
pas géré dans l’algo) :
procedure saisieMatrice(image[0..N-1,0..N-1]:entier)
debut
afficher "Saisie de la matrice (valeurs 0 blanc, 1 gris clair, 2 gris
foncé ou 3 noir) :"
// affichage des points pour montrer où se fait la saisie
pour x de 0 à N-1
pour y de 0 à N-1
afficher "."
finpour
finpour
// saisie
pour x de 0 à N-1
pour y de 0 à N-1
image[x,y] ß saisie()
finpour
finpour
fin
Éléments de code correspondants fournis
Déclarations globales :
// constante de la taille de la matrice
#define N 10
// valeur des 4 couleurs : blanc, gris clair, gris foncé et noir
int couleur[4] = {15, 7, 8, 0} ;
Programme principal :
int main() {
// déclarations
int image[N][N] ;
// saisie de la matrice d’origine
saisieMatrice(image) ;
// affichage de l’image
afficheImage(image, 1) ;
// accentuation du contraste
accentueContraste(image) ;
// affichage de l’image
afficheImage(image, N+10) ;
return 0 ;
}
Module permettant de réaliser une saisie contrôlée (pour forcer la saisie d’une valeur entre 0 et
3), avec positionnement du curseur aux coordonnées (x, y) :
int saisie(int x, int y) {
int val ;
do {
gotoxy(x, y) ; cout << " " ;
gotoxy(x, y) ; val=getche() ;
}while(val<48 || val>51) ;
return (val-48) ;
}
Module permettant d’afficher les points et de saisie la matrice (le positionnement du curseur est
géré) :
void saisieMatrice(int image[N][N]) {
gotoxy(1, 1) ; cout << "Saisie de la matrice (valeurs 0 blanc, 1 gris
clair, 2 gris foncé ou 3 noir) :" ;
// affichage des points pour montrer où se fait la saisie
for (int x=0 ; x<N ; x++) {
for (int y=0 ; y<N ; y++) {
gotoxy(x*3+1, y+2) ; cout << "." ;
}
}
// saisie
for (int x=0 ; x<N ; x++) {
for (int y=0 ; y<N ; y++) {
image[x][y] = saisie(x*3+1, y+2) ;
}
}
Est donc la question est écrire les algoritmes correctement commentés et indentés des trois modules. Cela veux donc dire que je doit mettre tout le pseudo-code en C++ puis tout mettre boue a boue ??
Cordialement
Zack
Merci de ta réponse cela ma becoup aidée !