Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Операторы (теория)

.pdf
Скачиваний:
9
Добавлен:
13.03.2016
Размер:
690 Кб
Скачать

Операторы

<начальное значение> и <конечное значение> определяются один раз, и эти значения сохраняются на протяжении всего выполнения оператора for. Оператор, который содержится в теле оператора for, выполняется один раз для каждого значения в диапазоне между начальным и конечным значением. Управляющая переменная всегда инициализируется начальным значением. Если оператор, содержащийся в теле оператора for, изменяет значение управляющей переменной, то это является ошибкой. После выполнения оператора for значение управляющей переменной становится неопределенным.

Примеры оператора цикла с параметром:

for I := 1 to 10 do

for J := 1 to 10 do begin

X := 0;

for K := 1 to 10 do

X := X + Mat1[I,K]*Mat2[K,J];

Mat[I,J] := X;

end;

for C := red to blue do Check(C);

for I := 2 to 63 do

if Data[I] > Max then Max := Data[I];

~ 21 ~

Операторы

Пример 3.9.1. Вычислить значение функции на отрезке [-3;3] с шагом 0,5

Var

x,y: real;

xk, xn, dx: real; i, n: byte;

Begin

xn:=-3; xk:=3; dx:=0.5;

n:=round((xk-xn)/dx)+1; x:=xn;

for i:=1 to n do begin

If (x>=-1) and (x<=1) then y:=1-sqr(x) else y:=abs(x)-1;

Writeln(‘x=’, x:8:3, ‘

y=‘, y:8:3);

x:=x+dx;

 

end;

 

Readln;

{ожидание нажатия Enter}

End.

 

~ 22 ~

Операторы

Пример 3.9.2. Вычислим значения функции на отрезке [-9;9] с

шагом 1.

Var

 

x,y: real;

 

xk, xn, dx:real;

 

Begin

 

xn:=-9;

 

xk:=9;

 

dx:=1;

 

n:=round((xk-xn)/dx)+1;

 

x:=xn;

 

for i:=1 to n do begin

 

If x<=-1 then y:=ln(abs(x))

 

Else if x>=1 then y:=ln(x)

 

Else y:=5;

 

Writeln(‘x=’, x:8:3, ‘

y=‘, y:8:3);

x:=x+1;

 

end;

 

Readln;

{ожидание нажатия Enter}

End.

 

~ 23 ~

Операторы

3.10. Операторы завершения цикла

Иногда нужно прервать выполнение цикла, проанализировав какие-то условия внутри него. Для этого можно использовать оператор Break. Он прерывает выполнение тела цикла и передает управление следующему за циклом оператору.

Для прерывания циклов, размещенных в процедурах или функциях, можно использовать процедуру Exit. Она прерывает выполнение той процедуры или функции, в которой расположен цикл.

Прервать выполнение блока, в котором расположен цикл, можно, сгенерировав исключение. Наиболее часто используется процедура Abort, генерирующая «молчаливое» исключение, не связанное с какимто сообщением об ошибке.

Процедура Continue прерывает выполнение текущей итерации, текущее выполнение тела цикла и передает управление на следующую итерацию.

Для всех операторов цикла выход из цикла осуществляется как вследствие естественного окончания оператора цикла, так и с помощью операторов перехода и выхода.

~ 24 ~

Операторы

3.11. Метки и операторы перехода

При необходимости можно доказать, что рассмотренных операторов достаточно для написания программ любой сложности. К тому же современная технология структурного программирования основана на принципе "программировать без GOTO": считается, что злоупотребление операторами перехода затрудняет понимание программы, делает ее запутанной и сложной в отладке. Но в некоторых случаях использование операторов перехода может упростить программу.

Оператор перехода имеет следующий синтаксис:

goto <метка>;

Метку можно назвать именем оператора программы. В стандарте языка Pascal, в языках Object Pascal и Delphi метка – это произвольный идентификатор, позволяющий именовать некоторый оператор программы и таким образом ссылаться на него. Для совместимости со стандартом языка Pascal в Object Pascal и в Delphi в качестве меток можно

использовать целые числа без знака. Метка располагается непосредственно перед помечаемым оператором и отделяется от него двоеточием. Оператор можно помечать несколькими метками, которые в этом случае отделяются друг от друга двоеточием. Перед тем, как появиться в программе, метка должна быть описана. Описание меток состоит из зарезервированного слова label (метка), за которым следует список меток:

label loop, 1, 2;

begin

goto 1;

loop:

1:2:

goto 2;

~ 25 ~

Операторы

Действие оператора goto заключается в передаче управления соответствующему помеченному оператору. При использовании меток необходимо помнить о том, что метка, на которую ссылается оператор goto, должна быть описана в разделе описаний, и она обязательно должна встретиться где-нибудь в тексте программы. Метки, описанные в подпрограмме, локализуются в ней, поэтому передача управления извне подпрограммы на метку внутри нее невозможна.

~ 26 ~

Операторы

Лабораторная работа № 1. Операторы языка Delphi

Вариант 1

1.Определить, является ли треугольник, заданный длинами его сторон, остроугольным.

2.Возвести натуральное число в квадрат, используя следующую закономерность:

12= 1

22 = 1 + 3

З2 = I + 3 + 5

42 =1+3 + 5 + 7 п2 =1 ... + (2n-1)

3.Подсчитать k – число цифр в десятичной записи целого неотрицательного числа n.

4.Приписать по единице в начало и конец записи числа n. Например,

было n – 3456, стало n – 134561.

Вариант 2

1.Определить, есть ли среди цифр заданного трехзначного числа одинаковые цифры.

2.Определить количество трехзначных натуральных чисел, сумма цифр которых равна заданному числу N.

3.Вычислить s – сумму всех чисел Фибоначчи, которые не превосходят 1000.

4.Поменять местами первую и последнюю цифры числа.

~27 ~

Операторы

Вариант 3

1.Даны три произвольных числа. Определить, можно ли построить треугольник с такими длинами сторон.

2.Вычислить суммы кубов чисел от 25 до 125.

3.Не используя операции деления, построить возрастающую последовательность трехзначных чисел, в десятичной записи которых нет одинаковых цифр.

4.Поменять порядок цифр числа на обратный. Например, было 12345, стало 54321.

Вариант 4

1.Даны координаты (как целые от 1 до 8) двух полей шахматной доски. Определить, может ли конь за один ход перейти с одного из полей на другое.

2.Среди двузначных чисел найти те, сумма квадратов цифр которых делится на 13.

3.Можно или нет натуральное число п представить в виде суммы трех полных квадратов.

4.Найти количество четных цифр целого положительного числа.

Вариант 5

1.На поле (к, 1) шахматной доски расположен ферзь. Угрожает ли он полю (m, n)?

2.Найти такие двузначные числа, для которых сумма цифр этого числа + квадрат этой суммы равняется этому числу.

3.Даны n – натуральное число и вещественные пары х1, у1 ,..., хn, уn. Определить радиус наименьшего круга с центром в начале координат, внутрь которого попадают эти точки.

4.Найти самую большую цифру целого числа.

~28 ~

Операторы

Вариант 6

1.Выяснить, являются ли поля (к, 1) и (m, n) шахматной доски полями одного цвета.

2.Квадрат трехзначного числа оканчивается тремя цифрами, которые как раз и составляют это число. Найти такие числа.

3.Дано 10 вещественных чисел. Найти порядковый номер того из них, которое наиболее близко к целому числу.

4.Найти сумму цифр целого числа, больших 5.

Вариант 7

1.Определить, равен ли квадрат заданного трехзначного числа кубу суммы цифр этого числа.

2.Найти четырехзначные числа, которые при делении на 133 дают в остатке 125, а при делении на 134 дают в остатке 111.

3.Дано 10 целых чисел. Найти все из них, принимающие максимальное значение.

4.Определить, сколько раз данная цифра встречается в целом числе.

Вариант 8

1.Даны числа а1 b1 с1, а2 b2, c2. Определить взаимное расположение прямых, заданных уравнениями а1х + b2у = с1, а2х + b2 у = с2, то есть найти координаты точки пересечения прямых, или сообщить, что прямые совпадают, не пересекаются или вообще не существуют.

2.Найти сумму положительных нечетных чисел, меньших 100.

3.Вычислить количество точек с целочисленными координатами, попадающих в круг радиуса R.

4.Получить сумму нечетных отрицательных элементов последовательности целых чисел а1, а2..., аn

~29 ~

Операторы

Вариант 9

1. Даны три целых числа, найти среднее из них, то есть число, которое больше наименьшего из данных чисел, но меньше наибольшего.

2. Найти сумму целых положительных чисел из промежутка от А до В, кратных 4 (значения переменных Aw В вводятся с клавиатуры).

3. Не используя стандартных функций, вычислить tg x.

4. Дано натуральное число n. Вычислить выражение: 1 х 2 + 2 х 3 х 4 + ... + n х (n + 1)х ...х2n.

Вариант 10

1.По координатам концов трех отрезков определить вид треугольника (если данные отрезки позволяют его построить).

2.Найти сумму целых положительных чисел, больших 20, меньших 100, кратных 3 и заканчивающихся на 2, 4 или 8.

3.Подобрать всевозможные варианты размена произвольной > 6 руб. суммы с помощью 2- и 5-рублевых монет.

4.Определить, является ли заданное натуральное число совершенным, то есть равным сумме своих положительных делителей, кроме самого этого числа.

Вариант 11

1.Задать координаты точки X, Y. Сообщить номер квадранта на плоскости с этой точкой.

2.Вывести таблицу умножения.

3.Проверить, является ли заданное натуральное число палиндромом, то есть таким числом, десятичная запись которого читается одинаково слева направо и справа налево.

4.Найти НОД трех чисел (НОД (а,Ь,с) - НОД(НОД(a,b),с)).

~30 ~