Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Prog1_2_zao_2013.doc
Скачиваний:
6
Добавлен:
07.02.2016
Размер:
327.17 Кб
Скачать

Лабораторні роботи Лабораторна робота № 1 Робота з масивами

Мета роботи – вдосконалення навичок роботи з двовимірними масивами та масивами динамічної пам’яті.

Програма 1.1. В програмі розглядається можливість різного доступу до елементів двовимірного масиву (через індекси та розіменування покажчика).

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

const N=4, M=3;

int A[N][M];

int main()

{clrscr();

randomize(); //запуск генератора випадкових чисел

int i,j;

puts("\nзаповнюємо масив випадковими числами:");

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

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

{A[i][j]=random(100)-50;

printf("%5d",A[i][j]); }

printf("\n"); }

puts("\nдоступ до елементiв масиву через покажчики:");

//Змiнюємо елементи першого стовпця матрицi

for(i=0;i<N;i++) *(*(A+i))=100+2*i;

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

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

printf("%5d\n",*(*(A+i)+j));

printf("\n"); }

puts("\nдоступ через покажчики та індекси:");

//Змінюємо від’ємні елементи матриці

for(j=0;j<N*M;j++)

if(*(A[0]+j)<0) *(A[0]+j)=-*(A[0]+j);

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

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

printf("%5d",(*(A+i))[j]);

printf("\n"); }

puts("Press any key..."); getch(); return 0;}

Вказівка до програми 1.1:  Розробіть програму, в якій визначте двовимірний масив цілих чисел розміром 5 на 6, заповніть його випадковими числами від –40 до +100. Потім замінить нулями ті його елементи масиву, що менше 50. Виведіть на екран елементів масиву до та після зміни. Для доступу до елементів масиву використовуйте різні способи.

Програма 1.2 В програмі створюється динамічний масив для змінних типу int. Розмір масиву та значення елементів масиву вводяться з клавіатури. По закінченні роботи з масивом пам'ять звільняється.

#include <stdio.h>

#include <conio.h>

#include <alloc.h>

int main()

{clrscr();

int n;

int *ptr; //визначення покажчика на масив чисел типу int

puts("Введіть розмір масиву");

scanf("%d",&n);

ptr=(int*)malloc(n*sizeof(int)); //запит пам’яті

// ptr=new int[n];

if(ptr==NULL) //перевiрка виділення пам’яті

{puts("Error"); return -1;}

puts("Введіть елементи масиву");

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

scanf("%d",&ptr[i]);

puts("Ви ввели масив");

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

printf("%d ",*(ptr+i));

free(ptr); //звільнення пам'яті

// delete [] ptr;

puts("\nPress any key...");

getch();

return 0;}

Вказівка до програми 1.2:  Розробіть програму, в який створю­ється динамічний масив для змінних типу double з використанням операції new. Розмір масиву вводиться з клавіатури. Масив заповніть випадковими числами у діапазоні від -32.00 до +32.00 та виведіть на екран. Потім звільніть пам’ять.

Програма 1.3 В програмі створюються двовимірні динамічні квадратні матриці. Розмір матриць вводиться з клавіатури. Значення елементів першої матриці вводяться з клавіатури, а другої – заповнюються випадковими числами від -50 до +50. Потім в другу матрицю заносяться суми елементів обох матриць.

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

int main()

{clrscr();

int i,j,N;

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

scanf("%u",&N);

int **matr; // покажчик на масив покажчиків

matr=new int*[N]; // запит пам’яті для масиву покажчиків

if(matr==NULL) //перевiрка виділення пам’яті

{puts("Масив не створено!"); return -1;}

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

{matr[i]=new int[N]; // запит пам’яті для елементів рядків

if(matr[i]==NULL){puts("Масив не створено!");

delete [] matr; return -2;}

}

puts("\n Введіть значення елементів матриці matr:”);

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

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

scanf(“%d”, &matr[i][j]);

puts("\n\tМатриця matr:”);

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

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

printf("%8d", matr[i][j]);

printf("\n"); }

int **mas;//Покажчик на масив покажчиків

mas=new int*[N];//Запит пам’яті для масиву покажчиків

if(mas==NULL) // перевiрка виділення пам’яті

{puts("Масив не створено!"); return -1;}

randomize();

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

{mas[i]=new int[N]; //Запит пам’яті для елементів рядків

if(mas[i]==NULL){puts("Масив не створено!");

delete [] mas; return -2;}

}

puts("\nЗаповнюємо матрицю mas випадковими числами:”);

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

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

{mas[i][j]=random(100)-50;

printf("%8d",mas[i][j]);

}

printf("\n");

}

puts("\n\tНові значення матриці mas:");

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

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

{mas[i][j]=matr[i][j]+mas[i][j];

printf("%8d",mas[i][j]);

}

printf("\n");

}

//Звільнення пам’яті

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

{delete matr[i]; // звільнення пам'яті з-під масивів елементів

delete mas[i]; // звільнення пам'яті з-під масивів елементів

}

delete [] matr; // звільнення пам'яті з-під масиву покажчиків

delete [] mas; // звільнення пам'яті з-під масиву покажчиків

puts("Press any key...");

getch();

return 0;

}

Вказівка до програми 1.3: Доповніть програму, створивши третю динамічну матрицю. Порівняйте значення елементів перших двох матриць, найбільше значення занесіть в третю матрицю. Результат виведіть на екран.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]