Рассмотрены некоторые вопросы контрольной работы и ответы на них.

1. Чему равен результат операции “ / “ над целыми и над вещественными числами. Объяснить и привести примеры.

Ответ

Результат операции “ / “ над целыми и над вещественными числами всегда имеет вещественный тип.

Пример.

var a, b,c:integer;

x, y,z:real;

begin

x:=3.14; y:=0.5;

z:=x/y; // всегда верно, за исключением деления на ноль

a:=7; b:=6;

z:=a/b;//Нет ошибки. При делении двух целых получается результат вещественного типа

writeln( a/b);// нет ошибки, результат: 1.

c:=a/b;

//ошибка: попытка присвоить переменной типа integer значение типа real

end.

2.Как проверить, делится ли целое число на 3. Объяснить и привести примеры

Ответ. Для проверки, делится ли целое число на 3, надо найти при целочисленном делении остаток от деления числа на 3 и проверить равен ли он нулю.

1-й вариант 2-й вариант

var a:integer; var a:integer;

b:Boolean;

if a mod 3 = 0 then b:=a mod 3=0;

writeln('yes') writeln(b)

else

writeln('no');

Следующее решение тоже правильное

a:=12;b:=6;

if a div b = a/b then // перед сравнением целого с вещественным

//целый операнд получает вещественное представление

writeln('yes’)

else

writeln('no');

Но первый вариант предпочтительнее

3. Как проверить, является ли целое число чётным. Объяснить и привести примеры

Ответ. При целочисленном делении числа на 2 остаток должен быть равен нулю.

Можно также использовать стандартную функцию odd

1-й вариант 2-й вариант 3-ий вариант

НЕ нашли? Не то? Что вы ищете?

var a:integer; var a:integer; var a:integer

b:Boolean;

.

if a mod 2 = 0 then b:=a mod 3=0; if not odd(a) then

writeln('yes') writeln(b) writeln('yes')

else else

writeln('no'); writeln('no');

4. y =

Ответ

var x, a,b, y:integer;

begin

writeln(‘a, b,x=?’);

readln(a, b,x);

if x=0 then

if a>b then

y:=a

else

y:=b

else if x=1 then

if a<b then

y: =a

else

y:=b

else

y:=abs(a+b);

writeln(‘y=’,y)

end.

5.

Ответ

var x, y0:integer;

begin

writeln(‘x=?’);

readln(x);

if x>25 then

y0:=x/25

else if x>1 then

y0:=x/5

else

if 2*x<0.95 then

y0:=2*x

else

y0:=0.95;

writeln(‘y0=’,y0)

end.

6. y =

Ответ

var x, y:integer;

begin

writeln(‘x=?’);

readln(x);

if x>1 then

y:=-4

else

begin

y:=x*x*x+3*x+4;

if x<0 then

y:=y*y

end;

writeln(‘y=’,y)

end.

7. .Определите “полный условный оператор”. Когда он используется. Привести примеры.

Ответ

Определение условного оператора:

if b then

оп1

else

оп2.

b – логическое выражение, истинность которого проверяется

оп1 – один любой оператор

оп2 – один любой оператор

Блок-схема:

Используется, когда нужно выбрать действие (действия) оп1 или оп2 в зависимости от истинности или лжи проверяемого логического выражения B

Пример. Hайти min из a, b.

if b>a then
  min:=a
else
  min:=b;

Пример. (используется составной оператор)

Если a=b то вычислить x=a+b, y=a*b

Если ab то вычислить x=sinacos b, y=

If a=b then

begin

x:=a+b;

y:=a*b

end

else

begin

x:=sin(a)-cos(b);

y:=exp(a-b)

end;

Вложенные условные операторы

В качестве оператора по ветви if или else может быть другой условный оператор.

Пример. Дано x. Найти y, равное 2*x, при x>3, -x, при 1<x<=3 и x*x, при x<1.

if x>3 then
  y:=2*x
else if x>1 then
  y:=-x
else
  y:=x*x;

8. Определите “неполный условный оператор”. Когда он используется. Привести пример

Определение неполного условного оператора:

if b then

оп1

Блок-схема:

b – логическое выражение, истинность которого проверяется

оп1 – один любой оператор

оп2 – отсутствует

Используется, когда при истинности проверяемого логического выражения B

нужно выполнить действие (действия) оп1

Пример Hайти max из a, b.

max:=a;

if b>a then
  max:=b

Пример. Упорядочить значения в a, b по возрастанию. (Используется составной оператор):

if a>b then
begin
  v:=a;
  a:=b;
  b:=v;
end;

Помните правило: еlse относится к ближайшему одинокому if.

if B then
  if C then
  A1
  else A2

Если в состав полного условного оператора по ветви then входит неполный условный оператор, его нужно заключить в begin и end.

Пример.

if b1 then

begin

if b2 then

s1

end

else

s2