Математические выражения
В математических выражениях используются операции присваивания , сложения, вычитания, умножения, деления, целочисленного деления div, остатка от деления mod.
Логические выражения
Логические выражения выполняются над операндами логического типа, то есть имеющими тип Boolean Delphi. Они применяются в основном в условных операторах.
Операторы Delphi
Для создания приложений, реализующих сложную алгоритмическую логику, нужны средства управления ходом работы программы: изменения порядка выполнения операторов в зависимости от различных условий, и эффективной организации работы часто повторяющихся фрагментов. Математически доказано, что любой алгоритм можно закодировать с помощью
оператора присваивания
условного оператора
оператора цикла
.Оператор присваевания работает следующим образом. Переменная, стоящая в левой части оператора, становится равной той величине, которая находится справа. Типы этих величин должны совпадать. В выражении, стоящем справа, также может использоваться переменная, стоящая слева var A, B : Integer; begin A:=3; B:=4; A:=A*A+B*B; end; .
Вопрос №7
Условный оператор
Условный оператор позволяет изменить порядок выполнения операторов в зависимости от выполнения некоторого условия. Вот как он записывается: if условие then действие else альтернатива ; Слова if (если), then (тогда), else (иначе) - зарезервированные. Действие и else альтернатива - это любые операторы Delphi, или несколько операторов, заключённых в логические скобки begin/end, или вызов подпрограммы. Если условие истинно, то выполняется действие, если ложно, то выполняется альтернатива. Условие представляет собой логическое выражение. В нём сравниваются значения выражений (в том числе также и логических), вызов функций, возвращающих значения типа Boolean, и комбинирование этих значений с помощью логических операций: =,-,*,/,:= и т.п.
Вопрос №8
Оператор выбора
Оператор выбора Case. С его помощью возможно делать выбор из необходимого количества вариантов. Структура в языке Delphi оператора Case имеет следующий вид:
Case Переменная of
значение 1 : оператор 1;
значение 2 : оператор 2;
----
значение N : оператор N;
Else оператор;
end;
Case, of, else, end - зарезервированные слова.
Переменная - может быть одним из стандартных типов: символьным типом, целым числом, перечисляемым типом... Вместо значения может стоять простой оператор.
значение N - произвольное значение, того же типа, что и переменная.
оператор N - любые операторы.
Работа оператора Case осуществляется следующим образом. Вначале если необходимо вычисляется значение переменной. Затем ищется соответствие переменной значению N. При равенстве происходит выполнение оператора N и оператор case завершает свою работу. Если совпадений не найдено то выполняется оператор расположенный после слова else. При отсутствии оператора else, когда нет соответствия оператор case завершит свою работу и будет выполнен следующий оператор.
Вопрос №9
Цикл с предварительным условием
Цикл - это специальная конструкция языка, позволяющая запрограммировать многократное выполнение определённого блока команд.
Цикл с предварительным условием
While <условие> do <оператор>;
Пока [выполняется условие], делать
Цикл с послеусловием
Repeat <тело_ цикла> until <условие>;
Повторять до тех пор, пока не выполнится
условие.
<тело цикла> – произвольная последовательность операторов.
Вопрос №10
Цикл с последующим условием
Цикл - это специальная конструкция языка, позволяющая запрограммировать многократное выполнение определённого блока команд.
Цикл с постусловием - REPEAT (англ. "повтор"). Примечательно, что этого цикла во многих языках программирования нет - есть только FOR и WHILE. Между тем, цикл с постусловием очень удобен.
Работает цикл точно так же, как и WHILE, но с одним лишь отличием, следующим из его названия - условие цикла располагается после тела цикла, а не до него.
Общий вид:
REPEAT
{действия}
UNTIL {условие выхода из цикла};
Есть несколько моментов, на которые стоит обратить внимание. Во-первых, в качестве условия задаётся уже условие выхода из цикла, в то время как в цикле WHILE задаётся условие продолжения цикла. Во-вторых, при наличии нескольких команд, которые помещаются в тело цикла, заключать их в блок BEGIN .. END не нужно - зарезервированные слова REPEAT .. UNTIL сами составляют аналогичный блок.
Цикл с постусловием, в отличие от цикла с предусловием, всегда выполняется хотя бы один раз! Но, как и цикл WHILE, при неверно написанном условии цикл станет "вечным".
Решение задачи с помощью цикла REPEAT
Решение нашей задачи практически не изменится - всё останется, только условие будет стоять в конце, а само условие изменится на противоположное:
procedure TForm1.Button2Click(Sender: TObject); var s,i: integer; begin i:=0; s:=0; repeat Inc(i); Inc(s,i*i*i); until s >= 50000; Label1.Caption:=IntToStr(i-1); end; |
Вопрос №11
Цикл с параметром
Цикл - это специальная конструкция языка, позволяющая запрограммировать многократное выполнение определённого блока команд.
Цикл с параметром (другое его название - цикл по переменной) позволяет выполнить набор команд фиксированное число раз, т.е. число итераций должно быть известно до начала выполнения цикла. Особенностью данного цикла является то, что заводится специальная переменная-счётчик, которая последовательно проходит указанный диапазон значений. Значение этой переменной может быть использовано в блоке кода, находящемся в цикле.
Цикл с параметром описывается зарезервированным словом FOR (англ. "для"). Общий вид конструкции цикла FOR:
FOR переменная-счётчик := начальное_значение [TO / DOWNTO] конечное_значение DO
{Действия}
Переменная-счётчик - объявленная выше переменная перечислимого типа (в большинстве случаев - число).
Начальное значение и конечное значение - границы диапазона, который последовательно "пробежит" переменная-счётчик. Значения, естественно, того же типа данных, что и переменная-счётчик.
При этом следует обращать особое внимание на указанные значения. В зависимости от их соотношения используется либо ключевое слово TO, либо DOWNTO. Слово TO используется в том случае, когда конечное значение больше начального, а DOWNTO - наоборот, т.е. когда цикл пойдёт по убыванию. В случае, если указанные значения не будут соответствовать ключевому слову, то требуемый результат не будет достигнут - цикл, вероятно, выполнится всего один раз.
В качестве действий указывается какая-либо команда, либо набор команд. Если команд несколько, их, как обычно, следует заключать в блок BEGIN .. END.
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
begin
Memo1.Lines.Clear;
for i := 1 to 100 do
Memo1.Lines.Add(IntToStr(i)+': '+IntToStr(Sqr(i)))
end;
Вопрос №12
Каждая графическая программа начинает работу с задания некоторых начальных условий, которые включают в себя установку желаемого режима дисплея, выбор системы координат для задания точек, линий и т. д. На рисунке показан ряд вариантов, которые могут встретиться. А для рисования используется весь экран. Инициализация дисплея заключается в переключении его в «графический режим», а система координат установлена так, как показано на рисунке. Координаты x и y измеряются в пикселях, причем x возрастает вправо, а y — вниз.
Рис. 2.1. Некоторые часто встречающиеся варианты форматов дисплея
Получив такую систему в свое распоряжение, энергичный программист может разработать целый инструментарий сложнейших функций, использующих эти элементарные команды, и тем самым создать мощную библиотеку графических подпрограмм. Тогда законченные графические приложения могут писаться с применением этой персональной библиотеки.
Очевидная проблема состоит в том, что каждый графический дисплей использует для своей работы различные основные команды, а каждая программная среда имеет различные наборы инструментов для создания графических примитивов. Такое разнообразие делает затруднительным перенос программы из одной программной среды в другую (рано или поздно каждый сталкивается с необходимостью переделки программы под новую среду), следовательно, программист должен создавать все необходимые инструменты для новой программной среды. Необходимость подобной реконструкции может потребовать существенных изменений всей структуры библиотеки или приложения и большой работы программиста
Вопрос №13