Programmation
Fermé
emna
-
19 avril 2009 à 19:32
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 20 avril 2009 à 00:05
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 20 avril 2009 à 00:05
A voir également:
- Programmation
- Application de programmation - Guide
- Programmation logo tortue télécharger - Télécharger - Études & Formations
- Programmation carte à puce vierge ✓ - Forum Matériel & Système
- Programmation binaire - Guide
- Problème de programmation digicode extel klavy 3 ✓ - Forum Loisirs / Divertissements
4 réponses
Ghislain 2000
Messages postés
96
Date d'inscription
dimanche 6 juillet 2008
Statut
Membre
Dernière intervention
31 décembre 2011
18
19 avril 2009 à 19:40
19 avril 2009 à 19:40
bonjour,
tu peut me donner les sources ?
tu peut me donner les sources ?
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void saisie (int *tab,int n)
{int i;
for (i=0;i<n;i++)
{printf ("tab[%d]=\n",i);
scanf ("%d",&tab[i]);
}}
void decalage (int t1[],int tab)
{int i;
for (i=0;i<4;i++)
t1[i]=t1[i+1];
t1[4]=tab;
}
void emission (int tab[], int n,int *t)
{
int t1[6];
int i,j,k;
int g[]={1,0,0,1,1};
for (i=0;i<n;i++)
t[i]=tab[i];
for (j=0;j<5;j++)
t1[j]=t[j];
for (j=0; j<5;j++)
{t1[j]=t1[j]^g[j];
printf ("t1[%d]=%d",j,t1[j]);}
i=5;
while (i<(n+4))
{
if (t1[0]==0) decalage (t1,t[i]);
if (t1[0]==1) {
for (j=0;j<5;j++){
t1[j]=t1[j]^g[j];
printf ("\n\n t1[%d]=%d\n",j,t1[j]);
}
}
i++;
}
if (t1[0]==1){
for (j=0;j<5;j++)
t1[j]=t1[j]^g[j];
}
for (k=1;k<5;k++)
t[n+k-1]=t1[k];
printf ("données envoyées :\n");
for (j=0;j<(n+4);j++)
printf ("t[%d] =%d\n",j,t[j]);
}
void errone (int *tab, int x,int n)
{ int i;
if (tab[x]!=1)
tab[x]=1;
else
{if (tab[x]!=0)
tab[x]=0;
}
printf ("\n\n\n**********ERRONE*************\n\n\n");
for ( i=0;i<n+4;i++)
printf ("tab[%d]= %d\n",i, tab[i]);
}
void reception (int *t, int n )
{int g[]={1,0,0,1,1};
int i,j, erreur=0;
int tab[6];
for (j=0;j<5;j++)
{tab[j]=t[j];
tab[j]=tab[j]^g[j];
}
i=5;
while (i<(n+4))
{if (tab[0]==0) decalage (tab, t[i]);
if (tab[0]==1) {
for (j=0;j<5;j++)
tab[j]=tab[j]^g[j];
}
i++;}
for (j=0; j<5;j++)
if (tab[j]==1) erreur=1;
if (erreur==0) printf ("la sequence recue est juste");
if (erreur==1) printf ("la sequence recue est fausse");
}
main()
{int *tab,n,i,x;
int *t;
char *buffer, ch[2];
char rep, r;
t=(int*)malloc((n+4)*sizeof(int)) ;
t[n]=0;
t[n+1]=0;
t[n+2]=0;
t[n+3]=0;
printf ("donnez la taille de la suite binaire\n");
scanf ("%d",&n) ;
tab=(int*)malloc(n*sizeof(int));
saisie (tab,n);
for (i=0;i<n;i++)
printf("tab[%d]=%d \n",i, tab[i]);
emission (tab, n,t);
do
{
printf ("souhaitez vous envoyer la sequence erronee? (O/N) \n ");
fflush (stdin);
scanf ("%c",&rep);
}
while (rep!='O'&&rep!='o'&&rep!='n'&&rep!='N');
if (rep=='O'||rep=='o') {
do{
do{
printf ("quel bit souhaitez vous changer");
scanf ("%d", &x);
errone(t,x,n);
}
while (x>n+3||x<0);
printf ("voulez vous changer un autre bit? (O/N)\n");
fflush(stdin);
scanf ("%c",&r);}
while (r=='O'||r=='o');
}
buffer=(char*)malloc((n+5)*sizeof(char)) ;
for (i=0;i<n+4;i++)
{sprintf (ch, "%d",t[i]);
buffer[i]=ch[0];
}
buffer[n+4]='\0';
printf ("buffer= %s", buffer);
reception(t,n);
getch();
}
#include <conio.h>
#include <stdlib.h>
void saisie (int *tab,int n)
{int i;
for (i=0;i<n;i++)
{printf ("tab[%d]=\n",i);
scanf ("%d",&tab[i]);
}}
void decalage (int t1[],int tab)
{int i;
for (i=0;i<4;i++)
t1[i]=t1[i+1];
t1[4]=tab;
}
void emission (int tab[], int n,int *t)
{
int t1[6];
int i,j,k;
int g[]={1,0,0,1,1};
for (i=0;i<n;i++)
t[i]=tab[i];
for (j=0;j<5;j++)
t1[j]=t[j];
for (j=0; j<5;j++)
{t1[j]=t1[j]^g[j];
printf ("t1[%d]=%d",j,t1[j]);}
i=5;
while (i<(n+4))
{
if (t1[0]==0) decalage (t1,t[i]);
if (t1[0]==1) {
for (j=0;j<5;j++){
t1[j]=t1[j]^g[j];
printf ("\n\n t1[%d]=%d\n",j,t1[j]);
}
}
i++;
}
if (t1[0]==1){
for (j=0;j<5;j++)
t1[j]=t1[j]^g[j];
}
for (k=1;k<5;k++)
t[n+k-1]=t1[k];
printf ("données envoyées :\n");
for (j=0;j<(n+4);j++)
printf ("t[%d] =%d\n",j,t[j]);
}
void errone (int *tab, int x,int n)
{ int i;
if (tab[x]!=1)
tab[x]=1;
else
{if (tab[x]!=0)
tab[x]=0;
}
printf ("\n\n\n**********ERRONE*************\n\n\n");
for ( i=0;i<n+4;i++)
printf ("tab[%d]= %d\n",i, tab[i]);
}
void reception (int *t, int n )
{int g[]={1,0,0,1,1};
int i,j, erreur=0;
int tab[6];
for (j=0;j<5;j++)
{tab[j]=t[j];
tab[j]=tab[j]^g[j];
}
i=5;
while (i<(n+4))
{if (tab[0]==0) decalage (tab, t[i]);
if (tab[0]==1) {
for (j=0;j<5;j++)
tab[j]=tab[j]^g[j];
}
i++;}
for (j=0; j<5;j++)
if (tab[j]==1) erreur=1;
if (erreur==0) printf ("la sequence recue est juste");
if (erreur==1) printf ("la sequence recue est fausse");
}
main()
{int *tab,n,i,x;
int *t;
char *buffer, ch[2];
char rep, r;
t=(int*)malloc((n+4)*sizeof(int)) ;
t[n]=0;
t[n+1]=0;
t[n+2]=0;
t[n+3]=0;
printf ("donnez la taille de la suite binaire\n");
scanf ("%d",&n) ;
tab=(int*)malloc(n*sizeof(int));
saisie (tab,n);
for (i=0;i<n;i++)
printf("tab[%d]=%d \n",i, tab[i]);
emission (tab, n,t);
do
{
printf ("souhaitez vous envoyer la sequence erronee? (O/N) \n ");
fflush (stdin);
scanf ("%c",&rep);
}
while (rep!='O'&&rep!='o'&&rep!='n'&&rep!='N');
if (rep=='O'||rep=='o') {
do{
do{
printf ("quel bit souhaitez vous changer");
scanf ("%d", &x);
errone(t,x,n);
}
while (x>n+3||x<0);
printf ("voulez vous changer un autre bit? (O/N)\n");
fflush(stdin);
scanf ("%c",&r);}
while (r=='O'||r=='o');
}
buffer=(char*)malloc((n+5)*sizeof(char)) ;
for (i=0;i<n+4;i++)
{sprintf (ch, "%d",t[i]);
buffer[i]=ch[0];
}
buffer[n+4]='\0';
printf ("buffer= %s", buffer);
reception(t,n);
getch();
}
Mehdi4.0
Messages postés
52
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
15 juin 2009
13
19 avril 2009 à 23:03
19 avril 2009 à 23:03
Salut
Il serait astucieux de créer un nouveau projet C dans visual studio, puis faire coller ton code dedans.
Il serait astucieux de créer un nouveau projet C dans visual studio, puis faire coller ton code dedans.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
20 avril 2009 à 00:05
20 avril 2009 à 00:05
Salut,
Déjà ton code n'est pas portable.
#include <conio.h> //si possible, à éviter car non header iso.
A la place des getch, tu peux utiliser getchar().
fflush(stdin); ne marche pas. Il faut utiliser : int c; while((c=getchar())!='\n' && c!=EOF);
L'en-tête du main sans argument est le suivant : int main(void).
Et il ne faut pas oublier de mettre : return 0; à la fin pour signaler que le programme s'est déroulé avec succès.
Cdlt
Déjà ton code n'est pas portable.
#include <conio.h> //si possible, à éviter car non header iso.
A la place des getch, tu peux utiliser getchar().
fflush(stdin); ne marche pas. Il faut utiliser : int c; while((c=getchar())!='\n' && c!=EOF);
L'en-tête du main sans argument est le suivant : int main(void).
Et il ne faut pas oublier de mettre : return 0; à la fin pour signaler que le programme s'est déroulé avec succès.
Cdlt