Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Завершение работы над интерфейсом↑ Стр 1 из 7Следующая ⇒ Содержание книги
Поиск на нашем сайте
Чернигов ЧГТУ 2011 Програмування. Методичні вказівки до виконання розрахунково-графічних робіт з дисципліни «Програмування» для студентів для студентів напряму підготовки 6.050102 – „Комп’ютерна інженерія”. /Укл.: Бальченко І.В., Бивойно Т.П., Гора Н.О.. – Чернігів: ЧДТУ, 2011. – 56 с. Рос. мовою.
Составители: Бальченко Ирина Владимировна, ассистент Бивойно Тарас Павлович, ассистент Гора Наталья Олеговна, старший преподаватель
Ответственный за выпуск: Бивойно П.Г., доцент кафедры информационных и компьютерных систем, кандидат технических наук,
Рецензент: Нестеренко С.А., кандидат технических наук, доцент кафедры информационных и компьютерных систем Черниговского государственного технологического университета
СОДЕРЖАНИЕ Введение. 5 1 РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА № 1. ФУНКЦИИ И ПРОЦЕДУРЫ ДЛЯ РАСЧЕТОВ ПО ФОРМУЛАМ.. 6 1.1 ЗАДАНИЯ К РАСЧЕТНО-ГРАФИЧЕСКОЙ РАБОТЕ. 6 1.2 ПРИМЕР СОЗДАНИЯ ПРОЕКТА.. 7 1.2.1 Создание интерфейса. 7 1.2.1.1 Компонент OLE-контейнер. 7 1.2.1.2 Компонент Group Box. 8 1.2.1.3 Компонент Memo. 8 1.2.1.4 Завершение работы над интерфейсом. 8 1.2.2 Создание процедур и функций. 9 1.2.2.1 Процедура очистки протокола. 9 1.2.2.2 Процедура инициализации формы.. 9 1.2.2.3 Процедура считывания коэффициентов уравнения. 11 1.2.2.4 Функция для расчета по формуле. 11 1.2.2.5 Процедура вызова выполнения расчета по формуле. 12 1.2.3 Использование дополнительного модуля. 14 1.2.4 Форматирование результатов расчетов. 14 1.2.5 Контольный пример. 15 1.3 Содержание отчета. 16 Рекомендованая литература. 16 2 РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА № 2. ПРОГРАММИРОВАНИЕ ЦИКЛОВ 17 2.1 ЗАДАНИЯ К РАСЧЕТНО-ГРАФИЧЕСКОЙ РАБОТЕ. 17 2.2 РЕКОМЕНДАЦИИ ПО СОСТАВЛЕНИЮ АЛГОРИТМОВ РЕШАЕМЫХ ЗАДАЧ. 20 2.2.1 Итерационные алгоритмы.. 20 2.2.2 Алгоритмы вычисления сумм бесконечных рядов. 21 2.2.3 Алгоритмы обработки последовательностей целых чисел. 22 2.2.4 Алгоритмы табулирования значений функций. 24 2.3 ПРИМЕР СОЗДАНИЯ ПРОЕКТА.. 25 2.3.1 Компоненты для создания интерфейса проекта. 25 2.3.1.1 Компоненты PageControl и TabSheet 26 2.3.1.2 Компонент CheckBox. 26 2.3.1.3 Дополнительные требования к интерфейсу. 26 2.3.2 Создание закладки для вычисления корня. 27 2.3.2.1 Интерфейс страницы вычисления корня. 27 2.3.2.2 Процедура вычисления корня. 27 2.3.3 Создание закладки для вычисления синуса. 28 2.3.3.1 Интерфейс страницы вычисления синуса. 28 2.3.3.2 Процедура вычисления синуса. 29 2.3.4 Создание закладки «Табулирование функции». 30 2.3.4.1 Интерфейс странички «Табулирование функции». 30 2.3.4.2 Создание процедуры табулирования функции. 30 2.3.5 Создание закладки «Обработка последовательности целых чисел». 31 2.3.5.1 Интерфейс странички «Обработка последовательности целых чисел» 31 2.3.5.2 Создание процедуры обработки последовательности целых чисел 32 Рекомендованая литература. 33 3 РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА № 3. ОБРАБОТКА МАССИВОВ.. 34 3.1 Задания для работы с одномерным массивом. 34 3.2 Задания на сортировку одномерных массивов. 35 3.3 Задания на обработку двумерных массивов. 37 3.4 Краткая характеристика вспомогательных модулей. 39 3.4.1 Интерфейс модуля для работы с одномерными массивами. 39 3.4.2 Интерфейс модуля для работы с двумерными массивами. 40 3.4.3 Рекомендации по перестановкам элементов матрицы.. 41 3.5 Содержание отчета. 42 Рекомендованая литература. 42 4 РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА № 4. РАБОТА С ТИПИЗИРОВАННЫМИ ФАЙЛАМИ.. 43 4.1 Задания для работы.. 43 4.2 Перечень основных процедур и функций для работы с типизированными файлами. 45 4.3 ПРИМЕР Создание проекта «Результаты аттестации». 45 4.3.1 Требования к проекту. 46 4.3.2 Интерфейс пользователя для проекта. 46 4.3.3 Определение типов данных. 48 4.3.4 Настройка интерфейса пользователя. 48 4.3.5 Вспомогательные процедуры для работы с файлом. 49 4.3.5.1 Процедура выбора имени файла. 49 4.3.5.2 Процедура открытия файла. 50 4.3.5.3 Процедура вывода файла в StringGrid. 50 4.3.6 Процедуры работы со StringGrid1. 51 4.3.7 Процедуры реализации пунктов меню fileMenu. 52 4.3.7.1 Добавление данных из StringGrid1 в файл. 52 4.3.7.2 Поиск записи по фамилии. 53 4.3.7.3 Удаление записи по фамилии. 54 4.3.7.4 Сохранение файла под другим именем. 55 4.4 Содержание отчета. 56 Рекомендованая литература. 56 Введение Понятие расчетно-графическая работа пришло в высшую школу из дисциплин учебных планов инженерно-механических специальностей. В рамках такой работы студент должен был выполнить некоторые расчеты и графические построения (чертеж, эскиз, диаграмму), необходимые для решения некоторой инженерной задачи, например, рассчитать вал на прочность. Однако затем задания, связанные с решением инженерных задач стали вводить в другие дисциплины. Появились расчетно-графические работы по химии, бухучету и др. В этих заданиях, как правило, никаких графических элементов уже не было, остались только расчеты, но название сохранилось. В курсе «Программирование» выполнение расчетно-графической работы предполагает создание небольшого программного проекта, где расчеты и графика имеют вспомогательное значение. Это расчет контрольного примера, изображение схемы алгоритма. Главным в нашей расчетно-графической работе является написание и отладка программного проекта. Выполнение расчетно-графической работы является частью самостоятельной работы студентов над дисциплиной. В процессе выполнения работы закрепляются ключевые вопросы курса программирования, приобретаются практические навыки построения и отладки программ, проверяется степень усвоения основных положений предмета. Студенты знакомятся с типовыми решениями некоторых задач программирования. Расчетно-графические работы выполняются на персональных компьютерах в системе программирования Delphi. Когда работа закончена, студент должен защитить ее. Защита заключается в ответах на вопросы по теме работы и внесении некоторых изменений в разработанный проект, в присутствии преподавателя. Отдельные отчеты по РГР не составляются, так как они являются частями отчетов по лабораторным работам, которые предусматривают выполнение РГР как составной части работы. За лабораторную работу студент может получить до трех баллов, с учетом своевременности и качества выполнения. Номер варианта задания для РГР выбирается по последней цифре номера зачетной книжки студента (номер индивидуального плана студента) 1 РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА № 1. Цели работы: – получить навыки создания простейших проектов, использующих пользовательские библиотеки процедур и функций; – создать приложение, обеспечивающее расчет по формуле. ЗАДАНИЯ К РАСЧЕТНО-ГРАФИЧЕСКОЙ РАБОТЕ В этой работе создается приложение, которое должно обеспечить расчеты по некоторой формуле и регистрацию результатов расчетов в компоненте типа TMemo. Расчетную формулу следует выбрать из таблицы 1.1 в соответствии с последней цифрой номера зачетной книжки. Функция и процедура для расчета по заданной формуле должны находиться в отдельном модуле
ПРИМЕР СОЗДАНИЯ ПРОЕКТА Ниже рассматривается пример создания приложения, которое подобно тому, которое следует разработать. Разница заключается только в расчетной формуле и именах исходных данных. Предполагаемый интерфейс этого приложения, в котором после запуска было выполнено пять расчетов, представлен на рисунке 1.1. Рисунок 1.1- Интерфейс создаваемого приложения Создание интерфейса Откройте новый проект в Delphi. Установите значение свойства Name появившейся формы как frmFormula, а свойства Caption как «Расчет по формуле». Компонент OLE-контейнер OLE-контейнеры используются для того, чтобы из приложения, созданного в Delphi, можно было бы обращаться к стандартным приложениям Microsoft. Мы воспользуемся контейнером для того, чтобы разместить в нем расчетную формулу. Компонент OLE-контейнер расположен на закладке System, палитры компонентов. Расположите контейнер в том месте формы, где должна быть формула и растяните его до нужных размеров. Для того чтобы вызвать список объектов, которые можно вставить в контейнер, сделайте двойной щелчок в поле контейнера, или вызовите из контекстного меню функцию Insert Object. В появившемся списке выберите построитель формул (Microsoft Equation 3.0) и нажмите ОК. В результате, нужный объект помещается в контейнер, хотя вид контейнера при этом может не измениться. Если построитель формул не появился на экране, сделайте двойной щелчок в поле контейнера, или вызовите из контекстного меню функцию «Открыть». Далее, используя средства построителя, наберите формулу свою формулу и закройте построитель. Формула должна появиться в поле контейнера. Компонент Group Box Компоненты этого типа используются для группировки других компонент по некоторому признаку. Группу компонентов можно перемещать по форме, копировать. Можно управлять доступностью или видимостью элементов группы и т.п. Иногда группировку используют просто для улучшения внешнего вида интерфейса. Компонент Group Box находится на закладке Standard палитры компонентов. Расположите на форме два объекта Group Box и запишите в свойстве Caption одного их них – «Исходные данные к расчету», а для другого – «Протокол выполненных расчетов». Расположите в группе «Исходные данные к расчету» компоненты TEdit для ввода исходных данных Присвойте этим компонентам имена, которые будут соответствовать именам переменных в формуле. В нашем примере компонентам присвоены такие имена: edtA, edtX, edtN. Над компонентами расположите надписи соответствующие именам переменных в формуле. Компонент Memo Компонент Memo можно использовать для работы с многострочным текстом. В нашем проекте в поле этого компонента будут регистрироваться результаты вычислений. Компонент можно найти на закладке Standard палитры компонент. Расположите компонент Memo на форме или внутри группы «Протокол выполненных расчетов», и присвойте ему имя memProtocol. Присвойте свойству Scroll Bars значение ssVertical. В результате в поле должна появиться полоса вертикальной прокрутки. Свойству Read Only присвойте значение True. Создание процедур и функций Процедура очистки протокола Для очистки поля Memo можно использовать событие onClick для кнопки «Очистить протокол». Процедура обработки этого события представлена на рисунке 1.3. Рисунок 1.3 - Процедура очистки протокола В единственной инструкции этой процедуры вызывается процедура Clear (очистить) объекта memProtocol. Содержание отчета – Наименование работы. – Цель работы. – Задание к работе. – Перечень компонент, использованных для создания интерфейса пользователя, с описанием их основных свойств. – Тексты созданных модулей с пояснениями в виде комментариев для всех основных элементов модулей. – Контрольные примеры. – Результаты тестирования проекта, в виде рисунка с изображением интерфейса приложения с протоколом выполненных расчетов. – Выводы об особенностях программирования расчетов по формулам.
Рекомендованая литература 1. Культин Н. Delphi 6. Программирование на Object Pascal. – СПб.:БХВ-Петербург,2002. 2. Ставровский А.Б. Турбо Pascal 7.0/ Учебник. – К.: BHV, 2000.
2 РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА № 2. Цели работы: – ознакомиться с принципами использования циклов;. – освоить изображение схем алгоритмов; – разработать проект, обеспечивающий решение задач, требующих многократных повторений некоторых действий. ЗАДАНИЯ К РАСЧЕТНО-ГРАФИЧЕСКОЙ РАБОТЕ В работе создается приложение, в котором решается четыре задачи: – решение трансцендентного уравнения методом итераций; – вычисление суммы бесконечного ряда с заданной точностью; – обработка последовательности целых чисел; – табулирование значений некоторой функции. Задания следует выбирать в соответствии с последней цифрой номера зачетной книжки из таблиц 2.1 - 2.3, а также таблицы 1.1 (формулы для задачи табулирования функции).
РЕКОМЕНДАЦИИ ПО СОСТАВЛЕНИЮ АЛГОРИТМОВ РЕШАЕМЫХ ЗАДАЧ Итерационные алгоритмы Алгоритм решения уравнений, приведенных в таблице 2.1 заключается в следующем. Берется какое-нибудь приближенное значение корня уравнения х0 (начальное приближение) и подставляется в итерационную формулу. Полученное по итерационной формуле новое приближенное значение корня сравнивается с предыдущим. Если эти значения существенно отличаются друг от друга, то новое приближенное значение подставляется в итерационную формулу вместо старого и получается новое приближенное значение. Так продолжается до тех пор, пока новое и старое приближения станут достаточно близкими дуг к другу. Примером итерационного алгоритма может служить алгоритм вычисления кубического корня методом Ньютона, который представлен на рисунке 2.1. Рисунок 2.1 – Схема итерационного алгоритма
Суть метода заключается в том, что приближенное значение корня находится по формуле 2.1. (2.1) где а – число, из которого извлекается корень, xold – приближенное значение корня, xnew – более точное, чем xold значение корня. Таким образом, формула позволяет последовательно уточнять значения корня, используя предыдущий результат. В качестве начального значения для x можно взять число, из которого извлекается корень. Вычисления проводятся обычно до тех пор, пока разность между двумя последовательными приближениями по абсолютной величине не станет меньше некоторого, наперед заданного, достаточно малого числа. Для реализации этого алгоритма используется цикл REPEAT. Схема алгоритма, реализующего этот метод, представлена на рисунке 2.1. В алгоритме предусмотрено прерывание цикла с помощью инструкции break в том случае, если переменная Xold равна нулю, для того, чтобы исключить деление на 0. ПРИМЕР СОЗДАНИЯ ПРОЕКТА В этом проекте реализуются разработанные выше алгоритмы решения уравнения методом итераций, вычисления суммы бесконечного ряда, обработки последовательности целых чисел и табулирования функции, требующие циклического повторения некоторых вычислений. Компонент CheckBox Этот компонент используется в проекте для того, чтобы управлять выводом последовательных приближений (промежуточных значений результата) в поле Memo. Основное свойство этого компонента Checked может принимать значения true или false (включено или выключено). Анализируя это свойство в программе, мы можем управлять ходом вычислений. В нашем проекте компоненту CheckBox присвоим имя CheckSteps. 2.3.1.3 Дополнительные требования к интерфейсу В проекте предполагается ввод большого количества числовых исходных данных. Поэтому в проекте целесообразно обеспечить контроль ввода данных в текстовые поля, используя событие onKeyPress и процедуру TestRealKey, созданную в четвертой лабораторной работе. Эта процедура должна была быть создана во время лабораторных работ и храниться в модуле UnitDop. В этом же модуле должна быть и функция для расчета по формуле, соответствующей вашему варианту. Если вы не сохранили модуль, создайте процедуру и функцию заново и включите ее в модуль. Подключите модуль UnitDop к проекту. Напишите процедуру инициализации всех закладок формы, которая обеспечит заполнение полей ввода данными, которые соответствуют контрольным примерам. Это ускорит отладку.
Процедура вычисления корня Следует заметить, что для вычисления корня кубического правильнее было бы написать функцию, или процедуру, которая возвращала бы значение корня. У Вас будет возможность написать их при защите работы. Мы же напишем процедуру, которая будет вызываться по событию onClick для кнопки «Найти корень кубический». Рассматриваемая процедура, представленная на рисунке 2.6. Рисунок 2.6 - Процедура вычисления кубического корня
Эта процедура, ничего не возвращает, но она вычисляет корень и выводит его в текстовое поле для результата. Кроме того, для проверки, она выводит значение результата, возведенное в куб, что позволяет контролировать правильность вычисления корня. Процедура также обеспечивает вывод последовательных приближений в компонент MemoSteps. Первые инструкции процедуры обеспечивают ввод значения числа, из которого вычисляется корень, и значение точности вычислений. Затем реализуется алгоритм, рассмотренный в пункте 2.2.1. Внутри цикла, после вычисления очередного приближения, дополнительно включена инструкция для вывода последовательных приближений. Процедура вычисления синуса Следует заметить, что для вычисления синуса, так же как и в предыдущем случае, правильнее было бы написать функцию, или процедуру, которая возвращала бы значение корня. Мы же напишем процедуру, которая будет вызываться по событию onClick для кнопки «Синус». Рассматриваемая процедура, представленная на рисунке 2.8. Рисунок 2.8 - Процедура вычисления синуса Процедура ничего не возвращает, но она вычисляет синус и выводит его в текстовое поле для результата. Кроме того, она, для проверки, выводит значение синуса, найденное с помощью стандартной процедуры. Перед вычислением синуса в процедуре добавлен цикл уменьшения значения х. Это сделано для того, чтобы избежать переполнения или потери значащих цифр при больших значениях х. В этом цикле переменная х уменьшается каждый раз на величину периода синуса, который равен 2π. Цикл работает до тех пор, пока абсолютная величина х больше, чем 2π. Процедура также обеспечивает вывод последовательных значений членов и суммы ряда в компонент MemoSteps. Задания для работы с одномерным массивом Обработка одномерных массивов выполняется в соответствии с требованиями варианта из таблицы 3.1. Номер варианта выбирается по последней цифре номера зачетной книжки. Главное меню закладки должно включать следующие пункты: – создание массива, – получение числовых характеристик массива, – формирование нового массива. На закладке должны быть поля для ввода количества элементов массива и предельного значения величины числа. Вывод других характеристик по выбору разработчика. Компоненты для хранения исходного массива и массива, получаемого в результате обработки, должны соответствовать варианту задания. Глобальные переменные для хранения массива и количества данных в нем использовать не следует. При выполнении каждого пункта меню всю необходимую информацию считывать с формы.
Примеры решения подобных задач можете найти в примерах к лекциям. При разработке можно использовать процедуры и функции модуля UnitArrayDop. Задания на сортировку одномерных массивов Закладка для сортировки и работы с упорядоченным одномерным массивом создается в соответствии с требованиями варианта из таблицы 3.2. Номер варианта выбирается по последней цифре номера зачетной книжки. Главное меню проекта должно включать следующие пункты: – создание массива; – сортировка массива; – вставка элемента в упорядоченный массив; – удаление элемента из упорядоченного массива;. На форме должно быть поле для ввода количества элементов массива и поле для максимального значения числа в массиве. Ввод удаляемого и вставляемого элемента на усмотрение разработчика. Для этого можно использовать компонент типа TEdit или функцию InputBox.
Компоненты для хранения исходного массива и массива, получаемого в результате обработки, должны соответствовать варианту задания. Глобальные переменные для хранения массива и количества данных в нем использовать не следует. При выполнении каждого пункта меню всю необходимую информацию считывать с формы. Студенты, для которых реализация сортировки по усложненному правилу окажется сложной, могут сортировать массив по обычному правилу на возрастание или убывание, но в этом случае оценка за проект будет ниже.
Задания на обработку двумерных массивов Варианты заданий приведены в таблицах 3.3, 3.4 и 3.5. Номер варианта выбирается в соответствии с последней цифрой номера зачетной книжки. Интерфейс соответствующей закладки должен обеспечивать тестирование заданий, которые приведены ниже. Все компоненты интерфейса выбирайте по своему усмотрению. Примеры решения подобных задач можете найти в примерах к лекциям и модуле UnitMatrixDop.
Рекомендации по перестановкам элементов матрицы Есть задачи, в которых требуется менять местами элементы матрицы. Ниже перечислены некоторые из таких задач. – Транспонирование матрицы (поворот вокруг главной диагонали). – Поворот вокруг вспомогательной диагонали. – Поворот вокруг горизонтальной оси. – Поворот вокруг вертикальной оси. Для решения всех этих задач требуется двойной цикл. Внешний цикл обычно организуется по всем номерам строк или столбцов, иногда, за исключением первого или последнего номера. Внутренний же цикл обеспечивает перебор только половины элементов, которые расположены с одной стороны от оси поворота. Тело цикла содержит операторы, которые обеспечивают обмен значениями между текущим элементом матрицы и симметричным ему. Для организации обмена удобнее всего использовать промежуточную переменную. Основная трудность, возникающая при решении этих задач, это определение индексов элемента, сим
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-02-07; просмотров: 203; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.112.208 (0.01 с.) |