Ситкин. Информатика. Программирование в DELPHI
.pdfForm1
Label1
Button1
Edit1
Label2
LabeledEdit1
Label3 |
|
Memo1 |
|
|
|
|
Рис. 1.7 |
Вывод фамилии в Label2 свяжем со щелчком (событием OnClick) по кнопке Button1. Для этого, выделив компонент Button1, выберем в окне Object Inspector вкладку Events и выполним двойной щелчок в поле имени процедуры обработки события OnClick (рис. 1.6). В от-
крывшемся шаблоне процедуры между словами begin и end допол-
ним её текст
procedure TForm1.Button1Click(Sender: TObject);
begin
Label2.Caption 'работу выполнил(а) '+Edit1.Text;
end;
Данная процедура изменяет значение свойства Caption компонента Label2, заменяя пустую запись метки на «работу выполнил», добавляя содержимое (свойство Text) редактируемого поля Edit1, т.е. фамилию.
Вывод номера группы в Memo1 свяжем со щелчком по форме.
Аналогично, но теперь для Form1 в окне Object Inspector на вкладке
Events выполним двойной щелчок в поле имени процедуры обработки события OnClick. В открывшемся шаблоне процедуры между словами begin и end дополним её текст
21
procedure TForm1.FormClick(Sender: TObject);
begin
Memo1.Text 'Группа № '+LabeledEdit1.Text;
end;
Вторая процедура вписывает в поле Memo1 «Группа №» и содержимое (свойство Text) редактируемого поля с меткой LabeledEdit1, т.е. номер группы. Обе процедуры поочерёдно разместятся в модуле проекта, текст которого отображает редактора кода Unit1.pas (рис. 1.8).
Рис.1.8
22
Помимо модуля программный код генерируется и в головной программе. Для его просмотра следует дать команду из меню команд Project View Source, текст отобразится в редакторе кода (рис. 1.9).
Текст полностью сгене-
рирован средой и не требует вмешательства программиста. Головная программа обеспечива-
ет инициализацию при-
ложения и вывод на
экран формы, при этом модуль Unit1 с описанием формы подключает-
ся к головной программе автоматически.
Компиляция и запуск проекта на исполнение
Запуск проекта на исполнение осуществляется из меню Run ко-
мандой Run или щелчком на панели инструментов по пиктограмме При этом перед запуском происходит компиляция проекта. Если в програм-
мном коде есть синтакси-
ческие ошибки, то прило-
жение не запустится, их следует устранить. При успешной компиляции создаётся файл с именем
проекта с расширением .ехе, который представляет собой самостоя-
тельное приложение его можно запускать вне среды программиро-
23
вания. При внесении изменений в проект, его следует перекомпили-
ровать. Пример работы нашего приложения представлен на рис. 1.10.
Структура и сохранение проекта
Проект состоит из нескольких файлов:
1)файл головной программы (dpr-файл) это главный файл проекта, его следует открывать для редактирования проекта;
2)файл модуля (pas-файл);
3)файл описания формы (dfm-файл);
4)файл описания проекта (dof-файл);
5)файл ресурсов (res-файл);
6)файл конфигурации (cfg-файл);
7)исполняемый файл (exe-файл) готовое к работе приложение.
При сохранении проекта программист сохраняет файл модуля и файл головной программы (проект). Остальные файлы среда сохраня-
ет автоматически. Исполняемый файл создаёт компилятор при успешной компиляции. При внесении изменений в проект появляются дополнительные файлы. Поскольку проект состоит из нескольких файлов, то перед его сохранением следует создать папку проекта.
Для сохранения проекта следует дать команду из меню команд File Save Project as, если проект ранее не сохранялся, то откроется окно Save Unit1 as, где следует создать или найти ранее созданную папку проекта, раскрыть её и сохранить в ней модуль. Затем откроет-
ся окно Save Project as, где следует сохранить проект, причём имя проекта должно отличаться от имени модуля. Для сохранения изме-
нений в уже сохранённом ранее проекте следует дать команду File Save all.
24
Задание
Разработать проект для ввода на форму фамилии и номера груп-
пы и их вывода на эту же форму. Использовать компоненты и собы-
тия в соответствии с вариантом задания (табл. 1. 10).
|
|
|
|
|
|
Таблица 1.10 |
||
|
|
|
Варианты заданий |
|
|
|
||
|
|
|
|
|
|
|
||
№ |
Компоненты для ввода |
Компоненты для вывода |
Событие для вывода |
|||||
в |
фамилии |
№ группы |
фамилии |
№ группы |
фамилии |
|
№ группы |
|
1 |
Label + Edit |
LabeledEdit |
Edit |
Label |
щелчок |
|
щелчок |
|
по форме |
|
по кнопке |
||||||
|
|
|
|
|
|
|||
2 |
LabeledEdit |
Label + Edit |
окно |
Label |
щелчок по |
|
щелчок по |
|
сообщения |
кнопке1 |
|
кнопке 2 |
|||||
|
|
|
|
|
||||
3 |
LabeledEdit |
Label+Memo |
Label |
Label |
щелчок |
|
щелчок |
|
по кнопке |
|
по форме |
||||||
|
|
|
|
|
|
|||
4 |
Label + Edit |
Label + Edit |
Label |
окно сооб- |
щелчок |
|
дв. щелчок |
|
щения |
по кнопке |
|
по форме |
|||||
|
|
|
|
|
||||
5 |
LabeledEdit |
Label + Edit |
Memo |
Label |
щелчок по кнопке |
|||
6 |
Label + |
Label + Edit |
Label |
Edit |
щелчок |
|
щелчок |
|
Memo |
по форме |
|
по кнопке |
|||||
|
|
|
|
|
||||
7 |
Label + Edit |
LabeledEdit |
Label |
дв-ой щелчок по форме |
||||
8 |
LabeledEdit |
LabeledEdit |
окно |
Label |
щелчок по кнопке |
|||
сообщения |
||||||||
|
|
|
|
|
|
|
||
9 |
Label + Edit |
Label+Memo |
Label |
окно со- |
щелчок по |
|
щелчок по |
|
общения |
кнопке1 |
|
кнопке2 |
|||||
|
|
|
|
|
Содержание отчёта
цель работы и задание;
текст модуля;
пример работы приложения с указанием компонентов формы;
выводы по работе.
Контрольные вопросы
1.Перечислите окна Delphi. Укажите их назначение.
2.Что такое событие, процедура его обработки, как её назначить?
3.Какова программная и файловая структура проекта?
25
Лабораторная работа № 2
ЛИНЕЙНЫЙ АЛГОРИТМ
Цель работы приобретение умений программирования арифметических выражений по линейному алгоритму.
Линейный алгоритм алгоритм, в котором действия выполняются последовательно друг за другом в порядке записи.
Арифметические выражения выполняют все вычисления. Результатом является целое или вещественное число. Выражение задаёт порядок действий над данными и состоит из операндов (констант, переменных, функций), знаков операций и круглых скобок.
Типы данных
Программа может оперировать с данными разных типов: це-
лыми и вещественными числами, отдельными символами и строками символов, логическими величинами и др. Тип данных определяет множество допустимых значений, множество допустимых операций над данными типа, форматы представления данных. Характеристики основных типов данных представлены в табл. 2.1 2.5.
|
|
|
Таблица 2.1 |
Характеристики целочисленных типов данных |
|||
|
|
|
|
Имя типа |
Диапазон значений |
Память, байт |
|
Byte |
0 255 |
1 |
|
Word |
0 65535 |
2 |
|
Shortint |
128 |
127 |
1 |
Smallint |
32768 |
32767 |
2 |
Longint, Integer |
2147483648 |
2147483647 |
4 |
Int64 |
263 263 1 |
8 |
|
Longword |
0 4294967295 |
4 |
26
|
|
|
Таблица 2.2 |
|
Характеристики вещественных типов данных |
|
|
|
|
|
|
Имя типа |
Диапазон значений |
Значащих цифр |
Память, байт |
Single |
1,5·10 45 3,4·1038 |
7 8 |
4 |
Double, Real |
5·10 324 1,7·10308 |
15 16 |
8 |
Real48 |
2,9·10 39 1,7·1038 |
11 12 |
6 |
Extended |
3,6·10 4951 1,1·104932 |
19 20 |
10 |
|
|
|
Таблица 2.3 |
|
Характеристики символьных типов данных |
|
|
|
|
|
|
Имя типа |
Диапазон значений |
Память, байт |
|
Char |
Символы кодовой таблицы ANSI |
1 |
|
Widechar |
Символы кодовой таблицы UNICODE |
2 |
|
|
|
|
Таблица 2.4 |
|
Характеристики строковых типов данных |
|
|
|
|
|
|
Имя типа |
Диапазон значений |
|
|
String |
Строка до 255 символов кодовой таблицы ANSI |
||
Widestring |
Строка символов кодовой таблицы UNICODE |
||
|
|
|
Таблица 2.5 |
|
Характеристики логического типа данных |
|
|
|
|
|
|
Имя типа |
Диапазон значений |
Память, байт |
|
Boolean |
False, True |
1 |
Целочисленные, логический и символьные типы относят к по-
рядковым типам данных. Все перечисленные выше типы являются стандартными типами данных. Программист может вводить и соб-
ственные (пользовательские) типы данных на основе стандартных. К
наиболее распространённым относят два:
27
тип диапазон (интервальный тип), задаётся своим минималь-
ным и максимальным значениями и может быть определён на основе любого порядкового типа, например, 1..12 целые числа от 1 до 12
или 'a'.. 'z' буквы латинского алфавита;
перечисляемый тип, например, color = (red, blue, green).
Все указанные выше типы, кроме строкового, относят к про-
стым типам, но также существуют структурированные типы (масси-
вы, множества, записи, файлы, строки) и другие.
Константы и переменные
Константа элемент данных, значение которого определено до начала работы программы и не изменяется в процессе выполнения программы. Объявление констант имеет вид
const имя_константы1 = значение1 ;
....………………………………….
имя_константыN = значениеN ;.
Имена констант выбирает программист. Пример объявления const a = 10; //целочисленная
b= 3.24; //вещественная
c= 1.4E 03; //вещественная в экспоненциальной форме
Sym_S = 'S'; //символьная
sym9 = '9'; //символьная, это не число
Name = 'Maslak'; //строковая
d = '99'; //строковая, это не число
Значения символьных и строковых констант заключаются в апостро-
фы. Все приведённые примеры именованные константы, но в тексте программы можно писать непосредственно значения констант и не
28
объявлять их. Имена рекомендуется вводить в случаях, когда кон-
станта встречается в нескольких местах программного кода. В каче-
стве символьных констант допускается использовать коды служебных символов, часто встречаемые приведены в табл. 2.6.
|
Таблица 2.6 |
Некоторые коды служебных символов |
|
|
|
Код символа |
Значение (действие) |
#0 |
Пустой символ |
#8 |
Клавиша Backspace |
#9 |
Клавиша Tab |
#10 |
Перевод строки |
#13 |
Клавиша Enter |
#32 |
Клавиша пробела |
Переменная ячейка памяти с именем, предназначенная для хранения данных, которыми оперирует программа. В отличие от кон-
станты, переменная не имеет значения до начала работы программы.
Содержимое ячейки, т.е. значение переменной, может изменяться по ходу работы программы. Каждое новое значение, записанное в ячейку
(т.е. в переменную), «затирает» предыдущее, т.е. в любой момент времени переменная имеет только одно, текущее, значение. Все пере-
менные перед использованием должны быть объявлены в формате
var имя_переменной11 , .., имя_переменной1N : имя_типа1 ;
……………………………………………………………………..
имя_переменнойN1 , .., имя_переменнойNN : имя_типа N ;.
Имена переменных выбирает программист. Пример объявления var m, n, k:integer;
x, y:real; dig:0..9;
s1, s2:string;
29
Присвоить значение переменной можно оператором присваивания
имя_переменной := значение ; или
имя_переменной := выражение ;.
Во втором случае сначала вычисляется значение выражения, а затем оно присваивается переменной слева. Тип значения или выражения должен соответствовать объявленному типу переменной. Назначать тип переменной нужно исходя из диапазона возможных значений, ко-
торые она будет принимать во время работы программы.
Арифметические операции
Арифметические операции определяют действия, которые сле-
дует выполнить над операндами. Порядок выполнения операций определяется их приоритетом, но может быть изменён скобками.
Правила записи арифметических операций и формирование типа ре-
зультата их выполнения представлены в табл. 2.7.
|
|
|
|
Таблица 2.7 |
|
Арифметические операции |
|
|
|
|
|
|
|
|
Операция |
Знак |
|
Тип |
|
операндов |
|
результата |
||
|
|
|
||
Сложение |
+ |
Целый |
|
Целый |
Вещественный |
|
Вещественный |
||
|
|
|
||
Вычитание |
|
Целый |
|
Целый |
Вещественный |
|
Вещественный |
||
|
|
|
||
Умножение |
* |
Целый |
|
Целый |
Вещественный |
|
Вещественный |
||
|
|
|
||
Деление |
/ |
Целый |
|
Вещественный |
Вещественный |
|
Вещественный |
||
|
|
|
||
Целочисленное |
div |
Целый |
|
Целый |
деление |
|
|||
|
|
|
|
|
Взятие остатка от |
mod |
Целый |
|
Целый |
целочисл. деления |
|
|||
|
|
|
|
30