Это сделает логическое выражение (a mod 2)+(b mod 2) = 1 ОБЪЯСНЕНИЕ: Оператор mod возвращает остаток от целочисленного деления операндов. a mod 2 будет равно нулю, если a четное или единице, если а нечетное. То же верно и для b mod 2. Рассмотрим поведение суммы (a mod 2)+(b mod 2) при различных комбинациях a и b 1. Оба нечетных. Сумма равна 1+1, т.е. 2 2. Одно четное, другое нечетное. Сумма равна 1+ 0 (или 0+1), т.е. 1 3. Оба четных. Сумма равна 0+0, т.е. 0. Следовательно, сумма равна единице тогда и только тогда, когда одно из чисел четное, а другое нечетное. Оставшаяся часть выражения превращает его в логическое, проверяя условие 1=1. Предлагаемое логическое выражение может быть использовано как в качестве правой части оператора присваивания, так и в качестве логичесвого выражения в операторах if-then-else или циклов while, repeat.
Var a,b,n,i:integer; bol:boolean; begin //Инициализируем переменные i:=0; n:=0; bol:=true;
//Осуществляется ввод Writeln('Введите число B: '); readln(b); Writeln('Введите число N: '); Readln(n); Writeln('Введите ', n,' целых чисел.');
//цикл (с пред условием) будет повоторятся n раз While i < n do begin //Осуществляется ввод с клавиатуры Read(a); //Проверяем является (A больше B) и (bol = true) if (a>b)and(bol) then //Если является begin //выводит значение B через пробел Write(' ',b); //и присваивает bol = ложь bol:=false; end; //выводит значение А через пробел Write(' ',a); //инкрементирует i, тоесть i:=i+1 inc(i); end; end.
{
опусти_перо;
вектор(0,30);
вектор(15,0);
вектор(0,-30);
подними_перо;
вектор(10,0);
опусти_перо;
вектор(10,30);
вектор(10,-30);
подними_перо;
вектор(-15,15);
опусти_перо;
вектор(10,0);
подними_перо;
вектор(15,-15);
опусти_перо;
вектор(0,30);
вектор(15,0);
вектор(0,-30);
подними_перо;
вектор(10,0);
опусти_перо;
вектор(10,30);
вектор(10,-30);
подними_перо;
вектор(-15,15);
опусти_перо;
вектор(10,0);
}