
- •1. Краткие теоретические сведения
- •1.1. Переменные с индексами и массивы
- •1.2. Описание массивов в программах
- •1.3. Динамические массивы
- •1.4. Программирование вычислительных процессов, содержащих одномерные массивы (Алгоритмы обработки одномерных массивов)
- •1.4.1. Инициализация массива
- •1.4.2. Формирование и вывод массива
- •1.4.3. Ввод – вывод статического одномерного массива
- •1.4.4. Ввод – вывод динамического одномерного массива
- •1.4.5. Суммирование элементов одномерного массива
- •1.4.6. Табуляция значений функции, аргумент которой – одномерный массив
- •1.4.7. Поиск минимального и максимального значений одномерного массива
- •1.4.8. Сортировка значений одномерного массива по возрастанию (убыванию) методом попарного сравнения
- •1.4.9. Сортировка значений одномерного массива по возрастанию (убыванию) методом нахождения минимума (максимума)
- •Нахождения минимума для примера 10.8
- •1.4.10. Перестановка двух элементов массива
- •1.4.11. Вычисление суммы элементов массива
- •1.4.12. Подсчет количества элементов массива, удовлетворяющих заданному условию
- •1.4.13. Вычисление произведения элементов массива
- •1.4.14. Поиск элементов, обладающих заданным свойством
- •1.4.15. Поиск в упорядоченном массиве
- •1.4.16. Поиск минимального и максимального элемента массива и его порядкового номера (индекса)
- •1.4.17. Копирование массивов
- •1.4.18. Формирование нового массива
- •1.4.19. Примеры решения задач по обработке одномерных массивов
- •2. Задание
- •2.4. Задания для выполнения на занятиях
- •2.4.1. Задание 1. Вычисление сумм, количеств и произведений элементов массива
- •2.4.1.1. Условие задания
- •2.4.1.2. Пример для варианта 30
- •2.4.1.3. Программа
- •2.4.1.4. Тестирование
- •2.4.2. Задание 2. Поиск минимального и максимального элементов массива
- •2.4.2.1. Условие задания
- •2.4.2.2. Пример для варианта 30
- •2.4.2.3. Программа
- •2.4.2.4. Тестирование
- •2.4.3. Задание 3. Формирование новых массивов
- •2.4.3.1. Условие задания
- •2.4.3.2. Пример для варианта 30
- •2.4.3.3. Программа
- •2.4.3.4. Тестирование
- •2.4.4. Задание 4. Обработка упорядоченных массивов
- •2.4.4.1. Условие задания
- •2.4.4.2. Пример для варианта 30
- •2.4.4.3. Программа
- •2.4.4.4. Тестирование
- •2.4.5. Задание 5. Задачи, сводящиеся к обработке одномерных массивов
- •2.4.5.1. Условие задания
- •2.4.5.2. Пример для варианта 30
- •2.4.5.3. Программа
- •2.4.5.4. Тестирование
- •2.4.6. Задание 6. Комбинированные задачи
- •2.4.6.1. Условие задания
- •2.4.6.2. Пример для варианта 30
- •2.4.6.3. Программа
- •2.5.1.2. Пример для варианта 30
- •2.5.1.3. Программа
- •2.5.1.4. Тестирование
- •2.5.2. Задание 8. Комбинированные задания
- •2.5.2.1. Условие задания
- •Варианты заданий
- •5. Пример решения задачи (вариант 30)
- •2.5.2.2. Разработка алгоритма.
- •2.5.2.3. Определение переменных программы
- •2.5.2.4. Разработка текста программы
- •2.5.2.5. Программа
- •2.5.2.6. Отладка программы
- •2.5.2.7. Результаты работы программы
- •2.5.3. Задание 9. Комбинированные задания
- •2.5.3.1. Варианты заданий
- •2.5.3.2. Пример программы обработки динамических массивов
- •2.5.3.3. Программа
- •2.5.3.4. Тестирование
- •2.5.4. Задание 10. Вычисления элементов вектора по формуле
- •2.5.4.2. Пример для варианта 30
- •2.5.4.3. Программа
- •2.5.5.4. Тестирование
- •2.5.5. Задание 11. Вычисления сумм и произведений векторов
- •2.5.5.2. Пример для варианта 30
- •2.4.11.3. Программа
- •2.5.5.4. Тестирование
- •2.5.6. Задание 12. Произвольные задачи
- •2.5.6.2. Пример для варианта 30
- •2.5.6.3. Программа
- •2.5.6.4. Тестирование
- •3. Выводы
- •4. Требование к отчету
- •4. Краткие теоретические сведения.
- •5. Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Переменные с индексами и массивы 2
Министерство финансов Российской Федерации
Всероссийская государственная налоговая академия
ИНФОРМАТИКА И ПРОГРАММИРОВАНИЕ
Бакалавры: 230700 "Прикладная информатика"
Язык программирования С++
Лабораторная работа № 10
ПРОГРАММИРОВАНИЕ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ,
СОДЕРЖАЩИХ ОДНОМЕРНЫЕ МАССИВЫ
Автор профессор кафедры "Прикладной информатики в экономике"
кандидат технических наук Л.К. Кузнецов
26 апреля 2012 г.
Москва
ВГНА
2012
Лабораторная работа № 10
Программирование вычислительных процессов, содержащих одномерные массивы
Цель работы:
Ознакомиться:
с понятием массива;
с назначением массивов;
с видами массивов;
с понятием переменной с индексами;
с понятием размерности массива;
с правилами описания, массивов в программах на языке С++;
с выражениями над массивами (с правилами действия с массивами);
с организацией циклов при работе с массивами.
Изучить типовые алгоритмы обработки одномерных массивов.
Научиться разрабатывать и отлаживать в среде программирования программы обработки массивов.
Получить практические навыки по программированию вычислительных процессов, содержащих одномерные массивы.
1. Краткие теоретические сведения
Ниже приводятся минимальные сведения, необходимые только для выполнения лабораторной работы
1.1. Переменные с индексами и массивы
Помимо одиночных (скалярных, простых) переменных, которые рассмотрены нами ранее в предыдущих лабораторных работах, С++ позволяет объявлять также агрегаты переменных (массивы, структуры, указатели) и каждый такой агрегат обрабатывать как единую переменную.
Массив – это упорядоченная последовательность величин (переменных), обладающих одинаковыми характеристиками и обозначаемая одним именем, для хранения которых отводятся последовательно расположенные поля памяти.
Значения всех переменных, входящих в один массив, должны обязательно иметь одинаковые характеристики (атрибуты). Например, если массив состоит из вещественных переменных, то все переменные должны быть только вещественного типа, с одинаковой формой представления, основанием и точностью значений.
Массивы могут состоять из арифметических данных, символов, строк, структур, указателей.
Каждый массив характеризуется своим именем, количеством измерений (индексов) и количеством переменных в каждом измерении (границами каждого индекса).
В качестве имени массива, не входящего в какую-либо объемлющую совокупность, может быть любой идентификатор, выбираемый программистом по своему усмотрению в соответствии с правилами образования и выбора идентификаторов в языке С++ (лаб. работа № 2).
Отдельные величины (переменные), образующие массив, называются элементами массивов. Переменную, входящую в состав массива, называют также переменной с индексами (или индексированной переменной) (не путать с индексной переменной).
Элемент массива именуется с помощью имени (идентификатора) массива и индексов, которые указывают положение элемента в массиве.
Доступ к отдельным элементам массива осуществляется по имени массива и индексу (порядковому номеру) элемента.
Каждому элементу массива ставится в соответствие один или несколько индексов.
Количество индексов, используемых для обозначения элементов массива, зависит от размерности массива, то есть от количества измерений массива.
Массивы могут быть одномерными, двумерными, трехмерными и т.д. Одномерный массив можно представить себе как вектор, двумерный - как матрицу (прямоугольную как квадратную), трехмерный - как тензор.
Максимальная величина размерности массива в языка С++ определяется возможностями конкретного компилятора, обычно не менее 63..
Число индексов у переменных с индексами соответствует размерности массива.
В языке С++ индексы переменной заключаются в индексные (квадратные) скобки и помещаются вслед за идентификатором массива. Например, переменные с индексами х1, а6, n на C++ записываются соответственно, в виде х[1], а[6], gamma[n]. Приведенные переменные являются элементами одномерных массивов: x, а и gamma, соответственно.
Внимание: обратите внимание, что индексы в квадратных скобках указываются после имени массива без пробела.
У многомерных массивов индексы переменной в их списке отделяются друг от друга запятыми. Например, y[1,3], b[0,0], beta[i,j,k] есть запись переменных y1,3, b0,0, betai,j,k,
Отдельный индекс задает номер позиции элемента по соответствующему измерению. Например, а[6] означает шестой элемент одномерного массива а; у[i,j] - элемент находится на пересечении i-ой строки и j-го столбца в двумерном массиве (матрице) у.
Число индексов в переменной с индексами должно быть равно числу измерений массива. В качестве индексов, указываемых в индексных (круглых) скобках, могут использоваться:
а) целые числа (например, х[1], а[5], y[1,3], b[0,0]);
б) скалярные переменные (например, gamma[i], b[i,j], beta[i,j,k]) ;
в) арифметические выражение (например, z[i,a+3, b/2], с1[i,i+k3], q[(x+2)/(x+i), x+2).
Арифметические выражения, используемые в качестве индексов, называют индексными выражениями. По смыслу индексные выражения должны принимать только целочисленные значения. Если же значение индексного выражения оказывается не целым числом, то в С++ установлено, что в качестве индекса в таких случаях следует принимать целую часть от результата вычисления выражения. Например, если a = 4,1 b = 0,6, то при обращении к элементу массива x(a*b) будет выбрано значение второго элемента массива х(2).
Массивы широко используются в практике вычислений на ЭВМ. Это объясняется тем, что при решении большинства задач чаще всего приходится иметь дело с множеством однородных величин, например коэффициентами систем уравнений, элементами таблиц, компонентами векторов и др. Эти однородные величины, как правило, имеют общее буквенное обозначение и отличаются друг от друга индексами.
Массивы являются одной из простейших форм структурной организации данных.