Розробка програм з використанням найпростіших класів та об’єктів
Розробка методу-члену класу для створення нового одновимірного масиву з кількості всіх негативних елементів кожного рядка заданого двовимірного динамічного масиву. Особливість виводу змісту масиву на екран. Аналіз перевірки правильності роботи програми.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | украинский |
Дата добавления | 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