09.29 Логические выражения и условный оператор; побочный эффект; EJudge

Форма для сдачи

Работа в EJudge

Асимметричность операции присваивания

:)) В чём проблема с такой записью?

Логические операции

/!\ В современном Си есть тип bool, в ANSI Си (стандарт C90) — нет.

Сравнения

Всего 6: <, >, <=, >=, ==, !=

Сравнивать можно:

:)) В чём проблема сравнения знаковых и беззнаковых чисел?

(НЕ УСПЕЛИ) Тернарная операция

Про scanf

   1 int var = 5;
   2 printf("%d\n", var);

:)) В чём проблема написать функцию ввода input(), которая работала бы так

:)) <!> Как эту проблему можно решить?

⇒ «Магия» scanf() ( <!> оба утверждения не верны! потому что магия…)

TODO надо ли упражненьки помещать в EJudge? Мне кажется, нет — они слишком простые

(НЕ УСПЕЛИ) Условный оператор

Общий вид: ::= if ( <выражение> ) <оператор> [ else <оператор> ]

{OK} Ввести два числа, вывести, какое больше

{i} Переписать задачу про неравенство треугольника с помощью if:

(НЕ УСПЕЛИ) Точки последовательных вычислений

:)) <!> Повторение из лекции о точках последовательных вычислений:

Про EJudge (окончание)

EJudge: DivMul 'Умножение и деление'

Ввести два целых числа в строке через пробел. Вывести в отдельных строках сначала их произведение, а затем — результат целочисленного деления первого на второе

Input:

20 7
Output:

140
2

(да, это простая задача — осваиваем В/В EJudge)

Д/З

  1. EJudge: FloatRange 'Диапазон вещественных'

    Ввести вещественное х; если 1.0 ⩽ х ⩽ 3.0, вывести "FIRST", если 2.7 ⩽ х ⩽ 6.8, вывести "SECOND"; при невыполнении ни одного из двойных неравенств, вывести "NONE"

    Input:

    2.8
    Output:

    FIRST
    SECOND
  2. EJudge: DotInArea 'Точка в области'

    Ввести вещественные х, у через пробел. Если точка (х,у) принадлежит области, показанной на картинке, вывести "YES", иначе вывести "NO".

    • ../08_IfLogic/область.png

    Input:

    0.5 0.5
    Output:

    YES
  3. EJudge: BiQuadEq 'Биквадратное уравнение'

    Ввести вещественные a, b, c. Рассчитать корни биквадратного уравнения ax⁴ + bx² + c = 0. Если a=0, то вместо корней вывести "0". Если корней нет, вывести "-1". В противном случае вывести (через пробел) корни, упорядоченные по возрастанию. Если корень двойной, вывести его два раза.

    Input:

    1 -10 9
    Output:

    -3 -1 1 3

LecturesCMC/AL/Prac/08_IfLogic (последним исправлял пользователь FrBrGeorge 2026-10-05 11:21:18)