
- •Занятие 1. Введение Почему именно Delphi?
- •Что мы видим на экране
- •Контрольные вопросы:
- •Занятие 2. Мое первое приложение в Delphi Вывести текст в окне
- •Задания для самостоятельной работы
- •Кнопки. Какие они бывают и зачем они?
- •Задания для самостоятельной работы
- •Поле редактирования
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 3. Введение в язык программирования Pascal
- •Понятие алгоритма
- •Структура процедуры
- •Правила задания имен языка Pascal
- •Задания для самостоятельной работы
- •Тип данных
- •Числовой тип данных. Целые числа
- •Числовой тип данных. Вещественные числа
- •Описание данных
- •Задания для самостоятельной работы
- •Операции
- •Присвоение значения переменной. Оператор присваивания
- •Задания для самостоятельной работы
- •Задача «Простой калькулятор»
- •Встроенные функции
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 4. Разветвляющийся алгоритм
- •Логический тип данных
- •Описание данных логического типа
- •Логические выражения
- •Разветвляющийся алгоритм
- •Оператор if
- •Оператор выбора case
- •Задания для самостоятельной работы
- •Списки. Компоненты ListBox и ComboBox
- •Зависимые переключатели. Компоненты RadioButton, RadioGroup
- •Задание для самостоятельной работы
- •Добавление формы к проекту
- •Структура модуля Pascal
- •Как открыть форму
- •Задание для самостоятельной работы
- •Способность форм ссылаться друг на друга
- •Задание для самостоятельной работы
- •Просмотр форм и ассоциированных с ними модулей
- •Основные свойства, методы и события формы
- •Менеджер проектов
- •Опции пpоекта
- •Упpавление пpоектами
- •Компиляция и сборка проекта
- •Выполнение и отладка проекта
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 6. Начинаем рисовать
- •Рисование линий
- •Задание цвета
- •Рисование фигур
- •Свойства класса tBrush
- •Вывод текста
- •События формы OnPaint и OnResize
- •Задания для самостоятельной работы
- •Занятие 7. Циклы
- •Цикл со счетчиком: for
- •Цикл с предусловием: while
- •Цикл с постусловием: repeat..Until
- •Использование операторов Continue и Break в циклах
- •Задание случайных чисел. Функция Random. Процедура Randomize
- •Вложенные циклы
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 8. Массивы
- •Одномерные массивы
- •Двумерные массивы
- •Компонент tStringGrid
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Занятие 9. Строки и символы
- •Символьный тип данных
- •Строковый тип данных
- •Сравнение текстовой информации
- •Функции для работы с текстовой информацией
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 10. Работа с изображениями
- •Редактор Image Editor
- •Как отобразить рисунок в форме
- •Компонент Timer
- •Как заставить картинку двигаться
- •Случайное движение
- •Задание для самостоятельной работы.
- •Движение по закону
- •Задание для самостоятельной работы
- •Управляемое движение
- •Задание для самостоятельной работы
- •Как совместить разные виды движения
- •Задание для самостоятельной работы
- •Использование мыши
- •Занятие 11. Процедуры и функции
- •Описание и вызов процедуры
- •Описание и вызов функции
- •Где описывать процедуры(функции)
- •Передача параметров по ссылке и по значению
- •Контрольные вопросы
- •Задание для самостоятельной работы
- •Занятие12. Еще про компоненты Еще раз про списки
- •Функция MessageDlg
- •Задание для самостоятельной работы
- •Главное меню приложения. Компонент MainManu
- •Задание для самостоятельной работы
- •Кнопочная панель. Компонент ToolBar
- •Область редактирования. Компонент Memo
- •Контекстное меню. Компонент PopupMenu
- •Диалоговые окна Windows
- •Задание для самостоятельной работы
- •Занятие 13. Объектно-ориентированный подход (ооп) в программировании Основные понятия ооп
- •Основные принципы ооп
- •Тип данных запись (структура)
- •Задание для самостоятельной работы
- •Классы и объекты в Delphi
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Занятие 14. Работа с файлами
- •Общая технология работы с файлами в Delphi
- •Стандартный подход к работе с файлами
- •Описание файловой переменной
- •Открытие файлов
- •Запись в файл
- •Считывание из файла
- •Закрытие файла
- •Установка новой позиции в файле
- •Текстовые файлы
- •Конец файла
- •Стандартные подпрограммы для работы с файлами и каталогами
- •Пример работы с нетипизированными файлами
- •Пример работы с типизированными файлами
- •Пример работы с текстовыми файлами
- •Объектный подход к работе с файлами
- •Задания для самостоятельной работы
- •Контрольные вопросы
Задача «Простой калькулятор»
Мы уже достаточно знаем, для того, чтобы выполнить простое упражнение. Рассмотрим следующую задачу: Ввести 2 числа, вывести их сумму, разность, произведение.
Решение
Создадим новое приложение.
Разработаем форму для удобного ввода чисел. Для ввода чисел будем использовать интерфейсные компоненты типа TEdit, для отображения информации пользователю - будем использовать компоненты типа TLabel. Создадим кнопку, по которой будет запускаться программный код, обеспечивающий решение задачи. Внешний вид формы может быть, например, следующий:
Где объекты Edit1 и Edit2 используются для ввода чисел, объекты Label3, Label4, Label5 используются для отображения результата. Единственной проблемой, с которой мы столкнемся при использовании интерфейсных компонентов, Delphi будет – преобразование строк в числа и наоборот. Дело в том, что свойство Text объекта Edit строкового типа, свойство Caption объекта Label – также строкового типа. Т.е. для выполнения вычислений и отображения результатов необходимо выполнять преобразования.
Нам понадобятся следующие функции преобразования:
Функция преобразования |
Тип аргумента |
Тип результата |
Описание |
IntToStr |
Integer |
String (строка) |
Преобразует целое число в строку |
StrToInt |
String (строка) |
Integer |
Преобразует строку целое в целое число |
FloatToStr |
real |
String (строка) |
Преобразует дробное число в строку |
StrToFloat |
String (строка) |
real |
Преобразует строку в дробное число |
Осталось написать обработчик события OnClick на кнопку «Вычислить»:
procedure TForm1.Button1Click(Sender: TObject);
var a,b:real;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
{ сумма }
Label3.Caption:=' сумма '+FloatToStr(a+b);
{ разность }
Label4.Caption:=' разность '+FloatToStr(a-b);
{ произведение }
Label5.Caption:=' произведение '+FloatToStr(a*b);
end;
Выполнить приложение. Обратите внимание, при вводе дробных чисел в форму разделителем дробной и целой части является запятая.
Сохранить приложение в отдельной папке.
Задание: добавить в приложение возможность расчета целой части и остатка от деления первого числа на второе. (Операции div и mod).
Встроенные функции
Встроенные функции это предопределенные функции, которые поставляются вместе с Delphi. Набор встроенных функций очень обширен. Существуют математические функции, которые реализуют математические операции, например синус, косинус, функции для работы со строками, функции преобразования и т.д. Функция в языках программирования очень напоминает понятие функции, принятое в математике, т.е. функция имеет имя и список аргументов, независимых переменных. Функция может возвращать значение. Например, функция sin(x) вернет значение синуса, соответствующее значению переменной x. Информацию по функциям в Delphi можно получить в Help’е, достаточно в программе ввести имя функции и нажать клавишу F1.
Вызов функции происходит по имени, в скобках указываются значения аргументов. Функция всегда возвращает значение. Список функций, которые наиболее часто используются, приведен в таблице:
Функция |
Тип аргумента |
Тип результата |
sin(X) |
real |
real |
cos(x) |
real |
real |
sqr(X) (возведение в квадрат) |
real |
real |
sqrt(x) (корень квадратный) |
real |
real |
abs(x) (абсолютная величина) |
real/integer |
real/integer |
round(x) (округление) |
real |
integer |
int(x) (целая часть) |
real |
real |
frac(x) (дробная часть) |
real |
real |
random(x) ( случайное число) |
word |
word(0..x) |