Algorithmique aplliquée
Fermé
Potame137
Messages postés
32
Date d'inscription
lundi 23 mai 2016
Statut
Membre
Dernière intervention
17 août 2020
-
24 mai 2016 à 14:57
Potame137 Messages postés 32 Date d'inscription lundi 23 mai 2016 Statut Membre Dernière intervention 17 août 2020 - 25 mai 2016 à 16:04
Potame137 Messages postés 32 Date d'inscription lundi 23 mai 2016 Statut Membre Dernière intervention 17 août 2020 - 25 mai 2016 à 16:04
A voir également:
- Algorithmique aplliquée
- Videosurveillance algorithmique - Accueil - Protection
- Arbre algorithmique HELP !!! - Forum Programmation
- Exercice simple d'algorithmique ✓ - Forum Algorithmes / Méthodes
- Exercice en Algorithmique (Boucles) ✓ - Forum Algorithmes / Méthodes
- Fonction ppcm en algorithmique - Forum Programmation
3 réponses
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
24 mai 2016 à 23:30
24 mai 2016 à 23:30
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().
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
25 mai 2016 à 01:02
25 mai 2016 à 01:02
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
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
>
Zack Qinn
25 mai 2016 à 08:50
25 mai 2016 à 08:50
C'est ce que ton prof appelle du C++, puisque je n'ai fait que recopier ses exemples.
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
24 mai 2016 à 18:37
24 mai 2016 à 18:37
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.
Potame137
Messages postés
32
Date d'inscription
lundi 23 mai 2016
Statut
Membre
Dernière intervention
17 août 2020
24 mai 2016 à 21:15
24 mai 2016 à 21:15
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 ??
24 mai 2016 à 23:51
Cordialement
Zack
25 mai 2016 à 16:04
Merci de ta réponse cela ma becoup aidée !