Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Демонстрационные примеры к курсовой по СиАОД / SETDEMO
.CPP//=== „Ґ¬®бва жЁ® п Їа®Ја ¬¬ : ®ЇҐа жЁЁ ¤ ¬®¦Ґбвў ¬Ё ===
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
struct EL { int d;
EL * next;
};
void main()
{ int i, j, f, nA, nB, nC,
wA, wB, wC, //Џ ¬пвм ¤«п ¬ иЁле б«®ў
bA[] = {0,0,0,0,0, 0,0,0,0,0},
bB[] = {0,0,0,0,0, 0,0,0,0,0},
bC[10]; //Џ ¬пвм ¤«п ¬ ббЁў®ў ЎЁв®ў
EL * La, * Lb, * Lc, *e, *u, *v; //“Є § ⥫Ё бЇЁбЄЁ Ё ваЁ а Ў®зЁе гЄ § ⥫п
char A[20], B[20], C[20]; //Џ ¬пвм Ї®¤ ¬ ббЁўл н«Ґ¬Ґв®ў (бЁ¬ў®«л)
printf("\nЋЇҐа жЁЁ ¤ ¬®¦Ґбвў ¬Ё ===== (C)lgn, 17.01.04");
printf("\n ‚ўҐ¤ЁвҐ ¬®¦Ґбвў ...\n");
printf( "A="); gets(A); nA = strlen(A);
printf( "B="); gets(B); nB = strlen(B);
/*
//‚ аЁ в: ЈҐҐа жЁп Ёб室ле ¤ ле
randomize();
wA = random(1024);
wB = random(1024);
//ЏаҐ®Ў® §®ў ЁҐ ў ¬ ббЁўл...
for(nA=i=0; i<10; i++)
if(wA & (1<<i)) A[nA++] = i+'0';
for(nB=i=0; i<10; i++)
if(wB & (1<<i)) B[nA++] = i+'0';
*/
//ЏаҐ®Ўа §®ў ЁҐ ў бЇЁб®Є
La = NULL;
for(i=0; i<nA; i++)
{ e = new EL;
e->d = A[i];
e->next = La;
La = e;
}
Lb = NULL;
for(i=0; i<nB; i++)
{ e = new EL;
e->d = B[i];
e->next = Lb;
Lb = e;
}
//ЏаҐ®Ўа §®ў ЁҐ ў ¬ ббЁў ЎЁв®ў Ё ¬ иЁ®Ґ б«®ў®
for(wA=i=0; i<nA; i++)
{ bA[A[i]-'0'] = 1;
wA |= (1<<(A[i]-'0'));
}
for(wB=i=0; i<nB; i++)
{ bB[B[i]-'0'] = 1;
wB |= (1<<(B[i]-'0'));
}
//ЋЇҐа жЁп б ¬ ббЁў ¬Ё: ®ЎкҐ¤ЁҐЁҐ
for(i=0; i<nA; i++) C[i] = A[i];
nC = nA;
for(j=0; j<nB; j++)
{ f=1;
for(i=0; i<nA; i++)
if(A[i] == B[j]) f=0;
if(f) C[nC++] = B[j];
}
C[nC] = '\0'; //ЋЈа ЁзЁвҐ«м бва®ЄЁ
//ЋЇҐа жЁп ¤ бЇЁбЄ ¬Ё: ЇҐаҐбҐзҐЁҐ
Lc = NULL;
for(u=La; u; u=u->next)
{ f=0;
for(v=Lb; v; v=v->next)
if(u->d == v->d) f=1;
if(f) { e = new EL;
e->d = u->d;
e->next = Lc;
Lc = e;
}
}
//ЋЇҐа жЁп ¤ ¬ ббЁў ¬Ё ЎЁв®ў: а §®бвм ¬®¦Ґбвў (A\B)
for(i=0; i<10; i++)
bC[i] = bA[i] && !bB[i];
//’® ¦Ґ - ¤«п ¬ иЁле б«®ў (B\A)
wC = wB & ~wA;
printf("\n‚ўҐ¤Ґл ¬®¦Ґбвў : A=%s"
"\n B=%s", A, B);
// puts(A); puts(B);
printf("\n ЋЎкҐ¤ЁҐЁҐ: C=%s", C);
printf("\n\n A=");
for(u=La; u; u=u->next) printf("%c", u->d);
printf("\n B=");
for(u=Lb; u; u=u->next) printf("%c", u->d);
printf("\n ЏҐаҐбҐзҐЁҐ: Lc=");
for(u=Lc; u; u=u->next) printf("%c", u->d);
printf("\n\n bA=");
for(i=0; i<10; i++)
{ if(bA[i]) printf("%c", i+'0');
else printf("-");
}
printf("\n bB=");
for(i=0; i<10; i++)
{ if(bB[i]) printf("%c", i+'0');
else printf("-");
}
printf("\n ђ §®бвм: bC=");
for(i=0; i<10; i++)
{ if(bC[i]) printf("%c", i+'0');
else printf("-");
}
printf("\n\n wC=");
for(i=0; i<10; i++)
{ if(wC&(1<<i)) printf("%c", i+'0');
else printf("-");
}
printf("\n(0x%03X)=(0x%03X)\\(0x%03X)", wC, wB, wA);
printf("\nB=%10o\nA=%10o\nC=%10o", wB, wA, wC);
printf("\n ===== Љ®Ґж =====\n"); getch();
}