Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник 6.doc
Скачиваний:
124
Добавлен:
09.09.2019
Размер:
4.77 Mб
Скачать
      1. Арифметические выражения

Арифметическим выражением называют запись, которая содержит элементы четырех типов

  • числа

  • имена переменных

  • знаки арифметических действий

  • вызовы функций

  • скобки для изменения порядка выполнения действий

        1. Правила записи арифметических выражений2

  1. В арифметическое выражение могут входить числа, знаки арифметических действий, имена переменных и вызовы функций.

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

  3. Для обозначения умножения используется знак *, деления /, возведения в степень ^.

  4. Знак операции умножения обязателен, например 4*a.

  5. Дробная и целая части числа отделяются точкой.

  6. Устанавливается приоритет (старшинство) операций:

 сначала выполняются операции в скобках, затем ...

 вызовы функций

 возведение в степень, затем ...

умножение и деление слева направо, затем ...

сложение и вычитание слева направо;

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

Запишем в машинном виде выражение

С учетом правил записи выражений результат будет такой:

x=(2*a+4*d)/((c-2*d)*(5-7*c)^2)+5*a/(4*d*c);

Некоторые стандартные функции уже заложены в память компьютера и для их использования надо только вызвать их по имени. Мы рассмотрим только две функции:

abs ( x ) вычисление модуля (абсолютного значения) числа x

sqrt ( x ) вычисление квадратного корня от x

Запишем в машинном виде формулу

С использованием стандартных функций это выражение запишется так

x = sqrt( (a+2*b+1)/((c-3*d)*(2*a-d)) +

abs ((15*a^2+3*b)/(5*c*(b-a))) );

      1. Цикл с параметром3

        1. З ачем нам еще один вид цикла?

Рассмотрим разные способы решения следующей задачи. Роботу надо посадить цветы в области, имеющей форму прямоугольного треугольника заданного размера. Длина его катета заранее известна (на рисунке катет равен 6 клеткам). Сейчас мы знаем, как решать эту задачу с помощью цикла повтори. Рассмотрим другой способ, в котором используется цикл пока.

Ряд

{

int n; /* выделить место в памяти */

направо;

n = 1; /* присвоить значение переменной */

пока ( n <= 6 ) /* всего 6 строк */

{

повтори ( n ) /* длина строк меняется! */

{

вперед ( 1 );

посади;

}

направо;

вперед ( 1 );

налево;

назад ( n );

n = n + 1; /* увеличить переменную n на 1*/

}

}

направо; вперед ( 1 ); налево;

назад ( n );

}

Как и ранее, мы должны использовать вспомогательную переменную n, которая равна длине очередного ряда клеток. При этом велика вероятность того, что мы забудем присвоить ей начальное значение (n = 1;) или увеличивать ее в теле цикла (n = n+1;). Чтобы сосредоточить все операции с переменной n (она называется параметром цикла) в одном месте, используют третий вид цикла, который так и называется – цикл или for (от английского “для”), который позволяет заменить как цикл повтори, так и цикл пока.

Ряд

{

int n;

направо;

цикл ( n=1; n<=6; n=n+1 )

{

повтори ( n )

{

вперед ( 1 );

посади;

}

направо;

вперед ( 1 );

налево;

назад ( n );

}

}

направо; вперед ( 1 ); налево;

назад ( n );

}

Как видно из этой программы, все операции с переменной n теперь сгруппированы в заголовке цикла for между круглыми скобками. Три части отделяются знаком «;», так же как и конец команды:

  1. Начальное условие n=1 выполняется один раз перед началом цикла;

  2. Условие продолжения n<=6 говорит о том, при каком условии цикл будет выполняться (если в самом начале это условие неверно, то цикл не выполнится ни одного раза);

  3. Изменение переменной цикла n=n+1 - этот оператор выполняется каждый раз в конце очередного прохода тела цикла.

      1. Задачи

  1. В начале значение переменной x равно 3. Как изменится x после выполнения программы:

x = 5; x = - x; x = x + 5;

  1. В начале значение переменной x равно 3, а значение y равно 5. Как изменятся x и y после выполнения программы:

y = 1; x = x + y; y = x; x = y;

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

  1. Решите задачу для Робота, используя цикл с параметром.