Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
42_77_87_92_97_102_107.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
50.86 Кб
Скачать

87. Стандартные функции. Оператор присваивания. Сохранение проекта. Условные операторы. Отладка и тестирование. Оператор выбора

Оператор присваивания самый простой и употребляемый, записывается двумя символами - двоеточие и равно без пробелов ( := ). Используется для присвоения значения переменной.

Пример:

I := 67; J:= 20+1;

Сохранение проекта

Проект - это набор файлов, используя которые компилятор создает исполняемый файл программы (ехе-файл). В простейшем случае проект состоит из файла описания проекта (dpr-файл), файла главного модуля (pas-файл), файла ресурсов (res-файл), файла описания формы (dfm-файл), файла описания функций (срр-файл) и некоторых других файлов.

Чтобы сохранить проект, нужно из меню File выбрать команду Save Project As. Если проект еще ни разу не был сохранен, то Delphi сначала предложит сохранить модуль (содержимое окна редактора кода), поэтому на экране появится окно Save Unitl As. В этом окне (рис. 26) надо выбрать папку, предназначенную для файлов проекта, и ввести имя модуля. После нажатия кнопки Сохранить, появляется следующее окно (рис. 27), в котором необходимо ввести имя файла проекта.

Условные операторы в языках программирования позволяют создавать сложные нелинейные алгоритмы, о которых и пойдет речь в этом уроке.Условия в программном коде Delphi/Pascal обозначаются специальными условными операторами if и case, без которых сейчас не обходится практически не одна программа. Условные операторы позволяют выполнять какие-либо действия при определенных условиях. Разберем непосредственно конструкцию простого условия:

1

if {условия} then {действие, выполняющееся при условии};

Как видите, сначала мы ставим оператор if , затем указывам условие или условия (их может быть несколько). Затем ставим оператор then и указываем действие, которое выполнится при указанном условии. Такая конструкция позволяет создавать несколько условий, однако позволяет создать только одно действие, выполняющееся при этом условии. После единственного действия мы как обычно ставим ";".

Для того, чтобы задать несколько действий, мы можем использовать другую конструкцию:

if {условия} then begin {действие, выполняющееся при условии}; {действие, выполняющееся при условии}; end;

Стоит учесть, что ";" ставиться только в конце оператора, т.к. служебные слова then и else входят в состав оператора if, и перед ним точка не ставиться.

Кроме того, сами условия, при которых выполняются действия, могут включать в себя несколько простых условий, каждое из которых заключается в скобки (это мы разберем чуть далее).

Таким образом, между вложенными в условие операторами begin и end мы можем задавать несколько действий. Каждое действие оканчивается ";". После end в условии тоже ставится ";".

Существует также более сложная конструкция условий, которая позволяет задавать действия для такого случая, когда условия оператора if не выполняются:

if {условия} then begin {действие, выполняющееся при условии}; {действие, выполняющееся при условии}; end else begin {действие, которое выполняется в противном случае}; {действие, которое выполняется в противном случае}; end;

Также, если в условной конструкции нам нужно выполнить только одно действие, то справедлива следующая конструкция:

if {условия} then {действие, выполняющееся при условии} else {действие, которое выполняется в противном случае};

Теперь разберемся, как же задавать нам сами условия. Условия, как я уже говорил могут быть сложными, т.е. состоять из нескольких подусловий. Примеры условий:

if a>b then {если a численно больше b (только для численных переменных)}; if (a>b)and(a>c) then {если a численно больше b и численно больше c (только для численных переменных)}; if (a>b)or(c>d) then {если a численно больше b или c>d (только для численных переменных)}; if (a>b) then {если a численно больше b (только для численных переменных)}; if not(a>b) then {если не выполняется условие "a численно больше b" (только для численных переменных)}; if (a<>b) then {если a не равняется b (только для численных переменных)}; if str1=str2 then {если строка1 посимвольно равна строке2}; if str1<>str2 then {если не выполняется условие "строка1 посимвольно равна строке2"}; if str1='test' then {если строка1 посимвольно равна строке "test"};

Если один оператор if может обеспечить выбор из двух альтернатив, то оператор выбора case позволяет сделать выбор из произвольного числа имеющихся вариантов.

Формат записи оператора case:

case <выражение-селектор > of <список значений1>: <оператор1;> <список значений 2>: <оператор2;> … <список значений N>: <операторN> else <оператор> end; Оператор выбора case работает следующим образом. Сначала вычисляется значение выражения-селектора, затем в последовательности операторов отыскивается такой, которому предшествует константа, равная вычисленному значению. Если ни одна из констант не равна вычисленному значению, выполняется оператор, стоящий за словом else. Если слово else отсутствует, выполняется оператор, находящийся за словом end, т. е. первый оператор за границей case. Селектор должен относиться к одному из целочисленных типов (находящихся в диапа-зоне — 32768..32767): булевскому, литерному или пользовательскому. Список констант выбора состоит из произвольного количества значений, или диапазонов, отделенных друг от друга запятыми. Границы диапазона записываются двумя константами через разграничитель " .. ". Тип констант в любом случае должен совпадать с типом селектора. В синтак-сическом описании, приведенном выше, предполагается использование одного оператора для каждой альтернативы, но при необходимости можно задать несколько операторов, сгруппировав их в составной оператор. В то же время ветвь else допускает использование последовательности операторов, разделенных символом ";". При использовании оператора выбора case должны .выполняться следующие правила: 1. Значения выражения "переключателя", записанного после служебного слова case, должны принадлежать дискретному типу (лат. discretus — прерывистый, дробный, состоящий из отдельных частей); для целого типа они должны лежать в диапазоне integer. 2. Все константы, предшествующие операторам альтернатив, должны иметь тип, совместимый с типом выражения. 3. Все константы в альтернативах должны быть уникальны в пределах оператора варианта (т. е. повторения констант в альтернативах не допускаются); диапазоны не должны пересекаться и не должны содержать констант, указанных в данной или других альтернативах. Ниже приведены типичные формы записи оператора case. Селектор интервального типа:

case I of 1..10 : Writeln ('число ', I:4, ' в диапазоне 1 - 10'); 11..20 : Writeln ('число ', I:4, ' в диапазоне 11 - 20'); 21.. 30 : Writeln ('число ', 1:4, ' в диапазоне 21 - 30 ') else Writeln ('число', I:4, ' вне пределов контроля') end; Селектор целочисленного типа:

case I of 1 : Z := I + 10; 2 : Z := I + 100; 3 : Z := I + 1000 end;