Пользователь вводит целые числа в цикле (разные: четные, нечетные, положительные, отрицательные в любом порядке и количестве). Сохраните в переменные первые три отрицательных нечетных числа, сложите их, выведите сумму на экран и завершите цикл.
Пользователь вводит последовательно три произвольных целых числа. Заведите три переменных и сохраните эти числа в эти переменные. Пользовательский ввод обрабатывайте в цикле.
Примечание: в одном витке цикла должен быть только 1 readln()
Пользователь вводит целые числа в цикле (разные: четные, нечетные, положительные, отрицательные в любом порядке и количестве). Считайте и выведите на экран значения первых трех отрицательных нечетных чисел. После чего завершите цикл.
Пользователь вводит целые числа, в ответ выводите символ #. Если введенное пользователем число равно 22, то завершите цикл не выводя ничего в ответ. Решите эту задачу 2-мя способами:
С использованием if()
С использованием break;
Модификация одной из пред. задач: Пользователь вводит целые числа. Пока он не введёт число большее 15, в ответ на каждое введённое число выводите сумму этого числа и пред-предыдущего введённого им числа, если это число чётное, иначе просто запрашивать новое число. Если же введённое число больше 15, то цикл необходимо завершить.
В первом витке цикла все "предыдущие" числа можно считать единицами.
У вас есть три числа (три переменные) найдите их медиану.
Примечание: это условие давалось как простая разминочная задачка для собеседования в Яндекс.
begin
readln(a);
readln(b);
readln(c);
if ((c < a) and (b > a) or (c > a) and (b < a))then
writeln(a) else
if ((a > b) and (b > c) or (a < b) and (b < c)) then
writeln(b) else
if ((a > c) and (c > b) or (a < c) and (c < b)) then
writeln(c);
readln();
end.
var s:integer;
f:boolean;
begin
f := true;
b := false;
if (f=true) then
s:=1;
else
s:=2;
if (b=false) then
s:=3;
else
s:=4;
end.
-- блоки условий можно переписать более кратко, без использования сравнения = true или = false, с сохранением той же логики работы программы.
var s:integer;
f, b:boolean;
begin
f := true;
b := false;
if f then
s:=1
else
s:=2;
writeln(s);
if not b then
s:=3
else
s:=4;
writeln(s);
readln();
end.
var z,s:integer;
f:boolean;
begin
s:=1;
if (z=s) and (f=false) then
begin
writeln();// делаем перенос строки
z:=0;
s:=s+1;//но увеличиваем кол-во строк
end;
if (z=s) and (f=true) then
begin
writeln(); // делаем перенос строки
z:=0;
s:=s-1;//но уменьшаем кол-во строк
end;
end.
-- в двух условных операторах действия частично совпадают, а значит наблюдается дублирование кода. Перепишите код так, чтобы дублирования не было.
var m,s:integer;
begin
writeln('Vvedite chislo M');
readln(m);
s:=1;
if (s = 1) then
writeln('soobchenie 1');
if (s = m) then
writeln('soobchenie 2');
end;
-- при этом известно, что если s равно 1, то на экран должно вывестись только первое сообщение (а второе выводиться не должно), а если s не равно 1, но равно m, то второе (а первое выводиться не должно).
Но сейчас программа работает не так, исправьте это.
Есть программа, где пользователь вводит число 1 или число 5:
var s:integer;
begin
writeln('Vvedite chislo 1 ili 5');
readln(s);
if (s = 1) then
writeln('soobchenie 1');
if (s = 5) then
writeln('soobchenie 2');
readln();
end;
-- но сейчас код написан неоптимально и при каждом запуске выполняется 2 сравнения, при этом код можно переписать так, что при вводе одного из двух значений, которые приводят к выводу сообщения, сравнение будет выполняться только один раз.