1. complex, , , x, y :
struct complex { float re; //
float im; //
} x, y;
x.re x,
y.im y,
, , :
struct complex { float re, im;}; //
complex read (); //
void print (complex); //
void add (complex, complex, complex*); //
void add1 (const complex&, const complex&, complex&);
int main()
{
complex c1, c2, c3,c4; //
c1 = read(); //
c2 = read();
add (c1, c2, &c3);
print(c1); cout << "\t + \t" << endl;
print (c2); cout << " = " << endl;
print (c3);
cout << endl;
add1 (c1, c3, c4);
print(c1); cout << "\t + \t" << endl;
print (c3); cout << " = " << endl;
print (c4);
_getch();
return 0;
}
complex read()
{
complex c;
cout << "re, im:"<< endl;
cin >> c.re >> c.im;
return c;
}
void print (complex c)
{
cout << c.re << " + i*" << c.im << endl;
return;
}
void add (complex c1, complex c2, complex *c3)
{
c3->re = c1.re +c2.re; // (*c3).re = c1.re + c2.re;
c3->im= c1.im +c2.im;
return;
}
void add1 (const complex &c1, const complex &c2, complex &c3)
{
c3.re = c1.re +c2.re;
c3.im= c1.im +c2.im;
return;
}
2. racion, , , :
struct racion {int chis, znam;}; //
void put (racion); //
racion sokr (racion A);
void div (racion A, racion B, racion *C);
int main()
{
racion A, B, C;
puts ("racion1, racion2:?");
scanf ("%d%d%d%d", &A.chis, &A.znam, &B.chis, &B.znam); //
div(A, B, &C); //
printf (":"); put(A);
printf ("\tna\t"); put(B);
printf ("\n="); put(C); //
_getch();
return 0;
}
void put (racion A) //
{if (A.chis * A.znam <0) printf ("-");
A.chis = abs(A.chis);
A.znam = abs(A.znam);
printf("%d / %d", A.chis, A.znam);
}
void div (racion A, racion B, racion *C) // 2
|
|
{
A=sokr(A);
B= sokr (B);
C->chis = A.chis*B.znam;
C->znam = A.znam*B.chis;
*C= sokr (*C);
}
racion sokr (racion A) //
{
int i, min;
if (abs(A.chis) > abs(A.znam)) min= abs(A.znam);
else min = abs(A.chis);
for (i=min; i>1; i--)
if(A.chis % i ==0 && A.znam % i ==0) break;
A.chis /=i;
A.znam /=i;
return A;
}
3. , (, ) :
struct date {
int d, m, y; //, ,
char *mname; //
} md;
//
static int dofm[2][12]={{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};
//
static char *name[ ]={"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
void monthd(date*, int); //
// ,
// ,
//
int main()
{int yd; //
cout << "god, den?";
cin >> md.y >> yd; //
monthd (&md, yd); //
md.mname = name[md.m]; //
cout << md.d <<" " << md.mname<< endl;
_getch();
return 0;
}
void monthd(date *md, int yd)
{int i, v;
v = (!(md->y%4) && (md->y%100) ||!(md->y%400)); //
if (yd > 365+v)
{cout << "wrong number"; _getch(); exit(1);} //
md->d = yd; // md->d
for (i=0; md->d > dofm[v][i]; i++) //
md->d -= dofm[v][i]; //
md->m=i; //
}