Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ВУМИП 2012-07-06.doc
Скачиваний:
66
Добавлен:
13.05.2015
Размер:
9.35 Mб
Скачать

Примеранализа односимвольного ответа пользователя:

VarOtvet:Char//объявление переменной с символом ответа пользователя

... CaseOtvetOf//анализ возможных вариантов ответа пользователя

‘y’,’Y’,’д’,’Д’:PrYes; //положительный ответ ‑ выполнение прогр.PrYes

‘n’,’N’,’н’,’Н’:PrNo; //отрицательный ответ ‑ выполнение прогр.PrNo

ElseShowMessage(‘Ошибочный ответ!’); //запрещенный символ

1.4.8.Операторы цикла

Можно досрочно выйти из любого цикла, используя оператор Break,и досрочно перейти к следующему повторению цикла, используя про­це­ду­­руContinue.

1.4.8.1. Счетный цикл For

For <счетчик>:=<начальное значение>{To|Downto}<конечное значение>

Do <оператор>;

<счетчик> ‑ числовая переменная, которая автоматически увеличивается (или уменьшается на единицу, если указано DOWNTO) после выполнения оператора с начального значения до конечного значения.

Допускается вложенность цикла.

Пример процедуры вывода простых чисел:

Procedure TForm1.Button1Click(Sender: TObject); //заголовок процедуры

Vari,j:integer;prostoe:Boolean; //объявление переменных

Begin// начало раздела операторов

Fori:=3to100Do// внешний цикл просмотра всех чисел от 3 до 100

Beginprostoe:=True; // начало тела внешнего цикла

Forj:=2toi‑1Do//начало внутреннего цикла подбора делителей числаi

If i mod j=0 then Begin prostoe:=False; Break; End; //составное число i

If prostoe then Label1.Caption:=Label1.Caption+IntToStr(i)+','; // простое i

End//окончание внешнего цикла

End//окончание процедуры

1.4.8.2. Цикл Repeat‑ Until

Repeat <операторы тела цикла> Until <условие типа пока не>;

После выполнения операторов тела цикла проверяется условие, и если оно истинно, то цикл заканчивается, иначе ‑ цикл повторяется.

Пример. Подсчитать сумму ряда 1+1/2+1/3+...1/nс точностью до 0.0001 (пока не 1/n<0.0001).

Procedure TForm1.Button1Click(Sender: TObject); //заголовок процедуры

Vari:integer;s:real;Conste=0.0001; //объявление переменных и константы

Begin s:=0; i:=0; Repeat i:=i+1; s:=s+1/i Until (1/i)<e; //цикл суммирования

Label1.caption:=FloatToStr(s)End; //вывод суммы и окончание процедуры

1.4.8.3. ЦиклWhile

While <условие> Do <оператор>;

Если условие истинно, то выполняется оператор.

Пример. Найти минимальное слагаемое к единице, изменяющее ее (машинный эпсилон - погрешность в вычислениях).

Procedure TForm1.Button1Click(Sender: TObject); //заголовок процедуры

Vare:real; //объявление переменной

Begine:=1;Whilee/2+1>1doe:=e/2; //цикл определения погрешности

Label1.caption:=FloatToStr(e)end;//вывод погрешности в меткуLabel1

1.4.9. Оператор присоединения имени ‑With

Оператор используется для сокращения записи при обращении к полям записей, к свойствам и методам объектов и имеет вид:

With <список имен записей или объектов через запятую> Do<оператор>;

Допускается вложенность операторов With.

Запись вида: With A Do ... With B Do ... With C ...

эквивалентна записи: WithA, B, C Do...

В операторе после Doможно не уточнять ссылки для полей, свойств и методов записей и объектов, соответственно, указанных послеWith.

Примеробращения к полямFamиGrзаписиSotrudnik. Вместо операторовSotrudnik.Fam:=’Иванов’;Sotrudnik.Gr:=1970; можно записать:

With Sotrudnik Do Begin Fam:=’Иванов’; Gr:=1970; End;