Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.О.П / 3_кол / Лекції / лекция_C++ (13_1) у.doc
Скачиваний:
10
Добавлен:
30.05.2020
Размер:
349.18 Кб
Скачать

Void main()

{ clrscr();

int n,m,i,j;

int *ptr, *mas2; // ptr, mas2 – змінні для адрес (покажчики).

FILE *f;

printf("Введіть число рядків матриці: \n");

scanf("%d",&n);

printf("\nВведите число стовпців матриці: \n");

scanf("%d",&m);

mas2 = new int[n*m]; // Виділяємо блок пам'яті під елементи

//матриці. Початкова адреса виділеного блоку пам'яті

// розміщується в змінній mas2.

// Введення матриці з файлу.

f = fopen("t.dat", "r");

ptr = mas2; // Початкову адресу виділеного блоку засилаємо в ptr. for(i = 0; i < n; i++) for (j = 0; j < m; j++, ptr++)

fscanf(f,"%d",ptr); // Форма доступу до елементів матриці.

fclose(f);

ptr = mas2; // Питання: для чого потрібний цей код програми?

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

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

{ ptr = mas2 + i * m + j; // Визначаєм адреса елементу з індексами i, j.

printf(" %d", *ptr); // Виведення елементу матриці з індексами i, j. }

printf("\n"); }

printf("Введіть номер рядка матриці i = ");

scanf("%d",&i);

i--; // Індекс рядка на 1 менше номера.

printf("Введіть номер стовпця матриці j = ");

scanf("%d",&j);

j--; // Індекс стовпця на 1 менше номера.

ptr = mas2 +i * m + j; // Визначаєм адресу елементу з індексами i, j.

printf(" а[%d,%d]= %d",i,j,*ptr); // Виводиться на екран елемент ptr[i][j].

getch(); }

Програма 14. Виділяється динамічна пам'ять під матрицю з використанням масиву покажчиків.

Void main() {

int n,m,i,j;

int **mas2; // mas2 – покажчик для адрес покажчиків.

FILE *f;

clrscr();

printf("Введіть число рядків матриці: \n");

scanf("%d",&n);

printf("\nВведите число стовпців матриці: \n");

scanf("%d",&m);

mas2 = new int *[n]; // Виділяємо блок пам'яті під масив покажчиків.

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

mas2[i]= new int [m]; // Виділяємо блок пам'яті під рядок матриці.

f = fopen("t.dat", "r");

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

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

fscanf(f,“%d” &mas2[i][j]); // Введення елементів матриці з файлу.

fclose(f);

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

{

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

printf(" %d", mas2[i][j]); // Виведення елементів матриці на екран.

printf("\n");

}

delete [] mas2;

getch(); }

Контрольні питання:

12

Соседние файлы в папке Лекції