ProgIng - Programación en Ingeniería
Loading...
Searching...
No Matches
Ejemplo028.c File Reference
#include <stdio.h>
Include dependency graph for Ejemplo028.c:

Go to the source code of this file.

Macros

#define N   50
#define NC   52

Functions

int main (int argc, char *argv[])

Macro Definition Documentation

◆ N

#define N   50

Definition at line 3 of file Ejemplo028.c.

◆ NC

#define NC   52

Definition at line 4 of file Ejemplo028.c.

Function Documentation

◆ main()

int main ( int argc,
char * argv[] )

Definition at line 6 of file Ejemplo028.c.

7{
8 char str[N], strC[N], strD[N], c;
9 int i, a, b, ai, nc;
10 ai = -1;
11 do{
12 printf("a = ");
13 scanf("%d", &a);
14 for(i=0; i<NC; i++)
15 if(((a*i)%NC)==1)
16 {
17 ai = i;
18 break;
19 }
20 }while(ai<0);
21 printf("b = ");
22 scanf("%d", &b);
23 while ((c = getchar()) != '\n' && c != EOF) {}
24 i = 0;
25 do{
26 c = getchar();
27 if((c>='A'&&c<='Z')||((c>='a'&&c<='z')||c==' '))
28 {
29 str[i] = c;
30 i++;
31 }
32 }while(c!=10&&i<(N-1));
33 nc = i;
34 str[nc] = '\0';
35 printf("MSG: %s\n", str);
36 for(i=0; i<nc; i++)
37 {
38 if(str[i]>='A'&&str[i]<='Z')
39 strC[i] = str[i]-'A';
40 else if(str[i]>='a'&&str[i]<='z')
41 strC[i] = str[i]-'a'+26;
42 else
43 strC[i] = NC;
44 }
45 strC[nc] = '\0';
46 for(i=0; i<nc; i++)
47 if(strC[i]<NC)
48 strC[i] = (a*strC[i]+b)%NC;
49 for(i=0; i<nc; i++)
50 {
51 if(strC[i]<NC/2)
52 strC[i] = strC[i]+'A';
53 else if(strC[i]<NC)
54 strC[i] = strC[i]+'a'-26;
55 else
56 strC[i] = ' ';
57 }
58 printf("MSG ENCRIPTADO: %s\n", strC);
59 for(i=0; i<nc; i++)
60 {
61 if(strC[i]>='A'&&strC[i]<='Z')
62 strD[i] = strC[i]-'A';
63 else if(strC[i]>='a'&&strC[i]<='z')
64 strD[i] = strC[i]-'a'+26;
65 else
66 strD[i] = NC;
67 }
68 strD[nc] = '\0';
69 for(i=0; i<nc; i++)
70 if(strD[i]<NC)
71 {
72 if(strD[i]>=b)
73 strD[i] = (ai*(strD[i]-b))%NC;
74 else
75 strD[i] = (ai*(NC+strD[i]-b))%NC;
76 }
77 for(i=0; i<nc; i++)
78 {
79 if(strD[i]<NC/2)
80 strD[i] = strD[i]+'A';
81 else if(strD[i]<NC)
82 strD[i] = strD[i]+'a'-26;
83 else
84 strD[i] = ' ';
85 }
86 printf("MSG DESENCRIPTADO: %s\n", strD);
87 return 0;
88}
#define N
#define NC
Definition 027_Paridad.c:7