Задача 1

Определить функцию фрагмента алгоритма, записать его кратко, а также выполнить его трассировку при указанных начальных данных:

х:=a[0];
for i:=1 to n do
 x:=x*s+a[i];
writeln(x);.

Начальные данные: n=4, a[i]=i, s=2, i=0, 1, 2, 3, 4. Указание: вспомнить схему Горнера.

Решение

Фрагмент алгоритма вычисляет n-е частичные суммы ряда

Σ i = 0 ( 2 n 1 ) .

Трассировка:
Оператор Условие i x Примечание
х:=a[0] 0 0
for i:=1 to n do Да 1
x:=x*s+a[i] 1 0 · 2 + 1
for i:=1 to n do Да 2
x:=x*s+a[i] 4 1 · 2 + 2
for i:=1 to n do Да 3
x:=x*s+a[i] 11 4 · 2 + 3
for i:=1 to n do Да 4
x:=x*s+a[i] 26 11 · 2 + 4
for i:=1 to n do Нет 5
writeln(x) На экране: 26

НАВЕРХ

Задача 2

Задать некоторый массив х небольшой размерности и определить, чему будет равно значение переменной s после завершения фрагмента программы:

i:=1;
j:=1;
s:=0;
while ((i<n) and (x[i,j]>0)) do
begin
 j:=i;
 while ((j<m) and (x[i,j]>0)) do
 begin
  s:=s+x[i,j];
  j:=j+1;
 end;
 i:=i+1;
end;?

Указание: задайте, например, массив из чисел x[i,j]=i+j, i=1, 2; j=1, 2, 3.

Решение

Зададим массив из чисел x[i,j]=i+j, i=1, 2; j=1, 2, 3.

Данный фрагмент вычисляет в матрице сумму элементов, расположенных на первой диагонали до первого такого элемента, меньшего или равного нулю, кроме последнего элемента этой диагонали.

Для заданного массива: s=2.

НАВЕРХ

Задача 3

Составить алгоритм нахождения произведения всех чисел, превышающих среднее геометрическое заданного ряда вещественных чисел. Указание: сначала найти среднее геометрическое элементов ряда - оно равно корню степени n от произведения таких чисел, где n - количество таких чисел.

Решение

p:=1;
for i:=1 to n do
 p:=p*a[i];
s:=exp(ln(p)/n);
p1:=1;
for i:=1 to n do
begin
 if a[i]>s then
  p1:=p1*a[i]
end;
writeln(p1);

s - среднее геометрическое; p1 - искомое произведение. Корень степени n ищется с помощью конструкции s:=exp(ln(p)/n);, поскольку такого оператора в Паскале нет.

НАВЕРХ





Индекс цитирования Яндекс.Метрика Рейтинг@Mail.ru хостинг по разумной цене