Задание2_Скорость_бега (Лабораторная работа №2)

2018-01-10СтудИзба

Описание файла

Файл "Задание2_Скорость_бега" внутри архива находится в папке "Лабораторная работа №2". Документ из архива "Лабораторная работа №2", который расположен в категории "". Всё это находится в предмете "вычислительный практикум" из 3 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "вычислительный практикум" в общих файлах.

Онлайн просмотр документа "Задание2_Скорость_бега"

Текст из документа "Задание2_Скорость_бега"

Задание 2

Скорость бега

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

Скорость должна иметь размерность км/час.

При вводе данных обеспечьте защиту от ввода недопустимых символов, для чего разработайте функции IsInt и IsFloat, которые нужно вызывать их из процедур обработки события KeyPress компонентов TEdit.

Обеспечьте возможность использования функций IsInt и IsFloat в других программах, для чего поместите их в отдельный модуль с именем my_unit. Используйте этот модуль в разрабатываемой программе.

Рис. 1. Окно программы вычисления скорости бега

Для начала работы над новой программой запустите Delphi. Если вы уже работаете в среде разработки и у вас загружен другой проект, выберите в меню File (Файл) команду New | Project (Создать | Проект).

Форма

Работа над новым проектом, так в Delphi называется разрабатываемое при­ложение, начинается с создания стартовой формы. Так на этапе разработки программы называют диалоговые окна.

Стартовая форма создается путем изменения значений свойств формы Form1 и добавления к форме необходимых компонентов (полей ввода и вы­вода текста, командных кнопок).

Свойства формы определяют ее внешний вид: размер, положение на экране, текст заголовка, вид рамки.

Для просмотра и изменения значений свойств формы и ее компонентов ис­пользуется окно Object Inspector.

Событие и процедура обработки события

Вид созданной формы подсказывает, как работает приложение. Очевидно, что пользователь должен ввести в поля редактирования исходные данные и щелкнуть мышью на кнопке Вычислить. Щелчок на изображении команд­ной кнопки — это пример того, что в Windows называется событием.

Событие (Event) — это то, что происходит во время работы программы. В Delphi каждому событию присвоено имя. Например, щелчок кнопкой мыши — это событие OnClick, двойной щелчок мышью — событие

OnDblClick.

В табл. В9 приведены некоторые события Windows.

Таблица В9. События
Событие Происходит

O nClick При щелчке кнопкой мыши

OnDblClick При двойном щелчке кнопкой мыши

OnMouseDown При нажатии кнопки мыши

OnMouseUp При отпускании кнопки мыши

OnMouseMove При перемещении мыши

OnKeyPress При нажатии клавиши клавиатуры

OnKeyDown При нажатии клавиши клавиатуры. События OnKeyDown и OnKeyPress — это чередующиеся, повторяющиеся события, которые происходят до тех пор, пока не будет отпущена удержи­ваемая клавиша (в этот момент происходит событие OnKeyUp)

OnKeyUp При отпускании нажатой клавиши клавиатуры

OnCreate При создании объекта (формы, элемента управления). Процедура

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

OnPaint При появлении окна на экране в начале работы программы, после

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

OnEnter При получении элементом управления фокуса

OnExit При потере элементом управления фокуса

Р еакцией на событие должно быть какое-либо действие. В Delphi реакция на событие реализуется как процедура обработки события. Таким образом, для того чтобы программа выполняла некоторую работу в ответ на действия пользователя, программист должен написать процедуру обработки соответ­ствующего события. Следует обратить внимание на то, что значительную часть обработки событий берет на себя компонент. Поэтому программист должен разрабатывать процедуру обработки события только в том случае, если реакция на событие отличается от стандартной или не определена. На­пример, если по условию задачи ограничений на символы, вводимые в поле Edit, нет, то процедуру обработки события onKeyPress писать не надо, т. к. во время работы программы будет использована стандартная (скрытая от программиста) процедура обработки этого события.

Методику создания процедур обработки событий рассмотрим на примере процедуры обработки события OnClick для командной кнопки Вычислить.

Чтобы приступить к созданию процедуры обработки события, надо сначала в окне Object Inspector выбрать компонент, для которого создается процеду­ра обработки события. Затем в этом же окне нужно выбрать вкладку Events (События).

Рис. 2. На вкладке Events перечислены события, которые может воспринимать компонент (в данном случае — командная кнопка)

В левой колонке вкладки Events (рис. 2) перечислены имена событий, которые может воспринимать выбранный компонент (объект). Если для со­бытия определена (написана) процедура обработки события, то в правой колонке рядом с именем события выводится имя этой процедуры.

Для того чтобы создать функцию обработки события, нужно сделать двой­ной щелчок мышью в поле имени процедуры обработки соответствующего события. В результате этого откроется окно редактора кода, в которое будет добавлен шаблон процедуры обработки события, а в окне Object Inspector рядом с именем события появится имя функции его обработки (рис. 3).

Delphi присваивает функции обработки события имя, которое состоит из двух частей. Первая часть имени идентифицирует форму, содержащую объ­ект (компонент), для которого создана процедура обработки события. Вто­рая часть имени идентифицирует сам объект и событие. В нашем примере имя формы — Form1, имя командной кнопки — Button1, а имя события — Click.

Рис. 3. Шаблон процедуры обработки события, сгенерированный Delphi

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

Функция Button1Click выполняет расчет скорости и выводит результат рас­чета в поле Label4. Исходные данные вводятся из полей редактирования Editl и Edit2 путем обращения к свойству Text. Свойство Text содержит строку символов, которую во время работы программы введет пользователь. Для правильной работы программы строка должна содержать только цифры. Для преобразования строки в числа в программе используются функции StrToInt и StrToFloat. Функция StrToInt проверяет символы строки, пе­реданной ей в качестве параметра (Editl.Text— это содержимое поля Editl), на допустимость и, если все символы верные, возвращает соответст­вующее число. Это число записывается в переменную dist. Аналогичным образом работает функция StrToFloat, которая возвращает дробное число, соответствующее содержимому поля Edit2. Это число записывается в пере­менную t.

После того как исходные данные будут помещены в переменные dist и t, выполняются подготовительные действия и расчет. Первоначально с ис-пользованием функции Trunc, которая "отбрасывает" дробную часть числа, выделяется целая часть переменной t — это количество минут. Значением выражения Trunc(t*100) mod 100 является количество секунд. (При тестировании программы проверьте результат при t = 3,05 и внесите соответствующие изменения в программу).

После того как все данные готовы, выполняется расчет. Так как скорость должна быть выражена в км/час, то значения дистанции и времени, выра­женные в метрах и минутах, преобразуются в километры и часы.

Вычисленное значение скорости выводится в поле Label4 путем присваива­ния значения свойству Caption. Для преобразования чисел в строки исполь­зуются функции IntToStr и FloatToStr.

В результате нажатия кнопки Завершить программа должна завершить рабо­ту. Чтобы это произошло, надо закрыть, убрать с экрана, главное окно про­граммы. Делается это при помощи метода close. Процедура обработки со­бытия OnClick для кнопки Завершить приведена ниже

// нажатие кнопки Завершить

procedure TForml.Button2Click(Sender: TObject); begin

Form1.Close;

end;

Шаблоны кода

В процессе набора текста удобно использовать шаблоны кода (Code Templates). Шаблон кода — это инструкция программы, записанная в об­щем виде. Например, шаблон для инструкции case выглядит так:

case of

: ;

: ;

else;

end;

Редактор кода предоставляет программисту большой набор шаблонов: объ­явления массивов, классов, функций, процедур, инструкций выбора (if, case), циклов (for, while). Для некоторых инструкций, например if и while, есть несколько вариантов шаблонов.

Для того чтобы в процессе набора текста программы воспользоваться шаб­лоном кода и вставить его в текст программы, нужно нажать комбинацию клавиш <Ctrl>+<J> и из появившегося списка выбрать нужный шаблон. Выбрать шаблон можно обычным образом, прокручивая список, или вводом первых букв имени шаблона (имена шаблонов в списке выделе­ны полужирным). Выбрав в списке шаблон, нужно нажать <Enter>, и шаб­лон будет вставлен в текст программы.

Структура проекта

Проект Delphi представляет собой набор программных единиц — модулей. Один из модулей — главный, содержит инструкции, с которых начинается выполнение программы. Главный модуль приложения полностью формиру­ется Delphi.

Главный модуль представляет собой файл с расширением dpr. Для того что­бы увидеть текст главного модуля приложения, нужно из меню Project вы­брать команду View Source.

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

Листинг 1. Главный модуль приложения Скорость бега

program vrun;

uses

Forms,

vrun1 in 'vrun1.pas' {Form1};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(Tform1, Form1);

Application.Run;

end.

Начинается главный модуль словом program, за которым следует имя про­граммы, совпадающее с именем проекта. Имя проекта задается в момент сохранения проекта, и оно определяет имя создаваемого компилятором ис­полняемого файла программы. Далее за словом uses следуют имена исполь­зуемых модулей: библиотечного модуля Forms и модуля формы vrunl.pas.

Строка {$r *.res}, которая похожа на комментарий, — это директива ком­пилятору подключить файл ресурсов. Файл ресурсов содержит ресурсы при­ложения: пиктограммы, курсоры, битовые образы и др. Звездочка показыва­ет, что имя файла ресурсов такое же, как и у файла проекта, но с расширением res.

Файл ресурсов не является текстовым файлом, поэтому просмотреть его с помощью редактора текста нельзя. Для работы с файлами ресурсов исполь­зуют специальные программы, например, Resource Workshop. Можно также применять входящую в состав Delphi утилиту Image Editor, доступ к которой можно получить выбором из меню Tools команды Image Editor.

Исполняемая часть главного модуля находится между инструкциями begin и end. Инструкции исполняемой части обеспечивают инициализацию при­ложения и вывод на экран стартового окна.

Помимо главного модуля, каждая программа включает в себя еще как ми­нимум один модуль формы, который содержит описание стартовой формы приложения и поддерживающих ее работу процедур. В Delphi каждой форме соответствует свой модуль. Начинается модуль словом unit, за которым следует имя модуля. Именно это имя упоминается в списке используемых модулей в инструкции uses главного модуля приложения, текст которого приведен в листинге 1.

Модуль состоит из следующих разделов:

  • интерфейса;

  • реализации;

  • инициализации.

Раздел интерфейса (начинается словом interface) сообщает компилятору, какая часть модуля является доступной для других модулей программы. В этом разделе перечислены (после слова uses) библиотечные модули, ис­пользуемые данным модулем. Также здесь находится сформированное Delphi описание формы, которое следует за словом type.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5140
Авторов
на СтудИзбе
441
Средний доход
с одного платного файла
Обучение Подробнее