Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмы и величины исп Чертежн.doc
Скачиваний:
13
Добавлен:
01.03.2025
Размер:
531.46 Кб
Скачать

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

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

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

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

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

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

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

Рис. 55

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

а

А50

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

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

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

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

нач

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

вправо

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

то закрасить

все

кц

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

влево

кц

кон

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

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

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

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

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

А51

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

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

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

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

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

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

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

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

вправо

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

то закрасить

все

кц

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

влево

кц

кон

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