- •«Московский государственный технический университет гражданской авиации»
- •Лабораторная работа №5 Разработка программ с использованием функций для обработки массивов арифметических и символьных данных.
- •Цель лабораторной работы
- •1.2. Теоретические сведения Создание динамических массивов
- •Массивы указателей
- •Создание двумерного динамического массива с помощью динамического массива указателей.
- •Определение динамического двумерного массива
- •Указатель на массив. Многомерные массивы динамической памяти.
- •Определение типа массива
- •Определение типа указателя на массив
- •Основные виды обработки массивов.
- •1.3 Задание на выполнение лабораторной работы
- •1.4 Порядок выполнения работы
- •1.5. Пример выполнения лабораторной работы
- •Схемы алгоритмов функций
- •Текст программы
- •1.6. Контрольные вопросы
- •1.7. Варианты заданий лабораторной работы
- •2. Лабораторная работа № 6 Разработка функций рекурсивных и без рекурсии, использующих параметр – функцию и оператор return.
- •2.1 Цель лабораторной работы
- •2.2. Теоретические сведения Рекурсивные функции
- •Указатели на функции
- •Массивы указателей на функции
- •Определение типа указателя на функцию
- •Указатель на функцию - параметр функции
- •2.3 Задание на выполнение лабораторной работы
- •2.4 Порядок выполнения работы
- •2.5 Пример выполнения лабораторной работы
- •Текст программы
- •2.6 Контрольные вопросы
- •2.7. Варианты заданий лабораторной работы
- •3 Лабораторная работа № 7
- •3.1 Цель лабораторной работы
- •3.2 Теоретические сведения Структура как совокупность данных
- •3.3 Задание на выполнение лабораторной работы
- •3.4 Порядок выполнения работы
- •3.5 Пример выполнения лабораторной работы
- •Текст программы
- •3.6 Контрольные вопросы
- •3.7 Варианты заданий лабораторной работы
- •4. Лабораторная работа № 8 Классы и объекты. Создание и разрушение объектов пользовательского класса, статических и динамических.
- •4.1 Цель лабораторной работы
- •4.2. Теоретические сведения Объектно-ориентированный подход к программированию.
- •Понятие класса
- •Объявление функции вне и внутри тела класса
- •Конструктор
- •Массивы объектов статических и динамических
- •Деструктор
- •Указатели на компоненты-функции
- •4.3 Задание на выполнение лабораторной работы
- •4.4 Порядок выполнения работы
- •Методические указания
- •4.5 Контрольные вопросы
- •4.6 Варианты задания
- •5 Список литературы
- •Содержание
- •1. Лабораторная работа № 5
- •1.1. Цель лабораторной работы 3
- •1.2. Теоретические сведения 3
- •4.1. Цель лабораторной работы 38
- •4.2. Теоретические сведения 38
Определение типа массива
Определение имеет следующий вид:
typedef type имя_типа_элем_массива [k1] [k2]...[kn];
Пример:
typedef array float [3][5][2];
array – имя типа массива, размера 3*5*2 с элементами типа float,
array Mas; - определение массив Mas типа array.
Определение типа указателя на массив
Определение имеет следующий вид:
typedef type (*имя_типа_указателя_на_массив) [k1] [k2] ...[kn];
Пример:
typedef float (*tpm) [5][2];
tpm – имя типа указателя на массив 5*2 с элементами типа float
tpm pm; - объявлен указатель такого типа.
Основные виды обработки массивов.
К основным видам обработки массивов относятся следующие:
определение массивов,
сортировка элементов массивов,
модификация элементов массива,
поиск в массиве элементов по каким-либо признакам,
формирование массива из элементов другого массива по какому-либо алгоритму и другие.
1.3 Задание на выполнение лабораторной работы
Разработать схему алгоритма функции формирования массива из элементов массива исходных данных в соответствии с вариантом задания. Разработать программу обработки данных с использованием функции, реализующей алгоритм. Вариант задания получить у преподавателя.
1.4 Порядок выполнения работы
Создать новый проект в Visual Studio 2019.
Воспользоваться файлом данных и функциями ввода и вывода элементов массивов лабораторной работы №4.
В соответствии с количеством данных в файле определить внешний символьный массив для хранения строк шапки таблицы и арифметический массив для хранения исходных числовых значений. Последний массив можно определить как локальный массив главной функции.
Разработать алгоритм и определить функцию формирования арифметического массива из элементов массива с исходными данными в соответствии с вариантом задания.
Функция должна иметь как минимум два параметра-массива: первый - для передачи в функцию массива с исходными данными для обработки и второй - для передачи в вызывающую функцию сформированного массива.
В главной функции определить формируемый массив, то есть выделить участок оперативной памяти для хранения элементов массива. Вызвать функцию формирования нового массива, произвести вывод элементов нового массива в файл результатов в виде матрицы.
Провести отладку и тестирование программы.
Создать и защитить отчет.
1.5. Пример выполнения лабораторной работы
Задание:
1) Составить файл данных, хранящий символьные и числовые данные
2) Написать программу ввода данных из файла в оперативную память и вывода данных из оперативной памяти в файл результатов форматно в виде таблицы
3) Определить функцию формирования двумерного массива из:
- сумм положительных элементов каждого нечетного столбца (первая строка массива)
- количества таких элементов в каждом нечетном столбце (вторая строка массива)
4) Определить произведение сумм сформированного массива и общее количество положительных элементов нечетных столбцов
5) Определить максимальное и минимальное значения сумм и поменять местами столбцы исходной матрицы, в которых они найдены, если номера столбцов разные.
6) Вывести все результаты функции в файл результатов.
7) Первые два пункта взять из лабораторной работы№ 4.
