ВУЗ:
Составители:
Рубрика:
121
min:=a;
for i:=2 to n do
begin
read(b);
c:=b+1/a; { вычисляем элемент заданной последовательности }
if max<c then max:=c { находим max и min }
else if min>c then min:=c;
a:=b { запоминаем предыдущий элемент }
end;
write(max+min).
Упражнение. Выясните, изменится ли работа фрагмента 40, если в условном
операторе заменить «else» на «;». Какое решение лучше: с else или без else,
почему?
Пример 10.42. Последовательность целых чисел вводится с клавиатуры. Первое
введенное число не является членом последовательности, а задает количество
членов последовательности. Определить, что встретится раньше в этой
последовательности - положительное или отрицательное число.
Решение. В данной задаче количество вводимых данных определяется первым
введенным элементом. После этого количество элементов для ввода будет
известно, однако количество выполнения тела цикла по-прежнему неизвестно, так
как все элементы могут оказаться равными нулю, тогда придется ввести все
элементы. Если при вводе встретится элемент, отличный от нуля, то результат
будет
известен и ввод можно завершить. Таким образом, имеется несколько
причин окончания цикла, поэтому фрагмент должен предусматривать
соответствующие варианты его окончания.
{ фрагмент 41 }
read(n);
i:=1;
f:=false;
while (i<=n) and not f do
begin
read(a);
if a=0 then i:=i+1 else f:=true
end;
if f
then if a<0
then write('отрицательный элемент встречается раньше')
else write('положительный элемент встречается раньше')
else write('все элементы равны нулю').
Упражнение. Что нужно добавить к фрагменту 41, чтобы узнать номер первого
положительного или отрицательного числа?
Пример 10.43. Последовательность чисел вводится с клавиатуры. Последним
вводимым числом является число 100. Вычислить s = x
1
x
2
x
3
+ x
2
x
3
x
4
+ x
3
x
4
x
5
+ ... +
x
n-2
x
n-1
x
n
, где x
n
=100.
Решение. Количество элементов для ввода неизвестно, но окончанием ввода
является обработка элемента, равного 100, поэтому цикл - итерационный. В цикле
121
min:=a;
for i:=2 to n do
begin
read(b);
c:=b+1/a; { вычисляем элемент заданной последовательности }
if maxc then min:=c;
a:=b { запоминаем предыдущий элемент }
end;
write(max+min).
Упражнение. Выясните, изменится ли работа фрагмента 40, если в условном
операторе заменить «else» на «;». Какое решение лучше: с else или без else,
почему?
Пример 10.42. Последовательность целых чисел вводится с клавиатуры. Первое
введенное число не является членом последовательности, а задает количество
членов последовательности. Определить, что встретится раньше в этой
последовательности - положительное или отрицательное число.
Решение. В данной задаче количество вводимых данных определяется первым
введенным элементом. После этого количество элементов для ввода будет
известно, однако количество выполнения тела цикла по-прежнему неизвестно, так
как все элементы могут оказаться равными нулю, тогда придется ввести все
элементы. Если при вводе встретится элемент, отличный от нуля, то результат
будет известен и ввод можно завершить. Таким образом, имеется несколько
причин окончания цикла, поэтому фрагмент должен предусматривать
соответствующие варианты его окончания.
{ фрагмент 41 }
read(n);
i:=1;
f:=false;
while (i<=n) and not f do
begin
read(a);
if a=0 then i:=i+1 else f:=true
end;
if f
then if a<0
then write('отрицательный элемент встречается раньше')
else write('положительный элемент встречается раньше')
else write('все элементы равны нулю').
Упражнение. Что нужно добавить к фрагменту 41, чтобы узнать номер первого
положительного или отрицательного числа?
Пример 10.43. Последовательность чисел вводится с клавиатуры. Последним
вводимым числом является число 100. Вычислить s = x1x2x3 + x2x3x4 + x3x4x5 + ... +
xn-2xn-1xn, где xn=100.
Решение. Количество элементов для ввода неизвестно, но окончанием ввода
является обработка элемента, равного 100, поэтому цикл - итерационный. В цикле
Страницы
- « первая
- ‹ предыдущая
- …
- 117
- 118
- 119
- 120
- 121
- …
- следующая ›
- последняя »
