Значение переменных k и s изменяются до тех пор, пока s < 66
Будет выведено значение переменной k. k = 19
Трассировка:
s k
0 1
4 4
11 7
21 10
34 13
50 16
69 19 ← s > 66. Выводим k.
Задание 1 во вложении.
Задание2.
const
m = 20;{максимальное количество элементов}
var
a: array[1..m] of real;
i, n: integer;
begin
Write('Введите количество элементов (от 1 до 20): ');
Readln(n);
Writeln('Вводите через пробел элементы массива');
for i := 1 to n do
begin
Read(a[i]);
a[i] := sqr(a[i])
end;
Writeln('Результирующий массив:');
for i := 1 to n do Write(a[i]:0:4, ' ');
Writeln
end.
Тестовое решение:
Введите количество элементов (от 1 до 20): 5
Вводите через пробел элементы массива
1.3 2.7 -4 4.23 0
Результирующий массив:
1.6900 7.2900 16.0000 17.8929 0.0000
Хах, это же задание с Олимпиады по информатике. Второй этап. Высшая лига. 2015.
Тоже сижу, решаю)
Вот алгоритм: 2654713
Неразрывный пробел Ctrl+Shift+пробел
перевод строки, пробел
Программы в приложении. Код Второго задания (справа на доске) сделал в одной программе с выбором номера задания. Объем получился большой, но для примера в самый раз.
1-й по счету PAS файл в приложении - N1
2-й по счету PAS файл в приложении - N2
3-й по счету PAS файл в приложении - N3_5 - Содержит в себе все второе задание из 5 примеров
program N1;
var x: real;
function y(x: real): real;
begin
if x > 0 then y := sqrt(x * x * x)
else if x < 0 then y := x
else
y := 2 + x;
end;
begin
Write('Введите x: ');
Readln(x);
Writeln('Ответ: y(', x, ')=', y(x):2:2);
end.
program N2;
var x1, x2: real;
function y(x1, x2: real): real;
begin if x1 >= x2 then y := sqrt(x1 + x2)
else y := x1 * x2;
end;
begin
Write('Введите x1: ');
Readln(x1);
Write('Введите x2: ');
Readln(x2);
Writeln('Ответ: y(', x1, ',', x2, ')=', y(x1, x2):2:2);
end.