.


:




:

































 

 

 

 





. , , , . , . . .

, .. . , .

. , .

, . - *.

, x y:

void zam(int *x, int *y)

{

int t = *x;

*x = *y;

*y = t;

}

:

void zam (int*, int*);

void main (void)

{

int a=2, b=3;

printf(" a = %d, b = %d\n", a, b);

zam (&a, &b);

printf(" a = %d, b = %d\n", a, b);

}

, ..

a = 2, b =3

a = 3, b =2

- , const, :

void f1(int, const double);

const , . , , , .. , , .

 

typedef

, , , typedef:

typedef _;

, , :

typedef unsigned int UINT; UINT ;

typedef char M _ s [101]; M _ s , , 100 .

UINT i, j; unsigned int;

M_s str[10]; 10 , 100 .

, .

 

. , (, , ).

.

1. , . :

(* -)( );

.. , , . , , .

,

double (* p_ f)(char, double);

, p_f, , double : , .

2. , - , :

- = ID_;

, : double f1(char, double);

p_f = f1;

p_ f .

3. :

(*-)( );

- ( );

:

ID_( );

:

(*-)( );

- ( );

, p_f .

f 1 :

f1(z, 1.5); (ID);

(* p_f)(z, 1.5); ;

p_f(z, 1.5); ID .

, , .

: sum, fun (x). , . , :

.

f 1 f 2 . typedef, : p_ f, , double double.

p_ f.

:

...

typedef double (*p_f)(double);

double sum(p_f, int, double); //

double f1(double);

double f2(double);

void main(void)

{

double x, s1, s2;

int n;

puts (" - n x: ");

scanf (" %d %lf ", &n, &x);

s1 = sum (f1, 2*n, x);

s2 = sum (f2, n, x);

printf("\n\t N = %d, X = %lf ", n, x);

printf("\n\t 1 = %lf\n\t 2 = %lf ", s1, s2);

}

/* , typedef */

double sum(p_f fun, int n, double x) {

double s=0;

for(int i=1; i<=n; i++)

s+=fun(x);

return s;

}

//

double f1(double r) {

return r/5.;

}

//

double f2(double r) {

return r/2.;

}

 

.

:

void main(void)

{

int vect[20];

fun(vect);

}

void fun(int v[ ]) {

}

, .. v[ ] *v. :

void fun(int *v) {

}

, . . , . , , :

void fun(int v[20]) {

...

}

, .. , (-) strlen.

 

:

,

void f1(int m[3][4]) {

int i, j;

for (i = 0; i<3; i++)

for (j = 0; j<4; j++)

... //

}

, , , . , :

void main(void)

{

int mas [3][3]={{1,2,3}, {4,5,6}};

fun (mas);

}

void fun(int m[ ][3]) {

}

, , ( ), , :

void fun(int**, int, int);

void main()

{

int **mas, n, m;

...

fun (mas, n, m);

}

void fun(int **m, int n, int m) {

... //

}

 

( ) , .

, .

. , , . () . , , .. .

, . , . , .

.

1. .

2. - , , , , .

3. .

1. a b, , .

:

...

double proc(double, double);

void main (void)

{

double a,b;

puts( a, b: );

scanf(%lf %lf, &a, &b);

printf(\n : %lf, proc(a,b));

}

//

double proc(double a, double b) {

if (a< b) return proc (b, a);

else return a/b;

}

a b, , , proc .

, proc , , .

2. k ( ).

double fact (int k) {

if (k < 1) return 1;

else

return k * fact (k 1);

}

1 (0! = 1), 1 . k

k * (k 1) * (k 2) *... * 3 * 2 * 1 * 1

1 k < 1 k = 0, .. fact fact (0). 1 , , , : 1 * fact (1 1).

3. f (x) = 0 [ , b ] eps. , , .. eps > 0, f (a)* f (b) < 0, b > , [ , b ] . :

...

int counter = 0; //

//

double Root(double f(double), double a, double b, double eps) {

double fa = f(a), fb = f(b), c, fc;

if (fa * fb > 0) {

printf("\n a,b !");

exit(1);

}

= ( + b) / 2.0;

fc = f(c);

if (fc == 0.0 || fabs(b a) < = eps) return c;

return (fa * f < 0.0)? Root(f, a, c, eps): Root(f, c, b, eps);

}

//

void main()

{

double x, a=0.1, b=3.5, eps=55;

double fun(double); //

x = Root (fun, a, b, eps);

printf ("\n = %d. ", counter);

printf ("\n = %lf. ", x);

}

// fun

double fun (double x) {

counter++; //

return (2.0/x * s(/2.0));

}

a, b eps , .

:

= 54.

= 3.141601.

, , , . Root f (a) f (b), .

, . , , , . , , .

, , .

, , .

 





:


: 2018-10-14; !; : 324 |


:

:

, .
==> ...

1382 - | 1206 -


© 2015-2024 lektsii.org - -

: 0.06 .