Задача 8 Урок 11 While
Primary tabs
{Пользователь вводит целые числа в цикле
(разные: четные, нечетные, положительные, отрицательные в любом порядке и количестве).
Считайте и выведите на экран значения первых трех отрицательных нечетных чисел.
После чего завершите цикл.;}
var a,b,c,d: integer;
begin
a:=1; b:=1; c:=1;
d:=1; // переключатель для while
while (d <> 0) do
begin
writeln('write integer num');
read(a);
if (Odd(a) AND (a < 0)) then
begin
if c < 0 then
begin
writeln('a , b , c is ', a,' ', b,' ', c);
readln(); readln();
d:=0;
end;
if b < 0 then
begin
c := b;
b := a;
end;
b := a; // предыдущее
end
end;
end.//write integer num //-1 //write integer num //-3 //write integer num //5 //write integer num //2 //write integer num //-5 //a , b , c is -5 -3 -1
- Log in to post comments
- 1743 reads
vedro-compota
Sat, 05/01/2021 - 12:26
Permalink
замечания:
замечания:
-- отдельная переменная не нужна, условие выхода из цикла можно описать явно, базируясь на непосредственной проверке переменных-хранилищ
if b < 0 then begin c := b; b := a;-- обмен значений в этой задаче не требуется
_____________
матфак вгу и остальная классика =)
i_love_cookies
Wed, 05/05/2021 - 14:57
Permalink
без лишней переменной и перезаписывания
var a,b,c,p: integer; begin p:=3; // собираем отрицательные числа while (p<>0) do begin writeln('write integer num'); read(a); if (Odd(a) AND (a < 0)) then begin if (p=3) then c:=a; if (p=2) then b:=a; if (p=1) then begin writeln('a,b,c is ', a,' ', b,' ', c); readln(); readln(); end; p:= p-1; end; end end.