Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодичкаРГР_Программирование.doc
Скачиваний:
5
Добавлен:
17.11.2019
Размер:
1.13 Mб
Скачать

3.4.3Рекомендации по перестановкам элементов матрицы

Есть задачи, в которых требуется менять местами элементы матрицы. Ниже перечислены некоторые из таких задач.

  • Транспонирование матрицы (поворот вокруг главной диагонали).

  • Поворот вокруг вспомогательной диагонали.

  • Поворот вокруг горизонтальной оси.

  • Поворот вокруг вертикальной оси.

Для решения всех этих задач требуется двойной цикл. Внешний цикл обычно организуется по всем номерам строк или столбцов, иногда, за исключением первого или последнего номера. Внутренний же цикл обеспечивает перебор только половины элементов, которые расположены с одной стороны от оси поворота. Тело цикла содержит операторы, которые обеспечивают обмен значениями между текущим элементом матрицы и симметричным ему. Для организации обмена удобнее всего использовать промежуточную переменную.

Основная трудность, возникающая при решении этих задач, это определение индексов элемента, симметричного текущему элементу.

В таблице 3.6 приведены параметры циклов, обеспечивающих перевороты элементов матрицы вокруг различных осей симметрии. Индексные выражения, приведенные в таблице, составлены в предположении, что нижние индексы строк и столбцов раны единице, верхние индексы столбцов и строк соответственно равны nCol и nRow, а m – имя матрицы.

Таблица 3.6 – Параметры циклов при перестановках элементов матрицы

Линия симметрии при повороте

Внешний цикл

Внутренний цикл

Индексы элемента

текщ.

симметр.

Главная диагональ

от i=2 до nRow

По элементам строки (индексы столбца)

от j = 1 до i-1

[ i, j ]

[ j, i ]

Вспомога-тельная диагональ

По строкам,

от i=1 до nRow -1

от j = 1 до nCol - i

[ i, j ]

[nRow–j +1, nCol – i+1]

Горизонталь-ная ось

По строкам,

от i=1 до nRow div 2

По элементам строки (индексы столбца)

от j = 1 до nCol

[ i, j ]

[nRow –i+1, j ]

Вертикальная ось

По строкам,

от i=1 до nRow

По элементам строки (индексы столбца)

от j = 1 до nCol div 2

[ i, j ]

[ i,

nCol – j+1 ]

Содержание отчета

  • Наименование работы.

  • Цель работы.

  • Схемы алгоритмов для процедуры и функций, обеспечивающих работу с массивами.

  • Тексты модулей проекта с пояснениями в виде комментариев.

  • Результаты тестирования проектов в виде копий формы с результатами.

  • Выводы.

Рекомендованая литература

  1. Культин Н. Delphi 6. Программирование на Object Pascal. – СПб.:БХВ-Петербург,2002.

  2. Ставровский А.Б. Турбо Pascal 7.0/ Учебник. – К.: BHV, 2000.

4РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА № 4. РАБОТА С ТИПИЗИРОВАННЫМИ ФАЙЛАМИ

Цели работы:

  • получить навыки работы с записями в Object Pascal;

  • получить навыки работы с типизированными файлами в Object Pascal;

  • освоить алгоритмы обработки типизированных файлов.

Задания для работы

В работе следует создать проект по обработке файла, который содержит записи, соответствующие варианту задания из таблицы 4.1. Номер варианта выбирается по последней цифре номера зачетной книжки.

Таблица 4.1 – Задания для расчетно-графической работы

Содержание записей проекта и требования к обработке

1

2

0

Номер комнаты в общежитии, количество компьютеров, наличие холодильника, количество жильцов.

Сортировка обменом по номеру комнаты. Комплексная сортировка по количеству жильцов ↓ + по наличию холодильника ↓ + по количеству компьютеров ↓.

Выборка комнат, где на каждого жильца не менее 1-го компьютера.

Подсчет общего числа компьютеров и холодильников.

1

Фамилия работника, оклад, надбавка в целых %, премия.

Сортировка выбором по фамилии. Комплексная сортировка по суммарной выплате ↑ + по фамилиям ↓.

Выборка лиц, у которых суммарная выплата выше заданного значения.

Подсчет общей суммы выплат.

2

Фамилия студента, дата (в виде строки символов гг-мм-дд), расходы на завтрак, обед, ужин в студенческой столовой.

Комплексная сортировка вставкой по дате ↓ + по фамилии ↓. Комплексная сортировка по фамилии ↓ + по сумме расходов за день ↑ .

Выборка данных о ежедневных суммарных расходах, для студента.

Подсчет суммарных расходов студента за месяц.

3

Фамилия студента, группа, контракт или бюджет, средний балл.

Комплексная сортировка обменом по группе ↓ + по фамилии ↓. Комплексная сортировка по полю контракт или бюджет + по среднему баллу.Выборка студентов, у которых средний балл ниже заданного.

Вычисление среднего балла для заданной группы.

Продолжение таблицы 4.1

1

2

4

Номер комнаты в общежитии, жилая площадь, число жильцов, наличие балкона.

Сортировка выбором по номеру комнаты. Комплексная сортировка по наличию балкона + по площади, приходящейся на одного жильца.

Выборка комнат, где площадь на одного жильца меньше санитарной нормы.

Подсчет количества жильцов в общежитии.

5

Номер корпуса, номер аудитории, количества мест, наличие экрана.

Комплексная сортировка вставкой по номеру корпуса + номер аудитории. Комплексная сортировка по наличию экрана + количество мест.

Выборка аудиторий с ТСО с числом мест не менее заданного.

Подсчет общего количества мест в заданном корпусе.

6

Фамилия спортсмена, результат на 100-метровке, результат по прыжкам в длину, результат по прыжкам в высоту.

Сортировка обменом по каждому виду и определение места спортсмена в данном виде.

Сортировка по сумме мест во всех видах.

7

Дата (в виде строки символов гг-мм-дд), температура воздуха днем, атмосферное давление, влажность.

Сортировка выбором по дате. Комплексная сортировка по температуре + по давлению + по влажности.

Определение среднего арифметического для температуры заданного месяца.

Вывод дней месяца, когда температура превышала среднее значение.

8

Фамилия больного, номер палаты, температура, давление, пульс.

Сортировка вставкой по фамилии. Комплексная сортировка по палате + по температуре + по давлению + по частоте пульса.

Подсчет числа больных с температурой выше заданной.

Вывод списка больных с давлением выше допустимого.

9

Группа, фамилия старосты, количество контрактников, количество бюджетников.

Сортировка обменом по группам. Комплексная сортировка по общему количеству студентов в группе + по количеству бюджетников.

Вывод перечня групп с общим количеством студентов.

Подсчет общего количества контрактников и бюджетников.

Создаваемый проект должен обеспечить:

  • Отображение записей файла в StringGrid.

  • Добавление группы записей из StringGrid к файлу.

  • Сохранение файла под другим именем

  • Поиск записи по значению одного из полей.

  • Удаление из файла записи, соответствующей заданному значению одного из полей.

  • Получение какой-нибудь интегральной оценки для всех записей или группы записей.

  • Сортировку файла по какому-нибудь признаку.

  • Поиск записи в упорядоченном файле.

  • Вставку записи в упорядоченный файл.

  • Удаление записи из упорядоченного файла.

Обработку записей следует проводить только в файле. Компоненты TStringGrid использовать только для считывания записей из файла и вывода результатов.