Codeur/morse et decodeur/morse

Soyez le premier à donner votre avis sur cette source.

Vue 8 474 fois - Téléchargée 235 fois

Description

Voila mon premier programme en c. j'ai beaucoup de mal à l'optimiser car dans le debugger je vois qu'il fait beaucoup de calcul pour rien. A vous de juger. Sinon petit probleme que j'arrive pas à regler pour afficher la chaine après qu'elle soit allé dans la fonction decode_morse. Enfin j'en dis pas plus.

Compilé sous Visual C++ faite un add to projet des fichiers econio.h et econio.cpp et tout fontionne :)

Source / Exemple :


//Programme informatique TP 5//
//Auteur: Orius   //
//réalisé le 20/11/2003      //

#include<stdio.h> //déclaration des librairies necessaires
#include<ctype.h>
#include<string.h>

#include<stdlib.h>

#include <time.h> //librairies pour la temporisation
#include <iostream>
using namespace std;

#include"econio.h" //librairie pour simuler la librairie conio.h exclusif au compilateur BORLAND C++
				   //comportant notamment les couleurs de textes et le clear screen.

#define TAILLE 200 //définition d'un constante

////////////////////////////////////////////FONCTION DE TEMPORISATION////////////////////////////////////////////////
void tempo(void)
{
	//Déclaration des variables
    time_t timer1;
    time(&timer1);
    int sec1, min1, hour1, sec2, min2, hour2;
    struct tm *newTime1;

    //Récupération de l'heure systeme
    newTime1=localtime(&timer1);

    //Mise à jour des variables
    hour1=newTime1->tm_hour;
    min1=newTime1->tm_min;
    sec1=newTime1->tm_sec;

	//Temporisation de 3 secondes
    sec2=0;
    sec1 = sec1 +3;
    while(sec2 != sec1)
    {
        time_t timer2;
        time(&timer2);
        struct tm *newTime2;
        newTime2=localtime(&timer2);

        //Mise à jour des variables
        hour2=newTime2->tm_hour;
        min2=newTime2->tm_min;
        sec2=newTime2->tm_sec;
    }

}
////////////////////////////////////////////FIN DE LA FONCTION DE TEMPORISATION//////////////////////////////////////

////////////////////////////////////////////FONCTION QUI CODE EN MORSE UN TEXTE//////////////////////////////////////

//déclaration de la fonction morse qui travaille sur une chaine de caractère pour la renvoyer codée en morse. 
char* morse(char chaine_normale[TAILLE],int k) 
{
	//Déclaration des variables
	int x=0,y=0,compteur=0;
	char chaine_morse[TAILLE];

	//do while permet de remplacer chaque lettre par son équivalent morse
	do								
	{
		//le switch lui regarde la lettre dans la chaine normale et met dans la chaine morse le code morse de la lettre
		switch(chaine_normale[y])  
		{
		case 'A':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 //le \t permet de rendre plus clair la lecture de la chaine morse.
				 chaine_morse[x]='\t'; 
				 compteur++;
				 x++;break;

		case 'B':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'C':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'D':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'E':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'F':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'G':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'H':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'I':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'J':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'K':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'L':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'M':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'N':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'O':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'P':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'Q':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'R':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'S':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'T':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'U':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'V':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'W':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'X':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'Y':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case 'Z':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case '0':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case '1':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case '2':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case '3':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case '4':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case '5':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case '6':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case '7':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case '8':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case '9':chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='\t';
				 compteur++;
				 x++;break;

		case '.':chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='.';
				 x++;
				 chaine_morse[x]='-';
				 x++;
				 chaine_morse[x]='\t';
				 x++;break;
		default :break;
		}
		y++;
	}
	while(y!=k);
	
	return chaine_morse;
}

////////////////////////////////////////////FIN DE LA FONCTION QUI CODE EN MORSE UN TEXTE////////////////////////////

////////////////////////////////////////////FONCTION QUI DECODE LE MORSE/////////////////////////////////////////////

char decod_morse (char* chaine_normale)
{
	//Déclaration des variables
	char decod_morse[TAILLE];
	int x=0,y=0,r=0;
	do
	{
		switch(chaine_normale[x])
		{
		case '.':x++;	switch(chaine_normale[x])
					{
					case '\t':decod_morse[y]='E';y++;break;

					case '-':x++;	switch(chaine_normale[x])
									{
									case '\t':decod_morse[y]='A';y++;break;

									case '-':x++;	switch(chaine_normale[x])
													{
													case '\t':decod_morse[y]='W';y++;break;

													case '-':x++;	switch(chaine_normale[x])
																	{
																	case '\t':decod_morse[y]='J';y++;break;

																	case '-':x++;	switch(chaine_normale[x])
																					{
																					case '\t':decod_morse[y]='1';y++;break;
																					};
																					break;
																	};
																	break;

													case '.':x++;	switch(chaine_normale[x])
																	{
																	case '\t':decod_morse[y]='P';y++;break;
																	};
																	break;

													};
													break;

									case '.':x++;	switch(chaine_normale[x])
													{
													case '\t':decod_morse[y]='R';y++;break;

													case '.':x++;	switch(chaine_normale[x])
																	{
																	case '\t':decod_morse[y]='L';y++;break;
																	};
																	break;

													case '-':x++;	switch(chaine_normale[x])
																	{
																	case '.':x++;	switch(chaine_normale[x])
																					{
																					case '-':x++;	switch(chaine_normale[x])
																									{				
																									case '\t':decod_morse[y]='.';y++;break;
																									};
																									break;
																					};
																					break;
																	};
																	break;
													
													};
													break;

									};
									break;

					case '.':x++;	switch(chaine_normale[x])
									{
									case '\t':decod_morse[y]='I';y++;break;

									case '-':x++;	switch(chaine_normale[x])
													{
													case '\t':decod_morse[y]='U';y++;break;

													case '.':x++;	switch(chaine_normale[x])
																	{
																	case '\t':decod_morse[y]='F';y++;break;
																	};
																	break;

													case '-':x++;	switch(chaine_normale[x])
																	{
																	case '-':x++;	switch(chaine_normale[x])
																					{
																					case '\t':decod_morse[y]='2';y++;break;
																					};
																					break;
																	};
													
													};
													break;

									case '.':x++;	switch(chaine_normale[x])
													{
													case '\t':decod_morse[y]='S';y++;break;

													case '.':x++;	switch(chaine_normale[x])
																	{
																	case '\t':decod_morse[y]='H';y++;break;

																	case '.':x++;	switch(chaine_normale[x])
																					{
																					case '\t':decod_morse[y]='5';y++;break;
																					};
																					break;

																	case '-':x++;	switch(chaine_normale[x])
																					{
																					case '\t':decod_morse[y]='4';y++;break;
																					};
																					break;
																	};
																	break;

													case '-':x++;	switch(chaine_normale[x])
																	{
																	case '\t':decod_morse[y]='V';y++;break;

																	case '-':x++;	switch(chaine_normale[x])
																					{
																					case '\t':decod_morse[y]='3';y++;break;
																					};
																					break;
																	};
																	break;
													
													};
													break;
									};
									break;

					};
					break;
	
	case '-':x++;	switch(chaine_normale[x])
					{
					case '\t':decod_morse[y]='T';y++;break;

					case '.':x++;	switch(chaine_normale[x])
									{
									case '\t':decod_morse[y]='N';y++;break;

									case '.':x++;	switch(chaine_normale[x])
													{
													case '\t':decod_morse[y]='D';y++;break;

													case '.':x++;	switch(chaine_normale[x])
																	{
																	case '\t':decod_morse[y]='B';y++;break;

																	case '.':x++;	switch(chaine_normale[x])
																					{
																					case '\t':decod_morse[y]='6';y++;break;
																					};
																					break;
																	};
																	break;

													case '-':x++;	switch(chaine_normale[x])
																	{
																	case '\t':decod_morse[y]='X';y++;break;
																	};
																	break;

													};
													break;
									

									case '-':x++;	switch(chaine_normale[x])
													{
													case '\t':decod_morse[y]='K';y++;break;

													case '.':x++;	switch(chaine_normale[x])
																	{
																	case '\t':decod_morse[y]='C';y++;break;
																	};
																	break;

													case '-':x++;	switch(chaine_normale[x])
																	{
																	case '\t':decod_morse[y]='Y';y++;break;
																	};
																	break;

													};
													break;
									};
									break;

					case '-':x++;	switch(chaine_normale[x])
									{
									case '\t':decod_morse[y]='M';y++;break;

									case '.':x++;	switch(chaine_normale[x])
													{
													case '\t':decod_morse[y]='G';y++;break;

													case '-':x++;		switch(chaine_normale[x])
																		{
																		case '\t':decod_morse[y]='Q';y++;break;
																		};
																		break;

													case '.':x++;		switch(chaine_normale[x])
																		{
																		case '\t':decod_morse[y]='Z';y++;break;

																		case '.':x++;	switch(chaine_normale[x])
																					{
																					case '\t':decod_morse[y]='7';y++;break;
																					};
																					break;
																		};
																		break;
													};
													break;

									case '-':x++;	switch(chaine_normale[x])
													{
													case '\t':decod_morse[y]='O';y++;break;

													case '-':x++;	switch(chaine_normale[x])
																	{
																	case '-':x++;	switch(chaine_normale[x])
																					{
																					case '\t':decod_morse[y]='0';y++;break;
																					};
																					break;

																	case '.':x++;	switch(chaine_normale[x])
																					{
																					case '\t':decod_morse[y]='9';y++;break;
																					};
																					break;

																	};
																	break;

													case '.':x++;	switch(chaine_normale[x])
																	{
																	case '.':x++;	switch(chaine_normale[x])
																					{
																					case '\t':decod_morse[y]='8';y++;break;
																					};
																					break;
																	};
																	break;
													};
													break;

									};
									break;

					};
					break;
		

		case'\t':x++;break;
		default:decod_morse[y]='.';y++;break;

		}
	}	
	while(y!=30);
	for(r=0;r<y;r++)
	{
	printf("%c",decod_morse[r]);
	}
	printf("\n");
	return decod_morse[TAILLE];
}

////////////////////////////////////////////FIN DE LA FONCTION QUI DECODE LE MORSE///////////////////////////////////

////////////////////////////////////////////FONCTION QUI DECALE LES LETTRES ET QUI LES CONVERTIT EN MAJUSCULE////////

char codage(int valeur_a_dec, char lettre_a_dec)
{
	 //Déclaration des variables
     char lettre_dec;
     if(isalnum(lettre_a_dec))
     {
		 if (isupper(lettre_a_dec))
            {
             if(lettre_a_dec+valeur_a_dec>='Z')
             {
             valeur_a_dec=valeur_a_dec-('Z'-lettre_a_dec);
             lettre_a_dec='A';
             }
			 if(lettre_a_dec+valeur_a_dec<='A')
             {
             valeur_a_dec=valeur_a_dec+(lettre_a_dec-'A');
             lettre_a_dec='Z';
             }
            }
        if (islower(lettre_a_dec))
            {
             if(lettre_a_dec+valeur_a_dec>='z')
             {
             valeur_a_dec=valeur_a_dec-('z'-lettre_a_dec);
             lettre_a_dec='a';
             }
			 if(lettre_a_dec+valeur_a_dec<='a')
             {
             valeur_a_dec=valeur_a_dec+(lettre_a_dec-'a');
             lettre_a_dec='z';
             }
            lettre_a_dec=toupper(lettre_a_dec);
            }
         lettre_dec=lettre_a_dec+valeur_a_dec;
      }
      else
          {
          lettre_dec='.';
          }
          return lettre_dec;
}

////////////////////////////////////////////FIN DE LA FONCTION QUI DECALE LES LETTRES////////////////////////////////

////////////////////////////////////////////FONCTION QUI ENLEVE LE DECALAGE INITIALE/////////////////////////////////

char decodage(int valeur_cod,char lettre_cod)
{
	char lettre;
	if(isalnum(lettre_cod))
    {
		lettre=lettre_cod-valeur_cod;
	}
	 else
          {
          lettre='.';
          }
	return lettre;
}

////////////////////////////////////////////FIN DE LA FONCTION ENLEVANT LE DECALAGE//////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////DEBUT DE LA FONCTION MAIN////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void main(void)
{
	 //Déclaration des variables
	 char texte[TAILLE],texte_cod[TAILLE],texte_essai_decod[TAILLE];
	 char c[TAILLE];
	 int valeur_dec,valeur_cod,i=0,k,nb_lettres=0;

	 
	 textcolor(YELLOW);
	 printf("\n\n\n\n\n\n\t\t####################################################\n");
	 printf("\t\t#\t\t			           #\n");
	 printf("\t\t#\t\t			           #\n");
	 printf("\t\t#\t\tLes Studios Flo & Co.\t\t   #\n");
	 printf("\t\t#\t\t			           #\n");
	 printf("\t\t#\t\t			           #\n");
	 printf("\t\t#\t\t			           #\n");
	 printf("\t\t#\t\t       Presente\t\t	   #\n");
	 printf("\t\t#\t\t			           #\n");
	 printf("\t\t#\t\t			           #\n");
	 printf("\t\t####################################################\n\n\n");
	 tempo();
	 clrscr();
	 printf("\n\n\n\n\n\n\t\t####################################################\n");
	 printf("\t\t#\t\t			           #\n");
	 printf("\t\t#\t\t			           #\n");
	 printf("\t\t#");
	 textcolor(12);
	 printf("    Le transmetteur decaleur/codeur morse v1.0\t");
	 textcolor(YELLOW);
	 printf("   #\n");
	 printf("\t\t#\t\t			           #\n");
	 printf("\t\t#\t\t	  &		           #\n");
	 printf("\t\t#\t\t			           #\n");
	 printf("\t\t#");
	 textcolor(12);
	 printf("    Le recepteur decodeur morse/decaleur v1.01");
	 textcolor(YELLOW);
	 printf("\t   #\n");
	 printf("\t\t#\t\t			           #\n");
	 printf("\t\t#\t\t			           #\n");
	 printf("\t\t####################################################\n\n\n");
	 textbackground(DARKGRAY);
	 tempo();
	 clrscr();
		 textcolor(12);
		 printf("\tEtape 1:");
		 textcolor(YELLOW);
		 puts("\n\t\tVeuillez taper le texte que vous souhaitez transmettre.\n\t\t");
		 textcolor(BLACK);
		 gets(texte);
		 textcolor(12);
		 printf("\n\tEtape 2:");
		 textcolor(YELLOW);
		 printf("\n\t\tLes lettres de votre texte vont etre decaler dans l'alphabet.\n\t\tDe combien souhaitez vous les decaler?\n\n");
	     textcolor(BLACK);
		 scanf("%i",&valeur_dec);
	                            do
								{
	                            texte_cod[i]=codage(valeur_dec,texte[i]);
							   	i++;
								}
							    while(texte[i]!='\0');
		k=i;
		i=0;
		printf(" \n\tEtape 2:\n\t\tTERMINEE.\n\t\tMaintenant votre texte est decale.\n\t\tIl est code comme ceci:\n\n");
		for(i=0;i<k;i++)
		{
		printf("%c",texte_cod[i]);
		}
		printf("\n\n\tEtape 3:\n\t\tNous allons maintenant coder votre texte decale en morse.\n\t\tTapez OK pour continuer.\n");
		scanf("%s",&c);
		printf("\n\n\tEtape 3:\n\t\tTERMINEE.\n\t\tCe qui nous donne:\n\n");
		i=0;
		do
		{
		printf("%c",morse(texte_cod,k)[i]);
		i++;
		}
		while(morse(texte_cod,k)[i]=='.'||morse(texte_cod,k)[i]=='-'||morse(texte_cod,k)[i]=='\t');
		printf("\n\n");

		 printf("\n\t\tTRANSMISSION DES DONNEES AU RECEPTEUR......");
		 printf("\n\n\t\tTapez OK pour continuer.");
		 scanf("%s",&c);
		 printf("\n\n\tAu tour du recepteur de travailler.");
		 i=0;
		 printf("\n\n\tEtape 4:\n\t\tLe recepteur a recu le texte.Il va decoder le texte morse\n\t\t en texte alphabetique.\n\n");
		 decod_morse(morse(texte_cod,k));
		 printf("\n\n\tEtape 4:\n\t\tTERMINEE.\n\n");
		 strcpy(texte_essai_decod,texte_cod);
		 printf("\n\n\tEtape 5:\n\t\tEntrez maintenant le decalage que vous avec selectionne\n\t\ta la transmission.\n\t\tATTENTION si vous avez recu ce signal\n\t\tsans connaitre le decalage votre texte sera ilisible.\n");
	     scanf("%i",&valeur_cod);
	                            do
								{
	                            texte_essai_decod[i]=decodage(valeur_cod,texte_essai_decod[i]);
							   	i++;
								}
							    while(k!=i);
		printf("\n\n\tEtape 5:\n\t\tTERMINEE.\n");
		printf("\n\t\tLe texte qui etait code\n\t\tsi l'on considere un decalage de %i est:\n\n",valeur_cod);
		i=0;
		for(i=0;i<k;i++)
		{
		printf("%c",texte_essai_decod[i]);
		}
		printf("\n\n\t\t");
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////FIN DE LA FONCTION MAIN//////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
lundi 5 janvier 2004
Statut
Membre
Dernière intervention
5 janvier 2004

mais pourquoi donc as tu fais toutes ces lignes avec case pour chaque lettre ???
au lieu de :

case 'A':chaine_morse[x]='.';
x++;
chaine_morse[x]='-';
x++;
//le \t permet de rendre plus clair la lecture de la chaine morse.
chaine_morse[x]='\t';
compteur++;
x++;break;

j'aurais opté pour un

case 'A': chaine_morse[]=".-\t";
compteur++;
break;

c'est quand même plus propre non ?
Messages postés
16
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 juillet 2004

tinquiete :) jai tout repris mi de lordre et simplifier mes methde de codage trop longue en calcul :) pour les couleurs c bon :) elles sont toutes jolies aussi :) mais jai compris ce ke tu voulais dire :) tu me connais :p moi et les couleurs toutes ue histoire .... :p:p:p allez babye :)=
Messages postés
20
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
2 juillet 2004

Devine ki c'est ? Jsavais pas que tu posais tes progs ici ?!.
A mon avis tu te galères pas mal Orius :-)
A quoi sert la temporisation ?
J'aurai été toi je me serais occupé de la mise en forme(couleur...)qu'une fois que ton prog est optimisé et fonctionne carrément.
Sinon, pti conseil écrit seulement les prototypes de tes fonctions avant la fonction main et ensuite tu les définis. Mè bon jsuis pas la meilleur personne pour te donner des conseils.
Mail moi si tu veux car g déjà bien commencé ce pro

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.