Обозначим через m количество единиц, а через n - количество двоек.
В цикле m и n изменяются следующим образом:
n=n-3
m=m+1
m=m-3
n=n+1
Итого: m=m-2; n=n-2. То есть и m и n уменьшаются на 2.
m и n - нечетные, n-m=100. Следовательно, через некое количество вычислений, последовательно уменьшаясь на 2, m примет значение 3, а n - значение 103.
n=n-3=103-3=100
m=m+1=3+1=4
m=m-3=4-3=1
n=n+1=100+1=101
Теперь цепочки их трех единиц нет. До тех пор, пока цепочка из трех единиц не образуется, операции m=m-3 и n=n+1 мы, по условию, не производим. Повторим несколько вычислений в цикле.
n=n-3=101-3=98
m=m+1=1+1=2
возвращаемся к началу цикла
n=n-3=98-3=95
m=m+1=2+1=3
m=m-3=3-3=0
n=n+1=95+1=96
возвращаемся к началу цикла
n=n-3=96-3=93
m=m+1=0+1=1
Значения m=1 и n=101 изменились на m=1 и n=93.
То есть m как было, так и осталось равным единице, а n уменьшилось на 8.
8*[101/8]=8*12=96
101-96=5
То есть, через некоторое количество вычислений, мы придем к следующим значениям: m=1 и n=5
Далее получаем:
n=n-3=5-3=2
m=m+1=1+1=2
Поскольку строка из трех двоек больше не находится, цикл завершается.
На выходе получаем строку из двух единиц и двух двоек.
var N:=((x>6) or (x=6))? (4*sqr(x)+3*x+15):(2*x+10);
write('y(',x,')=',N:1:1);
end.
{Вторая задача}
begin
var k,p: real;
writeln('Введите значения k,p: '); read(k,p);
var N:= (7*Sqr(k)-4*p)/(2*k+p);
write('Результат вычислений: ',N:1:1);
end.
Объяснение:
К первой задаче: используется сокращённое выражение оператора if..else - в скобках после введения переменной N дано выражение [x>6 или x=6]. Двоеточие после него означает, какое значение будет присвоено N: левое, если выражение истинно и правое если ложно.
Обозначим через m количество единиц, а через n - количество двоек.
В цикле m и n изменяются следующим образом:
n=n-3
m=m+1
m=m-3
n=n+1
Итого: m=m-2; n=n-2. То есть и m и n уменьшаются на 2.
m и n - нечетные, n-m=100. Следовательно, через некое количество вычислений, последовательно уменьшаясь на 2, m примет значение 3, а n - значение 103.
n=n-3=103-3=100
m=m+1=3+1=4
m=m-3=4-3=1
n=n+1=100+1=101
Теперь цепочки их трех единиц нет. До тех пор, пока цепочка из трех единиц не образуется, операции m=m-3 и n=n+1 мы, по условию, не производим. Повторим несколько вычислений в цикле.
n=n-3=101-3=98
m=m+1=1+1=2
возвращаемся к началу цикла
n=n-3=98-3=95
m=m+1=2+1=3
m=m-3=3-3=0
n=n+1=95+1=96
возвращаемся к началу цикла
n=n-3=96-3=93
m=m+1=0+1=1
Значения m=1 и n=101 изменились на m=1 и n=93.
То есть m как было, так и осталось равным единице, а n уменьшилось на 8.
8*[101/8]=8*12=96
101-96=5
То есть, через некоторое количество вычислений, мы придем к следующим значениям: m=1 и n=5
Далее получаем:
n=n-3=5-3=2
m=m+1=1+1=2
Поскольку строка из трех двоек больше не находится, цикл завершается.
На выходе получаем строку из двух единиц и двух двоек.
{Первая задача}
begin
var x: real;
write('Введите значение x: '); read(x);
var N:=((x>6) or (x=6))? (4*sqr(x)+3*x+15):(2*x+10);
write('y(',x,')=',N:1:1);
end.
{Вторая задача}
begin
var k,p: real;
writeln('Введите значения k,p: '); read(k,p);
var N:= (7*Sqr(k)-4*p)/(2*k+p);
write('Результат вычислений: ',N:1:1);
end.
Объяснение:
К первой задаче: используется сокращённое выражение оператора if..else - в скобках после введения переменной N дано выражение [x>6 или x=6]. Двоеточие после него означает, какое значение будет присвоено N: левое, если выражение истинно и правое если ложно.