Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторні роботи по програмуванні(14 лаб).doc
Скачиваний:
77
Добавлен:
16.05.2015
Размер:
1.43 Mб
Скачать

Лістинг програми

#include <stdio.h>

#include <conio.h>

typedef float** F2D;

F2D Create_2D_Mas(F2D m,int str,int stp);

void Vvod_2D_Mas(F2D m,int str,int stp);

void Obrobka_2D_Mas(F2D m,int str,int stp);

void Print_2D_Mas(F2D m,int str,int stp);

void Clear_2D_Mas(F2D m,int str,int stp);

F2D Create_2D_Mas(F2D m,int str,int stp)

{

float *m1;

m1=new float[str*stp];

m=new float*[str];

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

m[i]=&m1[stp*i];

return m;

}

void Vvod_2D_Mas(F2D m,int str,int stp)

{

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

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

{

scanf("%f",&m[i][j]);

}

}

void Obrobka_2D_Mas(F2D m,int str,int stp)

{

float sum;

int i, j, kol;

printf("Masiv\n");

Print_2D_Mas( m, str, stp);

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

{

sum=0.0;

kol=0;

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

if(m[j][i]<0)

{

sum+=m[j][i];

kol++;

}

printf("Negatuvnuh V %d stroke=%d ih suma=%.2f\n",j+1, kol,sum); // виведення результатів

}

}

void Print_2D_Mas(F2D m,int str,int stp)

{

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

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

{

printf("%6.2f ",m[i][j]);

if(j==stp-1) printf("\n");

}

}

int main()

{

clrscr();

F2D arr = NULL; // масив не створено

int str=2, stp=2;

Create_2D_Mas(arr,str,stp);

Vvod_2D_Mas(arr,str,stp);

Obrobka_2D_Mas(arr,str,stp);

Print_2D_Mas(arr,str,stp);

getch();

return 0;}

Тестування:

Для перевірки правильності роботи програми введемо в неї дані, при введені яких результат заздалегідь відомий.

Наприклад сформуємо масив 3х3 з 9 елементів такого виду:

1 2 3

-1 -2 -3

1 -2 3

З введених даних наочно видно, що негативних елементів в 1 стрічці 0, їх сума 0, негативних елементів в другій стрічці 3, їх сума -6, негативних елементів в 3 стрічці 1, їх сума -2

Тепер введемо ці ж дані в програму і перевіримо результат.

1

2

3

-1

-2

-3

1

-2

3

Masiv

1 2 3

-1 -2 -3

1 -2 3

Negatuvnuh V 1 stroke = 0 ih suma=0

Negatuvnuh V 2 stroke = 3 ih suma=-6

Negatuvnuh V 3 stroke = 1 ih suma=-2

Приклад виконання завдання 3

Варіант 6. Розробити функцію визначення кубічного кореня з заданого члена і програму, що використовує цю функцію для перетворення кожного елемента даного одновимірного динамічного масиву.

Дана програма буде складатися з основної функції int main(), та п’яти функцій для виконання поставленої задачі:

float()*Create_1D_Mas(float*m,int n) - функція призначена для створення масиву;

void Vvod_1D_Mas(float*m,int n) - функція призначена для введення масиву

float KorKub(float val) - функція призначена для знаходження кубічного кореня з числа;

void Kor_Kub_1D_Mas(float*m,int n) - функція призначена для перетворення кожного елемента даного одновимірного динамічного масиву в його кубічний корінь;

void Print_1D_Mas(float*m,int n) - функція призначена для виведення масиву;

void Clear_1D_Mas(float*m) - функція призначена для очистки масиву;

Програма буде мати наступний вигляд: