..

2000

2, 6, 8, 10, 12, 14, 16 [1].

, .

2

16 .. 1 , - . ( ) , = 16 . Alt+F4 ( ) *x , , *y, *z.

6

20 int, [-3;7] .

8

:

Struct Matr1{int m, n; int *ptr};

Struct Matr2{int m, n; int **ptr};

:

Int DinMatr1(Matr1 *matr);

Int DinMatr2(Matr2 *matr);

10

, , 0. .

12

.

14

.

16

( ), , .

.

2

#include <stdio.h>

#include <alloc.h>

#include <conio.h>

int main(void)

{

char *x,*y,*z; //

x=(char *)malloc(sizeof(char)); // *x

y=(char *)malloc(sizeof(char)); // --//-- *y

z=(char *)malloc(sizeof(char)); // --//-- *z

clrscr(); //

printf("Adress of *x=%pn",x); // *x

printf("Adress of *y=%pn",y); // --//-- *y

printf("Adress of *z=%pn",z); // --//-- *z

free (z); // *z

free (y); // --//-- *y

free (x); // --//-- *x

/*

16 .. 1 , -

- .

( ) ,

= 16 .

Alt+F4 (

) *x ,

, *y, *z.

*/

return 0;

}

6

#include <stdio.h>

#include <conio.h>

#include <alloc.h>

#include <process.h>

#include <stdlib.h>

//N_var - ࠠ

#define N_var 20

main()

{

clrscr();

// .

randomize();

int *mas;

// ⠠

if (!(mas=(int *)malloc(sizeof(int )*N_var)))

{

printf (" n");

exit (1);

}

// . -3 7

//

for (int i=0;i<N_var;i++)

{

mas[i]=random(11)-3;

printf("N=%i %in",i,mas[i]);

}

// ࠠ

free (mas);

return 0;

}

8

#include <stdio.h>

#include <conio.h>

#include <alloc.h>

#include <process.h>

// Matr1, ,

//

struct Matr1{

int m,n;

int *ptr;

void SetRazm(int mm,int nn)

{

m=mm;

n=nn;

}

};

// Matr1, ,

//

struct Matr2{

int m,n;

int **ptr;

void SetRazm(int mm,int nn)

{

m=mm;

n=nn;

}

};

int DinMatr1 (Matr1 *matr); // Matr1

int DinMatr2 (Matr2 *matr); // Matr2

void FreeMatr1(Matr1 *matr); // Matr1

void FreeMatr2(Matr2 *matr); // Matr2

main()

{

clrscr();

Matr1 M1; // Matr1

Matr2 M2; // Matr2

M1.SetRazm(2,2); // Matr1

M2.SetRazm(2,2); //--//-- Matr2

if (!DinMatr1(&M1)) // Matr1

{

printf(" M1n");

exit (1);

}

if (!DinMatr2(&M2)) //--//-- Matr2

{

printf(" M2n");

exit (1);

}

FreeMatr1 (&M1); // Matr1

FreeMatr2 (&M2); //--//-- Matr2

return 0;

}

int DinMatr1 (Matr1 *matr)

{

if (!((matr->ptr)=(int *)malloc(sizeof(int)*(matr->m)*(matr->n)))) return 0;

return 1;

}

int DinMatr2 (Matr2 *matr)

{

if (!(matr->ptr=(int **)malloc(sizeof(int *)*(matr->m)))) return 0;

for (int i=0;i<matr->m;i++)

{

if (!(matr->ptr[i]=(int *)malloc(sizeof(int)*(matr->n)))) return 0;

}

return 1;

}

void FreeMatr1(Matr1 *matr)

{

if (matr->ptr) free (matr->ptr);

}

void FreeMatr2(Matr2 *matr)

{

for (int i=0;i<matr->m;i++)

{

if (matr->ptr[i]) free(matr->ptr[i]);

}

if (matr->ptr) free(matr->ptr);

}

10

#include <stdio.h>

#include <conio.h>

#include <alloc.h>

#include <process.h>

main()

{

clrscr();

char **mas;

int c,m=0,n=0;

mas=(char **)malloc(sizeof(char *)); // 

mas[0]=(char *)malloc(sizeof(char)); // //

printf ("Intputn");

while ((c=getch())-'0') // 0

{

if (c==13) // Enter 蠠

{ // 

mas[m][n]=0;

m++;

if (!(mas=(char **)realloc(mas,sizeof(char *)*(m+1))))

{

printf (" n");

exit(1);

}

n=0;

putch(10); //

putch(13); //

}

if ((c<'0')||(c>'9')) continue; // 𠠠

if ((!n)&&(m)) //

{ // 堠

if(!(mas[m]=(char *)malloc(sizeof(char)) ))

{

printf (" n");

exit(1);

}

}

mas[m][n]=c; //

n++; //

if (n) //

{ //

if (!(mas[m]=(char *)realloc(mas[m],sizeof(char)*(n+1))))

{

printf (" n");

exit(1);

}

}

putch (c); //

}

printf ("Outputn");

for (int i=0;i<m;i++) printf ("%sn",mas[i]);

//

for (i=0;i<m;i++) if (mas[i]) free(mas[i]);

//

if (mas) free(mas);

return 0;

}

12

#include <stdio.h>

#include <conio.h>

#include <alloc.h>

#include <process.h>

struct Matr{

int m,n;

double **ptr;

void SetRazm(int mm,int nn)

{

m=mm;

n=nn;

}

};

int DinMatr (Matr *matr); // Matr

void FreeMatr(Matr *matr); // Matr

void Setelem(Matr *matr,double M[3][3]);

//

double OctNorm(Matr *matr); //

main()

{

clrscr();

double M_[3][3]={{1,2,3},{4,5,6},{7,8,9}};

Matr M;

M.SetRazm(3,3);

if (!DinMatr(&M))

{

printf (" n");

exit(1);

}

Setelem(&M,M_);

printf ("%fn",OctNorm(&M));

FreeMatr(&M);

return 0;

}

int DinMatr (Matr *matr)

{

if (!(matr->ptr=(double **)malloc(sizeof(double *)*(matr->m)))) return 0;

for (int i=0;i<matr->m;i++)

{

if (!(matr->ptr[i]=(double *)malloc(sizeof(double)*(matr->n)))) return 0;

}

return 1;

}

void FreeMatr(Matr *matr)

{

for (int i=0;i<matr->m;i++)

{

if (matr->ptr[i]) free(matr->ptr[i]);

}

if (matr->ptr) free(matr->ptr);

}

void Setelem(Matr *matr,double M[3][3])

{

for (int i=0;i<matr->m;i++)

{

for (int j=0;j<matr->n;j++) (matr->ptr[i][j])=M[i][j];

}

}

double OctNorm(Matr *matr)

{

double max=0;

double a=0;

for (int i=0;i<matr->m;i++)

{

max+=matr->ptr[i][0];

}

for (int j=0;j<matr->n;j++)

{

for (i=0;i<matr->m;i++)

{

a+=matr->ptr[i][j];

}

if (a>max) max=a;

a=0;

}

return max;

}

14

#include <stdio.h>

#include <alloc.h>

#include <conio.h>

#include <process.h>

void main(void)

{

long N=1;

char *A;

A=(char *)calloc(N,1024); // ࠠ

do

{

free(A); // ࠠ

A=(char *)calloc(N,1024); // ⠠

N++; //

}

while(A!=NULL); //

printf("nMaximum size of heap N=%iKb",N);// ⠠

}

16

#include <stdio.h>

#include <conio.h>

#include <alloc.h>

#include <process.h>

#include <stdlib.h>

struct MATR

{

int n,m;

double **ptr;

int read_(char name[80])

{

FILE *pf;

int i=0,j=0;

char c;

char num[10];

int pos=0,flag=1;

m=0;

n=0;

if (!(pf=fopen(name,"rt"))) return 0;

ptr=(double **)malloc(sizeof(double *));

ptr[0]=(double *)malloc(sizeof(double));

while ((c=fgetc(pf))!=EOF)

{

if (((c>='0')&&(c<='9'))||(c=='.'))

{

num[pos]=c;

pos++;

flag=1;

}

if ((c==' ')&&(flag))

{

flag=0;

num[pos]=0;

ptr[i][j]=atof(num);

j++;

ptr[i]=(double *)realloc(ptr[i],sizeof(double)*(j+1));

pos=0;

}

if ((c=='n')&&(flag))

{

flag=0;

num[pos]=0;

ptr[i][j]=atof(num);

i++;

ptr=(double **)realloc(ptr,sizeof(double *)*(i+1));

ptr[i]=(double *)malloc(sizeof(double));

j=0;

pos=0;

}

if (i>n) n=i;

if (j>m) m=j;

}

n--;

fclose (pf);

return 1;

}

void free_()

{

for(int i=0;i<=n;i++) free(ptr[i]);

free (ptr);

}

void print_()

{

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

{

for (int j=0;j<=m;j++)

{

printf ("%8.3f ",ptr[i][j]);

}

printf ("n");

}

}

int write_(char name[80])

{

FILE *pf;

if (!(pf=fopen(name,"wt"))) return 0;

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

{

for (int j=0;j<=m;j++)

{

fprintf (pf,"%f ",ptr[i][j]);

}

fprintf (pf,"n");

}

fclose (pf);

}

};

void main()

{

clrscr();

MATR A;

A.read_("C:mas.txt");

A.print_();

A.write_("C:out.txt");

A.free_();

}

.. . :

. . : - , 1998.

.. . -:

. . : - , 1998.

. . . .: , 1997.

: