Урок 11 Задача 10
Primary tabs
Пользователь вводит целые числа в цикле (разные: четные, нечетные, положительные, отрицательные в любом порядке и количестве). Сохраните в переменные первые три отрицательных нечетных числа, сложите их, выведите сумму на экран и завершите цикл.
var a, b, c, x: integer;
begin
while (1=1) do // делаем бесконечный цикл
begin
write ('Введите число: ');
readln(x); // считываем введенное число
if (x mod 2 = -1) then // если при делении на 2 в остатке -1, значит число было отрицательным и нечетным
begin
c := b; // пред-предыдущее число
b := a; // предыдущее число
a := x; // текущее число
if (c<>0) then //проверяем, заполнялась ли последняя переменная
begin
write (a, ' + (', b, ') + (', c, ') = ', a+b+c); // выводим на экран
break; // прерываем цикл
end;
end;
end;
readln();
end. Вывод в консоли:
Введите число: 5
Введите число: 0
Введите число: 11
Введите число: -1
Введите число: -22
Введите число: 3
Введите число: -5
Введите число: -7
-7 + (-5) + (-1) = -13
- Log in to post comments
- 2058 reads
vedro-compota
Wed, 11/02/2022 - 19:33
Permalink
решить без обмена
решить без обмена
_____________
матфак вгу и остальная классика =)
Patrick
Fri, 11/04/2022 - 10:46
Permalink
Исправил
var a, i, s : integer; // а - введенное число, i - счетчик отрицательных введенных чисел, s - сумма begin while (i < 3) do // цикл работает, пока счетчик не дойдет до 3 begin write('Пользователь: '); readln(a); // считываем введенное число if (a < 0) then // проверяем введенное число на отрицательность begin s:=s+a; // если отрицательно - добавляем к сумме i:=i+1; // и увеличиваем счетчик end; end; writeln ('Ответ: ', s); // когда счетчик не сработет (дойдет до 3), последнее значение s выведется на экран readln(); end.Вывод в консоли:
vedro-compota
Wed, 11/09/2022 - 18:47
Permalink
обмена быть не должно, но
обмена быть не должно, но значения трех переменных должны храниться отдельно
_____________
матфак вгу и остальная классика =)
Patrick
Sun, 11/13/2022 - 11:13
Permalink
Исправил 2.0
var a, b, c, i: integer; // три переменные и счетчик цикла begin while (i<=2) do // цикл действует, пока счетчик не превысит 2 begin write ('Введите число: '); if (i=0)then // вложенные условия, проверяем значения счетчика readln(a) else if (i=1)then readln(b) else if (i=2)then readln(c); {вложенные условия, проверяем значения счетчика, введенное число считываем в ту или иную переменную, в зависимости от значения счетчика} if (i=0) and (a mod 2 = -1) or (i=1) and (b mod 2 = -1) or (i=2) and (c mod 2 = -1) then i:= i+1; {т.е. текущая переменная перезаписывается, пока пользователь не введет отриц-е неч-е число, тогда счетчик увеличивается и переходим на следующую переменную} end; write (a, ' + (', b, ') + (', c, ') = ', a+b+c); // выводим на экран readln(); end.Вывод в консоли:
vedro-compota
Sun, 11/13/2022 - 13:07
Permalink
if (i=0) and (a mod 2 = -1)
_____________
матфак вгу и остальная классика =)
Patrick
Mon, 11/14/2022 - 19:21
Permalink
Исправил 3.0
var a, b, c, i: integer; // три переменные и счетчик цикла begin while (i<=2) do // цикл действует, пока счетчик не превысит 2 begin write ('Введите число: '); readln(c); // считываем пока всё в третью переменную if (c mod 2 = -1) then // проверяем на отрицательность и нечетность begin i:= i+1; // увеличиваем счетчик, если условие верно if (i=1) then // выбираем переменную в зависимости от счетчика a:=c else if (i=2)then b:=c; end; //при i=3 переменная с уже будет записана end; write (a, ' + (', b, ') + (', c, ') = ', a+b+c); // выводим на экран readln(); end.Вывод в консоли:
vedro-compota
Sat, 11/19/2022 - 17:20
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)