- •Ответственный за выпуск: Бивойно п.Г. , декан факультета электронных и информационных технологий, канд. Техн. Наук, доцент
- •Содержание
- •Лабораторная работа № 7. Одномерные массивы
- •Краткие теоретические сведения о массивах
- •Понятие массив
- •Объявление массива
- •Передача массивов в процедуры и функции
- •Операции с массивами
- •Типовые процедуры и функции для работы с массивами
- •Описание типа учебного массива
- •Процедуры создания, ввода и вывода массивов
- •Процедура создания случайного массива
- •Процедура ввода массива из строки текста
- •Процедура ввода массива из компонента tMemo
- •Процедура ввода массива с помощью функции InputBox
- •Функция преобразования массива в строку символов
- •Процедура вывода массива в компонент tMemo
- •Обработка массивов
- •Функция вычисления суммы элементов массива
- •Процедура определения минимального, максимального, и их индексов в массиве
- •Функция определения позиции элемента в массиве
- •Процедура удаления элементов из массива
- •Процедура переворота массива
- •Процедура циклического сдвига части элементов массива влево
- •Процедура формирования массива накопленных значений
- •Задание для самостоятельной работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 8. Сортировка массивов
- •Методы сортировки массивов
- •Сортировка выбором
- •Пример сортировки массива по возрастанию методом выбора
- •Процедура сортировки массива методом выбора
- •Сортировка обменом (метод пузырька)
- •Пример сортировки массива по возрастанию методом обмена
- •Процедура сортировки массива методом обмена
- •Сортировка вставкой или включением
- •Пример сортировки массива по возрастанию методом вставки
- •Процедура сортировки методом вставки
- •Сортировка по усложненным правилам
- •Обработка упорядоченных массивов
- •Вставка элемента в отсортированный массив
- •Слияние двух отсортированных массивов в один
- •Поиск позиции элемента в отсортированном массиве
- •Удаление элемента из отсортированного массива
- •Задание для самостоятельной работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 9. Работа с двумерными массивами (матрицами)
- •Краткие теоретические сведения
- •Описание матриц
- •Использование компонента StringGrid для ввода-вывода матриц
- •Тотальная обработка данных в матрицах
- •Выборочная обработка матрицы
- •Перестановки элементов матрицы
- •Удаление и вставка элементов матрицы
- •Сортировка элементов матрицы
- •Задание для самостоятельной работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 10. Работа с записями
- •Краткие теоретические сведения
- •Объявление типа для записи
- •Массивы записей
- •Поля записей как массивы
- •Сортировка массивов записей
- •Ввод-вывод записей
- •Создание проекта «Результаты аттестации»
- •Интерфейс пользователя для проекта
- •Определение типов данных
- •Инициализация интерфейса
- •Добавление строки в таблицу
- •Удаление строки из таблицы
- •Процедура создания массива записей по содержимому StringGrid
- •Процедура отображения массива в компоненте StringGrid
- •Процедура сортировки массива записей по группе и фамилии
- •Сортировка записей по количеству неудовлетворительных оценок и среднему баллу
- •Выборка студентов какой-нибудь группы, имеющих средний балл выше 4
- •Подсчет числа студентов, имеющих более 2-х неудовлетворительных оценок и вывод упорядоченного списка этих студентов
- •Задание для самостоятельной работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 11. Работа с типизироваными файлами
- •Краткие теоретические сведения
- •Объявление файловой переменной
- •Назначение файла файловой переменной
- •Открытие файла
- •Текущая позиция файла
- •Чтение данных из файла
- •Запись данных в файл
- •Обрезка “хвоста” файла
- •Закрытие и удаление файлов
- •Перечень основных процедур и функций для работы с типизированными файлами
- •Создание проекта «Результаты аттестации»
- •Требования к проекту
- •Интерфейс пользователя для проекта
- •Определение типов данных
- •Настройка интерфейса пользователя
- •Вспомогательные процедуры для работы с файлом Процедура выбора имени файла
- •Процедура открытия файла
- •Процедура вывода файла в StringGrid
- •Процедуры работы со StringGrid1
- •Процедуры реализации пунктов меню fileMenu Добавление данных из StringGrid1 в файл
- •Поиск записи по фамилии
- •Удаление записи по фамилии
- •Сохранение файла под другим именем
- •Процедуры для работы с упорядоченными файлами Процедура сортировки файла
- •Поиск записи в отсортированном файле
- •Добавление записи в отсортированный файл
- •Удаление записи из отсортированного файла
- •Процедуры реализации пунктов меню sortMenu Реализация пункта меню «Сортировка файла по фамилиям»
- •Реализация пункта меню «Поиск студента по фамилии»
- •Реализация пункта меню «Добавление в упорядоченный файл из StringGrid1»
- •Реализация пункта меню «Удаление записи из отсортированного файла»
- •Задание для самостоятельной работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 12. Работа с текстовыми файлами
- •Краткие теоретические сведения
- •Объявление файловой переменной для текстового файла
- •Связывание файловой переменной с конкретным файлом
- •Открытие файла
- •Создание нового файла
- •Открытие файла для чтения
- •Открытие файла для дополнения
- •Текущая позиция файла
- •Записи данных в файл.
- •Чтение данных из файла
- •Особенности чтения чисел из текстового файла
- •Особенности чтения данных типа String
- •Особенности чтения и записи символов
- •Закрытие и удаление файлов
- •Перечень основных процедур для работы с текстовыми файлами
- •Общая схема работы с текстовым файлом
- •Примеры работы с текстовыми файлами
- •Пример ввода-вывода при решении простейшей задачи
- •Пример добавления данных из одного файла к другому
- •Пример чтение из файла в поле Memo
- •Пример ввода-вывода при работе с массивом
- •Пример ввода-вывода при работе с матрицей
- •Пример ввода-вывода при работе с записями
- •Задания для самостоятельной работы
- •Содержание отчета
- •Контрольные вопросы
- •РекомендоваНная литература
Процедура переворота массива
В этой процедуре элементы массива, симметрично расположенные относительно середины, меняются местами.
//Переворот массива
procedure trans(var a: TArray100; count: integer);
var tmp, i: integer;
begin
for i := 1 to count div 2 do
begin
tmp := a[i];
a[i] := a[count – i + 1];
a[count – i + 1]:=tmp;
end;
end;
Процедура циклического сдвига части элементов массива влево
В этой процедуре элементы массива с индексами от i1 до i2 сдвигаются влево на 1 элемент, а элементы с индексами i1 и i2 меняются местами. Если i1 =1, а i2 равно размеру массива, то сдвигается весь массив.
//Сдвиг массива влево
procedure shiftLeft(var a: TArray100; count, i1, i2: integer);
var tmp, i: integer;
begin
if i2 > count then i2 := count;
tmp := a[i1];
for i := i1 + 1 to i2 do a[i-1] := a[i];
a[i2] := tmp;
end;
Процедура формирования массива накопленных значений
Эта процедура создает новый массив, такой же длины, как и исходный, но в этом массиве каждый элемент равен сумме элементов в исходном массиве от первого до текущего элемента.
//Формирование массива накопленных значений
procedure accum(const a: TArray100; var b: TArray100; count: integer);
var i: integer;
begin
b[1] := a[1];
for i := 2 to count do b[i] := b[i-1] + a[i];
end;
Задание для самостоятельной работы
В лабораторной работе следует создать проект, в соответствии с требованиями варианта из таблицы 7.1. Номер варианта выбирается по последней цифре номера зачетной книжки.
Главное меню проекта должно включать следующие пункты: создание массива, числовые характеристики, формирование нового массива.
На форме должны быть поля для ввода количества элементов массива и модуля для элементов массива (ограничителя величины числа).
Вывод числовых характеристик на усмотрение разработчика.
Компоненты для хранения исходного массива и массива, получаемого в результате обработки, должны соответствовать варианту задания.
Глобальные переменные для хранения массива и количества данных в нем использовать не следует.
При выполнении каждого пункта меню всю необходимую информацию считывать с формы.
При разработке проекта можно использовать процедуры и функции модуля UnitArrayDop.
Содержание отчета
-
Наименование работы
-
Цель работы
-
Краткое описание основных понятий, связанных с массивами
-
Тексты процедур и функций, написанных самостоятельно
-
Контрольные примеры работы пунктов проекта
-
Результаты выполнения пунктов проекта в виде копий экранов
-
Выводы
Таблица 7.1 – Задания на лабораторную работу |
|||||
№ |
Создание исходного массива |
Хранение исходного массива |
Числовые характеристики |
Получение нового массива |
Вывод нового массива |
0 |
Random |
TEdit |
Размах элементов (max-min) |
Удаление четных элементов из массива |
TMemo |
1 |
InputBox |
TMemo |
Разность сумм элементов в четных и нечетных позициях |
Оборот массива |
TEdit |
2 |
Random |
TEdit |
Определение позиций четных элементов |
Вставка элемента в заданную позицию |
TLabel |
3 |
InputBox |
TLabel |
Определение позиций элементов, которые меньше среднего арифметического |
Удаление заданного элемента из массива |
Show Message |
4 |
Random |
TMemo |
Разность сумм четных и нечетных элементов
|
Заданное число циклических сдвигов влево |
Show Message |
5 |
InputBox |
TLabel |
Количество четных и нечетных элементов |
Вставка суммы элементов в начало массива |
TMemo |
6 |
Random |
TMemo |
Средние арифметические четных и нечетных Элементов |
Заданное число циклических сдвигов вправо |
TEdit |
7 |
InputBox |
TMemo |
Поиск позиции заданного элемента |
Вставка среднего арифметического значения в середину массива |
TLabel |
8 |
Random |
TLabel |
Количество элементов больше и меньше среднего |
Вначале нечетные, затем четные |
Show Message |
9 |
InputBox |
TEdit |
Сумма элементов больше и меньше среднего |
Минимальный в начало, макси-мальный в конец |
TMemo |