Задача 5 Урок 11
Primary tabs
http://fkn.ktu10.com/?q=node/7341
Модификация одной из пред. задач: Пользователь вводит целые числа. Пока он не введёт число большее 15, в ответ на каждое введённое число выводите сумму этого числа и двух предыдущих введённых им чисел (предыдущего и пред-предыдущего), если же введённое число больше 15, то цикл необходимо завершить.
В первом витке цикла все "предыдущие" числа можно считать единицами.
var s, i, k, E, Q, W: integer;
begin
i := 0;
s := 0;
k := 2;
Q := 0;
W := 0;
E := 0;
while(i < 15) do
begin
writeln('vvedi celoe chislo:');
readln(i);
if((k mod 2)=0) then
begin
E := Q + W;
Q := i
end
else
begin
E := Q + W;
W := i
end;
k := k + 1;
if(i < 15) then
begin
if((k mod 2)=0) then
begin
s := E + i;
writeln('summ1 = ',s);
end
else
begin
s := E + i;
writeln('summ2 = ',s);
end;
end;
end;
writeln('bb');
readln();
end.- Log in to post comments
- 4244 reads
vedro-compota
Sun, 07/25/2021 - 13:50
Permalink
i := 0; //
-- написать комментарии на назначение переменных
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Tue, 07/27/2021 - 13:57
Permalink
RE
var s, i, k, E, Q, W: integer; begin i := 0; // то что вводит пользователь s := 0; // вывод в консоль суммы нового числа и СУММЫ двух предыдущих в "E" k := 2; // чет/нечет для записи суммы предедущего и пред-предыдущего в разные переменные Q := 0; // пред-предыдущая переменная. := 0 тк еще неизвестно ее значение(не введено) W := 0; // предыдущая переменная := 0 тк еще неизвестно ее значение(не введено) E := 0; // сумма пред-предудущей и предыдущей чисел := 0 тк еще нечего складывать while(i < 15) do begin writeln('vvedi celoe chislo:'); readln(i); if((k mod 2)=0) then // В первой итерации и последующих(через одну) запись чисел идет в "E" и "Q" begin E := Q + W; Q := i end else // Во второй итерации и последующих(через одну) запись чисел идет в "E" и "W" begin E := Q + W; W := i end; k := k + 1; // меняем четность "к" чтобы перезаписывать Q W E как заложено в цикле выше if(i < 15) then // условие чтобы избежать лишней(последней) итерации(и вывода суммы) при окончании общего цикла. begin s := E + i; writeln('summ = ',s); end; end; writeln('bb'); readln(); end.vedro-compota
Tue, 07/27/2021 - 19:17
Permalink
E := Q + W;
-- дублирование кода
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Wed, 07/28/2021 - 11:55
Permalink
RE
var s, i, E, Q, W: integer; k :boolean; begin i := 0; // то что вводит пользователь s := 0; // вывод в консоль суммы нового числа и СУММЫ двух предыдущих в "E" k := true; // для записи суммы предедущего и пред-предыдущего в разные переменные Q := 0; // пред-предыдущая переменная. := 0 тк еще неизвестно ее значение(не введено) W := 0; // предыдущая переменная := 0 тк еще неизвестно ее значение(не введено) E := 0; // сумма пред-предудущей и предыдущей чисел := 0 тк еще нечего складывать while(i < 15) do begin writeln('vvedi celoe chislo:'); readln(i); E := Q + W; if(k) then // В первой итерации и последующих(через одну) запись чисел идет в "Q" begin Q := i; k := false; end else // Во второй итерации и последующих(через одну) запись чисел идет в "W" begin W := i; k := true; end; if(i < 15) then // условие чтобы избежать лишней(последней) итерации(и вывода суммы) при окончании общего цикла. begin s := E + i; writeln('summ = ',s); end; end; writeln('bb'); readln(); end.vedro-compota
Sun, 08/01/2021 - 12:55
Permalink
переделать с обменом
переделать с обменом переменных
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Mon, 08/02/2021 - 11:55
Permalink
0
0
jl8qy9kd_pro
Mon, 08/02/2021 - 11:54
Permalink
RE
var W, i, Q :integer; begin i := 0; while(i <= 15) do begin W := i; writeln('vvedi celoe chislo '); readln(i); if(i <= 15) then writeln('morelast(',Q,') + ','last(',W,') + ','new(',i,') = ',Q + W + i); Q := W; end; readln(); end.vedro-compota
Tue, 08/03/2021 - 18:58
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)