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

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

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

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

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

Int main()

{clrscr();

int N,M, i,j;

float **ptrF; // покажчик на масив покажчиків

puts("Введіть розміри двовимірної матриці");

scanf("%d %d",&N,&M);

// запит пам'яті для масиву покажчиків

ptrF=(float**)malloc(N*sizeof(float*));

if(ptrF==NULL){puts("Помилка"); return -1;}

// запит пам'яті для масивів елементів

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

{ptrF[i]=(float*)malloc(M*sizeof(float));

if (ptrF[i]==NULL){puts("Помилка"); return -1;}

}

randomize();

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

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

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

{ptrF[i][j]=random(1000)*0.01;// від 0.00 до 9.99

printf("%8.2f",ptrF[i][j]);}

printf("\n"); }

float *sum; //покажчик на масив елементів

// запит пам'яті для масиву елементів

sum=(float*)malloc(N*sizeof(float));

if(sum==NULL){puts("Помилка"); return -1;}

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

for(j=0,sum[i]=0.0;j<M;j++)

sum[i]+=ptrF[i][j];

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

printf("сума %d-й рядка дорiвнює: %.2f\n",i,sum[i]);

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

free(ptrF[i]); // звільнення пам'яті з-під масивів елементів

free(ptrF); // звільнення пам'яті з-під масиву покажчиків

free(sum); // звільнення пам'яті з-під масиву елементів

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

getch();

return 0;

}

Завдання до програми 1.1 Доповніть програму, створивши другий одновимірний динамічний масив, в який занесіть згідно варіанту обчисленні дані. Результат виведіть на екран.

  1. Обчисліть суми дробових частин елементів рядків.

  2. Обчисліть кількість елементів в рядках, що більші 5.0.

  3. Обчисліть суми елементів стовбців.

  4. Обчисліть кількість елементів в стовбцях, що менші 2.5.

  5. Обчисліть суми цілих частин елементів стовбців.

Програма 1.2 В програмі створюються двовимірні динамічні квадратні матриці. Розмір матриць вводиться з клавіатури. Значення елементів першої матриці вводяться з клавіатури, а другої – заповнюються випадковими числами від -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){puts("Масив не створено!"); return -1;}

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

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

if(matr[i]==NULL){puts("Масив не створено!");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){puts("Масив не створено!"); return -1;}

randomize();

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

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

if(mas[i]==NULL) {puts("Масив не створено!");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("\nPress any key...");

getch();

return 0;

}

Завдання до програми 1.2 Доповніть програму, створивши третю динамічну матрицю. Виконайте задані відповідно варіанту дії. Результат занесіть в третю матрицю та виведіть на екран.

  1. Порівняйте значення елементів перших двох матриць, найбільше значення занесіть в третю матрицю.

  2. Першу матрицю заповніть випадковими числами до 100. В третю матрицю занесіть суму елементів перших двох матриць, якщо вона знаходиться в діапазоні від 60 до 120, інакше занесіть число 46. Результат виведіть на екран у символьному вигляді.

  3. Перемножте першу та другу матрицю, результат занесіть в третю матрицю. Для довідки: .

  4. Порівняйте значення елементів перших двох матриць. Якщо відповідні елементи від’ємні, то в третю матрицю занесіть –1, якщо додатні – +1, інакше 0.

  5. Першу матрицю заповніть випадковими числами від -100 до +100. В третю матрицю занесіть суму абсолютних значень елементів перших двох матриць.

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