Розробка програм з використанням найпростіших класів та об’єктів

Розробка методу-члену класу для створення нового одновимірного масиву з кількості всіх негативних елементів кожного рядка заданого двовимірного динамічного масиву. Особливість виводу змісту масиву на екран. Аналіз перевірки правильності роботи програми.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык украинский
Дата добавления 18.11.2021
Размер файла 131,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Лабораторна робота

Тема: Розробка програм з використанням найпростіших класів та об'єктів.

Мета: Набуття навичок в розробці найпростіших класів та роботі з об'єктами класів.

Завдання 1

Розробити метод-член класу впорядкування по зростанню методом бульбашки одновимірного динамічного масиву.

Завдання 2

Розробити метод-член класу для створення нового одновимірного масиву з кількості всіх негативних елементів кожного рядка заданого двовимірного динамічного масиву.

Завдання 3

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

Розробити структуру класу для роботи з динамічними масивами, яка повинна включати не менше 2-х даних-членів класу та 5-х методів класу, з яких обов'язково повинні бути метод-член класу для:

- створення масиву;

- заповнення масиву;

- виводу змісту масиву на екран;

- очищення пам'яті.

Розробити метод для обробки динамічних масивів, що використовує клас для виконання завдання 1 та головну програму, яка використовує розроблений клас.

Розробити структуру класу для роботи з двовимірними масивами, яка повинна включати не менше 3-х даних-членів класу та 5-х методів класу, з яких обов'язково повинні бути метод-член класу для:

- створення масиву;

- заповнення масиву;

- виводу змісту масиву на екран;

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

#include <iostream>

using namespace std;

class DynamicArray

{

private:

int SIZE;

double* array;

public:

DynamicArray() {

SIZE = 0;

array = nullptr;

}

DynamicArray(int size) {

CreateArray(size);

}

DynamicArray(double* arr, int size) {

array = arr;

SIZE = size;

}

void CreateArray(int size) {

SIZE = size;

array = new double[SIZE];

}

void InputArray() {

cout << "Enter numbers of array:" << endl;

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

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

cin >> array[i];

}

cout << endl << "DONE!" << endl;

}

void PrintArray() {

cout << endl << "Numbers of array:" << endl;

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

cout << "array[" << i << "] = " << array[i] << endl;

}

}

void Clear() { //очищення памяті

SIZE = 0;

delete[] array;

}

void Buble_sortArray() {

for (int i = 0; i < SIZE - 1; i++) {

for (int j = 0; j < SIZE - i - 1; j++) {

if (array[j] > array[j + 1]) {

double temp = array[j];

array[j] = array[j + 1];

array[j + 1] = temp;

}

}

}

}

void SetValue(double value, int i) { //заповнення відбувається у функції main

array[i] = value;

}

double CubeSqrt(int i) {

return pow(array[i], 1.0 / 3.0);

}

};

class DynamicDoubleArray

{

private:

int ROWS;

int COLUMS;

double** array;

public:

DynamicDoubleArray() {

ROWS = 0;

COLUMS = 0;

array = nullptr;

}

DynamicDoubleArray(int rows, int colums) {

CreateArray(rows, colums);

}

void CreateArray(int rows, int colums) {

ROWS = rows;

COLUMS = colums;

array = new double*[ROWS];

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

array[i] = new double[COLUMS];

}

}

void InputArray() {

cout << "Enter numbers of array:" << endl;

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

for (int j = 0; j < COLUMS; j++) {

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

cin >> array[i][j];

}

}

cout << endl << "DONE!" << endl;

}

void PrintArray() {

cout << "Print matrix:" << endl;

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

for (int j = 0; j < COLUMS; j++) {

cout << "[" << array[i][j] << "]\t";

}

cout << endl;

}

}

void Clear() {

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

delete[] array[i];

}

delete[] array;

cout << "Memory cleared" << endl;

}

double* GetNewArray() {

double* A = new double[ROWS];

int count = 0;

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

for (int j = 0; j < COLUMS; j++) {

if (array[i][j] < 0) {

count++;

}

}

A[i] = count;

count = 0;

}

return A;

}

};

int main()

{

cout << endl << "Task1" << endl << endl;

int size;

cout << "Enter the size of array: ";

cin >> size;

DynamicArray arr1(size);

arr1.InputArray();

arr1.Buble_sortArray();

arr1.PrintArray();

cout << endl << "Task2" << endl << endl;

int rows, colums;

cout << "Enter rows: ";

cin >> rows;

cout << "Enter colums: ";

cin >> colums;

DynamicDoubleArray db(rows, colums);

db.InputArray();

DynamicArray arr2(db.GetNewArray(), rows);

cout << "New array" << endl;

arr2.PrintArray();

cout << endl << "Task3" << endl << endl;

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

{

double kor = arr1.CubeSqrt(i);

arr1.SetValue(kor, i);

}

cout << "Array after using sqrt func" << endl;

arr1.PrintArray();

arr1.Clear();

db.Clear();

}

Завдання 1 тестування:

Для перевірки правильності роботи програми введемо в неї дані, при введені яких результат заздалегідь відомий. Наприклад сформуємо масив з 5 елементів такого виду: 4 2 5 1 3

З введених даних наочно видно, що впорядкованим за зростанням масивом з даних елементів буде масив: 1 2 3 4 5

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

Рис.1 завдання 1

Завдання 2 тестування:

Для перевірки правильності роботи програми введемо в неї дані, при введені яких результат заздалегідь відомий. Наприклад сформуємо рядки: 2, стовпець: 2. динамічний масив екран програма

І заповнимо їх: 1, 0, -2, -3.

З введених даних наочно видно, що знайшло скільки в рядку і в стовпці від'ємних чисел тобто [0] = 0 i [1] = 2;

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

Рис.2 завдання 2

Завдання 3 тестування:

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

Наприклад сформуємо масив з 4 елементів такого виду: 1, 8, 27, 64.

З введених даних наочно видно, що після перетворення даних елементів на їх кубічні корені масив буде мати вигляд: 1, 2, 3, 4.

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

Рис.3 завдання 3

Реалізовано таким чином що введені дані 1 завдання масиву знаходять автоматично корінь кубічний для 3 завдання.

Висновок: в результаті даної лабораторної роботи я набув навичок в розробці найпростіших класів та роботі з об'єктами класів.

Размещено на Allbest.ru


Подобные документы

  • Мінімізація функції за методом карт Карно; розробка програм на мові асемблеру для Intel 8051: сортування масиву однобайтних даних у зовнішній пам’яті; формування послідовності прямокутних імпульсів; підрахунок кількості натискань на клавішу переривання.

    курсовая работа [196,2 K], добавлен 14.04.2012

  • Аналіз технічного забезпечення, вибір інструментального програмного забезпечення та середовища розробки програм. Створення класів для реалізації необхідних функцій для роботи програмного засобу. Розробка інтерфейсу для користувача та лістинг програми.

    курсовая работа [343,9 K], добавлен 24.08.2012

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

    курсовая работа [1,0 M], добавлен 15.05.2019

  • Розроблення додатка за допомогою об'єктно-орієнтованого візуального проектування Delphi для виконання арифметичних операцій або з використанням меню. Створення інтерфейсу користувача з використанням компонентів SYSTEM і WIN32. Обробка двовимірного масиву.

    методичка [326,1 K], добавлен 13.01.2010

  • Концепції об'єктно-орієнтованого програмування. Методи створення класів. Доступ до методів базового класу. Структура даних, функції. Розробка додатку на основі діалогових вікон, програми меню. Засоби розробки програмного забезпечення мовами Java та С++.

    курсовая работа [502,5 K], добавлен 01.04.2016

  • Поняття об’єктно-орієнтовного програмування, поява відносин класів. Структури як складені типи даних, побудовані з використанням інших типів. Область дії класу і доступ до його елементів. Конструктор та деструктор класу. Розробка базового класу STRING.

    курсовая работа [280,9 K], добавлен 19.08.2010

  • Створення програми для виконання найпростіших функцій календаря за допомогою Borland DELPHI 2007. Аналіз процесу обробки інформації і побудова функціональних діаграм. Розробка інтерфейсу користувача, форм вводу-виводу інформації, основних алгоритмів.

    курсовая работа [1,3 M], добавлен 01.06.2013

  • Середовище програмування Visual Studio 2010. Функції стандартного введення-виведення. Робота з побітовими операціями. Робота з функцією заміни у рядку символів. Робота з масивами. Тестування алгоритму роботи програми. Представлення двовимірного масиву.

    курсовая работа [652,2 K], добавлен 15.01.2014

  • Об’єктно-орієнтоване програмування мовою С++. Основні принципи об’єктно-орієнтованого програмування. Розробка класів з використанням технології візуального програмування. Розробка класу classProgressBar. Базовий клас font. Методи тестування програми.

    курсовая работа [211,3 K], добавлен 19.08.2010

  • Проектування ієрархії класів побутових приладів (пральна машина, пилосос, телевізор, магнітофон, радіоприймач, музичний центр), створення її структурної схеми. Розробка програми з використанням об'єктів створених класових типів на мові програмування Java.

    лабораторная работа [451,0 K], добавлен 25.01.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.