Var n:integer; begin Write('n= '); Read(n); if n = (n div 2)*2 then Writeln('Четное') else Writeln('Нечетное') end.
Тестовое решение: n= 26321 Нечетное
Филиппович_Николаевич
13.06.2021
//Можно даже без условного оператора //Pascal ABC.NET Версия 2.2 Сборка 790 const ar:array[-1..1]of string =('Нечётное','Чётное','Нечётное');
var n,k:integer; begin readln(n); try k:=5 div n ; //но div тут всё-таки есть writeln (ar[n mod 2]); except writeln('0'); end; end.
Пример ввода: 32767 Пример вывода: Нечётное
prohorovalena
13.06.2021
Цикл с предусловием это такой цикл, в котором условие проверяется перед выполнением тела цикла. А цикл с постусловием - на оборот, он сначала выполнит, а потом проверит условие и если условие true, то цикл завершится.
Цикл с постусловием, можно использовать в таких ситуациях, когда надо что-то сделать и если чего-то не хватает, то сделать еще раз. Напрмер отправить письмо на email, а если не отправилось, то повторить еще 3 раза. Сначала выполнится тело цикла, в котором находятся функции отправки письма и если отправка удачная, то сообщаем until() true. Иначе тело выполнится еще и еще и еще кучу раз, если мы не задали счетчик в теле цикла, как вариант...
Цикл с предусловием можно использовать, если надо проверять какое-то значение ПЕРЕД выполнением тела цикла и тебе не важно, должно ли оно хоть раз выполниться. Например запросить пароль у пользователя. Но если пользователь уже ввёл пароль, то зачем его запрашивать? Тут можно было бы использовать while
Verdievruslan
13.06.2021
1. В "реальном мире" это решается примерно так:
// PascalABC.NET 3.1, сборка 1198 от 11.03.2016 begin var a:=ArrRandom(ReadInteger('n='),0,2); a.Println; a.Sorted.Println end.
2. Но, поскольку считается, что школьникам больше заняться нечем, их заставляют писать примерно в таком стиле (и время займет, и ощибок понаделают):
// PascalABC.NET 3.1, сборка 1198 от 11.03.2016 const nn=100; var i,j,n,t:integer; a:array[1..nn] of integer; begin Write('n='); Read(n); Randomize; for i:=1 to n do begin a[i]:=Random(3); Write(a[i],' ') end; Writeln; for i:=1 to n-1 do for j:=1 to n-1 do if a[j]>a[j+1] then begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end; for i:=1 to n do Write(a[i],' '); Writeln; end.
n:integer;
begin
Write('n= '); Read(n);
if n = (n div 2)*2 then Writeln('Четное')
else Writeln('Нечетное')
end.
Тестовое решение:
n= 26321
Нечетное