- 10 основных конструкций языка Delphi
- О чём пойдёт речь
- Комментарии
- Переменные
- Ввод и вывод данных с клавиатуры
- Присваивание и сравнение
- Операторные скобки (составной оператор)
- Условный оператор if
- Оператор множественного выбора case
- Цикл с предусловием for
- Циклы с предусловием и постусловием
- Процедуры
- Функции
- Что теперь
10 основных конструкций языка Delphi
Недавно мы рассказали про язык Delphi — где применяется, что интересного и где он востребован. Теперь перейдём к практике и посмотрим на Delphi изнутри — как он устроен и как на нём программировать. Возможно, уже через пару часов вы начнёте реализовывать свою мечту — писать собственную программу складского учёта.
👉 Если вы проходили «Паскаль» в школе, то вы вряд ли узнаете что-то новое. В этом сила Delphi — это очень простой в освоении язык с поддержкой ООП и почти всех современных парадигм программирования.
О чём пойдёт речь
В Delphi после каждого оператора ставится точка с запятой. Пропускать её нельзя — это будет ошибка и программа не запустится.
Комментарии
Чтобы поставить комментарий в Delphi, раньше использовали только фигурные скобки. Сейчас для комментариев кроме них можно ставить круглую скобку со звёздочкой или два слеша подряд, но с одной стороны:
< Это комментарий >
(* Это тоже комментарий
на несколько строк *)
// А вот этот комментарий действует только до конца строки
А так мы превратим нашу программу в консольную, чтобы вся работа шла в командной строке:
Переменные
Для описания переменной используют ключевое слово var :
var X: Integer; // переменная целого типа in, out: string; // две переменных строкового типа result: Double; // переменная вещественного (дробного) типа
Без слова var сразу использовать переменную не получится: компилятор обязательно проверит, объявили ли вы её заранее или нет. Это сделано для контроля над оперативной памятью.
Ввод и вывод данных с клавиатуры
Чаще всего в Delphi делают программы с графическим интерфейсом, где есть поля ввода и кнопки. В этом случае данные получают оттуда, используя свойства разных компонентов. Но если нужно организовать ввод-вывод в консоли, то для этого используют такие команды:
write(‘Введите координаты X и Y: ‘); // выводим на экран строку
read(x,y); // считываем переменные x и y
После выполнения каждой команды курсор остаётся на той же строке:
write(‘Привет!’);
write(‘Это журнал «Код».’);
// на экране будет надпись в одну строчку и без пробела: Привет!Это журнал «Код».
Чтобы перенести курсор на новую строку после ввода или вывода, к команде добавляют в конец Ln:
writeLn('Привет!'); writeLn('Это журнал «Код».'); // Привет! // Это журнал «Код».
Присваивание и сравнение
В отличие от большинства языков программирования, в Delphi оператор присваивания выглядит как двоеточие со знаком равно:
Если вы видите в коде такое, то почти всегда это будет программа на Delphi или Pascal. Сравнение тоже выглядит не так как везде — одинарный символ равенства, как в математике:
== ← а вот такого в Delphi нет
Остальные математические команды и операторы сравнения работают как обычно. Логические сравнения пишутся словами:
Операторные скобки (составной оператор)
Во многих других языках границы функций, команд в условии и прочие границы обозначаются фигурными скобками, например в JavaScript: function fn() <. >.
А вот в Delphi такие границы задаются отдельными словами begin и end и называются операторными скобками, или составным оператором. Они используются для обозначения границ подпрограмм и там, где язык разрешает ставить только одну команду. Чтобы обойти это ограничение, используют операторные скобки. Простой пример:
if a > b then
begin
что-то полезное
end
else
begin
что-то другое полезное
end
Начало и конец основной программы тоже заключают в операторные скобки.
Условный оператор if
Классический оператор проверки условий, работает так же, как и в других языках:
Часть с else — необязательная, если она не нужна, то её можно не писать:
Так как после then можно ставить только один оператор, то, чтобы поставить больше, используют те самые операторные скобки:
if A > B then begin C := A; writeLn('Первое число больше второго'); writeLn('Останавливаем проверку'); end else C := B;
Вкладывать условные операторы можно друг в друга сколько угодно.
Оператор множественного выбора case
Если нам нужно выбрать что-то одно сразу из нескольких вариантов, лучше использовать оператор выбора case , который работает так:
- Оператор получает переменную, с которой будет работать, и несколько вариантов её значений.
- Затем по очереди проверяет, совпадает ли очередное значение со значением переменной.
- Как только находится совпадение — выполняется соответствующий оператор, и case на этом заканчивается.
- Если ничего не совпало — то компьютер просто переходит дальше или выполняет то, что написано после else.
Вот как это может выглядеть в коде:
Write('Введите сегодняшнее число'); ReadLn(Day); case Day of // начинается оператор множественного выбора 1..10: Writeln('Это начало месяца'); 11..20: Writeln('Это середина месяца'); 21..31: WriteLn('Это конец месяца'); else Writeln('Нет такого дня недели'); // что мы делаем, если ничего не подошло end; // закончился оператор множественного выбора
Цикл с предусловием for
Особенность этого цикла в том, что мы в нём задаём не условие окончания, а чёткое количество шагов:
for i := 0 to 99 do что-то полезное;
- Нам нужно заранее объявить переменную цикла (написать как в JS let i = 1 — не получится).
- Этой переменной мы присваиваем начальное значение и указываем конечное.
- На каждом шаге цикла значение переменной будет автоматически увеличиваться на единицу.
- Как оно превысит конечное значение — цикл остановится.
var I: Integer; . for I := 1 to 10 do Writeln(I);
Если нам нужно идти наоборот, в сторону уменьшения значения переменной, то вместо to используют downto:
var I: Integer; . // выведем числа в обратном порядке, от 10 до 1 for I := 10 downto 1 do Writeln(I);
Циклы с предусловием и постусловием
Эти циклы работают так же, как и в других языках программирования, поэтому освоиться в них будет проще.
Цикл с предусловием — это когда сначала проверяется условие цикла, и если оно верно, то цикл выполняется до тех пор, пока оно не станет ложным. В общем виде такой цикл выглядит так:
Выведем с его помощью числа от 1 до 10 (обратите внимание на операторные скобки):
var I: Integer; . I:=1; while I < 11 do begin writeLn(I); I++; end;
Цикл с постусловием работает наоборот: он сначала выполняет тело цикла, а потом проверяет условие. Операторные скобки в нём не ставятся, потому что границы цикла задаются самими командами цикла:
Если условие становится истинным — цикл останавливается. Особенность такого цикла в том, что он выполнится как минимум один раз, прежде чем проверится условие.
var I: Integer; . I:=1; repeat writeLn(I); I++; until I > 10
Процедуры
В Delphi есть отдельный класс подпрограмм, которые называются процедурами. Если сильно упростить, то процедура — это функция, которая не возвращает никакого значения. Процедуры удобно использовать для организации логических блоков, например в одну процедуру вынести приветствие пользователя, в другую — отрисовку интерфейса, в третью — отправку данных на сервер. Все процедуры обязательно должны быть объявлены до начала основной части программы.
В общем виде объявление процедуры выглядит так:
procedure ( ) ;
const . ; // раздел констант
type . ; // раздел типов
var . ; // раздел переменных
begin // начало процедуры
end; // конец процедуры
Если какой-то раздел в процедуре не нужен, его можно пропустить. Сделаем процедуру, которая будет приветствовать пользователя и спрашивать его имя:
var name: string; procedure hello; // объявляем процедуру begin writeln('Привет! Как тебя зовут? '); readLn(name); end; begin // начало основной программы hello; // вызываем процедуру end.
В нашем примере имя пользователя попадёт в глобальную переменную name — доступ к глобальным переменным возможен из любого места программы.
Функции
Функции в Delphi работают точно так же, как и во всех остальных языках программирования. Единственное, о чём нужно помнить, — мы должны заранее определить, какой тип данных вернёт нам функция.
Для примера сделаем функцию возведения в степень: мы передаём в неё два числа, а оно возводит первое в нужную степень:
function power(x, y: double): double; begin result := Exp(Y * Ln(X)); // возвращаем результат работы функции end; begin // начало основной программы Writeln('5 в степени 6 равно ', power(5, 6)); Readln; // ждём нажатия любой клавиши и выходим из программы end.
Что теперь
Надевайте фланелевую рубашку, заваривайте чай в пакетике, подключайте мышку к порту PS/2 и садитесь программировать. Вам снова 16 лет, на завтра нет домашки, а в кармане свежая карточка на 500 мегабайт интернета.
В нем мы собрали всё, что нужно знать о старте в сфере ИТ. Читайте на компьютере и телефоне, распечатывайте на принтере, пересылайте друзьям, используйте как учебное пособие в вузе и школе.
Гид скачивается бесплатно, без регистрации и ввода электронной почты. Просто тык и всё. Не забудьте сохранить на компьютере, если гид откроется в браузере.
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
За хорошего эксельщика двух питонистов дают
И какая от этого польза человечеству
Объясняем на гуманитарном
актобарзар яантарбо еокат отЧ
Несмотря на то, что 83% сайтов в интернете работают на PHP.