ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.12.2024
Просмотров: 3669
Скачиваний: 1
СОДЕРЖАНИЕ
Часть I. Необходимые сведения о компьютере и программе 8
Часть II. Программирование на Паскале – первый уровень 29
Часть III. Программирование на Паскале – второй уровень 102
Часть IV. Работа в Паскале на компьютере 158
Часть III.Программирование на Паскале – второй уровень. Цели этой части:
Последовательность работы человека с роботом
Что нужно знать и уметь к моменту выполнения первой программы?
(2) Начало работы. Ввод программы. Выход из Паскаля
(3) Сохранение программы на диске. Загрузка программы с диска
(5) Исправление ошибок. Отладка программы.
Работа с окнами пользователя и отладчика
Копирование и перемещение фрагментов текста
Создание исполнимых файлов (exe)
Собственно работа с несколькими строками.
П2. Файловая система магнитного диска
Пример структуры каталогов на диске
Будем называть человека, профессия которого состоит главным образом в написании программ, программистом, а человека, который в основном сидит за компьютером и пользуется готовыми программами, -пользователем.
-
Программа и программирование
Список команд. Командный и программный режимы
А теперь подробнее рассмотрим, что такое программа. Чтобы лучше это понять, давайте на время забудем о компьютерах. Предположим, в вашем распоряжении находится не компьютер, а настоящий робот. Робот этот умеет понимать и выполнять команды только из следующего списка и никаких других:
Список команд робота:
ШАГ ВПЕРЕД
НАЛЕВО
НАПРАВО
ВОЗЬМИ ПРЕДМЕТ
ОПУСТИ ПРЕДМЕТ
ПОВТОРИ несколько РАЗ выполнение одной из этих команд
СЛУШАЙ ПРОГРАММУ
ВЫПОЛНЯЙ ПРОГРАММУ
Запомните, что робот не умеет делать ничего, кроме того, что упомянуто в списке его команд.
Пусть ваш робот стоит в коридоре и вам нужно, чтобы он переставил стул в комнате на новое место.
Но в списке команд робота нет такой команды "Переставить стул в комнате".Что же делать? Можно идти рядом с роботом и в нужные моменты времени приказывать ему: ШАГ ВПЕРЕД, ШАГ ВПЕРЕД,..., НАЛЕВО,..., ВОЗЬМИ ПРЕДМЕТ... и так далее. В результате стул будет переставлен. Этот режим управления роботом (как, впрочем, и компьютером) называется командным режимом. Однако, совсем не обязательно сопровождать робота на каждом шагу. Пусть вы заранее измерили все необходимые расстояния. Тогда достаточно в тот момент, когда робот находится в исходной позиции, сообщить ему инструкцию по выполнению задания, то есть задать точный порядок его действий, приводящих к перестановке стула, а затем приказать выполнить ее. Конечно, инструкция должна состоять только из команд, которые робот понимает и умеет выполнять. Вы уже знаете, что называется такая инструкция программой. Вот она:
|
Программа для робота |
Пояснения для нас с вами |
|
1. ПОВТОРИ 5 РАЗ ШАГ ВПЕРЕД |
Робот идет по коридору до дверей |
|
2. НАЛЕВО |
Робот поворачивается лицом к дверям |
|
3. ПОВТОРИ 3 РАЗА ШАГ ВПЕРЕД |
Робот подходит к стулу |
|
4. ВОЗЬМИ ПРЕДМЕТ |
Робот берет стул |
|
5. НАПРАВО |
Робот поворачивается к новому месту стула |
|
6. ШАГ ВПЕРЕД |
Робот подносит стул к новому месту |
|
7. ОПУСТИ ПРЕДМЕТ |
Робот ставит стул на новое место |
Очевидно, работая по этой программе, робот правильно переставит стул.
Итак, если вы решили не сопровождать робота на каждом шагу, а заставить его работать по программе, вы совершаете следующие действия:
Последовательность работы человека с роботом
Придумываете программу, что не всегда легко, так как нужно хотя бы знать расположение мебели, количество шагов до дверей и т.п.
Подходите к роботу, стоящему в исходном положении, и отдаете ему команду СЛУШАЙ ПРОГРАММУ
Сообщаете ему программу
Отдаете роботу команду ВЫПОЛНЯЙ ПРОГРАММУ
После этого робот работает по программе, то есть выполняет одну за другой команды, из которых составлена программа, в том порядке, в котором он их услышал, в результате чего задание оказывается выполненым, а вы, пока программа выполняется, можете и отдохнуть, чего не могли позволить себе в командном режиме .
Этот режим управления роботом называется программным режимом.
Что важно знать о программе
Чем хороша программа? Ее великое значение в том, что она заставляет робота делать вещи гораздо более сложные, чем те, которые перечислены в списке его команд. По программе робот делает то, что без программы делать не умеет.
Спрашивается, можно ли написать программу для гораздо более сложной задачи, например для перестановки всей мебели на этаже? Разумеется, можно, только программа для этого будет достаточно длинной.
Что требует от нас программа? Она требует абсолютной точности при ее составлении. Если, например, мы в первой команде самую чуточку ошибемся и скажем ПОВТОРИ 6 РАЗ ШАГ ВПЕРЕД (вместо 5 раз), робот проскочит мимо двери, на второй команде повернется и, добросовестно выполняя программу, на третьей команде проломит стену. Если мы перепутаем местами команды 6 и 7, то робот сначала поставит стул, а потом об него же и споткнется.
Запомните, что после того, как вы отдали роботу команду ВЫПОЛНЯЙ ПРОГРАММУ и робот начал ее выполнять, вы не можете программу изменить, пока он не закончил работу. Даже если вы увидите, что робот по вашей программе делает что-то не то, бесполезно кричать на него, хватать его за руку и т.п. Он на вас не обратит внимания. Максимум, что вы можете, это - подбежать к нему и выключить его. После этого вы должны отвести его в исходное положение и только затем можете сообщить ему измененную программу.
Сообщать роботу команды мы обязаны только теми словами, которые приведены в списке команд, потому что робот понимает только их. Если мы вместо команды ВОЗЬМИ ПРЕДМЕТ дадим команду БЕРИ ПРЕДМЕТ, робот нас не поймет и команду не выполнит.
Задание 1:Напишите программу, по которой робот сходит в комнату за стулом и вернется с ним в коридор в исходное положение.
Понятие о процедуре. Может ли робот поумнеть?
Умен ли наш робот? Судя по его реакции на ошибки в программе, весьма глуп. Умный робот не стал бы проламывать стенку. Однако, наш робот не виноват в своей глупости. Ведь его умственные возможности исчерпываются списком его команд. А список этот очень бедный. Чем он беден?
Первое.В этом списке нет сложных команд, таких как "Наведи порядок в комнате", "Перенеси мебель к другой стенке" и даже такой сравнительно простой, как "Переставь стул". Можете ли вы дополнить список команд робота нужными вам командами? Можете, робот для этого приспособлен. Пусть вы хотите, чтобы робот выполнял команду на перестановку стула. Для этого вы придумываете программу перестановки стула (мы ее уже придумали в п.1.1), затем придумываете, как будет звучать сама новая команда, например ПЕРЕСТАВЬ СТУЛ, и наконец сообщаете роботу программу и говорите ему, что отныне он должен ее выполнять по команде ПЕРЕСТАВЬ СТУЛ. Такая программа называетсяпроцедурой, а новая команда ПЕРЕСТАВЬ СТУЛ –обращением к процедуре или вызовом процедуры.
Итак, мы дополнили список команд робота новой командой. Можно ли считать, что робот поумнел? Конечно. Но не очень. И вот почему. Пусть стул находится от дверей не в трех шагах, а в двух. Тогда наш робот, выполняя процедуру ПЕРЕСТАВЬ СТУЛ, как она написана в п.1.1, споткнется об него, а это, конечно, не говорит о его уме. Чтобы переставить стул, где бы он ни был в комнате, робот должен сначала его найти, но команды на поиск нет в списке его команд, а составить из команд этого списка процедуру поиска невозможно. Мы начинаем видеть, чем еще беден список команд робота:
Второе.Он беден не только количеством команд, но и их содержанием. Все его команды касаются только ходьбы и переноса предметов. Фактически, наш робот очень мало умеет, он может только бездумно расхаживать и таскать с места на место мебель. Он не может включить телевизор, так как не имеет хотя бы команды нажатия на кнопку. Он не может сходить в магазин, так как не умеет считать деньги. Он не может поздороваться с вами, так как не имеет команды что-нибудь произнести. Можете ли вы что-нибудь с этим поделать? Ничего не можете, потому что таким его сделали на заводе. Вам нужен робот с гораздо более разнообразными командами. Кроме этого, хорошо было бы иметь команды для очень мелких движений, например "согнуть средний палец на правой руке". Тогда из таких команд можно было бы составить процедуры вроде "пожми руку" или "нажми кнопку" или "включи телевизор". Но воображаемый робот с такими умениями был бы очень сложным и очень дорого бы стоил.
Вопрос: Что сделает наш робот, получив, находясь в исходном положении, такую бессмысленную программу:
|
Программа для робота |
Пояснения для нас с вами |
|
1.ПЕРЕСТАВЬ СТУЛ |
Обращение к процедуре ПЕРЕСТАВЬ СТУЛ |
|
2.НАЛЕВО |
Робот поворачивается налево |
|
3.ПЕРЕСТАВЬ СТУЛ |
Обращение к процедуре ПЕРЕСТАВЬ СТУЛ |
Ответ: Выполняя первую команду (обращение к процедуре ПЕРЕСТАВЬ СТУЛ), робот благополучно переставит стул. Выполняя вторую команду, он повернется лицом к дальней стенке. Выполняя третью команду (обращение к процедуре ПЕРЕСТАВЬ СТУЛ), он на первой же команде этой процедуры (ПОВТОРИ 5 РАЗ ШАГ ВПЕРЕД) врежется в дальнюю стенку.