begin process at 2010 02 10 14:56:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

le contour d'une matrice*aidez moi*


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

le contour d'une matrice*aidez moi*

mercredi 14 mai 2008 à 17:40:00 | le contour d'une matrice*aidez moi*

robi987


salut,je suis etudiante en informatique en 1 er annee donc je suis debutante et j'ai recontré quelque difficultés à mes etudes c'est pour cela je vous demande l'aide et merci

-soit un matrice de N lignes et M colonnes de type caracteres
--ecrire l'algorithme qui met des etoiles (*) dans le contour de cette matrice



voici mon essai
Code :
 algorithme_contour   debut       const_n=10;                m=10;       type_T:tableau[1..n,1..m]de caractere;            var_T:tab;            I,J:entier;       I=1;       tantque_I<=n_faire          debut              J=1;                tantque_J<=m_faire                  debut                     lire(T[I,J]);                     J=J+1;                   fin                fin             I=I+1;        fin     fin                                         I=1;          si_I=1 ou I=n_ alors           debut             J=1;               tantque_J<=m_faire                  debut                     T[I,J]=*;                     J=J+1;                   fin                fin                     I=I+1;                fin                  J=1;              sinon              debut                  si_J=1 ou J=m_alors                   debut                      I=1;                        tantque_I<=n_faire                          debut                             T[I,J]=*;                              I=I+1;                           fin                         fin                                              J=J+1;                     fin                     finsi                   fin                 finsi              pour_I_depuis_1_jusqu'a_n_faire             debut                pour_J_depuis_1_jusqu'a_m_faire                  debut                      ecrire(T[I,J]);                  fin                fin              fin            fin          fin
qu'est ce que vous proposez?
mercredi 14 mai 2008 à 18:35:16 | Re : le contour d'une matrice*aidez moi*

BastienL21

Bonsoir,
Ces fonctions te seront certainement utile:
void gotoxy(int x, int y)
{
     COORD c;
     c.X = x;
     c.Y = y;
     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}

// Renvoie la ligne sur la quelle se trouve le curseur
int WhereY( void )
{
    CONSOLE_SCREEN_BUFFER_INFO coninfo;
    GetConsoleScreenBufferInfo (STDOUT, &coninfo);
    return coninfo.dwCursorPosition.Y;
}

// Renvoie la colonne sur laquelle se trouve le curseur
int WhereX( void )
{
    CONSOLE_SCREEN_BUFFER_INFO coninfo;
    GetConsoleScreenBufferInfo (STDOUT, &coninfo);
    return coninfo.dwCursorPosition.X;
}

// Positionne le curseur sur la colonne x
void GotoX(int x)
{
    int y = WhereY();
    COORD dwCursorPosition = { x, y };
    SetConsoleCursorPosition (STDOUT, dwCursorPosition);
}

// Positionne le curseur sur la ligne y
void GotoY(int y)
{
    int x = WhereX();
    COORD dwCursorPosition = { x, y };
    SetConsoleCursorPosition (STDOUT, dwCursorPosition);
}

Ne pas oublier de déclarer
#define STDOUT  GetStdHandle(STD_OUTPUT_HANDLE) avant ces fonctions dans ton code source
exemple de code :

void ContoursMatrice()
{
long i = 0;
gotoxy(0,0);
do{
printf("*");
i++;
}while(i <= (N + 2))
//N étant le nombre de colone
i = 0;
gotoxy(0;0);
do{
printf("*\n");
i++;
}while(i <= (M + 2))//M étant le nombre de ligne
i = 0;
do{
gotoX(N + 2)
printf("*\n");
}while(i <= (M + 2))
i = 0;
GotoX(0);
GotoY(M + 2);
do{
printf("*");
i++;
}while(i <= (N+2))
}//fin ContoursMatrice

Dans le main tu demande le nombre de ligne que tu dtockes dans une variable M et de colonnes dans une variable N puis tu appels la fonction :

int main()
{
long M = 0;
long N = 0;

printf("lignes : ");
scanf("%ld", M);//demande le nombre de lignes

printf("colones : ");
scanf("%ld", N);
//demande le nombre de colones
ContoursMatrice();
return 0;
}

Tiens moi au courant (BUG etc...)
PS: c'est une console en C

//Merci à tous de vous interesser à mon problème,
Cordialement,
mercredi 14 mai 2008 à 18:39:11 | Re : le contour d'une matrice*aidez moi*

BastienL21

Si tu vois des ERROR SYTAX, j'ai oublié quelques ;


//Merci à tous de vous interesser à mon problème,
Cordialement,
mercredi 14 mai 2008 à 18:42:15 | Re : le contour d'une matrice*aidez moi*

BastienL21

Et il y a aussi une erreur sur un gotoxy ou j'ai séparé par un ; à la place d'une ,


//Merci à tous de vous interesser à mon problème,
Cordialement,
mercredi 14 mai 2008 à 18:43:54 | Re : le contour d'une matrice*aidez moi*

BastienL21

Il manque aussi une majuscule à certain gotoY /X

Je te mettrais le code complet correct

//Merci à tous de vous interesser à mon problème,
Cordialement,
mercredi 14 mai 2008 à 18:56:19 | Re : le contour d'une matrice*aidez moi*

BastienL21

Le code complet, qui fonctionne (sous code::Blocks, en C)
Tiens-moi au courant

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#include <time.h>
#include <dos.h>
#include <sys\timeb.h>
#include <sys/types.h>
#include <dirent.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stddef.h>
#include <winsock.h>
#include <string.h>

#include <shellapi.h>
#include <winuser.h>
#include <shlobj.h>
#include <shlwapi.h>

#define STDOUT  GetStdHandle(STD_OUTPUT_HANDLE)

// Renvoie la ligne sur la quelle se trouve le curseur
int WhereY( void )
{
    CONSOLE_SCREEN_BUFFER_INFO coninfo;
    GetConsoleScreenBufferInfo (STDOUT, &coninfo);
    return coninfo.dwCursorPosition.Y;
}

// Renvoie la colonne sur laquelle se trouve le curseur
int WhereX( void )
{
    CONSOLE_SCREEN_BUFFER_INFO coninfo;
    GetConsoleScreenBufferInfo (STDOUT, &coninfo);
    return coninfo.dwCursorPosition.X;
}

// Positionne le curseur sur la colonne x
void GotoX(int x)
{
    int y = WhereY();
    COORD dwCursorPosition = { x, y };
    SetConsoleCursorPosition (STDOUT, dwCursorPosition);
}
void GotoY(int y)
{
    int x = WhereX();
    COORD dwCursorPosition = { x, y };
    SetConsoleCursorPosition (STDOUT, dwCursorPosition);
}

void Color(int couleurDuTexte, int couleurDeFond) // fonction d'affichage de couleurs
{
        HANDLE H = GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleTextAttribute(H, couleurDeFond*16+couleurDuTexte);
}
long M = 0;
long N = 0;

void gotoxy(int x, int y)
{
     COORD c;
     c.X = x;
     c.Y = y;
     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}


void ContoursMatrice()
{
long i = 0;
gotoxy(0,0);
do{
printf("*");
i++;
}while(i <= (N + 2));//N étant le nombre de colone
getch();
i = 0;
gotoxy(0,0);
do{
printf("*\n");
i++;
}while(i <= (M + 2));//M étant le nombre de ligne
getch();
i = 0;
GotoY(0);
do{
GotoX(N + 2);
printf("*\n");
i++;
}while(i <= (M + 2));
getch();
i = 0;
GotoX(0);
GotoY(M + 2);
do{
printf("*");
i++;
}while(i <= (N+2));
}//fin ContoursMatrice

int main(int argc, char *argv[])
{
printf("lignes : ");
scanf("%ld", &M);//demande le nombre de lignes
printf("\ncolones : ");
scanf("%ld", &N);//demande le nombre de colones
system("cls");
ContoursMatrice();
return 0;
}



//Merci à tous de vous interesser à mon problème,
Cordialement,
mercredi 14 mai 2008 à 19:01:25 | Re : le contour d'une matrice*aidez moi*

BastienL21

Tu peux enlever le getch(); dans la fonction ContoursMatrice pour qu'elle s'execute d'un coup


//Merci à tous de vous interesser à mon problème,
Cordialement,
mercredi 14 mai 2008 à 19:26:37 | Re : le contour d'une matrice*aidez moi*

BastienL21

ERREUR
Voici le code correct (dans l'ancien, la matrice faisait 1 ligne et une colone de trop)
//il y a sûrement des includews qui ne servent à rien
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#include <time.h>
#include <dos.h>
#include <sys\timeb.h>
#include <sys/types.h>
#include <dirent.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stddef.h>
#include <winsock.h>
#include <string.h>

#include <shellapi.h>
#include <winuser.h>
#include <shlobj.h>
#include <shlwapi.h>

#define STDOUT  GetStdHandle(STD_OUTPUT_HANDLE)

// Renvoie la ligne sur la quelle se trouve le curseur
int WhereY( void )
{
    CONSOLE_SCREEN_BUFFER_INFO coninfo;
    GetConsoleScreenBufferInfo (STDOUT, &coninfo);
    return coninfo.dwCursorPosition.Y;
}

// Renvoie la colonne sur laquelle se trouve le curseur
int WhereX( void )
{
    CONSOLE_SCREEN_BUFFER_INFO coninfo;
    GetConsoleScreenBufferInfo (STDOUT, &coninfo);
    return coninfo.dwCursorPosition.X;
}

// Positionne le curseur sur la colonne x
void GotoX(int x)
{
    int y = WhereY();
    COORD dwCursorPosition = { x, y };
    SetConsoleCursorPosition (STDOUT, dwCursorPosition);
}
void GotoY(int y)
{
    int x = WhereX();
    COORD dwCursorPosition = { x, y };
    SetConsoleCursorPosition (STDOUT, dwCursorPosition);
}

void Color(int couleurDuTexte, int couleurDeFond) // fonction d'affichage de couleurs
{
        HANDLE H = GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleTextAttribute(H, couleurDeFond*16+couleurDuTexte);
}
long M = 0;
long N = 0;

void gotoxy(int x, int y)
{
     COORD c;
     c.X = x;
     c.Y = y;
     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}

void ContoursMatrice()
{
long i = 0;
gotoxy(0,0);
do{
printf("*");
i++;
}while(i <= (N + 1));//N étant le nombre de colone
i = 0;
gotoxy(0,0);
do{
printf("*\n");
i++;
}while(i <= (M + 1));//M étant le nombre de ligne
i = 0;
GotoY(0);
do{
GotoX(N + 1);
printf("*\n");
i++;
}while(i <= (M + 1));
i = 0;
GotoX(0);
GotoY(M + 1);
do{
printf("*");
i++;
}while(i <= (N+1));
}//fin ContoursMatrice

int main(int argc, char *argv[])
{
printf("lignes : ");
scanf("%ld", &M);//demande le nombre de lignes
printf("\ncolones : ");
scanf("%ld", &N);//demande le nombre de colones
system("cls");
ContoursMatrice();
return 0;
}


//Merci à tous de vous interesser à mon problème,
Cordialement,
mercredi 14 mai 2008 à 20:31:19 | Re : le contour d'une matrice*aidez moi*

BastienL21

Faites attention aussi, j'ai inversé, N est le nombre de Colonnes et M de Lignes


//,
Cordialement,
vendredi 16 mai 2008 à 12:18:24 | Re : le contour d'une matrice*aidez moi*

Pistol_Pete

Salut

Eh bien Bastien, 8 messages consecutifs, des includes a gogo, et un code si compliqué pour un probleme aussi trivial...

Voila ma version qui dessine sur la console, le contours d'une matrice. Donc un rectangle:

#include <iostream>

int main()
{
 int Largeur=20,Hauteur=15,i,j;

 for(j=0;j<Hauteur;j++)
 {
  for(i=0;i<Largeur;i++)
  {
   if(i==0 || i==Largeur-1 ||j==0 ||j==Hauteur-1)
    printf("*");
   else
    printf(" ");
  
  }
  printf("\n");
 }
 return 0;

}

A+
Mon site internet : [ Lien ]


1 2

Cette discussion est classée dans : type, algorithme, matrice, contour


Répondre à ce message

Sujets en rapport avec ce message

Template matrice [ par anisdilou ] Je souhaite q'on s'aide a fin d'meliorer nos nivauxSalut : Je veux implémenter une classe qui représente des matrices de dimensions et type de donnés Question matrice "indéfini" [ par LordBob ] Bonjour a tous,voila je me pose une question, j'aimerais pourquoi quand j'ecris une fonction, je peux faire:Type MaFonction(int Tab[])mais je ne peux compilation mai erreur a l execution [ par touny23 ] bon j ai fai une amélioration de mon programme . je galere un peu avec le C mai bon  c est un projet , soit disan la base de la methode num.(je croi q opencv BIBLIO [ par atefensi ] ds la bibliotheque opencv quel est la différence entre iplimage et cvmat? est ce qu'on peut utiliser simultanement la matrice comme  de type iplimage matrices et c++ [ par anne-lise ] Bonjour, je debute en c++ et j'ai quelques problemes avec les tableaux... D'abord, y a t'il un moyen d'avoir pour resultat d'une fonction un tableau ? prob d'algorithme dans matrice [ par gregorian ] Bonjour, Voila je dois écrire un prg en C qui joue avec des matrices booléennes.J'ai déjà fait la partie addition, multiplication, je suis entrain d'i Inversion de matrices [ par Stubbornman ] Bonjour a tous, Mon probleme est le suivant: je cherche à inverser une matrice de taille tres importante (environ 2000x2000), malheureusement, mon al quantifier une image [ par far3ousa ] j'ai  réussi a transformer mon image de type QImage en une matrice  de type  QRgb je veut mnt multiplier les élément de ma matrice par un reel ,alors Recherche : Algorithme Matrice d'Adjacence -> Dessin du graphe [ par olafleur ] Bonjour, je suis à la recherche d'un algorithme qui me permettrait de prendre la matrice d'adjacence d'un graphe et de dessiner celui-ci. Quelqu'un a contour actif [ par mar1985 ] Bonjour,S'il vous plaît j'ai besoin de votre aide et c très urgent.j'implémente l'algorithme de contour actif.Comme vous le savez, il y a plusieurs im


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales