Читайте также:
|
|
I Простые операторы
Оператор присвоения
Оператор присваивания ":= " (между двоеточием и знаком «равно» нет пробела!!!). Если мы хотим присвоить переменной intCount значение 12, то мы должны записать такую строку:
intCount:=12;
Данное выражение является командой для компилятора (вместо слова команда обычно используют более общее понятие – оператор). Заметьте, оператор присваивания (как и любой другой) заканчивается символом "; ". Есть служебные слова: begin и end – они являются границами (скобками) составного оператора, поэтому после begin "; " не ставится, но после команд внутри составной команды точка с запятой ставятся обязательно.
Оператор перехода GOTO < метка >
При написании программ часто бывает необходимо сделать так, чтобы при определенных условиях некоторый участок кода был пропущен, или возникает необходимость перескочить в какое-то место программы или подпрограммы. То есть совершить переход. Для этого служит оператор безусловного перехода – GoTo. Для того чтобы использовать его в программе мы должны определить те места программы, к которым нам нужно будет перейти и пометить их. Для этого служат метки. Метки описываются в начале процедуры или программы в разделе описаний. После того как метка описана, ее можно использовать внутри блока. Доля этого перед выделяемым участком программы записывается имя метки с «двоеточием» на конце. Для того чтобы перейти на эту метку необходимо записать GoTo <имя метки>. (Примечание: следует различать метки внутри программы, которые являются элементами языка Object Pascal, и компонент TLabel, как часть визуальной среды Delphi)
Procedure Calculate;
Label first_label;
Var x, y: integer;
z: Extended;
Begin
first_label: x:=StrToInt(Edit1.Text);
y:= StrToInt(Edit2.Text);
z:= x/y;
Memo.Lines.Add(IntToStr(x) + ’ разделить на ’ + IntToStr(y)
+ ‘ равно ’ + FloatToStr(z));
GoTo first_label;
End;
Данный участок программы получает первое число из компонента Edit1, второе число из компонента Edit2, производит деление и вывод результата, а затем вновь переходит к получению чисел из строк ввода. Данный пример приведен только для иллюстрации работы с метками. Если вы попытаетесь вызвать данную процедуру из программы, то машина зависнет.
Рассмотрим пример, где этот оператор применяется наиболее часто:
Procedure Calculate;
Label first_label;
Var x, y: integer; z: Extended;
Begin
first_label: x:= StrToInt(Edit1.Text);
y:= StrToInt(Edit2.Text);
IF y<>0 THEN z:= x/y;
Memo.Lines.Add(IntToStr(x) + ’ разделить на ’ + IntToStr(y)
+ ‘ равно ’ + FloatToStr(z));
IF MessageDlg('Начать заново?',mtConfirmation,[mbYes,mbNo],0)=mrNo
Then Exit ELSE GoTo first_label; End;
По завершении вычислений выдается диалоговое окно с вопросом «Начать заново?» и две кнопки «Да» и «Нет». Если пользователь выбирает нет, то программа заканчивает свою работу, если же отвечает да, то программа по оператору безусловного перехода «перескакивает» на начало вычислений. Иногда оператор безусловного перехода используется для того, чтобы пропустить какую-то часть программы.
В настоящее время этот оператор применяется очень и очень редко, поскольку уже давно доказано, что при написании программ вполне можно обойтись и без него. Показателем класса программиста является, насколько редко он использует этот «злосчастный» оператор. Если вы все же используете его в своей программе, то следует избегать «прыжков» извне внутрь составных операторов-циклов, да и вообще внутрь составных операторов.
может привести к ошибке или сбою в программе. А конструкция, когда управление передается изнутри составного оператора во внешнюю часть, встречается достаточно часто.
При практическом программировании на языке Object Pascal необходимость в использовании оператора безусловного перехода возникает не часто, хотя иногда один переход позволяет избежать очень широких циклов.
Оператор вызова процедуры или функции
Комментарии
При написании очень больших программ трудно постоянно держать в памяти для чего был написан тот или иной участок кода. В таких случаях возникает потребность во вставке в текст кода небольших поясняющих предложений – комментариев. В Object Pascal любой текст заключенный между символами { и } или (* и *) считается комментарием и компилятор не обращает на него никакого внимания. (Между скобкой и звездочкой не должно быть пробелов).
Begin
{Начало программы}
x:= Sin(3.1415);
{Вычисление ArcCos числа}
arccos:=ArcTan(Sqrt(1-Sqr(x))/x) + Pi*Byte(x<0);
(* Вычисление гиперболического косинуса числа *)
ch:=(exp(x) + exp(-x))/2;
End;
При чтении подобного кода легко понять даже постороннему человеку, какие действия выполняются в каждой строке программы.
Дата добавления: 2015-01-30; просмотров: 86 | Поможем написать вашу работу | Нарушение авторских прав |