Опубликован: 10.04.2015 | Уровень: для всех | Доступ: свободно | ВУЗ: Компания ALT Linux
Лекция 1:

Введение. Средства разработки программ на языке Free Pascal

Лекция 1: 123456 || Лекция 2 >
1.4.10 Полезная программа

Итак, первая программа написана. Она не несёт особой смысловой нагрузки. Главная ее задача — показать, что же такое визуальное программирование. Следующая программа также будет несложной, но полезной. Мы автоматизируем процесс перевода старой русской меры веса в современную. Эта задача формулируется так: выполнить перевод пудов и фунтов в килограммы, если известно, что 1 пуд = 40 фунтам = 16.38 кг.

Итак, наша программа должна позволить пользователю ввести два числа (пуды и фунты) и после щелчка по кнопке сообщить, каково значение в килограммах.

Создадим новый проект, выполнив команду Проект — Создать проект..., и сохраним его в папке Primer_2 командой Проект — Сохранить проект как...

Воспользуемся вкладкой Standard панели компонентов и разместим на форме следующие компоненты: четыре объекта типа надпись Label (этот компонент используется для размещения в окне не очень длинных однострочных надписей); два поля ввода Edit (это редактируемое текстовое поле, предназначенное для ввода, отображения или редактирования одной текстовой стоки); одну кнопку Button (этот компонент обычно используют для реализации некоторой команды). Компоненты должны располагаться на форме примерно так, как показано на рис. 1.44.

Конструирование формы

Рис. 1.44. Конструирование формы
Изменение свойств формы и ее компонентов

Рис. 1.45. Изменение свойств формы и ее компонентов

В первой надписи будет храниться текст "Меры веса". Две надписи Label2 и Label3 нужны для пояснения того, какие именно данные должны вводиться, надпись Label4 понадобится для вывода результата. В поля ввода Edit1 и Edit2 будут введены конкретные значения: вес в пудах и фунтах. Вычисление веса в килограммах произойдёт при щелчке по кнопке Button1 и будет выведено в Label4. Изменим свойства формы и размещённых на ней компонентов в соответствии с табл. 1.1, табл. 1.2, табл. 1.3, табл. 1.4. После всех изменений форма будет иметь вид, представленный на рис. 1.45.

Таблица 1.1. Значение свойств формы
Свойство Значение Описание свойства
Caption Перевод из старой русской меры веса в современную Заголовок формы
Height 230 Высота формы
Width 400 Ширина формы
Font.Name Arial Название шрифта
Font.Size 10 Размер шрифта
Таблица 1.2. Свойства компонентов типа надпись
Свойство Label1 Label2 Label3 Label4 Описание свойства
Caption Меры веса пуды фунты В кг: Заголовок компонента
Height 15 15 15 15 Высота компонента
Width 60 30 35 85 Ширина компонента
Top 20 50 105 25 Координата верхнего края
Left 25 115 115 200 Координата левого края
Таблица 1.3. Свойства компонентов поле ввода
Свойство Edit1 Edit2 Описание свойства
Text пробел пробел Текст в поле ввода
Height 25 25 Высота компонента
Width 135 135 Ширина компонента
Top 40 95 Координата верхнего края
Left 175 175 Координата левого края
Таблица 1.4. Свойства компонента кнопка
Свойство Значение Описание свойства
Caption ВЫЧИСЛИТЬ Текст на кнопке
Height 25 Высота компонента
Left 200 Ширина компонента
*Top18Свойства Top и Left определяют расположение компонента относительно верхнего левого угла формы. 150 Координата верхнего края
Width 80 Координата левого края

Интерфейс программы готов. Займёмся вычислительной частью задачи. Для этого создадим для кнопки Button1 обработчик событий OnClick, для чего дважды щёлкнем по объекту Button1 левой кнопкой мыши. Между словами begin и end созданной подпрограммы запишем несколько команд, чтобы получился следующий программный код:

	
procedure TForm1. Button1Click ( Sender : TObject );
var
pud, funt : integer;
kg : real;
begin
	pud:= StrToInt ( Edit1. Text );
	funt := StrToInt ( Edit2. Text );
	kg:=pud * 16.38+ funt * 16.38 / 40;
	Label4. Caption := ’В килограммах :  ’+FloatToStr ( kg );
end;

Рассмотрим программный код построчно.

Строка 1. Заголовок подпрограммы. Он состоит из ключевого слова procedure и имени подпрограммы TForm1.Button1Click, а в скобках обычно указывают список параметров подпрограммы, если таковые имеются.

Строка 2. Открывает блок описания переменных (var — от variable, переменная).

Строка 3. Описывает переменные pud и funt. Компьютер понимает эту запись как команду выделить в памяти место для хранения двух целых чисел19О переменных и их типах подробнее рассказывается в следующей главе..

Строка 4. Описывает одну вещественную переменную kg.

Строка 5. Начинает программный блок (begin — начало ).

Строка 6. Команда, выполняющая следующие действия. Из свойства Text поля ввода Edit1 считывает введённую туда информацию. Эта информация воспринимается компьютером как строка текста (например, "360" — это строка из трёх символов), а поскольку нам для вычислений нужны числовые значения, то функция StrToInt преобразовывает её в целое число. Результат этих преобразований записывается в память компьютера под именем pud. Символы ":=" обозначают оператор присваивания. Например, запись a:=3.14 читается так: переменной a присвоить значение 3.14. Выражение 3.14:=a не имеет смысла.

Строка 7. Информация из поля ввода Edit2 преобразовывается в целое число и записывается в переменную funt. Фактически команды, записанные в шестой и седьмой строках, осуществляют ввод исходных данных.

Строка 8. Вычисляется значение выражения, результат которого присваивается переменной kg. Обратите внимание, что умножение здесь обозначается звездочкой, деление — наклонной чертой, сложение — знаком "+". Записывая математическое выражение на языке программирования, нужно чётко указывать все операции. Нельзя, например, опустить знак умножения, как это принято в математике.

Сообщение об ошибке в программе

Рис. 1.46. Сообщение об ошибке в программе

Строка 9. Изменяет свойство Caption объекта Label4. В него будет помещён текст, состоящий из двух строк. Первая — ’В килограммах: ’, вторая — значение переменной kg. Знак "+" в этом выражении применяют для конкатенации (слияния) строк. Кроме того, поскольку значение переменной kg — вещественное число, оно преобразовывается в строку функцией FloatToStr. Фактически в этой строке был выполнен вывод результатов.

Строка 10. Конец программного блока (end — конец ).

Теперь наша программа может быть откомпилирована и запущена на выполнение. Процесс компиляции представляет собой перевод программы с языка программирования в машинный код. Для компиляции нужно выполнить команду Запуск — Быстрая компиляция. Во время компиляции проверяется наличие синтаксических ошибок, и в случае их обнаружения процесс компиляции прерывается. Мы специально допустили ошибку в восьмой строке программного кода (пропустили двоеточие в операторе присваивания). Результат компиляции программы с синтаксической ошибкой показан на рис. 1.46.

Строка с ошибкой выделена красным цветом, а под окном редактора появилось окно Сообщение20Если окно Сообщение отсутствует, его можно вывести на экран командой Просмотр — Сообщения., в котором описана допущенная ошибка. Ошибку нужно исправить, а программу ещё раз откомпилировать.

После успешной компиляции всех файлов, входящих в проект, необходимо собрать (скомпоновать) проект из объектных (откомпилированных) файлов (с расширением — для Linux,.obj — для Windows). Для этого следует выполнить команду Запуск — Собрать или воспользоваться комбинацией клавиш Ctrl+F9. В результате компоновки будет сгенерирован исполняемый файл, имя которого совпадает с именем проекта.

Результат работы программы

Рис. 1.47. Результат работы программы

Вообще говоря, если команду Запуск — Быстрая компиляция опустить, а сразу выполнить команду Запуск — Собрать, то произойдёт и компиляция всех файлов проекта и его компоновка.

После успешной компиляции и сборки программу нужно сохранить (Проект — Сохранить) и запустить. Запуск осуществляется из среды разработки (Запуск — Запуск) или выполнением файла: в Linux —./project1, в Windows — projec1.exe. На рис. 1.47 показан результат работы нашей программы.

Обратите внимание, что ошибки могут возникать и после запуска программы. Например, в нашем примере исходные данные — целые числа. Если ввести дробь, появится аварийное сообщение. В подобной ситуации следует прервать выполнение программы командой Запуск — Останов (Ctrl+F2).

Вернуться к созданному проекту, например с целью его усовершенствования, не сложно. Нужно выполнить команду Проект — Открыть проект... (Ctrl+F11), перейти к папке с проектом и выбрать из списка файл с именем project1.lpi.

Лекция 1: 123456 || Лекция 2 >
Юрий Шутиков
Юрий Шутиков

По первому тесту выполнил дважды задания. Результат получается правильный (проверял калькулятором). Пишет, что "Задание не проверено" и предлагает повторить. 
 

Евгений Силуков
Евгений Силуков

Еще в декабре выполнил тест №1, а его все так и не проверили.

Юрий Макушин
Юрий Макушин
Россия, Москва, РЭА им. Плеханова, 2004