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

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

Варіант 1. Розробити функцію для виводу на екран усіх негативних елементів динамічного масиву і їх суми і кільксті.

Дана програма буде складатися з одного класу, що містить в собі конструктор, деструктор і дві функцій члени класу. Конструктор призначений для виділення динамічної пам’яті під масив, а деструктор – для звільнення динамічної пам’яті. Функція Vvod() призначена для вводу одномірного масиву з клавіатури, а функція Print() призначена для обробки масиву і виводу його на екран.

Клас буде мати наступну структуру:

class CNeg_elem{

float *masiv;

int kol;

int i;

int k,s;

public:

CNeg_elem();

~CNeg_elem();

void Vvod();

void Print();

};

Далі потрібно описати кожну з функцій, конструктор і деструктор. Головна програма буде містити зміну obj, за допомогою якої можна звертатися до функцій класу.

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

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

#include<stdio.h>

#include<iostream.h>

#include<conio.h>

#include<malloc.h>

class CNeg_elem{

float *masiv;

int kol;

int i;

int k,s;

public:

CNeg_elem();

~CNeg_elem();

void Vvod();

void Print();

};

CNeg_elem::CNeg_elem()

{

cout<<"vvedite kilkist elementov masiva\nk= ";

cin>>k;

masiv=(float*)malloc(k*sizeof(float));

}

CNeg_elem::~CNeg_elem()

{

free(masiv);

}

void CNeg_elem::Vvod()

{

cout <<"vvedite element masiva\n";

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

{

cout<<"a["<<i<<"]=";

cin >>masiv[i];

}

}

void CNeg_elem::Print()

{

kol=0; s=0;

cout<<"\nnegativne element\n";

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

if(masiv[i]<0)

{

s=s+masiv[i];

kol++;

cout<<"\na["<<i<<"]="<<masiv[i];

}

cout<<"\n\nsuma="<<s;

cout<<"\nkolichestvo negativnih="<<kol;

}

void main()

{

clrscr();

CNeg_elem obj;

obj.Vvod();

obj.Print();

getch();

}

Тестування:

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

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

5 -3 -12 0 3 -1

З введених даних наочно видно, що від’ємними є 2,3 і 6 елемент. Сума їх =-16. Кількість 3.

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

vvedite kilkist elementov masiva

k= 6

vvedite element masiva

a[0]=5

a[1]=-3

a[2]=-12

a[3]=0

a[4]=3

a[5]=-1

negativne element

a[1]=-3

a[2]=-12

a[5]=-1

suma=-16

kolichestvo negativnih=3

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

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

Клас в даному завданні має таку ж структуру, що і клас із Завдання 2, відмінність є те, що тут використовується двомірний динамічний масив.

Клас буде мати наступну структуру:

class CNeg_elem{

int **masiv;

int i,j;

int n,m;

public:

CNeg_elem();

~CNeg_elem();

void Vvod();

void Print();

};

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

#include<stdio.h>

#include<iostream.h>

#include<conio.h>

#include<malloc.h>

class CNeg_elem{

int **masiv;

int i,j;

int n,m;

public:

CNeg_elem();

~CNeg_elem();

void Vvod();

void Print();

};

CNeg_elem::CNeg_elem()

{

cout<<"vvedite kilkist radkiv\nn= ";

cin>>n;

cout<<"vvedite kilkist stovptsiv\nn= ";

cin>>m;

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

masiv[i]=new int[m];

}

CNeg_elem::~CNeg_elem()

{

free(masiv);

}

void CNeg_elem::Vvod()

{

cout <<"vvedite element masiva\n";

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

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

{

cout<<"a["<<i<<"]["<<j<<"]=";

cin >>masiv[i][j];

}

}

void CNeg_elem::Print()

{

cout<<"\nnegativne element\n";

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

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

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

cout<<"\na["<<i<<"]["<<j<<"]="<<masiv[i][j];

}

void main()

{

clrscr();

CNeg_elem obj;

obj.Vvod();

obj.Print();

getch();

}

Тестування:

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

Наприклад сформуємо двомірний масив 4*3 такого виду:

-4 -7 0

3 7 -14

5 -5 10

17 19 20

З введених даних наочно видно, що від’ємними є [0][0],[0][1],[1][2] і [2][1] елемент.

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

vvedite kilkist radkiv

n= 4

vvedite kilkist stovptsiv

n= 3

vvedite element masiva

a[0][0]=-4

a[0][1]=-7

a[0][2]=0

a[1][0]=3

a[1][1]=7

a[1][2]=-14

a[2][0]=5

a[2][1]=-5

a[2][2]=10

a[3][0]=17

a[3][1]=19

a[3][2]=20

negativne element

a[0][0]=-4

a[0][1]=-7

a[1][2]=-14

a[2][1]=-5