По первому тесту выполнил дважды задания. Результат получается правильный (проверял калькулятором). Пишет, что "Задание не проверено" и предлагает повторить. |
Введение. Средства разработки программ на языке Free Pascal
1.4.10 Полезная программа
Итак, первая программа написана. Она не несёт особой смысловой нагрузки. Главная ее задача — показать, что же такое визуальное программирование. Следующая программа также будет несложной, но полезной. Мы автоматизируем процесс перевода старой русской меры веса в современную. Эта задача формулируется так: выполнить перевод пудов и фунтов в килограммы, если известно, что 1 пуд = 40 фунтам = 16.38 кг.
Итак, наша программа должна позволить пользователю ввести два числа (пуды и фунты) и после щелчка по кнопке сообщить, каково значение в килограммах.
Создадим новый проект, выполнив команду Проект — Создать проект..., и сохраним его в папке Primer_2 командой Проект — Сохранить проект как...
Воспользуемся вкладкой Standard панели компонентов и разместим на форме следующие компоненты: четыре объекта типа надпись Label (этот компонент используется для размещения в окне не очень длинных однострочных надписей); два поля ввода Edit (это редактируемое текстовое поле, предназначенное для ввода, отображения или редактирования одной текстовой стоки); одну кнопку Button (этот компонент обычно используют для реализации некоторой команды). Компоненты должны располагаться на форме примерно так, как показано на рис. 1.44.
В первой надписи будет храниться текст "Меры веса". Две надписи Label2 и Label3 нужны для пояснения того, какие именно данные должны вводиться, надпись Label4 понадобится для вывода результата. В поля ввода Edit1 и Edit2 будут введены конкретные значения: вес в пудах и фунтах. Вычисление веса в килограммах произойдёт при щелчке по кнопке Button1 и будет выведено в Label4. Изменим свойства формы и размещённых на ней компонентов в соответствии с табл. 1.1, табл. 1.2, табл. 1.3, табл. 1.4. После всех изменений форма будет иметь вид, представленный на рис. 1.45.
Свойство | Значение | Описание свойства |
---|---|---|
Caption | Перевод из старой русской меры веса в современную | Заголовок формы |
Height | 230 | Высота формы |
Width | 400 | Ширина формы |
Font.Name | Arial | Название шрифта |
Font.Size | 10 | Размер шрифта |
Свойство | 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 | Координата левого края |
Свойство | Edit1 | Edit2 | Описание свойства |
---|---|---|---|
Text | пробел | пробел | Текст в поле ввода |
Height | 25 | 25 | Высота компонента |
Width | 135 | 135 | Ширина компонента |
Top | 40 | 95 | Координата верхнего края |
Left | 175 | 175 | Координата левого края |
Свойство | Значение | Описание свойства |
---|---|---|
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. Обратите внимание, что умножение здесь обозначается звездочкой, деление — наклонной чертой, сложение — знаком "+". Записывая математическое выражение на языке программирования, нужно чётко указывать все операции. Нельзя, например, опустить знак умножения, как это принято в математике.
Строка 9. Изменяет свойство Caption объекта Label4. В него будет помещён текст, состоящий из двух строк. Первая — ’В килограммах: ’, вторая — значение переменной kg. Знак "+" в этом выражении применяют для конкатенации (слияния) строк. Кроме того, поскольку значение переменной kg — вещественное число, оно преобразовывается в строку функцией FloatToStr. Фактически в этой строке был выполнен вывод результатов.
Строка 10. Конец программного блока (end — конец ).
Теперь наша программа может быть откомпилирована и запущена на выполнение. Процесс компиляции представляет собой перевод программы с языка программирования в машинный код. Для компиляции нужно выполнить команду Запуск — Быстрая компиляция. Во время компиляции проверяется наличие синтаксических ошибок, и в случае их обнаружения процесс компиляции прерывается. Мы специально допустили ошибку в восьмой строке программного кода (пропустили двоеточие в операторе присваивания). Результат компиляции программы с синтаксической ошибкой показан на рис. 1.46.
Строка с ошибкой выделена красным цветом, а под окном редактора появилось окно Сообщение20Если окно Сообщение отсутствует, его можно вывести на экран командой Просмотр — Сообщения., в котором описана допущенная ошибка. Ошибку нужно исправить, а программу ещё раз откомпилировать.
После успешной компиляции всех файлов, входящих в проект, необходимо собрать (скомпоновать) проект из объектных (откомпилированных) файлов (с расширением .о — для Linux,.obj — для Windows). Для этого следует выполнить команду Запуск — Собрать или воспользоваться комбинацией клавиш Ctrl+F9. В результате компоновки будет сгенерирован исполняемый файл, имя которого совпадает с именем проекта.
Вообще говоря, если команду Запуск — Быстрая компиляция опустить, а сразу выполнить команду Запуск — Собрать, то произойдёт и компиляция всех файлов проекта и его компоновка.
После успешной компиляции и сборки программу нужно сохранить (Проект — Сохранить) и запустить. Запуск осуществляется из среды разработки (Запуск — Запуск) или выполнением файла: в Linux —./project1, в Windows — projec1.exe. На рис. 1.47 показан результат работы нашей программы.
Обратите внимание, что ошибки могут возникать и после запуска программы. Например, в нашем примере исходные данные — целые числа. Если ввести дробь, появится аварийное сообщение. В подобной ситуации следует прервать выполнение программы командой Запуск — Останов (Ctrl+F2).
Вернуться к созданному проекту, например с целью его усовершенствования, не сложно. Нужно выполнить команду Проект — Открыть проект... (Ctrl+F11), перейти к папке с проектом и выбрать из списка файл с именем project1.lpi.