Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Порядок действий в арифметических выражениях

Поиск

 

При вычислении арифметических выражений компьютер выполняет действия в следующем порядке:

1) вычисляются выражения в скобках (в том числе аргументы функций); порядок действий внутри скобок определяется теми же правилами (т. е. сначала вычисляются скобки внутри скобок и т. д.);

2) вычисляются значения функций;

3) справа налево выполняются возведения в степень;

4) слева направо выполняются умножение и деление;

5) слева направо выполняются сложение и вычитание.

Возведение в степень справа налево означает, что запись а**в**с следует понимать как , но не как в)с.

Умножение, деление, сложение и вычитание выполняются слева направо. Например, запись а + в - с означает + в)- с, но не а + (в -с).

Примеры записи арифметических выражений на алгоритмическом языке

 

Выражение Линейная запись
-1/x**2
a/(b*c)
a/b*c или (a/b)*c
2**(2**(2**n))
x**(y**z)
(-b+sqrt(b**2-4*a*c))/(2*a)
sqrt(p*(p-a)*(p-b)*(p-c))
(a+b+c)/2
sqrt(a**2+b**2-2*a*b*cos(gamma))
(a*d+b*c)/(b*d)
sin(alfa)*cos(beta)+cos(alfa)*sin(beta)

 


 

ЗАДАЧИ И УПРАЖНЕНИЯ

1. Вычислите значение выражения, записанного на алгоритмическом языке:

а) 24/(3*4) - 24/3/4 + 24/3*4,

б) 40/(4*5) - 40/4/5 + 40/4*5;

в) (2 + 3*4)/2 + 5 - (2 + sqrt(4));

г) 60/(23 - (2 + 3*sqrt((5 - abs (1 - 2))));

д) 71 + abs ((16 - 7*2)/2) – sqrt (sqrt (625))

2. Переведите из линейной записи в обычную:

а) а/b/с; г) а/b**с; ж) а/b**с**d;

б) а*b/с; д) а + b/с; з)1/(1+х*х);

в) а/b*с; е) (а + b)/с; и) 1/(1 + х**2).

3. Переведите из линейной записи в обычную:

а) 1/sqrt (1 + х**2); е) sin (х)**2 + sin (у)**2;

б) sqrt (х**2 + у**2); ж) sin (х**2) + sin (у**2);

в)х**(1/3); з) а + b/с + d;

г)х**(-1/3); и) (а + b)/(с + d);

д) 1/х**(1/3); к) а/sin (А).

4. Переведите из линейной записи в обычную:

а) sqrt (tg (А + В))/sqrt (tg (А - В));

б) 1/2*а*b*sin (С);

в) sqrt (b**2 + с**2 + 2*b*с*соs (А))/2;

г) 2*b*с*соs (А/2)/(b + с);

д) sqrt ((р - а)*(р - b)*(р - с)*р);

е) 4*R*sin (А/2)*sin (В/2)*sin (С/2);

ж) (а*х + b)/(с*х + d);

з) sqrt (а*х**2 + b*х + с);

и) arctg (х/sgrt (1 - х**2));

к) 2*sin ((alfa + beta)/2)*cos ((alfa - beta)/2).

5. Запишите по правилам алгоритмического языка следующие выражения:

 

а) ; л) I2

б) ; м) ;

в) ; н)

г) ; о) sin x cos y + sin y cos x;

д) ; п)

е) ; р) ;

ж) ; с) ;

з) b2 – 4ac; т) ;

и) ; у) ;

к) ; ф) | 1-|x||.

 


 

16Величины в алгоритмическом языке. Команда присваивания

 

Измерение радиации и температуры

 

В § 10 мы рассмотрели 10 из 12 команд-вопросов Робота. Познакомимся с оставшимися двумя командами.

По команде температура Робот измеряет температуру в клетке, где он находится, и сообщает результат. Температура измеряется в градусах Цельсия, она может меняться в пределах от -100 °С до 100 °С.

По команде радиация Робот измеряет и сообщает уровень радиации в текущей клетке. Радиация измеряется в условных единицах и изменяется от 0 до 10.

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

Рассмотрим пример. Робот стоит перед входом в тупик неизвестной длины. Необходимо пометить (закрасить) в тупике все клетки, радиация в которых превышает заданный опасный уровень а, и вернуть Робота в исходное положение (рис. 55).

 

Рис. 55

 

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

 

А50
ал г разведка в тупике (арг вещ а)

дано | Робот стоит левее горизонтального тупика

надо | закрашены все клетки тупика, в которых уровень

| радиации выше а, Робот в исходном положении

Нач

нц пока справа свободно

вправо

если радиация > а

то закрасить

Все

кц

нц пока сверху стена

влево

Кц

Кон

 

Компьютер запоминает информацию

Изменим условие задачи. Пусть опасный уровень радиации заранее не задан, но известно, что он равен радиации в клетке перед тупиком. Иными словами, необходимо закрасить все клетки тупика, уровень радиации в которых выше, чем в клетке, где в начальный момент находится Робот.

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

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

На алгоритмическом языке это можно записать так:

 
 
А51


алг разведка в тупике 2

дано | Робот стоит левее горизонтального тупика

надо | закрашены все клетки тупика, в которых уровень

| радиации выше, чем в исходном положении Робота

| Робот в исходном положении

нач вещ у | создать ячейку с именем у

у:= радиация | запомнить значение радиации

нц пока справа свободно

вправо

если радиация > у

то закрасить

Все

кц

нц пока сверху стена

влево

Кц

Кон

Для организации работы с памятью компьютера в алгоритмическом языке используются величины. В алгоритме А51 использована одна величина у. Выделение ячейки памяти для хранения информации происходит при описании величины (вещ у), а занесение в ячейку нужной информации происходит при выполнении команды присваивания (у:=радиация). Подробнее о работе с величинами рассказано в разделах 16.4 — 16.8.

 

Компьютер выполняет подсчет

 

Еще усложним условие задачи. Пусть опасные клетки надо отметить не в тупике, а на участке свободного пространства между Роботом и стеной (рис. 56). Изменение ситуации не мешает выполнить разметку уже известным способом, но при возвращении в исходное положение возникает проблема: как узнать, в какой клетке остановиться?

 

Рис. 56

 

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

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

А52
алг разведка в чистом поле

дано | где-то справа от Робота есть стена

надо | закрашены все клетки между Роботом и стеной,

| в которых уровень радиации выше, чем в исходном

| положении Робота

| Робот в исходном положении

нач вещ у | создать ячейку с именем у

цел n | создать ячейку n для подсчета количества шагов

у:= радиация | запомнить значение радиации

n:= 0 | обнулить счетчик

нц пока справа свободно

вправо

n:= n + 1 | увеличить на 1 счетчик количества шагов

если радиация > у

то закрасить

Все

кц

нц n раз

влево

кц

Кон

В этом алгоритме использованы две величины. Величина у используется для хранения «опасного» уровня радиации. Этот уровень запоминается в исходном положении Робота и в дальнейшем многократно используется. Величина п играет роль счетчика. В начальный момент счетчик «обнуляется» командой n:=0, а затем многократно увеличивается командой n:=n+1.

 



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 679; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.142.195.79 (0.008 с.)