Планирование уроков на учебный год (по учебнику К.Ю. Полякова, Е.А. Еремина, сокращенный курс, 2 часа в неделю)



Урок 36
Простейшие программы. Вычисления. Стандартные функции
§54. Алгоритм и его свойства. §55. Простейшие программы. §56. Вычисления






Содержание урока

§54. Алгоритм и его свойства
§55. Простейшие программы
§56. Вычисления

Типы данных

Арифметические выражения и операции

Вещественные значения

Стандартные функции

Случайные числа

Вопросы и задания

Задачи


§56. Вычисления


Арифметические выражения и операции


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

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

При определении порядка действий используется приоритет (старшинство) операций. Они выполняются в следующем порядке:

• действия в скобках;
• умножение и деление, слева направо;
• сложение и вычитание, слева направо.

Таким образом, умножение и деление имеют одинаковый приоритет, более высокий, чем сложение и умножение. Поэтому в приведённом примере значение выражения, заключённого в скобки, сначала разделится на 2, а потом умножится на d.

Если в выражение входят переменные разных типов, в некоторых случаях происходит автоматическое приведение типа к более «широкому». Например, результат умножения целого числа на вещественное — это вещественное число. Переход к более «узкому» типу автоматически не выполняется, поэтому, например, вещественное значение нельзя записать в целую переменную. Нужно помнить, что результат деления (операции «/») — это вещественное число, даже если делимое и делитель — целые и делятся друг на друга нацело 1.


1 В некоторых языках, например в Си, это не так: при делении целых чисел получается целое число и остаток отбрасывается.



Часто нужно получить целый результат деления целых чисел и остаток от деления. В этом случае в школьном алгоритмическом языке используют функции div и mod, а в Паскале — одноимённые операции (они имеют такой же приоритет, как умножение и деление):

Нужно учитывать, что для отрицательных чисел эти операции по-разному выполняются в разных языках. Например, внешне следующие программы аналогичны:

Но программа на школьном алгоритмическом языке выведет результат «-4,1», а программа на Паскале — «-3,-1». Дело в том, что с точки зрения теории чисел остаток — это неотрицательное число, поэтому -7 = (-4) • 2+1, т. е. частное от деления (-7) на 2 равно -4, а остаток равен 1. Поэтому в среде КуМир эти операции выполняются математически правильно. В то же время во многих языках (например, в Паскале и в Си) при целочисленном делении используется модуль числа, а затем к частному и остатку добавляется знак «минус»:

При таком подходе частное от деления (-7) на 2 равно -3, а результат операции mod равен -1.

В школьном алгоритмическом языке есть операция возведения в степень, которая обозначается двумя звездочками: «**». Например, выражение у := 2х2 + z3 запишется так:

у:= 2*x**2+z**3


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

Следующая страница Вещественные значения



Cкачать материалы урока







Наверх