Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OTP_labs-NEW2.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
787.97 Кб
Скачать

9.2 Порядок виконання роботи

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

    1. Ознайомтесь з прикладом (листінг 9.1), наведеним у підрозділі 9.3.

    2. Отримайте від викладача варіант завдання.

    3. Розробіть схему алгоритму роботи програми.

    4. Запишіть програму на мові програмування С++.

    5. Створіть новий проект Visual Studio .NET” та введіть початковий код програми.

    6. Проведіть її компіляцію з використанням середовища “Visual Studio .NET”.

    7. Виправить синтаксичні та логічні помилки. Та повторіть компіляцію.

    8. Запустить на виконання отриманий код.

    9. Проведіть тестування для різних початкових даних.

    10. Запишіть результати роботи програми та проконтролюйте їх коректність.

9.3 Приклад

Завдання. Створити клас для виконання поелементних операцій над масивами логічних значень. Передбачити наступні операції: ініціалізацію, операції AND, OR, NOT.

class Logic_basic{

protected:

int n;

bool* val;

public:

Logic_basic();

Logic_basic(int num, bool* src);

Logic_basic(Logic* src);

~Logic_basic();

void setVal(int num, bool* src);

int getVal(bool* dst);

bool getElement(int i);

bool setElement(int i, bool v);

int length();

int and(Logic* src);

int or(Logic* src);

int not();

};

Logic_basic::Logic_basic(){

val = NULL;

n = 0;

}

Logic_basic::Logic_basic(int num, bool* src){

val = new bool[num];

n = num;

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

val[i] = src[i];

}

Logic_basic::Logic_basic(Logic_basic* src){

n = src->length();

if(n != 0){

val = new bool[n];

src->getVal(val);

}

else{

val = NULL;

}

}

Logic_basic::~Logic_basic(){

if(val != NULL) delete val;

}

void Logic_basic::setVal(int num, bool* src){

if(val != NULL) delete val;

val = new bool[num];

n = num;

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

val[i] = src[i];

}

int Logic_basic::getVal(bool* src){

if((val == NULL) || (n == 0)) return -1;

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

src[i] = val[i];

return n;

}

bool Logic_basic::getElement(int i){

if((val == NULL) || (n == 0)) return false;

if(i >= n) return false;

return val[i];

}

bool Logic_basic::setElement(int i, bool v){

if((val == NULL) || (n == 0)) return false;

if(i >= n) return false;

bool tmp = val[i];

val[i] = v;

return tmp;

}

int Logic_basic::length(){

return n;

}

int Logic_basic::and(Logic_basic* src){

if((val == NULL) || (n == 0)) return -1;

if(n != src->length()) return -1;

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

val[i] = val[i] && src->getElement(i);

}

return n;

}

int Logic_basic::or(Logic_basic* src){

if((val == NULL) || (n == 0)) return -1;

if(n != src->length()) return -1;

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

val[i] = val[i] || src->getElement(i);

return n;

}

int Logic_basic::not(){

if((val == NULL) || (n == 0)) return -1;

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

val[i] = !val[i];

return n;

}

Листінг 9.1 – Приклад виконання індивідуального завдання

9.4 Зміст звіту

Звіт з лабораторної роботи повинен містити:

    • мету роботи;

    • завдання на виконання роботи;

    • схему алгоритму роботи програми;

    • текст програми;

    • результати роботи програми для різних початкових даних;

    • висновки.

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