Персональная страничка
Диканева Тараса
Викторовича

Главная \ Преподавательское \ Программирование для начинающих

2. Логические выражения и условный оператор

Предыдущий раздел:

Следующий раздел:

Контрольная работа №2

1. Вычислите, какое значение будет присвоено логической переменной b.

a)
x := 2;
y := 5;
b := not((x>=2)and(x*y<5));
б)
x := 2;
y := 55;
b := not(not(2*x>4)and(y mod 2<>1));

2. Составьте логическое выражение, которое истинно, когда точка с координатами (x, y) попадает в заштрихованную область на рисунке

(а) (б)
(в) (г)

3. Какое значение примут переменные после выполнения следующих операторов

a)
x := 5;
y := 10;
if sqr(x) > sqrt(y) then
  x:=sqr(x)
else
  y:= sqr(y);
б)
x := 5;
y := 10;
if sqr(x) > sqrt(y) then
  x := sqr(x)
else
  y := sqr(y);
  x := sqr(x);

Следующий раздел:

Предыдущий раздел:

18 комментариев

  1. Дмитрий

    Тарас Викторович, в задании 3-а программа выдает только ответ (x=…).Значение (y) не высчитается, потому, что sqr(5)>sqrt(10). Тогда зачем в примере 3-б изменено условие после else?

  2. Taras

    Не совсем понял вопрос. Программа что-то делает с переменными x и y. Нужно сказать, чему они в итоге равны. Какие-то операторы в if’е действительно не выполнятся. Собственно, задание призвано проверить, понимаете ли вы, что выполниться, а что нет.

  3. Денис

    Тарас Викторович,подскажите,я верно мыслю?или..?
    3 задача
    а)
    var
    x := 5;
    y := 10;
    begin
    if sqr(x) > sqrt(y) then
    writeln( sqr(x))
    else
    writeln ( sqr(y));
    end.

    б)

    var
    x := 5;
    y := 10;
    begin
    if sqr(x) > sqrt(y) then
    writeln( sqr(x))
    else
    writeln ( sqr(y));
    writeln ( sqr(x));
    end.

  4. Денис

    2я задача а):

    var
    x,y :real;
    begin
    readln (x,y);
    if (x>=-1) and (x<=1) and (y<=2) then
    writeln( 'верные координаты')
    else
    writeln ( 'за координатами');
    end.

    а вот с б,в,г-засада наверное(

  5. Taras

    В 3-й предполагается, что посмотрев на программу, ты скажешь чему равны x и y. Добавить описание переменных и запустить программу можно просто чтобы проверить, правильно ты понимаешь, что происходит или нет.

    Во 2-й и a) тоже не правильно. x>=-1 — все, что правее вертикальной линии x = -1, y <= 2 - все, что ниже горизонтальной линии. В общем, ничего наклонного.

  6. Денис

    Тарас Викторович!
    во 2м задании,б,в,г требуется учитывать коорд-ты в заштрихованной области и только?
    Подскажите,как их решать,нужно еще одну неизвестную вводить? или как,что то не пойму пока?!
    ps:не удивляйтесь,я больше гуманитарии,чем математик,в школе и в институте по мат наукам был очень слаб,тк не понял в опред момент и все комом в непонимании пошло.спросить стеснялся.по информатике,правда хорошо было,удивительно.
    а сеичас,уж очень стало интересно,хоть и сложно, научиться программированию,помогите! и ответьте на вопрос:
    во 2м задании,б,в,г требуется учитывать коорд-ты в заштрихованной области и только?
    Подскажите,как их решать,нужно еще одну неизвестную вводить? или как,что то не пойму пока?!

  7. Денис

    Вы сказали:»Во 2-й и a) тоже не правильно. x>=-1 — все, что правее вертикальной
    линии x = -1, y <= 2 — все, что ниже горизонтальной линии.
    В общем, ничего наклонного."
    а можно мне конкретно решение посмотреть,как это"ничего наклонного"а то мысли бегают!?

  8. Денис

    2я задача а)

    а так верно?

    var
    x,y:real;
    begin
    readln (x,y);
    if not(x1) and not(y>2) then
    writeln( ‘верные координаты’)
    else
    writeln ( ‘за координатами’);
    end.

  9. Денис

    if not( x < -1)

  10. Денис

    Тарас Викторович,ответьте пож-та мне на электронку

  11. АленА

    Задача 2
    a)
    program Grafik_a;
    var
    x, y: real;
    begin
    write(‘x=’);
    readln(x);
    write(‘y=’);
    readln(y);
    if (x>(y-2)/2)and(x<-(y-2)/2) and (y0) then
    writeln(‘true’)
    else
    writeln(‘false’)
    end.

    б)
    program Grafik_b;
    var
    x, y: real;
    begin
    write(‘x=’);
    readln(x);
    write(‘y=’);
    readln(y);
    if (x>(y-2)/2)and(x<0) and (y0) or
    (x>0)and(x<1-y) and (y0) then
    begin
    writeln(‘true’)
    end else
    begin
    writeln(‘false’)
    end;
    end.

    в)
    program Grafik_v;
    var
    x, y: real;
    begin
    write(‘x=’);
    readln(x);
    write(‘y=’);
    readln(y);
    if (x>(y-2)/2)and(x<1-y) and (y0)then
    begin
    writeln(‘true’)
    end else
    begin
    writeln(‘false’)
    end;
    end.

    Или второй вариант:
    в)
    program Grafik_v;
    var
    x, y: real;
    begin
    write(‘x=’);
    readln(x);
    write(‘y=’);
    readln(y);
    if (x>-1)and(x<1) and (y<2*x+2)and(y0)then
    begin
    writeln(‘true’)
    end else
    begin
    writeln(‘false’)
    end;
    end.

    г)
    program Grafik_g;
    var
    x, y: real;
    begin
    write(‘x=’);
    readln(x);
    write(‘y=’);
    readln(y);
    if (x>-1)and(x<0) and (y1-x) or
    (x>0)and(x<1) and (y0)then
    begin
    writeln(‘true’)
    end else
    begin
    writeln(‘false’)
    end;
    end.

  12. АленА

    Задача №3.
    a) Ответ: x=25, y=10

    проверка:
    program Prover;
    var
    x, y: integer;
    begin
    x := 5;
    y := 10;
    if sqr(x) > sqrt(y) then
    x:=sqr(x)
    else
    y:= sqr(y);
    writeln(‘x=’, x, ‘, y=’, y);
    end.

    б)Ответ: x=625, y=10

    проверка:
    program Prover_b;
    var
    x, y: integer;
    begin
    x := 5;
    y := 10;
    if sqr(x) > sqrt(y) then
    x := sqr(x)
    else
    y := sqr(y);
    x := sqr(x);
    writeln(‘x=’, x, ‘, y=’, y);
    end.

  13. Роман

    задача 2 г немножко другое оформление чем у Алены
    var
    z,z1: boolean;
    x,y: real;
    begin
    writeln(‘введите абсциссу x’);
    write(‘x= ‘);
    readln(x);
    writeln(‘введите ординату y’);
    write(‘y= ‘);
    readln(y);
    z:=(-x+y/2=1)and(x<=0);
    z1:=((x+y)=0)and(y>=0);
    writeln(‘точка с координатами ‘ , x,’ и ‘,y,’ лежит в заштрихованной области — ‘,z or z1 );

    end.

  14. Роман

    задачу вставило с ошибкой, пробую еще раз
    var
    z,z1: boolean;
    x,y: real;
    begin
    writeln(‘введите абсциссу x’);
    write(‘x= ‘);
    readln(x);
    writeln(‘введите ординату y’);
    write(‘y= ‘);
    readln(y);
    z:=(-x+y/2=1)and(x<=0);
    z1:=((x+y)=0)and(y>=0);
    writeln(‘точка с координатами ‘ , x,’ и ‘,y,’ лежит в заштрихованной области — ‘,z or z1 );

    end.

  15. Роман

    И опять неудача.

  16. Роман

    в задании 3, как мне кажется, в обоих случаях ответ х=25, у=10.

  17. АленА

    У меня было:
    a)
    program Zadacha_3a;
    var
    x, y: integer;
    begin
    x := 5;
    y := 10;
    if sqr(x) > sqrt(y) then
    x:=sqr(x)
    else
    y:= sqr(y);
    writeln(‘x=’, x, ‘, y=’, y);
    end.

    Ответ: x=25, y=10

    б)
    program Zadacha_3b;
    var
    x, y: integer;
    begin
    x := 5;
    y := 10;
    if sqr(x) > sqrt(y) then
    x := sqr(x)
    else
    y := sqr(y);
    x := sqr(x);
    writeln(‘x=’, x, ‘, y=’, y);
    end.

    Ответ: x=625, y=10

  18. Сергей

    Посмотрите и проверьте пожалуйста. Задание 2в
    program zadanie_2v;
    var
    x,y:real;
    a:boolean;
    begin
    write(‘введите координату х ‘);
    readln(x);
    write(‘введите координату y ‘);
    readln(y);
    a:=((x/0.5-y>=-2) and (y=0) and (y<=2);
    writeln('точка попадает в заштрихованную область ',a);
    end.

Добавить комментарий