Отчет по практике. Занятие Динамические массивы(одномерные). Сало Анна Андреевна
Скачать 314.67 Kb.
|
Практическое занятие 1.1. Динамические массивы(одномерные). Сало Анна Андреевна Вариант №17 Задание: Разработать алгоритм (блок-схему) и программный код на языке С++ (обрабатываемые массивы должны быть динамическими) согласно варианту. Отладить программу в консольном приложении. Протестировать программу на различных наборах входных данных. Составить отчет. Условие: В векторе х подсчитать число нулей и заменить отрицательные элементы их абсолютными величинами. 1.Постановки задачи Программа подсчитывает количество нулей в векторе, создает массив заменяет отрицательные элементы абсолютными величинами. Входные данные: -size(ограничение): int- целочисленный тип данных (весит 4 байта), диапазон значений от -2 147 483 648 до 2 147 483 647. -arr(ограничение): int- целочисленный тип данных (весит 4 байта), диапазон значений от -2 147 483 648 до 2 147 483 647. Выходные данные: -sum(ограничение): int- целочисленный тип данных (весит 4 байта), диапазон значений от -2 147 483 648 до 2 147 483 647. -size(ограничение): int- целочисленный тип данных (весит 4 байта), диапазон значений от -2 147 483 648 до 2 147 483 647. Среда разработки- Visual Studio 2022. 2.Разработка программы 2.2 Разработка схемы алгоритма На рис.1 изображена блок-схема алгоритма функций в приведенной мне задаче. начало Ввод количества элементов массива Ввод элементов массива нет Значение массива=0? да Считаем кол-во нет Значение массива< 0? Вывод количества нулей да Умножаем на (-1) Вывод значения массива конец Рис. 1. Блок-схема алгоритма функции main Входные данные - это данные, которые Вы даёте программе (например, “cin >> A”). А выходные данные - результат работы программы. В таблице 1 я в подробностях описала имя, тип и структуру используемых мной данных. Табл. 1 Описание данных
2.3 Описание пользовательского интерфейса На рис. 2 я приложила скриншот пользовательского интерфейса, как только мы входим в программу. Рис.2. Пользовательский интерфейс 3. Реализация и тестирование программы 3.1. Описание разработанной программы Разработанный код программы полностью отвечает поставленному заданию, а именно: вид массива – динамический; реализована возможность нахождения отрицательных элементов массива и замена их абсолютными величинами; реализована возможность нахождения количества нулей в данном массиве. Листинг программы приведён в приложении. 3.2 Тестирование разработанной программыОбъект испытаний - Практическая работа №1.1. Цель испытаний - Проверка корректной работы программы. Средства испытаний - Visual Studio 2022. Порядок испытаний - 1) Запуск программы; 2) Ввод требуемых данных; 3) Проверка результатов программы. Методы испытаний представлены в табл.2 - 1) Ввод отрицательных элементов - ✓ 2) Ввод в элементы нулей - ✓ 3) Ввод буквенных значений - × 4) Ввод вещественных значений - × Табл.2 Тестирование программы
Вывод: Целью данной работы было получение навыков практического применения базовых алгоритмических структур при программировании одномерных динамических массивов. С этой целью я справилась успешно, изучила функционал массивов, их задачи и применение, а также узнала о множестве других новых функций и библиотек. Недостаток моей программы был в том, что я ввела целочисленные значения, из-за чего в моем коде существовали ограничения. В следующей программе я не допущу этой ошибки и в моих входных данных будут подходить значения с плавающей точкой Приложение. Листинг программы #include <iostream> #include #include using namespace std; int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); int size, sum = 0; cout << "Введите размер массива : "; cin >> size; int* arr = new int[size]; cout << endl; for (int i = 1; i < size+1; i++) { cout << "Введите [" << i << "] элемент массива: "; cin >> arr[i]; } cout << endl; for (int i = 1; i < size + 1; i++) { if (arr[i] == 0) { sum += 1; } if (arr[i] < 0) { arr[i] = arr[i] * (-1); } } cout << "Массив после преобразования: "; for (int i = 1; i < size + 1; i++) { cout << arr[i] << " "; } cout << endl; cout << "Количество нулей равно: " << sum << endl;; system("pause"); return 0; } |