Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KR 0201.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
145.92 Кб
Скачать

Федеральное агентство по образованию

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

(ГОУВПО «ВГТУ»)

Факультет вечернего и заочного обучения.

Кафедра «Автоматизированные и вычислительные системы»

Специальность «Вычислительные машины, комплексы,

системы и сети»

КОНТРОЛЬНАЯ РАБОТА

по дисциплине «Технология программирования»

Выполнил(а) студент(ка)

Группа:

ВМ-111

Зачетная книжка

511499

А.В. Воронцов

Подпись, дата

Инициалы, фамилия

Гребенникова Н.И.

Руководитель

Подпись, дата

Инициалы, фамилия

Оценка

Воронеж 2013

СОДЕРЖАНИЕ

ЗАДАНИЕ 4

ПРАКТИЧЕСКАЯ ЧАСТЬ 5

Разработка формы приложения для вычислений над матрицами 5

Описание процедур программы 5

TForm5.FormCreate - Процедура создания формы 5

TForm5.Ras - Процедура расчета значений и вывода результатов 5

Form5.ButtonRunClick - Процедура обработки кнопки «Вычислить» 6

Form5. ButtonClearClick - Процедура очистки результатов 6

TForm5.ButtonCloseClick - Процедура закрытия приложения 7

Снимки работы программы 8

8

8

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 14

ВВЕДЕНИЕ

В процессе выполнения контрольной работы необходимо:

- углубленно изучать наиболее важные вопросы, относящиеся к курсу технологии программирования, учится всесторонне анализировать процесс разработки программных систем и делать на основе этого правильные, научно обоснованные теоретические и практические выводы;

- приобретать опыт грамотного анализа научно-технической литературы, использования стандартов, справочников технической документации по математическому и программному обеспечению;

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

- овладеть навыками определения основных этапов и работ, выполняемых при проектировании программных средств.

Задание

Если все элементы матрицы одинаковые, то определить их сумму. Если все элементы матрицы разные, то вычислить среднее арифметическое. Осуществить данные вычисления отдельно для матриц D(3,4), F(2,3). Вывести матрицы и результаты вычислений.

Практическая часть Разработка формы приложения для вычислений над матрицами

На форму помещены три компонента TStringGrid. В первые два заносятся значения матриц, после чего необходимо нажать кнопку «Вычислить». Результаты вычислений передаются в третий компонент TStringGrid. Кнопка «Очистить» очищает только результаты вычислений, тем самым позволяя быстро проверить любые комбинации в матрицах не заполняя их снова. Кнопка «Закрыть» закрывает приложение.

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

Данная программа легко может модифицироваться на любую размерность матриц с минимальным изменением в коде: добавлением 4-х компонентов типа TEdit на ввод размерности матриц, в процедуре вычислений добавлением условия на проверку что имеет большую размерность столбцы или строки.

Внешний вид представлен на рис. 1.

Рис 1. Вид приложения

Описание процедур программы tForm5.FormCreate - Процедура создания формы

В ней создаются «заголовки» таблицы результатов простым присваиванием значений необходимым ячейкам StringGrid3.

TForm5.Ras - Процедура расчета значений и вывода результатов

Возможно, могла бы стать самой не «оптимизированной» частью программы. Но написана изначально в оптимизированном виде.

В ней использованы следующие виды оптимизации:

- количество строк и столбцов переданных матриц присваиваются переменным (xk и yk), чтобы их не вычислять при работе цикла перебора элементов массива. Также эти переменные используются в конце процедуры для расчета среднеарифметического значения элементов матрицы.

- Использование для переменной flag типа boolean, т.к. она принимает всего 2 значения.

- Основная экономия времени и тактов процессора - это уникальность цикла проверки матрицы на одинаковость элементов и подсчет суммы:

а) Цикл по столбцам экономит от 3 (для матрицы 2х3) до 4 (матрица 3х4) тактов, т.к. мы проверяем на 1 столбец меньше чем есть в матрице, а следовательно и на количество элементов принадлежащих этому столбцу (3-4). Итого 1такт+3-4такта экономии.

б) Также в цикле одновременно считается сумма и сравниваются элементы, что позволило сократить использование циклов в 2 раза для каждой матрицы, чем если бы мы делали эти вычисления по отдельности. Экономия около 12 тактов (2*4 на первой матрице и 2*2 вторая) только на инициализации циклов.

б) Небольшую экономию по времени работы цикла вносит вложенное условие на поиске несовпадения элементов матриц, тело которого выполняется пока не найдем первое несовпадение. Экономия условно от нуля до размерности матрицы (6-12 единиц)

- Так же производительность повышает то, что мы вычисляем среднее арифметическое значение элементов матрицы только по факту (вне тела цикла перебора матрицы), если ее элементы не равны.

После того как все эти вычисления произойдут по текущему значению переменной flag и имени матрицы, которую проверяли, заполняется таблица результатов.

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

Form5.ButtonRunClick - Процедура обработки кнопки «Вычислить»

При нажатии кнопки «Вычислить» вызывается 2 раза процедура TForm5.Ras, которой сначала передается первая матрица, потом вторая.

Form5. ButtonClearClick - Процедура очистки результатов

В цикле перебираются 4 ячейки StringGrid3 с присвоением им пустого значения. Можно оптимизировать, заменив на ручное присвоение пустых значений, т.к. цикл работает чуть больше по времени. Но выигрыш будет незначителен, возможно менее 5-10 тактов процессора (3 инициализации цикла и вычисления границ цикла), и пользователь программы не заметит.

TForm5.ButtonCloseClick - Процедура закрытия приложения

При нажатии кнопки «Закрыть» вызывается стандартная функция Close которая закрывает форму.

Снимки работы программы

Рис 2. Вычисления №1

Рис 3. Вычисления № 2.

Рис 4. Очистка результатов

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]