Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы к экзамену по информатике.docx
Скачиваний:
52
Добавлен:
15.04.2019
Размер:
480.55 Кб
Скачать

2.3. Оператор перехода. Метка

 

Оператор перехода предписывает выполнить оператор, расположенный в любом месте программы после метки.

Синтаксис оператора перехода:

goto <метка>;

Метка - это "адрес" оператора, которому передается управление. Она представляет собой целое положительное число, содержащее не более 4 цифр (от 1 до 9999), либо символьное имя. Метка записывается перед оператором, отделяясь от него двоеточием. Каждая метка, используемая в программе, должна быть описана в разделе Label, так же, как и все описанные метки должны хотя бы один раз встретиться в тексте.

В результате выполнения оператора goto управление переходит на оператор с меткой, которая указана в операторе goto. Запись оператора, на который передается управление, начинается с метки, за которой следует двоеточие.

 

2.4. Составной оператор

 

Составной оператор начинается ключевым словом begin и заканчивается ключевым словом end.

Синтаксис составного оператора:

begin <оператор 1>; ... ; <оператор N> end;

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

Пример: if x < 1 then begin y := 1 - x; z := sqr(x) end else begin

y := 1 + x; z := ln(x) end;

 

2.5. Оператор варианта

 

Оператор варианта позволяет в процессе выполнения программы выбирать возможные действия в зависимости от значения используемого выражения.

Синтаксис оператора варианта:

case <выражение> of

метка, ... , метка: <оператор 1>;

…………………………………

метка, ... , метка: <оператор N>;

end;

При этом ветвь «else» не является обязательной, а список значений может включать значения и их диапазоны, отделенные запятыми.

Значения в списках должны быть того же перечисляемого типа, что и выражение в операторе. Слова case и end действуют как операторные скобки.

Рассмотрим в качестве примера программу расчета площади пяти фигур s (квадрата со стороной a, прямоугольника со сторонами a и b, ромба с диагоналями d1 и d2, параллелограмма с основанием a и высотой h1, трапеции со сторонами a и b и высотой h2), если исходные данные задаются для одного из вариантов.

 

program ploshad;

Var a, b, d1, d2, h1, h2, s : real;

n:1..5;

Begin

read(n, a, b, d1, d2, h1, h2);

case n of

1: s := sqr(a);

2: s := a * b;

3: s := d1 * d2;

4: s := a * h1;

5: s := ((a + b) * h2) / 2;

end;

writeln('Площадь фигуры=',s)

End.

 

38. ???

39.

Группу операторов, повторяемую многократно при изменении одного параметра, называют циклом.

Каждый цикл должен завершаться после конечного числа повторений. Условием окончания цикла служит либо заданное число повторений, либо достижение заданного значения какой-либо величины.

К последним относится циклы с условием продолжения. В них выполнение цикла прекращается при достижении заданной точности определения искомой величины, или когда проверка логического условия дает результат «ложь».

Весь цикл с условием продолжения сводится к одному оператору. Синтаксис этого оператора:

While <логическое выражение> do <оператор>;

Ключевые слова While и do означают соответственно "пока" и "выполнять". Когда программа в процессе выполнения впервые достигает оператора while, осуществляется проверка истинности условия. Если условие истинно, то выполняется тело цикла (оператор). После этого происходит возврат к началу фрагмента while do, где проверка условия осуществляется вновь. Цикл будет выполняться до тех пор, пока логическое выражение будет истинным. Как только логическое выражение станет ложным, управление передается следующему за циклом оператору. Если при первом выполнении цикла значение логического оператора будет "ложь", то цикл не станет выполняться, а управление сразу же передается следующему за ним оператору.

Оператор, составляющий тело цикла с условием продолжения, может быть составным. В этом случае тело цикла начинается словом Begin, а завершается словом End, означающим конец составного оператора.

В качестве примера рассмотрим программу, составленную для вычисления квадратного корня из числа с некоторой заданной точностью (погрешностью) e.

Математически метод заключается в последовательном выполнении ряда шагов, на каждом из которых вычисляется очередное приближение к до выполнения условия | - y| e. На первом шаге начальное приближение задается произвольно (например, y1 = 1) и последовательность строится по закону: y2 = 1/2 · (y1 + x/y1) ,... , yi = 1/2 · (yi-1 - 1 + x/yi-1), пока |yi - yi-1| > e.

 

Program sqrtx;

Var eps, x, yn, yh : real;

Begin

read(x);

if x > 0 then begin

eps := 1.0e-6;

yn := 1;

yh := (yn + x/yn) / 2;

while abs(yn - yh) > eps do begin

yn := yh;

yh := (yn + x/yn)/2;

end;

write (yh); end

else write('отрицательное число');

end.