ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 06.01.2026

Просмотров: 451

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

18.С клавиатуры заданы два числа. Если их среднее арифметическое превышает их среднее геометрическое на 3, уменьшить каждое число на 1, в противном случае увеличить оба числа на 1.

19.Даны три числа. Найти произведение двух минимальных из них.

20.С клавиатуры заданы три числа. Найти среднее арифметическое положительных из них.

21.В последовательности четырёх целых чисел, заданных с клавиа- туры, найти количество нулей.

22.Даны два прямоугольных треугольника, катеты которых равны a1, a2, b1, b2, соответственно. Определить номер треугольника с большей гипотенузой.

23.С клавиатуры введены три числа. Расположить их в порядке убы- вания в тех же ячейках.

24.С клавиатуры введены три числа. Если их среднее арифметиче- ское в 3 раза больше их среднего геометрического, уменьшить значение каждого из них в 2 раза. В противном случае к каждому числу добавить 1.

25.С клавиатуры заданы два числа. Если первое из них больше или равно второму, удвоить их значения, в противном случае умень- шить каждое из них на единицу.

26.Найти минимальное число в последовательности их трёх чисел А, В, С.

27.Если сумма двух чисел, введённых с клавиатуры, превышает 30, увеличить первое число в 5 раз, второе в три раза, в противном случае определить модуль их разности.

28.Если модуль разности двух введённых с клавиатуры чисел пре- вышает 0,1, определить корень квадратный из модуля произведе- ния этих чисел, в противном случае увеличить значение каждого числа в 2 раза.

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

30.Если два первых среди введённых с клавиатуры трёх чисел поло- жительны, увеличить все числа в 3 раза. В противном случае оп- ределить произведение всех чисел.

Пример программы на языке Pascal

Разработать алгоритм и составить программу, в которой пользова- тель вводит с клавиатуры два числа, после чего ему предоставляется

20



следующий выбор: если первое число меньше второго, то увеличить наименьшее из введенных чисел в 5 раз и вычислить их сумму, в про- тивном случае, уменьшить наибольшее из них в 3 раза и вычислить их произведение.

Program Primer2; label A;

var x, y, z : real; m : integer;

begin

write('Введите первое число '); readln(x); write('Введите второе число '); readln(y);

A : writeln('Нажмите 1 чтобы увеличить наименьшее из них в 5 раз и сложить два числа');

writeln('Нажмите 2 чтобы уменьшить наибольшее из них в 3 раза и умножить два числа');

readln(m); case m of 1 : begin

if x<y then x:=x*5 else y:=y*5; z:=x+y;

writeln('Первое число равно ', x:8:4, ' Второе число равно ', y:8:4, ' Их сумма равна ', z:8:4);

end; 2 : begin

if x>y then x:=x/3 else y:=y/3; z:=x*y;

writeln('Первое число равно ', x:8:4, ' Второе число равно ', y:8:4, ' Их произведение равна ', z:8:4); end;

else goto A;

end;

end.

21

Рис. 5 – Схема алгоритма работы программы

Контрольные вопросы

1.Что понимают под составным оператором?

2.Особенности организации составных операторов?

3.Что понимают под алгоритмом ветвления?

22

4.Привести примеры случаев ветвления.

5.Как обозначается ветвление в блоксхемах?

6.Какие операторы ветвления существуют в языке Turbo Pascal?

7.Структура условного оператора?

8.Какой формат имеет оператор IF?

9.Какие различия между полной и сокращенной формой условного оператора?

10.Структура оператора выбора?

11.Что такое ключ выбора, список выбора и константа выбора?

12.Какие различия между полной и сокращенной формой записи опе- ратора выбора?

13.Что такое метка в языке Turbo Pascal?

14.Как описываются в программе метки?

15.Что такое оператор безусловного перехода?

23


Лабораторная работа № 3. Организация циклов

Цель работы: изучение оператора «цикла с параметром», «цикла с предусловием», «цикла с постусловием» и составление программ с циклической структурой на языке Turbo Pascal.

Теоретические сведения

Циклы предназначены для многократного выполнения некоторой последовательности операторов, что значительно сокращает объем программы и повышает ее читабельность. В языке Turbo Pascal реали- зованы три оператора цикла. Формально эти операторы называют «цикл с параметром», «цикл с предусловием» и «цикл с постуслови- ем». Для каждого из этих циклов существуют свои области примене- ния. Эти области рассмотрим при подробном рассмотрении каждого из операторов цикла.

Цикл с параметром

Обобщенный синтаксис этого оператора следующий:

for <счетчик > := <нач_знач> to <кон_знач> do <тело_цикла>;

Здесь:

<счетчик> параметр цикла переменная типа Integer. Эта пере- менная при выполнении тела цикла при каждом выполнении последо- вательно принимает значения от <нач_знач> до <кон_знач> ;

<нач_знач>, <кон_знач> начальное и конечное значение счет- чика;

<тело_цикла> последовательность операторов, которая выпол- няется в цикле. Тело цикла может содержать один оператор или не- сколько. В случае нескольких операторов их заключают в оператор- ные скобки (составной оператор).

При выполнении программы процесс выполнения цикла выглядит следующим образом:

первоначально (до цикла) значение переменнойсчетчика в общем случае не определено;

в момент первого выполнения оператора for счетчик принимает значение <нач_знач>;

далее выполняются операторы <тело_цикла>. При выполнении этих операторов значение счетчика не изменяется;

24


при достижении последнего оператора в теле цикла управление возвращается на оператор for, где значение счетчика увеличивает-

ся на 1 и сравнивается с <кон_знач>. Если счетчик стал больше, чем <кон_знач>, управление передается на следующий после цикла оператор.

Таким образом, можно сделать следующий вывод: цикл for выпол- няется столько раз, сколько различных значений есть между <нач_знач> и <кон_знач> включительно. Cхема алгоритма цикла с параметром приведена на рисунке 6.

Рис. 6 – Схема алгоритма цикла с параметром

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

В том случае, если требуется менять значения счетчика в сторону уменьшения от большего к меньшему то применяется несколько иная форма цикла:

for <счетчик > := <нач_знач> downto <кон_знач> do <те-

ло_цикла>;

В этом случае при каждом выполнении оператора for значение счетчика уменьшается на 1.

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

Цикл с предусловием

Обобщенный синтаксис этого оператора следующий: while <условие> do <тело_цикла>;

25

<Условие> является логическим выражением. Это означает, что

результатом вычисления этого выражения является одно из значений

TRUE или FALSE.

Тело цикла выполняется до тех пор, пока значением условия явля- ется TRUE. Обратите внимание, что возможна ситуация, когда усло- вие всегда будет истинным. В этом случае цикл будет выполняться бесконечно. Если условие изначально ложно, тело цикла не выпол- нится ни разу, и управление сразу будет передано на оператор, сле- дующий за телом цикла. Схема алгоритма цикла с предусловием при- ведена на рисунке 7.

A

Рис. 7 – Схема алгоритма цикла с предусловием

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

Цикл с постусловием

Обобщенный синтаксис этого оператора следующий: repeat <тело_цикла> until <условие>;

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

26