Математические выражения

Таблица стандартных функций Pascal

Название и математическое обозначение функции
Указатель функции
  Абсолютная величина (модуль)    | х |     abs(x)  
  Корень квадратный     sqrt(x)
Степень y числа x   xy     power(x,y)
  Натуральный логарифм    ln x   ln(x)
  Экспонента (степень числа е ~ 2.72)   ex   exp(x)
  Целая часть х (т.е. максимальное целое число,не превосходящее х)     int(x)
  Остаток от деления целого х на целое y     x mod y
  Случайное число в диапазоне от 0 до х (не включая x)     rnd(x)
  Синус (угол в радианах)    sin x   sin(x)
  Косинус (угол в радианах)   cos x   cos(x)
  Тангенс (угол в радианах)   tg x   tg(x)
  Котангенс (угол в радианах)   ctg x   ctg(x)
  Арксинус (главное значение в радианах)   arcsin x    arcsin(x)
  Арккосинус (главное значение в радианах)   arccos x   arccos(x)
  Арктангенс (главное значение в радианах)   arctg x   arctg(x)
  Арккотангенс (главное значение в радианах)    arcctg x   arcctg(x)

Пример №1. Составить программу вычисления значения функции $$x - \sqrt{{2a+sin|3a|} \over {3.56}}$$

Значение функции в точке \(x\) можно получить, задав значение параметра \(a\). Другими словами, для того, чтобы вычислить значение функции, пользователь должен ввести два значения - \(a\) и \(x\). Текст программы выглядит следующим образом:

  program calculate;
  var
    a, x : real; { Как параметр, так и аргумент являются вещественными числами }
  begin
    { Показываем сообщение с формулой - пользователь должен знать, 
      какие расчеты производит программа! }
    writeln('Программа для расчета функции x - sqrt((2*a+sin|3*a|)/3.56)');
    { Просим пользователя ввести значение параметра }
    write('Введите a:');
    { Считываем значение параметра }
    read(a);
    { Просим пользователя ввести значение переменной }
    write('Введите x:');
    { Считываем значение переменной }
    read(x);
    { Производим расчеты и выводим результат (в данном случае все в одной 
      строчке - чтобы не вводить новую переменную для сохранения результата 
      вычисления }
    write('Значение функции: ', x - sqrt((2*a + sin(abs(3*a)))/3.56));
  end.

Задачи на вычисление по формулам

Написать программу, рассчитывающую значение следующих выражений (для каждого выражения своя программа).

Вариант 1 Вариант 2 Подсказка
\(-1 \over x^2\) \(-1 \over a^2 + 1\) Функция sqr(x) возводит число x в квадрат
\(a \over {bc} \) \(bc \over a \)
\({a \over b} c\) \({a \over b} c\)
\({a+b+c}\over3\) \({a+b}\over2\)
\(5.45\cdot{{a+2b}\over{2-a}}\) \(2.1\cdot{{a+b}\over{2-a}}\)
\(-b+\sqrt{b^2 - 4ac} \over 2a\) \(-b+\sqrt{b^2 - 4ac} \over 2a\) Функция sqrt(x) возвращает квадратный корень из числа x
\({-b + {1 \over a}} \over {2 \over c}\) \({-b + {1 \over a}} \over {2 \over b}\)
\(1 \over {1 + {a+b \over {2}}}\) \(1 \over {1 + {a+b \over {2}}}\)
\(2^{m^n}\) \(m^{n^2}\) Функция power(x,y) возводит число x в степень y

Дополнительные задачи на вычисление по формулам

  1. Считая, что Земля - идеальная сфера с радиусом \(R \approx 6350 \), определить расстояние до линии горизонта от точки с заданной высотой над Землей.
  2. Составить программу расчета значения функции $$ {x + {2+y\over x^2}}\over{y + {1\over\sqrt{x^2 + 10}}}$$ при любых \(x,y\).
  3. Составить программу расчета значения функции $$ \sqrt{\left|e-{3\over f}\right|^3 + g} $$ при любых \(e,f,g\).
  4. Даны основания равнобедренной трапеции и угол при большем основании. Найти площадь трапеции.

Логические выражения

Логические выражения могут принимать два значения - "ИСТИНА" и "ЛОЖЬ".

Логические выражения строятся из простейших высказываний, которые соединены между собой с помощью трех операций: конъюнкции (логического "И"), дизъюнкции (логического "ИЛИ") и отрицания (логического "НЕ" или инверсии).

Конъюнкция (логическое "И", обозначается $X \wedge Y$)

Выражение, включающее условия, соединенные логическим "И", имеет значение "ИСТИНА" в том и только в том случае, когда все условия имеют значение "ИСТИНА".

Например, выражение "Ученик получил золотую медаль" имеет значение "ИСТИНА" только в случае, если для всех предметов выполняется условие "Ученик получил 5". Если хотя бы для одного предмета данное условие не выполнится, итоговое выражение не будет истинным.

Дизъюнкция (логическое "ИЛИ", обозначается $X\vee Y$)

Выражение, включающее условия, соединенные логическим "ИЛИ", имеет значение "ИСТИНА", если хотя бы одно из условий имеет значение "ИСТИНА".

Например, выражение "Ученик не получил золотую медаль" имеет значение "ИСТИНА" в случае, если хотя бы для одного премета выполняется условие "Ученик не получил 5". Ученик может получить оценку ниже 5 по одному, двум или более предметам, и это не повлияет на истинность итогового выражения.

Отрицание (логическое "НЕ", обозначается $\overline{X}$)

Отрицание переводит значение "ИСТИНА" в значение "ЛОЖЬ", а значение "ЛОЖЬ" - в значение "ИСТИНА".

Например, отрицание выражения "Ученик выпустился из школы" будет формулироваться так: "Ученик не выпустился из школы".


Все логические выражения состоят из логических высказываний (или условий), которые соединены между собой с помощью конъюнкции, дизъюнкции и отрицания.

Порядок выполнения операций

Сначала выполняется отрицание, затем конъюнкция, затем дизъюнкция. Порядок операций конъюнкции и дизъюнкции может быть изменен с помощью скобок.

Примеры решения задач на логические выражения

3.2 Вычислить значение логического выражения при следующих значениях логических величин \(X,Y,X\): \(X=Ложь, Y=Истина, Z = Ложь\):

а) \(X ИЛИ Z\)

Для удобства "Истину" будем записывать как "1", а "Ложь" - как "0". Кроме того, логическое "И" будем записывать знаком \(X \wedge Y\), логическое "ИЛИ" - знаком \(X \vee Y\), логическое отрицание - с чертой над выражением: \(\overline{X}\). Тогда наше выражение запишется следующим образом: $ X \vee Z $.

Подставив заданные значения, получим: $ 0 \vee 0 = 0 $

б) $ X И Y $:

$ 0 \wedge 1 = 0 $

в) $ X И Z $:

$ 0 \wedge 0 = 0 $

3.4 Вычислить значение логического выражения при следующих значениях логических величин $X,Y$ и $Z$: $X = Истина, Y = Истина, Z = Ложь$:

а) $ НЕ X И Y $:

$\overline{1} \wedge 1 = 0 \wedge 1 = 0 $

б) $ X \, ИЛИ \, НЕ \, Y $:

$ 1 \vee \overline{1} = 1 \vee 0 = 1 $ (Приоритет "НЕ" выше, чем приоритет "И")

в) $ X ИЛИ Y И Z $:

$ 1 \vee 1 \wedge 0 = 1 \vee 0 = 1 $ (Приоритет "И" выше, чем приоритет "ИЛИ")

3.16 Вычислить значение логического выражения при всех возможных значениях величин $X$ и $Y$:

а) $ НЕ \, X \, И \, НЕ \, Y $

Всего возможно четыре варианта:

  1. $ X = 0, Y = 0 $
  2. $ X = 0, Y = 1 $
  3. $ X = 1, Y = 0 $
  4. $ X = 1, Y = 1 $

Для каждого варианта необходимо вычислить значение логического выражения:

  1. $ \overline{0} \wedge \overline{0} = 1 \wedge 1 = 1 $
  2. $ \overline{0} \wedge \overline{1} = 1 \wedge 0 = 0 $
  3. $ \overline{1} \wedge \overline{0} = 0 \wedge 1 = 0 $
  4. $ \overline{1} \wedge \overline{1} = 0 \wedge 0 = 0 $

Таблица истинности функции $\overline{X} \wedge \overline{Y}$ выглядит следующим образом:

$X$$Y$$F(X,Y)$
001
010
100
110

б) $ X \, ИЛИ \, (НЕ \, X \, И \, Y)$

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

По аналогии с п.а) вычислим значение логического выражения для каждой комбинации $X$ и $Y$:

$ 0 \vee (\overline 0 \wedge 0) = 0 \vee (1 \wedge 0) = 0 \vee 0 = 0 $

$ 0 \vee (\overline 0 \wedge 1) = 0 \vee (1 \wedge 1) = 0 \vee 1 = 1 $

$ 1 \vee (\overline 1 \wedge 0) = 1 \vee (0 \wedge 0) = 1 \vee 0 = 1 $

$ 1 \vee (\overline 1 \wedge 1) = 1 \vee (0 \wedge 1) = 1 \vee 1 = 1 $

Таблица истинности для рассмотренной функции ($X \vee (\overline X \wedge Y) $):

$X$$Y$$F(X,Y)$
000
011
101
111

Задачи на логические выражения

Задачи решаются на бумаге. Курсивом выделены те задачи, которые решаются в случае, если появляется свободное время.

3.1, 3.3, 3.5, 3.8, 3.11, 3.13, 3.15, 3.19, 3.28, 3.30, 3.32, 3.33, 3.34

Условная конструкция

Пример

4.1. Рассчитать значение \(y\) при заданном значении \(x\):

$$ y = \left\{ \begin{eqnarray} sin^2x, & x > 0, \\ 1 - 2 sin x^2, & x \leq 0. \end{eqnarray} \right. $$

Решение

    program conditional;
    var
      x : real; { аргумент синуса - любое вещественное число }
    begin
      write('Введите x: '); { просим пользователя ввести x }
      readln(x); { считываем значение x, введенное пользователем }
      if (x > 0) then
        writeln(power(sin(x), 2)) { в случае, если x положительный }
      else
        writeln(1 - 2*sin(power(x, 2))); { в случае, если x не положительный }
    end.
  

4.3 Определить, в какую из областей - I или II (рис. 4.1) попадает точка с заданными координатами. Для простоты принять, что точка не попадает на границу областей.

Решение

    program conditional;
    var
      x, y : real;
    begin
      writeln('Введите координаты точки (x,y): ');
      readln(x, y);
      if (x < 4) then
        writeln('Точка с координатами (', x, ',', y, ') попадает в I область')
      else
        if (x > 4) then
          writeln('Точка с координатами (', x, ',', y, ') попадает во II область');
    end.
  

Задачи на условные конструкции

Для каждой задачи создается собственная программа. Курсивом выделены задания, которые решаются только в случае, если остается свободное время.

4.4, 4.5, 4.7, 4.9, 4.10, 4.13, 4.14, 4.16, 4.17, 4.23, 4.27, 4.35*, 4.36.

Домашнее задание

  • Написать программы для №№ 3.29, 4.28
  • Морально подготовиться к летучке
Использованные материалы
  • Сборник задач по программированию, Златопольский Д.М

Дата последнего изменения: 26 декабря 2014