Разработка программы для обработки массива
Решение задачи поиска суммы отрицательных элементов массива с помощью различных вариантов вызываемых функций. Осуществление поиска суммы отрицательных элементов массива. Передача результата поиска массива через имя функции, через указатель, через ссылку.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 31.03.2023 |
Размер файла | 172,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Федеральное бюджетное государственное образовательное учреждение высшего профессионального образования
Кафедра информационных технологий и систем
Итоговая контрольная работа
по дисциплине Алгоритмические языки и программирование
1. Текст задачи
Разработать программу для обработки массива согласно варианту 11 Контрольной Работы номер 2, подзадачи 1 с помощью трёх функций различных вариантов.
Во время работы программы выполняется ручной ввод исходных данных (заполняется массив, содержащий данные для последующей обработки), а затем отображение результата на экране консольного приложения.
При обработке последовательно решается подзадача поиска суммы отрицательных элементов массива с помощью трёх вариантов вызываемых функций:
* Передача результата через имя функции;
* Передача результата через указатель;
* Передача результата через ссылку.
2. Постановка задачи
программа поиск массив
На основе вводимых данных требуется осуществить поиск суммы отрицательных элементов массива. Ниже приводится описание исходных данных и результатов, используемых во время выполнения программы:
Имя |
Что обозначает |
Тип значений |
Диапазон значений |
Как используется |
|
sz |
Размер исходного массива данных (size) |
Целочисленный |
От 1 до 216 |
Аргумент |
|
X |
Массив исходных данных |
Целочисленный |
От -231 до 231-1 |
Аргумент |
|
Sum_neg |
Сумма отрицательных элементов |
Целочисленный |
От -231 до 0 |
Результат |
3. Описание интерфейса программы
Интерфейс программы представляет собой консольное окно приложения, приглашающее ввести вручную сначала размер массива, а затем заполнить по номерам его элементы.
При отсутствии критических ошибок ввода исходных данных осуществляется выполнение задачи вычисления суммы отрицательного элемента массива последовательно, с помощью трёх вариантов функций.
Результаты выполнения каждой из функций отображаются на консольном окне, с соответствующими пояснениями.
4. Тестовые наборы исходных данных
Для проверки работоспособности программы использовались следующие тестовые наборы данных:
№ |
Размер массива |
Значения элементов |
Результат выполнения вычисления суммы: |
|
1 |
7 |
-5 1 8 10 -7 2 -3 |
-15 |
|
2 |
4 |
4 8 3 7 |
0 |
|
3 |
8 |
-10 -2 1 3 -1 6 -5 8 |
-18 |
5. Текст программы
Данная программа представлена в виде основной функции main и трёх функций вычисления суммы отрицательных элементов. В программе выделяются три функции в зависимости от варианта их вызова. В основной процедуре main осуществляется поочерёдный вызов трёх вариантов функций.
#include <iostream>
#include <math.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
#define ERR_CODE -1
/*Ищется сумма всех отрицательных элементов массива*/
/*Функция №1 через указатель выходного параметра */
void func1_sum(int *X, int sz, int *sum_neg)
{
int i=0; /*счётчик*/
*sum_neg = 0; //Сброс суммы
for(i=0;i<sz;i++)
if(X[i] < 0) /*Прибавляем отрицательные элементы*/
{
*sum_neg += X[i];
}
}
/*Функция №2 поиск суммы по ссылке */
void func2_sum(int *X, int sz, int &sum_neg)
{
int i=0; /*счётчик*/
sum_neg = 0; //Сброс суммы
for(i=0;i<sz;i++)
if(X[i] < 0) /*Прибавляем отрицательные элементы*/
{
sum_neg += X[i];
}
}
/*Функция №3 возврат сумммы как значение функции */
int func3_sum(int *X, int sz)
{
int i=0; /*счётчик*/
int local=0; /*локальная копия суммы*/
for(i=0;i<sz;i++)
if(X[i] < 0) /*Прибавляем отрицательные элементы*/
{
local += X[i];
}
return local;
}
int main(int argc, char** argv)
{
int *X=NULL, sz=0; //Массив и его размер (Вводится вручную)
int i=0; //счётчик
int sum_neg=0;//Сумма всех отрицательных элементов.
setlocale(LC_ALL, "Russian");
printf("Итоговая контрольная работа, вариант 1\n\nВведите размер массива\n");
scanf("%d",&sz); //ввод размера
if(sz <= 0)
{
printf("Ошибка: неверный размер массива!!!\n");
return ERR_CODE; /*ошибка ввода данных*/
}
X = new int [sz];
if(!X)
{
printf("CRITICAL Memory Error!!!\n");/*Ошибка выделения памяти*/
return ERR_CODE;
}
printf("Заполните массив (нумерация с 0)\n");
for(i=0;i<sz;i++)
{
printf("%d-й элемент: ",i);
scanf("%d", &(X[i]));
}
printf("\nВызов и обработка функции с адресами\n");
func1_sum(X,sz,&sum_neg);
printf("Сумма всех отрицательных элементов массива: %d\n", sum_neg);
sum_neg=0;
printf("\nВызов и обработка функции с ссылками\n");
func2_sum(X,sz,sum_neg);
printf("Сумма всех отрицательных элементов массива: %d\n", sum_neg);
sum_neg=0;
printf("\nВызов и обработка функции с присвоением\n");
sum_neg = func3_sum(X,sz);
printf("Сумма всех отрицательных элементов массива: %d\n", sum_neg);
delete [] X;
return 0;
}
7. Пример выполнения программы
Тестовый набор #1
Тестовый набор #2
Тестовый набор #3
Размещено на Allbest.ru
...Подобные документы
Вычисление суммы положительных элементов массива. Упорядочивание элементов массива по убыванию. Решение задачи с помощью алгоритма, реализованного в среде Microsoft Visual 2008 Express. Реализация и тестирование программы. Выполнение трассировки функций.
практическая работа [146,3 K], добавлен 23.01.2015Выведение значения элементов массива, которые удовлетворяют неравенству. Подсчет количества отрицательных элементов массива. Изменение исходного массива. Тестирование программы. Проверка её работоспособности. Реакция программы на сообщение об ошибке.
лабораторная работа [1,3 M], добавлен 23.11.2014Одномерные числовые массивы, образование элементами целочисленного массива невозрастающей последовательности. Программное нахождение суммы элементов каждой возможной строки матрицы и формирование массива из найденных сумм, вывод массива-результата.
лабораторная работа [12,8 K], добавлен 09.01.2011Разработка и реализация типовых алгоритмов обработки одномерных массивов на языке Delphi. Максимальный и минимальный элемент массива. Значение и расположение элементов массива. Элементы массива, находящиеся перед максимальным или минимальным элементом.
лабораторная работа [12,8 K], добавлен 02.12.2014Общая характеристика организации массива в виде двоичного дерева. Особенности линейного и двоичного поиска заданного элемента массива. Методика упорядочения массива методом сортировки деревом. Инструкции и текст программы для нечисленной обработки данных.
курсовая работа [242,3 K], добавлен 12.11.2010Особенности поиска среднеарифметического значения элементов массива. Общая характеристика проблем разработки в среде Turbo Pascal программы упорядочивания массива по возрастанию. Рассмотрение основных этапов разработки программы на языке PASCAL.
курсовая работа [896,7 K], добавлен 18.05.2014Подсчет количества отрицательных элементов массива. Изменение исходного массива перемещением всех его положительных элементов в начало с исходным порядком их следования. Вывод на дисплей количества перемещенных элементов. Алгоритм и код программы.
лабораторная работа [946,5 K], добавлен 23.11.2014Понятие двумерного массива целых чисел. Создание динамического массива из элементов, расположенных в четырех столбах данного массива и имеющих нечетное значение. Сохранение результатов в файл и выведение их на экран. Использование ввода с файла.
курсовая работа [44,0 K], добавлен 09.11.2014Заполнение массива из целых чисел с присвоением элементам разных значений. Варианты программы с использованием различных операторов организации циклов. Определение квадрата максимального из четных элементов массива и общего числа нулевых элементов.
лабораторная работа [259,3 K], добавлен 14.05.2011Функции формирования массива времени. Формирование массива входного напряжения, массива выходного напряжения. Функция вывода таблицы, расчета заданной точности, вывода титульного листа. Запись в файл массива времени. Блок–схема и текст программы.
курсовая работа [155,6 K], добавлен 22.04.2012Составление программы для нахождения минимального и максимального элементов массива. Программа вычисления корней квадратных алгебраических уравнений. Ранжирование одномерного массива по заданному признаку. Формирование массивов с помощью функции random.
контрольная работа [1,0 M], добавлен 30.04.2013Решения задачи графическим и программным способами. Описание алгоритма решения графическим способом, укрупненная схема алгоритма. Ввод элементов двумерного массива, вывод преобразованного массива, разработка программы на языке pascal, листинг программы.
курсовая работа [115,5 K], добавлен 22.05.2010Работа в Pascal, теория рядов. Главные признаки сходимости знакоположительных рядов. Общее понятие о ряде Тейлора. Вычисление конечной суммы факториального ряда для заданного массива значений. Исходный текст программы. Результаты выполнения программы.
контрольная работа [1,6 M], добавлен 06.08.2013Запись в массив листа Excel c именем "Эксперимент". Среднее арифметическое значение элементов массива. Вывод диалогового окна. Фрагмент программы, организующий считывание исходного массива в программу для обработки. Адрес ячейки электронной таблицы.
контрольная работа [1,1 M], добавлен 16.08.2011Виды информационно-вычислительных сетей: локальные, городские, глобальные; их классификация. Разработка программы на языке программирования С: формирование одномерного массива путем замены нулевых элементов на среднеарифметическое, а пробелов - на слова.
практическая работа [37,5 K], добавлен 20.05.2012Разработка клиентской программы, демонстрирующей возможности таблицы символов, реализованной на базе бинарного поиска. Программная проверка подлинности информационного массива. Временная эффективность поиска, алгоритмов создания таблицы символов.
контрольная работа [235,1 K], добавлен 10.03.2019Составление программы разветвляющейся структуры для вычисления заданной функции. Нахождение произведения чётных и нечётных первых чисел натурального ряда. Приёмы программирования обработки одномерных массивов. Расчет суммы положительных элементов массива.
контрольная работа [1,3 M], добавлен 20.12.2012Изучение определения, описания и вызова функций, указателей и ссылок на них. Написание функции умножения произвольного столбца двумерного массива на const. Умножение 2 столбцов массива на константы. Составление блок-схемы алгоритма и текста программы.
лабораторная работа [182,3 K], добавлен 09.01.2012Описание алгоритма решения задачи графическим способом. Ввод элементов исходного массива в цикле. Нахождение определённых элементов. Сортировка элементов с помощью пузырькового метода. Разработка программы на языке Pascal. Поиск наибольшего элемента.
лабораторная работа [123,5 K], добавлен 15.01.2014Формирование одномерного массива, каждый элемент которого равен наибольшему по модулю элементу соответствующего столбца. Определение столбца, в котором равное количество положительных и отрицательных элементов. Написание программы и ее тестирование.
контрольная работа [97,2 K], добавлен 21.06.2009