Автор: Каймин В.А. Щеголев А.Г. Ерохина Е.А. Федюшин Д.П.
Теги: учебники и учебные пособия по научно информационной деятельности электротехника информатика вычислительная техника компьютерные технологии
ISBN: 5-09-001280-6
Год: 1989
у
Основы
информатики ил
вычислительной
техники
ИНЮГАМ/ЛИК4-МУЫ 0 34rt744X 4
ЗЗМЗЯЛХХ 4 /TFPFJJWf ЯХРОГХШЦЯЯ 3
05Щ&/44 Х/ЩЗ//,ХХ5Ж Э34 4 44ШХ^/^ИМ.
З/УШЦЬ/ 4X44X344444
4344 - 4444 43X4446/4' 3444: 3) 1
1 5^/7/ = 3 Ш7 f<5 -
'fJ35/f№7 ~ 'ГЗШ Я/Ш
1M34/f/7/ =^24 /ГЯЛШ
4 Г6/Ш =4324 ЯШЯ (4 Г4Г4&4Ш)
эглдпь/ ее///едря здддр рд
РРЕДШЕРДЯ /ГЕСЕ4РРЫР ЗДДД</
есмредедерде д/ееср/ее» редердя
5 СР РЯДЕ ДЕРРЕ СЦЕРДРРЯ ГДЕДР73/ С ЭАР
4. СРЕДДЗДЕРДЕ Р ДРДР/S3 ДДЕ&РД/ЕР/ДЗ
5 ЕРДРРДЕДРРЕ Р Ш7Е//77ДРРЯ РЕДЕ/ДД/Д/
6.ЕРДДЕЕРРЕ ЕЕЗУДЕРРЖЗ РЕЕ/ЕРДР
Как работать с учебником
Работая дома с учебником, вначале внимательно про-
читайте текст. При этом отвечайте на вопросы, вынесен-
ные на поля,— это поможет вам вникнуть в содержание
текста. Прочитав весь текст, ответьте на вопросы для само-
контроля,, помещенные в конце параграфа. Если вы не
запомнили основные понятия данного параграфа, про-
смотрите текст еще раз. Найти нужное место в тексте не-
сложно — все основные понятия также вынесены на поля.
Если вы не смогли сразу выполнить предложенные упраж-
нения, это значит, что следует вернуться к тексту параграфа
и прочитать его еще раз.
Обратите внимание: на поля вынесены основные по-
нятия. В датьнейшем. если вам потребуется освежить в па-
мяти какое-либо из них. вы сможете без особого труда
найти его в тексте.
Все то, что вам надо твердо запомнить, напечатано в рамках.
В конце некоторых параграфов помещены задания. По
указанию учителя вы будете выполнять некоторые из них.
Задания непосредственно связаны с упражнениями, поэтому,
выполнив упражнения, вы легко справитесь и с зада-
ниями.
Как вам известно, учебник не книга для самостоятель-
ного изучения предмета. Однако, если вы по каким-либо
причинам пропустили одно или несколько занятий, не от
чаивайтесь. Вы сможете изучить часть материала само-
стоятельно, хотя для этого придется затратить гораздо
больше времени и сил.
Вопросы на полях
ОСНОВНЫЕ ПОНЯТИЯ
Так обозначаются:
— вопросы
• — упражнения
I* — задания
Основы
информатики и
вычислительной
техники
Пробный учебник
для 10—11
классов средней
школы
Рекомендовано
Главным учебно-мето-
дическим управлением
общего среднего обра-
зования Государствен-
ного комитета СССР
по народному образо-
ванию
F - ' г •- «
5 • L • *
П^сФ"- ' 'Ч1ОП<
С'”--Я . Ч
К?-с • Р-
МОСКВА «ПРО* ВГ.1ПЕНИЕ» 1989
ББК 73я72
0-75
Авторы:
В. А. Каймин, А Г. Щеголев, Е. А. Ерохина. Д. П. Федюшин
Учебному пособию присуждено 11 место на Всесоюзном конкурсе учеб-
ников по основам информатики и вычислительной техники для средней
общеобразовательной школы.
Основы информатики и вычислительной техники: Проб. учеб, пособие
0-75 для 10—II кл. сред. шк. / В. А. Каймин, А. Г. Щеголев, Е. А. Ерохина,
Д. П. Федюшин.— М.: Просвещение, 1989.—272 с.: ил.
1SBX 5-0Я-001280-6
О
4306020000—551
103(03) — 89
Письмо Рособразования СССР
ББК 73я72 |-32.973я72
Учебное издание
Каймии Виталий Адольфович, Щеголев Александр Гелиевич
Ерохина Елеиа Альфредовна, Федюшин Дмитрий Петрович
ОСНОВЫ ИНФОРМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
Зав. редакцией Р. А. Хабнб
Редактор А. К. Компанец
Младшие редакторы О. В. Агапова, Е. А. Буюкляи, О. В. Котенкова
Художники Е. Л. Серов, Е. Ю. Богданова
Художественный редактор М. Я. Турбовской
Технический редактор Р. С. Невретдннова
Корректоры Н. И. Новикова, Е. Е. Чапюк
ИБ № 12105
Сдано наОор IS 12 88. Подписано к печати 24.05.89. Формат 70X90'/,,. Бум. офсетиаа № 2. Гарант. Лвтерат. Печать' °Ф“тна*
Уел. печ л 19,89 + фор. 0,44 4-вил. 2,34. Уел. кр -отт. 50,24. Уч.-изд. л. 17,744-фор. 0,604-вкл. 3.42. Тираж 328OOU экз.
Заказ 1994 Цена 70 к Цена с припрессовкой пленки 80 к.
Ордена Трудового Красного Знамени издательство «Просвещение» Государственного комитета РСФСР но делам издательств,
полиграфии и книжной торговли. 129846, Москва, 3-й проезд Марьиной рощи, 41.
Смоленский полиграфкомбинат Госкомиздата РСФСР 214020, Смоленск, ул Смольянинова, I.
ISBN 5-09-001280-6
© Издательство «Просвещение», 1989
Дорогие старшеклассники!
Учебное пособие, которое вы держите в руках,— это
введение в мир вычислительной техники и новой научной
дисциплины, получившей название «информатика». Рабо-
тая с вычислительными машинами на уроках, вы в самое
ближайшее время научитесь с их помощью считать и рисо-
вать, вводить и редактировать тексты, накапливать и обра-
батывать информацию — документы, таблицы и другие
виды данных.
Вычислительные машины, которые стоят в вашей шко-
ле,—универсальные устройства накопления, обработки и
передачи информации (текстов и таблиц, рисунков и черте-
жей, числовых данных и различных сведений). Сведения
о ком-то или о чем-то — это основное содержание любой
информации, обрабатываемой компьютерами, записываемой
в тетрадях и книгах, в рисунках и чертежах, передаваемой
друг другу устно, жестами или в письменной форме.
В процессе изучения курса основ информатики и вычис-
лительной техники вы приобретете определенную культу-
ру — культуру обмена информацией в общении друг с дру-
гом, при работе с книгой и с ЭВМ. Умение общаться друг
с другом — это самое ценное для каждого из нас. Сюда
входят умения выслушать чужую точку зрения и с уваже-
нием относиться к чужому мнению, излагать свою точку
зрения и доказывать свою правоту, предлагать общее
решение и план для совместной деятельности. В работе
с книгами нужно научиться выделять в тексте главную
мысль и излагать ее своими словами, ориентироваться
в содержании книг и находить в них ответы на свои вопросы,
понимать основную идею авторов книги и ее взаимосвязи
с другими книгами.
В настоящем учебном пособии выделены только самые
главные вопросы, сведения и понятия. Они вынесены на
поля или заключены в рамки. Опираясь на них, вы всегда
сможете найти в тексте ключевые понятия, на которые
следует обращать внимание.
ОГЛАВЛЕНИЕ
ГЛ АВА I
ВВЕДЕНИИ
В ИНФОРМАТИКУ
х КЛАСС
I ЛАВА 2
ОСНОВНЫЕ
Информация и мы .
Информация и ее виды .
Количество информации
Вопросы и суждения .
Утверждения и рассуждения .
Элементы математической логики .
Законы логики ....
Задачи и их решения .
10
14
19
23
27
ВОЗМОЖНОСТИ ЭВМ
§ 9 Состав персональных ЭВМ .
§ 10 Правила работы . . . .
§ 11. Редактирование текстов .
$12. Графика и черчение .
§13 . Поиск информации .
§ 14. Базы знаний ...
§15 Численные расчеты ....
§16 Наиболее распространенные про-
граммы
ЗАВА
ОСНОВЫ
АЛГОРИТМИЗАЦИИ
§ 17 Алгоритмы и решение задач
§ 18. Вычислительные алгоритмы
§ 19. Средства ввода-вывода инфор-
мации ..........................
§ 20 Выбор действий в алгоритмах -
§ 21 Повторение действий в алгоритмах .
§ 22. Вспомогательные алгоритмы
§ 23 Организация массивов а алгоритмах
§ 24 Диалоговые алгоритмы ....
4
ГЛАВА 4
ГЛАВА 5
ГЛАВА b
НАЧАЛА
И РО ГР АММ И РО В А Н И Я
§ 25. Язык программирования Бейсик .
§ 26. Правила работы с программами .
§ 27. Графические программы на Бей-
сике .....
§ 28. Выбор действии в Бейсике .
§ 29 Повторение действий в Бейсике .
§ 30. Организация подпрограмм на Бей-
сике . .
§ 31 . Переменные и массивы в Бейсике .
§ 32. Диалоговые программы .
PFI ПЕНИЕ
XI КЛАСС
ЗАЛАМ НА ЭВМ
§ 33. Этапы решения задач .
§ 34. Математическая постановка задачи
§ 35 Методы решения задач
§ 36 Сценарии работы с ЭВМ
§ 37. Конструирование алгоритмов .
§ 38. Пошаговая детализация алгоритмов
§ 39. Приближенные методы решения
задач ... ..............
§ 40 Проверка правильности алгоритмов
и программ . . ...
ОСНОВАНИЯ
98
102
108
110
115
118
124
131
136
140
145
150
154
160
166
171
ИНФОРМАТИКИ
§ 41. Анализ выполнения алгоритмов . . 174
§ 42. Анализ правильности алгоритмов 179
§ 43 Анализ правильности циклов 184
§ 44 Анализ сложных алгоритмов 191
§ 45. Вычислительные эксперименты . 196
§ 46. Понятие и виды моделей .... 201
§ 47. Информационно-логические задачи 207
§ 48. Законы информатики . 21 1
5
ГЛАВА 7.
ОСНОВЫ
ВЫЧИСЛИТЕЛЬНОЙ
ТЕХНИКИ
§ 49. Архитектура ЭВМ . . .
§ 50. Логические элементы ЭВМ .
§ 51. Команды и представление данных
§ 52. Внешние устройства ЭВМ
§ 53. Типы современных ЭВМ .
§ 54. Программное обеспечение ЭВМ
§ 55. Языки и технология программиро
вания .......
§ 56. История развития ЭВМ .
ГЛАВА 8.
ЭВМ В РАЗВИТИИ
ОБЩЕСТВА
244
250
§ 57. ЭВМ на производстве
§ 56. ЭВМ в сельском хозяйстве
§ 59. ЭВМ в проектировании -
§ 60. ЭВМ в управлении .
§ 61. ЭВМ в науке .
§ 62. ЭВМ в образовании ....
§ 63. ЭВМ в обслуживании и дома .
§ 64. ЭВМ и информационные коммуни-
кации ..................... . .
Приложение.
1. Краткий справочник по Бейсику для
школьных ЭВМ ......
2. Терминологический словарь
217
221
225
230
237
240
254
257
259
261
263
264
266
267
268
272
>А ВВЕДЕНИЕ В ИНФОРМАТИКУ
. 111 * § 1-Информация и мы
В МАМОЙ форм« *ОЖ«7
мрадмигться нмфор-
С самого раннего детства все мы вовлечены в процессы
обмена информацией. Вопросы, ответы, просьбы и даже
улыбки все это передача информации Мы получаем
информацию, когда читаем книги, газеты и журналы
слушаем радио или смотрим телевизор, слушаем учителя^
родителей или товарищей.
Общение людей друг с другом дома и в школе, на
работе и на улице — это передача информации: сведений
и суждений, данных и сообщений. Любая совместная
деятельность людей — работа, учеба и даже игра — невоз-
можна без обмена информацией. Передаваемая информа-
ция обычно касается каких-то предметов или нас самих и
связана с событиями, которые происходят в окружающем
нас мире.
С возникновением письменности информация стала
передаваться людьми не только устно или жестами. Умение
читать и выражать свои мысли в письменной форме стало
признаком грамотности людей. Выражение мыслей в пись-
менной форме открыло возможность не только передавать
сведения и сообщения, но и накапливать человеческие
знания в форме рукописей и рукописных книг и тем самым
передавать сокровища человеческой мысли от одного поко-
ления к другому.
Изобретение печатных станков в XV в. открыло воз-
можность издания книг и широкого распространения шедев-
ров человеческой мысли. Массовое издание книг и учебни-
ков. открытие публичных библиотек создали условия для
достижения всеобщей грамотности и развития культуры.
Изобретение в XIX— начале XX в телеграфа, телефона
и радио открыло перед людьми возможность передачи
информации на любые расстояния со скоростью света.
А изобретение телевидения дало нам всем возможность
следить за событиями в мире и смотреть у себя дома
спектакли, кинофильмы и учебные программы.
Совершенно новые возможности для поиска и обработки
информации открыло перед людьми изобретение в середине
XX в электронных вычислительных ма1вин — ЭВМ (за
рубежом эти машины получили название компьютеров).
Первоначально ЭВМ создавались для автоматизации вы-
числений Затем их научили записывать и хранить инфор-
мацию на мазнитных лентах, печатать се на бумаге и выво-
зить на экран -ЭВМ По мере развития они стали использо-
ваться для создания архивов, подготовки и редактирования
текстов выполнения чертежных и графических работ, для
ч
автоматизации производства и многих других видов чело
веческой деятельности. Об атом вы узнаете позже.
В 70-х годах развитие электроники носах кило толчком
тли создания и массового производства нового вида ком
пьютерон персональных ЭВМ, которые могут уместиться
на столе Такие машины moi у г быть установлены тома,
в школе, на работе И- можно использовать ыи учебы,
работы, игры и многих других целей. Применение таких
ЭВМ на произво гстве и в проектировании, в научных иссле-
дованиях и в образовании может коренным обратом итме
нить содержание деятельности и условия работы многих
миллионов людей.
Прежде всего ЭВМ открываю! во)можносги для созда-
ния быстро переналаживаемых технологий производства
Кроме того, с их помощью можно сощавать новые ви ц>|
машин, приборов и устройств, управляемых с помощью
ЭВМ. К началу XI в. вычислительные машины на базе
таких устройств сделают возможным создание «безлюдных»
технологий производства. На таких «фабриках будущего»
физическая работа будет выполняться роботами, а рои.
по цей сведется к планированию производства, программ»
рованию роботов и проектированию новых изделий с по
мощью ЭВМ.
Применение ЭВМ во многих видах деятельноеги уже
сейчас позволяет существенно упростить работу людей по
подготовке, накоплению и переработке информации, про-
ведению проектных работ и научных исследований Элект
ронно-вычислительные машины уже есть в школах, и они
будут помогать при изучении фишки и математики, химии
и биологии и многих други! учебных предметов
Умение общаться с ЭВМ и использовать их в своей
работе, так же как умение пользоваться ручкой, в ближай
шие 10 15 лет станет необходимым практически для всех
взрослых и детей и составит основу компьютерной грамот-
ности:
Будут ли нужны люди
на «беэлюдным» про-
изводствам!
Что такое грамотность
обычном смысле
слова!
Компьютерная грамотность — это умение читать и писать, считать и рисо
вать, а также искать информацию, применяя для этого ЭВМ,
Умение эффективно использовать ЭВМ в работе пред-
полагает определенную культуру. Она включает в себя
знание основных возможностей ЭВМ; умение четко ставить
задачи, составлять планы их решения и записывать их
в форме, понятной ЭВМ; умение выделять данные для
решения задач и анализировать получаемые результаты.
Эта культура опирается на знание законов логики и инфор-
матики.
9
ИНФОРМАТИКА
h нфо р м а т и к а — это новая научная дисциплина
изучающая законы и методы накопления, обработки и
предоставления информации. Важность изучения информа
тики связана с тем, что эта наука не только позволяет
понять принципы работы и возможные использования ЭВМ
но и дает представление о законах и методах предоставле-
ния информации при общении людей и в жизни общества
Сложность изучения современной информатики связана
с непрекращающимся прогрессом в создании новых ЭВМ.
Одновременно развиваются и методы обработки, накопле-
ния и предоставления информации. По этой причине инфор-
матика является развивающейся научной дисциплиной. Ее
развитие происходит на наших глазах.
вопросы Л “
упражнения г/! С
задания
1. Что такое компьютерная грамотность?
2. Дайте определение информатики. Что изуча-
ет информатика?
3. Объясните, почему информатика постоянно
развивается.
§ 2. Информация и ее виды
Термин «информация» происходит от латинского слова
informatio. означающего разъяснение, изложение, осведом-
ленность. Информацию друг другу мы передаем в устной
и письменной форме, а также в форме жестов и знаков.
Любую нужную информацию мы осмысливаем, передаем
другим и делаем определенные умозаключения на ее основе.
На уроках информацию передает главным образом
учитель, ученики же ее воспринимают, осмысливают, за-
поминают и отвечают на вопросы. Учебную информацию
можно получать и от компьютеров, которые с помощью
специальных программ выводят на экраны рисунки, тексты
с разъяснениями и вопросы.
Информацию мы извлекаем из учебников и книг, газет
и журналов телепередач и кинофильмов. Записываем ее
в тетрадях и конспектах. В производственной деятс ,ьности
информация передается в виде текстов и чертежей, справок
и отчетов, таблиц и других документов. Такого рода инфор-
мация может предоставляться и с помощью ЭВМ.
В любом виде информация для нас выражает све ения
о ком-то или о чем-го Она отражает происходящее или
происшедшее в нашем мире, например: что мы детали
вчера или будем делать завтра, как будет вьп 1Я цть выпуч h
ное платье или место будущей работы. Но при этом инфор
ю
мация обязательно должна получить некоторую форму —
форму рассказа, рисунка, статьи и т. д. Чертежи и музы-
кальные произведения, книги и картины, спектакли и кино-
фильмы - все это формы представления информации.
Информация, в какой бы форме она ни предоставлялась,
является некоторым отражением реального или вымышлен
ного мира.
Поэтому информация в наиболее общем определе- информация
нии — это отражение предметного мира с помощью знаков
и сигналов. Получение информации — это в конечном счете
получение фактов, сведений и данных о свойствах, структуре
или в заимодействии объектов и явлений окружающего
УЕ/ЮЗЕХ VEfWES# EEEJ/HE/V
Предметное содержание информации позволяет уяснить
ее основные свойства достоверность и полноту, ценность
и актуальность, ясность и понятность.
Информация достоверна, если она не искажает истинное
положение дел. Недостоверная информация может привести
к неправильному пониманию или принятию неправильных
решений. Информация полна, если ее достаточно для пони-
мания и принятия решений. Неполнота информации сдер-
живает принятие решений или может повлечь ошибки.
Ценность информации зависит от того, какие задачи
мы можем решить с ее помощью. Актуальную информацию
важно иметь при работе в изменившихся условиях.
Если ценная и актуальная информация выражена непо-
нятными словами, она может стать бесполезной. Инфор-
мация становится понятной, если она выражена языком,
на котором говорят те, кому предназначена эта информация.
В процессе развития человеческого общества люди
выработали большое число языков Среди них язык жестов
и мимики, язык рисунков и чертежей, язык музыки и раз-
говорные языки и т. д.
СВОЙСТВА ИНФОР-
МАЦИИ:
достоверность
полноте
ценность, вмтуальмость
ясность
ЯЗЫКИ
А ка*6ю <*ще языки
вы зилоте*
Примеры языков:
6. Английский язык То be, or not to be.
(Быть или не быть.)
4. Язык чертежей
Ч из лесу вышел;
Был сильный мороз.
5. Русский язык.
виляете* ли языком
• лбу к*
2а
7 Язык математики.
8. Алгоритмический язык.
Основой большинства языков является алфавит Алфа-
вит эго набор символов, и< которых можно составлять
слова и фразы данного языка.
Примеры алфавитов:
I Латинский алфавит
А. В. С. D. Е. Е. G. П. I. .1. К L. Ч. N. О. Р. Q R 5
Т. I V U X V Z
2 Русский алфавит
А Б. В Г. 1. Е. Ж. 5 И. И К I. Ч. Н О, П, Р,
Т. У. Ф. X. Ц. Ч. Ш. Щ. ъ. ы. ь. э. ю. я
3 Алфавит натуральных чисел
0. I. 2, 3. 4. 5. 6. 7. 8. 9.
12
4. Алфавит двоичных чисел: 0. 1
Простота последнего алфавита обеспечила его широкое
применение в вычислительной технике. Значения 0 и 1
в ЭВМ представляются физическими состояниями «намаг-
ничено — не намагничено», «есть заряд — нет заряда»
и т. п. С помощью языка двоичных чисел могут быть зако-
дированы символы любого алфавита, а значит, и любая
информация, записанная на любом языке, основанном на
знаковом представлении
Например, в школьных ЭВМ буквы русского и латинско-
го алфавитов и цифры кодируются восемью двоичными
знаками 0 и 1:
Из каких символов
состоит алфавит азбуки
Морзе!
Знак Код Знак Код Знак Код
А 11100001 1 А 01000001 1 0 00110000
Б 11100010 1 В 01000010 1 1 00110001
В 11110011 1 С 01000011 1 2 00110010
Г 11100111 1 D 01000100 1 3 00110011
Слово «МАМА» кодируется 32-разрядным ДВОИЧНЫМ
числом:
МАМА—11101101 11100001 11101101 11100001
В форме двоичных чисел в компьютерах записывается
вся хранящаяся в их памяти информация: слова, числа,
рисунки, а также программы, управляющие работой ком-
пьютеров.
По этой причине в вычислительной технике для двоичных
знаков 0 и 1 принят специальный термин — бит. Бит — от бит
анг [ийского сокращения bit (binary digit - двоичныи знак)
Для восьмиразрядных двоичных чисел, используемых
в ЭВМ для представления символов, принято название
«байт» (от английского слова byte). байт
1 байт=8 бит.
Правила перевода двоичных чисел в десятичные просты.
Рассмотрим их на примерах.
Десятичное число: 0123 4 5 10 11 12
Двоичное число: 01 10 11 100 101 1010 1011 1100
Перевод десятичных чисел в двоичные проводится под-
счетом сумм степеней двоек 1, 2, 4, 8, 16 и т. д., соот-
ветствующих единицам в двоичной записи числа.
13
и
I
10
II
100
101
1010
1011
1100
-------- 0=0
-----’ 1 = 1
------2+0=2
* 2+1=3
- 4 + 0+0=4
-----4+0+ I =5
— « + 0 + 2 + 0=]o
► «+0+2+l=n
- « + 4 + 0 + 0=12
ИI ДССПНЧЯЫ1
ДХЖЧькХ
Обратное преобразование десятичных чисел в двоичные
проводится последовательным делением исходного числа
на 2, затем еще и еще на 2. Это деление в остатках дает
запись цифр соответствующего двоичного числа, но в обрат-
ном порядке — от младшей цифры к старшей. Пример
перевода десятичного числа 12 в двоичную запись:
£ Результат —
1 двоичное
число 1100.
вопросы
упражнения глц
задания I,
1 Что такое информация?
2 . Каковы основные свойства информации?
3 - Какие языки вам известны*
4 Какими языками вы владеете?
5 Что такое бит?
6 Что такое байт?
♦ 1. Переведите в десятичную форму записи
двоичные числа:
а) 111; 6) 1000; в) 1001; г) 1101; д) 1110; е) 1111;
ж) 10101; з) 11011; и) 11110; к) 11001.
2. Переведите в двоичную запись числа:
а) 17; 6) 19; в) 21; г) 97; д) 99; е) 101; ж) 127;
з) 251; и) 253; к) 255.
3. Определите, сколько цифр в двоичной записи
числа:
а) 5; 6) 255; в) 171; г) 1 000 000; д) 58 974 654.
!j 3, Количество информации
Для решения различных задач нам требуется информа-
ция об окружающем нас мире. Успех их решения зависит
от того, насколько полно и подробно нами изучены соот-
ветствующие явления. Например, определить траекторию
гвижения тела можно, только зная законы динамики, а
для того чтобы перевести текст на иностранный язык, нужно
знать грамматические правила и помнить много слов
Часто приходится слышать, что то или иное сообщение
несет мало информации или. наоборот, содержит исчерпы-
вающую информацию. При этом разные поди, получившие
цно и то же сообщение (например, прочитав статью в
газете), по-разному оценивают количество информации,
содержащееся в нем. Это происходит оттого, что знания
людей об этих событиях (явлениях) до получения сооб-
щения были различными. Поэтому те, кто знал об этом
мало, сочтут, что получили много информации, те же, кто
знал больше, чем написано в статье - скажут, что инфор
мании не получили вовсе Количество информации в сооб-
щении, таким образом, зависит от того, насколько ново
это сообщение для нолучате 1Я
(.’тако иногда возникает ситуация, когда людям сооб-
щают много новых для них сведений (например, на уроке),
а информации при этом они практически не получают
(в этом нетрудно убедиться во время опроса или контроль-
ной работы) Происходит эго оттого, что сама тема в дан-
ный момент ученикам не представляется интересной Это
швисит не только от учителя Попробуйте во время не-
скольких уроков но предмету, который вы почему-либо
недолюбливаете, представить себе, что вам необычайно
интересны эти занятия. Если вы всерьез несколько раз
проделаете эго «упражнение», то с удивлением обнаружите,
насколько больше информации вы усвоили!
Итак, количество информации, оказывается, зависит от
новизны сведений об интересном для получателя информа-
ции явлении. Иными словами неопределенность (т. е. не-
полнота знания) по интересующему нас вопросу с полу-
чением информации уменьшается. Если в результате полу-
чения сообщения будет достигнута полная ясность в данном
вопросе (т. е. неопределенность исчезнет), говорят, что
была получена исчерпывающая информация. Это означает,
что необходимости в получении дополнительной информа-
ции на эту тему нет. Напротив, если после получения сооб-
щения неопределенность осталась прежней (сообщаемые
сведения или уже были известны, или не относятся к делу),
значит, информации получено не было (нулевая инфорча
ция).
Если мы научимся каким-либо образом измерять неопре
деленность, то количество информации /, содержащееся
в сообщении, можно будет определить по формуле
/ = Л'-К.
Здесь начальная неопределенность, а - конечная
(после получения сообщения) Например, если неполнота
знания о предмете не изменилась, т. е. Л'=Л’. то количество
информации / = /V—К = 0 равно нулю.
Человек, бросающий монету и наблюдающий, какой
стороной она упадет, получает определенную информацию.
Его интересует ответ — какой стороной упадет монета.
Стоит попК1<звовать1
КОЛИЧРСТВО
информации
15
Неопределенность после того, как монета упадет, будет
равна 0 будет достигнута полная ясность. Какой' же
прогноз можно сделать до бросания монеты?
Обе стороны монеты «равноправны», поэтому одинаково
вероятно, что выпадет как одна, так и другая сторона
Таким ситуациям с двумя возможностями приписывается
начальная неопределенность, равная 1.
Единица измерения информации называется бит
Таким образом, каждое бросание монеты дает нам
информацию в I бит.
ГЭ; ей V .Иф.». П к мотрим игру эксперимент «Угадай ка» •'«век за» лдывает число от 0 до 7, а дру- I ' । 1атъ задуманное число, «адавая Hi - тый вопрос можно отвечать • «t-ЛМ ост угадывания * задавать 4» ' • -о.. Это 2J И I д Если будет загадано число 7, то потребуется ровно 7 вопросов Порядок вопросов можно изменить, ио и в этом случае в самой «неудач- ной» ситуации все равно потребуется 7 вопросов. А нельзя ли задавать какие-нибудь другие вопросы, чтобы в любом случае можно бы по обойтись меньшим их числом3 Рассмотрим огрсиж от 0 ю
* * • ф It W
О 4 2. 3 4 5 6 7
ионолам Зададим вопрос:
п »думанное число больше З3
. , я. что ситуация похожа на
монеты И в том и в другом
• 1жиы два равновероятных исхода
I. г| ....<• .рмашпо в 1 бит нам предоставит
гы, а ответ соперника на наш
..•*» того после получения ответа и а
мы но можем однозначно сказать,
был загадано, г е неопределим
Одиако она будет уменьшена
ri. рника нет будет означать, что
, , ........ди нужно искать среди чисел
т да что было задумано либо 4,
и *и Ъ или 7
чм ч гнет да обозначать 1 а ответ
’ . смотрим нужный отрезок и вновь
.. . - . пополам Зададим новый вопрос
х 1чнг- число в его правой пото-
да или нет (I или 0) принесет
информации и уменьшит неопреде
е гл вое (поскольку отрезок, на
. - ы тем поиски» стал еше вдвое ко
< t го достаточно задать еше один
и мы ушлем мдуманное
м г, ни быта это число, мы обяза-
н м его за 3 попытки!
гл, .ее л и вести протокол отвесов на
' к,' г писывать последовательно нули
ни г > п чнное чи1 м» например 101
(да — нет - да/, представляет собой не что
иное, как двоичную запись искомого числа!
Смысл происходящего становится понятным из
следующей схемы:
!/>
Дднную схему математики называют дере-
ном В узлах этого дерева (узлы обозначены
точками) указаны вопросы, а на ветвях отве-
,ы на эти вопросы В корне дерева вопрос
xv»>3?>. Ответ да это 1 на ветви вправо,
л ответ нет это О на ветви влево В самом
верху указаны загадываемые числа, а над каж-
1ым из них двоичная запись этого числа.
Нетрудно убедиться, что двоичная запись любого
из этих чисел получена из 0 и 1 при движении
от корня по соответствующим ветвям дерева
вопросов.
Конечная неопределенность в этой игре рав-
няется 0, а при ответе на каждый из трех вопро-
сов мы получаем информацию в I бит. Следо-
вательно, неполнота начального знания равня-
лась 3.
। 1. Сколько вопросов нужно задать, чтобы отга-
дать число:
а) от 0 до 15; б) от 0 до 31 ?
2. Укажите систему вопросов для угадываиня
чисел от 0 до 15, от 0 до 31.
3. Сыграйте в игру «Угадай-ка». Пусть один из
вас загадает число от 0 до 100. Попробуйте
отгадать задуманное число, сообщая числа-
гипотезы. Ответами могут служить сообщения:
«Мое число больше», «Мое число меньше»,
«Верно». Укажите минимальное количество
вопросов и соответствующий способ отгадывания
чисел.
вопросы
упражнения
задания
1. От чего зависит количество получаемой
информации?
2. Что является единицей измерения инфор-
мации?
3. Как рассчитать количество информации?
§ 4. Вопросы и суждения
Общение людей как форма обмена информацией — это
чередование вопросов и ответов. Каждый вопрос выражает
потребность в знании сведений об окружающем нас пред-
метном мире. Эти знания мы высказываем в форме сужде-
ний. Суждения могут выражать непосредственно наблю-
даемые факты: «На улице дождь» «Этот треугольник -
равнобедренный» и т. п. Но суждения могут выражать и
\ гверждения о вымышленных объектах или еще не проис-
шедших событиях: «Русалка на ветвях сидит», «Лето будет
жарким» и т п.
В тюбом случае суждения — это некоторые выска- суждения-
>ывания, которые могут быть истинными или ложными.
Например, суждения «Снег белый», «5-5 = 25» истинные
а суждения «Земдя плоская», «2-2 =5» ложные Непосред-
ственно набзюдаемые факты мы обычно принимаем за
истинные Ложные утверждения возникают чаще всего
из »а стремления выдать желаемое за действительное либо —---------
io >а ошибок в рассуждениях или предположениях^^ , ( ... _
Суждения подра пуляются на общие и частные. Частные
суждения выражают конкретные (частные) факты. ГТри-'-м
меры частных суждений- «2-(-3> I», «Сегодня был дождьЧ" 3“° ' > р;
т.Этог rptvronaiHK нрямоут ольный». -
* и
ми теги
17
общие
СВЯЗКА и
УМНЫЕ
ЯЯ -ли
Общие суждения характеризуют свойства групп объек
тов или явлений. Примеры общих суждений: «Если прошей
дождь, то на улице мокро», «Любой квадрат является
параллелограммом», «л"^0» и т. п.
Общие суждения могут оказаться истинными для ка-
кой-то части объектов и ложными для других объектов
Например, утверждение «Собаки не любят кошек» справед-
ливо для большого числа собак, но не для всех. Утвержде-
ние «г-;/>0» истинно для х= I н у=\ и в то же время
южно для д=0 при произвольном у.
Общее суждение называется тождественно истинным,
если оно справе пиво для любого из обьектов, о которых
говорится в суждении. Рассмотрим примеры. Утверждение
«»'^0» справедливо для любых действительных (вещест-
венных) чисел. Суждение «У кошки четыре ноги» верно
для любой из кошек
Тождественно истинные суждения особенно ценны тогда,
когда они выражают закономерную связь вещей. Например,
утверждение «а-\-b = h-\-а» справедливо для любых веще-
ственных чисел и выражает закон арифметики — «От пере-
становки слагаемых сумма не меняется».
В сложных ситуациях ответы на вопросы выражаются
сложносоставными суждениями с использованием связок
и, или и не. Например, суждение «Этот человек умный и
красивый» есть составное суждение: «Этот человек умный»
и «Этот человек красивый». Связка и в составных сужде-
ниях всегда предполагает одновременную истинность со-
ставляющих суждений.
Связка и:
□ КМСИ&ЫЕ 7/ УУМЫЕ
Связка или в составных суждениях может играть двой-
ственную роль. Например, во фразе «Сегодня цветок рас-
пустится или не распустится» связку или можно заменить
разделяющим «либо». А во фразе «Дождь будет днем или
вечером* возможны три ситуации «Дождь будет днем»,
либо «Дождь будет вечером», либо «Дождь будет и днем
и вечером». В первом примере связка или играет разде-
ляющую роль, а во втором обьединяюшую.
Во всех машинных приложениях и математических рас-
суждениях предполагается единственная трактовка всех
связок В них связка или понимается только в более широ-
кой объединяющей роли. Например, в утверждении «г==0
или //-=()* связка или означает либо «с = 0», либо «1/ = 0»,
либо «х —О и ц = 0» Общее правило: составное суждение
„ ..... №11Л
со связкой или .............. -
истинно хотя бы одно из составляющих суждений, и счи-
в математике считается истинным, если
та< гея ложным, гели ложны все его составляющие.
18
Связка или:
СИЛЬНЫЕ
Связка не применяется для формулировок отрицаний.
Рассмотрим примеры. Отрицанием утверждения «л=0»
будет утверждение «Неверно, что г = 0», которое равно-
сильно утверждению «л-у=О». Отрицание утверждения «Эго
\дачный пример» равносильно утверждению «Эго неудач-
ный пример».
Для отрицаний справедливо правило: отрицание истин
но, если ложно исходное утверждение, и. наоборот, отри
цание ложно, если верно исходное утверждение
СВЯЗКА HF
1. Что такое суждение? Приведите примеры.
2. Какие суждения являются общими? Приведите
примеры частных и общих суждений.
3. Что такое тождественно истинное сужде-
ние? Приведите примеры.
4. Какова роль связок или в обычных и матема-
тических суждениях?
5. Когда истинны отрицания?
1. Укажите, какие из примеров являются кон-
кретными или общими, истинными или лож-
ными:
а) (2 4-2). 4=16; 6) а2 — Ь2=(а 4* Ь)Х
в) 10 4- 10= 100; х(а —Ь);
г) а' 4- Ь2 = (а 4- Ь)Х
X (а 4" Ь).
2. Укажите, при каких значениях истинны ут-
верждения:
а) х’>0; б) х2<1; в) х2 4- 1<х; г) х2-}-1>х.
3. Укажите, в какой роли — объединяющей или
разделяющей — использована связка или:
а) «Ночью будет холодно или сыро»;
вопросы
упражнения
задания
6) «Мы приедем в субботу или воскресенье»;
в) «Я получу четыре млн пять»;
г) «Это сделаю я или ты»;
д) «х}>1 или х<—1»;
е) «х>1 или х>2»;
ж) «Выбирай — я или он!».
5. Приведите отрицания утверждений:
а) «Этот человек красивый»;
б) «Этот человек хороший»;
в) «х = 0» и «у — 0»;
г) «х>0» или «у>0»;
д) 0<х<5.
§ 5. Утверждения и рассуждения
Умение рассуждать, доказывать, ставить вопросы и
давать четкие ответы — отличительная черта грамотного,
образованного человека Для этого необходимо знание
предмета обсуждения и владение техникой доказа тельных
рассуждений. Примером доказательных рассуждений может
служить следующая цепочка высказываний: «Мой брат
19
УТВЕРЖДЕНИЕ
РАССУЖДЕНИЕ
малыш», «Все малыши любят мультфильмы», следоватеть
но, «Мон брат любит мультфильмы»; «Те кто тюкЛ'
мультфильмы, не пропускают ни одной телепередачи г
мультфильмами», «Сейчас будут показывать мультфильм»
следовательно, «сейчас мой браг прибежит смотреть мутьт-
фильм»
Целью любых доказательных рассуждений допжны
быть некоторые утверждения. Утверждение — это сужде-
ние, которое требуется доказать или опровергнуть. Пример
утверждения: «Корнем уравнения г2 — у — 2 = 0 является
число х = 2». Приведем доказательство. Подставляя число
л = 2 в уравнение, получим тождество 22—2—2=0. А по-
скольку корень — это число, при подстановке которого
уравнение превращается в верное равенство, го «д-=2
корень уравнения дг— х— 2 = 0».
Любое рассуждение это цепочка взаимоувязанных
суждений, фактов, общих положений и умозаключений,
получаемых из других суждений но определенным правилам
вывода. Примеры таких правил: «Если число делится на 10,
то оно делится и на 5», «Если у человека высокая темпе
ратура, то он болен», «Если начинает темнеть, то нужно
зажечь свет».
Любое правило вывода умозаключений состоит из двух
суждений (простых или сложных). Одно из них называ
ется предпосылками или условиями, а второе — следствием,
заключением или выводом.
Правило: предпосылки
следствие.
Примеры. В правиле «Если стало темно, то нужно
зажечь свет» суждение «Нужно зажечь свет» — это заклю
ченне, а суждение «Стало темно» — предпосылка. В пра-
виле «Если идет дождь, то на улице мокро» второе суждение
«На улице мокро» является следствием того, что «идет
дождь».
В большинстве случаев правила вывода могут быть
выражены фразами вида «Если А, то В», где В это
следствие вывод или заключение, а А—это предпосылки
исходные условия. Предполагается, что условия В выпол-
няются всегда, если выполнены условия А:
ЕСЛИ А. ГО В
Если попали в А.
то попали и в В.
20
Правила вывода moi ут быть частными или общими
Все рае могрениые примеры это частные правила. Конк-
ретные частные правила определяются для конкретных
пре тметных областей и конкретной предметной деятель-
ности. К числу таких правил относятся правила поведения
на улице, в школе, дома и на работе.
Примеры. «Если к нам обращаются, то нужно вни-
мательно выслушать собеседника», «Если просьба выпол-
нена, то можно рассчитывать на благодарность» и т. п.
К числу общих правил относятся правила вывода умо-
заключений. которыми мы постоянно пользуемся, даже не
осознавая этого. Первое из них — общее правило вывода
умозаключений, исходя из конкретных правил и конкретных
фактов:
ЕСЛИ из некоторых условий следует некоторое заключение И эти усло-
вия выполнены.
ТО заключение справедливо.
Например, из правила «Если на улице дождь, то нужно
надеть плат или взять зонтик» и сообщения по радио, что
.днем бу тет дождь», мы должны сделать вывод: «Нужно
надеть плащ» или вывод: «Нужно взять зонтик».
Рассмотрим второй пример применения этого общего
правила вывода умозаключений:
(правито 2) '
(факт 1) ’ JlW
Допустим, что уже «прошло полгода», тогда из факта 1
следует, что «наступили летние каникулы». Далее из пра-
вила 1 следует, «можно отдохнуть», а из правила 2 следует:
«можно поработать». Объединяя эти выводы, получаем
общее заключение: «Можно поработать или отдохнуть».
Второе общее правило вывода умозаключений, широко
используемое людьми.— заключение «от общего к частно-
му». Эго правило называется дедукцией. Оно гласит: дедукция
ЕСЛИ суждение справедливо во всех случаях,
ТО оно справедливо и в каждом частном случае.
Шуточный пример' "Умные люди не делают ошибок»,
«Я умный человек» ( ле^овательно: «Я не делаю оши-
бок»
Противоположное правило вывода «от частного к обще-
му» называется индукцией Индукция состоит в выводе
общих заключений из рассмотрения частных случаев. Рас-
могрим пример индуктивного рассуждения: индукция
21
y u^e/evrr хеас/у 5/1
гУсвбвм Mf-tOfl/ x&pcw' i i
$‘С’Еезьяеы ^£E)if лъош") Г~г~М~
"КОЕКИ, СОЖМ. 2>ЬМЬ/-^ЕЕ?^Е/. JE'’^ f'_ ~
ЛЕДОЫЮЬЙ£> ЪСЕ ЛИЕЕс^ЯА^Е МЕОХЬ/ fij
вопросы
упражнения
задания
Индуктивный вывод умозаключений позволяет форму-
лировать различные гипотезы, догадки, но иногда он может
приводить и к ошибочным умозаключениям. В приведенном
примере опровержением общего суждения «Все млекопи-
тающие имеют хвосты» служит вопрос: «А как же чело-
век?» Ведь человек — это млекопитающее, но он не имеет
хвоста.
Обоснование индуктивных утверждений требует исчер-
пывающего анализа случаев. В простейших ситуациях,
когда случаев конечное число, обоснование проводится
их полным перебором. В ситуациях с бесконечным или
неопределенным числом случаев индуктивные умозаключе-
ния требуют дедуктивных методов обоснования. Например,
в математике для этого используется метод математиче-
ской индукции. Математическая индукция — это дедуктив-
ный способ обоснования утверждений о различных после-
довательностях. Примеры применения математической
индукции будут изучаться позже, в главе 6. Там же дано
строгое определение этого метода.
В то же время для различных экспериментальных наук
индукция — это основной путь научных догадок и открытий.
Обоснованием этих догадок служат результаты тщательно
спланированных экспериментов. С другой стороны, возмож-
ны попытки их обоснования дедуктивным (теоретическим)
путем исхо ;я из общих закономерностей в свойствах изучае-
мых объектов и явлений.
1 За-^ем людям нужны умения рассуждать и
доказывать?
2. Что такое рассуждение?
3. Каковы правила вывода умозаключений?
4. В чем состоит общее правило вывода умо-
заключений?
5. В чем состоит принцип дедукции?
6. В чем состоит принцип индукции?
1. Приведите в форму если-то следующие суж-
дения
а) «По окончании школы нужно идти работать»;
б) «По окончании школы можно учиться даль-
ше»,*
в) «Зажгите свет, ио г да станет темно»;
г) «В случае обнаружения ошибок их нужно
исправить»;
д) «В случае опоздания необходимо извинить-
ся»;
е) «Нарушения правил уличного движения вле-
кут наказание»;
ж) «Для поступления в институт необходимо
успешно сдать экзамены»;
з) «Без труда не вынешь и рыбку из пруда».
2. Укажите следствия из приведенных правил и
следующих фактов:
а) «Сданы экзамены в вуз» и «Нарушены пра-
вила уличного движения»;
б) «В сочинении обнаружены ошибки-? и «Стало
темно»;
в) «Мои брат летом окончит школу»;
г) «Дима и Саша опять опоздали»;
д) «Дима совершил много ошибок».
22
§ 6. Элементы математической логики
Отсутствие ошибок в рассуждениях возможно только
при условии строгого соблюдения законов логики Логи
к а это нау ка о формах и законах человеческого мышле-
ния и. в частности, о законах доказательных рассуждении.
В зависимости от набора правил вывода умозаключении,
которые признаются правомерными, различается несколько
вариантов логики как научной дисциплины* формальная
логика, «математическая логика, вероятностная логика,
диалектическая логика и т. л.
Математическая югика является одной из частей фор
мальнон логики. Если формальная логика связана с анали-
зом наших обычных содержательных рассуждении, выра
жаемых разговорным языком, то математическая логика
изучает только рассуждения со строго определенными
объектами и суждениями, для которых возможно однознач-
но решить, истинны они или ложны.
Суждения и утверждения в математической зогике
называются высказываниями и предикатами. Примеры
высказываний: «2 + 2 = 4», «5- простое число». Высказы-
вания - это конкретные частные утверждения В отличие
от них предикаты — это утверждения о переменных (объек
тах). Примеры предикатов: «р—простое число», «1+рХ)».
Истинность предикатов зависит от значений входящих в них
переменных.
Логические операции и, или, не в математической логике
определяются таблицами истинностных значений. Для логи-
ческой операции отрицания таблица истинности такова:
Не Д;
ЛОГИКА
ВЫСКАЗЫВАНИЯ
ПРЕДИКАТЫ
НЕ А
1 не .4
да не1
нет да
Здесь 4 - - это некоторое произвольное высказывание.
Например, для высказывания «Все тетради в портфеле»
отрицанием будет высказывание «Не все тетради в портфе-
ле» Отрицание не А имеет значение да (не А истинно),
если исходное высказывание А ложно. И наоборот, не А
имеет значение нет, если исходное высказывание А истинно.
23
Для логической операции и получается слетуюшая
таблица: ' ху^щая
/1 в 1 и В
да да да
да нет нет
не! ди нег
не г нет нет
Здесь .4 и В — это два высказывания, которые могут
принимать значения да или нет Например, высказывание
«,4 и В сидели на трубе» принимает значение da или нет
в зависимости от значений истинности высказываний
«Л сидело на трубе» и «В сидело на трубе» Из таблицы
видно, что составное высказывание «4 и В» принимает
значение да только тогда, когда значение да принимают
и высказывание Л. и высказывание В.
Для логической операции или таблица истинностных
значений имеет такой вид:
А ИЛИ В
А в 1 или В
да да да
да нет да
нет да да
нет нет нет
Например, составное высказывание «Он сильный или
умный» принимает логическое значение да в трех случаях:
когда «он сильный», либо «он умный», либо «он и сильный
и умный».
Из таблицы истинности этой операции видно, что связка
или в математической логике понимается как обьединяюшее
или. А именно высказывание «А или В» имеет значение да,
если значение да имеют и А, и В, либо только А. либо
только В И наоборот, А или В имеет значение нет, если
значение нет имеют и А, и В
Логическая операция «Если А, то В» (А влечет
в математической логике определяется следующей таблицей.
24
ЕСЛИ А, ТО в
Пример высказывания: «Если вчера было тепло, то
завтра тоже будет тепло». В математической логике выска-
зывание «А влечет В» считается ложным только в той
ситуации, когда предпосылка А истинна, а заключение В
ложно, т. е. здесь не допускается лишь то, чтобы из истины
следовала ложь.
Используя таблицы истинности, легко проверить истин-
ность любых составных высказываний. В частности, легко
выяснить, является ли то или иное высказывание тождест-
венно истинным. Тем самым производится проверка, явля-
ется ли законом то или иное высказывание или правило
вывода.
Например, в логике справедливо следующее правило
отрицания одновременной истинности:
не (А и В) = (не А) или (не В).
Знак = обозначает
тождественно
Приведенное выше правило читается так: «Отрицание
истинности А и В тождественно тому, что ложно А или
ложно В». Пример такого отрицания: «Неверно, что А и В
сидели на трубе». Соответствующее заключение: неверно,
что «А сидело на трубе», или неверно, что «В сидело на
трубе».
Данное правило можно проверить по таблице рассмот-
рев все случаи истинности утверждений А и В:
А в не (А и В; (не /1) или (не В)
да да нет нет
да нет да да
нет да да да
нет нет да да
25
Из этой таблицы видно, что, каковы бы ни бычи прет
положения об истинности Л и В, утверждения «не (Л и В)»
и «(не А) или «не В)» всегда принимают одинаковые
значения.
Второе правило — правило отрицания вариантов:
не (А или В) = (не А) и (не В).
Приведенное правило читается: «Отрицание истинности
А или В тождественно одновременному отрицанию А н отри-
цанию В». Пример отрицания: «Неверно, что дождь будет
днем или вечером». Соответствующее заключение: «Дожтя
ие будет днем» и «Дождя не будет вечером». Составим
таблицу:
А в не (А или В) (не zl) и (не В)
да да нет нет
да нет нет нет
нет да нет 'Нет
нет нет да да
ОБШИЕ СУЖДЕНИЯ
ВЫСКАЗЫВАНИЕ
аВщ*
ггмрдмт* пиые
Из этой таблицы видно, что проверяемые высказывания
получают одни и те же значения да или нет при одних и
тех же значениях исходных высказываний.
Проверка общих суждений в математической логике
намного сложнее. Общие суждения выражаются не част-
ными конкретными высказываниями, а предикатами с пере-
менными, например: «Температура />0». Истинность этого
утверждения зависит от величины температуры /. Если
температура t положительна, то это утверждение истинно,
а если температура t отрицательна, то оно ложно.
Из таких предикатов — утверждений с переменными
величинами могут строиться обшеутвердительные и частно-
утвердительные высказывания.
Примеры обшеутвердительных высказываний: «Все
кошки черные», «Для всех х х2^0», «В любом треуголь-
нике сумма \inoB равна 180’».
Примеры частноутвердительных суждений: «Существуют
черные кошки с белыми лапками», «Существует х, такое,
что ч- г 4- b — 0».
Примеры сложносоставных общеутвердительных сужде-
нии «Для любого (/5>ь0 существует такое х, что х-у=1».
«Существует человек, который старше всех остальных
чюдей».
26
Опровержения таких общих высказываний строятся иа
следующих двух правилах вывода: отрицания всеобщности
и отрицания существования.
I Отрицание всеобщности.
Для отрицания общею утверждения достаточно при- отрицание всеобщ
вести хотя бы один контрпример. I ности
Например, встречавшееся раньше утверждение, что
все кошки черные», неверно. Для опровержения этого
цостаточно привести в пример любую кошку другого цвета
Второй пример: утверждение «Все нечетные числа простые»
неверно. Опровержением служит, например, число 9. Это
число нечетно, но оно не является простым, так как 9=3-3
2. Отрицание существования
Для отрицания существования необходимо доказать
ложность утверждаемого во всех случаях.
ОТРИЦАНИЕ СУЩЕСТ
ВОВАНИЯ
Например, утверждение Существует х: х2<0» ложно.
Его отрицание по правилу тождественно равно утвержде-
нию «Для всех v су^0», которое истинно для любых веще-
ственных чисе I.
f 1. Постройте таблицы
зываннй:
а) А и (не А):
в) не (А влечет В);
д) А и (А влечет В);
истинности для выска-
6) А или (не А);
г) А влечет (не В);
е) (не А) влечет (не А).
2. Постройте отрицания высказываний:
а) не (не А); б) не (не (не А));
в) не (А и В и С); г) не (А млн В или С).
3. Постройте отрицания высказываний:
а) «Существует собака, у которой одно ухо бе-
лое, а другое черное»;
б) «У всех собак плохая память»;
в) «Существует треугольник, у которого сумма
углов меньше 180»;
г) «Каждая задача имеет решение».
вопросы
упражнения
задания
1. Что такое логика?
2. Какую роль играет связка илн в математи-
ческой логике?
3. Что такое конкретные и общие суждения?
4. Сформулируйте правило отрицания всеобщ-
ности,
5. Сформулируйте правило отрицания сущест-
вования.
§ 7. Законы логики
Знание законов логики позволяет проверять правиль-
ность рассуждений и доказательств. Нарушения этих зако-
нов приводят к логическим ошибкам и вытекающим из
шх противоречиям
27
Первый закон логики, сформулированный чревнегре
ческим философом Аристотелем. таком тождества *
ЗАКОН ТОЖДЕСТВА
Привадите другие при-
меры нарушения за-
коне тождества
Предмет обсуждения должен быть строю определен
и не должен меняться до конца обсуждении.
-- • - I. Ill О Illi. Ill I I I .«in и I ч . п у — и I— _w _
Примером нарушения закона тождества «мнется под
мена понятий: например, koi да программирование юлкуегся
как единственное содержание информ ники
ЗАКОН ПРОТИВОРЕ-
ЧИЯ
Нарушения -ио
Ю 1.1КО11Л пряно
дя I к иеионима
нию, двусмыслен
нос in и рд тогда
сиям
Второй закон логики, также впервые выскашниый
Аристотелем,— закон противоречия
Не могут быть одновременно истинны утверждение и
его отрицание
Примеры противоречивых утверждений: «Эю яблоко
спелое» и «Это яблоко неспелое». Этот треугольник прямо
28
В рассуждениях и доказательствах часто используется
принцип выбора.
ЕСЛИ истинно А или В, но В не выполнено,
ТО должно выполняться А,
гте Я и В произвольные суждения Пример рассужде-
ний: «Это сделал Коля или Саша», «Саша этого не делал».
Следовательно: «Это сделал Коля».
ПРИНЦИП ВЫБОРА
Д или В, не В
Д
Принцип выбора — это принцип косвенного доказатель-
ства. Такие доказательства не дают явного обоснования
утверждаемого, но позволяют отбросить другие гипотезы,
которые противоречат выявленным фактам.
С принципом выбора тесно связан один из законов
формальной логики, предложенный Аристотелем,— закон
исключенного третьего.
Истинно либо суждение, либо его отрицание.
Примеры рассуждений: «Сегодня я получу пятерку либо
не получу», «Этот треугольник правильный либо неправиль-
ный». В этой категоричной формулировке закон не допускает
ничего третье: о.
Другим принципом косвенного доказательства является
закон двойного отрицания.
ЕСЛИ отрицание утверждения ложно, ТО исходное
утверждение истинно.
ЗАКОН ИСКЛЮЧЕН-
НОГО ТРЕТЬЕГО
закон двойного
ОТРИЦАНИЯ
Примеры рассуждений: «Если неверно, что вчера не
было дождя, то вчера был дождь», «Если неправда, что
Коля этого не делал, то это сделал Коля».
Как видно из примеров, закон двойного отрицания не
дает явного обоснования утверждений, а доказывает их
лишь косвенно.
В то же время мы широко пользуемся доказательствами
от противного. Эти доказательства строятся на основе при-
менения закона противоположности.
29
доказательство от ЕСЛ И условие А влечет следствие В, но В не выполнено
ТО не выполнено и само условие .4.
Примеры рассуждений: «Если идет дождь, то на улице
мокро», «На улице с' хо». Следовательно: «Дождя не бьио»
«Если хорошо подготовишься, то получишь пятерку», «По
лучена тройка». Следовательно: «Неверно, что подготовка
бы да хорошей».
Смысл этого закона, как видно из примеров, заключи
ется в следующем. Если между некоторыми фактами
имеется закономерная связь: предпосылки-----> следе гвия
но следствие не имеет места, то не могу г быть выпо 1„ены и
предпосылки
Перечисленные законы широко используются для опро-
вержений и доказательств от противной Такие рассх'ж ге
ния начинаются с отрицания вывода и заключаются
в выявлении предпосылок, при которых верно отрицание.
Если выявленные предпосылки оказываются противореча
шпми исходным, то в сиду закона двойного отрицания
утверждение признается истинным.
Пример доказательства от противного. До-
кажем, что «простых чисел бесконечно много».
Допустим противоположное — что «простых чи-
сел конечное множество». Тогда существует
самое большое простое число. Обозначим его Р.
Рассмотрим произведение всех чисел от 2 до Р н
прибавим к нему 1. Полученное число 2-3-4 X
X — !)•₽ +1 не может делиться ни на 2.
ни на 3, ни на 4, ни на Р—1. ни на Р.
Следовательно, либо это число простое, либо
у него есть делители, но все они больше Р.
Это противоречит предположению о том. что
Р — самое большое простое число. Следователь-
но, множество простых чисел не может быть
конечным, что и требовалось доказать.
Доказательства от противного в силу
использования принципа выбора являются кос
венными дсЖазате.льетвами. Наиболее убедитель-
ными являются прямые доказательства, в кото-
рых утверждаемое доказывается не путем отри-
цания, а на основе некоторого способа вывода
утверждаемого из исходных предпосылок.
И наконец, правильность утверждений даже при безуп-
речной логике доказательств зависит от достоверности
исходных фактов и положений. Эту идею выражает закон
достаточных оснований, сформулированный немецким ма-
тематиком Лейбницем.
закон дост а (оч- Любое утверждение должно предполагать наличие
ных основании аргументов н фактов, достаточных для его обоснования.
Данный закон выражает суть научных подходов к изуче-
нию явлений в природе и обществе, отвергающих бездока-
зательное утверждение истин.
Нарушениями закона являются рассуждения, которые
опираются на недостоверные факты или положения, истин-
ность которых не проверяется, а принимается на веру-
Пример рассуждений, не имеющих достаточных основании.
30
£&№ nePfSfWrt/Zt? P'O/PPP}
шо рыть ярария/маарям i. i l i I
*> 1. В чем состоит закон противоречия?
2 В чем заключается принцип выбора?
3. Как используется закон противоположности?
4. Как проводятся доказательства от против-
ного?
5. В чем состоит закон достаточных оснований?
4. Пусть утверждение A w «прошел дождь»,
а утверждение В ss «на улице сыро». Истинны
ли следующие суждения:
а) А * В;
б) В -н А (обратное);
в) не А не В (противоположное);
г) не В > не А (противоположное обратному)?
Подберите такие утверждения А и В, чтобы все
четыре суждения были истинными.
• 1. Укажите противоречия в утверждениях:
а) х 4- у = 1 и х + у<0; б) х = О и у t= ;
«) i! = У « у<0; г) Xs = у и х! + 1 = 0.
2. Укажите
дений;
а) х — 1 =
следствия дпя следующих утверж-
0 и х 0,-
ММШМ &МРЛ7 МЖ4&Ы Ш/Ь-
PG #4 ££МС4£ &-'&&&& # 46PG 3/1---
/ЯШИЯ £ ---
Л я асыу лтшеярр-р/р -
3. Укажите примеры двойного отрицания для
утверждений:
а) ^Сегодня был дождь»;
б) «х — 2» и «х = 3»;
в) «х — 0» или «у = 0»;
г) «5 не делится на 2 и на 3».
§ 8. Задачи и их решения
Содержание любой деятельности связано с получением
определенных результатов — в изготовлении деталей, сбор-
ке узлов и машин, сборе урожая, изобретении приборов и
устройств, написании отчетов и книг, доказательстве теорем
и т п Главным и безусловным в любой деятельности
является решение задач, выражающееся в получении
заданных конечных результатов, а не деятельность сама
но себе.
Любая задача это требование получения определен-
ных результатов. Решение задачи необходимо начинать
с точной и четкой постановки. Постановка задачи
предполагает прежде всею определение: что дано? и что
требуется * Отнег на первый вопрос это исходные усло-
вия. а ответ на шорой требования задачи:
3t
34444,4
MIO дмо ?
Рассмотрим такую задачу: добраться до
школы. В этой задаче требуется: попасть
в школу. Исходным условием в этой
задаче будет то место, где мы сейчас находимся.
Второй пример: построить треугольник со сторо-
нами 3,4x5 см. Требуемый р
тат что изображение треугольника
ними сторонами. Исходные v с
лист бумаги или доска и чертежные
менты.
е з у з ь-
с м 1ан-
Д о И н я.
инегрv
ЗАДАЧИ:
конкретные
обобщенные
Задачи могут быть разделены на конкретные и обобщен
ные. В конкретных задачах требуется подучить конкретные
результаты в конкретных условиях В обобщенных поста
новка.х исходные условия попускают определенные парна
ими и требования к результатам должны выражать чти
симость от этих вариации Примеры конкретная постановка
задачи «Решить уравнение 2v— 1 =()» ц обобщенная поста
новка «Решить уравнение ax-|-fr=O».
При постановке задач требуемое следует хаъш.нь
четким определением конечных результатов Эти опрете
ления должны быть такими, чтобы можно было однозначно
решить, являются ли полученные результаты иранильными
или нет
При постановке обобщенных задач дополните н.но необ-
ходимо определить, при каких исходных ус ювиях юлжны
быть получены требуемые результаты Здесь должно быть
решено, какие исходные условия будут считаться допусти-
мыми. а какие нет.
Постановка задачи:
ПОСТАНОВКА ЗАДА-
ЧИ
1. Что дано?
2. Что требуется?
3. Что будет правильным результатом?
4. Какие данные допустимы?
Конечный успех в решении задач во многом зависит
от точности и четкости постановок задач Неточности или
двусмысленности в ответах на эти вопросы могут привести
к неправильному пониманию требуемых результатов и.
как следствие, к возникновению ошибок.
Результаты решения задач считаются правильным и.
если они строго соответствуют постановке задачи Резуль
тэты решения неправильные, если они противоречат
требованиям постановки задачи
Например, для уравнения 2л— 1 =0 резуль
татом решения является число л—0.5. Пра-
вильность этого результата проверяется подста-
новкой значения л = 0,5 в исходное уравнение:
2л—1 =2-0.5 —1 =0. Подстановка любого дру-
32
того числа в это уравнение лас г противоречие,
и поэтому л=0,5 является единственным реше-
нием. Например, подстановка числа г=1 из*1
2л—1=2 1 — 1-АО противоречие.
Решением задач н обобщенной постановке являются не
конкретные результаты, а описание способа их получения.
Мы будем говорить, что способ решения правильный,
если он дает требуемые результаты при любых допустимых
исходных данных. Соответственно мы говорим, что способ
решения неправильный, если эти условия не выпол-
нены. А именно способ неправильный, если можно указать
такие исходные данные, которые допустимы, но предла-
гаемый способ либо вообще не дает никаких результатов,
либо дает неправильные результаты.
Например, для уравнения а.\' + /? = 0 формула х =—
не дает результата при а=0. Если же в постановке задачи
этот случай будет объявлен как недопустимый, то эта
формула дает правильный способ решения. Рассмотрим
полное описание постановки этой задачи.
В этой обобщенной постановке исходными данными
являются любые числа ан/? — коэффициенты уравнения
ас + /? = 0 Но допустимыми будут считаться только зна-
чения а=#=0. Требуемым в этой постановке задачи явля-
ется число л,, — корень уравнения который должен удовлет-
ворять равенству аль -|- Ь = 0. ь
При такой постановке задачи формула лъ =-----— в са-
мом деле дает правильный способ решения. Действительно,
подстановкой х=— в исходное уравнение мы получаем
тождество
ar + b = al — -t-)— /? + /? = 0,
которое справедливо при любых а. отличных от 0. Следо-
вательно, эта формула дает правильный способ решения
швейных уравнении
Обобщенные способы решения задач, дающие резуль-
таты При ЛЮбЫХ ДОПУСТИМЫХ ИСХОДНЫХ УСЛОВИЯХ, ПРИНЯТО На- МЕТОД м-
зывать методами решения задач. Ценность методов за-
2 Эяи 1&Ч4 В А КаАмин
33
ПРАВИЛЬНОСТЬ мето-
да решение
ключена в том, что они гарантируют получение релмьтагов
для целого класса однотипных задач.
Правильность предлагаемых методов решения пошлю
проверять на конкретных примерах. Однако проверка ппет
лагаемы.х методов на отдельных примерах (индуктивное
обоснование) не может дать полных ырангин. что пои
любых допустимых исхощых условиях данный метод бх кт
давать правильные результаты
Исчерпывающий аналт правильности методов решении
может быть прове ген только путем .toiиисскнх рассужде-
ний В соответствии с опре юлением правнлыюети методов
решения задач необходимо показать, что требуемые ретуль
таты должны быть получены при любых допустимых исход-
ных условиях.
В качестве иллюстрации анализа правиль-
ности общих методов решения задач рассмотрим
задачу решения системы двух уравнений с двумн
неизвестными
I ах-{-by — е
I
Решая эту систему уравнений, мы нахочим.
что значения v и у могут вычисляться по сле-
дующим формулам:
где
D — ad — bc. Dx = ed — fb, Dy—af
Например, для конкретном системы урав-
нений
<2'4-7 1
по приведенным формулам получим
I) 2-2 — 1 1 - 1.
Л -2-1—1-2 и.
D 2-2 1-1 Т
Значения v и у соотвектвснно равны*
v—’T'.l п 1
Подставляя эгп значения в систему уравнений,
получаем:
| 2-0+1-I -1.
| 1 -0 + 2-1 У
Таким образом, ш а че ни я \ 0 и у =ч 1 я вл я -
югся решением чанной конкретной системы
уравнений
Теперь мы можем показать, что представленный метод
решения систем линейных уравнений с двумя неизвестными
правильный. Для этого приведем точную постановку задачи:
34
У г в е р ж i е н и е.
ibvmh неизвестными
Для Любой системы уравнений с
. коэффициентами, такими, что ud~bc t= О. представлен-
ные формулы тают решение этой системы.
Пре вставленное общее утверждение требует проведении
чока таle.ibcrBa Для этою иодсгаьим значения i и (/ в
Лтстяму уравнений:
, Z) i / a[rd lb)
«-„-+/>— --j-
aetl -afb | baf bee el ad be,
ad b, ad bi
D , , O. ed fb)
D + “ D ad fcc
./\>1 duf di<fjad- b< __
ad -be
dll,
+-
b< af ..
ad be
гож iec i во
d(uj — ci
ad— bi
Ф
ad be
тож тес г во
г)ги тож тегтва справедливы для нобых чисел а. Ь, с и </.
если /) 0. Следовательно. i = DJL) = является
решением системы уравнений при любых и, />. с. d. таких,
что ad be -i 0, что и требовалось доказать.
1. Что такое постановка задачи?
2. Что такое правильные и неправильные ре-
зультаты решения задач?
3 Что такое правильный и неправильный спо-
соб решения задачи?
вопросы
упражнения
задания
4. Что такое метод решения задач?
5. Можно ли обосновать правильность метода(£)1. Приведите постановку задачи решения квад-
решения только проверкой на примерах? ратного урапнвиия.
2. Докажите правильность изучаемого в школе
метода решения квадратного уравнения.
ОСНОВНЫЕ ВОЗМОЖНОСТИ ЭВМ
§ 9. Состав персональных ЭВМ
Электронные вычислительные машины (компьютеры)
это универсальные электронные устройства обработки
информации. Наиболее широкое распространение сейчас
получают персональные ЭВМ предка шаченные тли инди-
видуальной работы.
Персональные ЭВМ это вычислительные машины
которые могут быть установлены на любом рабочем месте
Общий вид персональной ЭВМ:
ПЕРСОНАЛЬНЫЕ ЭВМ
ДИСПЛЕЯ
КЛлРидтурд
В состав персональных ЭВМ входят:
1) устройство отображения информации:
2) клавиатура с системным блоком;
3) устройство записи информации.
В качестве устройства отображения информации в
персональных ЭВМ применяются обычные черно-белые или
цветные телевизоры либо специальные дисплеи. В этих
устройствах информация выводится на экран электронно-
лучевой трубки в виде двухцветных или многоцветных
изображений: рисунков, текстов, схем, чертежей, объемных
изображений и т. п.
На клавиатуре ЭВМ размещены клавиши русского и
латинского алфавитов, а также цифры и другие специаль
ные знаки. Нажимая на эти клавиши, человек может вводить
36
в ЭВМ информацию числа, слова, фразы, а также коман-
ды управления работой ЭВМ
В системный блок входят программируемое устройство
управления, называемое процессором, и внутренняя память
тля оперативного хранения н обработки информации.
Внутреннюю организацию ЭВМ можно представить схемой:
процессор
память
I" ГП»нм«а)
ВНУТРЕННЯЯ ОРГАНИ-
ЗАЦИЯ ЭВМ
Процессор выполняет вычисления и управляет работой
машины. Управление ЭВМ процессор осуществляет с по-
мощью программ, которые должны находиться в памяти
машины. Смена программ позволяет изменять функции
вычислительных машин.
Важной характеристикой памяти ЭВМ является ее
объем — количество символов, которые могут быть запи-
саны в память машины. Объем памяти школьных персо-
нальных ЭВМ в зависимости от их типа составляет от 16
до 64 Кбайт и более 1 Кбайт (килобайт, или К) — это
1024 байта. Одни страница текста, имеющая 30 строк по
60 знаков в стооке, требует для хранения 1800 байт —
= 1800:1024 « 1,76 Кбайт.
Для долговременного хранения информации и программ
в персональных ЭВМ используются магнитные носители —
37
ИНФОРм™цииАПИСИ магнитные тенты или гибкие митнитные
Объем памяти на kjccci матнигных
порядка 100 300 Кбаш а на
1 Мбайт (м< пати)
I ибкни
магнитны» диск
теки । искеты).
(ент coi гав нк-т
uicki rax oi 0.31 ц,
Кассет a
чатни гнои
магнитными тентами .ЭВМ но ik поча
ются магнитофоны, а тля раооты с дисмтамн 1 пеки,'ть
ныс накопите in, которые называют (искомо ими <оо кг
точно накопит (ями на магнитных инках)
В школьный комитент вычисти те тьнон icxhhkh hxooii
10 12 персональных ЭВМ, обьс тнненных в юкл, ikhvio
сеть. Главным на значением сети .ЭВМ hbthcich но>мож
ность пересылки данных и программ > одних ЭВМ на
38
гругие Центральное место в сети занимает ЭВМ учителя, сети зам
< этому компьютеру подключены устройства печати для
вывода информации на бумагу и демонстрационный теле-
визор хля показа изображения всему классу. Но наиболее
важным устройством на ЭВМ учителя является накопитель
на магнитны* Дисках. На них хранятся учебные и игровые
программы, а также будут храниться программы, которые
вы сами будете составлять и вво шть в ЭВМ
I (£) 1. Какие устройства входят в состав персональ-
ных ЭВМ?
2. В каких единицах измеряется объем памяти
ЭВМ?
3. Каков объем памяти ваших школьных ЭВМ?
4. Сколько страниц текста может быть записано:
а) на кассете магнитной ленты с объемом па-
мяти 100 Кбайт;
вопросы
упражнения
задания
б) на гибком диске с объемом памяти 1 Мбайт?
§10. Правила работы
Использование персональных ЭВМ состоит в основном
в работе на клавиатуре и чтении информации либо восирия
тми рисунков на экране. Примерный вид клавиатуры ЭВМ:
39
КОМАНДЫ
На клавиатуре, как видно из рисунка, имеются буквы
русского и латинского алфавитов, цифры от 0 до 9, арифме-
тические знаки, знаки препинания и некоторые специальные
символы. Кроме того, на клавиатуре имеются специальные
клавиши. Две из них играют очень важную роль при вводе
слов и текстов. Одна из этих двух клавиш — это регистр
переключения прописных — строчных букв, а другая —
регистр переключения русских — латинских букв.
Работа с ЭВМ всегда начинается с ее включения: вклю-
чения клавиатуры, телевизора и накопителя. О включении
ЭВМ можно судить по заставке и сообщениям, появляю-
щимся на ее экране.
Запуск нужных программ производится так же, как
начинается работа с магнитофоном: нужная программа
(запись) ищется, а затем загружается в память ЭВМ с
помощью определенных команд. Предварительно эти про-
граммы должны быть записаны на кассете магнитной
ленты или дискете (примерно так же, как музыка на магни-
тофонной ленте). Для загрузки программы эти носители
информации должны быть поставлены на соответствующее
устройство - на магнитофон или дисковод на ЭВМ учителя
или ученика.
Работа людей на персональных ЭВМ обычно проходит
в форме диалога. Человек набирает команды, нажимает
на определенные клавиши, вводит слова, фразы и т. п.
А ЭВМ в ответ на вводимые команды выводит сообщения,
рисунки и выполняет заданные команды.
Рассмотрим пример диалога со школьной ЭВМ:
ЭВМ: Disk BASIC version 1.0
Ok
Мы: ? "привет" 4I — команда
— ответ
ЭВМ: привет
Ввод команд проводится набором на клавиатуре ЭВМ
соответствующей фразы и нажатием клавиши . ко
торая называется клавишей ввода команд. Школьные ЭВМ
в режиме команд, как правило, могут проводить арифмети-
ческие вычисления. Приведем примеры команд для выпол-
— команда сложения
— результат сложения
- команда умножения
результат умножения
команда деления
нения вычислений:
Мы: ?2+2 4J
ЭВМ. 4
Мы ? 5*5 <J
ЭВМ: 25
Мы ? 1/3 4I
40
ЭВМ .33333333333333 резулыат деления
Мы. RUN* игра ^1 — команда запуска про-
граммы "игра"
-)ВМ: “игра” НЕ НАЙДЕНА - ответ на команду при
отсутствии нужной про-
граммы
Реакции ЭВМ на команды и данные зависят от програм-
мы, находящейся в ее оперативной памяти. Время реакции
программы на действия человека на персональных ЭВМ
обычно не превышает нескозьких секунд. При вводе непра-
вильных команд ЭВМ выводит на экран определенные
сообщения
Однако каждая программа имеет свой набор правил
работы, и эти правила сильно отличаются друг от друга.
Для изучения этих правил необходимо изучение инструкций.
Многие программы сами разъясняют правила своей работы.
В этих программах по некоторой команде, например при
нажагии клавиши |~?~|, на экран ЭВМ выводится перечисле-
ние допустимых команд и разъяснения к ним.
Важным способом организации диалога и ознакомления
с возможностями программ являются различного рода МЕН1О
«меню» Меню — это перечень команд, режимов и других
возможностей, предоставляемых ЭВМ при использовании
дайной программы. Примером меню может служить одна
из заставок в клавиатурном тренажере «Азбука»:
5аставка: выбор вида упражнений .
Выбирайте вид работы:
инструкция
=> русские слова
английские слова
числа
команды языка Бейсик
знаки и символы
конец равоты
Установите указатель на нужную строку
и нажмите любую клавишу.
Работа с этим меню заключается в перемещении по
экрану вверх-вниз указателя j-Л Этот указатель задает
режим дальнейшей работы с ЭВМ’ чтение инструкции,
работу с русскими словами, с английскими словами и т. д.
Выбор конкретной возможности фиксируется нажатием
клавиши _=> (клавиша ввоза комзнды).
В общем случае меню это перечень основных возмож-
ностей. пре доставляемых компьютером в данной программе
П( юедит» другой при-
мер меню
КЛАВИША МОДА
"ОМАНДЫ
41
(в текущей ситуации. Выбор возможностей проводится
либо перемещением по этрану указателей (стрелок) \иб<
нажатием ла клавиатуре цифр и ш букв, указанных вменю"
................. .. ........ экрану обычно использу-
Для перемещения указателя по
ются клавиши:
влево
вниз
— вправо
— вверх
вопросы 111 I
упражнения I9IU
задания
1. Какие клавиши имеются на ваших ЭВМ?
2. Что такое меню?
3. Как перемещаются указатели по экрану?
^Выполните лабораторную работу с клавиатурным
тренажером. Обязательно освойте правила
ввода:
а) русских слов и фраз;
б) английских слов;
в) чисел и формул;
г) ключевых слов языка программирования.
§ 11. Редактирование текстов
Как думаете <мм
ЭВМ лучше пишущей
мяшмнкн!
Одной из проблем нашего времени является подготовка
различных документов. Обычно для этого используются
пишущие машинки. При этом возникает проблема внесения
исправлений в отпечатанные тексты. Персональные ЭВМ
как средство для подготовки и редактирования текстов
гораздо удобнее, чем пишущие машинки. Дело в том, что
тексты можно хранить в памяти ЭВМ и многократно исправ-
лять их без перепечатки на бумаге. Кроме того, при исполь-
зовании компьютера можно получить любое количество
экземпляров.
Работа с текстами на ЭВМ начинается с запуска про-
граммы. которая называется редактором текстов. Новые
тексты вводятся с клавиатуры гак же, как они печаг, ются
на обычных пишущих машинках. Но при этом тексты выво-
зятся не на бумагу, а на экран телевиюра или дисплея.-
Если текст большой, то на экране будет видна
часть текста, а весь он будет храниться в памяти Эт
42
Экран ЭВМ:
Я помни чудное мгновенье:
Передо мной явилась ты,
Как мимолетное виденье,
Как гений чистой
Место для ввода очередного сны
вола текста указывается на «кране
с помощью специального сказателя,
который называется курсором.* Для
перемещения курсора по экрану вверх
вниз н вправо-влево использую!си уже
известные вам клавиши.
Для внесения изменений н ickci необходимо перевесгп
курсор в cooTBeiciвукицее мест 1еы 1,1. Исправление букв,
слов и фра» право инея набором пхжных символов в том
_____ _ КУРСС*
ЗВНП
месте. к\ г 1 нереве ген ку рсор
Для вставки символов нажимается соответствующая
функциональная клавиша, а зшем проводится набор встан-
шемых символов, новые символы появляются в том месте.
। те стоял курсор Символы, стоявшие справа от курсора,
отодвигаются еще дальше вправо.
Для удаления символов, слов и фра» нажимается другая
функциональная клавиша В рс»\ штате символ, стоявший
в позиции курсора, удаляется, а оставшаяся часть строки
сдвигается на один символ влево.
Удаление строк и вставка новых строк проводятся путем
нажатия соответствующих функциональных клавиш При
этом либо указанная строка исчезает из текста, либо в
нем появляется пхетая строка.
Просмотр всего текста осуществляется перемещением
по экрану курсора вверх вниз Полностью готовые тексты
специальными командами пересылаются по сети, выводятся
на устройство печати или записываются для хранения на
магнитные ленты или диски. Для продолжения редакти-
рования текст вновь считывается (по определенной коман-
де) с носителя в
оперативную память ЭВМ.
а.1. Каковы основные
'--'текстов?
2. Как в редакторе
вставляются пустые строки?
3. Как в вашем редакторе текстов удаляются
строки?
4. Как в вашем редакторе текстов тексты за-
писываются в память и считываются оттуда?
5. Как на вашей ЭВМ можно узнать, какие
тексты хранятся в ее памяти?
операции редактирования
текстов на ваших ЭВМ
вопросы
упражнения
задания
дактора текстов в
машины свое любимое четверостишие
.1. Вве
память
и запишите его на ленту или диск.
2. Подготовьте текст поздравления с Новым го-
дом для родителей, близких и друзей. Выве-
дите на печать два-три поздравления.
43
$ 12. Графика и черчение
Привлекательность персональных ЭВМ свя-
зана с возможностью получения многокрасочных
изображений на экранах цветных телевизоров
и дисплеев Следующий шаг в знакомстве с
ЭВМ рисование н черчение на экране ЭВМ
При рисовании на ЭВМ мы можем вносить
изменения в создаваемые изображения, запо
минать их и возвращаться к ним вновь.
С помощью ЭВМ можно рисовать даже то.
что невозможно или очень сложно изображать
на бумаге строить трехмерные изображения
рассматривать их с любых точек, шхтраивать
картинку, а также печатать чертежи.
ГРАФИЧЕСКИЙ
РЕДАКТОР
Для выполнения чертежных и графических работ на
ЭВМ используются программы, которые называются графи
ческими редакторами. Основные элементы, из которых
строятся изображения на экране ЭВМ. точки, отрезки,
дуги, рамки и окружности. Кроме того, в изображения
могут включаться надписи, а также может производиться
раскраска фигур.
Элементы Пример
изображений: изображений.
• [ЦОЧКД
----- ОЛ1ГЕ50К
"х ДУМ
^-^ОКРУЖНОСШЬ
Рисовать на экране ЭВМ можно с помощью указателя
в форме стрелки карандаша и т п_, который перемещается
по экрану с помощью известных клавиш или специального
устройства (оно называется «мышь»).
Для вывода точки указатель подводится в нужное место
экрана и нажимается соответствующая клавиша. Для
вывода отрезков фиксируется точка начала, затем указатель
переводится в точку конца и нажимается клавиша прове
дения отрезков. В результате на экране появляется отрезок,
соединяющий текущую и зафиксированную ранее
Для вывода рамок также фиксируется пара точек. -эти
точки должны являться парой диагонально противополож-
ных вершин рисуемого прямоугольника
Для рисования окружности прежде всего фиксируете
ее центр. Затем курсором указывается любая точка окруж
44
пости и нажимается клавиша рисования окружностей.
Закраска фигур производится ш ремещением указателя
внутрь фигуры и нажатием клавиши закраски. В ревульгате
произойдет полная закраска фигуры, если ее контур имеет
тот же цвет, что и указатель Если же контур имеет другой
цвет или он не замкнут, то закрасится весь экран.
Смена цвета указателя производится либо соответст-
вующими командами, либо с помощью меню цветов. На
цветном дисплее это дает возможность рисовать разно-
цветные картинки.
Вывод надписей на рисунках и схемах осуществляется
после нажатия специальной функциональной клавиши,
которая переводит программу в режим вывода текстов.
Надписи выводятся так же, как и обычные тексты. Возврат
в режим графических изображений проводится повторным
нажатием той же функциональной клавиши.
Простейшим способом редактирования формируемых
на экране изображений считается удаление последнего
выведенного элемента, которое проводится нажатием кла-
виши удаления. Повторное нажатие этой клавиши удалит
предпоследний элемент изображения и т. д.
Для получения справок о всех командах рисования
необходимо нажать некоторую функциональную клавишу,
обычно клавишу [7~]
Полностью подготовленные изображения могут записы-
□Подсказка»
ваться на магнитные носители, пересылаться по сети или
выводиться на печать.
V 1. С помощью графического редактора нари-
суйте и раскрасьте изображение:
а) домика; б) машины; в) цветка; г) компью-
тера или другого предмета.
2. Изобразите на экране в трех проекциях
чертеж:
а) шайбы; 6) конуса; в) пирамиды; г) цилиндра.
3. Нарисуйте на экране объемное (трехмерное)
и зо браже н ие:
а) дома; 6) трактора; в) магнитофона; г) компью-
тера или другого предмета.
вопросы
упражнения
задания
1. Как с помощью вашего графического редак-
тора рисуются линии, рамки, окружности, дуги’
2. Как производится раскраска фигур?
3. Как вносятся исправления в чертеж?
$13. Поиск информации
Память ЭВМ — это одно из наиболее совершенных
хранилищ информации. Достоинством ЭВМ является
сравнительно большая скорость поиска и обновления дан-
ных записанных на магнитных носителях: дисках и лентах.
При этом ЭВМ могут проводить поиск намного быстрее н
просматривать во много раз большие объемы информации,
чем самые лучшие секретари и архивариусы.
45
БАЗЫ ДАННЫХ
Программы органишцин и ведения информационных
архивов на ЭВМ называются базами данных. Одной ит
простейших форм организации информации в базах данных
являются таблицы. В форме таблиц могут записываться
различные списки, перечни, сводки и многие другие „оку
менты.
Рассмотрим в качестве примера таблицы сведения об
успеваемости учащихся по трем предметам: физике, мате-
матике и информатике.
Г (фамилия 1 1 1 (имя (класс _1 1 физика т (натем г 1 ИНфОрм|
। (Каргалова I (Надежда ( *?А —1 1 5 т 1 4 5 (
(Крылов 1 I 1 (Игорь ( 9Б 1 I 5 1 1 5 1 5 |
1 (Рудаков 1 ,, , ,,,, I г (Эдуард | 9В 1 1 4 1 1 5 г— 1 5 |
г (Иванов t ... . I 1 (Дмитрий I 10А 3 1 1 2 1 3 I
। (Петров U — -— _ 1 I (Дмитрий( 10Б Г....... 1 2 1 1 2 _| 1 3 1 1
Таблица в базе данных — это некоторое число строк
данных с выделенными столбцами. Каждый столбец в этих
таблицах должен иметь собственное имя. В нем могут
записываться числа или символьные данные (слова или
фразы), но не то и другое вместе.
В приведенной таблице числовые данные — это оценки
по предметам, которые записываются в 4, 5 и 6-м столбцах,
а символьные данные это фамилии, имена и номера
классов, которые записываются в 1, 2 и 3-м столбцах.
।Him Поиск информации в таблицах осуществляется указа-
нием имени столбца и значения, которое должно быть
найдено в этом столбце Результат поиска может быть
двоякий. В одних базах данных находится только самая
первая строка, содержащая в данном столбце указанное
значение, а в других базах данных выводятся все строки,
содержащие это значение в данном столбце.
Например, в приведенной таблице результатом поиска
первой строки, содержащей имя Дмитрий, будет строка.
I-------------|---------,--------1 I ' ’
(Иванов (Дмитрий! 10А 13 I 2 I 3_______________I
46
Результатом поиска всех рий. будет: строк, содержащих имя Дмит-
I (Иванов 1 t 1 (Дмитрий| J L 1 I 10А | 3 | L 1 2 1 1 з I
1 (Петров L- * ^т (Дмитрий| -1 L 1 Г 10Б I 2 | » 1 1 2 ( 1 3 1
Выборка строк таблицы возможна и по любому другому
стозбцу. Например, из приведенной таблицы мы можем
выбрать данные обо всех учениках, имеющих «5» по физике
Результат будет такой:
1 (Каргалова 1 I I (Надежда| 9А Т 1 5 1 4 —г- 1 5 I
г (Крылов 1 . 1 I (Игорь | —1 L— 9Б 1 1 5 1 "Г 1 5 * 1 1 —।— 1 3 1
Выборка информации из таблицы может проводиться
и по сложным запросам с одновременной проверкой не-
скольких условий. Такой способ поиска информации соот-
ветствует логической свитке и в формулировке вопросов.
Например, мы можем в ба ie данных, хранящей данную
таблицу. дать запрос на поиск всех учеников, имеющих
оценки «5» по физике и по математике. Результат будет Сложные запросы
такой:
1 (Крылов 1 1 1 Г1" (Игорь | 9Б 1 I 5 г I 1 5 ( 5 1 1
Второй способ выборки связан с поиском информации, отвечающей составным логическим условиям со связками или. Если после получения информации об учениках, имею- щих «5» по физике, дать запрос на дополнительную инфор- мацию об учениках, имеющих «5» по математике, то будет получен результат:
1 (Каргалова • I । (Надежда( 9А ( 5 । 1 4 1 1 5 1
1 (Крылов 1 I 1 (Игорь | 9Б 1 1 5 1 1 5 1 1 5 I
1 (Рудаков т г (Эдуард 1 _1 9В 1 — 1 4 , 1 1 1 5 1. . .. 1 1 1 5 1 _____।
В качестве устовий поиска и выборки информации для
чис юных данных мог, i укатываться не только равенства,
47
но и неравенства вида с>3. х<4. или е>5 ч
символьных данных возможны также сравнения и нсравеи"
ства, которые понимаются в смысле совпадення с юг и их
упорядоченности по алфавиту (гак же к ж vпоря ц.чивз-
ются слова в словарях).
В базах данных, кроме поиска и выборки инных вот
можно проведение сортировки информации в порядке
убывания или возрастания значений одного из столбцов
В рассматриваемом примере упорядочение строк по фами-
лиям в алфавитном порядке даст следующий результат
I — — Иванов t 1 " ! (Дмитрий( 1 1 10А —! 1 3 1 "Г™ .. J— 1 2 1 3 ~|
(Каргалова 1 1 1 (Надежда I —1 L- 9А т 1 5 i г 1 1 4 | 1 5 |
1 (Крылов I 1 (Игорь I I ... 1 9Б г 1 5 г 1 1 5 ( 1 5 |
1 (Петров ! I (Дмитрий( 10Б Г "1 1 1 2 1 1 3 |
1 (Рудаков • г г (Эдуард 1 1 1 9В 1 1 4 । 1 1 5 ( А 1 1 5 1 1
Окончательные результаты поиска н сортировки ипфор
мании могут выводиться на печать, пересыллься по сети
или записываться во внешнюю память
Обновление информации в таблицах может состоять
в добавлении новых строк либо в изменении или удалении
уже имеющихся строк.
Выше были приведены правила работы с таблицами,
которые уже имеются в памяти ЭВМ Работа с любой
новой таблицей начинается с ее создания При создании
таблиц прежде всего указывается число столбцов, затем
нх имена и типы значений в них, а также количество
позиций, которые отводятся для записи значений в столбце.
Для определения общего списка таблиц, имеющихся
в базе данных, существует возможность просмотра оглав-
ления таблиц.
вопросы
упражнения
задания
(?) 1. Что такое база данных?
2. Что такое таблицы в базах данных?
3. По каким запросам может проводиться поиск
информации в базах данных?
J) t. Составьте базу данных по успеваемости,
включив в нее оценки по математике, физике,
информатике и литературе.
48
2. Введите свои последние данные об успе- 4. Выберите всех учеников, не имеющих ии
ваемостм. одной двойки.
3. Выявите всех учеников, имеющих оценки .<5., 5 уПОрЯдочнте свою таблицу по-
по: . , '
а) математике; б) физике; а' именам, б) фамилиям,
в) информатике; г) литературе.
§14. Базы знаний
Способность ЭВМ проводить осмысленные рассуждения,
опирающиеся на законы логики, является одной из наибо-
лее удивительных ее особенностей. Такие рассуждения ЭВМ
могут проводить не хуже, чем человек (и даже с меньшим
числом ошибок). Однако для этого человек должен предва-
рительно сообщить машине факты и необходимые правила
вывода умозаключений. Только после этого машине можно
задавать вопросы, на которые она будет давать осмыслен-
ные ответы Одним из перспективных применений ЭВМ
в этом направлении в ближайшем будущем станет создание
баз знаний.
Базы знаний — это базы данных, в которых можно
не только накапливать и искать имеющуюся в памяти ЭВМ
информацию, но и получать от машин логически осмыс-
ленные заключения и рекомендации. Основой для этого
является хранение в машине не только фактической инфор-
мации, но и правил вывода следствий из имеющихся фактов,
что позволяет устанавливать факты, которых в базе не было.
БАЗЫ ЗНАНИИ
ЯЗЫК ПРОЛОГ
Одним из средств организации баз знаний служит язык
Пролог. Пролог был создан в начале 70-х годов как язык
логического программирования. Этот язык позволяет описы-
вать факты и правила вывода, а также задавать ЭВМ
вопросы о фактах, хранящихся в ее памяти Правила
описания фактов, вопросов и правил вывода в языке
Пролог рассмотрим на двух примерах.
Факты в языке Пролог записываются в форме преди- факты
катов с одной или несколькими переменными. Например,
утверждение «Надя — мама Аси» в Прологе записывается
в форме «мама (Надя, Ася);», а утверждение «Даша—-
мама Нади» -в виде предиката «мама (Даша, Надя);».
В отличие от разговорного языка при записи фактов
на Прологе важен порядок записи слов. В рассматриваемом
примере в предикате «мама (□, □);» на первом месте
должно указываться, кто мама, а на втором — кто ее дочь
(сын), но не наоборот.
/ИЛЖ/ (кто ,
/(/170 УЬЯ
НЛДЯ ЛСЯ М4/И4 (М4Я ,
ЧЬЯ)
49
ПРАВИЛА ВЫВОДА
Правила в языке Пролог^-это формальная запись
правил вывода умозаключений, в которых выделяются
предпосылки и заключение. Например, правило «Z это
бабушка X, если Z является мамой Y, a Y мама X»
определяет понятие «бабушка» На языке Пролог это пра-
вило заппсыв’егся в глете к идем вице:
Бавушка ( Z
X ) < мама ( Z , Y), мама ( Y , х )
Запятая в языке Пролог вырагкает логическую связку и,
а точка с запятой конец правила, факта или вопроса'
Базы знаний в Прологе представляют собой не что
иное, как наборы фактов и правил вывода. Указанные
два факта и правило вывода уже составляют следующую
простую базу знаний:
мант ( Надя, Ася ) ;
мама < Лаша , Надя > ;
еавушка ( Z , X ) <-
мама ( Z , Y ) ,
мама ( Y , X );
ОПРОСЫ к Ban Вопросы к базе знаний в Прологе также выражаются
1наиий в форме предикатов, перед которыми ставится знак вопроса.
При этом вместо конкретных, искомых значений указыва-
ются, как и принято в математике, переменные X, Y, Z
и т. п. Например, если приведенные факты и правило вывода
введены в ЭВМ, то машине можно задать вопросы.
Вопросы Пролог Ответы ЭВМ
«Кто мама у Аси?» мама ( X, Ася) ; X = Надя
«Кто мама у Нади?» ? мама( X, Надя); X = Даша
«Кто мама у Даши?» ? мама( X, Даша); не знаю
«Чья мама Надя?;. ? мамаСНадя, X); X = Ася
В случаях, когда ЭВМ находи г ответ, она выводит соот
ветствующие шачения переменных, указанных в вопросе.
Гели машина не находит нужных фактов, то она сообщит
«нет* или «не тнаю» Для определен ня всех имеющихся
в машине фактов тадаииою ына нужно указать вопрос
такою вида. ? мама(Х,У);
50
не X и Y — это переменные, а не конкретные значения.
Ответом на такой вопрос будет вывод всей фактической
информации, хранящейся в ЭВМ, в виде перечня
X = Надя, Y = Ася;
X = Даша, Y = Надя.
Рассмотренные вопросы — это примеры прямых вопро
сов о наличии информации в базе знаний Но язык Пролог
позволяет получать ответы и на вопросы, по которым в
базе знаний нет фактов в явном виде, но ответы на которые
могут быть выведены из имеющихся фактов с помощью
определенных правил Примеры таких вопросов и соответст
вующих им ответов:
Вопросы
«Кто бабушка Аси?»
«Чья бабушка Даша?»
«Кто бабушка Нади?»
Пролог
? Бабушка( X. Ася);
? Бабушка( Даша, X);
? Бабушка( X, Надя);
Ответы ЭВМ
X = Даша
X = Ася
не знаю
Ответы на эти вопросы машина ищет через имеющееся
в ней определение отношения «Z - это бабушка X», Для
этого из этого правила извлекается его предусловие -
составное суждение «Z —это мама Y. и Y — это мама X».
Поиск ответа на исходный вопрос «? бабушка (X, Ася);»
заменяется поиском ответов на следующие два вопроса:
первый — *? мама (Y, Ася),» — «Кто мама у Аси?» и
второй — «? мама (Z, Y);» — «Кто мама у Y, являющейся
мамой Аси?». Если машине удастся найти ответы на оба
этих вопроса сразу, то это и будет ответом на вопрос.
В рассматриваемом примере машина найдет, что под-
ходящими фактами будут «Х=Даша» и «Y = HaflH», и
выведет ответ: «Х=Даша». хотя в явном виде факта
«бабушка (Даша, Ася);» в машине не было. Если же
машине не удастся найти два таких факта, то она выведет
ответ: «Не знаю»
Сложные вопросы, факты и правила в языке Пролог
образуются только с помощью логической связки и. Рас-
смотрим второй пример базы знаний из школьной жизни. компьютер рмсуж-
Введем два общих суждения. Первое будет отражать, дм,)
«какие оценки имеют ученики?», а второе — «что собирают
ученики3»:
оценка (имя, предмет, балл) собирает (кто. что)
5)
Пусть в базе знаний есть следующие факты:
совирает(Коля, марки);
собирает(Вова, значки);
совирает(Оля, фантики);
оценка(Коля, физика, 5);
оценка(Оля, русский, 5);
оценка(Вава, алгевра, 2);
оценка(Саша, история, 5);
оценка(Оля, геометрия,4);
Для этой базы знаний можно ввести следующие
правила вывода:
фИлателист(Х) <- совирает(X, марки);
хорошист(X) <- оценка(X, _, 4);
0/1Я
Знак подчеркивания __ в правилах или вопросах озна-
чает, что в имеющихся фактах подходящим будет считаться
любое значение.
К указанной базе знаний язык Пролог разрешает зачать,
к примеру, следующие вопросы:
Вопросы «У кого есть пятерки?» Пролог ?оценка(X,_,5) Ответы X = Кол я X = Оля X = Саша
«У кого есть двойки?» «У кого пятерка по ?оценка(X,_,2) X - Вова
алгебре?» ?оценка(X,алгевра,5) не знак
«Кто собирает значки?» «Кто собирает фантики и имеет какие-нибудь ?совирает(Х,значки) ?совирает(X,фантики), X = Вова
оценки по русскому язы- ку?» оценка(X,русский,_) X = Оля
«Кто хорошист?» ?хорошист(X) X = Оля
В вопросе могут содержаться две, три или несколько
переменных. В таких случаях ответы будут содержат
52
перечисление всех нар, троек и других наборов величин,
соответствующих поставленному вопросу
Пример: на вопрос «Кто и какие имеет оценки1»,
записанный в форме «? оценка (X 6v ц-г получен
ответ Х = Коля, Z=5; ,\ - Оля, Z=5 Х = Вов г 2 = 2;
\=Саша, Z=5; Х = Оля, Z=4 \ на вопрос «Какие
оценки и по каким предметам имеют ученики'’» «? оценка
(X, Y, Z)» будет получен полный перечень фактов по
оценкам, имеющимся в базе знаний
ф 1. Что такое базы знаний?
2. Как записываются факты в языке Пролог?
3. Как в Прологе записываются правила вывода?
4. Как в Прологе ищутся ответы на сложные
вопросы?
вопросы
упражнение
задания
1. Составьте базу знаний о своей семье, ис-
V
пользуя факты «мама Q }, | |);» и «папа
(□. □);»
2. Дайте определение на языке Пролог правила
«дедушка (Д,
3, Составьте базу знаний о том, что коллек-
ционируют вашн друзья.
4. Составьте базу знаний о своих оценках за
неделю и оценках своих товарищей.
1 Проведи на ЭВМ эксперименты с выво-
дами данных о своей семье.
2. Проведите на ЭВМ эксперименты с собран-
ными данными о коллекционерах.
3. Проведите на ЭВМ эксперименты с данными
об оценках по предметам
4. Проверьте на ЭВМ, влияет ли увлечение кол-
лекционированием на успеваемость.
5. Расширьте рассмотренную базу знании, не
ограничиваясь сведениями об успеваемости к
коллекционировании.
§ 15. Численные расчеты
Проводить расчеты на персональных ЭВМ намного
удобнее, чем с помощью калькуляторов. Достоинством
ЭВМ является не только быстрота пересчета при измене-
ниях в данных, но и возможность отпечатать полученный
результат расчета При необходимости его можно сохранить
в памяти машины.
Для этого на ЭВМ используются программы, которые электронные тле-
называются электронными таблицами. Они позволяют за- лицы
писывать числа на экране ЭВМ, проводить различные
расчеты с этими числами и быстро производить перерасчеты
при исправлении данных в таблице.
Все операции над данными производятся на экране
ЭВМ, куда выводится специальная таблица. Эта таблица
состоит из ряда пронумерованных строк и столбцов. Рас-
смотрим пример таблицы, используемой для подсчета суммы
затрат на школьные принадлежности.
53
Э 1ектронная таблица
1 1 1—— —! Т 1 А | _j 1- .... f В | 1 с | I D | 1— 1 Е 1 1.... F — , 1 Б )
—1 1
1 1 1 1 цена 1 колич. (сумма | 1 I
1 1 1 1—
—। Н
1 2 (тетради 1 1 - 1 2 I 10 1 1— 20 I 1
1 f 1 I 1 1
1 з (карандашиI 1, - - 1 3 I 81 1— 24 | 1— 1 1
1 1 4 (ручки 1 35 I 4 I 140 | 1 4 1 1
1 ..... 1 5 Г Г {ластики 1 10 1 i 21 - 1 1 20 | 1 4 1 1
г ' “ 1 6 1 1 1 1 1 1 I 1 1 1 1 1
- 1
1 " 1 I I 1 I 1
1 7 1 1 _1 1- 1 1 итого: 1 1 204 | - - 1 1 1 —1 1
ИМЕНА ПОЗИЦИЙ
Текущая позиция в таблице задается указателем, ко-
торый мо кно перемещать по экрану, нажимая известные
клавиши. В каждую из этих позиций может быть записано
число, слово или фраза. Любое из этих значений может
быть быстро изменено.
Каждая позиция в таблице имеет составное имя вида
С4. А15, где буква указывает на номер столбца, а число —
на номер строки. Кроме того, каждой позиции в таблице
специальной командой может быть приписано имя —
а, Ь, с, , х. у, z. Имя может состоять из одной или не-
скольких латинских букв, например ах, dy, koren и т. п.,
за которыми может быть приписана одна или несколько
цифр, например xl, аО, all и т п.
Имена позиций в таблицах играют ту же роль, что и
переменные в математике. Этим именам можно приписывать
численные значения и формулы. Например, для подсчета
затрат нам нужно знать общую стоимость тетрадей, кото-
рая должна быть записана в позиции Е2. Но эта величина,
очевидно, должна быть равна произведению: Е2 = С2^
02 цены тетрадей на их количество, которые записаны
в позициях С2 и D2 соответственно. Отметим, что знак
умножения в ЭВМ обычно записывается в виде звездочки.
Аналогичные формулы ЕЗ =C3^D3. 14 — C4^<D4 и
Е5 = С.5D5 должны быгь приписаны позициям ЕЗ Е4.
Е5, соответствующим затратам на карандаши, ручки и
ластики. Итоговая сумма подсчитывается по формуле
Е24-ЕЗ (-1 4-4-F5. которая должна быть закреплена за
позицией Е 1
54
Введя в ЭВМ и позиции Е2, ЕЗ, '..4, 13 и 16 ш рс
чис к’нные формулы, а в полиции А2. ЛЗ, А4 и А5 надписи
гвдряди», «карандаши», «ручки», «ластики» и в позиции
Cl, 01, I I надписи «цена», «колич.», «сумма», мы можем
начать расчыы Для этого в соответствующих позициях
таблицы требуется с казать нужные зна тения и дать команду
..роведения расчета. ЭВМ быстро рассчитает все суммы и
выведет результат на экран, а затем будет ждать ввода
следующей команды. Если мы теперь изменим число г<-тра-
ти, карандашей и ручек, то машина снова быстро пере-
. читает суммы по тем числам, которые введены в таблицу.
Формулы для расчетов в таблицах могут составляться
из числовых констант и имен переменных с использованием
арифметических операций В сложных формулах подвыра-
жения выделяются скобками. Обозначения арифметических
операций следующие:
Операции:
* — сложение
- вычитание
4: — умножение
деление
,\ возведение
в степень
Примеры:
а+Ь+с
а—Ь—с
аКЬКс
(а/b)/с
а'(х'2)
АМ-ФМЕТИЧЕГЧИЕ
ОПЕРАЦИИ мтект-
ройных таблицах
Как и в калькуляторах, для расчетов можно применять
андартные математические функции:
- П (X) синус cos (х) —косинус
’ап(х/ -тангенс atari (х) - арктангенс
е др (>—экспонента In (х) —натуральный
|г ('J — квадратный корень логарифм
В электронных таб шцах возможно указание пар формул,
которые применяются в зависимости от выполнения некото-
рого условия.
МАТЕМАТИЧЕСКИЕ
ФУНКЦИИ
УСЛОВНЫЕ ВЫРАЖЕ-
НИЯ
Например, вычисление моду 1я, как
известно, определяется парой выра-
жений-
< при х>0.
— х при хт'О.
В электронных таблицах это может
быть записано с помощью условного
выражения следующего вида:
IF ( х>0, х, -х )
Первым аргументом в этом условном выражении является
гзовие выбора формул, а далее следует пара выбираемых
формул Первая формула испольлуется при выполнении
этого условия, а вторая в противном случае
В качестве условий выбора в таких формулах могут
быть . ка<аны различные равен» гва и неравенства величин
55
знаки ОТНОШЕНИИ Их обозначения:
= — равно
> — больше
< — — меньше или равно
< > — не равно
<; — меньше
> = - больше или равно
В качестве примера опишем условное выражение, необ-
ходимое для решения линейного уравнения:
fl.c + ft=0 (при «=#=())
В электронных таблицах способ вычисления корней этого
уравнения можно задать так:
IF (а<>0, -Ь/а. “не определено")
где в качестве второго аргумента указана не формула,
а фраза, которая должна выводиться, если н=() Тем
самым мы избежим ситуации деления на 0. Действительно,
решение линейного уравнения не определено, если n=(i
ЭВМ в такой ситуации выдаст сообщение «ие определено».
Результаты выполнения расчетов вместе с надписями и
исходными данными по окончании работы могут быть
разосланы по сети, отпечатаны на бумаге или записаны
на магнитный носитель.
вопросы 1 ' | ф
упражнения HU
задания
1. Что можно записывать в электронных таб-
лицах?
2. Как именуются позиции в электронных таб-
лицах?
3. Как записываются формулы в электронных
даблицах?
4. Как в таблицах происходит перерасчет по
формулам?
5. Как записываются условные выражения в
электронных таблицах?
1. Воспроизведите при помощи электронных
таблиц пример с расчетом затрат, не изменяя
числа тетрадей. Подберите такое число каран-
дашей, ручек и ластиков, чтобы итоговая сумма
была равна 2 р.
2. Опишите в электронных таблицах общую схе-
му решения квадратного уравнения и прове-
дите вычислительный эксперимент с решением
уравнений при различных значениях коэффи-
циентов.
3. Решите с помощью электронных таблиц
систему из двух линейных уравнений с двумя
неизвестными и проведите эксперимент с реше-
нием системы при различных коэффициентах.
4= Вычислите с помощью электронных таблиц
корень третьей степени из заданного числа
подгонкой с точностью до 0,01 для чисел:
в) х = 2; б) х = 5;
в) х = 10; г) х= юо.
§16. Наиболее распространенные программы
Любые применения ЭВМ требуют соответствующих
программ. Функция программ состоит в управлении работой
вычислительных машин и связанных с ними устройств.
По своему назначению программы могут быть подразделены
56
на учебные, деловые, игровые, инструментальные и систем-
ные.
Учебные программы служат для организации
учебных занятий с помощью вычислительных машин. Учеб-
ные программы это различные обучающие и моделирую-
щие программы, помогающие изучать информатику, физику,
математику и другие предметы. Эти программы помогают
проводить различные эксперименты и занятия с помощью
ЭВМ в школах и ПТУ, техникумах и вузах.
Деловые программы используются для подготов-
ки, накопления и обработки служебной информации в раз-
личных учреждениях. Деловые программы — это редакторы
текстов и электронные таблицы, графические редакторы,
базы данных, библиотечные системы и другие программы,
используемые для накопления, обработки н передачи дан-
ных. На производстве деловые программы организуют
управление технологическими процессами. В проектных и
конструкторских бюро деловые программы используются
как средства ведения проектной документации и т. п.
Игровые программы—это средство для отдыха.
Игровые программы могут быть подразделены на познава-
тельные и развлекательные. Познавательные игровые про-
граммы, подобно кино и телевидению, в форме занима-
тельных игр знакомят с окружающим нас или фантасти-
ческим миром. Эти игры позволяют нам становиться умнее,
сообразительнее и находчивее. О развлекательных же
играх нужно сказать: «Делу время, потехе час». Чрезмер-
ное увлечение развлекательными играми может принести
вред.
Инструментальные программы используются
профессиональными программистами для создания новых
программ для вычислительных машин. В число инструмен-
тальных программ входят интерпретаторы, компиляторы
и другие средства разработки программного обеспече-
ния ЭВМ.
Интерпретатор — это программа, анализирующая и сра-
зу же выполняющая тексты других программ. Например,
практически на всех персональных ЭВМ в их постоянной
памяти записан интерпретатор программ на языке Бейсик.
Компиляторы — это программы, которые переводят
программы с одного языка на другой. Например, сущест-
вуют компиляторы, которые переводят программы с языка
Бейсик на я гык машинных команд. Компиляторы в отличие
от интерпретаторов не выполняют программы, а только
переводят их с одного языка на другой.
Системные программы служат для организации
хранения, копирования восстановления и пересылки инфор-
мации в ЭВМ и сетях ЭВМ. Важнейшими среди них явля
ются операционные системы. Одной из основных функций
УЧЕБНЫЕ ПРОГРАММЫ
ДЕЛОВЫЕ ПРОГРАМ-
МЫ
ИГРОВЫЕ
ПРОГРАММЫ
ИНСТРУМЕНТАЛЬНЫЕ
ПРОГРАММЫ
нигер.jp -- Ч*
.ОМЛИЛЖТО|*М
СИСТЕМНЫЕ ПРО-
ГРАММЫ
57
операционных систем в персональных ЭВМ является копи-
рование программ и данных» хранящихся на магнитных
носителях, а также пересылка их по сети
С помощью таких программ
можно научиться читать, ни
сагь, считать, рисовать и играть
с компьютером в побом воз
расте, начиная с самого ранне-
го детства.
вопросы | ’
упражнения IV!
задания
' 1 Приведите классификацию программного
обеспечения ЭВМ.
2. Укажите примеры учебных, деловых и ин-
струментальных программ.
3. Приведите примеры известных вам игровых
программ и укажите их тип.
§
ОСНОВЫ АЛГОРИТМИЗАЦИИ
17 Алгоритмы и решение задач
Задачи, (апачи, задачи наша учеба, работа и личные
к та (то к 1ждоднсвиое, ежечасное решение задач. Каж-
ия задача требует для своего решения выполнения опре-
1енных действий. Многократно решая задачи, мы заме-
чаем, что необхо шмые действия должны выполняться в
определенном порядке В таких случаях мы начинаем гово-
рить об алгоритмах решения задач.
Алгоритм - это последовательность действий со алгоритм
строго определенными правилами выполнения.
Составление алгоритмов подразумевает существование
определенных исполнителей, которые будут выполнять
действия, предписываемые алгоритмами. В роли исполни-
Рисованис домика по пре тставленному описанию алго-
ритма начинается с рисования стены, да iee рисуется крыша,
>атем прорисовывается дверь и, наконец, окно. Главным
в выписанном плайе действии является строгое соблюдение
остава и поря тка действий.
Исполнителями данного алгоритма могут быть и ЭВМ, АЛ'
и люди. Различие в выполнении этого алгоритма людьми
и ЭВМ будет состоять в том, что люди наверняка будут
творчески относиться к рисованию отдельных элементов
изображения, в то время как для ЭВМ необходимы деталь-
ные описания всех действий и элементов изображения,
вп 1огь до точного указания их местоположения.
1тя описания а тгоритмов мы будем использовать опре-
деленную форму записи Запись алгоритма должна оформ-
иться по следующим правилам
На первой строке (вписывается слово а п оритм или
<чо трехбуквенное сокращение алг. Далее за этим словом
59
записывается название алгоритма. На второй строке запи
сывается слово начало или его сокращение нач Далее
в столбик с небольшим отступом в 2 3 пробёлГ'записы
ваются действия, составляющие алгоритм Последней стро-
кой описания алгоритма должно быть слово конец или
сокращенно кон в той же позиции, что и слово начало
Рассмотрим общую форму записи алгоритма. Справа
записан еще один пример алгоритма — алгоритм приветст-
вия, исполнителем которого может быть ЭВМ:
ОАЩАЯ «ОРМА ЗА-
ПИСИ АЛГОРИТМА
В угловых скобках (...) при описании формы записи
здесь и в последующем указывается содержание информа-
ции, которая должна записываться в данном месте.
В алгоритмической форме можно записывать не только
алгоритмы для вычислительных машин, но и различные
инструкции, предписания и рекомендации для людей При-
мером может служить план работ при написании сочинения
________________________________
____еъ/быть тб,яу cowwewiz ___________
ГГКМУЯГУМГЬ Я Ш7ЯСУМ76> .-7/7У?Н _
'(МТТМСУМГЬ УГ&/О6ЯГ CCWHEWTZ
hJsWZStbW? YEPHOAHX
___________________________
Результаты:
тема сочинения
— план сочинения
— черновик сочинения
— исправления в тексте
— чистовик сочинения
В ттом предписании-рекомендации главным является
строг н- соблюдение последовательности работ. В частности,
по этому плану написанию сочинения должно предшество-
вать написание набросков (черновика), а написанию черно-
вика составление плана сочинения. Or строгого соблю-
дения приведенною плана работ сочинение только выиграет,
поскольку этот план позволяет собрать и упорядочить мысли
до написания окончательного текста сочинения.
В качестве третьего примера рассмотрим алгоритм
60
решения системы линейных уравнений н применим его
к решению следующей сне гемы
Система уравнений: Исходные данные:
Г« = 3, b — 1, е=()
U=i. </=2, /= ।
на м< юле, рассмотренном
,3с 4- ;/ = ().
*4 2.7=1
Алгоритм решения основан
и § 8.
Pi зультаты:
l) = ud —be — 5
l), = ed — bf = — 1
Dv—a/—ce=3
x—DJD= —0,2
y—D.JD — Ofi
В записи вычислительных алгоритмов мы видим новое
обозначение — знак : = . Этот знак читается «присваива-
ется». Например, запись первой операции D‘.=ad — be
в этом алгоритме читается: переменной D присваивается
значение выражения ad—be. Смысл этой операции состоит
в следующем. Исполнитель — ЭВМ или человек — должен
вычислить значение алгебраического выражения ad — be
по имеющимся значениям переменных а, Ь, с и d и при-
своить это значение переменной I). Процесс выполнения
этой операции можно описать цепочкой соотношений:
ПРИСВАИВАНИЕ зам-
чеийя переменной
I) — ud — be =3-2 — 1-1.
а конечный результат — равенством:
0=5.
Полученный результат указан справа от описания алго-
ритма. Вдесь же приведено соотношение D = ad — bc, кото-
рое поясняет, какой результат будет получен после выполне-
ния присваивания D:—a-d— b-c при произвольных зна-
чениях величин a, b, с, d. Соотношение справа — равен-
ство, а в алгоритме записано присваивание.
Введение новых обозначений для <аписи вычислительных
операций связано с особенностью их выполнения в ЭВМ.
Эта особенность состоит в том, что результаты всех вычис-
лений, все исходные и промежуточные данные записыва-
ются и хранятся в памяти машины.
Так, в рассматриваемом алгоритме решения системы
уравнений в памяти должны находиться величины а, Ь,
с. d, е. I, D. [) [),„ х и у. При этом каждая из них должна
размещаться в отдельной ячейке памяти.
«1
Память ЭВМ:
а ь с
d е -р р ох ру х
о ••= ad -
свойства Алгорит-
ма»
однозначность
неточность
рОТуЛЬТОТМОНОСГЬ
Выполнение ЭВМ присваивания D:=ad — be состоит
в следующем ЭВМ извлекает из памяти значения пере-
менных а. Ь. с и d, вычисляет по ним значение формулы
ad — be и записывает полученное значение в переменную D.
По этому рисунку можно понять отличие переменных
в вычислительных алгоритмах от обычного понятия пере-
менной. Если в математике переменная — это некоторая
величина, то в алгоритмах и программах переменная —
это область памяти, в которой могут храниться определен-
ные значения. При этом в математике если значений пере-
менной определено, то оно остается неизменным. В вычис-
лительных машинах значения переменных могут много-
кратно изменяться по ходу вычислений, а сами переменные
могут использоваться для хранения совершенно различных
данных с целью экономии памяти.
Использование машин й технических устройств в каче-
стве исполнителей алгоритмов предъявляет ряд требований
к этим алгоритмам В отличие от людей технические устрой-
ства мо!ут выполнять только точно определенные операции.
Поэтому алгоритмы, которые выполняются этими устройст-
вами, должны в свою очередь обладать свойствами одно-
значности, конечности, результативности и массовости.
Под однозначн остью алгоритмов понимается един-
ственность толкования правил выполнения действий и
порядка их выполнения. Этими свойствами часто ие обла-
дают предписания и инструкции, которые составляются
для людей
Говоря о конечности алгоритмов, мы имеем в виду
обязательность завершения каждого из действий, состав-
ляющих алгоритмы, и гавершимость выполнения алгорит-
мов в целом.
Результативность алгоритмов это желательное
свойство Оно предполагает, что выполнение алгоритмов
должно (яверша Г1>ся получением определенных результате
62
Под масс он остью алгоритмов подразумевается воз ««««оси
можность их применения для решения целого класса конк-
ретных тадач, отвечающих обшей постановке задачи.
О Шим из важнейших свойств алгоритмов является их
правильность Мы говорим, что алгоритм правильный.
ПРАВИЛЬНОСТЬ
АЛГОРИТМА
ес ш его выполнение тает правильные резу штаты решения
поставленных тачан. < оогве тственно мы говорим, что
.ьпоритм содержит ошибки, если можно указать
такие допустимые исходные данные или условия, при ко-
торых выполнение алгоритма либо не завершится вообще
. тбо не будет получено никаких результатов, либо полу-
ченные результаты окажутся неправильными.
Например, рассмотренный алгоритм решения системы
нем поменять
Результаты:
x—D'JD’ — не определено
y = D'll/D'— не определено
[) — ad — be
D, = ed-bf
Df—af—ce
В этом алгоритме в результате изменения порядка
операции величины с и у вычисляются до определения
ветчин D. D , D„. Несмотря на это, ЭВМ все равно про-
ведет вычисления. При этом она извлечет из памяти числа,
которые оказались в переменных с именами D, D„, D,„
и произведет предписанные вычисления с этими случай-
ными числами Результат ,тих вычислений заранее не опре-
делен. Каковы значения переменных х и у, неизвестно.
И только после этого ЭВМ вычислит значения величин
D, D . [}„ Более того, если в памяти ЭВМ в перемен-
ной I) окажется чисто 0, то при выполнении первого же
присваивания x'.—DJD прои юйдет аварийное прекраще-
ние вычислений из за попытки деления на О
? 1. Что такое алгоритм?
2. Как выполняются присваивания?
3. Что такое переменные в алгоритмах?
4. Каковы основные свойства алгоритмов?
5 В чем проявляются ошибки в алгоритмах?
вопросы
упражнения
задания
63
1. Опишите алгоритмы
е) от дома до школы;
*) от дома до ста-
диона;
движения:
6) от школы до биб-
лнотекм;
г) от дома до клуба
или до ближайшего ки-
нотеатра.
2 Составьте алгоритм решение линейного vr,..
нения и приведите примеры его выполнения'
3. Составьте алгоритм решения квллп»
^«неии» и приведите примеры е.о^.Х
$18. Вычислительные алгоритмы
В информатике особую роль играют вычислительные
алгоритмы - алгоритмы машинной обработки данных
ЭВМ, как вы уже знаете, могут вводить и обрабатывать
числа и слова, рисовать на экране графические изобра-
жения, накапливать информацию и вести диалог с людьми
Все это вычислительные машины выполняют но определен-
ным алгоритмам, реализованным в форме программ.
В качестве первого примера рассмотрим простейший
алгоритм ведения диалога со стороны ЭВМ.
ОПЕРАЦИИ:
запрос
вывод
В этом алгоритме машина выполняет две операции
вывода и одну операцию запроса. Первая операция состоит
в том, что машина выводит на экран сообщение «Добрый
день!». Вторая операция предписывает машине вывести
вопрос «Ваше имя?» и ждать от человека ввода с кла-
виатуры его имени. Эту информацию машина записывает
Третья операция выводит на экран сообщение «Рада встре-
че», к которому после запятой добавляет то имя, которое
уже хранится в соответствующей переменной.
Мы уже говорили, что переменные в вычислительных
алгоритмах и программах — это области памяти, в которых
64
могут храниться определенные значения. За каждой такой
переменной закрепляется имя и тип значений, которые
могут храниться в области памяти, выделенной под эту
переменную.
Имена переменных в алгоритмах и программах могут
быть такими же. как и в математических формулах и
выкладках, например: а, Ь. с, х и т. п. В качестве имен
в алгоритмах и программах можно использовать любые
сочетания букв и цифр, начинающиеся с буквы. В алго-
ритмах даже более естественно использование в качестве
имен слов родного языка — имя1, корень, успех и т.п.
Для решения численных задач и организации диалога
достаточно четырех типов данных: целых, вещественных,
логических и символьных. Значениями символьных перемен-
ных могут быть любые комбинации символов, имеющиеся
на клавиатуре ЭВМ. Длина такой комбинации не более
чем 255 символов (это число зависит от типа ЭВМ). Зна-
чения логических переменных в алгоритмах можно обозна-
чать тремя способами
1) истина; ложь; 2) да; нет; 3) 1; 0.
Значениями целых переменных могут быть числа: 0. 1,
2, 3, ..., —1, —2, —3, ... . Значениями вещественных
переменных — числа с дробной частью: 2; 0,5; 0,01; —3,7;
— 0.6. а также дробные числа с явно указанным десятичным
порядком: —1.8-106; 0,12-10 '; —2.3-10'2 и т.п.
Особенностью вычислений в ЭВМ является ограниченное
количество цифр в записи целых н вещественных чисел.
Для записи целых чисел в ЭВМ обычно используются 2
или 4 байта машинной памяти, т. е. 16 или 32 двоичных
разряда. Следовательно, значения целых чисел не могут
превышать 215—1 или 2J1—1 соответственно.
Для записи вещественных чисел в ЭВМ используются 4
или 8 байт памяти, из которых на представление порядка
числа отводится обычно 8 двоичных разрядов, а остальные
разряды — под дробную часть числа. По этой причине
вычисления с вещественными числами проводятся с точ-
ностью порядка 6 или 16 десятичных цифр. Максимальные
значения вещественных чисел имеют порядок 2128^ 10'9.
В алгоритмах мы будем рисовать изображение памяти
машины с указанием типов переменных. Пример изобра-
жения:
ИМЕНА .1ЕРЕМЕННЫХ
ТИПЫ ПЕРЕМЕННЫХ
изображение ПАМЯТИ
• алгоритмах
3 П’Н В А Каймнн
65
С целочисленными значениями машины могут выпоп-
нять операции сложения, вычитания и умножения, а также
деления нацело. Пример простейшего алгоритма иа’д целыми
числами — вычисление числа секунд в нескольких сутках:
Пример диалога:
<МГ ‘подсчет сепучд •
езъсд подсчет СёпупД |
запрос'tymon^ \ . of
S ••= 24-60-60 d
бь.ЬОД = 1t 6
C2L
-1 6
С J
ЦЕЛ ЦЕЛ
1,ИИ
С вещественными значениями ЭВМ
могут выполнять
операции сложения, вычитания, умножения, деления и
возведения в степень, а также вычислять элементарные
функции такие, как синус — sin х, косинус — cos х, тан-
генс— tgx, арктангенс - arctgx, квадратный корень —
\х, показательная функция — а' и натуральный лога-
рифм — In х и др
В программах для ЭВМ при записи функций аргументы
заключаются в скобки. В противном случае запись вида
SIX X ЭВМ понимает не как функцию, а как переменную
с четырехбуквенным именем.
Простейший пример диалогового алгоритма с вещест-
венными числами — алгоритм вычисления средней скорости:
Апг 'опредепенте сред-
ней cropocfftf'
ААЧ
З^&ОД ' П'Ь'гАЙ
ЗАПРОС ПАНЬ (-4^ , S
запрос '.sPe^srfcM , -£z
v "
ЗЫЗОД \СНОРСЙт^1^ЙГ~7\
Пример диалога:
укажите
путь (м)=? 20
время (с)=? 5
скорость (м/с)= 4
ПЛ/ИЯГПЬ
S -Ь V
ЬЕЩ ВЕ'Ц Е>Е.11ф
66
Особенностью диалоговых алгоритмов яв 1яется то, что
они задают определенные правила работы людей с ЭВМ
при решении задач В ходе диалога, как вы видели, машина
выводит на экран различные сообщения Человек вводи г
данные н команды, а машина в ответ выводит результаты
решения задач или сообщения о причинах невозможности
поучения результатов или выполнения комант
Составление алгоритмов и программ для ЭВМ может
проводиться многими способами. Например, для написания
программ наиболее часто применяется сзедующнй способ:
ДИАЛОГОВЫЕ аИГО
РИТМЫ
В описанном способе самой сложной частью является
отладка программ на ЭВМ Отладкой программ называ-
ется процесс поиска и исправления ошибок. Ошибки ищутся
путем пробных пусков программ на ЭВМ. Если ошибка
обнаружена, то ищется ее причина и исправляется соот-
ветствующая часть программы.
Ошибки в программах подразделяются на синтакси-
ческие и алгоритмические. Синтаксические ошибки — это
нарушения правил записи программ на используемых язы-
ках программирования: потеря скобок, занятых описки
в записи служебных слов и т. п. Синтаксические ошибки
автоматически выявляются машинами, которые выводят
соответствующие сообщения об обнаруженных ошибках.
Наша работа Заключается в определении места ошибки и
ее исправлении.
Алгоритмические ошибки — это нарушения в логике
алгоритма. Такие ошибки машины выявлять не умеют.
Выполнение программ с алгоритмическими ошибками мо-
жет привести к получению отказов, например сообщений
о невозможности деления на нуль либо невозможности
вычисления квадратного корня из отрицательного числа.
Признаком ошибки может быть получение неправильных
результатов. Причиной этого могут быть ошибки в выбран-
ном методе решения или его неправильная реализация,
неправильно организованный диалог или ошибки в опре-
делении требований задачи.
ОШИБКИ * пригрхм
еинтакснчесино
алгоритмические
ЦЕНАРИИ ПРОГРАМ’
Поиск к исправление алгоритмических ошибок являются
самой сложной частью отладки. Сложность этого процесса
связана с тем, что при таком традиционном подходе соста-
вители алгоритмов и программ заранее не знают, есть итн
нет ошибки в их программах, а если есть, то сколько
Поэтому неизвестно, какова будет продолжительность
отладки и будут ли выявлены все ошибки.
Выявить все ошибки в алгоритмах и программах в
принципе можно. Для этого необходимы точные постановки
решаемых задач, описания выбранных методов их решения
и описания правил работы с ЭВМ при решении задач,
которые мы будем называть сценариями.
Мы будем изучать другой способ составления алгорит-
мов и программ для решения задач на ЭВМ Главным
в этом способе является систематическая проверка пра-
вильности составляемых алгоритмов и программ по отно-
шению к сценариям и методам решения:
‘ и
МУХ.
xcnwMwdp-
J
СУТЯМИ
-Jilt.
‘CTEM АТИЧЕСКОЕ
ОСТАВЛЕНИЕ
. ПГОРИТМОВ и
ПРОГРАММ
Работа по этому плану начинается с четких постановок
задач и определения методов решения. Далее будут опре
делиться правила работы с ЭВМ и составляться алгоритмы
в строгом соответствии с выбранными сценариями и мето
дами решения задач. Программы для ЭВМ при таком
подходе записываются по достаточно простым правилам
строго в соответствии с составленным алгоритмом. Ошиок
в алгоритмах и программах могут выявляться заРан
(до выхода иа ЭВМ) путем сопоставления с постановками
задач и предварительно составленными сценариями И
конец, последний этап - ввод и отладка программ пред
ставляюшие собой испытания программ на ЭВМ и
чение результатов при различных варианта
данных.
68
*М. Какими могут быть имена переменных в алго-
ритмах?
2. Каковы основные типы переменных в вы-
числительных алгоритмах?
3. Каковы основные ограничения на числовые
значения в вычислительных алгоритмах?
4. Что такое синтаксические и алгоритмические
ошибки?
5. Каковы причины возникновения алгоритми-
ческих ошибок?
Составьте диалоговый алгоритм с описанием
используемых переменных для задачи:
а) решения линейного уравнения:
вопросы
упражнения
задания
6) решения квадратного уравнения;
в) определения площади треугольника по двум
сторонам и углу между ними;
г) определения площади треугольника по трем
сторонам.
2. Найдите ошибки в следующих алгоритмах:
§19. Средства ввода-вывода информации
Решение задач с помощью ЭВМ предполагает диало-
говый режим работы человека с машиной. В ходе диалога
человек вводит команды и данные, а машина, выполняя
заложенные в нее алгоритмы, выводит результаты обра-
ботки данных н результаты решения задач в форме текстов
и рисунков.
Обмен информацией с ЭВМ предполагает использование
определенных средств ввода-вывода. В школьных ЭВМ
основным средством ввода является клавиатура, а средст-
вом вывода информации — экран телевизора или дисплея.
Тексты, которые выводит ЭВМ. состоят из фраз и число-
вых данных. Чтобы выдавать эти сообщения, необходимы
соответствующие операции вывода и запроса информации, вывод сообщения
В операторах вывода могут указываться некоторые стан-
дартные неизменные фразы и переменные, значения которых
ЗАПРОС
В процессе запроса информации ЭВМ
стандартные фразы-запросы (подсказки)
века ввода числовых или символьных
запросов:
выводит на экран
и ждет от недо-
данных. Примеры
Вводимые человеком ответы
п=10
3 = 2.5
ответ=да
записываются в перемен-
ные, имена которых указаны после «подсказки».
В качестве иллюстрации рассмотрим зиадоговый алго-
ритм решения на ЭВМ системы уравнений и результаты
его выполнения:
МГУЕШЕЖЕ СЯСЯЕМЬ/ ЬРАЛПЕНПЕ*
.i/W
&Ы&04 I CUCVEM* |
\ z А * у = е|
Еь/е-^4 | вве^ип?Е\\
запрос \a.hc = ।
запрос \
t
о =ad - Ь-с
о* —е. d— Ь -F
Оу =а-^-с е
X = Ex /D
У .=,Z>y/J3
вывоу; । ] f х
Ьр&ОдХу^ , У
СОР;
РЕЪУАЬтАШЫ
СХСГПЕЖА УРА&УЁМ^
x+t у=е
с -*х > с/ * > = <
ЕВЕ^итЕ:
а,Ь,е^°
с,с/,-Г=^
D = acf-b с
ее =е cf-b f
Z7y -О. Е-С С
Х~ Су /сх
70
Выполнение данною алгоритма начинается с вывода
на экран ЭВМ трех строк с записью системы уравнений
и фразы «введите:». Далее выводится реплика «а, Ь, е = ?»,
в ответ на которую необходимо ввести три числа а, 1> и
е — коэффициенты первого уравнения После ввода этих
трех чисе 1 ЭВМ выводит новую реплику «с, d, f = ?».
В ответ на нее необходимо ввести еше три числа - с, cl
и - коэффициенты второго уравнения. После этого ЭВМ
вычиапяет в соответствии с уже известным вам методом
ветичины D. D, , и D , а затем корни х и у системы урав-
нений и выводит их на экран.
В двойных угловых скобках <<...)) в описании резуль-
татов выполнения этого алгоритма указаны имена величин,
которые должен вводить человек. Одинарные угловые
скобки (...) в этих описаниях означают величины, которые
выводит ЭВМ Эти обозначения далее будут использоваться
для описания информации, которую ЭВМ выводит на экран.
Современные ЭВМ могут предоставлять информацию
не только в виде текстов, но и в форме рисунков, схем,
чертежей и объемных изображений Основными элементами
графических изображений на экране ЭВМ являются цвет-
ные точки отрезки, дуги, рамки и окружности. Кроме того,
на экранах цветных дисплеев и телевизоров можно менять
фон экрана и раскрашивать фигуры.
При выводе графической информации для каждого
элемента изображения необходимо указать его координаты.
Система координат экрана имеет такой вид:
ВЫВОД ГР*ФИ“«С
,.11
71
Г ТОЧКИ а
А
д
»<*-оои
Начало системы координат экрана находится в левом
верхнем углу. Ось Ох направлена, как обычно, вправо,
а ось Оу — вниз (•). Количество точек, выводимых на
экран, зависит от вида ЭВМ и типа дисплея. Поэтому их
нужно уточнить в справочнике. Далее всюду будем считать,
что на экране имеется не менее
и 191 точки по вертикали, и
Утах = 191-
Основные операции вывода
---------r—j — j v.
255 точек по горизонтали
полагать, что хтв„=255.
графической информации:
• U У)
где (с. 1/) — координаты точки на экра-
не, а с — это номер или название цвета.
| i i 1 I л j 1 j j i 111 I
I I 9 I I I I I Г I I
где (xb I/,) —координаты начала,
(vL>, У’) —координаты конца отрезка,
а с — его цвет.
РД/ИКА У<
где (Х|. у,) и (х2. у,} -
диагональных вершин рамки,
цвет контура рамки.
— координаты
рамки, а с — ' ’ '
скпулнуасть У(,УУР,С
где (х, у) — координаты центра, г —
радиус окружности, а с — ее цвет.
-лод дуг*
1 <тС 2. J—.
где (х, у) — координаты центра дуги,
г — радиус, а с — ее цвет. Дуга как
часть окружности задается двумя угла
ми: а, и — начальным и конечным.
I I _J._L_4. _l_1 I . 1.
НАДПИСЬ y)f I фрп&А I
iiii
где (х, у) — координаты первого сим-
вола надписи.
j 1. Ц
где с цвет фона экрана, а Ь — цвет
букв и других символов
(Xr/z)
(Х^)
СЛ2
(х,У)
ФРАЗА
72
где (.г. у) это любая точка внутри
фигуры, ас — это цвет точки, который
должен совпадать с цветом контура
фигуры. Результат этой операции —
раскраска области, ограниченной контуром, если он имеет
тот же цвет, что и цвет точки. Раскраски не произойдет,
если точка на экране уже имеет указываемый цвет. Но
возможен другой эффект — полная раскраска экрана, если
контур не замкнут или его вовсе нет.
В качестве примера рассмотрим алгоритм вывода изобра-
жения праздничного флага:
JU 'РЕРЫ/Мисриу ЯРрздтс"—
чм 'i2--=v reawi&A- .
рисрррссн(130, <?o).
Г запись.{ipt2)X-1-LL-I-______
I I | /пир i, /н/ж, 1________
фРУЫРОСГЛЬ&С, 3O}f3QCPH^ .
PPCKPACPP l2lOL 50},,. СИ ЧЯЯ.
_/1ИНИЯ(21О,8О^-(21О1?Рр,СРН?Я L_
ffl-R-P-
1. Составьте сценарий и диалоговый алгоритм
решения линейного уравнения.
2. Составьте сценарий программы для ре-
шения квадратного уравнения.
3. Составьте алгоритм для рисования фигур
(см. вклейку):
а) треугольника;
в) кольца;
д) полумесяца;
1. Каковы размеры экрана ваши* школьных
ЭВМ?
2. Какими операциями в ЭВМ организуется
ввод-вывод сообщений?
3. С помощью каких операций в ЭВМ прово-
дится вывод рисунков?
6) шестиугольника;
г) пятиконечной звез-
ды;
е) пятиугольника.
§ 20. Выбор действии в алгоритмах
Алгоритмы и общие способы решения задач могут
предполагать выполнение различных действий в разных
ситуациях По этой причине в алгоритмах должна до-
—L-4- 1 i t , I । । । I ।
&ryiO/lh£QMM!lE /VE/lEPOpcwf
1-1 . 4М
ПРУБПУ __
РДРЯь ГУ^ПП Q.
РРБРРП/Ь НОРБР
ЕСЛИ ,770
rZEOPpEtb Б ТрРУБ^У
ПЕС/Щ f । I | J !Х-[_1___
ПО. 1ОЕ7П17ТБ БРУЕ ПУ Z _J
ЛГУ
Наши действия при разговорах по
Телефону всегда одни и те же: взять
Трубку. дождаться гудка, набрать но-
мер и, если не соединилось, положить
пускаться возможность выбора варианта действий в „
висимости от результатов анализа н< ходны . ус. ювий
Простейшим примером такого общего описания действий
может служить алгоритм «пользование телефоном»:
Правила пользования
I. Если нужно звонить, то снять трубку
2. Если есть гудок, то набрать номер.
3. Ести соединилось, то говорить в
трубку
4. Если не соединилось, то положить
трубку.
трубку на место. Если же сое синилось,
то говорить в трубку, а по окончании
разговора положить трубку на место.
Это и написано в алгоритме
ИНЕС
В алгоритмах выбор действий записывается с исполь-
зованием слов если, то, иначе и конец если (либо в сокращен
ной форме кесли). Т)писание выбора действий начинается
со слова если, а для указания конца вариантов выбора
используется слово кесли После слова если записывается
условие выбора, а слово то служит разграничителем меж-
ду условиями выбора и соответствующей группой действий.
Запись следующей группы действий начинается со слов
иначе если (сокращенно инее) либо со слова иначе — для
последней группы выбираемых действий.
В качестве второго примера алгоритма с выбором
действий рассмотрим
нения а-х + Ь = 0.
алгоритм диалогового решения урав-
Выполнение этого алгоритма зависит от значения числа а,
которое будет введено. Если это число будет отлично от 0, т. е'
го будет вычисляться корень v и его значение будет
выведено на экран В противном случае, когда число а ока
жется равным нулю (« = ()), выводится слово «вырождено».
Для облегчения чтения и понимания алгоритмов с вы
бором действий обычно используется ступенчатая форма
записи, в которой выбираемые группы действий записывают-
ся с отступом на 2 3 пробела, а слова если, иначе, кесли —
с одной и той же позиции.
Запись вариантов выбора действий в алгоритмах про-
водится двумя основными способами, которые могут комби-
нироваться. Первый из них — это действия, выполняемые
только при соблюдении
условные действия.
Условные действия
если (условие) то
(действия)
кесли
некоторых условий, иначе говоря.
условные действия
Правила выполнения условных действии, эти действия
выполняются, только если окажется истинным условие, ука-
занное после слова если В противном случае эти действия
не выполняются вовсе.
Второй способ — группирование нескольких вариантов
действий с различными условиями их выбора.
Выбираемые действия
если ( условие) то
(действия 1)
иначе
(действия 2)
кесли
ДЕЙСТ-
ВИЯ
Правила выполнения действия 1 выполняются тогда и
только тогда, когда соблюдается условие. Действия 2 вы-
полняются, только если условие не соблюдается.
В качестве условий выбора действий в алгоритмах
могут указываться любые равенства и неравенства над
величинами и алгебраическими выражениями.
УСЛОВИЯ ВЫБОРА
75
Примеры условий:
« + t> = 0, sinx>0.
х = 0. у<1.
Л>1/,
cos х^ sin х.
При составлении сложных условий могут использоваться
логические связки и, или, не.
Примеры составных условий?"
условия с
логическими
связками
(ОС*) и (х< 1)
(х = 0) или (у = 0)
не (х>0)
(»С*СП,
(*<0).
равносильно
равносильно
равносильно
В случае выбора нескольких вариантов действий естест-
венно применять форму записи с явным указанием всех
условий выбора. В ней применяются слова иначе если или
их сокращение инее. В качестве примера рассмотрим диало-
говый алгоритм решения на ЭВМ квадратного уравнения
и описание результатов его выполнения:
_L_i__L 1. 1. I 1111--
с.г 'ресем'Е лыдрумгрогс __
УРА&НЁУМЯ'1 - J---1----
my • । L_ L _ __
мм/<ъ&рер;е\
а&зоДП&уё-- t р*у + с ^=с\
ЗАПРОС |z?~ I z CL '
здпрас 1 АыдЬ -
запрос г~~]. с. J-
dШ&ШД--------
еум а.-о яс
УНЕС d<C Я£
е>ь>ьод F :.Ге. С
х7=л с
Xz 4=
зь/йод ^сормс\ ,1 1—
тЯ-7 -
ЗЕЗОД У У ~ , 'У
b-l-------------
U I 1 I I I"'It „ - ,
В .пом варианте алгоритма перед последней группой леи
ствий записано слово иначе. В соответствии с опреде.|ени
правил выполнения группы иначе эти действия (здесь в
числение корней) будут выполняться тогда и только то_ •
когда не будут выполняться ни первое условие (а —0|, ни в
76
рое условие (d<01, т. е. в данном алгоритме вычисление кор-
ней квадратного уравнения будет производиться только при
условии |а=^=0| и А это необходимые условия при-
менения формул для вычисления корней через дискри-
минант.
7 I. Каковы правила выполнения условных дей-
ствий в алгоритмах?
2. Каковы правила выполнения выбираемых
действий в алгоритмах?
3. Какие логические связки можно использо-
вать для составления сложных условий в ал-
горитмах?
вопросы
упражнения
задания
I 1. Опишите алгоритм перехода через дорогу
(с соблюдением правил дорожного движения).
2. Составьте алгоритм вычисления значений
функции и нарисуйте ее график:
а) у = ( 1 при х2>0, 6) у - (к при х > О,
I 0 при х<0; ( 0 при х^-0;
в) у = | х при х^О, г) у = ( х при х>0,
| 0 при х<0; | —х при х^О.
3. Составьте алгоритм вычисления значении
функции и нарисуйте ее график-
а) I 1 при х^-1,
у» 0 при —
I —1 при х<—1;
б) х—1 при х>1,
у 0 при —
х -f- 1 при х-<—1;
в) х'—1 при х>1,
у — 0 при —
х2 - 1 при х<2 — 1
§ 21. Повторение действий в алгоритмах
Способы решения многих сложных задач часто основаны
на повторении одних и тех же действий вплоть до дости-
жения некоторой цели. Организация повторений в алгорит-
мах называется циклом. Приведем два примера. цикл
Первый пример — это описание способа передвижения в
потемках. Способ движения в общем случае записывается
в форме цикла, который называется пока-цикл:
Правила движения
I Если нет препятствия, го шаг
вперед.
2. Если препятствие,
то остановиться.
'I
2
77
В этом алгоритме движение происходит по шагам- если
нег препятствий, то делается шаг вперед, если опять нет
препятствий, то делается еще один шаг и т. д„ пока ш встпе-
(тся препятствие По достижении препятствия движение
завершится Если же расстояние до препятствия заранее
известно, скажем 100 шагов, го способ движения можно
описать в форме никла со счетчиком.
Правила движения:
100 раз —
шаг вперед.
Отличие первого цикла от второго состоит в том, что
в первом цикле количество повторений заранее неизвестно,
а во втором—число повторений,заранее определено и рав-
но 100. В первом алгоритме, если препятствие никогда не
встретится, движение будет продолжаться бесконечно долго.
Такие явления при выполнении алгоритмов и программ
называются зацикливаниями.
В качестве примера машинного алгоритма с циклами
рассмотрим алгоритм формирования картины «звездное
небо». В этом алгоритме в цикле координаты звезд вы-
бираются случайным образом с помощью специального
датчика:
/ -/Г ^££0*
РР '
ыпрос^учёр=; , п
Хт-255, МЛ Р7.',С'Л^.
ГРАФИКА-
ап 4Q qJW'&Z.
у- ym cpvy/fpppp <5,1)
c - err, c/iy-esp/ree co, ъ
movKA Y& c
КЦИК/1
£QP.
Результаты:
звездное небо
точек = ? < < n ) )
78
Разберем выполнение этого алгоритма. Начало его рабо-
ты - вывод на экран фразы «звещное небо» и вопроса
«точек = ?». В ответ на этот вопрос человек должен указать
число <везд, которые он хочег увидеть на экране.
Далее следует цикл вычисления координат и вывода
на экран п точек случайного цвета. Цикл выполняется п раз
от /г=1 до //. Переменная /г называется счетчиком цикла.
Особую роль в этом алгоритме играет операция вы-
числения случайного числа. Суть операции «случайное
(0,1)» состоит в том, что машина вычисляет некоторот слу-
чайное число из интервала от 0 до 1. При этом каждое новое
выполнение этой операции должно давать новое случайное
число из этого же интервала.
При вычислении координат очередной точки и ее цвета
используется датчик случайных чисел. Для определенности
приняты следующие размеры экрана: х,„ = 255, (/,„ = 191 —
и три цвета точек: с,„ = 3.
Описания циклов в алгоритмах строятся по следующим
правилам. Повторяемые действия заключаются между ело
вами цикл и конец цикла (сокращенно к цикл). В цикле
со счетчиком указываются начальное и конечное значения
счетчика повторений-
1. Цикл со счетчиком:
от k = l до п
цикл
(действия)
кцикл
Правила выполнения циклов со счетчиком иллюстри-
руются схемой алгоритма, приведенной справа. До начала
цикла счетчик получает начальное значение k = l. Далее
выполняются (действия), а затем проверяется, достиг ли
счетчик конечного значения. Если счетчик еще не достиг
конечного значения, то он увеличивается иа единицу и
(действия) выполняются еще раз. Если же счетчик уже
достиг конечного значения, то выполнение цикла завер-
шается. Таким образом, в цикле со счетчиком действия
выполняются п — /+1 раз для значений счетчика k=l,
1+ 1.... п.
Выполнение пока-цикла можно наглядно представить та-
кой ( хемой:
7?
2 Пока-цикл
пока (условие) цикл
(действия)
кцикл
пока — цикл Правила выполнения: если условие выполняется с самого
начала, то выполняются и действия; если после этого усло-
вия вновь выполнены, то вновь выполняются и действия
Повторение действий продолжается до тех пор, пока вы-
полняются условия. Завершение выполнения цикла про
исходит тогда и только тогда, когда перестанут выполнять-
ся условия повторения.
В решении математических задач циклы широко исполь-
зуются для вычисления различных последовательностей
В качестве первого примера рассмотрим алгоритм подсчета
сумм квадратов натуральных чисел.
Простейший способ решения этой задачи состоит в под
счете промежуточных сумм s,. s2, ... s*. ..., равных: х, = 1 ,
s2 = 1’4~22. .... St = 1г + 22 + ... + Л2. Алгоритм, вычисляющий
члены последовательности:
r-t-Г
S =<2 ' |
О(7Г £=1да ПЦЖЛ
S ••= s+r*
1 Ц------------1___
Результаты
s<> = О
s*=sj_i +А*
|*=(1...«)|
сум = s„
СУ/И = S
ХОМ
Разберем результаты выполнения этого алгоритма Ре
зультатом выполнения первого присваивания х;=б будет
начальная промежуточная сумма so = O. Далее п раз для
fe=|, 2...п повторяется присваивание s: =s Н’ Первое
из них даст результат s, =So +12= !' Результат второго —
s2 = si 4-22= I2 4-2’. Результатом очередного k го присваива
ния будет значение
s»=s*_,+fe2=(l2 + 22 + -. +(*-1)2)+*2.
а результатом последнего присваивания в цикле будет
sn=sn— । -|- п2=П 2+22-|-... -р(л — 1)2)4- п
Последнее присваивание в алгоритме сум : =s дает тре
буемый конечный результат.
cyM = s„= 124-22 4-... 4- "2-
Цикл с условием пока в математических задачах при
меняется для вычисления последовательностей с неопреде-
ленным числом членов. Примером такой задачи являет
определение для заданного числа п наибольшей степей
80
дв'ойки, не превышающей этого числа:
г 1 I-LJ_________Д_.
m I Т] 1 ! ТТ
/7<рЛ?7 ? т 4 /? 4ЛУ/7
Результаты:
»1о = I
L \d. ф <72з------l______________
^1 I |4 44 I И I -
Рассмотрим результаты выполнения этого алгоритма.
Первое присваивание записывает в переменную т начальное
значение т(,= 1. Если значение п окажется меньше или
равно 1, то цикл вообще не будет выполняться, так как
условие 2т ^.п не будет выполнено для начального зна-
чения переменной т, равного /пи = 1.
Если же исходное число п 2э2, то цикл начнет выполнять-
ся. На первом шаге будет вычислено т\=2т,1 = 2. На вто-
ром шаге результат будет т2=2т} =2-2 = 4. На очередном
k-гл шаге результатом будет пц=2«ц . । -очередная степень
двойки тк = 21'. И как только очередная степень двойки
тк окажется больше числа п.(2-тк>п), цикл завершится.
Сложность алгоритмов с циклами нарастает при исполь-
зовании вложенных циклов и включении в них групп вы-
бираемых действий. Но какой бы сложности ни был алгоритм,
этого алгоритма.
П/4/-ИЯП1Ь-
п m
ESUF/1 И ЦЕЛ
Ь d
"ЦЕЛРЦЕЛЦЦМ.
его всегда можно проверить на отдельных конкретных
примерах. Для подобной проверки алгоритмов фиксируют-
ся некоторые конкретные исходные данные, а затем после-
довательно выписываются все промежуточные результаты.
В качестве иллюстрации рассмотрим результаты вы-
полнения алгоритма Евклида нахождения наибольшего
АЛГОРИТМ ЕВКЛИДА
нахождения НОД двух
чисел
общего делителя пары натуральных чисел:
£>-/77
7177/7 а<£ 77 7Z' -7Z.-/>
£>:-/> О'
Исходные данные:
п =6
т =4
Результаты:
а(1=6
/>о = 4
(Л Ьп)=да
(а„>&(,,)^да
а, =6 — 4=2
(ui =/= /?п) = да
(а, >&..) = нет
fei=4—2=2
(а, =/=&,)= нет
d = 2
Проверка: НОД (6, 4) = 2
81
При ручном выполнении алгоритмов важна фиксации
не только всех промежуточных результатов вычислений
но и результатов проверок условий выбора действий и по’
вторения циклов. Результаты этих проверок можно записи
вать в форме утверждений, например, (а>М с фиксацией
их значений (да или нет).
Такой способ проверки позволяет на отдельных примерах
исходных данных в какой-то мере провести анализ правиль-
ности алгоритмов и программ до выхода с ними на ЭВМ
Однако гарантировать отсутствие ошибок в алгоритмах
проверкой их на двух-трех примерах нельзя! Необходимо
уметь показы вать правильность составляемых алго-
ритмов
вопросы
упражнения
задания
1. Каковы правила выполнения циклов с задан-
ным числом повторений?
2. Каковы правила выполнения циклов типа
пока-цикл?
3. Что такое зацикливание алгоритмов?
4- Как проверяются на примерах алгоритмы с
циклами?
1 Выпишите результаты выполнения алгоритма
Евклида для чисел:
а) п = 6, m = 9; б) п = 4, m = 5;
в) п = 3, m == 7; г) п - 4, m = 1 б.
2. Составьте сценарий и алгоритм рисования
картины:
а) со случайными от- б) со случайными рам-
резками; нами;
в) со случайными г) со случайной ло-
кружками; маной.
3. Составьте алгоритм подсчета суммы ариф-
метической прогрессии.
4. Составьте алгоритм подсчета суммы геомет-
рической прогрессии.
5. Составьте алгоритм вычисления суммы по-
следовательных натуральных чисел от 1 до
10 ООО. Можете ли вы предложить алгоритм,
не использующий циклов?
4 22 Вспомогательные алгоритмы
Решение новых задач мы всегда пытаемся свести к ре-
шению уже известных, а решение сложных задач — к ре-
шению более простых подзадач. Соответственно в алгорит-
мах решения сложных задач для решения подзадач могут
выделяться вспомогательные алгоритмы, которые служат
для их решения. Каждый такой вспомогательный алгоритм
описывает способ решения некоторой вспомогательной
задачи или даже обший способ решения некоторого класса
вспомогательных подзадач.
Типичный пример — алгоритм проезда по большому го-
роду. Рассмотрим задачу проезда в Москве от аэродрома
Внуково до Красной площади. Один из способов можно
описать следующим алгоритмом с использованием вспо.мо
гательных алгоритмов:
82
5/7Г *4/77 S/OOO&O ОЗОСМОД 7740/^4^5 "
ач^:>7 off Зл/оооо 40 0/77444577 о/о/т/оо
, /ООО -34/74,Д//44/ •
74 574О7Г0 0/77 ТОГО 34/7ДДМО4 40 /7Р0474044
7о£0С4
rrs/w&ff ОгО С777О7/ЩЖ УНЕ/Т/ОС ’OPOCO/E/O.Tf
^4744004 * y(O O/yfCHOW 77/70/^445
"ЫГ *4&О/С5УСО47 0/77 З/УУОС&С ДО СО40Д./5
А/£/О£О * /ООО - 34/744/74/7 *
7/4<7 ,
~54'7/775 О/ТГОУМОУ 43/77с'ЕУСХ 577
С£С777Ь & 43,’г’О£> С
66'/fffnW\ 44 ОЪТ/ЗУРСУ/ С7744С>А.о£
704
"ТЕТР "М 4f£/77PO 0/77 /400-5 7/7447/04 ДО /VXX7737.O4
550005 *
ТГТУГ/Пе/Я£Я0$7. 3 47£77О~1
О4С7774 £ 70^34
/JC£X4/77t> ,40 00/4447/77 '/7,047700/77 47400X4*
е>Ь/ •7,7’4 43 774/Т74О
£34
Маршрут автобуса
Участок «ними ме-
трополитена от стан
^цми Юго-Западная1
(.Ю'3.‘) до станции
..Проспект Маркса'
(ЛрМ )
Красная Площадь
Построение сложных алгоритмов с помощью вспомоги
тельных алгоритмов имеет много общего с возведением
зданий. Сложные алгоритмы, как и дома, строятся из блоков
роль которых играют вспомогательные алгоритмы. Рас-
смотрим алгоритм построения изображения гомика с при
менением вспомогательных алгоритмов.
/ЫГ "ДС/ИИК"
гМЧ
4/7147/41 с ЯАееыо
О^Ь/44
77.04
I I 1 I I ,
4/10 "С/ПЕ7/4 С
СЯЕМЧ С 077 0047
ДЕЕРЬ
P2P L
Такой способ описания алгоритмов называется описа-
нием сверху вниз. В данном примере последовательно,
сверху вниз, уточняется план изображения. При построении
вз
алгоритмов последовательно, сверху вниз, уточняется план
действий, который доводится до детальных инструкций
непосредственно понятных исполнителям.
Следующий алгоритм является детализацией рассматри-
ваемого алгоритма для вывода изображения домика на
экран ЭВ VI.
У-.Г "JCWMK"
ЧРР -н-1
cprevs coerrcsr
, ££>tre> , j . L
ppe/ers
pop
p/T 'xpmw
PSP
. 3PSPPS9
/MH^(tyej)-45g4o), зе/гегмя
WH^^5P4O)-'22Q30), lesfHAP
£V£
4/1Г "C/PEp'S CMMMf"
Х^ГЛ- SOPS/'Г.'5(7, Г2<2>, Ееу/РЯ
PS УМ/ '15% 107}-^ ppyypsy
PPCp-pSCPS 717% 707), ГСУУ5РУ
W "ДРРРА
Н4У
террасы ffty А&КУ/рР?
—
ПОШАГОЙЛЯ ДЕТА
ЛИЗАНИЯ АЛГОРИТ
MOI
Таким образом, первоначальный основной алгоритм есть
не что иное, как основной план предстоящих действий-
Принцип построения алгоритмов сверху вниз называет
также принципом пошаговой детализации. ®тметим’
сверху вниз могут составляться не только алгори _
Таким же образом могут подготавливаться школьные
нения, доклады, статьи и даже книги. ,
При исполыовании вспомогательных алгоритм
холимо учитывать способ передачи этим алгоритмам и
ных данных и получения от них результатов решени
84
этого в заголовке вспомогательных алгоритмов необходимо
указывать аргументы и результаты
Аргументы во вспомогательных алгоритмах это пере- аргументы
менные и другие области памяти (массивы и г п.) в ко-
торых должны быть помещены исходные данные для решения
соответствующей подзадачи Результаты вспомогательных результаты
алгоритмов это также переменные и массивы, куда должны
быть записаны конечные результаты решения этих по г-
за дач.
В качестве примера использования вспомогательных
алгоритмов рассмотрим а,пор им упорядочения по вот
растению трех чисел, размещенных в переменных и, /», г:
к1 ,
OPCMKit ЫС£<1'
.Ж 1 т
Результаты
fa, с
л’/а» c -p. Z? (Л& . _ -L
|_1 -fEPECfWppsfi# foe)
(«' - />')
th' i
Конечный pi пулы и
Данный вычислительный алгоршм построен на испои,
зовании о гной и той же операции перестановки значений
переменных в машинной памяти. Первая перестановка
значений в переменных а и b выполняется, если число h
окажется меньше числа а
Результатом перестановки должно стать новое значе-
ние а' переменной и и новое значение Ь' переменной h Эти
значения должны равняться старым значениям этих же
переменных: а’ — Ь и Ь'=а. В таком случае новое значе-
ние а' переменной и не больше нового значения Ь' перемен-
ной Ь: а'^Ь'. что и отмечено в алгоритме.
Вторая перестановка перестановка (и, с) производится
в том случае, когда с<п В этом случае после перестановки
значений переменных будет обеспечено соотношение а'^с'
между новыми значениями переменных а и с. Третья пере-
становка аналогична двум предыдущим, и ее результатом
будут новые значения переменных b и с. такие, что b'
Выполнение алгоритма в целом обеспечит истинность
, &ЕЩ, , ЬЕЦ. е>ЫЦ
85
соотношений а’^Ь'з^с', что и требовалось доказать
Выполнение операции для всех трех перестановок шю
водится одним и тем же вспомогательным алгоритмом со
следующими аргументами и результатами:
#/7г 'пе°ес/тию&х4 значений"
ерг_ х, у
£ЕЗ X, У
М-/
-Ь ~х
Л = У
у =£
Результаты:
/ = л-
х'=У
У' = 1
ГИ/ИЯГГЬ:
X,. /„
IlbEii). Пвету.
вещ.
Первое присваивание в яоч алгоритме переписывает
значение переменной ,v во вспомогательную переменную /.
Далее значение из у переписывается в х, а в у переписывается
значение, записанное во вспомогательной переменной I. Ко-
нечным результатом будут новые значения переменных-
параметров х, у. При этом новое значение переменной х
оказывается равным первоначальному значению перемен-
ной у: х'—у, а новое значение переменной у станет равным
у' = 1 = х—прежнему значению переменной х.
Общая форма записи вспомогательных алгоритмов:
/РГ < С77ИССХ /РГХР/ХШО& >
Р£3> <'~Г'ИГСЖ РО2>УХЬ/77Х/77О&>>
---- < /7/7X7/ JE7770.//А.XX >
хот/
Aprv ментами и результатами вспомогательных алгорит-
мов служат переменные, массивы и другие области памяти.
Возможно, что эти переменные могут оказаться совпадаю-
щими Это означает, что результаты решения подзадач
должны записываться в машинной памяти на то место, где
были записаны исходные данные.
Теперь мы можем вернуться к задаче построения изобра-
жения домика, используя алгоритмы с аргументами-пара-
метрами В качестве таких аргументов-параметров можно
взять размеры и положение частей и юбражения.
Например, для крыши такими аргументами-параметрамт
будут высота крыши h, ширина ее основания I и коорди
86
наты левого нижнего угла (х у) Описание соответст
вуюшего вспомогательного а 1горитма вывода изображения
крыши с выделенными аргументами имеет такой вит
РГГ "КРЫШ 4 я
ИРГ Х,У &Е1^
К h
с
МУ
МШЯ Лг v)-fr +Е, У(г с
ЛИНИИ (X, У)-(хМ/2, У-h), с
линия (хм/2,У-h)-(X+h, y)fC
кон
Крыша
Для вывода изображения стены можно написать еле
дующий атгоритм, в котором аргументами-параметрами яв-
ляются координаты левого верхнего учла (с ц), высота h и
ширина I стены.
41Г "СР!ЕМ С ОК И041"
ф>Г Х,У ЬЕШ
L, h ЕЕЩ
С ЦЕ/1
441К4(Х,У)-{ХМ,У+Ь)( С
Р441Х4 (Х+3 L/5, Y+E/4)
- (х+4 Е/S', У Ph/2), С
КОИ
Стена с окном
(x+L,y+ h)
Вывод изображения домика без двери можно записать
так:
/МГ
~~СГПЕМ С синаи,(Х--ЗО,У=8С>1ЬМ4О
h= за, С'-иЕюнЕ/и)
МЬЩ/у(x=3qyMO,L=/4q h=4Of
кон
Применение такого рода вспомогательных алгоритмов с
87
Вспомогательные ал*
горит мы — «строи-
тельный материал»
аргументами-параметрами позволяет быстро вносить г
личные изменения в изображения ооъекточ изменять, и,
расположение размеры и композицию. В опре (елейной мепР
о таких вспомогательных алгоритмах можно говорить что
они являются блоками для построения сложных алгоритмов
и программ. *
Опираясь на эту аналогию между построением алгорит-
мов и зданий, можно вспомнить о строительстве современ
ных зданий из унифицированных блоков. Такими же уни-
фицированными блоками я шлются и приведенные два в'спо
метательных алгоритма. С помощью этих вспомогательных
алгоритмов можно построить изображения многоэтажных
домов, улиц ьь даже целых поселков и городов. Напрь.мс
изображение двухэтажного дома с их помощью построит
следующий алгоритм:
/ИГ ДОДИ
ГО/1(7)//Г/1 I
fyW 1
07 Г=-1. ДО 5
алом. сдысм(Х^Ъ1,у=2. /7
1 Z’=Z'y, с
ХЦИК/1 1 . I
Двухэтажный том:
ХРЬ/Д4.
ХОР
вопросы j " |
упражнения р|Ц
задания IjIJLZJ
1. Что такое вспомогательный алгоритм?
2. Что такое аргументы и результаты вспомо-
гательных алгоритмов?
3, Что такое пошаговая детализация алго-
ритмов?
г Г 1. Постройте вспомогательный алгоритм опре-
деления:
а) минимума двух чи- 6) максимума двух чи-
сел; сел;
в) минимума из трех г) максимума из трех
чисел; чисел.
2. Допишите алгоритм "стена с окном".
3. Постройте алгоритм изображения:
а) двухэтажного дома; б) шахматной доски;
в) трехзтажного дома; г) пятиэтажной башни.
§ 23. Организация массивов в алгоритмах
Для решения задач накопления и обработки данных в
ЭВМ важную роль играют массивы и последовательности
данных, размещаемые в оперативной памяти или на магнит-
ных носителях информации.
88
Слово «массив» у нас обычно связывается с жилыми
массивами в городских районах. Массивы в алюригмах
и программах для вычислительных машин в чем-то схожи
с массивами домов. Рассмотрим такую иллюстрацию:
массив: дом (1 :2. 1: Г>)
Каждый дом в жилом массиве имеет свой номер и назва-
ние улицы. Для указания адреса конкретного дома необхо-
димо указывать название улицы и номер дома. Массивы массив
в алгоритмах—это области памяти, в которых могут раз-
мешаться совокупности данных определенного типа.
Для обозначения отдельных элементов в массивах необ-
ходимо указывать индексы. Примеры обращений к элементам
массивов приведены на рисунке.
Первый нт них V(1 :10] это массив из 10 элементов.
В каждом Элементе может быть записано целое число. Эле-
Mt нты в этом массиве имеют номера 1,2. ., 10 Обращения
89
к этому массиву записываются так:
V[1 ] + 1 и т. и.
V[l]:=4, V|2] :==
пл/иягпь:
КП Ц.ЕИ
L0 ЦЕЛ
‘рг
ЬшЦЕ/
Еи:7,4:7j
Ниже изображен двумерный массив — х[1:2 1 • 1001
В этом массиве могут быть записаны 200 вещественных
чисел. Для указания элементов этого двумерного массива
требуются два индекса. Примеры обращения к элементам
массива: л[1,3]: = 1. x[2.3j:=0
Третий массив фам [1:30] —это одномерный массив для
хранения символьных данных, например фамилий учеников
Фамилии записываются в массив присваиваниями
фам [ 11 : = Иванов. фам [2| : = Степанов и т. д. Рядом с этим
массивом приведены изображения трех целочисленных мас-
сивов — физ (1:30], лит (1:30] и инф [ 1: 30]. которые можно
использовать для хранения оценок по физике, литературе и
информатике. Примеры присваиваний: фам(IJ : =«Петров»,
физ [ 1 ] : =5, лит [1 ]: =4, инф [1 ] : =5.
Важную роль в алгоритмах и программах играют описа-
ния массивов. В описаниях указываются имя. тип значений
и размеры массивов. Размеры массивов задаются нижними
и верхними границами индексов. Так, описание х[1:2,
1:100]: веш означает, что это массив вещественных чисел
и для обращения к его элементам необходимо указывать
два индекса. Первый из них может принимать значения
от 1 до 2, а второй — от 1 до 100. Обращения к массивам
с неправильными индексами являются серьезными ошибка-
ми последствия которых трудно предсказать.
Поскольку в массивах хранятся совокупности данных,
то их обработка, как правило, проводится с помощью
циклов. В качестве примера рассмотрим алгоритм формиро-
вания таблицы умножения. Данный алгоритм формирует
таблицу умножения и записывает ее в двумерный массив
целых чисел /[1:9. 1:9]:
Результаты:
t I ’ 2 3 4 5 6 7 8 9
I I I 2 3 4 5 6 7 8 9|
СМ С=7 ДО 9 ЦИКЛ 2 | 2 4 6 8 Ю 12 14 16 18]
OZ7 4-7 ДО 9 ЦШСЛ 3 | 3 6 9 12 I5 18 21 24 27 |
4 | 4 8 I2 16 20 24 28 32 36 |
КЦИКД 5 | 5 Ю I5 20 25 30 35 40 45 |
ССОД 6 | 6 12 I8 24 30 36 42 48 54 |
7 | 7 14 21 28 35 42 49 56 63 |
8 | 8 I6 24 32 40 18 56 64 72 |
9 | 9 18 27 36 45 54 63 72 81 I
90
Поскольку таблица умножения двумерная, то для ее ра,-
мешения в машинной памяти естественно использовать дву-
мерный массив г [1:9. 1:9| целых чисел Для построения
таблицы приходится использовать цикл в цикле Внутрен-
ний цикл по I от 1 до 9 формирует строки таблицы t [fc./J =
= Л/, а внешний цикл по k от I до 9 изменяет индекс строк
и тем самым организует построение таблицы умножения
в целом
Ввод-вывод данных, размещаемых в массивах, как пра-
вило. также проводится с помощью циклов Пример—алго-
ритм вывода таблицы умножения, размещенной в массиве
'II-4 1:9): Результаты:
W "36/&ОД ЯМЗ/ШЦЬ/
У/ЮЮЫЕМИЯ*
МУ
от 1 /до 9 ддик/ь
от L, =1 ДО 9 ЦИКЕ
ЬЫЬОД -bLK,LJ
КЦИКД
&Ь/ЬСД ('НОЬЛЯ С/ЯРОКД)
к дик л
КОН-
1 23456709
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 20 32 36
5 10 15 20 25 30 35 40 45
6 12 1В 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
Внутренний цикл здесь организует вывод строк таблицы,
а внешний цикл — переход на новую строку вывода и форми-
рование таблицы в целом
Заполнение массивов данными может проводиться двумя
основными способами: вводом данных с помощью запросов
либо переписыванием информации из последовательностей
данных, хранящихся на магнитных носителях или в текстах
программ. Например, ввод-даниых в массив V)!:10) можно
производить с помощью уапросов:
ЭАЛОПНвНИЕ МАС-
*~мвОв
от к=д до -ю цик,д
зызод I7T] , к,
ЗАПРОС VCKJ
Результаты
vC 13=7 0
vC 23=7 1
v[103=7 9
Наиболее удобным являе1ся заполнение массивов данны
ми, предварительно записанными в память ЭВМ в форме
последовательностей констант в программе или в форме
файлов на магнитных дисках или лентах Например, для
задачи анализа успеваемости нам понадобятся сведения
91
ДАННЫЕ алгоритмах
об успеваемости,
форме:
которые можно представлять в табличной
"сведения об успеваемости"
Крылов 5 5 5
Рудаков 5 4 5
Иванов 3 3 4
Эти данные могут быть записаны в
алгоритме и в программе в форме по-
следоватетьностей констант:
Дм ведения ее успем&шм*.
Такого рода последовательности
данных могут записываться на магнит-
ные носители и храниться на них сколь
угодно долго. В вычислительной техни-
ке последовательности записей инфор-
мации на магнитны . носителях принято
называть файлами. В форме файлов мо-
ШАЛ U—Щ4-.
К2ЬМ01 , . ~5~' Т
.. ИМИСй,
,<«7 1
г\ г храниться различные таблицы,
справочники, словари, списки и другие
совокупности данных.
Для обработки данных, хранящихся в файлах или за-
писанных в форме последовательности констант в програм-
мах, основной является операция чтения. Например, для
данных считывания данных из таблицы успеваемости, хранящейся
в форме последовательности констант, понадобится такая
операция:
М/иягпь:
<М/« <ри5,/1ИП1,ирФ
с—л пос
СИ/ИЗ ЦИ ЦЕ/ ЦЕ/'
Результатом самого первого выполнения этой операции
будет запись в переменные «фам», «физ», «лит» и «инф»
первой строки значений из таблицы успеваемости:
фам1 = Крылов, фи31—5, лип=5, инф|=5.
Второе выполнение 9той же операции приведет к считыванию
второй строки значений:
фам2=Рудаков, физг = 5, лит2=4, инф2 = 5.
Третье выполнение считает третью строку таблицы и т.Д_
Обработка файлов и последовательностей коис^а‘
про|раимах, так же как и обработка массивов. пР°вол
с помощью цик юв. В качестве примера приведем а. Р
вывода на жран таблицы успеваемости. В пред.'
92
алгоритме предполагается, что признаком конца таблицы
является пустая строка —строка с пустой графой в позиции
фамилии и нулевыми оценками в остальных трех позициях.
ММ.__ • - . , -
Результат:
Крылов 555
Рудаков 545
Иванов 334
*w-----М------Щ____
XZ2£ _J_____________
о 1. Что такое массив?
2. Что такое размерность массива?
3. Как обрабатываются массивы?
4. Что такое файл?
5. Чем файлы отличаются от массивов?
6. Как обрабатываются файлы и последователь-
ности констант?
вопросы
упражнения
задания
1. Постройте вспомогательный алгоритм за-
полнения нулями:
а) одномерного массива; 6) двумерного массива.
2. Постройте алгоритм заполнения двумерного
массива 10X10 числами 1 по главной диаго-
нали и 0 в остальных элементах.
3. Составьте алгоритм заполнения массива
10X10 нулями и единицами в шахматном по-
рядке.
4. Составьте алгоритм выборки из набора
данных, хранящего сведення об успеваемости,
данные об учениках, имеющих:
а) 5 по физике; 6) 5 по математике;
в) только 4 или 5; г) 5 по всем пред-
д) 4 и 5 по информа- метам;
тике.
§ 24. Диалоговые алгоритмы
Диалог — основная фопма работы с современными ЭВМ.
предоставляющими информацию в виде текстов и графи-
ческих изображений. Для написания любых диалоговых
алгоритмов и программ необходимо знать определенные
правила ведения диалога людей с ЭВМ
В создании диалоговых алгоритмов прежде всего важно
разделение функций между человеком и ЭВМ. Человеку
обычно предоставляются возможности выбора вариантов.
ДИАЛОГ человека и
ЭВМ
93
определения исходных данных и анализа результатов п
ЭВМ же требуется накопление данных, решениезадач'
предоставление информации. н задач и
С целью предоставления людям выбора вариантов в
диалоговых алгоритмах широко используется организация
различного рода меню. Напомним, что меню — это пеоечви
объектов, действий или других возможностей, предлагаемых
на выбор.
Допустим, что у нас уже имеются полностью разработан-
ные программы решения линейных уравнений, квадратных
уравнений и систем линейных уравнений. Объединение этих
алгоритмов можно осуществить с помощью следующего
диалогового алгоритма с выбором по меню:
422 ’Б&БОР /70 ШЮ*
Н/7Ч
БЫ&ОД [ АЬ/$ЕРИ/77Е ЗДДРУУ
&Р/БОД 1 ИИНЕИНоГурлРНЕИИЕ_
6Р&ОД Х^кл/ШЮМОЕ УРДМЕНИЕ
БЫБОД \&(^Е/НД УРЩ/ЕИИИ 1
уллрос IномЕР МДЖ/й-У, п
ЕСЛИ П-'/ УРО
РЕШЕНИЕ /ШЕЙНОГО УРАЕ НЕНИЯ
ИНЕС П = 2 /ПО
РЕШЕНИЕ КЫДРАЛ/НОГО УРАМЕНИЯ
ИНЕС 0-3/710
РЕШЕНИЕ СИСИЕ/ИЫ УРА&НЕНИЙ
ЛЕСОЙ
КОН
Р£ЗУДЬ/77Д/77Ь/;
&Ы БЕ РИМЕ ЗАДАЧУ
И. /ИНЕЙНОЕ УРД&НЕНИЕ
2. К&АДРАОНОЕ УРАБНЕНИЕ
3 СИС/7/ЕИ1А УРАВНЕНИЙ
НО/ИЕР ЗАДАЧИ = ? ®
(.НИРЕИНОЕ УРАВНЕНИЕ)
< К БА ДРАННОЕ УРАБНЕНИЕУ
<СИС/7!Е/ИА УРА&НЕНИЙ')
I
Большое значение имеет удобство и простота работы с
ЭВМ в диалоге. Сообщения, выдаваемые ЭВМ, должны
быть ясными и понятными. Напротив, вводимые человеком
команды должны быть краткими и не заставлять человека
выполнять лишние действия.
Для диалога людей с ЭВМ характерны также органи-
зация поиска и накопление информации. Одним из типич-
ных примеров может служить задача поиска и перевода слов
в различных словарях В этих задачах предполагается,
что в ЭВМ хранятся некоторые словари.
Допустим, что в ЭВМ хранится словарь, состоящий из
пар русских и английских слов, и машина должна выдавать
переводы слов, сообщаемых человеком. Приведем один из
простейших диалоговых алгоритмов перевода слов по дву
язычному словарю:
94
енг * перезол go с;о&арюг
НА/
ЗАГРУЗНИ С7О6АРП__________
3/>/^ci4 [перезол го с/слаг/о!
ЗАПРОС. \ CACAO =у~\, CACAO
ПСА A СА1О&С ' " ЦЮС,-'’
/ЮНСН ПЕРЕЗОЛА/
сени 77EPi 30,4 - "ОО_
&3/А<44 I ПЕРЕЗОЛ^ НЕ ЗМ-Йё\
инее пеРезол =з *' wo
ЫмЗСД | ПЕРЕЗОЛ = \ пере&ол
ЕЕСШ
НАПРОС УСАО&О^ I . СаЮАС
КЦИИ _ _____
ЗН/ЗОД [~Д ~ с^^У/гУТ]
*«£
4АГ ”Г7( ¥tf 7J& 'Е&ОДЛ "
АРГ с, 1030 СНА-гЛ
п ЦЕ/!
с, 73 £f fOO, 12j СААЗ
РЕЗ ПЕРЕРОД СПаНГ
НАН
ПЕРЕ&ОД =*’'*
ОИ Е= 40 П ПНР4
если са&ЕП;£/=оао&о /ПО
ПЕРЕ&44. = С,?е ГП, Z7
РЕ САП
44^.1
toe
ЛЛ "ЗА'-РУЗПА САСААРИ"
РЕё П^ЕА!
С/7Ь[1-100,1Z-J СИ/И&
/мч
ПРА&е.-И Р4БГХПЫ
пеге&од по спомрю
СОО&С = ? ^С>ю&о> лX
^ПЕРЕ&О^й нЕ
\neDEeo4=^ ’-ffo,
hjo семдАшия.
ПА'ИЯГПЬ:______________
С/ОЬ^ С/IBtl -10С, 1 2:“
си/иь .......1 I 1 И
ПЕГ=£Ъи>4 • - •
сил-lb J 1. I LT?
П п Ц.Е/1 К □ ЦЕЛ СИ-ИЕ>
Г4Е П -КСЙИЧЕСПГЬО C/Ofi
Ь СЛОВАРЕ
ДАР "СПОЕАПЬ''
£>ые>о/] ЗАПРОС ЕС/Ш toPELj. ЕП1/Г4 РРОГР4/М/К4 ргс/т£ Ln pct < f end book program
п =о НОЕ ПАЕ (CA1, САГ2)
П<Ж4 С/11 р:**. п - ПН'/ .‘/РЕП
сав[г),'1£ = СНА
САЕLH, 2J - CAZ
НПЕНИЕ fCAA, С Al2)
ПЦИЕ',1
кое
ВВОД СИМВОЛА с
КЛАВИАТУРЫ
На таком принципе перевода строятся многие дна юго
вые программы общения людей с ЭВМ, которые в различны*
словарях и таблицах ищут различные слова и их толкова ие
Примерами могут служить различные интерпретаторы
компиляторы программы перевода с одного языка на
другой. В частности, на атом принципе построена работа
интерпретатора языка Бейсик
В самых простых случаях команды общения с диалого-
выми программами состоят из отдельных букв и других
символов, имеющихся на клавиатуре ЭВМ С этой целью
в диалоговых ЭВМ применяется специальная функция ввода
отдельных символов с клавиатуры:
с: = клавиша.
которая фиксирует символ, соответствующий нажатой кла-
више на клавиатуре ЭВМ.
Рассмотрим один из наиболее нросдых алгоритмов риео
вания на экране ЭВМ, который позволяет прочерчивать
на экране произвольные линии с помощью команд, указан
ных управа:
/ЛГ
•УЕРчёммА лишм
ТРА-
Экран ЭВМ:
простейший
ФИЧЕСКИЙ РЕДАКТОР
' 4 —
------
у =
' /7СК/? С '£: /^02.7
6хд)г
---I—
еИЕС С
I Д' ;=
ЩЕС С-=
В
вверх
вправо
влево
К ЕСЛИ
л
J— -
96
1 *4 Л А к'гйммя пклейкя
4
Первое jHflHOMctao
с компьютером
может произойти
еще в детском саду.
Малыши осваивают
клавиатуру, учатся
рисовать, писать
и считать
с помощью ЭВМ.
Школы страны
планомерно
оснащаются учебной
вычислительной
техникой. Машины
будут использоваться
не только на уроках
информатики, но и на
занятиях по физике,
химии и математике
и даже на уроках
истории, географии,
биологии и литературы.
°9F9
Те, от чьей работы будут
зависеть жизнь и здоровье
людей (например, будущие
авиадиспетчеры), могут
научиться находить
единственно правильное
решение в экстремальных
ситуациях, не подвергая
риску человеческие жизни
и дорогостоящую технику.
Ведь все эти ситуации будут
существовать только
в памяти ЭВМ.
(.'.права от алгоритма приведен сценарий работы с ЭВМ.
Работа этого алгоритма начинается с фиксации коорди-
нат </ точки экрана. Далее начинается цикл. Сначала про-
веряется. не равняется ли значение переменной с симво-
ла s. Поскольку до начала цикла этой переменной при-
сваивается пустое слово, то цикл будет начат. На каждом
male цикла выводится белая точка в позиции с координа-
тами (V. (/) и фиксируется клавиша, на которую нажал
человек
Если была нажата клавиша п или л, то по алгоритму к пе-
ременной v добавляется -ф1 или — 1 соответственно, что
означает сдвиг текущей точки вправо или влево. Если на-
жаты клавиши в или н, то текущая точка, как видно по
алгоритму, переместится вверх или вниз. Если же будет на-
жата клавиша s, то выполнение алгоритма завершится.
Как нарисовать квадрат
с помощью этом про*
граммы]
1 Составьте диалоговый алгоритм с выбором
картинок по меню.
2 Составьте словарик на 10—15 лар слов:
а) русско-английский; 6) русско-немецкий;
в) русско-француз- г) русско-испанский.
ский;
вопросы
упражнения
задания
3. Добавьте в алгоритм "черчение линий" вы-
полнение команд:
а) т—-фиксация точки;
6) о — проведение окружности из фиксирован-
ной точки;
в) р — построение рамки с заданными диаго-
нальными точками;
г) ч—построение отрезка, соединяющего те-
кущую и фиксированную точки.
1. Как реализуется выбор с помощью меню
в диалоговых алгоритмах?
2. Как реализуется перевод по словарю в ЭВМ?
3. Как организуется командное управление в
диалоговых алгоритмах?
» Ми JW4 В Л
ЯЗЫК ПРОГРАММИ-
РОВАНИЯ
КОМАНДА
НАЧАЛА ПРОГРАММИРОВАНИЯ
§ 25. Язык программирование Бейсик
Говоря о программировании, мы часто понимаем под
этим составление программ для вычислительных машин
Умение составлять простейшие программы для решения за-
дач на ЭВМ считается одной из частей компьютерной
грамотности.
Для составления программ применяются специально
созданные языки — языки программирования. Одним из
наиболее распространенных языков программирования яв-
ляется язык Бейсик.
Язык Бейсик был создан в 60-х годах как язык для
начального обучения программированию в диалоге с ЭВМ.
Этот язык создавался американскими программистами, и
поэтому в основу его была положена лексика английского
языка.
На персональных ЭВМ язык Бейсик позволяет состав-
лять самые различные программы: для проведения математи-
ческих расчетов и построения графиков, организации игр
и различных экспериментов, диалоговых справочников,
обучающие, консультирующие и многие другие программы.
Работа на ЭВМ с языком Бейсик проходит в режиме
диалога. В ходе этого диалога человек вводит свою про-
грамму, запускает ее на выполнение, исправляет операторы
и вновь запускает программу на выполнение. ЭВМ послушно
выполняет все действия в соответствии с введенной про-
граммой.
Проще всего с языком Бейсик познакомиться, непосред-
ственно работая на ЭВМ. Прежде всего нужно понять, как
ЭВМ выполняет команды. Команды — это отдельные фразы
языка Бейсик, которые вводятся прямо с'клавиатуры и сразу
же выполняются ЭВМ. Выполнение команд следует немед-
ленно после нажатия клавиши ,<J| Эта клавиша так и
называется — клавиша ввода комяид (ВК).
Рассмотрим примеры команд и результаты их выпол-
нения. Первая команда — эго «приветствие».
Команда: Результат:
? "привет" привет
? "hello" <4 Hello
Обе эти команды начинаются со знака вопроса.
В кавычках записываются фразы. Результаты выпа»
нения этих команд — фразы "привет" и "HELLO ко
рые ЭВМ выведет в качестве результата.
98
Арифметические выражения в тыке Бейсик «аписыва арифметические
клея с помощью следующих -паков IЫ жгния . г. ,<г
Щ сложение, Q
__ шш м во (Ведение
| умножите, Щ —деление, Щ в степень
Простейшим применением Бейсика может быть исполь-
зование ЭВМ в качестве калькулятора. Для этого доста-
точно команд вывода на экран значений арифметических
выражений. Приведем примеры таких команд.
Команда:
? 1+2+3+4+5
? 365X24X60 4J
? 2'10
? (367-245/7 <J
? 5/3
Результат:
15
525600
1024
49
1666666666666666
— сумма 5 чисел
— число минут в году
— 2 в 10-й степени
— число недель
— дробное число
Для записи дробных чисел в Бейсике применяется не за-
литая, отделяющая дробную часть числа от целой части,
а точка. Кроме того, обратите внимание на количество
цифр в записи чисел. Вещественные числа в Бейсике вы-
числяются и хранятся в памяти ЭВМ с 6 или 16 значащими
десятичными цифрами.
Вторая особенность языка Бейсик: запись арифметиче-
ских формул и алгебраических выражений не может быть запись формул
«многоэтажной». Вее формулы в Бейсике должны записы-
в строчку. Примеры записи:
(2+5)/6
1(3X4) (но не 1/3*4)
lr (АХХ + В)/(15ХА)
15ci
ваться
2 + 5
6
их + Ь
При организации расчетов на ЭВМ результаты вы-
числений могут храниться в ее памяти В
этого служат переменные. Рассмотрим
с использованием переменных:
Результат:
языке Бейсик для
примеры команд
.Д4/ИЯП15> '
Команда.
А=3.0
В=2.0 ^1
?А/В ^1
FI=3. 14195^1
?SIN(PI/2)
5*
1 1 Л о b ₽Е14 2.0 1
PL “ЕЩ.
.99999998403794
99
Первые две команды — это присваиванмр Кипе
первого из них состоит в записи чист . 3.0 в пере“юТ
Результатом второго является запись числа 2 0 в пепем/
ную й. Третья из приведенных команд извлекает из намята
ЭВМ значения переменных а и Ь. производит операцию
деления и выводит на экран результат операцию
Понятие присваивания одно из важнейших в ппо
граммировании. Часто говорят: кто понял, что такое приевти
вание. тот понял суть программирования. Разберем evin
ность этой операции на примерах.
Команда Результат:
N=3
?N 3
N=4
?N 4
N=N+1
?N 5
ПРИСВАИВАНИЕ
Первая, третья и пятая команды - -это присваивания.
Все они читаются: "ti присвоить 3", ”п присвоить 4"
и т. д. Ошибкой было бы читать их гак: "п равно 3"
или "п равно 4" Действительно, если бы операции при-
сваивания можно было читать (я главное, понимать) так,
то третью команду можно было бы прочесть так: "п равно
Это очевидная бессмыслица, так как, сократив это
выражение на п, мы получили бы "0=1" (?!).
Все становится понятным, если рассмотреть результат
последовательного выполнения команд л:=3, zi:=4, п: =
«+1. Первая команда записывает в переменную п
число 3. Вторая команда изменит значение переменной п
на 4. Третья же команда присваивания извлечет из памяти
ЭВМ последнее значение переменной п, прибавит к нему 1 н
запишет полученное число 5 вновь в переменную п.
Понятия переменных в программировании и в матема-
тике различны Если в математике переменные - это неко
торые величины, то в программировании переменная —
это область памяти, куда можно записывать различныг
значения.
Различие между ш ременными в математике и в про-
граммировании подчеркивается различием способов их имс
новация. В математике имя переменной это буква латин-
ского или греческого алфавита, к которой можно приписать
верхний или нижний индекс. В языках программирования
имена переменных составляются из одной или нескольких
букв без всяких нижних или верхних индексов.
В языке Бейсик для имен переменных можно выбирать
любые латинские буквы: А, В, С,.. Л Y, Z. Кроме того, в Беи-
100
сике в качестве имен-переменных можно использовать соче-
тания из двух букв V \ Y, PR, а также сочетания из
б\ квы и цифры — АО. XI, 'i 2 и т. п.
Все переменные в языке Бейсик обычно считаются ве-
щественными. Значения таких чисел в машине хранятся
в специальной форме с указанием десятичного порядка
При выводе этих чисел и при их вводе десятичный порядок
указывается с помощью буквы Е. Примеры- запись 1.5Е12
обозначает число 1.5-1012, а запись 0.1Е-8 — число
0,1-10 “ Приведем еще примеры записи:
5-101 2— 5Е4 0,l-10~s — 0.1Е-6
Для проведения математических расчетов в языке Бей
сик. как и в калькуляторах, имеются элементарные матема-
тические функции. Рассмотрите форму записи и примеры
использования этих функций.
имена переменных
в Бейсике
ЧИСЛА с порядком
МАТЕМАТИЧЕСКИЕ
ФУНКЦИИ
Команда:
Результат: Функция:
? ABS(-3)<J
? SIN(0) {J
? COS(0)
? TANC0)
? ATN ( 1) X4 <J
? EXP(l)
? LOG(2) <J
? SQRC2) <J
? RND(l) <J
3
0
0.99999
0
3.14159
2.71828
0.693147
1.414
0.456732
— модуль числа
— синус угла (в радианах)
— косинус угла (в радианах)
— тангенс угла (в радианах)
— арктангенс
— число е
— натуральный логарифм
— квадратный корень
— датчик случайных чисел
Необычной является функция RND. С помощью этой
функции можно получать случайные числа. Каждое об-
ращение к ней будет давать некоторое число от 0 до 1 —
заранее неизвестно, какое именно. При этом каждое новое
обращение к этой функции будет давать новое значение.
1. Каковы основные возможности языка Бей-
СИМ?
2. Как использовать ЭВМ в качестве кальку-
лятора?
3. Как записываются числа на языке Бейсик?
4. Какие математические функции есть в языке
Бейсик? iJ
вопросы
упражнения
задания
1. Запишите по правилам языке Бейсик следую-
щие числа:
а) 1,25; 6) —0,1; в) 3 • 105; г) —6,2 • 10-3.
2. Запишите на языке Бейсик следующие вы-
ражения:
1 3 * 4 лх
а) —; 6)
. а— 2Ьс
а) -т=г~.—:
17 sin а
г)
4
8—3;
2+7 в) <0+8.
-Д'* В> 7-3 1
101
1. Выполните на ЭВМ все приведенные примеры
команд и самостоятельно подберите дополни-
тельные примеры.
2. Определите с помощью ЕХР максимальное
вещественное число. Начните эксперимент с кп
манды { ЕХР (200) и действуйте далее по
методу деления пополам.
§ 26 Правила работы с программами
ПРОГРАММА для ЭВМ
Посте первого опыта работы с ЭВМ в командном ре-
жиме, когда машина немедленно выполняла вводимые ко-
манды, легко понять, что такое программа.
Программы для ЭВМ - это последовательности
команд, которые должна выполнять машина Иными сло-
вами, программа для ЭВМ это алгоритм, записанный на
языке, понятном данной ЭВМ. Располагая алгоритмом, на-
писанным на русском алгоритмическом языке, можно пере-
вести этот алгоритм на любой язык программирования,
имеющийся на вашей ЭВМ.
Запись программ определяется правилами использу
емого языка программирования, а работа с программами
на ЭВМ — правилами имеющейся на машине системы про-
граммирования. Язык Бейсик привлекает тем, что системы
программирования на этом языке имеются практически на
всех современных ЭВМ.
Программа на языке Бейсик — это последовательность
команд, которые можно было бы одну за другой давать
ЭВМ в режиме непосредственного ввода. Если -же эти ко-
манды пронумеровать и ввести в ЭВМ, то машина автома-
тически будет работать по этой программе.
Начнем рассмотрение программ на Бейсике со следую
шего примера Пусть нам требуется определить время дви
жения по заданным скорости и длине пути. Для решения
этой задачи на ЭВМ достаточно четырех команд.
Например:
S = 720 <3
V = 60 <-1
Т = S/V <3
•7 т <3
12
-указание длины пути
— указание скорости движения
— расчет времени
— вывод времени
результат вычислений
Для расчета времени при других данных мы Д '
будем еше раз вводить все эти команды. Эту работу
можно автоматизировать. Для этого воспользуемся - У
шим алгоритмом диалога. Пусть машина спросит на -
пути и скорости движения, а затем сообщи । I
жения:
102
Алгоритм:
Программа:
ГА*
Ч№\-\ Д-4—Ь U- ЬХ
&b,&Ql ~Wc *1£-,гГ.
МЛРОС ,\s {Д--
7P0C l^pja^g&E] , v
bt^&a/i Za~~-
10 ’ время пути
20 PRINT"pac4eT времени"
30 INPUT "луть=";5
40 INPUT ”скорость=”;V
50 T=S/V
60 PRINT’epeHS1"; Г
70 END
Справа от алгоритма приведена соответствующая про-
грамма на Бейсике. Первая строка рассматриваемой
программы— это комментарий с названием программы. Да
(ее следуют строка с операторами. Операторы в языке Бей-
сик— это команды, к которым приписаны некоторые но-,
мера и которые после ввода будут храниться в памяти
ЭВМ
Для записи операторов в Бейсике используются англий-
ские слова PRINT. INPL Г, END и т. д. Переводы англий-
ских слов, используемых в Бейсике на школьных ЭВМ.
приведены в конце учебника. Таким образом, программа
является переводом алгоритма на язык программирования.
Рассмотрим теперь операторы этой программы по от-
дельности. Первый оператор — оператор PRIX Г "расчет вре-
мени". Это оператор вывода сообщений на экран ЭВМ.
Он в точности выполняет предписываемую алгоритмом опе-
рацию— вывод ("расчет времени' ).
Следующие два оператора в программе—INPUT
"путь="; S и INPUT "скорость"; V -это операторы
ввода исходных данных. По первому из них ЭВМ выводит
на экран сообщение "путь = " и ждет от человека ввода
числа, выражающею длину пути, а затем нажатия кла-
виши р| То же самое ЭВМ производит при выполне-
нии второго оператора INPUT.
Следующий, пятый оператор — Т = S/V — присваивание.
Этот оператор вычисляет значение выражения S/V и запи-
сывает полученное значение в переменную Т. Шестым опе-
ратором PRINT "время = "; Т это значение выводится
на экран ЭВМ.
Последний оператор — END — это оператор конца вы-
полнения программы.
Таким образом, представленная программа действитель-
но строго выполняет то, что предусмотрено в выбранном
алгоритме диалога.
ОПЕРАТОРЫ КеНсИН*
103
ПРОГРАММА на Бей-
сике
КОММЕНТАРИИ
Теперь можно обсудить правила записи программ на
языке Бейсик. Программы на языке Бейсик — это ирону
мерованные последовательности строк, содержащие опера-
торы и комментарии.
Комментарии в программах на языке Бейсик начина-
ются со знака апострофа: ' Комментарии могут стоять в
конце строки либо занимать всю строку целиком С по-
мощью комментариев можно включать в программы слова и
фразы, поясняющие смьн i выполняемых действий. Для
программы очень важно следующее свойство:
чем понятнее программа, тем она лучше.
грация строк Для нумерации строк в программах uti Бейсике обычно
используются целые числа 10. 20. 30, 40 и т. д. Остальные
номера остаются незаполненными, чтобы позже можно было
вставлять новые операторы. Второе важнейшее свойство
программ:
чем проще вносить в программу изменения и дополнения, тем она лучше.
Операторы в программах рекомендуется писать по одному
на строк,. Язык Бейсик разрешает записывать н > о той
строке несколько операторов, разделяя их двоеточиями.
Однако из-за этого в программу сложнее будет вносить
изменения.
Составление программ на языке Бейсик лучше всего на-
чинать с составления алгоритма для ЭВМ на родном языке,
а уже затем записывать этот алгоритм на языке Бейсик
Такой способ дает возможность составлять более понятные
программы, которые легче читать и легче исправлять.
Поэтому в программах, составленных таким способом, легче
найти и исправить ошибки и, как следствие, можно быстрее
получить на ЭВМ результаты решения задач
Написание программ при таком подходе состоит в пере-
воде русских слов, с помощью которых записываются алго-
ритмы, в слова используемого языка программирования
Для этого достаточно простого словарика, который при-
веден в конце учебника.
После составления программы начинается ее ввод и
испытания на ЭВМ Эта работа состоит в следующем:
1) ввод программы;
2) выполнение программы,
3) исправление программы
Ввод каждого оператора должен обязательно заканчи-
ваться нажатием клавиши ввода команды р| • Только
104
после этого ЭВМ запоминает введенный оператор и встав-
ляет его в соответствующее место программы. Операторы
могут вводиться последовательно, начиная с младших номе-
ров, но могут вводиться и в любом порядке.
Ввод длинных программ требует много времени. Поэтому
для ускорения процесса испытания и отладки лучше всего
вводить и проверять их по частям Первыми лучше
всего вводить операторы ввода и вывода данных Это позво-
тяет начать диалог с программой, даже не введя еще всего
текста Действуя таким способом, можно и imhoto раньше на
чать исправлять ошибка, прокравшиеся в программу
Выполнение программ на Бейсике начинается по команде
RUN
КЛАВИША ВоОДД
КОМАНД- ГЛ
КОМАНДА ВЫПОЛНИ
ИМЯ ПРОГРАММЫ
RUN
(Rl \ - выполнять). Диалоговые программы, как правило,
предполагают ввод определенных данных. В таких е итуациях
ЭВМ приостанавливает выполнение программы и ждет вво еа
данных с клавиатуры. Прншяком конца вво ш инных
всегда служит нажатие клавиши ввода команды |<J] Вы-
полнение программы ЭВМ продолжит только послЬ нажатия
этой клавиши.
Технику ввода и проверки программы по частям рас-
смотрим на примере разобранной ранее программы расчета
времени движения Одним из лучших решений будет ввод
первыми операторов вывода. Это 20-й и 60-й операторы
программы
20 PRINT"расчет времени''^]
60 PRINT"Bperifl=" ; Т
Введенную часть программы уже можно запустить на вы
полнение командой RIJX. В результате на экране ЭВМ
получим:
RUN «J
расчет времени
время= 0
— запуск программы
— результаты выполнения
Отметим, что всем числовым переменным в программах
на Бейсике перед началом выполнения любой программы
автоматически присваиваются нулевые значения. Поэтому
введенная часть программы из двух операторов дает нуле-
вое значение времени, которое извлекается из переменной I.
Для получения времени движения при произвольной ско-
рости и длине пути необходимо ввести следующие три опе-
ратора:
105
30
40
50
INPUT "путь»" ;S 4J —ввод длины пути
INPUT "скорость»";V — ввод значения скорости
T=S/V ^1 — расчет времени движения
Теперь можно запустить программу и ввести любые
значения длины пути н скорости движения:
RUN 4^
расчет времени
путь»? 720 4^
СКОрОСТЬ»? 60 4^
время= 12
— запуск программы
— ввод длины пути
— ввод скорости
— конечный результат
Редактирование программ заключается в возможности
исправления введенных строк программы, а также добавле-
ния новых строк или удаления ненужных.
Текст программы, хранящейся в памяти ЭВМ, можно
увидеть на экране по команде
г эсмотр те“стл
РОГРлммЫ — LIST
LIST,
(LIST — список). В рассматриваемом примере результатом
будет такой текст:
20 PRINT"pacHeT времени"
30 IhB^UT "путь=";5
40 INPUT "скорость»" ;V
50 T=S/V
60 PRINT"время»";T
Для завершения ввода текста
программы осталось ввести два
оставшихся оператора:
10 ’ время пути 4I
70 END
Для вывода отдельного оператора программы в коман-
де LIST указывается номер соответствующей строки. При-
мер такой команды:
Результатом будет появление на
LIST 50 экране строки с номером 50
50 T=S/V
Для вывода на экран части программы в команде LIST
нужно указать номера первого и последнего оператор
разделяя их знаком тире. Пример:
LIST 30-40 Результат
30 INPUT "путь=";5
40 INPUT "скорость»";V
106
Изменения в отдельных строках программы можно про-
во 1ить вводом нового варианта строки либо редактирова-
нием отдельных символов или части строки.
Редактирование внутри строки проводится с помощью
курсора. Для этого курсор перемещается на нужную строк)
затем на нужную позицию, где и вносятся нужные исправле-
ния. По окончании исправлений необходимо обязательно
нажать клавишу ВК[Д|. В противном случае ЭВМ не за-
помнит исправлений
Удаление строк из программы можно проводить дву ня
способами. Первый — ввести пустой оператор с номером
удаляемой строки и нажать клавишу ВК Pl Второй -
ввести команду удаления строк DH FTF Например, если
нужно удалить строки с 30-й по 50-ю, то нужно ввести
команду
DELETE 30-50
Удаление из памяти всего текста программы осуществля
ется командой
(\FA\ — новый)
Р ДлКТИРОВАНЧЕ
ПРОГРАММЫ
удаление строк —
DELETE
УДАЛЕНИЕ ТЕКСТА
ПРОГРАММ- ИЗ ПА-
МЯТИ - HEW
Нарушения правил языка программирования при записи
команд и операторов в программах называются синтакси-
ческими ошибками. Такие ошибки ЭВМ обнаруживает авто-
матически. При обнаружении этих ошибок в программах
ЭВМ прерывает выполнение программы и выводит на экран
сообщение с указанием номера ошибочного оператора.
Тексты этих сообщений зависят от используемой системы
программирования.
Дзя исправления выявленных ошибок необходимо вы-
вести на экран соответствующий оператор, указав его но-
мер в команде LIST, проанализировать, в чем состоит
ошибка, и исправить ее. Для вывода на экран строки, в ко-
торой машина обнаружила ошибку, можно пользоваться
командой list_
либо ввести команду вида: LIST 50
где 50 — это номер нужной строки.
ВЫВОД ОШИБОЧНОЙ
СТРОКИ — LIST
Что такое программа для ЭВМ?
2. Какими командами:
а) программа на Бейсике запускается на вы-
полнение;
6) выводится на экран текст всей программы;
в) выводятся на экран отдельные операторы
программы;
г) выводятся на экран фрагменты программы?
3. Что является признаком конца исправления
оператора?
4. Что является признаком конца ввода данных
в ответ на запросы ЭВМ?
вопросы
упражнения
задания
1. Составьте алгоритм и программу на языке
Бейсик для расчета средней скорости по длине
пути и времени движения.
2. Составьте алгоритм и программу решения:
а) линейного уравнения; 6) системы линейных
уравнений с двумя неизвестными.
107
I* 1. Введите и испытайте на ЭВМ программу
расчета времени движения.
2. Составьте план ввода, введите и испытайте
иа ЭВМ программу:
а) расчета средней скорости движения-
6) решения системы линейных уравнений
мя неизвестными. с АВУ*
5 27. Графические программы на Бейсике
Отличительной особенностью современных ЭВМ является
возможность предоставлять людям информацию в нагтядной
графической форме. В язык Бейсик для таких ЭВМ вк, ю
чены операторы вывода на экран ЭВМ как символьной
так и графической информации.
На школьных ЭВМ язык Бейсик включает средства вы-
вода на экран таких элементов графической информации,
как точки, отрезки прямых линий, дуги, окрхжности, рамки
а также операторы для вывода надписей и раскоаски
точек и фигур.
Рассмотрение графических средств Бейсика можно на
чать с программы вывода на экран рисунка первомайского
праздника. Приведем описание алгоритма и соответствие
шую картинку:
Детальный алгоритм:
Программа на Бейсике:
। I . । । _|.. I._ L.
цРЧ ' ' J I
мния(8о,4о)-/зо,1бс>),
РРСКРАСКД 430, <?Q), ХР/ЮЩЯ
НРДПИСЬ (40, 2.^ '~ll|
^/4ИР, П1Р/Д |
Р4СКР4СК4(21О,<5О;, cwt*
/ШНЛЯ('210, 70j- S210/?o);.W(#.Z _
h t Ш
10 ’первомайский праздник
20 C1=4:C2=T ’графика
30 LINE(60,40)-(60,160),Cl
40 LINE(60,50)— (160,120) ,C1,B
50 PAINT(130,90),Cl
60 LOCATE 10,2
70 PRINT "мир,труд,май"
80 CIRCLE(210,50),30, C2
90 PAINT(210,50),C2
100 LINE(210,80) — (210,120) ,CZ
110 END
108
Приведенная программа записана на языке Бейсик с сче-
том цветов ПЭВМ «Корвет*. В 20-й строке записаны два
присваивания: С1 =4 и С2=1. Эти два присваивания фик
сируют коды цветов: С1 - для красного, а С.2 - для синего
Гели на ваших ЭВМ эти цвета имеют другие числовые
коды, то указанным переменным в программе нужно при-
своить соответствующие значения Коды цветов для школь
ных ЭВМ приведены в справочнике по Бейсику в конце
учебника
Ввод этой программы в ЭВМ лучше всего проводить по
частям. Вначале следует ввести и апробировать операто-
ры 10, 20, 30, проверив начало протраммы. татем операто-
ры 40 и 50, осуществляющие вывод рамки и раскраску
флага Далее необходимо подправить в программе коорди-
наты рамки переместив флаг в центр экрана. После этого
ввести и подкорректировать операторы 60 и 70, обеспе-
чивающие вывод надписи. И наконец, ввести операторы
80, 90 и 100, которые выво гп и раскрашивают итображенне
шарика
Вывод элементов изображения на экран ЭВМ приятно
дится в Бейсике следующими операторами
COLOR С1,С2 —цвет фона = с2, букв=ч/
PSET(X,Y),С точка (с у), с
где с, у — координаты точки на экране, а < ее цвет.
LINECX1, Y1) — (Х2, Y2) , С линия (\l. yl) — ( v2, J/2)
Здесь (с/, yl} и (с2, у'2) координаты концов отрезка
LINE(X1,Y1) —(X2,Y2),C,B
рамка (с/, у/1 — ( i2, у2}, с
Здесь (у(, yl) и (v2, 1/2) координаты концов диагонали
рамки. Стороны рамки параллельны сторонам экрана
Символ В в этом варианте оператора 1 1\Е означает, что
на экран будет выводиться рамка, а не линия.
CIRCLE (X, Y) ,R, С окружность (\ у). г. с
Здесь (х, I/) - координаты центра окружности, а г- ее
радиус
CIRCLE(X.Y) ,R,C,al,a2 — дуга (х, у), г, с. al. а2
Здесь а/, а2 углы дуги окружности, задаваемые в радиа-
нах.
PAINT(X,Y),C —раскраска (х, у), с
ВЫВОД ЭЛЮлСН|ОВ
ИЗДЬРАЖСНИЯ.
задание цвета фона
вывод точки
с’ вывод пинии
вывод рамки
вывод окружности
вывод дуги
раскраска фигуры
Здесь (у, //) — координаты точки, из которой начнется
109
эд надлисч
раскраска. Напомним, что раскрашиваться будет та <mrvm
контур которой имеет тот же самый цвет, что и vwmJmIS
в операторе PAINT. ’ "ныи
CLS — очистка
В учебных ЭВ VI возможен вывод на экран в графическом
режиме нескольких градаций цветов. Номера этих цветов
зависят от типа ЭВМ и диалекта языка Бейсик (ем при-
ложение в конце учебника).
Вывод надписей в отечественных компьютерах прово-
дится с помощью двух операторов: оператора указания
места вывода LOCATE РХ, PV и оператора вывода сооб-
щений PRINT, в котором указывается, что должно вы-
водиться.
LOCATE PX.PY место надписи (pc, pi/)
PRINT "<фраза>" — вывод ''(Фраза)"
В персональном компьютере ' Ямаха" для вывода графи
ческпх изображений преж де всего требуется за дать режим
вывода на экран графической информации. Для этого ис-
пользуется оператор SCREEN 2. Для вывода надписей в гра-
фическом режиме работы экрана, кроме оператора
SCREEN 2, необходим еще один специальный оператор
OPEN"GRP:"AS1 (открытие графического текстового
файла). Вывод надписей на и тображениях ь этом компьютере
проводится соответствующими операторами.
Вывод надписей (в персональном компьютере "Ямаха")
PRESET(X,Y> — место надписи
FRINT#!,"<фраза>" “ вывод "<ФРаза>"
Составьте описание, детальный алгоритм и
программу на Бейсике для получения изобра-
жений:
а) домика; 6) автомобиля; в) трактора;
1. Каковы размерь, экрана при выводе графи- г> книги; Деревца; е) цветка; ж) рыбки;
ческой информации на ваших машинах? 3' птИчки-
2. Какие цвета есть на ваших машинах и как^ 1. Составьте план ввода и испытаний для своей
они кодируются? программы.
3, Как вывести на экран окружность, если тако- 2. Введите свою программу в ЭВМ в соответст-
го оператора нет в языке программирования? вии с составленным планом.
28. Выбор действий в Бейсике_____________________
Составление программ на Бейсике представляет собой
нес южную работу, если предварительно составляются алго-
ритмы решения поставленных задач. Такой способ написа-
ния программ сводится к переводу слов одного языка на
110
другой, выполняемому по строго определенным правшам
Выбор действий в Бейсике может кодироваться двумя
способами: частным и общим. Начнем с частного способ»,
который применим только в ситуациях, когда выбору под*
лежат группы из одного-двух Действий,
Для примера рассмотрим алгоритм "оракул' , в котором
машина предрекает, будет ли вам сопутствовать Удача в ва-
ших делах. Логика этого оракула проста он случайным
образом выбирает одну из двух фраз: "Вас ждет успех"
иди Вас ждет неудача Соответствующая программа на
Бейсике приведена у права
мг- -atop*.... . . _ .
-JhSl---- - - .. ....
z4. - .
„..Дл^СУЛ ._ 1 L_J
Pigs w . Г
.. ’ L .. li
ЖД1-1144ffl4--
10 ’ оракул
20 P = RNI’t-TIME)
30 IF P < .5 THEN
PRINT"Вас ждет успех"
W IF P >» .5 THEN
PRINT"Вас ждет неудача"
50 END
Выполнение этой) программы на ЭВМ после ее (апуека
командой RI ' будет состоять в с чедующем. Выполняя
20-й оператор. ЭВМ вычистит некоторое случайное число р
Аргумент IIME в датчике случайных чисе 1 означаг г, что
случайное число будет вычисляться в зависимости от зна
чения счетчика времени, имеющегося в машине. По этой
причине каждое новое обращение к этой программе будет
давать совершенно новое непредвиденное предсказание.
Далее, в 30-м операторе в соответствии с алгоритмом
проверяется значение полученного случайного числа:
р<0.5? Если эго так, то на экран будет выведена фраза
"Вас ждет успех" Затем, в 40-м операторе проверяется:
pJsO,5? И если число р больше или равно 0,5, то на экране
появится фраза: "Вас ждет неудача"
Кодирование простейших условных действий, как видно
из примера, заключается в замене слова "если" на слово
"IF" и слова "то" на слово "THEN". Роль слова "кесли"
в этом правиле играет номер следующего оператора.
Общую схему этого частного способа кодирования можно
проиллюстрировать схемой:
если (условие) го 120 IF <условие> THEN
(действие) <оператор>
кесли 130 ...
ПРО» ГЙШАЙ фч. РИА
УСЛС ВНОИ КОНСТРУК-
ЦИИ
ИОДИРОВАНИЕ УС
ловим
Условия в языке Бейсик кодируются ио следующим
простым правилам. '3 и1м
Условия
Бейсик.
а — Ь
<» + *>()
sin vj&<>
v<l
A = В
X <> Y
A+B > 0
SIN(X) >=
SOR(X) <=
X~2 < 1
p 11)110
ие равно
больше
0 больше или равно
1 - меньше или равно
меньше
ювия С ЛОГИЧЕ-
СКИМИ СВЯЗКАМИ
Обратите внимание знак неравенства =/= в Бейсике коди
руетея двумя символами < > — меньше и больше.
Сложные условия, составленные с помощью логических
связок щ или, ие, кодируются на языке Бейсик с приме-
нением английских слов: AND—щ OR — или, NOT не.
Примеры:
Условия:
<0'Сх) и (л-^ 1)
i.v>0 или (у>0)
не (а--Ь)
Бейсик:
(0 <= X) AND (X <= 1)
(X > 0) OR (Y > 0)
NOT (A = В)
Однако рассмотренный частный способ кодирования нельзя
применять в тех случаях, когда выбор производится из
нескольких групп действий либо группы состоят из несколь-
ких действий. В общем случае выбор действий всегда можно
закодировать с помощью операторов двух типов: операторов
условного и безусловного переходов.
Оператор безусловного перехода в Бейсике записывает-
ся с помощью словосочетания GOTO (GOTO — переход к).
Оператор условного перехода кодируется с помощью слов
IF ... THEN GOTO (если ... переход к).
Рассмотрим теперь программу "оракул”, закодирован-
ную по тому же алюритму с помощью операторов условного
и безусловного переходов:
W "ОР/ЗГУЮ*
р = сручрмюе fay)
Е'УИ Р > О,5~ PTCL
е>ыы>д A&L&AEJZ.yvi&X
ИНРУЕ , _______
Ъ-УАОД Га<Г МДЕПГ неудруд |
кор
10 ’ оракул
20 Р = RND(-TIME)
30 IF NOT Р>.5 THEN GOTO 60
40 PRINT"Вас ждет успех”
- 50 GOTO 80
60 ’ иначе <-----------------
70 PRINT"Вас ждет неудача"
•^80 ’несли
90 END
Запись IF ХОТ Р>(Т5 THEX GOTO 60 это оператор
условного перехода Фраза ХОТ Р>0.5 означает: "неверно,
что р>0.5" Поэтому если случайное число р. вычисленное
машиной, окажется меньше или равно 0,5, то условие
ХОТ Р>(’.5 окажется выполненным и ЭВМ должна будет
выполнить оператор GOTO 60.
Оператор GOTO 60 — это оператор безусловного перехо-
да, выполнение которого заключается в продолжении вы-
числений с оператора 60. В данном случае ЭВМ выве нет
фразу "Вас ждет неудача" и закончит свою работу
Если же случайное число р окажется больше 0,5/то усло-
вие ХОГ Р>0 5 окажется ложным. В этом случае ЭВМ
перейдет к выполнению следующего по тексту программы
оператора и выведет фразу "Вас ждет успех" Далее,
в строке 50, стоит оператор GOTO 80 оператор пере-
хода к 80 му оператору. Выполняя его. ЭВМ изменит ход
выполнения программы и завершит выполнение программы,
не выводя фразы "Вас ждет неудача".
В обшем случае операторы безусловного перехода
в Бейсике имеют вид GOTO <номер>
где (номер) — это номер некоторого оператора в про-
грамме. А операторы условного перехода имеют такой вид:
IF <условие> THEN GOTO <номер>
где (условие) — это запись некоторого логического условия
по правилам языка Бейсик.
Общий способ кодирования алгоритмической конструк-
ции выбора действий на я (ыке Бейсик проводится по сле-
дующей схеме:
ОБЩАЯ ФОРМА УС-
ЛОВНОМ КОНСТРУК-
ЦИИ
Бейсик-
Выбор действий:
если ииес (условие!) то (действия 1) (условие2) то (действия2) 100 140
иначе кесли (действияЗ) 150 |—190 200
->250
IF NOT(<условие!>)THEN GOTO 150-
< дейс твия1>
GOTO 250
IF NOT (<условие2>) THEN GOTO 200^-
<действия2> \
GOTO 250
’ иначе —————— ----------=—
<действияЗ>
’несли
Правила кодирования:
а) слово если заменяется на слова IF ХОТ;
б) слово то заменяется на оператор перехода ТНЕХ
GOTO, но номера операторов, куда должен производиться
переход, Заполняются позже;
ПРАВИЛА КОД.'РО
ВАНИЯ
113
>АВНЛД и од про в) слово инее заменяется па два оператора: оператов
перехода GO ГО к концу выбора п оператор условного
перехода IF NOT с тем же условием;
г) слово иначе также заменяется на два оператора-
оператор перехода GOTO к концу выбора и оператор-ком-
ментарий иначе;
1) слово кесли переписывается в строку-комментарий
’кесли, являющуюся концом выбора;
е) во всех операторах GOTO заполняются номера строк,
куда производится переход,— номер конца выбора в опера-
торах GOTO и номер начала следующей альтернативы
в операторах условного перехода IF NOT .. THEN GOTO.
В качестве примера рассмотрим перевод на язык Бейсик
диалогового алгоритма решения на ЭВМ квадратного урав-
нения:
/ИГ 'РЕШЕНИЕ КвНДРАУ/ШОГО
НЕУ УРН&НЕНИЛ •
вывод гвадр/mwoe уравнение
ВЫВОД Га**
ЗАПРОС , &
ЗАПРОС га <ь
ЗАПРОС I С= I , С
с/ — ьг-4-а с
ЕСИН EZ = о ЕЮ__________
ВЫВОД \НЁДОПУС/ПИ/ИОЕ2=0 I
ИНЕС сЕ < С /ЦО
ВЫЁЮД \ КОРРЕЯ ЙЁЁГ\
ИНАУЕ 1
х7 /(га.}
*2 = (-ь-г&)/сг а)
вывод \корн//\
вывод \х1— I , xi
вывод z кг
КЕСЛИ
ХОН ,
10 20 ’решение квадратного ’уравнения
30 PRINT"квадратное уравнение"
40 PR INT"ах Л2+Ь х +с=0 "
50 INPUT"A=";А
60 INPUT"В=";В
70 INPUT"С=" ;С
80 D=B'2-4*A¥C
90 IF NOT А=0 THEN GOTO 120
100 PRINT"недопустимо: a=0"
110 GOTO 210
120 IF NOT D<0 THEN GOTO 150
130 PRINT"корней нет"
140 GOTO 210
150 ’иначе
160 X 1 = (-B+SOR (D) ) / (2*'A)
170 X2=(-B-SQR(D))/(2*A)
180 PRINT"KopHHS"
190 PRINT";: 1 = ”; XI
200 PRINT";;2="; X2
210 ’кесли
220 END
Для упрощения понимания операторов условного пере-
хода—if' THEN GOTO—при их кодировании полезно
применять следующее правило. Отрицания условии вы Р
лучше записывать не в форме со словами NO ,
выразив отрицание условий выбора, записанных в алгор;^
Так, в рассмотренной программе вместо фразы МЛ
114
"неверно, что а = ()" лучше в соответствии с иконами
огикч записать условие \-<>(), означающее а^=(), а
вместо условия \()Г D>() "неверно, что (/>()"
записать условие !)<=(), означающее, что т/^0.
1. Составьте диалоговый алгоритм решения
линейных уравнений с анализом условия в—О
и закодируйте его на языке Бейсик.
2. Составьте диалоговый алгоритм решения
системы двух линейных уравнений с анализом
условия D=0 и закодируйте его на языке
Бейсик-
Примечание. В языке Бейсик буквы d и D
означают одно и то же имя переменной.
Составьте план ввода и испытаний программы
решения.
а) квадратного уравнения; б) линейного урав-
нения; в) системы двух линейных уравнений и
проведите отладку программы на ЭВМ.
91
вопросы
упражнения
задания
1 Как кодируется на Бейсике выбор действий
в простейших случаях?
2. Что такое операторы безусловного и услов-
ного переходов?
3. Как кодируется выбор действий на Бейсике
в общем случае?
4. Как на Бейсике записываются отрицания
условий?
§ 29 Повторение дей т^ий в Бейсике
Составление программ на Бейсике по циклическим алго-
ритмам опирается на ряд простых правил. Соблюдение этих
правил позволяет составлять легко понимаемые програм-
мы, а нарушение их приводит к появлению запутанных
программ, которые невозможно ни понять, ни отладить.
Изложение правил начнем с разбора программы вы-
вода "звездного неба" из п случайных точек.
its
10
20
30
звездное
INPUT"звезд
’графика
нево
=“;N
график/? . , f Т I [_
ХП1 =25\5;УГП -'Г?1, СП7-3
от tr=-f ^о п цик/?
х-хт случайное(о, 2)
у :-ут случайное /о,/}
С-=ст СЛУЧАЙНОЕ j&fa)
точки fa, У), с ’I I
I Г I I i t
кон ; т1 I ' ~
40 XM=255:YM=191
j/50 FOR K=1 TO N
। 60 X=XM*RND(1)
। 70 Y=YMMRND(1)
I 80 C=CN*RND(1)
I 90 PSET(X,Y),C
*—100 NEXT К
110 END
SCM=3
КОДИРОВАТЬ ЦИКЛА
CO СЧЕТЧИКОМ
Приведенная программа формирует картинку из п слу-
чайных точек. Количество точек указывает человек, от-
вечая на вопрос "звезд = ?", который выведет 30 й опера
тор программы. Далее ЭВМ фиксирует число тачек по гори
зонтали х,„ = 255, по вертикали у,л=191 и количество
цветов с,„ = 3. Зная характеристики своих ЭВМ, вы должны
изменить эти значения так, чтобы звездное небо заняло весь
экран и звезды были бы всех возможных цветов.
Для повторения действий заданное число раз в языке
Бейсик существует оператор FOR. Такой оператор мы видим
в 50-й строке. В данной программе он означает, что опера
торы 60, 70. 80 и 90, вплоть до оператора NEXT в 100-й
строке, будут выполняться п раз при изменении k от 1 до п
Это означает, что п раз (с помощью датчика случайных
чисел) будут вычислены координаты х. у и цвет с точки
на экране и она будет выведена на экран 100 м оператором.
В общем случае повторение действий заданное число
раз в Бейсике кодируется по следующей схеме:
Повторение:
ОТ <£> = (/) до (и) цикл
(действия)
к цикл
Бейсик
Г—> 100 FOR <к>=<1> то <П>
I ... <действия>
*— 180 NEXT <k>
Здесь (/г) —некоторая числовая переменная, а (/) и(п) —
числа или формулы, выражающие начальное и конечное
значения переменной (fe). Действия в такого вида циклах
повторяются п — /+1 раз для значений fe = /./+1,/+2. «
Конструкции повторения действий с проверкой условия
пока в языке Бейсик кодируются с использованием опера
торов условного и безусловного перехода. Изучение правил
Иб
можно начать с проверки на ЭВМ программы, реа шзую-
щей алгоритм игры "Угадай-ка"
/ИГ 'ИГ4 -УфД/ЦГ -ХИ "
X —C/iywWHOE /'/„/OOj
УГАДАЙ НИКЛО 1
&/?/&сд ОГ г ДО КРО |
ЗАПРОС ЧИСАО = Р
.7СХГ Р Р X ЦПХГ
ЕСПП Р > X ИО
зьгсд
ХЕСрр
ЕС Г Г Р < X /ПС'.
ЕЬ/ЕОД I X# У~|
КЕСЛИ
ЗАПРОС \р//с /!с^ | ,Р
КЦИК/1 ______________
зыесд Г^и 1рд£ц„ V/»ffA4d/\
хон
10 ’игра:угадай-ка
20 DEFINT Х.Р ’-целые
30 X = 99 X RND(l) + 1
40 PRINT"угадай число"
50 F'RINT"ot 1 до 100"
60 INPUT"число="; Р
г>70 IF NOT ХОР GOTO 120-i
80 IF Р > X THEN
PRINT"много"
90 IF Р < X THEN
PRINT"мало"
100 TNPUT"4ncno=";P
L110 GOTO 70
120 ’кцикл —
130 PRINT“Monofleu,умница *"
140 END
Прежде всего отметим, что привеченная программа на
пишется с оператора DI'I ’АГ Р, X. Этот оператор етнача
ет, что переменные X и Р в качестве значений будут при
нимагь не вещественные, а целые числа. Далее, в операто-
ре 30, с помощью датчика случайных чисел ЭВМ "зага-
дывает" некоторое вещественное число, умножает его на 99,
прибавляет к нему 1 и запоминает в переменной X отбро-
сив дробную часть.
Затем ЭВМ начинает диалог, спрашивая у человека
число-ответ и отвечая ‘ мало" иди "много" до тех пою.
пока он не угадает задуманное машиной число Ввод и про-
верку этой программы также полезно проводить по частям
Первыми следует ввести и проверить операторы 20, 30, 40
и 50, которые фиксируют случайное число и начинают
диалог. Далее нужно ввести операторы 60. 80 и 90— ввода
и анализа ответов. Запуская только эту часть программы,
уже можно начать игру-эксперимент с ЭВМ.
Вариант игры становится полным после ввода операторов
100, 110, 70, 120 и 130—повторного запроса чисел, пере-
хода к началу цикла, анализа совпадения чисел, выхода
из цикла и "поздравления с победой". Именно эти опера-
торы 70, НО и 120 организуют цикл в повторениях дей-
ствий вычислительной машины.
117
Общий принцип кодирования циклов такого типа с повто
рением действий пока на языке Бейсик можно изобразить
следующей схемой:
пока (условие) ци (действия) кцикл кл f у 1 200 290 300 IF NOT Кусловие» THEN <операторы> GOTO 200 * кцикл < — — GOTO 300 1 1
ПРАВИЛА КОДИРО- ВАНИЯ Правила кодирования:
а) СЛОВО пока заменяется на слова IF NOT, а слово
ЦИКЛ — на оператор перехода на последний оператор цикла;
б) перед последним оператором цикла ставится опера-
тор перехода к началу цикла.
Примечание. Вместо записи NOT ((условие)) при орга-
низации цикла можно записывать отрицание этого условия,
выраженное на языке Бейсик. В приведенном примере опе-
ратор
70 IF NOT ХОР THEN GOTO 110
может быть заменен на равносильный ему оператор
70 IF X “ Р THEN GOTO 110.
вопросы С2'1' 1
упражнения ?ч
задания
/ 1. Как на Бейсике кодируется цикл со счет-
чиком?
2. Как изменяется значение счетчика цикла?
3. Как на Бейсике кодируется пока-цикл?
» 1. Составьте алгоритмы и программы форми-
рования изображений из случайных:
а) отрезков; б) рамок;
в) окружностей; г) кругов.
2. Модифицируйте алгоритм и программу игры
"Угадай-ка" так, чтобы можно было сыграть
с ЭВМ несколько раз.
1. Введите и отгладьте программу вывода звезд-
ного неба по приведенному плану ввода и
испытаний.
2. Составьте план ввода и испытаний програм-
мы формирования изображений с выбранными
графическими элементами. Введите по этому
плану свою программу в ЭВМ и проведите
эксперименты.
3. Введите и отладьте на ЭВМ программу игры
"Угадай-ка" по приведенному плану вводе и
испытаний.
4. Составьте план ввода и испытаний модифи-
цированной программы игры "Угадай-ка" и про-
ведите ее отладку на ЭВМ.
ПОДПРОГРАММЫ
§ 30. Организация подпрограмм на Бейсике
Подпрограммы в языках программирования служат для
реализации вспомогательных алгоритмов. Использование
подпрограмм необходимо при создании больших и сложных
118
программ для тою, чтобы упростить их чтение, понимание
и внесение изменений.
В качестве примера программы использования под
программ рассмотрим задачу рисования графиков функ-
ций на экране ЭВМ.
Задача построения графика функции у — [(х) на экране
ЭВМ предполагает расчет и вывод последовательности точек
с координатами (v*. щ). где х*=Дс*). Расчет должен про-
изводиться на некотором заданном отрезке [u. ft] с шагом
ft = (ft — а'/п между точками, где п. — это заданное число
разбиений.
В качестве конкретного начального примера рассмотрим
построение на экране ЭВМ графика функции ц-=х'.
При построении графиков на экране ЭВМ необходимо
учитывать, что система координат, используемая в языке
Бейсик, не совпадает с обычной системой координат, изучае-
мой в математике. Поэтому в алгоритме вывода изображения
графика необходим пересчет координат из нашей обычной
системы (Уху в систему координат Ouv экрана ЭВМ по сле-
дующим формулам:
и = (л- — а) • и,„/(Ь — а},
u = (d—y)-vm/(d — c),
где и,„—размер экрана по горизонтали, a v„, — размер по
вертикали. Величина и,„/{Ь — а) в этих формулах -это число
точек на отрезке [a, ft|, a o,„/(d — с) — это число точек на
отрезке [с, rf|.
и»
Представленные ниже алгоритм и программа состоят
из трех частей: первая часть строит график на экране, вто-
рая вычисляет значения функций, третья организует’ввод
данных - параметров графика (области определения [a, fe],
числа разбиений п и области значений функций [с, т/J)
1
- 1 -1 L j
1 - J r±
ГРХФЕХЕ г
U/77 =\255> wn . = /$?/
г 1
h =(Ь-ц)/п
ОХ Е=СЖП Ljpx/I х -а+ х • Л .
ВЬХШСЛЕШЕ V=fYx) 1 • p/p/fb-q, ¥=Ус/-Х) - Om/E-J-r )
ЪЕ/?ЕЫЗ
10 ’ графики функций
20 GOSUB 400 * ввод данных
30 С1=2 ’цвет графика
40 * графика
50 UM=255:VM=191’размеры
рана
60 Н=(В-A)/N
70 FOR К=0 ТО N
80 Х=А+НХК
90 GOSUB 200 ’y=f(x)
100 и=(Х-А)ЖиМ/(В-А)
110 V=(D-Y)XVM/(D-C>
120 PSET(U,V),C1
130 NEXT К
140 END
Основная часть алгоритма и программы, как видно из их
описаний, организуют ввод данных, а затем осуществляют
в цикле от k — О до п вычисление координат точек графика
некоторой функции y — j(x) и вывод их на экран. Конкретный
вид функции в этой части программы и алгоритма не опре-
деляется. Описание способа вычисления значений функции
выделяется во вспомогательный алгоритм. В программе на
Бейсике появляется соответствующая подпрограмма:
ХРГ £>О/¥ИСЛЕХИЕ
ЕРГ X ВЕЩ
РЕЗ У ВЕЩ
У ~ X1
ХОР-
200 ’вычисление функции
210 Y = X X X
230 RETURN
В данном примере строится график функции у = х На эк-
ране ЭВМ мы должны увидеть фрагмент параболы. Какая
именно часть параболы появится на экране, зависит от
исходных данных, вво i которых выделен в отдельный вспомо-
гательный алгоритм и соответствующую подпрограмму.
120
АГ qtyfCT l .
f£3 &£U z4 4^
g~~bb£>041 r -7]
ЗАПРОС I CASCOx] f /2.
ЗАПРОС \ С ПРАВА :t>^\ r, b
400 ввод данных
410 а" PRINT "параметры график
420 INPUT"слева:а=";А
430 INPUT"справа:Ь=";В
440 INPUT." снизу: с=" ; С
450 INPUT"cBepxy:d="; D
460 INPUT“n=”;N
470 RETURN
.w/w
ЗАПРОС \С&£РХУ
“1
ЭВМ. как видно из этого алгоритма, запросит числа
а, b - концы отрезка [а. Ь|. с и d - нижние и верхние гра-
ницы области значения функции, а также п число точек
графика, которые ЭВМ нарисует на экране. Для рассмотри
ния графика функции на другом отрезке или получения на
графике большего числа точек необходим запуск программы
с новыми исходными данными.
Главная особенность этого алгоритма — возможность его
применения для построения графиков любых функций в лю-
бой части их области определения. Выделение вычисления
значений функции в отдельную подпрограмму значительно
упрощает замену функц.ш. Для построения графика любой
другой функции, например y=rsiiiA. необходимо будет за-
менить подпрограмму вычисления функции на новую:
-|-4 Ц-4—I—Д_L.I—Г-д- ]-Д- I 1 -L
200 ’ вычисление функции
210 Y=X*SIN(X)
220 RETURN
-ГЦ-
Лап
rfmfm
Вызов подпрограмм в языке Бейсик реализуется опера- вызов подпро
тс.™.. Е сссгп / \ ГРАММ В БЕЙСИКЕ
тором GOSUB (номер),
где (номер) указывает начало подпрограммы. Например,
оператор GOSUB 200 означает переход к подпрограмме,
начинающейся с 200-го оператора.
Правила выполнения подпрограмм можно проиллюстри-
ровать следующей схемой:
50................ ।--------> 200 * подпрограмма
60 GOSUB 200 ----• .................
70 <оператор> <------------- 2S0 RETURN
121
ОПЕРАТОР GOSUB
'РЕДлЧА ПАРАМЕТ-
РОВ
Выполнение оператора GOSUB состоит в переходе к вы-
полнению первого оператора подпрограммы, а по ее завер-
шении оператор RETURN осуществляет переход к выпот-
нению оператора, следующего за оператором GOSLB
в основной программе.
Описание подпрограммы должно начинаться с ее назва-
ния — названия решаемой подзадачи или реализуемой функ-
ции. Концом подпрограммы в Бейсике должен быть one >а
тор возврата из подпрограммы RETURN (RETURN___________
возврат).
Аргументы и результаты вспомогательных алгоритмов
в подпрограммах называются параметрами. Передачу пара-
метров-аргументов вспомогательных алгоритмов в под-
программах на Бейсике оформляют в следующем виде
100 Х1=А:Х2=В
110 GOSUB 600:’подзадача
где xl. л/ аргументы вспомогательного алгоритма. Ана
логично на языке Бейсик приходится оформлять и передачу
результатов выполнения вспомогательных алгоритмов, если
таковые есть.
Примером составления и использования подпрограмм
с выделенными параметрами-аргументами могут служить
программы построения изображений зданий. В этих про-
граммах и алгоритмах вспомогательные алгоритмы и под-
программы вычерчивают на экране отдельные блоки —
стены, окна, двери, крыши и т. п. Роль параметров-аргу-
ментов в этих подпрограммах и вспомогательных алгорит-
мах играют геометрические размеры этих блоков.
Изображение двухэтажного дома на экране ЭВМ в соот-
ветствии с ранее составленным алгоритмом построит сле-
дующая программа на Бейсике:
Д7Л “ДЬ УХЭМЯШ/сХ# ДО/Я*
НМ
,1 =60, /У/ - =5*
^7_б=Д ДО Ъ дпсд
сивм с y=ff-fr
L ^^,С=3£Д£М/4)
смет :%,
L =L/r С =^£Д£ХМ^
Г.РЬ/ШЦ'Х^, y=Hf,£=5 Zr,
бон I
10 ’двухэтажный дом
20 ’ графика
30 L1=60:H1=50:01=3:02=4
40 FOR К=1 ТО 3
50 X=KXL1:Y=H1:L=L1:H=H1:
С=С1
60 GOSUB 200’стена с окном
70 X=KXL1:Y=2XH1:L=L1:H=H1:
С=С1
80 GOSUB 200’стена с окном
90 NEXT К
100 X=L1:Y=H1:L=3XL1:H=H1:C=C2
110 GOSUB 400’крыша
120 END
122
Для выполнения этой программы необходимы две под-
программы. Первая из них рисует в заданном месте изобра-
жение стены с окном заданных размеров, а вторая —
изображение крыши заданного размера в заданном месте:
. I-I / 4— 1- • » : 1 । । 1
w а жмз/м"
Х,У,£,/? :£>£Щ,С: ЦЫ
fc У)-(х+ Ь'У+/1), С
РЫ1М(Х+5 -L/b, » Л/ 72
J- (х+4-ъ/б. y+h/2)fc
КОР
200 ’ стена с окном
210 ’арг: >;,у,1,Ь:вещ
220 ’ с - цвет
230 LINE(X,Y)-<X+L,Y+H),С,В
240 LINE(X+3XL/5,Y+H/4)-(Х+
4XL/5,Y+H/2),С,В
250 RETURN
/ИГ "УРЬ/Ц/Р'' Д00
, X, У, L, /1 &££(, С Ц£/1 410
ЦРУ 420
WHXX fr,y)-(x+/j, у), С 430
ХИМХ (Х,У}-(Х+Ц/2..У-/'О1 С 440
кцеих'хг 4 /2, y-h)-'x+p, у), с 450
460
’крыша
’арг: X,Y,L,H:Bew
’С - цвет крыши
LINE (X, Y) — (X+L,Y),С
LINECX, Y> —(X+L/2,Y-H),С
LINE(X+L/2,Y—Н)—IX+L,Y),С
RETURN
Работе с этой программой на ЭВМ можно начать с по-
строения изображения крыши. Для этого необходимо ввести
операторы 30, 100, 110 и 120 — вызовы подпрограммы ри-
сования крыши с соответствующими координатами, которые
задаются в подпрограмме параметрами, и операторы
400—460 — операторы самой подпрограммы.
Далее можно ввести подпрограмму рисования стены с
окном операторы 200- -250 — и операторы вызова этой
подпрограммы 50 и 60, а также часть ойератора 40 в таком
виде: 40 К = 1 - Затем после ввода и отладки обеих под-
программ можно ввести полный вариант построения двух-
этажного дома целиком. Для этого осталось ввести опе-
раторы 40, 70, 80 и 90.
Добавляя к этой программе новые подпрограммы ри
сования других блоков или перестраивая главную программу,
можно получать на экране ЭВМ изображения разнообраз-
ных домов, улиц и даже целых поселков. Существенным
при этом является использование уже имеющихся вспомо-
гатезьных алгоритмов и подпрограмм. В то же время,
усовершенствуя вспомогательные алгоритмы и подпрограм-
мы можно получать более красивые изображения и искать
гармонию между отдельными частями здания и компози-
цией в целом
123
вопросы
упражнения
задания
I 1. Составьте вспомогательный алгоритм и под-
программу на языке Бейсик для вычисления
функции:
( х при х>0, g. ______I sin х при xS>0,
(О при х^СО; У 10 при х<0;
sin х
, f хг при х>0. ~ ПРИ Xifc0'
в) у= < г) у—
1“ Х при х<0; 7 1 при х=0;
д) у — х cos х; е) у—sin х sin 10х.
2- Составьте программу на Бейсике для пост-
роения;
а) трех домиков; 6) трехсекционного
дома;
в) пятиэтажной ба ши и; г) трехэтажного дома.
Как на Бейсике записывается вызов под-
про грамм?
2. Как в языке Бейсик оформляются подпро-
граммы?
3. Каков механизм выполнения подпрограмм
в языке Бейсик?
4. Как на Бейсике оформляется передача пара-
метров-аргументов?
Ч 1. Составьте план ввода и испытаний програм-
мы рисования графика функции. Введите и
отладьте программу по составленному плану.
Проведите исследование функции — найдите по
графику корни функции или ее максимумы и
минимумы,
2. Составьте план ввода и испытаний програм-
мы построения изображения выбранного зда-
ния. Введите и отладьте составленную про-
грамму по выбранному плану.
т 31. Переменные и массивы в Бейсике
Одним из основных направлений использования ЭВМ
является накопление и обработка данных — различных
таблиц, справочников, словарей и другой информации,
большую часть которой занимают не столько числовые,
сколько символьные данные.
В Бейсике для обработки и хранения символьной ин-
формации используются символьные переменные и массивы.
Все переменные и массивы в Бейсике принадлежат к одному
типы переменных и из трех основных типов:
МАССИВОВ
а) вещественные;
б) целочисленные;
в) символьные
Если в программе на языке Бейсик нет описаний типов
переменных и массивов, то все они считаются веществен-
ными.
Для выделения целочисленных переменных в начале про-
опер* гра.м мы должен быть записан оператор DF Г 1\Т. Например.
оператор DEFINT
Данныи оператор объявляет, что веч переменные и массВвы,
начинающие! я с букв I, J. К. I., будут принимать целочисл
И1,н значения
124
Второй способ получения в языке Бейсик переменных и
массивов с целочисленным" значениями приписывание
к имени символа процента % Примеры: \%, К % »то
имена целочисленных переменных
Для выделения символьных переменных и массивов в
программах на Бейсике можно использовать оператор
1)1 hS R Пример- defstp s>pa
ОПЕРАТОР OfcCXIH
Этот оператор объявляет, что у всех переменных и массивов,
смена которых начинаются с букв S, ’’ ц значениями
бу тут символьные- строки
Другой способ описания переменных и массивов с сих
вольными значениями cociohi в приписывании к их именам
символа «.солнышко»: С1, а тля импортных ЭВМ знака
цоллпра: $ Примеры: < V5. SI Q «го символьные пере-
менные.
Значениями символьных переменных в Бейсике могут
быть комбинации любых символов, имеющиеся В машинном
алфавите, длиной не более 255 знаков.
Примеры команд пат симво.шнымп переменными
СИМВОЛЬНЫЕ ПЕРЕ
Коман ты:
МЙ="Оля“
7 "Привет,";NO
(\ цльтаты
Основными операциями над символьными данными яв
тяготея сцепление слов и выделение поде юв Эгп две опе-
рации позволяют образовывать новые слова н вы тс 1ягь
от тельные буквы и части слов
Сцепление слов в Бейсике обошачается знаком «4-. .
Пример сцепления: "про" + "грамм""а" результатом
этого сцепления будет слово «программа». Проверим на
ЭВМ
СЦЕПЛЕНИЕ СЛОВ
Команда:
Ре илы ат
? "про”+"грани”+"а"
программа
Для вы течения подслов в Бейсике предусмотрена спе-
циальная функция MID O(SQ. К, L). где SQ - символь
пая переменная или элемент символьного маесива. Здесь К
начало. I длина выселяемой части слова. Пример вы
Деления подслова:
ВЫДТЛГНИ1 подслое
125
? MID» ( "информатика" , 3,5) ^1
Результатом будет слово "форма", ко-орое со гержнт 5 сим-
волов и входит в слово "информатика' , начиная с 3-й
буквы.
Рассмотрите на ->ВМ резхльтаты выполнения команд.
Команды: Результаты:
АВ=“мяч ”
В»="катитея “ 4J
? АВ-*-В» мяч катится
? ВВ+АВ 4J катится мяч
DB="электростанция"
? MID» CDS, 6, 4)<J рост
? MID» (Dfi, 8, 4) стан
? MIDBCDB, 2, 3)-«-MID» (DB, 12, 3)4> Лекция
СПИСАНИЕ МАССИВА
Массивы в языке Бейсик описываются с помощью спе-
циального оператора DIM оператора описания размер
ности (ОШ — сокращение от слова DIMF\SION — раз-
мерность) .
Примеры описания одномерного и твумерного массивов:
Описание:
DIM V(10)
пл/М я mt?:1 Н
DIM XY(2,12)
О 1 2 I , . , . ; . * 12
I
В этих описаниях в скобках указываются верхние границы
массивов. Отметим, что в Бейсике отсчет индексов начи-
нается с 0. В качестве размеров массивов язык Бейсик
разрешает указывать не только константы - 10, 20, 30 и т. п.,
но и переменные — Х! Ми т. д. Но переменные, используемые
з описаниях массивов, должны получать конкретные зна-
126
чения чо выполнения оператора DIM Пример описания
массива с переменными размерами:
\ - 4:М =3:D1M А М)
В качестве простейшего примера применения массивов
рассмотрим программу формирования и печати таблицы
множения:
таблица умножения
20 DIM ТУ. (9,9)
30 FOR К=1 ТО 9
40 FOR 1_=1 ТО 9
50 T7.(K,L)=KML
60 PRINT T7.(K,L);
70 NEXT L
80 PRINT
90 NEXT К
100 END
МГ УЙМЖЕШЬГ
Щ 9,^9J
9
г Ф X £ !
A -
L. . L L
ШЩ T -L. . 4 i Q .
Ж J
ЯЯЯ1 НЯ
Главную роль в этой программе играет 20 й оператор,
в котором описывается твумерный массив Г [0:4 ():Ч|.
В этом массиве могут храниться 100 ц«вых чисел. Заполнение
элементов этого массива и вывод их на экран в форме таб
лицы умножения проводятся в этой программе парой вло-
женных циклов.
Внутренний цикл по L от 1 до 9 формирует и выводил
на экран строки таблицы умножения. Знак точки с запятой
в операторе PR1XT Т% (К. L); означает, что следующее чис-
ло будет выводиться на той же строке экрана. Оператор
PRIXT без аргументов означает перевод курсора на новую
строку экрана. Тем самым подготавливается вывод следую-
щей строки таблицы умножения, который осуществляется
внешним циклом по К от 1 до 9.
Массивы в программах используются для организации и
обработки различных таблиц и других совокупностей дан-
ных. Рассмотрим в качестве примера алгоритм и программу
анализа успеваемости в классе.
Для этой задачи данные об успеваемости в машинной
памяти могут быть представлены двумя массивами. Фа-
милии учеников могут быть помещены в массив символьной
информации фам[1:30] :симв, а оценки учеников, например,
по трем предметам—в двумерный массив оц[1:25, 1:3[
с целочисленными данными. Описания этих массивов в Бей-
сике будут такими:
N=30s М=3: DIM FMK(N), ОСУ. (N.M)
127
Размещение этих массивов в памяти ЭВМ можно поел
ставить таким рисунком. 1 л
Память:
ОПЕРАТОР DATA
Заполнение массивов осуществляется либо вводом дан-
ных с клавиатуры, либо путем их заблаговременной записи
в память ЭВМ. В программах на Бейсике таблицы и другие
совокупности данных могут записываться в тексте программ
с помощью операторов описания данных.
Рассмотрим пример описания данных в программе на Бей-
сике для нашей задачи со следующими конкретными дан-
ными:
ХРЬ/ДОЗ, 5, 5, S
РУД4РО&, 4,5,5
Р&/ШО& , 5, Ъ, Ъ
POP
1000 ’ данные
об успеваемости
1010 DATA Крылов,5,5,5
1020 DATA Рудаков,4,5,5
1030 DATA Иванов,3,3,3
1040 DATA К,0,0,0
ОПЕРА Г
В этом примере первые три оператора DATA описывают
первые три строки таблицы успеваемости- Далее можно
будет добавить любое число новых строк. Последний опе-
ратор с номером 1040 служит признаком конца табличных
данных. В каждой строке операторов DATA через запятые
перечисляется некоторая последовательность числовых и
символьных значений. В приведенном примере в каждой
строке должны указываться фамилии и три числа — три
оценки ученика.
Обработка этих последовательностей данных в програм-
мах на Бейсике проводится с помощью операторов READ.
Эго операторы' последовательного чтения данных, записан-
ных в программе в операторах DATA. В нашем конкретном
примере чтение данных об учениках можно проводить опе-
ратором
READ F0,01%,02%.037. читать (фам, ol, о2, оЗ)
128
Выполнение »гого онера гора приведет к тому, что в пере
мениую Fj3 будет ишисана фамилия "Крылов", а в перемен-
ные 61%, 02% и 03% будут записаны пятерки. Для чт-еюия
следующей, второй строки данных оператор READ, должен
быть выполнен повторно. Для считывания третьей строки
данных - в третий раз и т. д.
Таким образом, обработку таблиц и совокупностей дан-
ных приходится выполнять в циклах. Рассмотрим типичный
алгоритм последовательной тбработки данных алгоритм и
программу на Бейсике, решающие задачу выделения уче-
ников, имеющих хотя бы одну пятерку.
к^гх'М^ййк^' с
ДРГ\~ ~
Г 7 3, ~ЦЕ/Г\г'
£>£>/£> ОД УОЙИЕЕКИ ЙфЕтРУГ
77'= Л I i I । । О
~| I ЕСЛИО^5\
1 7ДИ 05 = 5 /ПО
~П~\ &Ь/ЬСД
Г7. .•= 1. а.К'Х
1_I ' " '"tT7. I
~Х7кесли I I
+---А------1-
Ёцйкл Г ‘____
. ЕСЛИ h W 11
~г>ые>бд ник/тю\
‘'ОК I
КЕСЛИ
10 ’ ученики с пятеркам
20 N=30:DIM FM$(N)
30 DIM OC4(N,3)
40 PRINT"пятерки имеют:"
50 L=0
60 READ F$, 014, 024, 037.
70 IF Ft = ••*• THEN
GOTO 140
80 IF 017.05 AND 027.05
AND 037.05 THEN GOTO 11Й
90 PRINT Ft; 017.; 024; 037.
100 L=L+1
110 * кесли
120 READ Ft,014,024,034
130 GOTO 70
140 ’кцикл
150 IF L=0 THEN
PRINT “никто"
160 END
Д 1я решения п дальнейшем и других
1000
1010
1500
данные
об успеваемости
DATA . . . память:
DATA *,0,0,0
задач обработки
Данных об успева! мости в данную программу вставлены два
массива, массив фами ,ий и массив оценок. Д 1я описания
ратмера 9тих массивов используется переменная п 30,
шачение которой при необходимости может быть и тменено.
Рассмотрим линку работы этой про» роммы. Чтение дан-
ных об успева» in проводится в 60-м и 120-м операторах.
А СИЯВ
%
sh
ШИ
6 1ая ггм В А Кай-ики
129
В 60-м операторе считывается первая строка таблицы. Далее
в 70-м операторе проверяется, не достигнута ли последняя
строка таблицы. Если это не так, то анализируются про
читанные оценки ученика. Обратите внимание: в алгоритме
записано условие "о!=5 или о2=5 или оЗ=5", а в про-
грамме закодировано его отрицание "о!^=5 и о2=#5 и
оЗт^5".
Цикл чтения и обработки данных прекращается, как
только в переменной окажется знак * После этого
будет проведен анализ числа выявленных учеников, и если
ни у кого не окажется пятерок, то ЭВМ выведет соответ-
ствующее сообщение.
Работу с данной программой на ЭВМ лучше всего на-
чать с ввода операторов 50 и 150 для вывода сообщений.
Далее можно по частям проверить средства описания и чте-
ния таблицы. Прежде всего ввести оператор 1010 со своей
фамилией и последними оценками по физике, математике
и информатике. Затем ввести оператор 60 — чтение этой
строки данных и операторы 90, 50, 100 — вывод на экран
введенных данных и подсчета числа выведенных фамилий.
После этого можно дать команду на выполнение введенной
Иаковы пр«нмущ«стм
таком последователь-
ности ввода и испы-
таний этой программы!
части программы.
После проверки этих операторов необходимо ввести опе-
раторы 80 и ПО — операторы анализа данных и точку соот-
ветствующего перехода. Затем ввести вторую и конечную
строки таблицы — операторы 1020 и 1500, операторы 120,
130 и 70 — ввода следующей строки данных, переход к на-
чалу цикла и анализ конца введенных данных. Теперь
введенная часть программы уже может ввести любую таб-
лицу с данными и выделить всех учеников, имеющих
пятерки.
После проверки этой части програм.иы в нее осталось
ввести ее конец — оператор 160, заголовок — оператор 10,
описания массивов — операторы 20 и 30 — и ввести осталь-
ные данные об успеваемости. Теперь можно с проверками
добавлять новые и новые строки таблицы данных об успе-
ваемости вплоть до завершения ввода и получения оконча-
тельного результата.
вопросы
упражнения
задания
1 Получите не ЭВМ с помощью операций
сцепления и выделения подслов новые слова
из слова.
а) электрификация; 6) индустриализация;
•) компьютеризация; г) информатизация.
1 Введите и отладьте иа ЭВМ программу фор-
мирования выбранной таблицы чисел.
1. Какие операции над словами можно прово-
дить в Бейсике?
2. Какова длина символьных строк в Бейсике-
3. Как п программах на Бейсике описываются
символьные данные?
4 Как в программах но Бейсике описываются
массивы?
5. Как в программах иа Бейсике организуются
таблицы?
6, Как считываются данные из операторов
DATA?
130
3. Составьте таблицу успеваемости в своем I
классе по выбранным трем предметам и под-
готовьте план ввода и испытаний своей про-
граммы. Введите и испытайте программу на
ЭВМ в соответствии со своим планом. По
завершении отладки введите пробную часть
составленной таблицы успеваемости н после
этого введите всю таблицу.
4. Составьте алгоритм и программу выбора уче-
ников, имеющих только пятерки и четверки.
5- Составьте алгоритм и программу выбора
лиц, имеющих только положительные оценки.
1. Подберите слова,
из частей слова;
а) электрификация;
в) компьютеризация;
2. Составьте алгоритм и
вания таблицы
а) сложения чисел;
в) деления чисел на-
цело;
3. Составьте алгоритм
всех
ваемости.
которые можно получить
б) индустриализация;
г) информатизация,
программу формиро-
6) вычитания чисел;
г) модуля разности
чисел.
и программу выбора
отличников по заданной таблице успв-
§ 32. Диалоговые программы
Одним из назначений языка Бейсик является создание
простейших диалоговых программ для персональных ЭВМ:
моделирх ющих и обучающих программ, диалоговых справоч-
ников, игр и т п По существу. язык Бейсик позволяет
получать на персональных ЭВМ все многообразие функций и
форм пре юставления информации, имеющееся в этих маши
нах.
Выбор вариантов функций и других возможностей в диа-
логовых программах обычно организуется в форме меню.
Примером использования меню в opi анизации щалога че-
ловека с ЭВМ служит следующая программа построения
случайных точек.
абстрактных картинок из всевозможных
отрезков и рамок:
7SZ. ' -I. ' I ! T"1"
W&Q4 I Z >3 .Ж?ЧЕК \ --------------
>004, 2 ------
ъь.£,с# po. vor j J—---------------
I -------
А4ПРС1С 1 47-----
'>'!=• Z WO
рйсуооо: г/з>
~ ~ j—j---
EC/1p( l/= 2 /ИО. l—l—1—I -,-
рз омо^зоол
т~ Г-1
^3 № । 1 1
РИСУНОК #3 м/кор
10 ’ абстрактная живопись
20 РР1ИТ"аБстрактные картинки"
30 PRINT”!. Из точек"
40 F'RINT"2. Из отрезков"
50 PRINT"3. Из рамок"
100 INPUT "Ваш вывор:":V
110 1ИриТ"элементов=";И
120 ’графика
130 IF V=1 THEN
GOSUB 200’из точек
140 IF V=2 THEN
GOSUB 400’из отрезков
150 IF V=3 THEN
GOSUB £00’из рамок
190 END
131
6*
Построение отдельных картинок должно осущеетвлян.ся
нс.юмогаге.п ными алгоритмами и соответствующими иол
программами, начинающимися с померон 200 100 п fjfM)
Пример алгоритма построения картинок из случайных
точек "звездное небо" приводился раньше. Поэтому псы
приведены только алгоритм и подпрограмма рисования
картинки из случайных отрезков:
L хт zss, ут *491.________L
QQL ДО т Ц/К77
—Ь.,Х =ЛСт СЛУЧЕШОЕ (O,1j
У ~ УУП ОЛУУЛр/ЕОЕ (о, 1/
K-f =/rr> СЛУЧНОЕ (о,1)
Yl;= УП)С/1УЧЛЧНОЕ(О, 1)
с - -ст слученное(о, 1)
QfflPEZOK)f C
ЕЦИКЛ _ I
..............H . .
400 ’ рисунок из отрезков
410 ’п-число отрезков
420 СМ=15
430 ХМ=255:¥М=191
440 FOP К=1 ТО N
450 X=XMMRNP(1)
460 Y=YMXRND(1)
470 X 1 = XF1XF;NE (1)
480 Y1=¥IW(ND(1)
4°й C=CM¥F;ND (1)
500 LINE(X.Y)-(X1.Y1).C
510 NEXT Г
520 RETURN
OTIFOC НАЖАТОЙ
КЛАВИШИ — IMKEV1
КОД СИМВОЛА —
ASC 1CJ
СНВ ЦК}—символе
УКАЗАННЫМ КОДОМ
Представленный алгоритм и программу легко расширить,
добавляя новые вспомогательные алгоритмы и подпрограм-
мы для рисования новых картинок. При этом нужно добавить
новые строки в меню и в соответствующие операторы вывода
сообщений и выбора подпрограмм.
В создании диалоговых программ важен также подбор
наиболее простых правил и команд управления работой ЭВМ.
В наиболее удачных программах команды управления пред-
ставляются отдельными символами или знаками, имеющи-
мися на клавиатуре.
С этой целью в язык Бейсик включены три простые
функции. Первая из них функция опроса клавиш, нажа-
тых на клавиатуре Эта функция в языке Бейсик обозна-
чается словом INKF.YS. Вторая функция определяет код
символов ASC Аргументом этой функции может быть
символ или символьная переменная, а значением числовой
код этого символа в ЭВМ. Третья функция CHRff(K)
обратная к функции ASC Аргументом функции может быть
любое число от 0 до 255, а значением символ, который
имеет заданный код. -ао-м
Д |Я вывода на экран всех символов, имеющихся в .
можно воспользоваться следующим алгоритмом и cootikt
ствующей программой иа Бейсике:
132
10 * навор символов ЭВМ
20 FOR К=1 ТО 255
30 PRINTCHRt(К)
40 NEXT К
~i0 END
Для определения кодон отдельных клавиш непосред-
ственно на ЭВМ можно воспользоваться следующей диало-
говой пршраммой:
If?
t ,-------3__
£>Ь/&СМ |;л-4205/ Г/И0М&; I
' L__'* л . I i i fit
С ;
d
E
К£С/Ш
30
40
50
60
70
80
90
колы клавиш
РР1МТ"коды клавиш:
Ct = ""
IF Ct = "s" THEN GOTO 80
Ct = INKEYt
IF Ct <> THEN
PRINT 0SC(C$);C$
GOTO 40
’кцикл
END
П/Л^ть:
- Гн ИЛ1В
1ЙГХГТТТтТТЛ
командой за-
Отметим, что в приведенном алгоритме
вершения работы с программой служит нажатие клавиши s,
поскольку цикл опроса клавиш продолжается до тех пор,
пока не нажата клавиша s
Указанные три функции позволяют в диалоговых алго-
ритмах и программах рассматривать как команду нажатие
любой клавиши на клавиатуре ЭВМ.
Простейшим примером такой диалоговой программы мо-
жет служить реализация алгоритма рисования линий, рас-
133
КЕСУЩ
УЕСУШ.
ЕСЖ С
У/77
и-г—
EEty 'сй f
<£22*
ёсм С-'Я
КЕС/77Г
ЕЦШСУ! |
10 ’ черчение линий
20 Z=3 ’графика
30 ХМ=255:YM=19i
40 Х=ХМ/2
50 Y=YM/2
60 С$="“
70 IF C*=“s" THEN GOTO 190
80 PSET(X,Y>.Z
90 C*=INKEY$
100 IF С$=“л" THFN
X=X-1
110 IF C$="n" THEN
X=X+1
120 IF C$="e" THEN
Y=Y-i
130 IF C*="h" THEN
Y=Y+1
180 GOTO 70
190 ’кцикл
200 END
В этой программе специально пропущены номера с НО
до 170 для возможного добавления новых команд, которые
могут быть введены в программу.
вопросы
упражнения Р’
задания UL1
С, 1. Проведите отладку на ЭВМ
"абстрактная живопись".
2. Проведите отладку иа
"черчение линий".
3. Составьте программу проверки знания ариф-
метических действий на языке Бейсик и про-
ведите отладку программы на ЭВМ.
4. Напишите по составленному алгоритму про-
верки знания названий столиц союзных респуб-
лик программу на языке Бейсик и проведите
отладку программы иа ЭВМ.
5. Переведите на язык Бейсик составленный
вами алгоритм проверки знания обозначений
первых 20 элементов таблицы Менделеева.
(9)1. Какими средствами в языке Бейсик можно
Zx определять символ и код нажатой клавиши?
2. Как можно организовать добавление новых
программы частей в программу на языке Бейсик?
ЭВМ программы T)L Составьте диалоговый алгоритм проверки
знания правил арифметики — проверки умения
складывать и умножать натуральные числа.
2. Составьте диалоговый алгоритм проверки
знания названий столиц союзных республик
СССР.
3. Составьте диалоговый алгоритм проверки
знания обозначений первых 20 элементов таб-
лицы Менделеева.
134
m-у
ЭТАПЫ РАЗРАБОТКИ
ПРОГРАММ
РЕШЕНИЕ ЗАДАЧ НА ЭВМ
§33. Этапы решения задач
Решение задач в любой деятельности—эго всегда по-
лучение определенных результатов результатов вычисле-
ний. результатов построения, результатов работы и г и
А сам процесс получения результатов опирается на некого
рый способ действий и предполагает использование опре-
деленных средств. Одним из новейших средств решения
различных учебных и производственных задач становятся
современные ЭВМ — универсальные устройства обработки
и накопления данных.
Универсальность вычислительных машин состоит в воз
можности выполнения ими практически любых алгоритмов
обработки данных и в том числе алгоритмов решения задач
в любой предметной деятельности. Необходимым при этом
становится описание постановок этих задач и методов их
решения на языке математики, а затем запись их в форме
программ
Создание программ для решения задач на ЭВМ пред-
полагает следующие этапы работ:
I. Математическая постановка задачи.
2. Определение метода решения.
3. Составление сценария работы с ЭВМ.
4. Конструирование алгоритма.
5. Перевод алгоритма в программу.
6. Ввод и испытание программы.
7. Получение результатов решения.
ПОСТАНОВКА ЗАДАЧИ
Поиск решения любой задачи начинается с анализа ее
условий Результатом анализа должна стать четкая поста
новка задачи, в которой должны быть ответы на четыре
вопроса:
1 . Что дано?
2 Что требуется?
3 Какие данные допустимы? ,
4 . Какие результаты будут правильными, а каюк
336
Можно сказать, что точность и четкость постановки за-
дачи половина успгх решения. Неудачи в решении задач
могут возникнуть нт та неправильно выделенных исходных
или требуемых данных, когда полученные результаты нс мо-
гут нас удовлетворить.
Поэтому при постановке задачи прежде всего необхо-
димо определить и перечислить все исходные и требуемые
данные. Затем ответить па вопрос: при каких условиях
возможно получение требуемых результатов, а при каких
нет’ И наконец, важно определить, какие результаты будут
считаться правильными.
Решение задач всегда оценивается по конечному резуль-
тату Если у пас нет четкого понимания что должно быть
конечным резу льтатом, то можно получить совсем не го, что
предполагалось. Поэтому умение четко формулировать, что
требуется, и является залогом успеха.
Следующий важный этап определение способов и ме-
то юв решения поставленных задач. На этом этапе конкретно
решается, как могут быть получены требуемые результаты.
Здесь важно не только выбрать способ получения резуль-
татов, но и понять, всегда ли будет получаться то, что тре-
бхется. и нельзя ли улучшить (в каком-то смысле) выбран-
ный способ решения.
Правильность результатов решения задачи на ЭВМ преж-
де всего зависит от правильности выбранного метода ре-
шения. Наиболее трудноуловимые ошибки в алгоритмах и
программах возникают из-за ошибок в выбранном методе
решения. Обоснованность методов — гарантия правильности
создаваемых алгоритмов. Так что к составлению алгоритмов
(а гем более программ для ЭВМ) нужно приступать лишь
после полной проработки вопросов, связанных с решением
задач
Организация решения задач на ЭВМ должна начинаться
с составления сценария работы с ЭВМ. Составить алгоритм
и проюамму по заданным сценарию и описанию метода
решения задачи, как правило, несложная техническая ра-
бота. а сценарии и описания выбранных методов служат
эта юном для проверки правильности полученных алгорит-
мов и программ.
Для написания сценария про!раммы необходимо про-
думать правила ввода данных в -)ВМ, форму предоставле-
ния информации людям, реакцию м пнины на вводимые
команды и данные Сценарии должны определять правила
работы людей е ЭВМ (лыдание сценариев сложных про-
грамм для совр< лепных -)ВМ, включающих средства машин
ной I рафики н звукового сопровождения. это творческая
работа, гребуюшая определенного мастерства.
Собственно программирование написание программ
при наличии алгоритмов pi тения задач это просто коли
мьгод
СЦЕНАРИЙ
137
превод атооритма
в ПРОГРАММ»
«вод и ИСПЫТАНИЯ
ПРОГРАММЫ
рование алгоритмов на выбранном тыке программирования
по несложным правилам. Ввод и испытания созданной
программы по заранее подготовленному плану завершают
подготовку к решению задачи на ЭВМ.
Получение и оценка каждого результата решения задачи
на ЭВМ всегда некоторый эксперимент. Эксперимент можно
считать удачно завершившимся, когда на машине наконец
получены результаты решения задачи и эти результаты пра-
вильные. Успех во многом зависит от плана ввода и испыта-
ния программы и четкости постановки задачи.
Рассмотрим на простом примере выполнение перечислен-
ных этапов, приводящее к составлению алгоритма для ре-
шения задачи с помощью ЭВМ.
Задача. Определить время встре-
чи двух пешеходов, идущих навстречу
друг другу.
Продумаем постановку этой задачи. Искомой (требуе-
мой) величиной является время движения пешеходов t.
Исходными данными должны быть начальное расстояние £
и скорости движения пешеходов щ и u2. Далее нужно
уточнить, как движутся пешеходы. Будем считать, что они,
во-первых, вышли навстречу друг другу одновременно, а во-
вторых, что они движутся с постоянными скоростями. Тогда
их движение можно описать следующей системой уравнений:
£=S| -|-S2,
Si = Щ -Z.
S2 — v2 • t.
а точная постановка задачи при этих предположениях при-
обретает вид:
Задача. Найти время движения пе-
шеходов, идущих навстречу
друг другу.
Дано: L — начальное расстояние
щ—скорость первого пешехода
р, —скорость второго пешехода
Треб: t — время движения.
Связь: |£_S|_|_S2i
I S| -Z.
I Si = v2-t
Здесь в конце постановки приведены
условия допустимости исходных дан-
ных В рассматриваемой задаче недо-
пустимыми данными были бы отрица-
тельные значения скоростей пешеход
и начального расстояния между ним».
Метод решения этой «дачи получа
ется решением системы уравне!
138
включенной в постановку задачи, отно-
сительно переменной t. В результате
чего получается формула
1 = I /(vi+vt).
Эта формула и выражает метод
решения поставленной задачи.
Метод решения:
/ = £/(oi+v2).
Решение этой задачи на ЭВМ мож
чо opi авизовать в форме диалога, в ко-
тором машина предлагает человеку
поочередно ввести все исходные дан
ные, а затем рассчитывает время дви-
жения до встречи. Если человек сооб-
щит недопустимые (отрицательные)
значения, то машина ответит на это
соответствующим сообщением. Вот
один из сценариев решения этой за-
дачи с помощью ЭВМ и соответствую-
щий ему алгоритм решения задачи:
-1 &?£
Я7г^£Х/^0Л
-f- --Р£ССГГЮЯНИ£-
ося'Ялхдм#'
- 44Л-' ~ Ъ*/ с' -/ /
/. / r>PTV-nrr 1Л !/
€ гогос/ЯЬ г (}/£) —Н
- (AffPfftf4/ff£/1bftt>i£-ою-сс/т?
~Ф>-,
\^&РСС/ПЬ J/t _
_ дс4у l ю га ।
SOJMff tfz- £0 ж- Д_
_ _! 44/^! ч^опупл^.'с?''^^
- -M/WE'.-L-1 | J I | | ! ..
4
Данный алгоритм нетрудно пере-
вести на язык программирования (на-
пример, на Бейсик).
Перечисленные этапы составляют суть систематического
метода построения алгоритмов и программ для решения за-
дач с помощью ЭВМ Твердое соблюдение принципов систе-
матического составления алгоритмов позволяет создавать
алгоритмы и программы, практически не содержащие оши-
бок. или во всяком случае быстро выявлять и исправлять все
допущенные ошибки.
Подчеркнем, что следует стараться сразу составлять
алгоритмы и программы, не содержащие ошибок. Тот же,
кто стремится поскорее выйти на машину, надеясь выявить
все ошибки «как-нибудь потом», не обнаружат (и не испра-
вят) всех ошибок никогда
СИСТЕМАТИЧЕСКИЙ
МЕТОД СОСТАВЛЕН «
АЛГО.И.МО1 и ПРО
ГРАММ
139
вопросы |*ц |
упражнения I
задания _____в*
Jj f. Составьте диалоговые алгоритмы для реше-
ния с помощью ЭВМ следующих задач (с поста-
новкой задачи, описанием метода решения и
сценарием работы с ЭВМ): .Q
а) определить время, когда один пешеход до-
гонит второго;
б) определить время движения теплохода по
течению и против течения;
в) определить время падения тела с заданной
высоты;
г) определить время полета тела, брошенного
вверх.
2. Составьте программы на языке Бейсик по
разработанным алгоритмам.
1. Перечислите основные этапы в составлении
программ для решения задач на ЭВМ
2. Зачем нужна постановка задачи!
3. Для чего необходимы описания методо.
решения задач?
4. Какую роль играют сценарии в процессе
решения задач на ЭВМ?
Подготовьте план ввода и испытания программы
для определения времени полета тела, брошен-
ного вверх.
Введите и испытайте составленную программу
на ЭВМ. Проверьте реакцию программы на
недопустимые данные. Проведите вычислитель-
ный эксперимент с космическими скоростями
и истолкуйте полученные результаты.
§ 34. Математическая постановка задачи
Нужны лн людям стро-
гие постановки задач!
Успешно решать задачи можно лишь при четком и одно-
значном определении требований к конечным результатам.
Расплывчатость и неопределенность формулировок могут
повлечь разное толкование условий и. как следствие, раз-
ногласия в оценке правильности результатов. Это особенно
важно, если задачи решают ЭВМ. которые не умеют дога
дывагьея. а могут только исполнять программы, которые в
них введены.
Точные постановки задач это единственная возмож
ность обеспечить единое понимание этих задач разными
людьми. Точность определений и формулировок должна быть
такой, чтобы они не допускали двойных толковании, а самое
главное, чтобы по ним можно было однозначно судить,
являются ли предлагаемые решения правильными Такая
точность формулировок и утверждений характерна для ма-
тематики А поскольку ЭВМ это математические устрой
едва для обработки данных, то постановки задач, решаемых
с помощью вычислительных машин, также должны быть вы
ражены в математической форме.
Точные, математически строгие постановки задач —
ключ к успеху в любой работе на производстве, в науке
и технике, в учебе и в административной деятельности,
а не только при решении задач на ЭВМ. При этом вовсе
необязательно использование математической символики
Для решения любой задачи необходимо умение четко выра-
жать мысли на родном языке с той строгостью, которая
принята в математике. Противоположностью являются рас-
плывчатые требования и пожелания, допускающие несколько
140
различных толкований. Главное в постановках задач
это точное и однозначное определение того, что именно
требуется получить
Математические постановки задач это требования, вы
раженные при помощи языка математики. Для записи мате-
матических постановок задач мы будем использовать еле
дующую форму
м лемАтическдя
ПОСТАНОВКА ЗАДА
чи
Задача
Дано:
Tpeg:
Связь:
При:
Любая постановка задачи всегда основывается на не
которой содержательной формулировке Из этой форму-
лировки должны быть выделены и перечислены псе исход
ные тайны* и требуемые объекты. В математических поста-
новках задач в разделах «дано» и «требуется» указываются
не только названия этих величин и объектов. но и их обозна-
чения. Эти обозначения в дальнейшем используются в опи-
саниях условий допустимости исходных данных и в
санпях связи исходного с требуемым
Рассмотрим в качестве иллюстрап
тукицей геометрической задачи:
Задача. Определить площадь кольца.
Дано:
R
внешний рьдиус
внутренний радиус
Треб: X
площадь кольца
Связь:
Х = Х,—Х2 — площадь кольца.
X, =nR' — площадь внешнего
X =лг’ площадь внутреннего
При: ()<г</?.
Связь между требуемым и исходным
в данном случае — это система соот-
ношений, выражающая зависимость
площади X от радиусов г и R. Первое
из них
а второе
круга.
Бессмысленными в данной задаче
они-
определение площади кольца,
и третье формула плота щ
были бы отрицательные значения ра-
диусов либо ситуация, когда внутрен-
ний радиус оказался бы больше или
равен внешнему. Поэтому в условиях
допустимости записано неравенс!во
0<т</?.
Метод решения в приве й иной за-
141
даче получается из указанной системы
соотношений подстановками выраже-
ний для Si н S в формулу площади
кольца:
Итак, метод решения поставленной
задачи:
S = n(R2 — г2).
S=Si —5> = л/?’~ лг2 = л(/?2 —г2). Эю равенство справедливо при лю-
бых допустимых значениях радиусов.
В прикладных задачах (из механики электротехники,
химии, биологии и т д.) швиеимости между исходными
данными, требуемыми результатами и необходимыми про-
межуточными значениями выбираимся на основе знаний
о структуре изучаемого (моделируемого) объекта. Эти
знания выражаются в виде определенных моделей, построен-
ных на основе законов соответствующих наук.
В качестве второго примера рассмотрим математи-
ческую постановку физической задачи, в которой опреде-
ляется дальность полета тела, брошенного под углом к го-
ризонту. Тело бросают с поверхности Земли со скоростью v
под углом а к горизонту Обозначим через vx = vsina го-
ризонтальную и через v,, = vcos(x вертикальную состав-
ляющие начальной скорости.
Для построения модели сделаем два основных пред-
положения. Первое — сопротивление воздуха не учитыва-
ется. Поэтому движение по горизонтали равномерное:
x = v,t—закон равномерного движения. Второе пред-
положение — считаем ускорение свободного падения пос-
тоянным и равным g =—9,81. Поэтому движение по вер-
тикали описывается уравнением y=vyt— g/2/2— закон рав-
ноускоренного движения с отрицательным ускорением.
Искомым в этой задаче будет то значение х=/, при
котором 1/=0.
Задача Определить дальность по-
тета тела, брошенного под углом к
гори зонту
Дано: о начальная скорость [м/с]
а - угол бросания [радианы]
Треб: I дальность полета [м|
Связь: l — Vxt —дальность по
лета
0 = — g/2/2 точка падения
. = vcos а горизонталь
ная проекция
вектора ско-
рое ги
ti,/ = vsina — вертикальная
проекция век-
тора скорости
g —9 81 —ускорение сво-
бодного паде-
ния
При: (и>0
10<а< л/2
142
Ограничения, включенные в поста-
новку задачи, выражают, как видно из
системы неравенств, недопустимость
отрицательной начальной скорости и
возможность бросания тела вправо и
вверч-
Метод решения для данной задачи
получается решением уравнения
O = uut — gt-/2
огнэеительно времени /, огбрасывая
решение /=(). Гак,м образом, мего i
решения описывается следующей сне
темой расчетных формул
/ = л\Г,
/ = 2vv/ff.
г> = есо* а.
p, = osin а.
у = 9.81.
В других задачах зависимость между требуемым и ис-
ходным, а также условия юиустимости могут выражаться
не системами уравнений, а системами утверждении Стро>ая
запись таких утверждений проводится на языке матсма
тической логики. Это прежде всего высказывания об обьек
тах и их свойствах. Кроме того, утверждения могут вво-
диться через ранее вве 1енные высказывания, как это де-
лается в языке Пролог.
Примером такого рода за 1ачи. требующей для поста
новки использования я тыка математической логики, может
служить задача о вычислении наибольшего общего целителя
двух натуральных чисел.
Напомним, что натуральное число </ считается наиболь-
шим общим делителем пары натуральных чисел п и т. если
и п, и т делятся на d и любой другой общин делитедь d'
этой же пары чисел меньше или равен d. Примеры наиболь-
ших общих делителей:
НОД (2.2)=2, НОД (6,9) =3. НОД (14.15) = I.
НОД (18.24) =6. НОД (21.35) =7.
Точная математическая постановка этой задачи может
быть выражена так:
ПОСТАНОВКА ЗАДАЧИ
аычмслАННа НОД даун
натувапан»» чисел
Задача. Определить наибольший об-
щий делитель.
Дано: п, т - пара натуральных чисел
Треб: d - наибольший общий делитель
Связь: делит (</, п) и делит (d, т)
для любого d'-. [делит (d', п) и делит
(d', m)]=>d'^d, где делит (d, «^{су-
ществует натуральное p:n — p-d\
При: п 1 и т 1
Здесь связь между требуемым и ис-
ходными числами задана двумя опре-
делениями Первое определение ут-
верждает, что число d является общим
делителем чисел п и т, а второе, чго
искомое число d должно быть больше
любого другого делителя d'.
В записи этих утверждений исполь-
зован предикат "делит (d. »Х', который
принимает логическое значение Ис
тина", если d делитель числа н, и
143
значение "ложь", если d дели гелем
числа п не является Но определению
d делитель числа п, если можно
указать такт натуральное р, что п =
=p-d. что и шине пю в определении
предиката "делит (d, п)".
ДХетот решения згой задачи был предложен Евклидом
п основан па свойствах общих делителей:
НОД (и, ш) =
НОД (и — in, in) при п>т,
и при n=in,
НОД (и. in — п) при ист
Сеазь нужна для про-
верим правильности
результатов!
-»то пшчнг, что если d наибольший общий делитель
чисел и и т. то это же чн, но d будет являться наибольшим
общим делителем меиынето числа и1 этой нары и их разности
Особенность этого метода состоит в том, что наибольший
общий делитель НОД (я, ш) вычисляется через НОД
In — т. п), либо через НОД (л, т —п) и так далее до тех
нор, пока п и т не сравняются. Такого рода способы
вычислений функций через самих себя называются рекур-
сивными.
Теперь мы можем окончательно сказать, что же такое
связь в постановках задач. В общем случае "связь" — это
система уравнений или утверждений, связывающих требуе-
мые и исходные данные. Туда могут входить определения,
утверждения, формулировки законов и т. д. С практической
точки зрения "связь" выражает не столько способ решения,
сколько способ проверки правильности конечных резуль-
татов. Ответ на вопрос, как же именно получить требуемое
из исходного, дает метод решения задачи.
вопросы
упражнения
задания
( 1 Чго входит в матемАтическую постановку
ЗАДАЧИ?
2 Для чего нужна математическая постановка
задачи?
3 Что выражает раздел «Связь» в математи-
ческом постановке прикладной задачи?
4 Из каких соображений выбираются ограни-
чения на исходные данные?
V 1 Составьте и испытайте на ЭВМ программу
на языке Бейсик для решения задачи расчета
площвдм фигуры.
2. Подберите данные для попадания в цель,
расположенную на поверхности Земли на
расстоянии I от точки броска:
а) 1—100; б) 1-60,
путем испытании на ЭВМ.
1. Приведите математическую постановку зада-
чи для вычисления площади следующих фигур:
а) круглой пластины с квадратным отверстием;
6) круглой пластины с треугольным отверстием;
в) квадратной пластины с круглым отверстием;
г) треугольной плвстины с круглым отверстием.
2. Составьте сценарий и алгоритм для решения
на ЭВМ выбранной задачи расчета площади
фигуры с выводом ее изображения.
3. Составьте сценарий и алгоритм решения на
ЭВМ задачи о полете тела, брошенного под
углом к горизонту.
4 Укажите наибольший общий делитель:
а) НОД (16, 24); б) НОД (25, 35); а) НОД (21, 27);
г) НОД (32. 48).
5. Приведите определение м примеры вычисле
ния наименьшего общего кратного.
6. Приведите примеры и определение простого
числа.
144
§ 35. Методы решения задач
Ключом к решению задачи является применение соот-
ветствующего метода Метод — это общий способ решения,
даюший требуемые результаты тля целого класса анало-
гичных задач Выработка методов решения возникающих
задач необычайно важна для любой прикладной науки
Метол решения является правильным, если тля любых
допустимых исходных тайных он приводит к получению
результатов, соответствующих постановке задачи. Таким
образом, говорить о правильности или неправильности
некоторого метода можно только но отношению к поста
новке решаемых им задач.
Для решения задач с помощью ЭВМ соответствующим
методам необходимо дать математическую интерпретацию.
Для многих задач методы решения представляются снеге
мами расчетных формул
Рассмотрим например, задачу: определить объем тре
угольной пирамиды по высоте Л и сторонам основания
a, b, i Метод решения этой задачи выражается следующей
системой соотношений:
Метод решения.
МЕТОД раимнн» м
А»чн
ПРАВИЛЬНЫМ МЕТОД
Пирами ya:
1=1 /3(5/1).
5 - \Р(Р—иЦр — Ь}(р—с).
/’=(« + b + <•)/2
при I и -ф/>> с,
/» + <>«,
I с-фа>/>
В описании простейших методов рз тения мы просто
указываем набор формул, с помощью которых по заданным
значениям пехотных данных могут быть вычислены тре
буемые величины. Порядок записи формул никакой роли
не играет.
Однако возможно, что при некоторых значениях данных
ге или иные формулы не должны применяться В рассмат-
риваемом примере недопустимыми являются такие значе-
ния сторон, при которых в формуле вычисления площади ос-
нования S под знаком радикала могло бы появиться отри
нательное значение. Такое может произойти, если будет
нарушено известное неравенство треугольника, например,
когда сумма сторон о + 6 окажется меньше стороны с
Для «отслеживания» таких ограничений в системы соот-
ношений необходимо включать условия применимости
расчетных формул. В рассматриваемом примере указаны
целых три ограничения — все три варианта неравенства
треугольника, лежащего в основании пирамиды
145
Использование условий-ограничений в описаниях мето
дов решений обязательно в тех ситуациях, когда ме >.
объединяет несколько частных способов со своими набора-
ми расчетных формул. Например, в описании метода опре-
деления модуля числа: 1
а) 1/=|л|:
при х>0.
при х<0;
б) у— | vl
। у— v
1 при V >0,
!У=~ л
I при t <0.
Улавливаете разницу!
Здесь в описании а) условия-ограничения указаны
при соответствующих формулах, а в описании б) они запи
саны в форме подсистем расчетных формул с vc юанями
их применения.
Правила описания методов отличаются от правил напи-
сания постановок задач и алгоритмов. В алгоритмах ос
новной единицей описания являются присваивания за-
писи вида ц:=Дг), В методах равенства могут записы-
ваться только в виде y=/(v), позволяющем определять
значения одних величин по другим. Л в постановках задач
основными единицами описания являются равенства лю-
бого вида: /(л) = 0, или /(%) = £( х), или у=Цг). которые по-
нимаются как условия
Если в постановках задач главное это утверждение о
взаимосвязи требуемого и исходного, то описание метода
должно отвечать на вопрос, как однозначно рассчитать или
построить требуемое при данных конкретных исходных
условиях
Примером, демонстрирующим различия между пунктом
«Связь» в постановке задачи и методом решения, может
служить следующая задача: требуется определить общее
сопротивление заданной электрической цени. Рассмотрим
математическую постановку задачи.
Задача. Найти общее сопротивление
электрической цепи.
Дано: R, R , R, — сопротивления [Ом]
Треб: /?общ — общее сопротивление [Ом]
Связь: Ro6ul=U/l — определение об-
щего сопротив-
ления
/=/i + /2 —закон суммы
сил токов
1R-{-I\Ri = U—закон падения
напряжений
При: R, Ri,
где /, /|. Л< — силы токов в ре-
зисторах [А],
U — входное напряжение [о|
146
В приведенной постановке зависи-
мость между общим сопротивтением
цепи и заданными сопротивле-
ниями R Ri. R; описывается системой
из четырех уравнений. Каждое уравне-
ние выражает один из законов электро-
техники Для решения этой задачи
необходимо преобразовать эту систему
уравнений к некоторой системе расчет-
ных формул.
Решить эту систему можно следу-
ющим образом. Из после тнего урав-
нения /,/?!=/>/? получим, что 1,=
— hRi/Ri Подставив это выражение
для /. во второе уравнение, получим
I-h+hRi/Ri или /=/,(/?,+/?j/p
Отсюда Л =//?2/(/?i -+-/?>). Подставляя
формулы для /| в третье уравнение,
имеем IR + IRiR^/tRi 4-А_>) = I/ Под-
ставляя это выражение в первое уран
нение, получаем искомую формулу дли
расчета:
R.'t,u = R \-R\R’/
<тА.т.йНаКО ЭТа <Ьо''">ча не выражает
общий метод решения, так как для до-
пустимых по постановке задач зна-
чения сопротивлений /?,=[) и R, о
выражение для /?овщ оказывается не
опреде генныи, хотя решение очевидно
УШествует. — R Такое могло про-
изойти только потому, что при преоб
Разовани'х юявно предполагалось от
личие R, и /?. от 0.
Общий метод решения эюй задачи
«а дает следующая система формул:
Метод
I Room — R
1при Ri ф/?. = (>,
I А’ибк. '“/? + •Ri}/(Rt г R?]
(при R, -|- R. > 0.
Разумеется, ЭВМ применяют не для решения простей-
ших за тая, которые легко решаются и «вручную», а тля
решения задач, требующих больших вычислении или обрй
ботки большого обьема данных
С точки зрения алгоритмов такие задачи предпола-
гают использование циклов, а это, по существу, обработка
последовательностей величин и,>, щ. с При этом еле
дующие члены таких последовательностей, как правило,
вычисляются через предыдущие. Такой способ определения
последовательностей называется рекуррентным.
Примеры рекуррентных последовательностей:
Р1ХУРРРМТНЫН СПО-
СОБ вычисления чле-
нов последователь-
ности
[ Оо = а,
fQk = Qk- । -f-tZ, — арифметическая прогрессия
IU=(1.2. .'
1 &.> = £>,
) I bk = bk_ । • q,— геометрическая прогрессия
2 . .)
Простейшим примером записи рекуррентного метода
вычислений является описание метода суммирования после-
довательности чисел. Приведем математическую постановку
и описание соответствующего рекуррентного метода вычис-
зений.
147
Задача. Подсчитать сумму чисел.
Дано: xi, - x,i последовательность
чисел
Треб: 5 сумма чисел
Связь: S = д', 4- д2 +... + х„
В этом описании во внутренней
фигурной скобке задается рекуррент-
ный способ вычисления последователь-
ности частичных сумм S/,., равных S/,=
= Xi4-.-4-**- Вычисление этих частич-
ных сумм ведется для k от 1 до п по
рекуррентной формуле
S*. = S„ । -f- At,
При: п I
Метод.
$.> = (),
1 5^ St— i 4" -Xfr,
U = (l. 2.. rt),
S = S„.
которая читается так: /г-е значение
последовательности величин S,, равно
/г—1-му значению St ь к которому
добавляется /г-е значение последова-
тельности исходных чисел хк.
Начальная частичная сумма, соот-
ветствующая сумме 0 членов после-
довательности, в описании метода по-
ложена равной 0. А значение суммы S
всей последовательности связано с
последним значением S,, — суммы п
членов последовательности.
В общем случае в описаниях методов допустимо соче-
тание условных и рекуррентных систем соотношений. Это
становится необходимым для задач определения наиболь-
ших и наименьших значений последовательностей. Приведем
математическую постановку и описание рекуррентного
метода вычислений для задачи определения максимума
последовательности чисел.
Задача. Найти максимум из п чисел. Метод.
Дано: Xi , д„ — последовательность
чисел
Треб: Мах — максимальное значение
Связь: .Ма г = П1 а х хь
I k •< /I
При: п I
V | — X |,
(А/, при
J I Vk । при I,
0г = (2.....n).
,У1«Л'=
В приведенном описании способ
определения максимума среди чисел
л,, с. . . сводится к определению
вспомогательной последовательности
сь частичных максимумов k
первых членов исходной последова-
тельности
Первый член в этой последова-
тельности полагается равным oj == \|
первому члену исходной последова-
тельности. Каждый новый, /?-й член
последовательности Vk полагается рав-
ным если это число окажется
больше vk । максимума из первых
/г_] чисел. В противном случае зна-
чение vi, полагается по-прежнему
равным максимальному значению из
предыдущих /г — 1 чисел. Так опреде-
ляются все члены для /г от 2 до
Последнее значение в этой после-
довательности и дает значение мак
симума Мах = и„ всей последователь
нос г и в целом.
148
Для сложных задач способ решения всегда состоит
в выделении вспомогательных подзадач, решения которых
по отдельности позволяют получить результаты, требммче
в пехотной задаче Мето ты решения такого рота оннсы
каются в форме набора описаний методов решения вено
могагельных подзадач с указанием результатов зз иске т
них данных для их решения.
В описаниях методов выделение подзадач можно выделение подал
оформлятз. зз виде фз икнззй, имеющих зз общем случае ряд ДАЧ
apivментов Если прзз згом результатом решенизз подзадачзз
может оказазыя не одно значение . а нееколькз> зо их можно
ОЗрорМИЗЗ, 33 ВИ ДЗ CT131CK.I 133 13141111
Нрззмз ром описанизз метода решения с вы те н ззззем
вспомозотельных подзадач может служзззз. заведующий ено
соб вычш зезшя нлзш'а ззз грд угольника, заданного на
! ц сз> вычисление сторон треугольник,1 2 ззз.зде'зеио но
I3C31OMOI lit U1IIVTO т|ПНКЦНЮ "ДЛЗЗИ.З (/1|, 1..)", зргуме33|.|м|3
которой яззляюзея .не пары чззее'з коорзииазы ззершин
rpevi'o ызззке Таким же образом, зз зззз де функций, можно
ошзсагзэ любое число выделяемых подзадач
1. Приведите постановку задачи, метод реше-
ния и сценарий, а также составьте соответст-
вующий алгоритм и программу вычисления на
Бейсике: а) максимального; 6) минимального;
в) среднего значений для последовательности
Из п (случайно выбираемых) чисел. „
2. Составьте сценарий, алгоритм и программу^?-1 1 *^тО
(иа языке Бейсик) решения на ЭВМ задачи 2. Что
определения общего сопротивления выбранной дачи?
электрической цепи с выводом изображения
этой цепи на экран. 3. Что
вопросы
упражнения
задания
такое метод решения задачи?
такое правильный метод решения за-
такое рекуррентный метод решения?
149
1, Опишите методы определения:
a) max (а, Ь); 6) max (а, Ь с); в) min (а, Ь);
г) min (а, Ь, с).
2. Приведите описание способа вычисления:
а) среднего из п чисел; б) минимального из
п чисел.
3. Приведите рекурсивные определения и при-
меры вычислений по этим определениям:
а) суммы п чисел;
6) максимума из п чисел;
в) среднего из п чисел.
4. Выпишите постановки задач и методы вычис-
лений общих сопротивлений следующих элект-
рических цепей:
СЦЕНАРИИ
§ 36. Сценарии работы с ЭВМ
Процессы решения задач с помощью современны:
ЭВМ — это своеобразный диалог — тиалог человс ка с ма-
шиной. Как и диалог между людьми, диалог человека
с ЭВМ ведется по определенным правилам. Описание этих
правил и форма предоставления информации людям и
составляют содержание сценариев программ для персо
нальных ЭВМ.
В сценариях указывается, в какой форме информация
предъявляется людям. Кроме того, в них определяются
правила ввода данных и команды, с помощью которых
люди управляют работой машины. И наконец, в них опи-
сывается реакция ЭВМ на все варианты вводимых данных и
команд, в том числе реакция машины на неправильные
данные и команды.
В целом сценарии должны описывать все многообразие
вариантов диалога людей с ЭВМ при решении поставлен
ных задач. С этой целью в сценариях можно использо
вать фигурные скобки для обозначения вариантов сооб-
щений и их повторений.
В качестве иллюстрации рассмотрим описание сценария
и пример диалога для программы —• игры «Угадай-ка».
Пример
диалога:
угадай число
от 1 до
число»"?
много
число»?
мало
число»?
много
число»?
мало
число»?
молодец
100
50
25
32
28
30
умница!
150
Правила описания сценариев таковы. Команды и
данные, вводимые человеком в машину, в сценариях
дважды обводятся в кружочек. Переменные части сообще-
ний ЭВМ выдаваемые результаты — обводятся в кружо-
чек один раз.
Варианты сообщений и реакций ЭВМ записываются в
столбик и заключаются в фигурные скобки
Выбор сообщений: Примеры:
[(фраза 1>| отлично
(фраза 2) хорошо
I (фраза 3) 1 неважно
Фигурные скобки означают выбор одной из указы-
ваемых в скобках фраз. Правила выбора сообщений
могут быть указаны явно в форме фразы, начинающейся
со слова «при». В очевидных ситуациях условия выбора
сообщений могут не приводиться.
Повторения сообщений машины в описании сценария
указываются с помощью пары фигурных или квадратных
скобок и символа «*» справа вверху
Повторение сообщений: Пример:
]фраза|* |«еще раз»]*
Возможность повторения фрагментов текстов или сце-
нарного действия обозначается знаком «*» у фигурной скоб-
ки. Фигурные скобки для повторений означают возмож-
ность появления выбираемых фрагментов один или несколь-
ко раз, но не менее одного.
Условия повторения фраз могут указываться в сце-
нариях явно с помощью фраз «до (условие)» и «пока
(условие)». Первая фраза «до» указывает условие завер-
шения повторений, а вторая фраза «пока» — условия про-
должения повторений.
Квадратные скобки применяются для обозначения
сообщений, которые могут отсутствовать в некоторых ва-
риантах диалога.
С помощью фразы «где» в сценариях могут коммен-
тироваться различные необходимые величины, способы их
вычисления, проводиться раскрытие правил диалога на
какие-то отдельные темы.
При наличии в ЭВМ графических средств отображе-
ния информации ключевыми элементами сценария стано-
вятся сцены изображения некоторой обстановки (.цепа
рии программ на таких ЭВМ становятся похожими на сце
парии мультфильмов. При этом сценарии дополняются
не только правилами ввода-вывода информации, по и ила
ном переходов из сцепы в сцену в зависимости от вводимых
команд и накопленных данных.
ВЫБОР СООБЩЕНИИ
сценарии
ПОВТОРЕНИЕ СООБ-
ЩЕНМИ « сценарии
151
В качеств) примера рассмотрим сценарий
которая является игровой
разобраииой ранее
человеку предлагается напасть
подбирая начальную скорость
«игра с мячом»,
ГРАФИЧЕСКИЕ СЦЕ- РЗ'ИН'НИЯ На ЭВМ
нарии тела. В этой игре
в затанцую цель,
бросания мяча
побеги мячл
<СООБЩЕНИЕ>
программы
Hoi 1аповкой
задачи о бросании
мячом
и угол
h=io
- _| схорЬсю
- у \c%fy/M4& .сроростБ\
Л
В этом сценарии присутствует одна-единственная сцена.
Внизу выделяется поле для сообщений и команд, где че-
ловек ука зывает исходные данные и ответы на вопросы ЭВМ.
Машина после ввода угла и скорости выводит на экран
траекторию полета и сообщения «перелет» или «недолет»
при неудачных попытках.
Мотель движения мяча по экрану должна выбираться в
строгом соответствии с модельными предположениями
постановки задачи:
< x(t) = vu, cosa t,
I 1/(/) = й+v»vsina/ —j?/2/2,
|/=(0, d, 2d, 3d, ...)|,
где d шаг изменения времени, и vltlt — горизонтальная
и вертикальная проекции начальной скорости, а а - угол
наклона вектора начальной скорости к горизонту.
В наиболее сложных сценариях возможно предъявление
ряд 1 сложных сиен с определенной логикой перехода из
сцены в сцену в зависимости от команд и данных, вводи-
мых людьми Простейшим примером может служить сцена-
рий известной уже вам игры «Абстрактная живопись».
В этой шpi машина по заказу человек;) порождает
всевозможные картинки из случайных россыпей ючек,
152
отрезков или прямоугольников в швисимости ог выбора
человека:
СЦЕ/М-f. еь/еое ыг/линки
L=1
ЗЩ КИЕ/ПИНЬ/
и. из /почек
2. ИЗ О/ЛЕЕЗКО&
3 ИЗ ЛЕЯ/ИОУГОИЬИИКО£>
мш ез/еое
э/1Е/ИЕмто&
ГР-
ГР-
СЦЫМ2 MOWW СЦЕМ4 З .СМРЕЗМ СЦЛМ^ЛЛ^ОУГаЛМЛКЛ
Работа с ЭВМ начинается с заставки-меню, предлага-
ющей вариант картинки. Человеку необходимо выбрать
вид картинки из точек, отрезков или прямоугольников
и указать их число в картинке. После этого ЭВМ выведет
с помощью датчика случайных чисел соответствующую
картинку и после любой нажатой человеком клавиши вновь
предъявит человеку заставку меню.
7 1. Что такое сценарий программы?
1 Зачем нужны сценарии программ?
3. Кек в сценариях записываются варианты
сообщений?
4. Как в сценариях записываются повторяемые
сообщения н запросы?
5. Каким образом в сценариях указываются
сообщения, которые могут отсутствовать?
вопросы
упражнения
задания
(, 1 Напишите программу, проведите отладку и
эксперименты на ЭВМ по составленному алго-
ритму «Абстрактная живопись».
2 Напишите программу, проведите отладку и
эксперименты на ЭВМ по диалоговому алго-
ритму «игра с мячом».
1. Дополните сценарий «Абстрактная живо-
пись., сценами из: а) окружностей; 6) треуголь-
ников; в) раскрашенных прямоугольников;
г) раскрашенных кругов. .
2. Составьте диалоговый алгоритм для выбран-
ного варианта «Абстрактная живопись».
3 Составьте диалоговый алгоритм для игры
«Бросание мяча» с графической иллюстрацией
полете по приведенному сценарию.
153
ЧОНСТОУИРОВЛНИЕ
АЛГОРИТМОВ
§ 37. Конструирование алгоритмов
После определения математического метода решения
задачи и получения сценария составление алгорш мог ii4
решения задачи с помощью ЭРИ становится достаточно
понятным и простым делом. Псхо той информацией
этого должно быть описание сценария и описание выбран-
ного метода решения задачи. При их наличии не только
легко составлять соответствующие алгоритмы и программы,
но и легко проверять их правильность. Действуя таким
образом, в принципе можно выявить все ошибки еще до
выхода на ЭВМ.
Процесс конструирования алгоритмов в таких условиях
производится по следующим правилам
1. Все операции вывода информации и запроса дан
ных в алгоритмах строятся из соответствующих реплик и
других элементов сценария.
2. Все вычислительные операции подбираются на осно-
вании формул метода решения поставленных задач.
Само конструирование состоит в подборе и упорядо-
чении действий для организации ввода-вывода информации
согласно сценарию и организации вычислений в строгом
соответствии с выбранными методами решения задач
В качестве иллюстрации этих правил рассмотрим по-
строение алгоритма вычисления объема цилиндра. В этой
задаче требуется определить объем цилиндра V по его
высоте Н и диаметру основания D.
Математическая постановка этой задачи:
Задача. Вычислить объем цилиндра.
Дано: D — диаметр цилиндра
Н — высота цилиндра
Треб: V — объем цилиндра
Связь: 1/=объем (D, Н)
При: JD>0
IН > О
где объем (£), H)=nD~ Н/Ь-
Метод решения задачи фактически
указан в постановке задачи. Недо-
пустимыми данными являются отрица-
тельные или нулевые значения диа-
метра (Т)^0) или высоты
154
Ниже приведены: слева сценарий и описание метода
решения этой задачи, а справа соответствующий им
алгоритм
'&ыг>04 [цр/Ьщра. I
ЗАПРОС I АРА/ПШР О
ЗАПРОС ХбЖО/м\ zr
РС/1И jp g Q '
оы&гм [penpnAC/^o-Si^}
_ AA£C 1 # jg ff I 1
| //474.WK -,ЖЖ7-7< (g>|
пр/мр , 'i -ji . j i
__L XU d/A Г
- Г-Н' D/z
---PL\~
. s •= pL _ A*
Метод.
1' = объем (О, И):
V=S-H
S —n-R~
R=T
ЫИ&Щ I ОвЪЕ/Н~ I
I/
Сопоставляя алгоритм co сценарием и описанием ме-
тода, мы видим, что алгоритм получается подбором one
раций ввода вывода в соответствии со сценарием, а затем и
выбором вычислительных операций в соответствии с выбран-
ным методом вычислений. Однако еслй в описаниях мето-
дов формулы могут записываться в любом порядке, то в
алгоритмах нужно, чтобы всякая переменная получала
необходимое значение до использования этой переменной
в других операциях.
Важным вопросом при конструировании алгоритмов
является подбор переменных и массивов для хранения
данных В простейших случаях для каждой величины
отводится своя переменная. При этом имена переменных
и массивов должны быть похожи на обычные обозначения
или осмысленные названия величин.
Массивы в алгоритмах используются для размещения
последовательностей и других совокупностей данных. При
мером использования массивов могут служить алгоритмы
решения геометрических задач на плоскости Рассмотрим
сценарий, метод и алгоритм определения площади тре-
угольника, заданного на плоскости координатами вершин.
155
Метод.
S = площадь 1. В. С):
S = у(W' — (Р — М (/’— с))
/> = (« 4-/> + с)/2
1а —длина ( 1 В)
/> = длииа (В, С'.
с = длина (С. /1)
где г = длина ((i), //,), </_>)):
I г= у (</г+</</-’)
I <7v= г, — х2
I dy=у ,—</..
з Т’
'/ 'РКУ‘ Z ЧУ У4-
В данном алгоритме координаты
точек ,4|. .4-2, .41 размещаются не в от-
дельных переменных, а в массивах
х[1:3] и </[1:3] вещественных чисел.
Кроме того, формулы вычисления сто-
рон в алгоритме получены подста-
новками и упрощением формул вы
числения сторон, указанных в описа-
нии метода решения. Эта операция
довольно часто используется при по-
строении алгоритмов.
В сложных задачах с переменным объемом данных
становится необходимым экономное использование памяти
Это связано с ограниченным объемом памяти компьютеров
В таких ситуациях приходится либо вводить ограничения
на объем данных, либо искать пути экономии машинной
памяти за счет хничтожения данных, не нужных для
дальнейших вычислений.
Например, для последовательностей величин опреде-
ляемых с помощью рекуррентных соотношений, нет необ-
ходимости в использовании массивов. Для таких после-
довательностей достаточно хранения только текущею и
предыдущего значений последовательностей, а все_ осталь-
ные, как правило, более не используются и не требуют па
мяти для своего хранения.
Иллюстрацией экономного использования памяти може,
служить алгоритм приближенного вычисления интеграл
156
т. е. площади, заключенной под графиком функции sinx.
Приводимый алгоритм построен на основе так называемого
метода трапеций.
Данный метод приближенного вычисления интегралов
предполагает подсчет сумм площадей трапеций, полученных
заменой графика функции ломаной.
Основаниями трапеций служат отрезки — перпендику-
тяры из точек графика функции на ось Ох, третья сторона —
отрезок оси Ох, а четвертая сторона трапеции соединяет
две точки графика функции.
Постановка задачи приближенного вычисления ин-
тегралов по методу трапеций такова.
Задача. Вычислить интегральную
сумму.
Дано: [о, Ь] — отрезок интегрирования
п — число отрезков разбиения
Треб: S — интегральная сумма
^вязь:
S = (/(о)/2-|-/|)+/(я+2Л)-|- ... +
+ f(a+tn-\ih)+flb}/2}-h
где h=(b — a)/n
При: п > 1
Mei од.
5 = инте1рсумма (а, Ь, п):
। h = fb — а)/п
I X,! = ll
Xt — Хц ,+h
Xh — Xh I ~|“/( CjJ-/l/2
k =(1.....n- 1)
S = s,, । -j- fib)• h12
i де (/ = /{ ¥):
i/ - sin A
^/!Г •'‘РУНКМЯ t
•/w ; _l_l
У = x-
— • WL ITffi — —
157
Проанализируем результаты выполнения приве
алгоритма. Его выполнение начинается с вычисте.?™
h. = (b~a 'п - длины отрезка разбиения, фиксации
вого члена суммы s: =Да)-й/2 и первой точки ра ИеХ
1о = 4 на оси Ох. н^-’оигния
Далее в цикле для k от 1 до п_____I
x’.=x+h и s: вычисляется
разбиения:
присваиваниями
следующая точка
-V* — Xk ! + й
и следующая частичная сумма:
= > . । -J- /(с*) • h.
Действительно, для й=| получается:
-1| = * 4-й= «4-й,
-'>1 =su4-Д\।)й =/ «)-й/24-Дд4-й)й
Далее для й = 2 получается
v>= ь 4-й =«4-2й.
4-Дг. )й=Да)-й/24-/(«4-й)й4-/(«4-2й)й.
Такие выкладки можно привести и для й=3, 4 5 и т. д.
Поэтому можно заключить, что для всех й от 1 до п будут
выполняться соотношения
л» = а4-йй.
= (Да)/2 4-Да 4-й) 4-/(« 4-2й)4-... 4-Да 4-(й — 1 )й ))й
А значит, последнее присваивание S: = х-|-Дй)-й/2 дает
требуемый результат:
S =s„ -1 -|-ДйЬ й/2 = (Да)/2 4-Да 4-й) 4-
4-Да 4-2й)4-... 4-Да 4-(л - 1 )Й)4-ДЙ)/2)Й,
что и требовалось по определению метода трапеций.
Длина последовательностей и объемы совокупностей
данных, используемых в алгоритмах и программах, всегда
требуют введения ограничений из-за конечного объема
оперативной памяти вычислительных машин. Поэтому об-
работка таких совокупностей выделяется во вспомогатель-
ные алгоритмы, в которых размеры этих совокупностей
задаются в качестве аргументов.
Рассмотрим, например, описание метода определения
максимума в последовательности чисел и соответствующий
ему вспомогательный алгоритм поиска максимума после-
довательности, размещенной в одномерном массиве.
158
Метод.
y=max г,, i„):
C’l = a,
_/-U при I
I Vk I при Щ. I It
k = (2.....n)
у = I’..
'^arcv^j., *» & *
'J?i
ZtWZ |_L I ।____________' _
.rrk>=^jTX_Dr
-. off >7 .M
------\e«y?ff .2г/л17 [> j/ Uy
L—l^T Ыл6Е7!
J—L t/rf<w i ' _
— рц#М,
_ У 1=2
IL» сравнения югко убедиться, что алгоритм реализует
приведенный слева метод вычислений. Действительно, пер
вое присваивание : г(1] дает результат в, —i|l|
Далее, в цикле для k от 2 до п величина т |А’| сравнивается
с текущей величиной переменной и.
Если при k — 2 окажется, что > |2| больше текущего
значения переменной с. равного щ=х[1], то этой перемен-
ной будет присвоено новое значение гъ = л[2]. Ясно, что в
этом случае величина oI = niax(x [1 ]. v|2]). Если же ока
жется, что л'|2|^О|> то значение переменной v останет-
ся неизменным, т. е. равным величине щ — max (v| 11,
л[2|).
То же самое бу дет происходить на каждом последующем
k-м шаге цикла А именно если \ |&| окажется больше теку
щего значения переменной е, то этой переменной будет
присвоено значение щ = <[!’], если же окажется, что
v(Д’) то значение переменной и останется неиз-
менным.
ГЫ/ИЗГПЬ
11 ih цеИ
Xtj'l, П]
ИШЦЕ/1
' та Цел
У !-т!— —
Таким образом, на каждом шаге цикла в переменной v
сохраняется наибольшее пз значений v[l), , г [/г — 1] либо
фиксируется величина i |/е|, если она оказывается больше
всех предшес! вовавишх Следовательно, переменная v
на /г-м шаге будет равна щ = тах (л 111, т |/?|). По окон
мании цикл;! последнее присваивание y’.—v даст окопча
тельный резульга<
у =c’,i=max(*|l|. '|п|).
чго и требовалось.
159
вопросы
упражнения
задания LliJZI
1. Для чего нужны сценарии при построении
диалоговых алгоритмов?
2. Зачем нужны описания методов при построе-
нии алгоритмов решения задач на ЭВМ?
( 3. Чем отличаются описания методов от алго-
ритмов?
4. Как реализуются рекуррентные методы
вычислений?
। 1. Напишите постановку задачи, подберите
метод решения, придумайте сценарий с графи-
ческим изображением сцен и постройте алго-
ритм для решения на ЭВМ следующих задач:
а) вычисление объема треугольной пирамиды;
б) вычисление объема пирамиды с прямоуголь-
ным основанием;
в) вычисление объема конуса.
2. Напишите постановку задачи, подберите ме-
тод решения, придумайте сценарий с графиче-
ским изображением сцен и постройте диало-
говый алгоритм для решения задач иа ЭВМ:
а) вычисление периметр» треугольника-
6) вычисление радиуса вписанной окружное,
в) вычисление радиуса описанной окружное/
для треугольника, заданного на плоскости
координатами вершин.
3. Напишите постановку задачи, опишите метол
решения, придумайте сценарий с графическим
изображением сцен и составьте диалоговый
алгоритм для решения иа ЭВМ этих задач:
а) найти среди л точек на плоскости наиболее
удаленную пару точек;
б) среди п точек иа плоскости найти три точки,
образующие треугольник наибольшей площади;
в) среди п точек на плоскости найти три точки',
образующие треугольник наибольшего пери-
метра.
4. Составьте сценарий и диалоговый алгоритм
вычисления интегральных сумм с изображением
графика функций:
a) y=sin х; б) y=cos х;
(1 при х>0, <-* при х>0,
10 при х<0; I х при х<0.
Составьте и отладьте на ЭВМ программу
^решения выбранной геометрической задачи.
.2. Составьте и отладьте на ЭВМ программу
вычисления интегральных сумм с изображением
графика выбранной функции.
ПОШАГОВАЯ ДЕТА-
ЛИЗАЦИЯ АЛГОРИТ-
МОВ
§ 38. Пошаговая детализация алгоритмов
Успех в любой деятельности зависит от тщательности
планирования. И чем сложнее задача, тем важнее умение
спланировать свои действия. Главным при этом всегда будет
четкое определение конечных результатов, затем определе-
ние промежуточных результатов, без которых невозможно
достижение поставленных целей.
Такой подход оказывается единственно возможным при
составлении сложных алгоритмов и больших программ для
решения задач с использованием ЭВМ. Этот способ назы-
вается пошаговой детализацией алгоритмов и
программ. При пошаговой детализации алгоритмы запи-
сываются в виде множества вспомогательных алгоритмов,
решающих вспомогательные подзадачи, а каждая из них
требует получения определенных промежуточных результатов.
Ршработав основной алгоритм, можно приступить к
разработке алгоритмов «второго уровня», которые в свою
очередь могут требовать дальнейшей детали чации Процесс
детализации продолжается до тех пор, пока не будут напи-
саны все нужные вспомогательные алгоритмы. Таким обра-
юм, основной алгоритм представляет собой план действии,
которые необходимо выполнить для достижения поставлен-
ной цели, а суть каждого действия расшифровывается в
соотти гетвуиицем вспомог отельном алгоритме.
•во
В качестве примера пошаговой детализации алгоритмов
можно привести конструирование алгоритмов построения
сложных изображений В каждом таком изображении вы-
деляются главные составные части, затем в них выделяются
более мелкие элементы и т. д. до получения подробного
описания всех деталей изображения.
Описания таких изображений нужно проводить сверху
вниз с помощью вспомогательных алгоритмов, а затем при-
нимать решения о раскрытии этих описаний и конструиро-
вании детальных алгоритмов. Приведем описание плана
изображения и полученный из него детальный алгоритм
рисования изображения моря.
ПОСТРОЕНИЕ АЛГО-
РИТМА «СВЕРХУ ВНИЗ.
МГ 'H3O5fMM£HPf£ МОРЯМ________
мч 1 ~T
MOPE ,
НЕБО
СО/7НЦЕ
OE/7/7EO '/.
05/7450 2
77X777/7
ХОН i ! I ,
/74Г ’/HOPE’ j] [
H4V '
P/M7X4 45)^255,171), СИ7/ММ
PMCEPMCXM ?722,144), СИНЯМ
505
4/1Г ’ОЕ/7/7ГО1’ ,
hhv \ L 1. L.
/}УГ4)№5,25),25/276,555, СЕРИЯ
/УСМ/205,20)20,4,2.56, C£.Н4М
WCCE/!C/r//)2(X>,25), CEP/75
MCCMCH/lfa>O,25),
4/1Г ’57474
PM
77/7РУС
БОР/71
COH
МГ
H/fV
’НЕЕО"
PM/MWfaoJ-fiSE/ro), /ЬМУБ/КГ
Р4СЕР4СМ )122, 75), 7О4У54?
COH
Н/7Г ’БОЕ/77
mi 1 _ J 1 1 I ' 1 ' ' ;
44НЕЯ )35,735)-ftq, 735),CMC//4?
/7/7Г 1774РУС) I i
r-^’1 1-L
44445^20,.3O)-faqi55) 5E/74M _
‘ 5E/1/7M .
)10Q155), 6Е/74Я_
РМСЕРМСМ'fa 5,65), 5Е/МЯ _
/HHHZfaoftj-ftO, 135)
Знк 1994 В А Квймин
161
aai I J-L-l • 1 ' . ~LL
^Yr/H'55,7^^7^ 555f
ДУГА( 72, 75 J17,1, 2. Ъ6,СЕРАЯ _
P/fCKrWCKTI (6Q,75), СЕРАЯ
*2*
Аналогичным образом с помощью
пошаговой детализации могут описы-
ваться и конструироваться алгоритмы
тля решения различных задач с по-
мощью ЭВМ Приведем пошаговую де-
тализацию алгоритма решения следу-
ющей задачи
Задача. Определить длину пути мухи»
летающей между двумя сближающими-
ся путниками
Дано: w - скорость мухи
C’l. V» — скорости путников
5 начальное расстояние
Треб: / — длина пути мухи
Свя м»: И = wt
< и 114* Uji = s
•!ри U). v,.
|—L II—L_l._l i 1 i i । । !
—/(1044656/0 44(OP/f(ffAj __
H АРЯМ£1ш( /vopjf '
SW
r/WM/bveyftsssTf), c
^AC/pacpa (122,144), сарая
РАММ(ЦО) (255, Уб), ЛАУЕАЯ
PACPPACP4(122,45),
Р/КА РУЮ54(20, W), ME/Wl/f?
4УР4(125,25)25,Ощ5Ь5-,
4УГЛ(205,20), 20,4,256, СЕР4Л
P4C5pyfC4o4(2OO,25), OEPrf#
дугу;(5S'/5),15)O>7S, 555, СРРЛ7
4УГЛ(7о,75), 7,4,2 56, СЕР4Я
P4( YP4CP4(60,75),. СЕРАЯ I .
APPH4(f2O,5O)-(l2Q,155), СЕРА*
445^)120,50) (IPO, (55) . СЕгАЯ
/МНИЯ(120,145) (160,155), СЕРАЯ
P4CPPACPA(125, 65), СЕРАЯ
/1тИЯ(1О() 150J-(160,17C) СЕРАЯ
504 _______
Метод.
11 ^wt
I t f/IVf +- V .1
9
162
С1/£НЛЕИЖ
jh/thh ЛИЛИ E/X/f
рлосиояние ~ ©
СЕОРОС/ЛЬ (&
сеоюсиь i-ro-(&
CXO/VC/ПЬ 2-ГО = (g)
Ш/ЮОГО HE £&/&ЛЕ/7Г\
ДЛИНЛ /7У/7И^) J
&£ ‘£>304 4ЛНИЕ/Л"
ш.
МЯЛО с Ш^слаинйЕСЕ s
ЫЛРОС\ШК>С1ЛЬ ЙУ4И4 у/
ЗЛЛР0С\С£0ЁСО4:'~ЙГ4^\ v-f
зллрос Хскорос/ёГТноЩ V2
КОН ~'
'скорость z=7o^\. V2
ЛЛЕ •РЛСУЕ/Л ЛУЛ7И /НУЛИ"
НЛЧ
6Ь/ВОД\ДЛИИЛ ЛУИИ /НУЛИ |
&&O/1 ДЛННЬ/Х |
ЕСЛИ s ^O ИЛИ W2OXW
vi ±оилн ине др_
АЫ&О41/ЛЛКОЕО НЕ&Ь/ВЛЕЛп
ИНЛЧЕ
ЕЛСЧЕР1 л у/ли
МЕ>О4\ДЛИРД ЛУ/ЛИ\ , 3
ЛЕСЛИ
кон i Tl
ЛЛЕ " РЛСУЕ/Л ЛУ/ЛК"
ММ
t- s/(vi+vzj
L :—W t
KOH
4Е/ЛЛЛЬИЬ/Й ЛЛЕОРИ/ЛЛ1:’—
ЛЛЕ ' РЛСЧЕ/Л Л У/ЛИ /ИУУИ'• '
ННЧ
„ 6Ь/&О4 \4ЛИНЛ лу/ли /иухи\
\ РЛсстаиниЕ р\ ,s
Ъ/орддль й/ухи= | ,w
СКОРОС/ЛЬ j-EO =! .УЛ
СКОРОСИЬ2-ГУ= |, V2
зллрос
ЗЛЛРОС
ЗЛЛРОС
ЗЛЛРОС
ЕСЛИ. S^O ИЛИ У/2О ИЛИ
Vi £О ИЛИ У2<0 Л1О
е>ь/ьо4\ллколо ле &ь/зле/л\
ИНЛУЕ
£
S>/fV4/-y2)V_
J Z •= W •_ -ь
Ы/ЬЩ \ Дни НИ ЛУИЙ^Х ,L .
. КЕСЛИ ; I । i
кои ' I .. .. , I-Щ
Использование пошаговой детализации для описания
алгоритмов позволяет четко, ясно и понятно описывать
способы решения задач. Это особенно важно при написании
и анализе правильности алгоритмов решения сложных
задач.
В качестве примера рассмотрим пошаговую детализацию
достаточно сложного алгоритма упорядочения последова-
тельности чисел. В рассматриваемом алгоритме решается
задача упорядочения чисел по возрастанию. При этом
предполагается, что упорядочиваемая последовательность
записана в одномерном массиве х[1:л].
1адача. Упорядочить последовательность чисел.
Дано: %,, , х„ — последовательность чисел
Треб: x'i..х'п — упорядоченная последовательность
Связь: xf Х2<.. 4
УПОРЯДОЧЕНИЕ ЧИ-
СЕЛ
из
7'
Применяемый в приводимом ниже алгоритме способ
упорядочения разъясним на конкретном примере Пусть
дана последовательноегь из четырех чисел:
И1- Ч 5 7 3 1 исходная гик ie юватетьность
Выберем минимальное из этих чисел В этом примере
это число 1. Переставим местами это число с самым первым
числом последовательности. Получим:
17 3 5 первая перестановка
Выберем теперь наименьшее число ере (н оставшихся
чисел и переставим его со вторым элементом массива:
»|1:4| 13 7 5 вторая перестановка
Среди оставшихся двух последних чисел выберем наи-
меньшее и поставим его на пре (после шее место:
v'[l:4| 13 5 7 требуемая последовательность
Таким образом, рассматриваемый способ упорядочения
состоит в поиске минимального числа из последователь
нести т|1:п| затем в по (последовательностях т[2:л|,
v(3:n| и г д. При этом найденный минимальный элемент
переставляется местами с самым первым элементом иод
последовательности i И все перечисленное выполни
ется для k= 1 2 и г. д. вплоть до /1—1, когда останется под
массив из двух элементов у {и I. н].
/Я//-
А Я
О/.
6
,7-.' д/МЛ _
Р4
-AR —'
164
МЛ/ЬЬЮГО' WCtM"
mw BfitH
о/п ь =к+'?/]о А
ЕС/1И X&J <Х LrrjJ Л7С
т = L ,
КЯСхЩ
кцяк/1 _________I_____
Делу П
Получившийся детальный алгоритм
содержит два цикла. Внутренний цикл
в соответствии с алгоритмом органа
зует поиск минимального числа в под-
массиве л [Л:п|. По окончании этого
цикла производится перестановка най-
денного элемента на первое место в
подмассиве х[А:п].
Рассмотрим более подробно принцип работы внутрен-
него цикла. Началу этого цикла предшествует присваива-
ние m:—k, а внутри цикла этой же переменной присваива-
ется значение irr.—l, если выяснится, что элемент х[/] <.
<х[/п|. Таким образом в переменной т фиксируется номер
наименьшего из значений х[А|, .... х[/| По завершении
этого внутреннего цикла в переменной т будет храниться
номер наименьшего элемента в подмассиве л [/г:и].
Рассмотрим теперь принцип работы внешнего цикла. На
первом шаге при k=l в элемент х [ I ] переставляется наи-
меньшее число в массиве х[1:п]. На втором шаге при
А = 2 в элемент х[2] переставляется число, минимальное из
оставшихся в подмассиве х[2:п]. Но так как х' [ 1 ] было
самым меньшим в х[1 :л], то получаем, что х'[1]^х'[2].
Далее на каждом последующем А-м шаге в элемент
х[А] переставляется число, минимальное из оставшихся в
подмассиве х[А:п]. При этом все числа в подмассиве
к’ [ 1: k—1] уже упорядочены и меньше чисел из подмассива
х[А:п], так как числа в х'[1:А—1] получены выбором
минимальных значений. Поэтому -после перестановки на
k-e место наименьшего из л [А:п] получим, что подмассив
х'|1:п] оказывается упорядоченным: х' [1] ^х'[2] С...С
^х' [А— 11 <х' [А].
И наконец, на последнем шаге при А = п — 1 в элементе
х[п — I] оказывается меньшее из оставшихся двух последних
чисел х[и—1] и х[я]. Таким образом, их перестановка об-
разует в массиве х[1 :п] упорядоченную последовательность
х'[1] <х'[2] <...<х'[/г], что и требовалось получить.
1. Что такое пошаговая детализация алго-
ритмов?
2. В чем состоит принцип планирования работ
«сверху вниз»?
вопросы
упражнения
задания
165
3- Можно ли планирование «сверху вниз» при-
менять при написании сочинений? Как это отра-
зится на раскрытии темы?
? 1. Составьте план своей учебной работы на
неделю с явным перечислением основных ре-
зультатов, затем планы работ на каждый день
для достижения намеченных результатов.
2. Придумайте красивую картинку наподобие
"изображения моря", составьте нисходящее
описание ее фрагментов, а затем полное опи-
сание детального алгоритма.
3. Подберите для себя желаемые оценки на
выпускных экзаменах и составьте примерный
план подготовки для достижения поставленной
цели.
Напишите программу по составленному де„
тельному алгоритму рисования выбранной као-
тины, составьте план ввода и испытания про-
граммы в соответствии с самым первым планом
изображения и проведите эксперимент на ЭВМ
2. Попробуйте написать сочинение с составле-
нием нисходящего плана на тему:
U ЭВМ и музыка; 6) ЭВМ и искусство-
в) ЭВМ и мультфильмы; г) ЭВМ и автомобили-
д) ЭВМ и физика; е) ЭВМ и математика-
ж) ЭВМ н география; з) ЭВМ и история;
и) ЭВМ н дети; к) ЭВМ и космос.’
3. Составьте алгоритм упорядочения последо-
вательности чисел (количеством не более 100),
которую сформирует сама машина с помощью
датчика случайных чисел. Напишите программу
и проведите эксперименты на ЭВМ.
§ 39. Приближенные методы решения задач
ПРИБЛИЖЕННЫЕ МЕ-
ТОДЫ РЕШЕНИЯ ЗА-
ДАЧ
Далеко не для всех задач методы решения могут быть
выражены наборами формул с элементарными функциями.
В таких ситуациях для решения подбираются различные
методы приближенных вычислений.
Приближенные методы решения задач предполагают
вычисление не точного искомого решения, а некоторой
последовательности приближений — величин аь ц». С'.<....
значения которых в пределе приближаются к искомым
решениям:
liin сч = с,
k—f оо
где с — это точное решение задачи Например, таким об-
разом можно решить уравнение вида cosx=x
Для вычисления приближений обычно используются
рекуррентные формулы, в которых очередная величина
вычисляется через одну или несколько предыдущих. Одним
ш примеров рекуррентных формул может служить прибли-
женный метод вычисления квадратных корней из положи-
тельных чисел.
Пусть (ано положительное число л. Рекуррентную после-
довательность приближений к квадратному корню \Л' ^ает
следующая система формул. В качестве нулевого прибли-
жения берется исходное число
й. — х.
Первое приближение вычисляется по следующей формуле
а, = 1/2 (x+I )•
а все последукниие по обобщенной формуле
Ct 1 /2 < Jfe i 4“ v/*•’* * k
166
Вычисления продолжаются до тек Пор, пока разность между
очередными двумя приближениями не станет меньше не-
которого заданного малого числа е: |уд — и>_||
Для иллюстрации рассмотрим результаты вычисления
этих формул на ЭВМ для значения квадратного корня из 2
Поскольку здесь .г = 2. то получается такая последователь-
ность приближений:
е,.=2
у, = 1-5
j., = 1116666666
/,= 1.4142156863744
у,= | 4142135623746
as = 1.4142135623730
се= 1.4142135623730
— 1 верная цифра
— 3 верные цифры
— 6 верных цифр
— 12 верных цифр
Если ЭВМ проводит вычисления с точностью до 14 цифр, то
пятое и шестое приближения просто совпадут, как и показано
в примере.
При реализации этого рекуррентного метода в алгоритме
для хранения вычисляемых приближений достаточно всего
лишь двух переменных -для хранения текущего и пре.ды
пущего приближений. Если вычисления квадратных корней
должны проводиться с точностью до 6 цифр, то алгоритм
приобретает такой вид:
ААГ КОРЕША. _
АРГ Ху&ЕЩ I
РЕЗ С 4 ЗЕЩ__________
PAI ' I ' , ,_______
ХЦ рИ-----------X—
. . ;= X I ________
i-— V. •= 1/2 (W+X/W) l__
ПОКА
U-U-
u_____v
Результаты:
e='l() “
U'» = v
<.’i> = l/2(V'i + v/®il
h,‘=l/2(M х/кч)
|A’==ll, 2. ...):|w* -тд1>е[
L- = t4 при lui't — с* I <e
1/2 (W+X/W)
\
С
В этом алгоритме переменная о хранит текущее прибли-
жение, а переменная ш — предыдущее. Первые два присваи-
вания — ш: = л- и у: = 1 /2( ш Ч-л’/аО — дают два первых
приближения в соответствии с рекуррентной формулой.
167
метод половинно
ГО ДЕЛЕНИЯ
Далее в цикле эти два приближения сравниваются друг
с другом. Если разница между ними больше или равна е то
присваивание ьу : — v запоминает текущее приближение
присваивание и: = 1/2(и? + r/ш) вычисляет новое прибли-
жение. Цикл будет продолжаться до тех пор, пока разница
между приближениями не станет меньше к.
Схожие формулы могут применяться для вычисления
корней 3-й и вообще п-й степени. Для вычисления корней
3-й степени можно применять следующую рекуррентную
формулу:
[fc = (l, 2, ...)|.
А в качестве начального приближения вновь можно при
ПЯТЬ 0(1 =Х.
В общем случае для корня р-й степени можно применять
формулу
nt=l/2(o*. i4-x/p*2 I) |&=(1, 2,
а для начального приближения брать vn—x.
Подобные приближенные методы, построенные на рекур-
рентных формулах, используются и для решения уравнений
вида /(х) = () (например, уравнений sin х—х—1=0) или
уравнений /(x) = g(x) (пример уравнения: cosx = x).
Для решения этих уравнений в вычислительной матема-
тике создано несколько методов приближенных вычислений
Простейший из них называется методом половинного
деления.
Для приближенного решения уравнения /(х) = 0 по методу
половинного деления предполагают, что функция f(x) опре-
делена на отрезке |а, Ь\, непрерывна и имеет на концах
отрезка разные знаки: Приведем точную поста-
новку задачи приближенного решения уравнения.
Задача. Приближенно решить урав-
нение fix)—О.
Дано, [о, 6] область определения
f — точность приближения
Треб, с — приближенное решение
Связь; | /(с)| < е
При: /(«)-/(б)<0
непрерывна иа |«. />|
Метод поиска приближений построен па вычислении
середины отрезка c — и анализе значения функции
f(c) в згой точке 1 ели значение функции в этой точке меньше
заданного г |/(с)|<к. то приближенное решение найдено
168
Если же значение функции в середине отрезка больше ₽,
то из отрезков |а, < | и |6, с| выбирается тот, на котором
функция Дх) имеет разные лаки на концах, и решение
ищется на этом отрезке
Соответствующий методу половинного деления алгоритм
приближенного вычисления корней уравнения /(.г)—О
имеет вил:
Результаты:
---С ;= 4—1----!----
— _ Z74Cf - к? ---------------
____мес -fifty - К Я <70 —
-------i 4—1-------------Г+—
д— kec/w\ . -4- 4----------------
С4=* 4?^ /2.
КЦИК/)-----------
- z «4
ХЕС/Ш
при Дао).-Д6п)^О
Co=(ail-j-Z? )/2
[А=(1, 2. ...): |Дс*)|>е]
гири Да*. ,).Дс*)<0
I Ь* = с*
I а* = а*_,
I а* = с*
I й* = 6*-1
I при Да*_,).Дс*)>0
__ait-j-bi,
2
z = lck при |Дс*)| <е
I? при |Дс*)|
для k= 1, 2.
Рассмотрим результаты выполнения этого алгоритма.
Выполнение начинается с проверки, имеют ли разные знаки
значения Да) и Д6) функции на концах отрезка (Да)-Дб'СО).
Если это так, то находится середина отрезка с:=(а4-6)/2
и анализируется значение функции в этой точке. Если это
значение окажется больше или равно г — |Дс)|^е, то нач-
нет выполняться цикл.
В цикле проверяются знаки произведений Да)-Дс) и
Если окажется, что Да) и Дс) имеют разные знаки,
т. е. [(a)-f(c)<0, то будет выполнено присваивание Ь:=с.
Тем самым правым концом отрезка станет середина с исход-
ного отрока [а. />] Если же окажется, что Да) и Дс) имеют
одинаковые шаки, то ДсрДЛ><0 и будет выполнено присваи-
вание а: — с Это отачает, что середина отрока станет
левым конном нового отрезка и решение будем искать на
правом огре >ке.
169
Выполнение цикла будет продолжаться до тех пор
пока значение функции в середине очередного отрезка с
не станет меньше к: |Дс4)|<₽. После этого последнее
значение переменной с будет записано в переменную г.
Однако завершение этого цикла вообще может и не
произойти Такие ситуации возможны для тех функций, ко-
торые имеют разрывы. Например, для функции
'«-LI
при х>0,
при х<0.
а«жна им и* прерыв-
ность функции для »icf-
<*• метода!
Указанная функция на отрезке [—2, 2] имеет разные знаки,
но уравнение /'(х)=0 для этой функции вообще не имеет
решения.
Рассматриваемый метод половинного деления гаранти-
рованно завершается и дает приближенные решения только
для функций, не имеющих разрывов, т. е. для непрерыв-
ных функций. Для таких функций /(х) всегда найдется
точка х — с пересечения графика функции с осью Ох. Сама
по себе непрерывность означает, что малые изменения
аргумента х влекут малые изменения значения функции /(х).
Поэтому делением пополам может быть получен сколь
угодно малый отрезок |щ, 6*], на котором значения
функции отличаются не более чем на е. А это и гарантирует
сходимость последовательных приближений <?0, Сь са, ••• к
корню уравнения /(с)=0 и тем самым завершимость цикла
в алгоритме половинного деления для Непрерывных функций.
вопросы
упражнения
задания
1. Что такое приближенный метод решения?
2. Для каких функций может зациклиться алго-
ритм приближенного решения уравнений
?(«)=«О по методу половинного деления!
1. Составьте программу приближенного вычис-
ления корней и проведите на ЭВМ эксперимент
по исследованию сходимости приближений.
2. Составьте программу приближенного вычис-
ления корней уравнений с построением графи-
ков функций, стоящих а правой и левой частях
выбранных уравнений, и получите на ЭВМ
приближенные решения этих уравнении.
1. Просчитайте вручную квадратные корни с
точностью до 0,001 для чисел:
а) х=4; б) х=9; в) х—5; г) х=10.
2. Составьте сценарий и алгоритм исследования
сходимости приближений с их выводом на
экран для различных хне:
а) квадратных корней; 6) корней третьей
степени;
в) корней пятой сте- г) корней n-й сте-
пени; пени.
3. Составьте сценарий и алгоритм приближен-
ного нахождения корней уравнений методом
половинного деления с построением графиков
функций:
a) sinx=1—х; б) cosx=x;
в) cosx=sin1 2x; г) cosx—x^—1;
д) х3 *=8; е) х5=32.
170
§ 40. Проверка правильности
алгоритмов и программ
Анализ правильности алгоритмов и программ можно про-
водить двумя способами. Первый способ — задавая раз
личные конкретные варианты исходных данных, проверять
конечные результаты их выполнения. Второй способ_____
провести исчерпывающий логический анализ конечных ре-
зультатов выполнения алгоритмов для всевозможных
исходных данных. При этом правильность проверяется
по отношению к постановкам решаемых задач и сцена
риям (или другим формальным описаниям) программы.
Для проверки алгоритмов и программ прежде всего
нужно подобрать некоторые контрольные наборы исходных
данных, которые называются тестами. Для каждого
теста необходимо заранее предусмотреть, какой именно
результат должен быть получен.
Сначала тесты для алгоритмов и программ подбираются,
исходя из сценария и математической постановки задачи,
поскольку и постановка задачи, и сценарий являются обоб-
щенными описаниями конечных результатов выполнения
алгоритмов и программ. Затем необходимо выбрать тесты,
отражающие структуру метода решения задачи и самого
алгоритма.
При подборе тестов следует предусмотреть
1) проверку основных частных случаев задачи;
2) проверку граничных условий;
3) проверку основных типов недопустимых данных.
Рассмотрим в качестве примера такую ситуацию. Пусть
нам представлена программа расчета площади треуголь-
ника по сторонам а. Ь, с. Подберем тесты для проверки этой
программы.
Основными частными случаями являются: прямоуголь-
ный треугольник, правильный треугольник, тупоугольный
треугольник и т п. Для перечисленных частных случаев
можно взять следующие тестовые примеры данных:
тесты
подбор тестов
171
Граничными случаями считаются те. которые дежат на
границе между допустимыми и недопустимыми случаями
Недопустимыми случаями в рассматриваемой задаче явля-
ются данные с отрицательными или нулевыми значениями
сторон, а также такие длины, для которых нарушаются
неравенства треугольника: а + Ь>с. Ь+е^а или
Соответствующие этим случаям примеры исходных данных-
J - J 1 L 1 1 1 J . .1.... 1 4- •— - .
1 ' с
а £
4 з‘ J 1
--i ' '-И ' , X 1 г
’ 1 Г Г1 ’ —
6 0 L _ о1 о Л.
7 и i Цц- 5 -Л
а - о н - — ? - - PEfVFPEK.UftV - — НЕРСРРЕХГИНО
-1 "1 1 г 1~ 9 • -
Проверка алгоритмов может проводиться «вручную»
путем записи промежуточных результатов для тестовых
данных, а может быть осуществлена на ЭВМ.
Тестирование программ на ЭВМ — желательный этап в
проверке их работоспособности. Однако проверка алго-
ритмов и программ на нескольких отдельных примерах не
может служить доказательством того, что во всех ситуа-
циях (т. е. для всех допустимых исходных данных) рассмат-
риваемая программа или алгоритм будут давать правильные
результаты.
Тестирование может выявить ошибки в программе, но не может гарантиро-
вать их отсутствие.
Правильность программ для вычислительных машин
зависит, во-первых, от правильности реализованных в них
алгоритмов и, во-вторых, от правильности перевода этих
алгоритмов на язык программирования. Нарушения правил
перевода называются синтаксическими ошибками, а нару-
шения логики решения задач — алгоритмическими ошиб-
ками.
Большинство синтаксических ошибок автоматически вы-
являются на ЭВМ при выполнении программы. При обна-
172
ружении синтаксических ошибок МЗШИНИ 1||6о ирскрлгмт
выполнение программы, либо вовсе не начнет выполнять ее
Алгоритмические ошибки в программах приводят либо к
получению неправильных результатов, либо к зациклива
нию программы, а возможно, и к аварийному ее завершению.
Обнаружение алгоритмических ошибок требует сверки по-
лученных конечных результатов с ожидаемыми результа-
тами либо с требованиями постановок задач или сценариев
работы с ЭВМ.
Выявление ошибок в программах путем их испытаний
на ЭВМ составляет содержание отладки программ Про
до 1жигельность отладки зависит от числа ошибок. Но
поскольку количество ошибок в программе неизвестно,
то заранее неизвестна продолжительность е< отладки.
Более того, авторы программ даже и не знают, все ли
ошибки они выявили.
Гарантии отсутствия ошибок в программах может дать
только составление алгоритмов с одновременным авали
зом их правильности. Для этого необхоепмы математи-
чески строгие постановки задач, определяющие прави 1ь
кость конечных результатов, и сценарии, определяющие
правила работы -)ВМ при выполнении составленных про-
грамм.
Методы исчерпывающего логического анализа ошибок и
математического обоснования прави шности алгоритм ш
изучаются в следующей главе.
ОТЛАДКА 1РОГРАМ-
МЫ
ЛОГИЧЕСКИЙ АНД
ПИЗ АЛГОРИТМА
,?'1. По каким правилам подбираются тестовые
данные для проверки программ Г
2. Гарантирует ли отладка программы на ЭВМ
отсутствие в ней ошибок?
3. Каковы основные причины возникновения
алгоритмических ошибок?
4 1. Составьте необходимый набор тестов ^ля
алгоритма вычисления наибольшего общего
делителя пары чисел.
2. Подберите метод и составьте алгоритм
вычисления координат точки пересечения пары
отрезков, заданных координатами концов, и
составьте для этого алгоритма необходимый
набор тестов.
вопросы
упражнения
задания
1. Составьте сценарий, диалоговый алгоритм и
программу расчета площадей треугольников по
длинам их сторон и проведите испытания про-
граммы на ЭВМ. _
2 Напишите постановку задачи, составьте сце-
нарий и диалоговый алгоритм для решения
задачи о пересечении пары отрезков (в алго-
ритме должно быть предусмотрено изображе-
ние отрезков). Напишите программу и прове-
дите ее испытания иа ЭВМ.
ГЛАВА
ОСНОВАНИЯ ИНФОРМАТИКИ
§ 41. Анализ выполнения алгоритмов
Одна из наших целей — научиться разбирать, правиль
но ли составлены алгоритмы. Этого можно достичь научив
шись находить промежуточные результаты их выполнения
а зная их, делать выводы о конечных результатах выпал'
нения алгоритмов.
В качестве первого примера рассмотрим следующий
вспомогательный алгоритм:
Пусть
х = 2
Результаты:
14=2-2=4
а2 = 4-4 = 16
У-1'2-х=32
П4/ИЯ ГЬ.
Рассмотрим детально ход выполнения этого алгоритма
Первые два присваивания ci:=x-x и для одной и
той же переменной v последовательно вычисляют два
значения:
1’1 =х-х=х2,
V-2 = Vi -I'l =х2-х‘2—х1.
Мы говорим, что Vi — это первое значение переменной v,
a v-2 — второе значение этой переменной. Для описания
результатов мы будем около имени переменной в качестве
индекса указывать номер значения, которое она в данный
момент принимает.
Последнее присваивание y.—v-x в этом алгоритме
вычисляет произведение значений, хранящихся в перемен-
ных v и х. А поскольку к этому моменту в переменной v
хранится второе значение v^=x, то конечным результатом
станет значение y = .v5.
В частности, при х=2 мы получим, что конечным ре-
зультатом будет у = 32, что и было подтверждено вычис-
лениями, приведенными справа от алгоритма. Однако бла-
годаря проведенному доказательству мы можем утверждать,
что этот результат (// = лг5) справедлив для любых значений
аргумента х.
В качестве второго примера анализа правильности
174
алгоритмов рассмотрим следующий вспомогательный л
юритм.
АЛГОРИТМ .neptCTA
нови а чисел»
хр у0
[анныи а.норигм. как пн странно. всегда производит
перестановку значений переменных г и I/ Рассмотрим
вначале результаты выполнения этого алгоритма на конкрет-
ных числах.
Пусть начальные значения переменных х и у равны
г,i=5 и уп—3 Первое присваивание х;=г —у вычислит
их разность х„ — </п = 5 — 3 = 2 и запишет эго значение в
переменную \ Таким образом, в переменной \ окажется
число С|=2. Второе присваивание у. = t 4-у к текущему
значению переменной у прибавит текущее значение пе-
ременной л и запишет сумму 2+3 в переменную у. (’ледо-
нагельно. значение переменной у станет равно i/i=5. И на-
конец. последнее присваивание х:=1/—х вычтет из этого
нового значения переменной у число 2 текущее значение
переменной .г и запишет эту разность 5 — 2 = 3 в з Таким
образом, значения переменных х и у станут равными v; = 3
и т/|=5. а это и есть перестановка значении переменных
1 и у.
Рассмотрим теперь выполнение этого алгоритма в общем
случае при произвольных начальных значениях с и у Пер-
вое присваивание х:=у—\ вычисляет разность //» —хи
первоначальных значений переменных л и у и записывает
результат в переменную х. Это новое значение переменной х
становится равным 3|=т/<> — th- Второе присваивание
|/:=л + (/ вычисляет сумму текущих значений переменных
' и у и записывает полученное значение в переменную у.
Значение у становится теперь равным (/, = х, +//,, = х() —
~ J/<>+ </»=.х., т е. первоначальному значению переменной х.
Последнее присваивание х:=у— х вычтет текущее значе-
ние д-| из текущего значения у< и запишет эту разность
lb — Xi в переменную х. Следовательно, последнее значение
переменной х станет равным v2 = (/i —х, =хо—(хт, — </..) =
= »/•., т. е исходному значению переменной у
Итак, мы доказали, что, какие бы числа ни содержали
АНАЛИЗ ПОСЛЕДО-
ВАТЕЛЬНЫХ АЛГО
РИТМОВ
175
АНАЛИЗ АЛГОРИТ
MOB. содержащих
ВЫБОР ДЕЙСТВИИ
первоначально переменные х и (/, в результате выпоин-им ,
алгоритма они обменяются значениями! '
Из этих примеров можно сделать два вывода Во
первых промежуточные результаты выполнения последо-
вательности присваиваний можно описывать обычными
системами уравнений. Во-вторых, получить описание конеч-
ных результатов можно с помощью простейших подста-
новок формул из этих систем.
Анализ алгоритмов, содержащих выбор действий тре-
бует разбора соответствующих случаев. Рассмотрим это на
примере алгоритма вычисления модуля (абсолютной ве-
личины) числа:
' 1'1'4.
УМ Г '/HO4W13 WfCYM"
4РГ [ -j । I
/УЗ У -ЗЕЩ
шч ,Ц- I j
EC/ltf X > О РЮ.
PEEVE
У ••= -x
XECXP
POP.
Результаты:
| при x^O
U = x
f при x<0
U = —x
Для анализа алгоритма необходимо разобрать два
случая: I) когда значение аргумента х^О и 2) когда х<0.
При условии х^О в этом алгоритме выполняется первое
присваивание у:—х. Его результат у=х. При условии
х<0 (и только в этом случае) выполняется второе присваи-
вание у. = —х, и его результат будет у=—х.
Исходя из анализа результатов выполнения алгоритма в
этих двух случаях, конечные результаты можно описать
следующим условным соотношением:
АНАЛИЗ АЛГОРИТ-
НОВ,
ЦИКЛЫ
_г х при х^О,
У I —х при х<0,
которое является определением модуля числа у—1x1. Ре-
зультаты выполнения всех алгоритмов, содержащих выбор
действий, описываются такого рода системами соотно-
шений, в которых указываются условия применения тех или
иных формул. Эти системы соотношений мы будем называть
системами условных соотношений.
Что же касается алгоритмов, содержащих циклы, то
промежуточные результаты их выполнения описываются
системами рекуррентных соотношений. Начнем разбор с
примера алгоритма суммирования чисел, содержащихся в
176
некотором МЭССИ RC.
Л/1Г 'СУМ/И/7РО&ЛЧХЕ ЧИСЕ/7*
fiPP П-ЦЕ/7
X [1 П7 £>ещ_
PE3: y-EE^^fLU_________
НУР/ . _| . 4—j--1-----
S :=O . _L___। __
0/77 K=1 xfr? E ЦРК77
S ~ S X£EJ I ,
ХЦХХ/1 . I
LJ y.=s _Ц----
XO# -J- I-
Результаты:
so = 0
/Sft — Sh — I +x [6]
lft = l, 2...n
y = sn
пхуи^ть:
Первое присваивание в атом алгоритме определяет
начальное значение переменной s, равное нулю (s() = 0).
Далее в цикле при изменении k от I до п происходит пере-
вычисление значения переменной s, которая принимает
•ряд значений: Si, s2, ..., s„. Все эти значения формируются
одним и тем же присваиванием s:=s + x[fe], но при раз-
личных k(k=\, 2...я). При этом каждое новое выполнение
этого присваивания увеличивает значение s на л[6].
s* = s*_i+x[6j.
При k = \ значение переменной s станет равным
Si=So + x|l] = л[1].
При k = 2 оно станет равным
$2 — si 4-х [2] = х[ 1 ] + х [2].
Далее, при 6 = 3
S3 = sj4-x[31 =л'(1] +-v[2] +л[3] и т. д.
Исходя из вида этих формул, можно утверждать, что
эти величины являются частичными суммами элементов
массива, а именно
St=x[l] 4-...+-U6].
Действительно, если предположить, что предыдущее зна-
чение этой переменной s уже равно s*_i =.v[ 1 ]+•-.+
-|-х[6—1) то присваивание s:=s + x[6] на следующем,
6-м таге никла даст значение
ц, = х*_1 +х[6| =х[1] + +-'|6— 1] +х[6].
Следовательно, по окончании цикла присваивание
4-—S зафиксирует в переменной у новое значение
У—s„=xfl|4-...-f-jc|/i|, т. е. сумму элементов массива л|1:п].
177
вопросы Г~“ “1
упражнения р|Ц
задания
1. Определите конечные результаты выполне-
ния алгоритмов:
91. Как определяются конечные результаты
по ледов цельности присваивании?
2. Как проводится анализ алгоритмов с выбон
ром действий?
3. Как описываются результаты выполнения
циклов?
а) -i-T-t-b-M-
“5^
рез у.;^ещ
л. ।
б)
"Л 1 т-7» i •
АРГ К- РЕЕ £ ЕЕл —
л^У
Е<УМ > г<- *
г?
в)
£РГ \ А ЕЁ///
РЕЗ МАЧ
--н 4.^ / : = = г^
Ат5С 7И
i
“Г .
ME
ЕРЕ
5^3
РАУ
д)
_ __
__-ЫЛ Л7<
&ЕЩ
= X£V7_.__
S.
п П Ц&И.
ШЗЕ
ЕШ(ВР"4_
SP^.|
* □ Ш j
17В
§ 42. Анализ правильности алгоритмов
Правильность алгоритмов и программ очень важна для
нас, поскольку мы хотим знать, всегда ли они будут давать
требуемые результаты. Поэтому бессмысленно говорить,
правилен алгоритм или нет, если мы не поняли до конца
задачу, которую этот алгоритм должен решить
Правильность алгоритмов и программ может обеуж
даться только тогда, когда имеются четкие определения
правильности результатов. Для этого и нужны постановки
задач и сценарии. При их наличии мы можем однозначно
судить о наличии или отсутствии ошибок в алгоритме
Напомним, что алгоритм является правильным, если он
дает правильные результаты при любых допустимых исход
ных данных.
В качестве первой иллюстрации приведем постановку
задачи и алгоритм вычисления 10-й степени числа, а затем
доказательство его правильности
Задача Вычислить с10.
Дано: х — исходное число
Треб: у — степень числа
Связь: у — v 0
Результаты:
U1 = .т- т
Vt = V\ -О|
Ц, = V» X
y = vt-vs
При: любом \
Утверждение.
При любом аргументе з конечное значение, вычисляемое
данным алгоритмом, будет равно у — х"’.
Доказательство. Рассмотрим промежуточные резуль-
таты вычислений, выписанные справа от описания алго-
ритма. Пользуясь этими формулами, определим, как ко-
нечный результат — значение у — зависит от величины х.
Проведем подстановки:
у = V « • V3 = (Уз)2 = (0-2 • •"')“ = (О| • v I • х) — ((t'l )2 •-' ) =
=((x.x)2-.r)2=(xJ)2=jf"1,
ЧТО и требовалось доказать.
Ценность построения доказательств правильности со-
стоит в том, что они могут вскрыть ошибки в алгоритмах.
Согласно определению правильности алгоритма наличие
ошибок означает, что можно указать такие допустимые
ДОКАЗАТЕЛЬСТВО
ПРАВИЛЬНОСТИ по-
могает найти ошибки о
алгоритмах
179
данные, при которых выполнение алгоритма даст неправнчь
ные результаты либо вообще никаких результатов
В качестве иллюстрации рассмотрим следующую версию
алгоритм.) вычистения максимума из трех чисел: г
Результаты:
max — а
при а^Ь
max—i
при «<(>11 Ь^с
шах = с
при а<Ь и с>Ь
Попробуем доказать правильность этого алгоритма
Приведем математическую постановку' задачи.
Задача. Нахождение
Дано: а, Ь, с — исходные числа
Треб: max — максимальное число
Связь:
1а при оЬ и а^с
b при Ь^а и Ь^с
с при с^а и с^Ь
При: любых а, Ь. с
максимума из трех чисел.
Утверждение о правильности пред-
ставленного алгоритма в соответствии
с постановкой выражается так:
Утверждение. Конечный результат выполнения приведенного алгоритма
(значение переменной max) при любых значениях а, b и с —
максимум из этих трех значений.
Попробуем доказать это утверждение. Для этого мы
должны доказать, что алгоритм дает правильные резуль-
таты в любых ситуациях.
Доказательство. Для алгоритмов, содержащих выбор действий, анализ
требует разбора случаев. В данном алгоритме в соответствии
с постановкой задачи возможны три основные ситуации,
когда: I) конечный результат равен первому числу (max—а);
2) результат равен второму числу (тах = Ь) и 3) результат
max —с.
Разберем первую ситуацию. По описанию алгоритма
результат тах = а будет получен, если а~^Ь. Но поскольку
при этом не учитывается значение переменной с то может
180
случиться, что значение с окажется больше а. В этом случае
алгоритм в качестве результата дает значение max —а
правильным результатом должен быть max —с (что указано
в постановке задачи) Таким образом, алгоритм непра
вильный. это можно подтвердить на примере а = 2 Ь=1
с = 3
Ошибкой в приведенном алгоритме является непра-
вильное условие выбора первого числа в качестве мл ген-
иального значения. Одной проверки а^Ь недостаточно
Необходимо проверять еще и условие ц>с. Правильной
версией для решения поставленной задачи можег служить
следующий- алгоритм
мг'юеыи змкыму/и хз lyv/ft
ДРГ О. Ь, С : ЛЕЩ
РЕЗ max ЛЕЩ
.W
ЕС/Щ X-CLIC ,7£>
max --11
хнес щ *с яд
так = Ь
тах - с
XECEPf
J
Результаты
I max— и
I при <i>b и а'ч
I max = b
l при u-^b и />•>(•
t tnuv^C
(При (I<4 и < >b
Попробуем теперь провести доказательство и для этого
алгоритма. В соответствии с постановкой задачи нам опять
нужно рассмотреть три основных случая:
I) а^Ь и о^с; 2) Ь^а и Ь^с; 3) с^а и г^Ь.
Согласно постановке задачи должны быть получены сле-
дующие результаты:
I) при а^Ь и а^г результат должен быть тах = а;
2) при Ь^а и Ь^с результат должен быть mav = 6;
3) при с^и и с~^Ь результат должен быть max —с.
Исходя из описания результатов выполнения алгоритма
Для первого случая, получаем, что выполняться будет
первое присваивание max: —а. а его результатом будет
значение тах = а, что и требовалось.
Во втором случае при и Ь^с выполнение алгоритма
зависит от ситуации: Ь>а или Ь — а. В первой ситуации,
когда Ь>а, выполняться будет второе присваивание
max: = b. Соответствующий результат — mac=i. Во второй
181
ситуации, когда f>=d и b^sc. оказывается истинным усло
вие а^Ь и а>с. Поэтому в данной ситуации будет выпол
няться первое присваивание тах:=а, но поскольку
то конечным результатом вновь оказывается тах==а=Ь
что и требовалось
В третьем случае, когда и с^Ь, возможны уже
три ситуации: с=а и а^>Ь, либо с=Ь и Ь>а, либо с>0
и с>Ь. Рассмотрим по очереди все эти ситуации. В первой
из них при а~^Ь и а —с выполнится первое присваивание
тах:=и. Но поскольку а = с, то конечным результатом
будет тах=с, что и требовалось. Во второй ситуации при
с = Ь и Ь>а выполняться будет второе присваивание
тах:=Ь. А так как Ь — с, то конечным результатом ока-
жется тах=с. Ну, а в последней, третьей ситуации, когда
с больше а и Ь, будет выполнено присваивание max: =с.
Таким образом, во всех трех ситуациях конечный результат
оказывается равным тах=с, что и требовалось доказать.
Итак:
Для утверждения о наличии ошибок в алгоритме достаточно указать
контрпример.
контрпример Контрпример — это набор допустимых данных, при которых
будет получен неправильный результат либо результатов
не будет получено вовсе.
Для утверждения об отсутствии ошибок в алгоритме необходимо доказать,
что правильные результаты будут получены при любых допустимых данных.
А для этого необходим исчерпывающий анализ правиль-
ности результатов при любых (!) исходных данных.
Техника анализа правильности алгоритмов — это техни-
ка анализа промежуточных результатов выполнения. Для
последовательностей присваиваний анализ сводится к про-
ведению подстановок, а затем к сопоставлению утверж-
даемого с конечными результатами вычислений.
Для альтернативно выбираемых действий анализ пра
вильности проводится разбором вариантов, соответству
юших частным случаям постановок решаемых задач и
подзадач.
Особого подхода требует анализ правильности алго-
ритмов, содержащих циклы. Эти алгоритмы работают с
последовательностями величин Рассмотрим в качестве при-
мера алгоритм, вычисляющий п-ю степень числа. Начнем с
постановки задачи:
Задача. Вычислить х"
)ано^ х— основание степени
п показатель степени
182
Треб: ц — степень числа
Связь: у=х"
Прж п — целое, п > О
Результаты:
Л£\3
h W
( Vh = V/i _ । • Л"
u=i. 2.. п
КОД-
/иг
_ % ,
”СЯ£ЦЁДЬ WfC/7fi
х-еещ
п цел
У : ?>£Щ
4- . ОЙ! 40 п
Утверждение.
Для представленного алгоритма при любом значении ар-
гумента х и для любого целого п>0 конечным результатом
будет у — х".
Доказательство.
Рассмотрим промежуточные результаты выполнения цикла в
этом алгоритме. Первое присваивание о: = 1 формирует
первоначальное значение переменной и, равное ри=1.
Далее в цикле для k= 1, 2, .... п будет и раз выполняться
присваивание v:=u-x. При k=l результатом первого
присваивания будет значение
пл/яяпъ:
.0 №ир
z П ЗЕЩ
У D .ВЕЩ.-’
|П П ЬЕ«у
Vi = vu-x = x
После второго выполнения этого присваивания при k = 2
значение переменной v станет равно
O2 = ll| .х = х-х = х'2.
Исходя из этих соотношений для k—\ и /г = 2, можно пред-
положить, что на последующих шагах значение v будет
равно Vb—x1' для всех k— 1, 2...п.
Действительно, если для k— 1 предположить, что
то, подставляя эту формулу в описание результатов выпол-
нения присваивания v'.—v-x, получаем:
= Х-Х* ’.А- = х*.
Данное утверждение справедливо для k=i, k — 2, и его
можно проверить для Л = 3, 4 и т. д. Поэтому можно заклю-
чить, что оно будет верно для всех k = 1, 2, .... п.
Следовательно, о последнем в алгоритме присваивании
y'=v можно сказать, что его результатом будет
п-я степень чис та х, что и требовалось доказать.
183
вопросы | — I
упражнения к г
задания Ш.лЛ
а) I! <_• _ 1_|_1
^Р.с * ^4 зЛяЯГСЬ; ,
1
Т I. Зачем нужны доказательстве правильности
алгоритмов?
2. Что такое ошибки в алгоритмах?
3. Откуда берутся утверждения о правильности
алгоритмов?
4. Как проводится анализ правильности после-
довательностей присваиваний?
5. Кек проводится анализ правильности а л го*
ритмов с выбором действий?
• Выясните, являются пн правильными следующие
алгоритмы:
А<2&
§ 43. Анализ правильности циклов
К сожалению, анализ правильности алгоритма с циклом,
изложенный в предыдущем параграфе, является не доказа-
тельством, а всего лишь правдоподобным рассуждением.
То, что последовательности величин формируются в ал-
горитме правильно при /г=1, k = 2 и Л? = 3, еше не гаран-
тирует, что они будут правильными всегда.
В данном случае мы имеем дело с индуктивными рассуж-
дениями, которые не всегда оказываются правильными.
Широко известно "доказательство" того, что все натураль-
ные числа меньше 100. Действительно, число 1 меньше
100; 2, 3 и 4 также меньше 100; 5, 10, 20, 30 и т. Д. — все это
184
числа, меньшие 100. Следовательно, все натуральные чиста
тоже меньше 100. Разве является убедительным подобный
способ "доказательства"?!
Правильность индуктивных рассуждений требует более
строгого способа обоснования. Одним из таких способов
является принцип математической индукции. Этот принцип
просто понять на следующем примере. Пусть в очереди
первой стоит женщина. Если к тому же известно, что в эту
очередь за каждой женщиной вставала только женщина,
то можно сделать вывод, что в очереди стоят только
женщины.
Сформулируем теперь принцип математической ин-
дукции. Пусть имеется последовательность утверждений
Ai. А>, Aj и т. д. Пусть первое утверждение А । истинно.
Пусть также известно, что из истинности утверждения Л
следует истинность последующего утверждения А»+, для
любого Тогда все утверждения Л,, А-., А., и т. д. истинны.
Покажем, как работает этот принцип, на следующем
примере
Рассмотрим последовательность сумм нечетных чисел
1, 3, 5, 7.
ПРИНЦИП МАТЕМА-
ТИЧЕСКОЙ индукции
s( = l=l-,
52=1+3 = 4=2-’,
53=1 +3 + 5=9 = 3*,
•Si = 1 +3 + 5+7 = 16 = 4 ’ и т. д.
Анализ этих сумм позволяет выдвинуть гипотезу, что
каждая из этих сумм равна квадрату числа слагаемых:
1 + 3 + 5 +... + (2zz— !)=«-', н = 1. 2,
Доказательство этого общего утверждения для всех л
проводится по принципу математической индукции
Первое утверждение 5| = 1 = Е’ истинно. Далее, если
и-е утверждение истинно: 1 +3 + 5+ ... +(2л— 1)=п2,
т. е. сумма п первых нечетных чисел равна квадрату
числа слагаемых, то сумма п +1 нечетного числа будет
равна
1 +3 + 5 + ... +(2л— l) + (2„ + D = »' + 2n+ I =(„+ I)2.
Значит, из истинности п го утверждения следует ис-
тинность (п+1)-го. Тогда согласно принципу математи-
ческой индукции наше утверждение о сумме нечетных чисел
верно для любого п.
Рассмотрим теперь пример доказательства правиль-
ности алгоритма вычисления среднего из « чисел. В рас
сматриваемом вспомогательном алгоритме предполагается,
что последовательность чисел размещена в массиве л [1:н|
185
I 1 |
/77/ • "СРЕДНЕЕ <3 /7 ЧиСЕ/7*
лр-
X [< nj: е>£щ
У'ЗЕЩ
PEJ
мАч
S :-о
Результаты:
Sn = O
г 5* = (k — I )/k • Sfe..,+x[k]/k
ЦЛ=(1 ... «)|
i/=S„
ОГЛ К=1 £0 &. ЦЬК/7
. _ 5 = (K-lJ-S/* XLKJ/K
/ЦУМ
У =6
HCrr
гч т
Для доказательства правильности этого алгоритма нам
необходима математическая постановка задачи.
Задача. Определить среднее п чисел.
Дано: ...... t„ — последовательность
чисел
п — количество чисел
Треб: S — минимальное значение
Связь: S=(xi + ..- + x„)/n
При: п — натуральное
Утверждение.
Представленный алгоритм для любой
последовательности чисел Xi.. х„
(n^l) вычисляет их среднее:
i/=(xi + ...4-.v„)/n.
Доказательство. Рассмотрим результаты выполнения
присваиваний в приведенном алгоритме. Первое присваива-
ние 5:=0 дает первоначальное значение переменной S,
равное S(l=0. Далее в цикле от k= \ до п присваиваниями
S:=(k—\\-S/k вычисляется следующий ряд значений:
S,=ji|l-l)/l-Su + x[l]/l=x[l]/l.
S2=(2-l)/2.S,4-x[2]/2=x[i]/2+x[2]/2=
= (ХП] +-*’[2])/2,
S,=(3-l)/3.S, + x[3] /3=2/3-(x[l] +
+ x[2|)/2 + x[3]/3 = (x[l] +х[2])/3 +
+ x[3]/3=(x[lJ+x[2] +x[3])/3 и т. д.
Из этих формул можно сделать предположение о том,
что на очередном, k-м шаге значение 3* переменной 5 ста-
новится равным:
St = (х [ I ] +... + х [/г])/k.
Докажем это утверждение, используя принцип мате-
матической индукции. Действительно, для k= I это утверж-
дение, как показано выше, истинно.
186
Предположим теперь, что истинно (k — 1)-е утвержзд
нне, т. е. что подле k —1 шагов выполнения цикла значение
переменной S равно
S* ,=(л[1]+.. +x[fe— l])/(/i — 1).
Тогда после /г-го выполнения цикла в переменной S ока-
жется записанным значение
£д. = (/г— I )//г•£*_,+%[6] /k=(k — 1)//г-(х[1] +
+ ..+ '[*- П V'.k— 1)4-л [/г] А = (л (1] + ...4-х[*-1])//г +
+ х|А-|М = (л [1] +.„4-л-[А-] )//г.
Следовательно, в силу принципа математической ин-
дукции наше предположение верно для всех /г=1, 2....п.
Верно оно и для k — n. А поэтому последнее присваивание
в алгоритме у. =5 дает в качестве конечного результата
значение
(/=5„=(л [1| + -+*[«] )/п.
равное среднему из п чисел х..... л„, записанных в мас-
сиве х[1:л], что и требовалось доказать.
Применение принципа математической индукции в свою
очередь имеет ряд особенностей. А именно такого рода ин-
дуктивные заключения справедливы тогда и только тогда,
когда верна база индукции (первое утверждение для /г=1)
и верен индуктивный переход от k— 1 к к. Нарушение одного
из этих двух условий может привести к получению не-
верных выводов. Наиболее часто это проявляется в построе-
нии циклов, когда неверно организуются либо начальные
условия для выполнения вычислений в цикле, либо вы-
числения внутри цикла противоречат индуктивным утверж-
дениям о требуемых промежуточных результатах.
Для иллюстрации рассмотрим алгоритм, содержащий
ошибку. Этот алгоритм предназначается для вычисления
минимального значения в массиве.
ПРИМЕНЕНИЕ ПРИНЦИ-
ПА МАТЕМАТИЧЕСКОЙ
индукции
ЗРГ п ЦЕЛ L -4—1—
XL i nj -ззщ
РЕЗ men е>ЕЩ I— _
AW
от х= 1 до л црх/7
ec/w х£л]<п,<. о то_
ЛЕСЛИ
лцихл
РОИ
Результаты:
_i x[k] при х[Л] <mini,_,
imirit — । При mint—i C-v[*]
p=l, 2, , n
He торопитесь читать
дальше — попробуйте
найти ошибиу самое
тоательно.
187
Оииока в этом алгоритме связана с неправильной
организацией начальных вычислений, что вскроется сразу
же при попытке доказать его правильность. Но для дока
зательства правильности нам необходима математичесю
строгая постановка решаемой задачи.
Задача. Определить минимальное
значение в последовательности величин.
Дано: ...... г„ — последовательность
чисел
Треб: т — минимальное значение
Связь, т = m Iп (х. х„)
При: п -- натуральное
Утверждение о правильности рас-
сматриваемого алгоршма означало оы.
что для любых после зова 1ельнестей
чисел . х„, размещенных в мас-
сиве з(1:п], конечным результатом
было бы минимальное из них значение
m = iTi.n(ci, »„),
Построение алгоритма таконо, что на каждом ш;ие
анализируется, является ли очередное число t [„) меньше
текущего значения переменной min Ес ш значение с Ц|
оказывается меньше текущего значения переменной min,
то новое значение этой переменной присваиванием
шш: = с(/г| становится равным тщ» —Х|А|
Тачим образом, переменная пип в данном алгоршме
используется для фиксации наименьших шачений и можно
было бы выдвинуть предположение, что
mirtt = inni(i (1(. \|£] I.
Действительно, если справедливо утверж типе
mini,. >=111111(3(11, . \ (А? — I ]),
то в силу построения алгоритма происходит следующее
Если очередное шачение с [&] окажется меньше этой
величины, то новое значение переменной min присванва
нием «н’л:=л(А] станет равным mini,—з (AJ =niin(A [I],
[А]), Если же текущее значение переменной пип ока
жется меньше или равно * [&), то никаких присваиваний
не производится и значение переменной пип остается преж-
ним. Тем самым доказана правильность индуктивного
перехода.
Таким образом, после очередного /г-го шага выполнения
цикла переменная min примет значение
Щ1Щ = НППР [1].. <[/:]).
если на самом первом шаге выполнения цикла будет спра-
ведливо, что
mini = min (v [ 1 ] t= v[ 11.
Но по алгоритму при h— 1 переменная min получит зна
чение щщ| = \[1], только если оно окажется меньше на-
чального значения переменной min. А это начальное зна-
' чение minu в алгоритме не определено И поэтому поведе-
188
ние алгоритма в целом из-за неопределенности начального
значения переменной min также не определено конеч-
ный результат может оказаться правильным а может ока
1а вся и неправильным.
Исправлением выявленной ошибки может служить
следующая версия алгоритма-
Утверждение.
Представленный алгоритм для любой последователь-
ности чисел \|. , v„ тает в качестве конечного результата
минимальное «качение в згой последова тельное ги
/НП!=П1Ш г*.
I
1 о к а з а т е л ь е т в о
Рассмотрим результаты выполнения этого а поритма
Первое присваивание /п: = «[1] фиксирует в переменной т
значение первого элемента массива «[!]
Далее начинается ццкл от k — ‘2 до п. На каждом шаге
цикла сравниваются значения k-ro элемента массива . [1:н]
и текущее значение переменной т. Если значение л [А?]
оказывается меньше текущего значения переменной т, то
выполняется присваивание ш:=л[Л] В противном случае
никаких присваиваний не производится.
Рассмотрим результаты этих вычислений при А? = 2.
Если значение х [2] окажется меньше, чем значение
тН|=л[1], хранящееся в переменной т, то новое значение
тг=«[2]. Если же л [2] окажется больше или равно зна-
чению mi, то значение переменной т не изменится. Таким
образом, в обоих стучаях в переменной т оказывается
значение, наименьшее из величин т [1] и v[2|, т “. значение
т становится равным ш-_> = ппп (.v 11 ], «[2]).
189
Имеет ли отношен не
к индукции принцип
математическом ми-
дукцни! ('|
Аналогичные рассуждения можно провести н дтя с е
дующего шага цикла при /г = 3 и получить заключение, что
nij = niin(.r[l], .г [2]. х[3]).
Далее вполне естественно сделать индуктивное утверж
дение о том, что после очередного к-го шага выполнения
цикла значение переменной т будет равно
zn* = min (х[1].................).
Доказательство этого утверждения проводится с по-
мощью принципа математической индукции. Случай Л = |
мы уже разобрали. Покажем теперь, что если при k — 1
в переменной гп уже хранится минимальное из первых
к— 1 чисел 1 2 3
m*_i = min(vfl], ..., х[£—1]),
то после Л-го шага цикл в этой переменной будет содержать
наименьшее из первых k элементов массива \[1:п].
Действительно, если х[Л] окажется меньше т (а зна-
чение этой переменной по предположению равно минималь-
ному значению из первых k — 1 чисел), то v[/?j — наимень-
шее из первых к элементов массива. В этом случае в алго-
ритме и выполняется присваивание Если же
значение х[/г] окажется больше или равно текущему
значению переменной т, то опять же в силу предположения
минимальное из этих k чисел находится среди первых k — I
элементов. Соответственно в алгоритме значение перемен-
ной т остается неизменным. Таким образом, в обоих слу-
чаях значение переменной т становится равным
m* = min(.v[l], ..., %[£]).
В силу принципа математической индукции это утверж-
дение справедливо для всех к=\, .... п. Следовательно,
последнее присваивание в данной версии алгоритма даст
в качестве конечного результата
/nin=/n„=min(v[l], .... v[zi]),
что и требовалось доказать.
Приведенные примеры анализа алгоритмов показывают,
что анализ правильности алгоритмов — это, вообще говоря,
анализ правильности реализуемых в них методов решения.
Более того, все основные свойства алгоритмов — их резуль-
тативность, конечность и массовость — это прежде всего
свойства методов решения задач, заложенных в эти ал-
горитмы.
вопросы Г, —
упражнения р|Ц
задания
1. В чем состоит принцип математической ин-
дукции?
2. Как доказывается правильность алгоритмов
с циклами?
3. В чем сложность анализа правильности
циклов общего вида?
190
। Докажите, используя принцип математичек-
смой индукции:
а) 2+6+10+-+2-(2-л-1)=2-п*;
6' 1-2-I-2 5 ' 3-8+ —+п-(3п —1)=пг (г>+1);
.) 1 <1 2)+1/(2-3) + ..- + 1/(п(п+1))=п/(п+1):
г) 1- Н2-+3'+ ..+п =п (п+1) (2 п+1)/6.
2 Составьте аторнтм поиска максимального
числа ь Массиве и докажите его правильность.
3. Составы^ алгоритм поиска эаданиого нит та
в массиве и покажите его правильность
4. Составьте алгоритм подсчета суммы:
а) положительных;
6) отрицательных элементов массива и дока
жите ®го правильность
§ 44. Анализ сложных алгоритмов
Решение сложных задач мы всегда стремимся свести к
решению задач более простых Эта идея составляет суть
пошаговой детализации, которая используется для составле-
ния сложных алгоритмов При таком подходе сложные
алгоритмы строятся из вспомогательных алгоритмов,
каждый и) которых решает некоторые достаточно простые
вспомогательные подзадачи.
Чем сложнее становятся задачи, гем более сложные
алгоритмы используются для их решения и тем больше
вероятность проникновения ошибок. В таких ситуациях тем
более необходимо применение пошаговой детализации (и
не только в построении алгоритмов).
Анализ сложных алгоритмов также предполагает при
менение принципа разделения трудностей: разделяй сложные
задачи на более простые В соответствии с этой идеей
доказательство правильности сложных алгоритмов прово-
дится по частям — сначала проводится анализ правиль-
ности алгоритмов, решающих вспомогательные подзадачи, а
затем доказывается правильность решения задачи в целом,
опираясь на предположения о правильности вспомогатель-
ных алгоритмов.
В качестве первого примера рассмотрим алгоритм вы-
числения площади треугольника, заданного на плоскости
координатами вершин. Математическая постановка этой
задачи
АНАЛИЗ СЛОЖНЫХ
АЛГОРИТМОВ
Задача. Найти площадь треуголь-
ника. заданного на плоскости.
Дано: А,. А,, Д,— вершины треуголь
ника
где Ai. =( с», i/J — координаты
вершин
Треб: S — площадь треугольника
Связь: S — площадь (Ai, А-. Ал):
3 = ур(р—a)(p—b}(p—c)
р=(а + Ь + с)/2
<<=длина (А|. А,)
Ь=длина (А>, АД
с=длина (Аг, А,)
где г = длина (*"
r=yl('c' — .с"У+('// —У У
191
Обратите внимание: здесь связь
между требуемой величиной и исходны-
ми данными представляет, но существу,
и метод решения. Кроме того, опреде-
ление длины отрезка на плоскости
описано в форме вспомогательной
функции. Этот прием часто использует-
ся в постановках сложных задач.
Соответствующие этой постановке и
методу решения задачи основной и
вспомогательный алгоритмы:
-г I—J -J. I . 1....L 1
/мг ‘шсщ/ць лРЕУгалыяг#
Н/J .7/7ЭСГОСАМ ' Til
Л"/? •• 37 - АЕЩ I I '
V- ___________।
S вещ
ШМ(х£Ц y£lJfX£Z} У£2])
b У.£2J, X£3J, У£ Ъ])
с- У£52,х£1],У£'/'] '•
р = (a+b+cj, 2. _________
£ « Vpt'p-ajfp-bjfp -cj
1 _l_L_ _
Результаты:
о = VCH11 -ПЖ' + O/lH - у [2]/
= VT [2] x [3])~ -|- (t/ [2] —у [3] )-
c = V^ [3] -л- [ 1 ])-’ + (y [3] - у [ 1 ]У
p = (a + b + c)/2
s= \P(P — a)(p — b)(p — c)
w
РБЪ
a/ww____
U1, P"f, U2.,yz
ПА-иятр:
лЕ-I.l] YtvJ la b f, e
ПИ>Е14 IJ U □ 1 B4
e>EU|, pEti^ \ зц a».
HOP
dcf:=(2f -
cfv
Vi -
r = fa.K .-a V*
Результаты:
j \n = iy — u>
1 ftp = 01 —v>
r= 7( Х1Л+Д02)
Доказательство правильности этого алгоритма в целом
распадается на две части: на доказательство правиль-
ности вычисления длины отрезка и на доказательство
правильности подсчета площади.
Утверждение 1.
Результатом выполнения вспомогательного алгоритма при
192
любых (u\, t'i)» (^2. ^2) будет длина отрезка, соединяющего
точки с координатами (Uj, vi) и («2, v^).
Доказательство.
рассмотрим результаты выполнения вспомогательного ал-
горитма. Поскольку алгоритм состоит из последователь-
ности присваиваний, то описание конечного результата
можно получить подстановками:
r=J д/~\1Г + х<_’2 = -yftfu, — u2)z + (o, — V2)2).
А по этой формуле, как известно, и вычисляется длина
соответствующего отрезка.
Утверждение 2.
Конечным результатом алгоритма в целом при любых коор-
динатах точек Д|, А-2, Аз, размещенных в массивах
л-|1:3], у [1:3], будет 5 — площадь (Аь А2, А3).
Доказательство.
Рассмотри^ результаты выполнения первых трех присваива-
ний основного алгоритма. В соответствии с утверждением 1
получаем: _____ ___ ________
п = длина (л,, ух, x-г у>)= у((Х|—x2)2-Mj/i —1/2)2),
У = длина И>, у,, хл к) = А/ ((*2 — -Уз)2 + (№г — Уз)2).
с = длина (хз, у3, хь у,)= — Х|)2 + (у3 — у,)2).
Далее в основном алгоритме вычисляются
Р=(° + b + с)/2,
5 = ур(р — а) (р — Ь) Я — с).
Это и есть соответственно полупериметр и площадь тре-
угольника. Таким образом, получаем:
5 = площадь (А1, А2, А.,),
что и требовалось доказать.
Доказательство правильности сложного алгоритма, как
видно из примера, требует не только написания всех вспо-
могательных алгоритмов, но и явной формулировки всех
решаемых им вспомогательных подзадач.
Рассмотрим следующую геометрическую задачу.
Зада ч а. Среди п точек на плоскости
найти три точки, образу-
ющие треугольник наиболь-
шей площади.
Дано: Тх, Г2, , Т„ -- точки плоскости
где Тк = (хк, 1д) — координаты точек
Треб: Smal — наибольшая площадь
Связь: ,Sm„, =maxS(7~,. Т,. Th)
1 "Сг, j. k^n
где S(A, В, С)— площадь (/1, В. С)
Дён. п Js 3
8
1994 В А Кзймян
193
хлг 'помех ммеохьх/ххо
'ЛРЕ*ГО>'П>хХХ4 -
ррг п Ц£Д
РL'l;nJf "УГ^ nJ,£>£Ш
ff3 smax
>1/W
smax -=o
Offlп-2 ь,МХ.1
oar j=l+7x;q л-'t ц/rx.r
O'” X=J ^-140 n ^XX.1
S - = X)
sc/м s > sn?ax aro
smax - s
KEC/W
ХЦХХХ
КЦ/fX/l
/Сц#Х4
ЮЦ
Pe iv 1ьта гы:
Дп«Хц -- б
S„t = S(r„ Г„ 7»)
г при ^*>SlrlBj
I V ________ c
'-’max,,, —'-’</4
I ^max, , === Smax.rt t
lпри S,*<Sma,
(«М)=(12 l),(124),_. .(12п).(2341..........(23н),
... (n — 2. n — I. n)
В постановке задачи мы использовали вспомогательные
функции из постановки предыдущей задачи. Поэтому в при
водимом ниже алгоритме решения рассматриваемой задачи
предполагается использование в качестве вспомогательного
алгоритма вычисления площади треугольника, заданного
на плоскости координатами вершин.
Утверждение.
Представленный алгоритм для любого л^З и точек
Г|. Т->, .... Т„, размещенных в массивах с[1:л|. |/[1:л]. на-
ходит максимум из площадей треугольников с вер
шинами в заданных точках
•Sinax=rnax площадь (Г,, Т,, Тк), 1^г, /, k^n.
Доказательство.
Рассмотрим результаты вычислений в представленном
алгоритме. Главной частью" в этом алгоритме являются
три вложенных цикла, которые организуют перебор троек
точек: внешний — цикл от 1=1 до п — 2. средний — цикл
от /=1"+ 1 до п — 1 и внутренний’— цикл от k — j+l до п.
Первое присваивание фиксирует начальное значение
переменной Sma4 :SnlJJ„ =0. Далее начинается выполнение
циклов для 1=1. / = 2, k=3. Присваивание
S: = площадь (1, /, k)
означает здесь обращение к вспомогательному алгоритму
194
вычисления площади треугольника. На нервом шаге он
даст значение
5|г.,=5^,, Т2. Тл).
Эта величина сравнивается с переменной Smax, равной
как мы выяснили, нулю, и если этот треугольник невырож-
денный, то присваиванием Slllax: = S в переменную S
будет записана величина площади этого треуго шиика. "1'”‘
После этого значение k счетчика внутреннего цикла
увеличивается на I и площадь треугольника будет вы-
числяться для значений i=\, j = 2, k = 4. Далее площади
треугольников будут вычисляться для k = 5, 6, ..., п.
По завершении этого внутреннего цикла индекс / стано-
вится равным /=3 Далее внутренний цикл будет выполнен
еше раз. но теперь для k = 4, 5.п. После чего / увеличит-
ся еще иа 1 и станет равным /=4. Внутренний цикл вы-
полнится теперь для k =5, 6, .. , п. Далее внутренний Цикл
будет повторно выполняться для / = 5, 6, и—1.
И только после выполнения внутреннего цикла с j=n— 1
значение счетчика внешнего цикла увеличится иа 1 и станет
равным 1=2. Выполнение внутренних циклов начнется снова
с j = 3 и k = 4. По завершении этих циклов i увеличится
еще на 1 и станет равным (=4. Затем после новой прокрутки
внутренних циклов будет равным /=5, 6.... п — 2. Послед-
ний раз циклы выполнятся при i = n— 2, j = n—1 и k = n.
Главным в этом алгоритме является то, что на каждом
шаге в переменной Smax фиксируется максимальное значение
среди площадей рассмотренных треугольников. В самом
деле, до начала циклов переменной Smax присваивается
значение Smax , =0, что соответствует площади вырож-
денного треугольника.
Далее в соответствии с анализом выполнения циклов
вычисляются площади треугольников в следующем порядке:
'(/*1 = (123), (124), ... (12п), (234).(23л), ...'(п-2, п-1. п).
При этом каждое значение 5,,* площади очередного рассмат-
риваемого треугольника сравнивается с текущим значением
переменной Smax. Если значение S,,* оказывается больше
, то это значение записывается в Smax.
Допустим, что текущее значение переменной Smax действи-
тельно максимум из площадей ранее рассмотренных тре-
угольников. Тогда если > Smax, то рассматриваемый
треугольник наибольший среди рассмотренных и присваива-
ние Smax:=S фиксирует этот факт. В противном случае,
когда S<Smax, величина Smax остается неизменной, так как
площадь нового треугольника не превышает площади
большего из ранее рассмотренных.
Отсюда в силу принципа математической индукции мож-
но заключить, что шачение S,„ax на каждом шаге выпол-
нения циклов будет содержать максимальное и» значений
площадей Следовательно, это свойство сохранится н по
8*
195
окончании цикла. А так как в соответствии с ра гбором
порядка выполнения циклов они обеспечивают просмотв
всех троек из заданных точек на плоскости, го по заверше-
нии алгоритма S„laK будет равно максимуму среди площадей
всех треугольников:
-шах площадь (Г Г„ ГА),
1 /, Л 3g:/г,
что и требовалось доказать.
вопросы
упражнения
задания
? 1. Как проводится построение и анализ сложных
алгоритмов?
2. Откуда берутся вспомогательные утвержде-
ния при анализе правильности сложных алго-
ритмов?
1. Составьте сценарий, алгоритм и программу
определения площади треугольника, задаваемо-
го на плоскости координатамн вершин, с вы-
водом изображения треугольника на экран ЭВМ.
2. Составьте сценарий, алгоритм и программу
нахождения среди п точек на плоскости пары
наиболее удаленных друг от друга точек с
выводом на экран изображений точек и от-
резков, соединяющих выделенные точки.
3- Составьте алгоритм, сценарий и программу
определения среди п точек на плоскости
тройки точек, образующих треугольник наи-
большей площади, с выводом на экран
изображений точек и найденных треуголь-
ников.
(Т)1- Составьте алгоритм вычисления радиуса
вписанной окружности для треугольника, задан-
ного координатами вершин на плоскости, с вы-
делением вспомогательных алгоритмов. Дока-
жите его правильность по частям.
2. -Составьте алгоритм определения среди п
точек на плоскости пары наиболее удаленных
точек с использованием вспомогательных алго-
ритмов. Докажите его правильность.
3. Составьте алгоритм упорядочения последова-
тельности чисел по убыванию с выделением
вспомогательных алгоритмов и докажите его
правильность с выделением лемм (вспомо-
гательных утверждений).
$ 45. Вычислительные эксперименты
МОДЕЛИРОВАНИЕ
Вычислительные машины могут использоваться не только
как инструменты для решения расчетных задач, но и слу-
жить средством моделирования. Для естественных и гу-
манитарных наук они открыли новый вид научных экспе-
риментов - моделирование процессов на ЭВМ. Необходи-
мость в таком моделировании возникает в тех ситуациях,
когда провести непосредственный лабораторный эксперимент
невозможно или затруднительно. В этих случаях и прибегают
к моделированию на ЭВМ. Оно основано на использо-
вании математических моделей и математических методов
обработки данных. Математическое моделирование на ЭВМ
предполагает выбор для рассматриваемых процессов таких
моделей, которые имитировали бы поведение реальных
объектов Изучив на таких моделях поведение объектов,
можно с определенной долей уверенности предсказывать
свойства реальных процессов или проектируемых изделии.
196
Что же представляют из себя математические модели'-*
Как правило, это обычные системы уравнений и нера-
венств. Чем сложнее явление, чем более тонкие свойства
объекта исследуются, тем сложнее должна быть матема-
тическая модель.
Для ОДНОГО и того же объекта, процесса или явления
мы можем подобрать несколько различающихся в деталях
моделей Различия между этими моделями состоят в том,
что они учитывают различные причины определяющие
свойства и поведение объектов. Подбор и анализ различных
моделей позволяют находить все более точные приближения
к реальным характеристикам объекта, уточнять и оценивать
свойства проектируемых изделий еще до создания опытных
образцов
ЭВМ позволяют проводить эксперименты принципиально
нового типа — вычислительные эксперименты. В ходе таких
«испытаний» можно на основе математического моделиро-
вания различных процессов получать конкретные численные
результаты Более того, в ходе таких экспериментов можно
не только изменять исходные данные и состав требуемых
данных, но и уточнять модели, принимаемые в основу моде-
лирования процессов на ЭВМ.
х
МАТЕМАТИЧЕСКАЯ
МОДЕЛЬ
ВЫЧИСЛИТЕЛЬНЫЙ
ЭКСПЕРИМЕНТ
Анализируя результаты вычислительного эксперимента,
можно сделать выводы о свойствах моделируемого объекта.
В качестве иллюстрации рассмотрим две математи-
ческие модели полета тела, брошенного под углом к гори
•биту. Каждая нз этих моделей служит описанием одного
и того же процесса полета тела, но все они по-разному
учитывают различные физические аспекты, влияющие на
траекторию иолета.
197
МАТЕМАТИЧЕСКИЕ
МОДЕЛИ:
ускорение тела — (ах, а,
масса тела — т (кг).
амлмтическаа
в)
г)
Первая модель аналитическая и целиком опирается
только иа законы Ньютона. Единственная сила, действующая
иа тело,— сила тяжести P — mg. Эта сила определяет
проекцию ускорения по вертикали ay=g, горизонтальная
же проекция ускорения отсутствует (ах=0). Поэтому дви-
жение по горизонтали равномерное:
Ox(/) = 0ox = oocosa.
Движение по вертикали равноускоренное. Вертикальная
проекция скорости равна
v^t)=vV!/—gt=vosma—gt.
Положение в пространстве согласно этой модели описы-
вается соотношениями
fx[t)=Xo + vr,xt,
(«ХО=yn-}-Voyt — gt /2.
Аналитическая модель:
ах = 0,
av=g,
ox(/)=o<1cos а,
о4//)= и0sin а—/г/,
jrf7)=Xo-|-o0cos а /,
(/(/)=«/« 4-I'd sin а / — gt2/2,
/е|0; Г],
где 7 - момент падения тела
Вторая модель дифференциальная. Она строится на
основе тех же законов, ио ее характеристики выражаются
на языке приращений (Ал- приращение ио горизонта щ
Ат/ приращение по вертикали. Лт приращение времени) :
Д.г = щД/.
Д1/=;'ЬЛЛ
Л^.=0.
Av-s,=as,A/, /е [0; Г|
не
,а = —/>•
е,1х = с,, cos а,
|e„„ = e,>siiia.
Данная модель может быть использована для модели-
рования процесса полета на ЭВМ с динамическим отобра-
жением траектории полета на экране ЭВМ (в виде мульт-
фильма). Соответствующий алгоритм динамического расчета
траектории:
-I -+-Н:-НР+- Ч-т-т-1-
/ИГ '/ЖИЕ/76 г/еме/я/? *
ГРГ Г о fy о ddl J_.
V о t (Л ТЕЛ,__
d-t ТЕЩ I _____
д тещ\___
НЕЧ_
V . ~ Уо COS d
V у --1/г> Sl,4 <А
ПОРЕ У У О \MfAd-
РОЧ/И} (У у) Д_
V у ~l/y +/2. у cf-f
X-X+Vy dt
У~ У/-1/ у d/ _ .
ЕЦИЕ/1 , I I I
Меняя в :этом алгоритме аргументы — скорость и угол
бросания, можно проводить на ЭВМ различные экспери-
менты и наблюдения Например-
I) подобрать yiоз броска, при котором тело улетит на
наиболыпее расстояние;
^) тля затаннои скорости подобрать угол, ири котором
тело иона и т в заданную точку;
199
3) меняя ускорение, сопоставить траектории now™
на Земле, Луне и Юпитере. " а
Модели выбираются с учетом различных факторов
влияющих на развитие процессов. Эти факторы, естествен
но, по-разному влияют на ход процесса. Поэтому необхо-
димо выделить среди них основные и дополнительные Выбор
основных факторов определяет модель.
В рассмотренной модели, кроме учета притяжения Земли
существенными факторами могут быть ветер, сопротивление
воздуха, притяжение Луны, Солнца и других небесных
тел, неоднородность поля тяготения Земли.
Вклад этих факторов в характеристики полета различен
и зависит от сложности моделируемого процесса; бросок
мяча, полет снаряда, запуск и полет спутника, полет на
Луну, на Вейеру или на Марс. Выбор модели, разумеется,
зависит от того, какую из перечисленных задач нужно
решить.
Для изучения полета мяча в комнате достаточно
рассмотренных ранее моделей. Для броска же мяча на
открытом воздухе результат часто зависит от силы и
направления ветра. Соответствующая модель имеет сле-
дующий вид (здесь w — скорость ветра)
Дифференциальная модель:
_V=vxA/,
\n=v„\t,
Ащ = 0.
Avv —а„А/. le [О, Г],
где [а„= — g.
I гм, = cos а — u>,
I Vn</= v0 sin a.
вопросы
упражнения plU
задания
1. Что такое вычислительный эксперимент?
2. Некие величины изменяются э ходе вы-
числительных экспериментов?
। 1. Составьте программу моделирования по-
пета тела и проведите вычислительные экспе*
рименты на ЭВМ;
Составьте сценарий и диалоговый алгоритм
игрового мультфильма моделирования полета
тела:
а) с аналитической моделью;
6) с дифференциальной моделью.
200
а) глоделъ полета в безветренную погоду
9=9,81 . *о=60 , а~ 15°, 30", 45 60 75";
б) модель полета с заданной высоты. уо=»5О м;
в) модель полета на Земле и Луне: gj=9,81
с2 '
9л 1,63*;
г) модель полета с учетом попутного или
встречного ветра:
м —10“, w. = 0 —, Wj— 10 *.
с с с
2 Составьте .ро.рамму и проведите мсперн-
мент 4 с моделированием на тиране VIM йот
говото движения
а) аналитическая модель.
I ж*г sin 1,
(у •'•coit, ieJO; T);
б) диффераицитлвнав модель
г,
Уо» 0,
я'! X*.
у' - у I \у,
' у.
»У «. Г, (0: Г).
5 46. Понятие и виды моделей
С различными мои- 'ими и модельными и pi итавлениями
мы встречаемся каждодневно и ежечасно 11о существу,
моделями являются карга сорог и фотография, рисунок
и картина, различные описания, списки и многие другие
используемые нами знаковые пре плавления информации.
Модели играют огромней» роль в ра (личных естествен
ных науках физике и химии, приплатой матем лике и
информатике как средство для отражения структуры и
свойств различных обьсктов. Выбор модельных поедстанле
ний часто определяет успех научных после сований, по
скольку от этого выбора зависит точность и достоверность
получаемых выводов, прогнозов и рекомендаций.
Модели по своей сути чисто информационное понятие
Модели — это отражение наиболее существенных призма
ков, свойств и отношений явлений, объектов или процессов
предметного мира Например фотографии и рисунки
это представления внешнего вида предметов, а чертежи и
схемы раскрывают их структуру (внутреннюю органтацию?
В то же время для одних и тех же явлений, процессов
и объектов можно построить различные моде 1И Много-
образие модельных представлений, связываемых с одними
и теми же объектами, отражает различие точек зрения,
интересов и потребностей лютей в изучении этих объектов,
а значит, в решении возникающих у них задач. Как мы
уже знаем, в информатике и прикладной математике мо-
дели служат основой для постановок задач.
Различия между моделями определяются, с одной сто-
роны, степенью их детальности, с другой — рашицей вы-
раженных в них внутренних связей отражаемых моде-
лями процессов и явлений. Выбор степени детальности в
подбираемых моделях зависит, от целей исследователей.
Различают четыре основных вида модельных пред-
ставлений:
I. Графические представления.
модель
Г‘1ДЫ МОДЕЛЬНЫХ
ПРЕДСТАВЛЕНИЯ
201
ГРАФИЧЕСКИЕ ПРЕД'
СТАВЛЕНИЯ:
фотография
рисунок
ч*рт«ж
слома
2. Словесные описания.
3. Информационно-логические модели.
4. Математические (количественные) модели.
Наиболее простым видом моделей являются графи-
ческие представления объектов. Такие представления вы-
ражаются в наглядных зрительных образах: в вид» фотогра-
фий, рисунков, схем и чертежей. Например, для такого
объекта, как колесо, различные графические представления
имеют хорошо известный вид.
Фотографии, как правило, наиболее точно
отражают внешний вид объектов. В рисунках
обычно заостряют внимание на наиболее суще-
ственных сторонах объекта.
Чертежи представляют собой наиболее
полные и детальные схематические модели
объектов со строгим соблюдением их гео-
метрических пропорций.
Схемы —— это отражение организации (струк-
туры) объекта. В схемах люди выражают наи-
более существенные части объекта и взаимо-
связи различных объектов, отбрасывая все, что
им кажется несущественным.
Таким образом, различия между графическими пред-
ставлениями связаны со степенью детальности изображений
и с тем, какие задачи должны быть решены при помощи
этих модельных представлений Поэтому и назначение этих
моделей различно: показать внешний вид или структуру,
размеры или организацию, расположение объектов или
направления их движения.
Для построения графических представлений используется
некоторый язык язык зрительных образов Этот язык
имеет г вой законы, свой «словарь» зрафических форм.
202
свою ip.iiWM.-HHhV «ip.iMM.HHKy upoclpam гнау, а 1акже
iip.niii i.i построения «зрительных фраз». Создание графи-
ческих изображений решает определенные задачи представ-
ления зрительной информации и опирается на определен-
ные правила правила конструирования графических форм
и правила осмысления людьми зрительных образов.
Вторым видом моделей и модельных представлений
яв .яются словесные описания объектов, процессов и яв-
лений словесные «портретыл., выражаемые в терминах
родного я тыка или профессионального жаргона. Словес-
ный «портрет» эго словесное перечисление основных со-
ставных частей обьектов, их наиболее важных признаков и
CHO1HIB.
( кшесны» «портрет» служат для описания пит»ре
сующих нас обьекюн и для обьш нения их свойст. Прим, р
с1ов>чло1о «портрет» слот , ное описание колеса
колесо сшили из обод.1, <пиц и осп нокру| Koiopoe
оно может вратаIвся
( ловетныс опт шия базируются на понятиях и пред
сганляются набором предложений. Понятия эго словес
ные выражения общих и наиболее существенных призна-
ков объектов Эти признаки выделяют их среди других
объектов и очерчивают их основные свойства и взаимо-
свя »и.
Предложения, естественно, выражаются в соответствии
с грамматикой родного языка и служат определенным
целям в передаче информации между людьми. Объектив-
ный смысл каждого высказываемого предложения заклю-
чается в фиксации некоторых фактов реальности, прошед-
ших или будущих событий предметного мира либо некото-
рых умозрительных предположений.
В то же время высказываемые людьми предложения
всегда имеют свой субъективный смысл и отражают их
интересы или точку зрения. Построение высказываемых
предложений также опирается на определенные правила
конструирования выска тываиий и исходит из того, кому
и тачем передается информация.
Третий вид моделей - информационно-логические мо-
дели. Это модели, представляющие формализацию словес-
ных описаний объектов. Такие модели становятся необхо-
шмыми при намерении накапливать и обрабатывать ин-
формацию с помощью ЭВМ.
< примерами информационно-логических молечеи мы
хже шакомы по решению на .-ЭВМ <адач с анализом оценок
и родственных в «аимоотиопц ний. когда изучались базы
•наций. Описания оценок записывались в форме фактов на
языке Пролог
оценка(Петров, физика, 5);
СЛОВЕСНОЕ
НИЕ ОБЪЕКТА
О1.ИСА-
ИНФОЕМ АЦИОИНЦ-
ДО1 ИНЕСК ИЕ
МОДЕЛИ
203
Данная запии. на самом деле соответствует некоторой
модели, в которой фиксируется фамилия ученика, предмет
И сама опенка. Имя ученика и дата в 'Лой модели не учи-
тываются:
Здесь предмет - это литература, математика, физика
и т. д.; балл — это сама оценка — 5, 4, 3 и тому подобное;
фамилия — это фамилия одного из учеников в классе.
Понятно, что если в классе есть однофамильцы, то
такая модель может привести к искажению информации.
Кроме того, если нас будет интересовать динамика оценок,
как занимался ученик, то в модель оценок необходимо
будет ввести еще и даты получения оценок:
модель2: | ОЦЕНКА
Примеры записи оценок согласно этой
модели:
оценка(Петров,
оценка(Петров,
оценка(Петров,
Ваня, физика,
Ваня, физика,
Ваня, физика,
новой уточненной
5, 30, 9) ;
4, 13, 10);
5, 20, 10);
Информационно-логические модели, как правило, строят-
ся на основе слов родного языка, обозначающих интере-
сующие объекты. Но могут использоваться и фразы, и слова
профессионального жаргона.
Наиболее существенным в информационных частях
этих моделей является перечисление объектов, их состав-
ляющих, а также взаимосвязей между этими объектами.
Для описания свойств объектов и их совокупностей в таких
моделях используются средства математической логики —
предикаты над характеристиками объектов, а также логи-
ческие комбинации этих предикатов.
Примером может служить более полная модель родствен-
ных взаимоотношений между людьми. В предлагаемой
ниже модели каждый человек характеризуется фамилией.
204
Отметим, что в паспорте, кроме того, указываются еще
отчество, национальность, дата рождения и место про-
писки. Так что рассматриваемая модель не полна. Но ее дос-
таточно для анализа родственных взаимоотношений, если
в базе знаний имеется информация о том, кто является
матерью и отцом данного человека:
муж( Петров, Иван);
жен( Ларина, Татьяна);
мать(Петрова, Тамара, Петров, Иван);
отец(Ларин, Александр, Ларина, Татьяна);
ПРЕДИКАТЫ моделях
Описания взаимосвязей объектов в информационно-
логических моделях, как видно, задаются в форме пре-
дикатов. Но, используя правила вывода из таких информа-
ционно-логических моделей, можно получать более глубокие
взаимосвязи объектов и их свойства, которые явно не хра
нятся в базе данных. Например, кто является сыном или
дочерью данного человека, можно определить на основе
следующих правил:
родные( A,B,X,Y ) <- мать( А,В,X,Y );
родные< A,B,X,Y ) <- отец( А,В,X,Y );
родные( A,B,X,Y ) <- родные( X,Y,A,B);
родные( А,В,X,Y ) <- родные( A,B,C,D), родные(С,D, X,Y)
А взаимоотношения между родными определяются сле-
дующими правилами:
сын ( А, В, X, Y) <- муж( А, В) , отец(
сын ( А, В, X, Y) <- муж < А, В) , мать (
дочь( А, В, X, Y) <- жен( А, В) , отец(
дочь ( А, В, X, Y) <— жен ( А, В) , отец (
Четвертое из приведенных правил позволяет найти цепочку
всех родных по информации, имеющейся в базе знаний.
Выбор информационно-логических моделей зависит от
круга задач, которые будут решаться с этими данными.
Такие формальные описания позволяют не только матема-
тически строго определить содержание этих задач, но и
подобрать математически обоснованные методы их решения
и создать соответствующие алгоритмы и программы об-
работки данных с помощью ЭВМ
Четвертый вид моделей математические описания фи
тическнх объектов явлений и процессов, выражающие внут-
ренние законы их динамики, взаимодействия с другими
обьектами и другие свойства. Эти модели, как правило,
'троятся на основе количественных характеристик объектов,
а также на основе уравнений и функций, выражающих
связи между характерно гиками этих обьекгов, процессов и
явлении
X, Y, А ,В);
X, Y, А ,В);
X, Y, А ,В);
X, Y, А ,В);
МАТЕМАТИЧЕСКИЕ
МОДЕЛИ
205
Такие моде in выражаются на языке математические
формул либо на языке дифференциальных или интегралы
ных уравнений В качестве примеров известных матемаги
четких моделей можно указать
1) мотель 2-го закона Ньютона F
a = F/m\
Z77d
2) мотель движения гела, брошенного под углом к го-
ризонту.
i>
Уо = 0.
Уо = /г,
\л = щ V,
\il = (vu—gt)\t.
Выбор математических моделей может проводиться толь
ко на основе экспериментально подтвержденных законов и
закономерностей Выбор и включение в модель тех или иных
признаков и свойств определяется степенью необходимой
точности представления в модели характеристик отражаемых
реальных объектов и процессов. С другой стороны, выбор
математических моделей .авист от гребованин задач, под-
лежащих решению, и определяется степенью полноты ин-
формации в мо гели по отношению к свойствам, существен-
ным для решаемых задач.
Решение задач с такими математическими моделями,
как правило, сводится к решению сложных систем урав
нений, которые не могут быть выражены формулами.
Решения этих систем уравнений приходится искать путем
приближенных вычислений. Объем этих вычислений может
быть столь велик, что единственным выходом является
только использование вычислительных машин для про-
ведения соответствующих расчетов и вычислительных
экспериментов.
вопросы
упражнения 19!
задания
1. Что такое модель?
2. Чем отличаются рисунки от фотографий и
чертежи от схем?
3. Чем отличается словесный портрет от ри-
сунка?
4. Чем отличается информационно логическая
модель от словесного портрета?
1. Приведите различные графические пред-
ставления:
а) стола; 6) дома; в) цветка; г) котенка.
2. Приведите словесные описания:
а) стола; 6) дома; в) цветка; г) котенка.
3. Приведите информационно-логическую мо-
дель:
а) стола; 6) дома; в) цветка; г) котенка.
4. Опишите математическую модель движения
спутника по круговой и эллиптической ор-
битам.
5. Приведите уточненное определение понятии
отличника и успевающего ученика на основе
уточненной модели оценок-
6. Укажите определения понятий сестра и брат
на основе приведенной модели родственных
взаимоотношений.
206
t. Введите в ЭВМ данные о своих оценках
за последнюю четверть и посмотрит^ дииа-
мнку и* изменения по литературе, физике,
математике и информатике.
2. Введите в ЭВМ данные о своих бпнжамших
родных и проверьте правильность выявления
ваших родственников. Проверьте, правильно пи
ЭВМ находит братьев и сестер
§ 47. Информационно-логические задачи
В информатике основное место занимают задачи, свя
занные с накоплением, поиском и переработкой информации.
В качестве первого примера рассмотрим задачу перевода
слов много языка на другой русского на английский
или другой иностранный язык
Для решения этой проблемы необходим двуязычный
словарь. Наиболее гибким средством для реализации сло-
варей на ЭВМ являются языки типа Пролог Примеры записи
фактов на Прологе с указанием переводов слов:
Н»ИМО МД1ЧН, помимо
•ычислиточьнык, мо-
гут рош»и ЭВМ1
перевод< мир, peace);
перевод( мир, world);
перевод! книга, book);
Поиск переводов слов с помощью такой базы данных на
Прологе осуществляется весьма просто — задается вопрос о
переводе интересующего нас русского или английского
слова:
? перевод! мир, х);
? перевод! х, book);
Ответом на первый вопрос будут слова peace и world,
соответствующие обоим смыслам русского слова «мир», а
ответом на второй вопрос о переводе английского слова
book будет русское слово «книга».
В задачах поиска информации в принципе ответы могут
быть трех видов: во-первых, ответ вида, есть ли интере-
сующая нас информация, во-вторых, указание некоторого
объекта (объектов) или факта, отвечающего заданному
вопросу, и, в-третьих, полное перечисление объектов или
фактов, отвечающих этому вопросу.
Естественно, что полнота ответа зависит от наполнен-
ности информацией базы данных. В рассмотренном примере
отсутствие перевода слова может быть восполнено допол-
нительным вводом фактов и по мере накопления пар слов
ответы будут становиться все более полными.
Переработка информации, накапливаемой в базах дан-
ных существенно зависит от логической части информа-
ционно-логических моделей, на основе которых формали
зуется представление информации в ЭВМ В качестве вгоро-
207
го иллюстрирующего примера рассмотрим небольшую базу
данных но литературе.
Для любого литературного произведения его внешними
признаками являются его жанр, название и автор цгщ
авторы:
На языке Пролог конкретные произведения литературы
могут быть записаны в форме фактов следующего вита:
роман( Лев—Толстой, Война—и—мир);
поэма( Пушкин, Медный-всадник);
сказка( Пушкин, Руслан-и—Людмила) ;
Здесь знак подчеркивания используется для соединения
слов в единую неделимую фразу.
С помощью такого рода фактов-описаний можно полу
чать различные характеристики авторов литературных про-
бы согласны с такой изведений. Например, можно выделить поэтов, писателен н
классификацией! сказочников. Сказочник — это тот, кто пишет сказки:
сказочник! х ) <— сказка( х, _ );
А здесь знак подчеркивания означает, что для успешного
поиска достаточно обнаружить любое название.
Поэт — это тот, кто пишет стихи и поэмы:
поэт! х ) <— стихи< х, _ );
поэт! х ) <— поэма! х, _ );
Писатель — это тот, кто пишет рассказы, очерки, по-
вести, романы:
писатель! х ) <— рассказ< х, _ >»
писатель< х ) <- очерк( х, _ >;
С помощью такого рода развитой системы правил-ха-
рактеристик можно получать ответы на вопрос «О произ-
ведениях каких писателей или поэтов имеется информация
в базе данных?»:
? писатель < х ) ;
? поэт( х );
В более сложных практических задачах поиска и пере
работки информации постановка их решения па ЭВМ тре
ZQ8
При упоминании слов
«безлюдное производство»
в памяти возникают образы
и3 научно-фантастических
книг и кинофильмов:
«интеллектуальные»,
но бездушные роботы
борются против люден.
Разумеется, эта опасность
в полной мере людям еще
не угрожает — современные
роботы не настолько
совершенны, чтобы обойтись
без почти постоянной опеки
человека Однако
вытеснение людей роботами
уже началось — прежде
всего на тех производствах,
где требуется тяжелая
и монотонная работа.
На роботизированных
участках человек
занимается в основном
программированием
и наладкой отдельных
станков
и автоматизированных
линий.
Совершенно незаменимым
средством
электронно-вычислительные
машины стали в научных
исследованиях. Это связано
с тем, что компьютеры
могут производить большие
объемы вычислений
с огромной скоростью,
недостижимой для человека.
Г Лавкой причиной широкого
внедрения ЭВМ в научные
разработки является
возможность проведения
ком пью терн ых
экспериментов На основании
математической модели
объем га г г рои ге. и программа
для ЭВМ
В нашем привычном
представлении
конструктор — это
человек, который
большую часть своего
рабочего времени
проводит у чертежной
доски. Это не
удивительно:
конструктор, не
владеющим искусством
черчения, не сможет
изложить свой
замысел в принятой
у специалистов форме.
Цо, оказывается,
можно обойтись и без
традиционных
чертежных
карандашей, туши и
бумаги. Вы уже
догадались, что речь
идет об использовании
ЭВМ в конструкторских
разработках.
Творческую часть проекта,
разумеется, по-прежнему
выполняет человек
Изобразить же найденное
решение на экране в виде
чертежа, быстро исправить
неудачный фрагмент,
а затем изобразить чертеж
на бумаге с помощью
графопостроителя или
печатающего устройства
поможет ЭВМ.
Трудно перечислить все сферы
человеческой деятельности,
в которых целесообразное
применение ЭВМ позволило бы
добиться солидного экономического
выигрыша или улучшения условий
труда.
качеством выпускаемой
продукции,
в криминалистике
и т. д. Создание
информационных
центров позволяет
журналистам разных
стран практически
С помощью гибко
переналаживаемых
производственных линий
предприятие может очень
быстро и с малыми
затратами переходить на
выпуск новых изделий.
Может быть, у вас есть и
другие идеи о том, чем
компьютеры могут помочь
и в других видах
деятельности человека?
мгновенно
получать
интересующую их
информацию из
любой точки земного
За века существования
человечества облик
окружающей нас природы
значительно изменился.
К сожалению, эти изменения
не всегда происходили
в лучшую сторону. Строя
города и заводы, плотины и
электростанции, добывая
сырье для промышленности,
человек одновременно
вырубает лес, нередко
загрязняет воду и воздух...
Все это, разумеется. творческой инициативы,
немыслимо без широкого дальновидного мышления,
внедрения вычислительной активной жизненной позиции
техники. Однако никакая и общей культуры
человека.
техника не заменит
Over обязательной математической формализации проблемы.
С этой целью для всех объектов, предмс гов и явлений,
информация о которых должна накапливаться в ЭВМ^
фиксируются наборы признаков и свойств, необходимых для
решения задач. При этом информационно-логические модели
перерастают в математические модели но мере фиксации
в них закономерных взаимосвязей между признаками и
свойствами этих обьекгов и явлений.
Для иллюстрации опишем в форме информационно-логи-
ческой модели математическую модель электрической цепи.
Рассмотрим электрическую цепь, содержащую единствен-
ный резистор.
Закон Ома:
U = IR
В языке Пролог
чинами описывается
эта связь между физическими вели-
следуюшим правилом:
он( U, R, 1> <- УМНОЖЕНИЕ( R, I, U) ;
Здесь умножение (а, Ь. с) —это базовый предикат языка
Пролог. Этот предикат выражает, что величины а, b и с свя-
заны друг с другом в форме алгебраического умножения:
ч-Ь=с. Особенность этого предиката в языке Пролог
состоит в том, что неизвестным может быть любой из трех
аргументов данного предиката.
По этой причине для указанной цепи можно задавать
с ндующие вопросы:
1 Каково напряжение на входе цепи, если известно
сопротивление и сила тока в цепи:1 Пример вопроса:
7 ом( и, 10, 4);
Ответ 67 = 40 В
2 . Какой будет сила тока в цепи, если известно сопротив
тение цепи и напряжение на ее входе? Пример вопроса:
ом (
100, 25, I)
Ответ / = 4 А
Для более сложных цепей, содержащих несколько ре-
зисторов, соединенных последовательно или параллельно,
в описании моделей необходимо учитывать законы Кирхгофа
Для последовательных сое шнений закон Кирхгофа гласит.
Ш
4ак 1994 В А Кайм ин
209
что падение напряжения в цепи равно сумме падений на
пряжений на каждом резисторе.
2-й закон Кирхгофа: и=и> + и-> Г1 о L 3 j U1 н- U U2 rz о- J
В Прологе этот закон может быть записан в форме сле-
дующего правила:
напряжение ( U, Ul, U2 ) <- СЛОЖЕНИЕ( Ul, 02, О);
Здесь сложение (о, Ь, г) —это базовый предикат языка
Пролог, выражающий соотношение а-\-Ь — с между величи-
нами а. b и с. В этом предикате роль неизвестного также
может выполнять любой из трех аргументов.
Для параллельного соединения резисторов в электри-
ческих цепях справедлив 1-й закон Кирхгофа, который
утверждает, что в любом узле сумма втекающих токов
должна равняться сумме вытекающих токов:
1-й закон Кирхгофа:
/ = /, + />
В Прологе данный закон можно описать таким правилом:
сила тока (I, И, 12) <-сложение (И, 12, I);
Полные модели этих двух электрических цепей можно
задать в Прологе следующими описаниями:
1) последовательное соединение резисторов:
схема2( U, Rl, R2, I) <— токи( I, II, 12),
он( и, Rl, II), ом<и, R2, 12);
2) параллельное соединение резисторов:
Схема!( U, Rl, R2, I) <— напряжение! U, Ul, U2) ,
ом( Ul, Rl, I), он( U2, R2, I);
По отношению к »тим схемам можно задавать вопрос,
какое напряжение на входе цепи "схема!” с пос.гедовагель-
210
но соединенными резисторами, если известна сила тока в цо
пи и значения сопротивлений этих резисторов:
? схема1( U, 40, 60, 2);
Ответ: </ = 200 В.
Но можно задавать и обратный вопрос, какова сила тока
в цепи, если известны сопротивления резисторов и входное
напряжение:
? схема2( 100, 20, 20. I);
О-вет' /=10 А.
Таким образом, ЭВМ сама может находись решения
задач при условии, что в нее введена формализованная
модель объекта.
^1. Каковы основные виды результатов поиска
информации?
2. На чем основывается переработка информа-
ции в базах знаний?
3. В каких ситуациях информационно-логиче-
ские модели могут служить базой для авто-
матического решения задач?
1. Составьте полный "словарик" перевода слое
алгоритмического языка на язык Бейсик.
2. Составьте небольшой словарь перевода на
русский или родной язык перевода слов с
изучаемого вами иностранного языка.
3. Составьте базу данных по классической рус-
ской литературе XIX в.
4. Составьте более полную классификацию ли-
тературных жанров и литераторов.
вопросы
упражнения
задания
1 Проьедите на языке Пролог Эксперимент по
вводу, поиску и пополнению словаря перевода
и обратите внимание на ответы ЭВМ не слова
с двойным толкованием.
2. Проведите на ЭВМ эксперимент с состав-
ленной вами базой данных по литературе
Выделите в базе данных всех прозаиков,
поэтов и драматургов,
3. Проведите эксперимент на ЭВМ с решением
задач по электротехнике с параллельными и
последовательными соединениями резисторов
§ 48. Законы информатика
Информатика как наука, изучающая процессы накоп-
ления. обработки и передачи информации с помощью ЭВМ.
пока находится в стадии становления. В то же время про-
цессы накопления, обработки и передачи информации давно
изучаются другими науками. Лингвистика и психология
изучают обмен информацией при общении людей, социоло-
гия -роль информации в жизни общества в целом, биоло-
гия - накопление и обмен информацией в живых организ-
мах и популяциях.
Для всех этих процессов характерны определенные об-
щие закономерности, связанные с сутью накопления, об-
работки и передачи различных видов информации. Суть
единства этих процессов состоит в том, что информация
в любых ее формах и проявлениях это некоторое отра-
жение действительности в форме знаков или сигналов.
ю*
211
И накопление, обработка и передача информации с по-
мощью ЭВМ должны подчиняться гем же законам, кото-
рым подчиняются эти процессы в общении и деятельности
людей.
Законы общения между людьми это преж не всего
правила этики, но, кроме того, это и законы логики, Которые
разъясняют правила достижения взаимопонимания и мею ih
убеждения людей путем обмена сведениями, суждениями,
аргументами и фактами Аналогичные проблемы рано или
поздно возникнут при использовании экспертных систем
которые будут работать на основе накопления информации
в базах знаний
Взаимопонимание в общении человека с человеком и
человека с ЭВМ основывается на соблюдении закона тож
ЗАКОН тождества дества. который гласит:
предмет обсуждения должен быть строго определен и не должен меняться
до конца обсуждения
В сфере человеческого общения нарушениями этого
закона являются разногласия в определениях и понимании
предмета обсуждения. Единое понимание системы понятий
и предмета общей теятельности основа любой коллектив-
ной работы.
При несоблюдении закона тождества возникают разно-
чтения и, как следствие, несогласованноегь в действиях
людей из-за различного толкования цели совместной дей-
те тьности или предмета обсуждения. Расплывчаты» форму
шровки. неточности, неопределенности иди двусмысленности
в утверждениям приводят к противоречиям которые могут
стать непреодолимым препятствием в совместной работе и
мешать достижению взаимопонимания.
Все мы, к сожалению знаем, как часто во время дискуссии
происходит подмена предмета обсуждения, когда вспыхи-
вают жаркие споры, а. по существу, люди говорят совсем
о разных вещах При этом спорщики производят впечатле-
ние зюдей, говорящих на разных языках.
Такие же проблемы проблемы взаимопонимания воз-
никнут при создании и использовании экспертных систем,
которые должны строиться на базе определенных инфор-
мационно-логических моделей. Различия же в определениях
понятий, в выборе формализованных представлений могут
послужить причиной рассогласования данных между раз-
личными экспертными системами и соответственно между
пользователями этих систем.
В сфере производственной деятельности закон тож-
дества преломляется в требования точности и однозначности
любой технической информации чертежей, документации,
нхнических заданий и т.п. Схожие проблемы характерны
212
и для разработки программ для вычислительным машин,
где сценарии, постановки решаемых задач, математические и
информационно-логические модели и выполняют роль фор-
мализованных технических заданий и технических описаний
программ.
Путь точных и строгих определений - это основной путь
1.1Я решения проблем неоднозначного понимания и раз-
личий в толкованиях предмета обсуждения. При решении
этих же проблем по отношению к ЭВМ однозначность и
точность должны становиться, по существу, математиче-
скими, иначе говоря, не допускающими двойных голко
ваний.
Недопустимость двойных и, по сути, противоречивых гол
кований в суждениях и рассуждениях в логике выражается
законом противоречия:
ЗАКОН ПРОТИВОРЕ-
ЧИЯ
I -------
] не могут быть одновременно истинны суждение и его отрицание.
Допущение противоречивых суждений об одном и том же
предмете в одном и том же смысле по отношению к одному
и тому же моменту времени явная бессмыслица Ведь
никакой предмет не может обладать и нс обладать неким
свойством в один и тот же момент времени. Поэтому о рю-
временное утверждение противоречивых фактов о некотором
предмете является серьезной ошибкой в расе уж гениях
Точно так же противоречия в формальных построениях,
чертежах, проектах делают невозможной их реализацию
Для успешного осуществления необходимо привести их в
соответствие с законами природы, техническими и иными
требованиями.
В общении людей противоречия, как правн ю. легко
обнаруживаются. Несколько сложнее вопрос обстоит в
создании экспертных систем, накапливающих формализо-
ванную информацию об определенной предметной области.
В экспертных системах должен быть заложен аппарат ана-
лиза новых сведений и фактов на их противоречивость уже
имеющейся информации. Более сложен будет другой вопрос:
где же находятся неправильные данные— в информации,
хранящейся в ЭВМ, или во вновь поступивших сведениях?
Наиболее сложной логической проблемой всегда является
решение вопроса: так что же истинно — суждение или его
отрицание либо справедливо что-то третье’ Согласно третье-
му закону логики, известному как закон "исключенного закон «исключен-
третьего" ного mmrO*
!--------------------------------------------------
истинным может быть либо суждение, либо его отрицание.
213
Применение данного закона является движущей сплои в
экспертных системах, поскольку эти системы пытаются на
самом деле доказать, что для заданных вопросов нет соот
ветствующих фактических данных В ходе этой попытки
опровержения осмысленности вопросов экспертные систем
находят или выводят требуемое.
Данный закон широко используется и в общении как
основа косвенных доказательств, когда и тинным приним
ется отрицание и из этого предположения выво гится про
тиворечие. Тогда из ложности отрицания по «акону шк. лю-
ценного третьего следует истинность исходного суждения
Однако в современной математике построен ряд теорий,
связанных с бесконечными множествами, в которых этот
закон не выполняется Более точно, в mix теориях укры-
ваются некоторые сложные утверждения, которые невоз-
можно в принципе ни доказать, ни опровергну ib, а потому
нельзя установить, истинны они пли ложны
На самом деле этой формулировке икона не хватает
конструктивной направленности, которую можно выразить
Ч'Мнцип катего- следующим принципом (его можно назвать принципом ка
тегорячности):
всякое рассуждение необходимо доводить до определенного утверждения
или его отрицания.
Этот принцип выражает требование к логической за
вершенности рассуждении и построений Нарушениями пай-
ного принципа являются рассуждения с расплывчатым та
ключением или отсутствием выводов. В технике соответ-
ствующими нарушениями становятся, например, технические
задания, допускающие недоброкачественные проектные ре-
шения.
В программировании нарушениями принципа категорич-
ности является разработка программ без технических за
даний и описаний, по отношению к которым программы
должны проверяться. В повседневной жизни этот закон на-
рушают те, кто вместо полного анализа недостатков до-
вольствуются лишь перечислением отдельных фактов, а.
критикуя, не вносят никаких реальных, кот груктинны.х
предложений для решения накопившихся проблем
В производственной деятельности этот принцип находит
выражение в требовании наиболее полного и точного опре-
деления конечных результатов, отсекающих недопустимые
варианты решений. В программировании данный закон
требует наличия строгих и точных спецификаций программ
постановок решаемых задач, технических описаний проект
руемых автоматизированных систем.
Однако любые предложения и утверждения о предла
гаемых решениях проблем должны иметь объективные осно-
214
вания и строгое обоснование их осуществимости. В логике эту закон достаточ
итею выражает закон достаточных оснований: ныг « сновании
I утверждения необходимо обосновывать исходя из суждений, истинность
которых доказана.
Нарушениями этого закона являются рассужчсння, ис-
ходяшие из предположений, которые принимаются на веру
или не проверены на практике Одной из новых опасностей
может стать слепая вера в компьютеры, которые могут ре-
шить все проблемы, судя но рекламным проспектам ирон з-
воднгелей вычислительной техники.
Достоверность информации, получаемой от ЭВМ, будет
зависеть в соответствии с рассматриваемым законом от
достоверности данных накапливаемых в их памяти, и от
правильности программ, организующих обработку этих дан-
ных. По этой причине закон достаточных оснований в ин-
форматике необходимо дополнить принципом показатель- принцип лок*за
носи тельнЪсти
всякое построение (предложение) должно иметь строгое обоснование,
опирающееся на точно установленные факты и положе ния.
Практический смысл этого принципа состоит в том. что
необходимо доказательно обосновывать любые выводы, пред-
ложения и построения, претендующие на реализацию.
Ни одно общее утверждение или теоретическое положение
не может приниматься на веру. Оно должно иметь строгое
обоснование. В доказательности состоит коренное отличие
нахкн от религии и авторитарности, которые признают
1ишь слепую веру в свою силу.
В задачах инженерного проектирования, направленных
на создание новой техники и новых технологий, для всех
конструкций должны быть рассчитаны прочность и надеж-
ность. должна быть доказана их экономическая эффектив-
ность и целесообразность, прежде чем они будут запущены в
производство.
В программировании, которое является одним из видов
инженерного проектирования программ, закон достаточного
основания выступает в виде необходимости строгого обосно-
вания правильности и надежности разрабатываемых алго-
ритмов и программ. Правильность алгоритмов и качество
получаемых программ не должны приниматься на веру, а
должны доказываться с помощью законов логики, методов
представления и обработки информации, а также знания
технических возможностей вычислительных машин.
Нарушениями принципа доказательности являются
нелогичные рассуждения, необоснованные рекомендации, не-
215
достаточность фактов, ошибки в проектных расчетах, не-
полнота аналнва последствий принимаемых решений нт и
Очень серьезным нарушением является использование для
принятия решений недостоверной информации, не соогве<
сгвующей действительности, поскольку "правильные реше
ния" при неправильных предпосылках вполне могут ока-
латься ошибочными.
Из всего перечисленного можно сделать вывод, что глав-
ными вопросами в информтике являются достоверность
получаемой информации и правильность используемых алго-
ритмов обработки информации.
Понимание и соблюдение перечисленных законов логики
и информатики необходимы сегодня для успешной органи-
зации совместной деятельности людей, а также и>я аффек-
тивного предоставления им информации с помощью вы-
числительных машин.
вопросы 1 | ф
упражнения I91U
задания Ij1
ф L В мем состоит закон тождества в инфор-
матике?
2. Как закон исключенного третьего исполь-
зуется в информатике?
3. В чем состоит принцип категоричности?
4. В чем заключается принцип доказательности?
1.
в)
б)
в)
г)
2.
а)
6)
в)
г)
Укажите известные вам примеры нарушений;
закона тождества;
закона противоречия;
принципа категоричности;
принципа доказательности.
Сформулируйте отрицания?
закона тождества;
закона противоречия;
принципа категоричности;
принципа доказательности.
ОСНОВЫ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
§ 49. Архитектура ЭВМ
Вычислительная техника возникла сравнительно недав-
но — в 50-х годах нашего века. За 30 чег она прошла период
бурного развития. В эти годы было создано, развернуто и
демонтировано три поколения ЭВМ. В 80-е годы появились
персональные ЭВМ вычислительные машины четвертого
поколения, а ученые и инженеры заняты проектированием
ЭВМ пятого поколения и начинают обсуждать идеи созда
ния ЭВМ шестого поколения.
Современные электронные вычислительные машины
имеют одну и ту же внутреннюю организацию, которую
принято называть архитектурой ЭВМ. Любая ЭВМ это
автоматическое устройство обработки информации Все они
сконструированы на основе электронных схем обработки
электрических сигналов, а принципы их рабоид основаны
на законах физики, логики и электротехники
Организацию ЭВМ можно сравнить с органи «ацией
зданий, а сети ЭВМ с транспортными сетями Мы ралли
чаем внешнюю архитектуру ЭВМ это то. что видят люди,
которые используют машины для своих целей, и внутреннюю
архитектуру ЭВМ это то. из чего состоит машина и на чем
основано накопление, обработка и передача информации
внутри машины.
Например, профессиональные персональные ЭВМ. по-
лучающие все более широкое распространение в различных
сферах производства и управления, внешне имеют следую
ший вид.
АРХИТЕКТУРА ЭВМ
217
архитектура персо-
нальны:, ЭВМ
ПРОЦЕССОР
ЛАМ *ТЬ
смратмам*
-говр***амИ4Я
ОАЪЕМ ПАМЯТИ
В состав профессиональных персональных ЭВМ входят
дисплей (или телевизор), клавиатура, дисковод, печатающее
устройство и, возможно, некоторые другие дополнительные
устройства ввода-вывода информации, такие, как графи-
ческие планшеты, графопостроители, звукосинтезаторы ит. п.
Центральной частью этих персональных ЭВМ является сис-
темный блок, в котором находится процессор, оператив-
ная и долговременная память.
Главными "действующими лицами" в любых ЭВМ явля-
ются процессоры, которые дирижируют совместной работой
всех устройств. Процессоры прежде всего осуществляют
всевозможные операции над числами — операции сложения,
вычитания, умножения и деления над целыми и веществен-
ными числами. По этой причине ЭВМ и названы вычисли-
тельными машинами. Кроме того, процессоры могут вы-
полнять различные преобразования символов и пересылать
их по линиям связи с одних устройств ввода-вывода на
другие.
Главным хранилищем, главной ценностью ЭВМ является
ее память. Различается оперативная и долговременная па-
мять ЭВМ. Оперативная память служит для хранения ин-
формации во время ее непосредственной обработки. После
выключения ЭВМ информация в оперативной памяти про-
падает. Для долговременного хранения данных, как прави-
ло, используются магнитные носители: магнитные ленты или
диски. Объем памяти — это важнейшая характеристика
вычислительных машин, поскольку она определяет объем ин-
формации, которая может храниться и оперативно обра-
батываться в них.
Кроме процессора и памяти, в состав современных ЭВМ
могут включаться различные другие устройства ввода, вы-
вода и накопления информации. Подобно современным спо-
собам построения зданий из унифицированных блоков и
панелей, в современных ЭВМ унифицируются средства и
правила обмена информацией между устройствами ввода-
вывода. В современных ЭВМ эта связь осуществляется с по-
мощью унифицированных линий связи, которые так и на-
зываются — магистраль.
718
Магистраль это общая линия проводов, к которой па-
раллельно подсоединяются блоки ЭВМ Посылая по ма-
гистрали электрические сигналы, любой блок ЭВМ может
передавать информацию любому блоку машины (или другой
машине по каналу свяли) А унификация правил и средств
связи меж iv устройствами позволяет включать в состав ЭВМ
различные новые устройства и заменять их по мере необ
ходимости.
Универсальность ЭВМ возможность их использования
1ля обучения и для игры, для расчетов и для накопления
информации основана на программном принципе унравле
ния работой вычислительных машин. Смена функций ЭВМ
достигается загрузкой в оперативную память новых про-
грамм программ управления работой процессора Процес-
сор последовательно считывает и выполняет команды
программы.
Каждая коман да процессора эго некоторая простейшая
операция ввода, вывода, записи и ш обработки данных.
В целом же любая программа реалн >ует некоторый комплекс
алюрнгмов обработки, накопления н пере дачи информации.
А они в свою очередь реализуют некоторый набор функций
ввода, обработки и предоставления информации, накапли-
ваемой в памяти ЭВМ. поступающей от различных устройств
или от людей, работающих с ЭВМ
1анные, непосредственно обрабатываемые процессора-
ми,- это числа и символы, представляемые двоичными ко-
дами Любые данные в ЭВМ записываююя в форме двоич-
ных чисел и размещаются в долговременной и оператив
ной памяти.
Оперативная память вычислительных машин состоит из
ячеек, которые нумеруются последовательными числами
0. I. 2, .. \. Количество этих ячеек и называется объемом
оперативной памяти машины. От размеров памяти зависит
объем информации и сложность задач, решаемых с помощью
ЭВМ В современных ЭВМ ячейки памяти рассчитываются
на хранение 8-разрядных двоичных чисел — байтов.
Физически информация при вводе-выводе представляется
в форме электрических сигналов:
U ПЕРЕДАЛ ИНФОР/ШЦИИ
О i О О Е 'f О 1
55 ___ _______________ _________
МАГИСТРАЛЬ
ПРОГРАММНЫЙ ПРИН
ЦИП УПРАВЛЕНИЯ
СТРУКТУРА ПАМЯТИ
ПРЕДСТАВЛЕНИЕ ИН
ФОРМАЦИИ
053---- ----------- ----------
________________________________________► -t
219
Обычно в микросхемах современных ЭВМ логическому
нулю соответствует напряжение 0—0,5 В, а логической
единице — 2,5 -5 В.
Информация в микросхемах опера-
тивной памяти ЭВМ запоминается пере-
распределением электрического заряда
в полупроводнике.
Магнитная лента.
Информация, записанная на маг-
нитных носителях, представляется в ви-
де участков различной намагниченности
ленты или диска.
Магнитный диск.
На экран телевизора информация
обычно выводится в виде темных,
светлых или цветных точек, стоящих
вплотную друг к другу. Когда раз-
меры этих точек достаточно малы, то
знаки и фрагменты рисунков воспри-
нимаются человеком как единое це-
лое.
Возможность предоставления людям информации в на-
глядной графической форме и расширение контактов людей
с ЭВМ заставляют задумываться и об эстетических аспектах
этого общения. В этом смысле архитектура ЭВМ и програм-
мное обеспечение компьютеров должны отвечать не только
определенным техническим, но и эстетическим, художест-
венным требованиям. Следовательно, в создании ЭВМ и их
программного обеспечения должны принимать участие не
только специалисты по вычислительной технике и программи-
рованию, но и художники-дизайнеры.
220
ц Что такое архитектуре ЭВМ?
2. Какова структура внутренней памяти ЭВМг
3 Как записывается и передается информация
, ЭВМ?
4 в каком виде представляется информация
в оперативной памяти ЭВМ?
вопросы
упражнения
задания
§ 50. Логические элементы ЭВМ
Принципы работы вычислительных Мишин и своей основе
весьма просты Рабою ЭВМ состоит в операциях н.п числа
мн И С11МВО1ЛМИ. ш копиров.! иными двумя цифрами 0 и 1,
и пересылке этой информации по линиям связи А рабою
всех устройств ЭВМ заключается в операциях над этими
пос 1едовате.1Ы1остями из нулей и единиц.
Средством обработки двоичных сш налов и ЭВМ явля
ютея логические элементы. Ока тывастся, что для реяли тапни
любых лот ических операций над двоичными сигналами доста
точно элементов грех типов элементов, pea.iii ту тощих три
основные логические операции и. или и не
Логические элементы это электронные схемы с одним
или несколькими входами и одним выходом, через которые
проходят электрические сигналы, представляющие цифры 0 элемент №
и I
Простейшим логическим элементом является элемент HF
Этот элемент имеет один вход и один выход
Элемент НЕ:
Функция’
7= не (XI
Работа этого элемента состоит в том, что если на ею
вход X поступает сигнал 0, то на выходе 7 появится сигнал I,
а если на входе 1. то на выходе 0 Логика работы элемента
НЕ заключается в формировании сигнала-отрицания 7., зна-
чение которого противоположно значению входного сиг-
нала X.
Второй основной элемент реализует логическую функ-
цию И
221
Функция
У
Элемент И:
X
Логика:
X Y Z
0 0 1 1 0 1 0 1 0 0 0 1
ЭЛЕМЕНТ И
Логика элемента И заключается в том, что на его выходе Z
будет сформирован сигнал 1 тогда и только тогда, когда
сигнал I будет и на первом, и на втором входе. Если хотя
бы на одном из выходов будет 0. то и на выходе также будет
сигнал 0.
X
У
Третий логический элемент реализует логическую функ-
цию ИЛИ, которая соответствует объединяющему союзу
или.
Элемент ИЛИ:
Функция:
Z=.X ИЛИ Y
Логика:
X Y Z
0 0 1 1 0 1 0 1 0 1 1 1
ЖМЕНТ или
Логика
Работа элемента ИЛИ предполагает, что сигнал 1 на
выходе будет получен, если сигнал 1 поступает хотя бы
на один вход: либо на X, либо на Y, либо и на X и на Y
одновременно. Сигнал 0 на выходе элемента ИЛИ появляет-
ся только в том случае, если сигнал 1 не поступил ни на
один вход — ни на X, ни на Y (т. е. оба входных сигнала —
нули).
Законы логики позволяют математически строго дока-
зать, что любая логическая функция может быть реализо-
вана с помощью перечисленных логических операций
и, или и не. Самый простой способ построения логических
схем из этих элементов по заданной логической функции
состоит в следующем. Прежде всего выписывается табли-
ца функции. Далее по каждой строке таблицы, в которой на
выходе записана 1, выписывается логическая комбинация
соответствующих переменных - входов. Если переменная
X в этой строке имеет значение 0, то в эту тогическхю
комбинацию записывается не X, а если значение I, то
записывается X. Рассмотрим следующую функцию.
Функция
не X и не Y
не X и \
X и не \
777
Логическое описание функции в целом получается
<,1письк> всех этих комбинаций с помощью связки или В
рассмотренном примере функции ее полное логическое
описание подучается таким:
/ (не \ и не Y) или (не \ и \) или (\ и не \ ).
Соответствуют ля этому описанию логическая схем i из
элементов И. ИЛИ и НЕ имеет следующий внд
Таким образом, любой логический или управляющий
блок ЭВЧ можег быть собран как из «конг гр\ кгора»
н-5 Ю1ических элементов указанных трех типов Скочс-rpvn
реем, например, устройство д in сложения двух двоичных
чисет так называемый однора сряднын сумматор. -)го
устройство должно давать на выходе следующие щоичпые
сигналы:
Составим таблицу логических значений для этого сум
матора, где X. 'i слагаемые, I’ u Z соответственно
первая и вторая цифры суммы двоичных чисел.
• 1огика:
X Y р Z
0 0 0 0
0 1 0 1
I 0 0 1
1 1 1 0
Функция-
Р = Х И Y
Z = (X или
Y) и не (Хи v )
223
Из таблицы видно, что переменная Р принимает тначеиие
I только тогда, когда X и Y одновременно равны I а
переменная Z принимает знач< нис 1 только в тек случаях
когда либо X. либо X принимает значение 1 (но не оба
вместе).
Соответствующая этим описаниям логическая схема
двухразрядного сумматора имеет такой вид:
Правила сложения двоичных чисел подчиняются тем же
законам, что и обычные правила сложения десятичных
чисел. Приведем пример сложения двух двоичных чисел:
0 0 11 =3
0 10 1 =5
10 0 0 = 8
Двоичные числа складываются справа налево по сле-
дующим правилам сложения цифр:
0+0=0 0+1=1 1+0=1 1+1=10
В последнем случае возникает единица переноса,
которую необходимо добавлять к результату сложения
более старших цифр. Поэтому для сложения двоичных
чисел в ЭВМ используются схемы суммирования трех
224
Схема суммирования многоразрядных двоичных чисел,
построенная на основе таких блоков суммирования, имеет
ви т:
Здесь Z3, Z2. Zl, Z0 — двоичные цифры результата.
1. Из каких логических элементов строятся ЭВМ?
2 Когда 1 появляется на выходе элемента И?
3. Когда 1 появляется на выходе элемента ИЛИ?
4. Каковы правила сложения двоичных цифр?
1, Найдите сумму следующих двоичных чисел:
а) 1111 6) 1110
01010011:
в) 1111 г) 1101
1001'* ОНГ
2- Составьте таблицу ‘логических значений и
логическую схему:
а) для блока сравнения сигналов (на выходе
этого блока должна возникать единица только
в том случае, когда входные сигналы совпа-
дают);
б) для блока несовпадения сигналов.
вопросы
упражнения
задания
0+0^1 0+1^0 -1+0^0 -/+1*1
§ 51. Команды и представление данных
Каждый тип ЭВМ имеет свой собственный набор
команд и способ представления данных. В то же время
они имеют много общего — практически все алгоритмы
обработки данных, реализуемые на ЭВМ одного типа,
могут быть реализованы на других ЭВМ.
Во всех ЭВМ применяется двоичная кодировка и
команд и данных Одним из наиболее распространенных
кодов является код ASCII. В русском расширении этот
код получил название АСКОИ алфавитный стандартный
код обработки информации. Этот код принят в качестве
стандарта в школьных ЭВМ
КОД ASCII 1ЖСКОИ1
225
Каждый символ в этом коде представляется восьми
разрядным двоичным числом (байтом). В этом представ
лении можно разобраться по следующей таблице:
asc I 0 1
4 5 6 7 8 9 10 11 12 13 14 15
0 I
1 1
2 I !
3 10 1
4 I @ А
5 I F О
6 I а
7 I Р q
8 I
9 I
10 I
11 I
12 I то а
13 in я
14 I Ю А
15 I П Я
It # * 7. 8< » (
т 4 5 6 7 8
в с D Е F G Н
R S Т и V W X
Ь с d е f g h
г S t и V w X
9 : ; < = > ?
I J К L М N О
Y Z [ \ ) -
i j k 1 m п о
у z < 1
е и
Р с
Б Ц
Р С
д е
т у
Д Е
Т У
Ф г
Ж Е
Ф Г
Ж в
II
ь ы
X И
ь ы
ft к
з 111
Й К
3 Ш
л м
3 щ
Л М
Э 111
н о
ч ъ
Н О
Ч
Код иобого символа в этой таблице определяется
ио номерам строки и столбца, запись которых в двоичной
форме и дает код данного символа Например, русская
буква "а” находится в 12-й строке и в 1-м столбце, значит,
код буквы "а" в АСКОИ будет равен 1100 0001.
Код любой буквы на школьной ЭВМ можно определить
с помощью команды
BIN* (ASC (A)) <-1
В этой команде использовались две функции Бейсика
ASC и В1К Л. Аргументом функции )SC является символ,
а ее значением — код символа в АСКОИ(ASCI 1). А функция
В1\$ по заданному целому числу вырабатывает его
двоичное представление. Поэтому указанная комбинация
функций BIN$ и ASC вырабатывает двоичные машинные
коды символов.
Более сложное положение в вычислительной технике
с кодированием числовых данных, представление которых
существенно различается в ЭВМ разных типов. Более
того, в различных тинах ЭВМ для чисел отводится разное
чис ю двоичных цифр -8. 16, 24. 30. 40, 64 и т. и., а кроме
того, используются еще и различные способы кодирования
чисел
226
В виде двоичных чисел в памяти ЭВМ колируется
। любая другая информация коды изображений, звуко-
вых сигналов, мелодий и т. д. В гом числе в двоичном
виде кодируются все программы и составляющие их
команды
Любая команда в ЭВЛА и других вычислительных
устройствах это операция пересылки или преобразования
информации. Исполнителями этих команд являются процес-
соры и устройства ввода-вывода информации Наиболее
важно понять, как работает процессор — устройство,
осуществляющее обработку данных и управление про
цессами ввода-вывода информации.
Работа процессоров всегда осуществляется в соответ-
сгвии с программами, находящимися в оперативной
памяти. А программа это не что иное, как последова-
т< льность команд, кодируемых в виде двоичных чисел.
Алгоритм работы процессора весьма прост процессор
следовательно считывает команды из памяти и выполняет
их. Рассмотрим примеры работы процессора на упрошенной
одели ЭВМ в которой команды будут записываться не в
.аоичной форме, а в содержательных обозначениях.
В рассматриваемой модели имеются счетчик команд,
! исемь регистров и оперативная память.
СК РО Pl Р2 РЗ Р4 Р5 Р6 Р7
В счетчике команд хранится адрес очередной выполняе-
>й команды. Регистры это ячейки внутренней памяти
ЭВМ. в которых проводятся арифметические операции
и операции сравнения данных.
Для выполнения арифметических вычислений во всех
ЭВМ имеются команды сложения, вычитания, умножения
и деления целых чисел, выполняемые над регистрами.
Наличие вещественных арифметических операций зависит
от типа ЭВМ
Арифметические команды в ЭВМ чате всего записы-
ваются в лвухаргументной форме. При этом один из
। и умен гов .то обязательно регистр, который служит и для
mm и результата. Рассмотрим примеры таких машинных
>мянд в алгоритмической записи
Команды Действие:
'.’I; Р1 4-Р2 прибавит к содержимому Р1 содер-
жимое Р2 и iioMecinib результат в Р1,
Для чего используются
регистры памяти!
227
Pl: =Р1 — РЗ
Р2: = Р2 • РЗ
вычесть из содержимого Р1 содержи
мое РЗ и записать результят в pi
умножить Содержимое Р2 на содер
жимое РЗ и поместить резульгл
в Р2.
Оперативная память ЭВМ -это массив ячеек Я|0:\|
в которых могут храниться машинные слова, имеющие
фиксированную длину в 8, 16, 32 или другое число бит
Базовыми операциями над данными в памяти ЭВМ яв.д
ются команды их пересылки, ячейка *регисгр. регистр >
ячейка, ячейка-ячейка. Примеры команд пересылки-
Команды:
Р1:=Я[100]
Я [101 ] : —Р2
Я [ 103] : = Я ] 101 ]
Дейс'1 вне
пересылка содержимого ячейки Я [100]
в регистр PI,
пересылка содержимого- регистра Р2
в ячейку Я 11011,
пересылка со тержнмого ячейки Я [1011
в ячейку Я] 103]
На самом деле вес1 коман сы кодируются в двоичной
форме и записываются в оперативную память При этом
в счетчик команд записывается адрес первой выполняемой
команды программы. Работа процессора состоит в выборке
по счетчику адреса очередной команды, ечтывании и
выполнении этой команды, а затем в увеличении счетчика
команд на 1 и списывании следующей команды.
Разберем пример выполнения программы суммирования
пары чисел:
СК Р0 Р1 Р2 РЗ Р4 Р5 Р6 Р7
100 Память — — — □ □ —J
Программа Данные
100 101 102 103 Р1: =Я [500] 500 501 502 503 4
Р2: =Я [501] 10
Р1: =Р1 4-Р2
Я [502]: ==Р1 —
В этом примере предполагается, что суммируемые
числа размещены в ячейках 500 и 501, а программа
в ячейках с 100-й по 103-ю. Запуск этой программы про-
исходит при установке в счетчике команд числа 100-
адреса первой команды программы.
228
После этого процессор считывает из 100-й ячейки
команду Р1:=Я[500]. Выполняя эту команду, процессор
перешлет из ячейки с адресом 500 число 4 в регистр Р1.
1алее значение счетчика команд автоматически будет
увеличено на 1 и станет равным СК=101. Поэтому
еле гуюшая команда будет г увлекаться из 101 й ячейки.
Выполняя команду Р2:=Я[501|. процессор перешлет
содержимое 501-й ячейки—число 10 в регистр Р2.
После этого значение счетчика команд увеличится еще
на 1 и станет равным СК =102. Процессор соответственно
считает команду —Р1:=Р1+Р2, записанную в 102 й
ячейке. Выполняя эту команду он сложит чис ia 4 и 10
из регистров Р1 и Р2 и запишет полученную сумму число
14 в регистр Р1.
Затем значение счетчика команд увеличится еще на 1 и
получит значение СК =103. Выполняя команду из 103-й
ячейки Я |502| : — Р1, процессор запишет число 14 сумму
чисел 4 и 10 — из регистра Р1 в ячейку с адресом 502.
Порядок выполнения команд может и .меняться. Для
этого в счетчик коман д записывается адрес коман гы,
е которой нужно продолжать выполнение программы
В алгоритмической форме эту коман гу можно записать
в виде присваивания:
Команда: Действие'
СК: =200 продолжать выполнение с 200-й коман гы.
В данном примере в счегчик команд записывается число
200. Выполнение этой команды приведет к тому, чго
процессор перейдет к выполнению программы с команды,
хранящейся в 200-й ячейке.
Повторения действий и выбор действий в машинных
программах, как и в программах на Бейсике, реализуются
с помощью команд условного и безус тонного переходов.
Роль переходов в машинных программах играют операции
над счетчиком команд. Условия в этих программах, как
правило, могут быть только самые простые сравнение
чисел или символов, размещенных в регистрах процессора.
Примеры коман "
Команда: Действие'
ести Р1 > 0 то СК: = 100 — если содержимое Р1 >0, то переход
к 100-й команде.
если Р2 = РЗ то СК: = 120 — если содержимое Р1=Р2. то пере-
ход к 120-й команде.
С помощью такого рода команд могут быть реали-
зованы любые сколь угодно сложные алгоритмы обработки
данных. В качестве простейшего примера рассмотрим
программу вычисления в этой модели ЭВМ модуля числа:
229
ПРОГРАММА дхнньп
200 Р1: =Я [500] 500 — >
201 если PIJ^O то СК: =203 501
202 Р1: = — Р1 502 ——-
203 Я [501]: =Р1
Выполнение этой программы начинается с команды
записи исходного числа из ячейки 500 в регистр Р1 Зятем
командой 201 проверяется, верно ли. чго число н Р1 больше
либо равно 0, Если да. го в счетчик команд записывается
новое значение < К = 203 и шлее выполняется ком ища
под номером 203. Если же число в регистре Р1 окажется
меньше 0, то к счетчику команд прибавляется 1 и он
полечит значение ( К = 202. В соответствии с этим значением
счетчика б\дег выполнена команда Р1:== —Р1. которая
изменит знак числа в регистре Р1 И только после этого
будет выполнена команда из 203 и ячейки, которая пере
пишет число из регистра PI в ячейку Я [5011.
Таким же образом в программах в машинных кодах
организуются циклы и вытов подпрограмм. Optапизация
соответствующих переходов выполняется тем же способом
с помощью безусловных и условные переходов, реализуемых
сменой адреса в счетчике команд.
вопросы ("Т/П
упражнения
задания i" и
1. Как определяются коды символов по табли-
це АСКОИ?
2. Какова роль счетчика команд в процессорах?
3, Как в процессорах выполняются арифмети-
ческие операции?
4. В чем состоит основной принцип работы
процессоров?
1. Определите двоичные коды символов с
помощью ЭВМ и с помощью таблицы АСКОИ:
а) "б"; б) "Б"; в) "в"; г) "В";
д) "с"; е) "С"; ж) "s"; з) "S".
2. Укажите двоичные коды целых чисел
а) 9; б) 11; в) 13; г) 15.
3. Сложите в двоичной форме следующие числа:
а) 4 и 3; б) 32 и 14;
в) 2 и 5; г) 5 и 5.
4. Составьте последовательность команд для
вычисления:
а) с=тах (а, Ь); б) c=a2-f-b;
в) с—min (а, Ь); г) c~(a-f-b)/b,
предполагая, что величины а, b записаны в
500-й и 501-й ячейках, а результат — в 502-й
ячейке.
ПЕРСОНАЛЬНАЯ ЭВМ
§ 52. Внешние устройства ЭВМ
Персональная ЭВМ для нас настольный прибор, в
состав которого входят телевизор, клавиатура и трмие
устройства ввода, вывода и накопления информации.
230
Такие ЭВМ могут быть установлены практически на
любом рабочем месте и могут использоваться для предо
ставтения. поиска, накопления, обработки и передачи
различного рода информации.
Спектр возможностей в предоставлении информации
с помощью ЭВМ существенно зависит от включенных
в их состав устройств ввода-вывода и накопления инфорна
ци и.
Наиболее заметным внешним устройством персональных
ЭВМ является телевизор или дисплей Эти устройства
выводят графическую или текстовую информацию на экран
электронно-лучевой трубки:
ВНЕШНИЕ УСТРОЙ-
СТВА:
дисплеи
Вычерчивание изображений на экране трубки прово щ гея
пучком электронов, которые оставляют светящийся след.
При нанесении на экран специального слоя этот с лед можо
стать цветным. N правление пучком электронов осуществ-
ляется электромагнитным или электростатическим полем.
В телевизорах пучок электронов перемещается по строке
слева направо, затем перескакивает на следующую строку
и т. д. Б. пагодаря тому, что электронный пучок перемещает
ся достаточно быстро, мы воспринимаем совокупность
отдельных точек, которые он прорисовывает, как целостное
изображение
Ввод информации в ЭВМ обычно осуществляется с по-
мощью клавиатуры. Клавиатура ЭВМ схожа по форме
и по расположению знаков с клавиатурой пишущих
машинок, телетайпов и буквопечатающих телеграфных
аппаратов.
клввиатурв
231
Клавиши на клавиатуре ЭВМ сгруппированы. Здесь
выделены группы знаков русского и латинского алфавитов,
группа функциональных клавиш управления режимами
работ ЭВМ, группа клавиш редактирования. На некоторых
ЭВМ, подобно калькуляторам, выделена группа клавиш
с десятичными цифрами.
Простейший принцип действия клавиатуры состоит
в том, что при нажатии клавиши замыкается контакт
электрической цепи. Сигнал о нажатии клавиши попадает
в электрическую цепь, которая записывает в память
ЭВМ код нажатой клавиши.
Наличие телевизора или специального дисплея, а также
клавиатуры позволяет работать на ЭВМ с учебными и
игровыми программами. Установка печатающего устройства
позволяет работать на ЭВМ как на пишущей машинке,
а также редактировать и выводить на печать тексты и
различные документы.
4 «* «юми* устрой- Печатающие устройства могут работать на основе
электромеханических или оптических принципов. Электроме-
ханические печатающие устройства во многом похожи
на этектрические пишущие машинки, но в них перемещается
не каретка с бумагой, а печатающая головка.
Печатающая головка представляет собой вертикаль-
ную матрицу из игл. Матрицы обычно имеют размер
9x9, 7\9 По мере перемещения юловки над бумагой
игзы выталкиваются в нужной последовательности, прижи-
мают красящую ленту к бумате и формируют набор точек,
из которых получаются буквы алфавита, цифры и чрзгие
знаки
232
1Я выво, la на бсмагу непрерывных линий в ЭВМ исполь-
- к я I рафопостроите 1И
И «обряжение на бумаге в графопостроителях вычерчи-
ется рисующими готовками, в роли которых могут быть
тержни, рейсфедер или ампуты с красящей пастой. Дви-
Ж1 наем головки управляют два электрических двигателя,
ин и) которых перемешает головку вдоль горизонталь-
' 'й < и чертежа, а дрмой вдоль вертикальной оси.
Ввод графической информации может проводиться с
>->та шелл'-я помощью световою пера подсоединен-
> , ->ВМ
Ви три in ра находи гея фотодиод, который может реаги-
, дгь на пучок jieKtpoHoii, И'нускаечых > зектронно-ту-
вои груби >й ( игнял о фиксации печка поступает в блок
-травления световым пером оттуда в -IBM. которая пе
Julie г в блок управления лиг инеем сингал о выводе
>егяи|гй<я точки в him мене, i ie нахосигся световое
графопостроитель
сиетооое л«ро
233
графический планшет
Наиболее удобным ере детом ввода графической ин
формации является графический планшет
Принцип его работы весьма прост по планшету рукой
перемещается "мышь" коробочка с шариком па донышке.
"Мышь" катается но планшету, механические перемс тения
фиксируют! я, передаются по проводу в ЭВМ и отобража-
ются на экране. С "мышью" человек действительно ри-
сует на «кране ЭВМ
234
Наличие таких графических устройств в во та и вывода
информации дает возможность выполнять на ЭВМ чертеж
ные работы При этом ЭВМ позволяет быстро вносить
исправления в подготавливаемые чертежи и печатать их
в люоом количестве экземпляров
Г те бо тее значимые возможности мы получаем от ЭВМ
при нк тючении в их состав устройств накопления ин
формации Они позволят нам хранить тексты, документы,
чертежи и тру того рода информацию тля последующего
редактирования и размножения, а также накапливать
библиотеки учебных, игровых, 'теловых н другого рота
программ
Простейшими устройствами накопления информации яв
тяются кассетные магнитофоны.
магнитофон
Принцип записи информации на магнитных лентах
в ЭВМ тот же. чю и при записи му зыки на обычных мигни
тофонах Запись информации провозится с помощью го
ловки, содержащей кату тику индуктивности Запись прово
тится побайтно на девяти дорожках одновременно. Счпты
ванне информации проводится той же головкой при усга
новке ленты с начала записи очередной порции информации.
Неудобство магнитофонов связано с необходимостью пере
мотки магнитных лент при поиске нужной информации, что
требует сравнительно больших затрат времени
Более удобным средством для работы с информацией
являются магнитные диски и накопители на магнитных
дисках
накопитель на маг-
нитима дискаа
235
Гибкие диски во многом схожи с гибкими грампластин-
ками и представляют собой кругчую пластмассовую плас-
тинку на которую нанесен магнитный слой Считывание
информации производится отдельными байтами с по-
мощью считывающей головки Эта головка больше похож i
на головку проигрывателя, поскольку она можег быстро не
ремещаться к центре диска. Ио згой причине накопители
на гибких магнитных дисках позволяют организовать
быстрый доступ к отдельным записям на диске.
Емкость магнитных лент составляет примерно 300 тыс
байт Емкость гибких магнитных дисков от 500 тыс до
1 м IH. байт. Если на одной странице 50 строк с t>0 симво-
лами на строке счшая и пробелы, то о емкости магнитных
дисков и лент можно сказать следующее На одной кассете
магнитной ленты можно записать около 100 с границ текста,
на гибких щеках - ог 150 до 300 страниц текста. В часг
ности, для хранения этого учебника требуется ровно один
гибкий магнитный диер объемом в 1 Мбайт.
Для постоянного хранения в ЭВМ информации больших
оптические диски объемов используются накопители с жесткими дисками, ко
торые постоянно находятся со своей информацией в ЭВМ
Такие диски имеют обьем памяти от 5 до 200 Мбайг. Они
позволяют создавать в ЭВМ всевозможные картотеки, ар-
хивы документов и базы данных
По-настоящему большие объемы информации позволяют
накапливать оптические диски. Обьем памяти на этих дисках
составляет от 100 до 1000 Мбайт. Считывание информации
с таких дисков производится лазерным лучом. Обьем па
мяти этих дисков позволяет записывать на них двухчасовой
видеофильм либо до тысячи кадров, рисунков или картин
которые могут проецироваться на экран ЭВМ.
Но наиболее важным для всех нас будет возможность
подключения ЭВМ с помощью модемов к телефонной сети
Это позволит обмениваться информацией с другими ЭВМ и
через них получать информацию из самых различных архи-
вов, библиотечных и информационных фондов.
СЕТИ ЭВМ Объединение ЭВМ в сети с помощью каналов связи
позволит людям обмениваться производственной и деловой
информацией - текстами, документами, чертежами и другой
информацией без использования бумаги. А связь между
ЭВМ по телефону позволит получать информацию из библио-
тек, делать заказы и многое-многое другое, что необходимо
для наших служебных и личных дел
1 Какие основные устройства используются
в ЭВМ:
а) для ввода-вывода графической информации,
6) для накопления информации?
2. Каковы характеристики основных типов маг-
нитных носителей информации?
вопросы | I ?
упражнения piu
задания LjJlXJ
236
§53. Типы современных ЭВМ
В числу основных union современных ЭВМ относятся:
1) суперЭВМ; 2) большие ЭВМ; 3) мини-ЭВМ; 4) мик-
р) IBM
Классификация ЭВМ на типы обычно провощи я по мош
носги. но можно классифицировать их и но способу исполь-
ювания
МикроЭВМ зто настольные ЭВМ, в сослав которых
их-> inI теплей, клавиатура, печатающее устройство и диско
под и ли ма! ниюфон. Но способе исполыованпя мик-
роЭВМ это вычисли к п.ные машины индивидуального
, чпокания в школе, в лаборатории, в цеху и других
I ffiomix чес тах и ш тома
К числу отечественных микроЭВМ относятся битовой
МШ.ЮТ1 р БК OHIO, школьные компьютеры "Корит г" и
4 ц к тропика АКНЦ" профессиональные компьютеры
К iblD и трутне перс она пятые ЭВМ Срс ш тарубежных
микрт 4ВМ в нашей cipjiie широкую извесТиот гь получили
, [повальный компьютер фирмы " Apple", бытовой компью-
тер 'YAMAHA , профс , сиональный компьютер IBM/PC,
бот’арские персональные ЭВМ ' Правей", немецкие пер
сональные ЭВМ "Роботрон" и другие микроЭВМ.
Мини ЭВМ «то вычислительная установка, в состав
Обыий вил мини-ЭВМ
ТИПЫ СОВРЕМЕННЫХ
ЭВМ:
микроЭВМ
мини-ЭВМ
237
которой входят процессор, несколько дисплеев, накопители
на магнитных дисках и на магнитных лентах, печатающие
устройства, графопостроители и другие внешние устройства
С точки зрения применения мини-ЭВМ позволяет ра
ботать одновременно группе людей, совместно использую
щих общие ресурсы накопители информации процессор
устройства печати и другие устройства ввода вывода ин-
формации. Такие ЭВМ устанавливаются в лабораториях и
цехах, на кафедрах и в учреждениях для организации
коллективной работы людей.
Среди отечественных мини-ЭВМ широкое распросгра
некие получили семейство малых ЭВМ СМ ЭВЦ, а также
мини ЭВМ семейства "Электроника" Из зарубежных ми
нн-ЭВМ широко известны машины семейства PDP ц
Hewlett — Packard.
большие эвм Большие ЭВМ это комплексы вычислительных средств,
включающие быстродействующие процессоры, большие на-
копители на магнитных дисках, разнообразные устройства
печати, дисплейные комплексы и другие внешние устройства:
Большие ЭВМ служат базой для создания вычислитель-
ных центров в крупных организациях с централизованным
техническим обслуживанием и децентрализованным исполь-
зованием. Такие вычислительные центры служат техни-
ческой основой для создания автоматизированных систем
управления, автоматизированных систем научных исследо-
ваний, автоматизированных систем проектирования и других
автоматизированных комплексов. м fi
К числу отечественных больших ЭВМ относятся БЭСМ-
(большая электронно-счетная машина) и вычислительные
238
hi мпчек-ы [•’(’ ЭВМ (единая серия -»ВМ) Среди тарубеж
чих бо.ыпих -ЭВМ наиболее швссгны ЭВМ, вынускаемые
фирмой IBM (International Business Machines)
( уперЭВМ >ro многопроцессорные вычислительные
комплот ы. в состав когт.рых входя! от 2 до К) сверхбыстро
leiiciBVioinnx процессоров, набор накопителей на магнитных
пиках и Мишиных лентах К этим ЭВМ может иодклю
чаться большое число дисплеев и разпообра шых внешних
xcipoiiciB вно та-вывода информации. Такие ЭВМ исполь-
пютея для решения наиболее сложных научных и нрои >
водственно-гехнических задач, например в космических и
ядерных проектах и исследованиях.
С технической точки зрения ЭВМ разных типов имеют
раз тичное быстродействие и объем внутренней и внешней
памяти. О быстродействии современных ЭВМ судят по
количеству арифметических операций, выполняемых за 1 с.
МикроЭВМ имеют быстродействие порядка 200—800 тыс.
операций в секунду. Объем оперативной памяти колеблется
от 16 ’О 256 Кбайт.
Быстродействие мини-ЭВМ варьируется от 400 тыс. до
I млн. операций в секунду, а объем оперативной памяти —
о! Л4 до 4000 Кбайт.
Внешняя память ЭВМ >ависит от типа исчюлыуемых
накопителей. В яикроЭВМ с накопителями на кассетных
тентах и гибки- тисках обьем внешней памяти составляет
,>г 100 Кбайт ,0 1 Мбайта. В мини ЭВМ на кассетах, маг-
нитных лентах и магнитных дисках объем внешней памяти
может быть от 1 Мбайта до 20 Мбайт.
Быстро тейсгвие больших ЭВМ колеблется от К) тыс. до
’ м ,г! операций в секунду, а оперативная память -
от 64 Кбайт то 16 Мбайт Обьем внешней памяти в этих
ЭВМ зависит от чис ia накопителей на магнитных дисках
и лентах, которые одновременно могут быть подключены.
Накопители на магнитных лентах позволяют записывать до
50 Мбайт информации, а накопители на магнитных дисках
от 30 до 200 Мбайт.
Современные суперЭВМ имеют быстродействие свыше
100 млн операций в секунду, а объем оперативной памяти —
от 10 до 100 Мбайт. Объём внешней памяти в суперЭВМ
также тависит от числа подключенных к ним внешних нако-
пителей информации и может составлять сотни Мбайт.
Среди отечественных суперЭВМ выделяется вершина оте-
чественной вычислительной техники многопроцессорный
вычислительный комплекс "Эльбрус", в состав которого
могут входить от 2 до 10 процессоров и разнообразные
грош гва ввода-вывоза и накопления информации. Средн
ырубежных суперЭВМ выделяются суперкомпьютеры
' г. 1. ( YBKR и II I LA( >, обладающие быс I ро тействис м
порядка 100 млн, операции в секуч ту
суперЭВМ
БЫСТРОДЕЙСТВИЕ
ЭВМ
23»
МИКРОПРОЦЕССОР
Классификация ЭВМ ио типам весьма условна В свят
с бурным развитием вычислительной техники наиболее
перспективные микро и мини-ЭВМ в недалеком будущем
будут превосходить по своим возможностям своих старших
"братьев" Например, персональный компьютер IBM, PC,
который может быть установлен на столе, имеет практи-
чески ту же "мощность", что и о тна из лучших больших
ЭВМ ЁС-1035, требующая для своего размещения по
метения площадью 120 м2.
Одной из основных причин интенсивного прогресса вы-
числительной техника является появление в конце 70 х годов
микропроцессоров. Конструктивно микропроцессоры по
компактные электронные микросхемы, способны* реализо-
вать целиком функции процессоров вычислительных машин.
В такой электронной микросхеме содержали транзисторы,
конденсаторы и сопротивления, образующие сотни тысяч
логических элементов.
Компактность микропроцессоров позволяет встраивать
их в различные приборы и устройства в качестве програм-
мируемых блоков управления. Тем самым создастся основа
для разработки принципиально новых автоматически
управляемых станков и приборов, механизмов и устройств,
в том числе сверхмощных вычислительных машин новых
поколений
вопросу г ' " I
упражнения pfU
задания IjJLZZj
)1. Каковы основные типы современных ЭВМ!
2. Где используются микро- и мини-ЭВМ?
3. Каковы быстродействие и объем оперативной
памяти микро- и суперЭВМ?
4. Что такое микропроцессор?
§ 54. Программное обеспечение ЭВМ
Какими бы совершенными ни были электронно-вычис-
лительные машины, без набора соответствующих программ
(программного обеспечения) компьютеры превращаются в
бесполезную (хотя и весьма дорогостоящую) груду металла.
Успех применения ЭВМ в нобой отрасли народного хо-
зяйства зависит прежде всего от того, есть ли в наличии
программы для решения возникающих задач и насколько
эти программы совершенны.
Для успешного применения компьютеров в разных сфе
рах деятельности людей необходимо, чтобы соответствующие
программы были разработаны с учетом тех условий, в ко-
торых человек будет работать с ЭВМ. Например, база
данных помогающая продавать железнодорожные билеты
240
(такая, как система «Экспресс»), должна позволять кассиру
заказывать билет с помощью кратких запросов, вводимых
в .добной для него последовательности (например, сна га га
вводится город. а затем гага отъезда) Сообщения же
которые вытает ЭВ\у должны быть подробными и предостав-
ляться в виде, удобном для восприятия Кроме того, при
заказе билета должны быть учтены пожелания будущего
пассажира: кроме типа вагона (мягкий, купейный, плац-
картный), покупатель вправе потребовать верхнее или,
наоборот, нижнее место, а машина при пре поставлений
информации о свободных местах должна сообщить соот
вет, гвующие данные, прежде* чем покупка билета состоится
Вообще программы, обеспечивающие диалог человека с
ЭВМ должны прежде всего создавать удобства для че
ловека в процессе такого общения. В освоенности это ка-
сается учебных программ Известны случаи когда бес
гакгные или оскорбительные сообщения-реплики, вы щ-
ваемые компьютером, надолго отбивали желание учиться с
помощью ЭВМ Таким образом, невежливость и тругне не
достатки, к сожалению, свойственные людям, б*. Тучи вопло-
щены в программах, становятся недостатками компьютеров.
Эта проблема стоит достаточно остро, поскольку ЭВМ все
шире внедряются в наш быт, в сферу обслуживания, и
разве столь уж важно, кто именно нагрубит покупателю
человек-продавец или. заменяющая его машина!
Вы уже знакомы с некоторыми приемами составления
простых программ и знаете, что машина способна выпол
пять лишь достаточно простые действия. Многообразие же
решаемых компьютером задач обеспечивас гея сложностью
программы, управляющей этим решением. Необходимо за-
помнить главное:
«ум» компьютера — это ум человека, воплощенный в программе!
То же можно сказать и об "умении" машины сооб-
щать необходимые сведения, понятно и тактично вести
диалог. Сумбурное* изложение, грубость в общении и другие
малоприятные качества компьютеры тоже "унаследовали"
от разработчиков программ
Поскольку ЭВМ применяются для решения все новых и
новых задач, программное обеспечение постоянно развива-
ется. Совершенствование программного обеспечения можно
сравнить с ростом дерева. "Корень дерева" это аппарат
ные средства; именно они определяют возможности ЭВМ,
а значит, и крут задач, которые можно решить с помощью
данной машины. Но мере роста на "дереве" появляются
все новые и новые "ветви" — программы нового назначе-
11 Зак 1994 В А Каймин
241
ния, а также "листья” - информация, связанная с неволь
зованием этих программ. Этот процесс чаще всего завел
шлется гибелью "дерева” из-за появления новых "собозгь
ев” — более мощных и удобных ЭВМ h
БАЗивОЕ ПРОГРАМ-
МНОЕ ОБЕСПЕЧЕНИЕ
Что же включает в себя программное обеспечение ЭВМ?
Прибегнем еще к одной биологической аналогии жизни
клетки. Как и у клетки, у программного обеспечения имеется
"ядро”, называемое базовым программным обеспечением.
Процесс распространения программного обеспечения, в том
числе базового, чем то напоминает деление клеток. В ре-
зультате переноса программ с одних ЭВМ на другие возни-
кают очень похожие друг на друга (как разделившиеся
клетки) версии программного обеспечения, которые в зави-
симости от условий существования (видов решаемых задач,
различных требований) со временем видоизменяются неза
висимо друг от друга.
Как уже отмечалось, роль ' ядра” всего множества про-
грамм, имеющихся на данной ЭВМ. играет базовое програм-
мное обеспечение. В состав ба ювого программного обеспе-
чения входят операционные системы и и нс тру ментальны»
программы: компиляторы, интерпретаторы и т. д. Для ЭВМ
учебного назначения в состав базового обеспечения
вк1 ючаются также программы, обучающие работе с ЭВМ
Основу базового программного обеспечения составляют
операционные системы. Операционная система это свое-
образный диспетчер, управляющий распределением всех
основных ресурсов ЭВМ: оперативной и внешней памяти,
устройств ввода-вывода и г. д.
/42
Возможности операционной системы зависят как иг тина
ЭВМ, гак и or предназначения данною компьютера. На
о шой и той же ЭВМ может быть несколько операционных
систем. В персональных компьютерах операционная система
может храниться в постоя иной (неизменяемой) памяти ЭВМ.
Например, в школьных ЭВМ обращение к функциям опе-
рационной системы осуществляется отдельными командами
языка программирования (например языка Бейсик) В более
мощных ЭВМ программы, составляющие операционные
системы, хранятся на магнитных дисках. Такие операцион-
ные системы называются дисковыми.
Одной из наиболее распространенных дисковых опера-
ционных систем для персональных ЭВМ является система
СР Ч. Для более мощных персональных ЭВМ используется
система MS/DOS и ее разновидности На мини-ЭВМ широкое
распространение получила система UNIX. Операционная
система ОС ЕС на больших ЭВМ Единой серии постепенно
уступает место операционной системе СВМ. Различия между
операционными системами, как правило, непринципиальны
и носят технический характер.
Кроме опер тионных систем, в базовое программное
обеспечение также входят так называемые системы про
траммирования. Системы программирования >ю различ
иые компиляторы, интерпретаторы и другие инструмеп
тальные программы, необходимые для разработки новых
программ Помимо этого, в ба юное программное обеспе-
чение также включаются различные сервисные программы.
Все программное обеспечение в целом можно подраз-
делить на системное и прикладное. В системное программное
обеспечение входят операционные системы, системы програм
мирования, а также другие программы, которые исполь-
зуются профессиональными программистами для создания и
развития программного и информационного обеспечения
ЭВМ.
Прикладное программное обеспечение ЭВМ это про
граммы, используемые, как правило, непрограммистами:
игры, учебные программы, деловые программы, информа-
ционно-поисковые (библиотечные) системы и другие про-
|раммы дтя решения прикладных задач В настоящее время
уже созданы тысячи наименований различных прикладных
программ.
Особое место среди них занимают прикладные программы
общею назначения, с которыми необходимо уметь работать
всем Эго редакторы текстов, электронные таблицы, базы
данных, графические редакторы и г. д. Напомним, что уме-
ние ноль низа гься программами таких типов признак
компьютерно зрамопюю человека.
В будущем вследствие совершенствования ЭВМ т ганег
возможна реализация нт компьютерах гораздо более стож-
11*
ОПЕРАЦИОННЫЕ СИ-
СТЕМЫ
днекоаые ОПЕРА-
ЦИОННЫЕ СИСТЕМЫ
СИСТЕМЫ ПРОГРАМ-
МИРОВАНИЯ:
инструмаиталаимо
программы
сервисные програм-
мы
ПРОГРАММНОЕ
ОБЕСПЕЧЕНИЕ:
системное
прикладное
243
них функций обработки ценных, которые не могут эффектов
но осуществляться современными ЭВМ. Так, в Советском
Союзе и за рубежом широко развернупись работы по созда
нию экспертных систем комплекса прщрамм и ннформа
ционного обеспечения, осуществляющего общение с . ю 1ьмн
на языке, близком к естественному, и способного прею
ставлять достаточно осмысленную информацию на основе
фактов и определений (правил вывода), введенных в их ба>\
знаний Общение с экспертными системами, по-видимому
будет происходить на языке логических построений, на
поминающем знакомый вам язык Пролог.
Таким образом, ЭВМ в будущем стану г не только мощ-
ным инструментом дйя накопления и сравнительно нет юж
ных преобразований информации, ио и смогут втягь на себя
некоторые интеллектуальные функции, присущие человеку.
В их число войдут- осмысленный поиск и анализ инфор
мании, автоматизированный перевод текстов, диалог с людь
ми на естественном языке, планирование деятельности робо-
тизированных участков («безлюдных» производств). авто-
матические составление программ, а также решение многих
тругих сложных задач.
вопросы 1 " |
упражнения г»и
задания liijZf
I. Что такое базовое программное обеспе-
чение ЭВМ?
2. Каковы основные функции операционной
системы?
3. Какие прикладные программы общего назна-
чения вы знаете?
4. Что такое экспертные системы?
§ 55. Языки и технология программирования
ЯЗЫКИ ПРОГРАММИ-
РОВАНИЯ:
Создание программного обеспечения для ЭВМ —это
сложная профессиона юная деятельность, требующая высо-
кой квалификации разработчиков и предполагающая опреде-
ленную организацию труда. Для написания программ ис-
пользуются языки, называемые языками программирования.
Различные формы организации работы с использованием
инструментальных программных средств называются тех-
нологиями программирования.
За 40 1ет развития вычислительной техники создано более
тысячи различных языков программирования для вычисли-
тельных машин. Перечислим те из них, которые получили
наиболее широкое распространение на современных ЭВМ
Программирование на персональных ЭВМ ведется в
основном на трех языках: Бейсике. Паскале и Си. На боль-
244
iihix и мини ЭВМ также широко применяются языки Форт
ран и ПЛ/i Чзо же касается перспективных машин но-
вого, пятого поколения, то прототипом языков программи-
рования будущею считается язык Пролог.
Я тык Бейсик был создан в 1965 г. в Дартмутском универ
ситете как средство для обучения программированию. Досто-
инечзамн Бейсика являются достаточно простые, а потому
удобные ерс' • тва ввода, отладки и испытания программ,
а также возможно! гь поступи ко всем основным ресурсам
ЭВМ Вместе с тем Бейсик поощрят г неряшливое написание
программ, которые содержат массу ошибок. Кроме того,
программы на Бейсике обычно выполняются относительно
мс тленно, поскольку в ЭВМ применяются, как правило, не
ком.ш шторы, а интерпретаторы языка Бейсик
Наиболее распространенным языком программирования,
воплотившим в себе принципы структурного программи-
рования, является язык Паскаль. Он был создан в 1971 г.
швейцарским профессором Н. Виртом также в качестве
средства тля обучения программированию. Благодаря ис-
пользованию принципов структурного программирования и
пошаговой детализации программы на языке Паскаль более
понятны, и при изучении этого языка начинающими делается
намного меньше ошибок, чем при изучении языка Бейсик.
В силу своих достоинств язык Паскаль послужил про-
тотипом всех основных современных алгоритмических языков
программирования, таких, как автокод Эльбрус, Ада, Си,
Модула-2 и т. д. Общим для всех этих языков является удоб-
ство написания программ по правилам структурного про-
граммирования. А именно программы на этих языках строят-
ся как из «конструктора», из четырех основных структур:
1 . Последовательность действий.
2 Альтернативные (условные) действия.
3 . Повторение действий (цикл).
4 Выделение' вспомогательных алгоритмов.
Главным отличием этих языков от Бейсика, Фортрана и
других неструктурных языков программирования является
ограничение (иди запрет) на использование операторов
перехода (GOTO), бездумное применение которых запуты-
вает программу и сидьно затрудняет, а иногда делает невоз-
можным понимание ее логики.
Перечисленные идеи составляю! суть структурного
программирования, предложенного голландским профессо-
ром Лейкстрой еще в 1"69 г. Изучавшийся вами русский
апоритмический язык также является структурным языком;
более того, если в алгоритме перевести русские словгз на
английский язык, то мы получим программу на языке
Паскаль1
Язык программирования Си создавался не как учебный,
а как ин<трумензальный язык для разработки операцией-
Бейсик
Паскаль
ОСНОВНЫЕ СТРУКТУ-
РЫ
СТРУКТУРНОЕ ПРО-
ГРАММИРОВАНИЕ
Си
245
Фортран
ПЛ 1
Алгол 6*
«ТчЖОД Эльбрус
*Д*
ЛИСП
ных систем, трансляторов, бит данных и других системных и
прикладных программ. Так же как и Паскаль язык Си
это язык структурного программирования, но в отличие oi
Паскаля в нем за южены возможности создания больших
программ, а также возможность непосредственного обра-
щения к некоторым машинным командам. И. Виртом был
предложен язык Модула-2, являющийся развитием языка
Паскаль и содержащий средства для создания больших
программ.
На многих моделях ЭВМ продолжает использоваться
язык программирования Фортран. Этот язык был разрабо-
тан в 1954 г. на фирме IBM Джоном Бэкусом. Основным
назначением этого языка является программирование
численных расчетов на ЭВМ. Основной недостаток языка
Фортран тот же, что и языка Бейсик,— отсутствие явных
ограничений на составление запутанных программ.
На больших ЭВМ типа ЕС ЭВМ продолжает также
широко использоваться язык программирования ПЛ/1.
Язык ПЛ/1 также был создан на фирме IBM, но уже
в качестве универсального языка программирования. Этот
язык, как и языки программирования Паскаль, Си и Ада,
может использоваться для создания как программ для
численных расчетов, так и программных систем накопления
и обработки данных. Однако в силу своей сложности язык
ПЛ/1 не получил распространения на мини- и микроЭВМ.
В 60—70-х годах были созданы новые универсальные
языки программирования для суперЭВМ: Алгол-68 и Ада —
за рубежом и автокод Эльбрус — в Советском Союзе
Язык Алгол-68 был создан в Западной Европе Междуна-
родной федерацией по обработке информации, в которой
работали ведущие специалисты Европы, Америки и Совет-
ского Союза. Этот язык реализован в качестве машинного
языка в суперЭВМ фирмы «Bl'RRO1’GHS», а также послу-
жил прототипом для автокода Эльбрус отечественного
комплекса суперЭВМ «Эльбрус». Язык Ада был создан
во Франции по заказу американского министерства обороны
как универсальный язык программирования.
Несмотря на то что ЭВМ нового, пятого поколения
еще нет, принципы языков программирования для этил
машин уже разработаны, так как определены прототипы
для этих языков Это языки ЛИСП и Пролог.
Язык ЛИСП был создан в 1965 г. американским про-
фессором Джоном Маккарти для исследований по проб 1еме
«искусственного интеллекта». Особенностью этого языка
является то. что основаниями этого языка служит мате-
матическая теория алюритмов и рекурсивных функции
Основным в я тыке ЛИСП служит понятие рекурсивно
определяемых функции По этой причине я*ык ЛИСП дей-
ствительно является универсальным я тыком, поскольту
246
любой алгоритм может быть описан с помощью некоторого
набора рекурсивных функций Это обстоятельство потно
ляет моделировать на ЭВМ достаточно сложные алгоритмы
обработки данных, в том числе алгоритмы моделирования
интеллектуальной деятельности людей.
Язык программирования Пролог был создан во Франции
в 1972 г. также для проведения исследований по проблемам
«искусственного интеллекта». Понятия и принципы этого
языка основаны на понятиях математической логики и
аппарате автоматического доказательства теорем, создан-
ного в ходе исследований ио «искусственному интеллекту».
Поэтому язык Пролог позволяет в формальном виде описы-
вать различные утверждения, правила рассуждений и
заставлять ЭВМ рассуждать и давать огне гы на заданные
вопросы.
Однако создание новых программ и их качество зависят
не только от используемых средств, но и оз квалификации
людей и организации их работы Как и в киноискусстве,
где кинофильмы могут снимать и начинающие кинолюби-
тели, и коллективы профессионалов. гак и при создании
прозрамм тля ЭВМ следует различать начинающих програм-
мистов, программистов- люби гелей и коллективы профессио
нальных ра зработчиков программ
(ля начинающих программистов целью является напи
с айне простейших программ и проведение различного рода
экспериментов на ЭВМ Для программистов-любителей
целью является получение с помощью ЭВМ результатов
решения некоторых задач, интересующих их с точки зрения
основной профессиональной деятельности.
Целью же профессиональных программистов является
создание программной продукции — программ, которые они
передают другим людям (заказчикам) для выполнения
заказчиками определенных работ на ЭВМ. Среди профес-
сиональных программистов выделяются системные програм
мисты, которые специализируются в создании инструмен-
тальных программных средств (программ, с помощью кото-
рых другие программисты создают новые программы)^
Для профессиональной разработки программ необхо-
дима определенная организация работ l-.сли начинающих
прозраммисгов интересует главным образом выполнение
составленной прозраммы на ЭВМ, зо для ззрограммпстов-
любителей важно, янляюзея ли получаемые на ЭВМ резуль-
таты правильными, а при решении сложных задач на-
сколько эз|и|зекгивззы зз универз алызы создашзыз ими про
зраммы
Для ззр<и[зессиоз1ллы|ых проз раммистозз зребоназниз к ка
чесгву программ аналогичны требованиям к любой продук-
ции массового на значения Эго прежде всего надежность
и экономическая э<|и|1ективность.
Пролог
ТРЕБОВАНИЯ К КА-
ЧЕСТВУ ПРОГРАММ:
и«д«жиосгь
эффективность
247
унифицированность
гибкость
эстетические и пси-
хологические требо-
вания
ТЕХНОЛОГИЯ РАЗРА-
БОТКИ ПРОГРАММ
Надежность программ заключается в отсутствии сбоев
и отказов в работе ЭВМ при их выполнении. Кроме того
надежность предполагает получение максимально возмож
ны.х результатов при сбоях в оборудовании и ш ошибках
в действиях людей. Экономическая эффективность программ
определяется суммарным эффектом от применения программ
в деятельности людей.
Следующие два важных требования к качеству про-
грамм это их унифицированность и гибкость Гибкость
программ — это простота внесения в них изменений при
изменениях в составе оборудования или изменениях в тре
бования.х к функциям программ. Требование уннфициро
ванности связано с универсальностью функций созданных
программ.
Весьма важными в связи с распространением персональ
ны.х ЭВМ, предназначенных тля постоянной работы людей
с машинами, становятся эстетические и психологические
требования. Кроме того, широкое' вне трение ЭВМ, изменяя
содержание труда нолей, влечет необходимость учета со-
циально-экономических факторов при создании программно
го обеспечения.
Но, по-видимому, наиболее важными для профессиональ-
ных программистов являются общечеловеческие аспекты их
деятельности, осознание колоссальной ответственности еа
творение своих рук. Это особенно важно при создании
автоматизированных средств для атомных и космических
проектов. Также велика ответственность программистов за
буду щее нашей планеты, над которой нависла утро .а косми
ческой ядерной войны.
Создание программного обеспечения, удовлетворяющего
перечисленным требованиям, невозможно без определенной
научно обоснованной организации разработок и привлечс
ния прикладных и системных программистов, художников-
дизайнеров и психологов, математиков и специалистов
в конкретных предметных областях. Только совместными
усилиями создаются по-настоящему профессиональные
программы.
Технология разработки программ заданного качества
состоит из следующих этапов:
1. Составление технических заданий (ТЗ) на разработку
программных средств.
2. Составление сценариев и других описаний функции
создаваемых программ.
3. Создание эскизных образцов, проведение их испыта-
ний и уточнение функций разрабатываемых программ.
4. Разработка комплекса алгоритмов и создание опыт
ных образцов программных средств.
248
5. Опытная эксплуатация созданных программ и их
мотершьация с учетом экономических, психологических и
других факторов.
6. Передача программ заказчикам или в Государствен-
ные фонды для их массового распространения и исполь-
зования.
При создании эскизных образцов могут использоваться
любые языки программирования, поскольку эскизные образ-
цы служат для демонстрации возможности решения на
ЭВМ поставленных задач. Для получения результатов
в заданные сроки при создании эскизных образцов должны
строго соблюдаться требования структурного программи-
рования
Лучшим способом создания программных средств с га-
рантией соблюдения сроков разработок является примене-
ние структурного проектирования программ. При структур-
ном проектировании перед написанием программ составля-
е1ся комплекс структурированных алгоритмов с использо-
ванием алгоритмического языка изучаемого в курсе инфор-
матики.
Учесть требования надежности, унифицированность и
эстетичности на самых ранних этапах разработок можно
тишь при составлении сценариев и других описаний функ-
ций программ и обсуждении их со специалистами и заинте-
ресованными лицами. Составление этих описаний позволяет
намного сократить число проектных ошибок, полностью
избавиться от алгоритмических ошибок и доказывать (при
необходимости) их отсутствие
Перечисленные вопросы составляют содержание техно-
логий разработки программ, которые принято называть
технологиями программирования. За рубежом повсеместно
распространились технологии структурного проектирования
программ на базе языков Паскаль, Си, Ада. Моиула-2
и т. п Аналогичные технологии получают распространение
и в Советском Союзе.
Большой интерес представляют исследования по техно-
логии доказательного программирования. Доказательное
программирование — это составление алгоритмов и про-
грамм с о тновременным доказательством их правильности.
Основные принципы доказательного программирования
были сформулированы советским ученым А П. Ершовым
в 1464 г Главной целью стой технологии является полное
устранение алюритмических ошибок из программ путем
доказатетьства их правильности по отношению к поста-
новкам решаемых задач и описанию функций, которые
должны реализовать разрабатываемые программы. Созда-
ние соответствующих языков прозраммирования. компиля-
торов, интернрета юрон и гругих инструментальных средств
СТРУКТУРНОЕ ПРОЕК-
ТИРОВАНИЕ ПРО-
ГРАММ
ДОКАЗАТЕЛЬНОЕ
ПРОГРАММИРОВА-
НИЕ
249
упражнения 19!
задания 1
позволит получать программы самого высокого качества и
1С.ХППЧССКОГО уровня.
3. Каковы основные требования к программным
средствам ЭВМ?
4. Что такое надежность программ?
5. Каковы основные этапы разработки про-
грамм?
Каковы основные недостатки языка Бейсик? 6. Что такое доказательное программирование?
2. В чем заключаются принципы структурного
программирования?
§ 56. История развития ЭВМ
Предыстория
Счетная машина Пас-
каля
Арифметическая ма-
шина Лейбница
Программируемая
машина Беббиджа
В развитии вычислительной техники можно выделить
предысторию и четыре поколения электронных вычисли-
тельных машин. Впереди создание ЭВМ пятого поколения.
Развитие ЭВМ, по видимому, ярче всего отражает дина-
мику научно-технического прогресса второй половины \\ в.
Предыстория развития вычислительной техники начина-
ется с глубокой древности. Одним из первых средств счета
были китайские счеты (суан-пан), римские счеты (абак)
и русские счеты, которые до сих пор пытаются конкуриро-
вать с современной вычислительной техникой.
Прошло много лет, прежде чем появилась первая
счетная машина, которую в 1642 г изобрел французский
математик Блез Паскаль. .Эта машина была построена па
основе зубчатых колес и могла суммировать десятичные
числа Впечатление о «способностях» этой машины выска-
зал сам Паскаль, который сказал, чго «арифметическая
машина производит действие, приближающееся к мысли
больше, чем все, что делают животные».
Первую арифметическую машину, выполняющую вес
четыре арифметических действия, создал в 1(573 г. немецкий
математик Лейбниц. Эта арифметическая машина послу-
жила прототипом арифмометров, которые начали произво-
диться серийно с 1820 г. и использовались вплоть до
60-х годов \\ в.
Одновременно с широким распространением арифмомет-
ров появилась идея создания универсальной программи-
руемой счетной машины, выдвинутая в 1823 г. английским
математиком Чарльзом Беббнджсм. Задуманный им проект
машины содержал все основные устройства вычислительных
машин память арифметическое устройство и устройство
управления, устройство ввода и устройство печати Проект
этой машины реализовывался 70 лет, но его воплощение
сак к н<’ было завершено. Однако вычислительные про-
250
граммы для этой машины были созданы! Их составила
дочь Джона Байрона герцогиня Ада Лавлейс, которая по
нраву считается первой женщиной-программистом В ее
честь назван язык программирования Xia.
Из-за сложности и механического ивноса деталей проект
Беббиджа. опережавший технические возможности своего
времени, так и остался нереализованным. Ц только через
100 лет, в 40-х юда.х XX в., удалось создать программи-
руемую счетную машину на основе электромеханических
реле. Реле — это элемент, имеющий два рабочих состояния:
«включено» и «выключено». Важно отмстить, что при проек
тировании этих электромеханических счетных машин исполь-
зовался аппарат математической логики
Именно в 40-е годы начался бурный прогресс научных
и технических новшеств в промышленности и вычислитель-
ной технике. Не успели начать серийно вытекать электро-
механические счетные машины, как появились первые ЭВМ,
в которых логические элементы были реализованы на основе
радиоламп.
Первая электронная вычислительная машина «ЭН11\К»
была создана в США после второй мировой войны, в 1946 г
В группу создателей этой первой ЭВМ входил один из
самых выдающихся ученых XX в. Цжон фон Нейман,
который и предложил основные принципы построения и
функционирования универсальных программируемых вы-
числительных машин. Именно в соответствии с его идеями
современные ЭВМ состоят из процессора, арифметического
устройства, устройств ввода вывода и памяти для хранения
данных и программ.
Одновременно над проектами электронных вычислитель-
ных машин работали в Англин, где первая универсальная
ЭВМ появилась в 1949 г., и в СССР, где первая электронно-
вычислительная машина, получившая название МЭСМ
(махая электронно-счетная машина), была разработана
в 1950 г., а первая советская большая ЭВМ БЭСМ появп
лась в 1952 г
ЭВМ первого поколения изготовлялись на основе ва-
куумных электронных дамп. Эти ЭВ.М размещались в не
скольких больших металлических шкафах, занимавших
Целые залы и требовавших сложнейшей системы охлаж-
дения Работа на ЭВМ производилась за пультом, где
можно было видеть состояние каждой ячейки памяти и
любого регистра. Программы .для ЭВМ первого поколения
составлялись в машинных кодах — в виде длинных после
довательностей двоичных чисел. Занимались этим исклю
чите. 1ыю математики выполнявшие на ЭВМ сложнейшие
расчеты.
Следующее, второе поколение ЭВМ появилось через
10 лег ' в 60-х годах. В этих ЭВМ логические элементы
Пераан ЭВМ
251
По каким признакам
различают поколения
ЭВМ!
ПЕРТ ОНЛГКНЫЕ ЭВМ
реа шзовывались уже не на радиолампах, а на бал- полу-
проводниковых приборов гр "иисторов Эго позволило Зна-
чительно увеличить надежность машин, сократить их раз-
меры и потребление электроэнергии. Тем самым открылся
путь для серийного производства ЭВМ.
В составе ЭВМ второго поколения появились печатаю-
щие устройства для вывода, телетайпы для ввода и маг-
нитные накопители для хранения информации. Диалог
человека с ЭВМ стал более естественным благодаря появ-
лению языков программирования высокого уровня, таких
как Фортран, Алгол. Бейсик и др. Начали создаваться
первые автоматизированные системы на базе ЭВМ.
Для появления третьего поколения ЭВМ вновь понадо-
билось всего лишь около 10 лет. Их основу составляли
интегральные микросхемы, содержавшие на одной полупро-
водниковой пластинке сотни или тысячи транзисторов.
Благодаря этому уменьшились размеры ЭВМ, потребление
ими электроэнергии и стоимость компьютеров.
В состав ЭВМ третьего поколения были включены удоб-
ные устройства ввода-вывода и накопления информации
(дисплеи) на основе электронно-лучевых трубок, накопи-
тели на магнитных лентах и дисках, графопостроители и т. п.
Количество компьютеров к этому времени достигло уже
десятков и сотен тысяч. К работе с этими ЭВМ стал под-
ключаться широкий круг специалистов: инженеры, техники.
Вычислительные машины появились в университетах и
институтах. Начали создаваться операционные системы,
базы данных, языки структурного программирования, пер-
вые системы «искусственного интеллекта», стели внедряться
системы автоматизированного проектирования и управле-
ния и т. п.
Для появления ЭВМ четвертого поколения вновь потре-
бовалось 10 лет. Они были созданы и выпущены в массовое
производство на рубеже 80-х годов. Элементной базой этих
*9ВМ стали большие интегратьные схемы (БИС), в которых
на одном кристалле кремния размещаются уже десятки и
сотни тысяч логических элементов. Такие интегральные
схемы позволяют создавать на одном-единственном кристал-
ле программируемые блоки управления различными устрой-
ствами. Малые габариты и слабые токи, необходимые для
их работы, позволяют устанавливать эти процессоры в
любое техническое изделие в телевизоры, стиральные ма-
шины, автомобили и т. I Тем самым открывается возмож-
ность создания принципиально новых, нро1раммио управ-
ляемых технических устройств.
Наиболее яркими представите 1ями ЭВМ четвертого
поколения служат персональные ЭВМ, рабариты которых
позволяют устанавливать их на любом рабочем месте
В состав этих ЭВМ включаются у юбные средства накоп-
252
тения. ввода и предосышления информации: накопите ш
i гибких магнитных тисках, цветные графические дисплеи,
графические п гшшегы, компактные печатающие устрой-
ства.
Массовое распространение персональных ЭВМ изменило
ебования к прсираммам. Г тайными из этих требований
стали: простота правил работы, эстетичность, надежность
программ, универ алыюсть их функций, простота обучения
работе на ЭВМ. Десятки миллионов персональных ЭВМ,
устанавливаемых в службах сервиса и управления, на
производстве и в образовании, требуют овладения ком-
пьютерной грамотностью от всего взрослого населения
а также подготовки специалистов по созданию, развитию
и применению ЭВМ.
Следующее, пятое поколение ЭВМ должно прийти на перспективные эвм
смену ЭВМ четвертого поколения еще до конца этого сто-
летия. Элементной базой этих ЭВМ будут служить сверх-
большие интегральные схемы(СБИС), которые будут отли-
чаться колосса 1ЫЮЙ плотностью размещения логических
элементов на кристалле. Работа этих схем будет основана
на принципах логического вывода подобных принципам
работы программ на языке Пролог. Г 1авным же будет
существенное хве шчение электронной памяти в этих схемах
которая послужит базой тля их «интеллекта» Предпола
(ается, что широко распространится ввод информации
в ЭВМ с голоса, общение с машиной на естественном
языке, машинное трение, машинное ося тание. создание
«интеллектуальных» роботов и робототехнических устройств.
Одной из главных проблем развития ЭВМ (как четвер-
тою так и перспективного пятого поколения) является
проблема разработки программного обеспечения. Массовое
использование ЭВМ по-новому ставит вопрос о разработке
и эксплуатации программных средств. При сложившемся
ныне кустарном производстве программ и предстоящем
на< ышении компьютерами общественного производства и
жизни общества едва ли не все население Земли должно
<тать программистами, для того, чтобы обеспечить себя
необ ход и м ы ми программами.
Выходом из этого положения явится создание мощной
индустрии информатики, которая возьмет на себя не только
создание средств разработки программ, йо и разработку
пакетов прикладных программ. Эти разработки должны
обеспечивать высокое качество и вестись примерно так же
как и выпуск промышленной продукции
? 1. На основе каких элементов создавались ЭВМ
первого, второго и третьего поколений?
2 Некие устройства ввода-вывода применялись
в ЭВМ первого, второго и третьего поколений?
3 Когда ожидается появление ЭВМ пятого по-
коления*
вопросы
упражнения
задания
253
ГЛАВА ЭВМ В РАЗВИТИИ ОБЩЕСТВА
Завершая изучение курса информатики, рассмотрим
как применяются и будут применяться электронно-вычисли-
гельные машины в различных сферах человеческой дея-
тельности. При и «учении материала главы 8 большую по-
мощь вам окажут фотоснимки на цветной вклейке. Помни-
те, что в учебнике перечислены лишь основные направления
использования ЭВМ При подготовке к урокам вам необ-
ходимо использовать также сведения из книг и журналов,
посвященных этим проблемам.
§ 57. ЭВМ на производстве
В промышленном производстве компьютеры призваны
по возможности освободить человека от тяжелой и моно-
тонной работы, которая в настоящее время все еще выпол-
няется вручную. Кроме того, часто возникает необходимость
быстро перейти на выпуск продукции нового ассортимента
Во многих отраслях промышленности (например, в электро-
нике) перестройка работы конвейера на выпуск нового
из зелия требует, самое меньшее, нескольких месяцев. Кроме
того, научно-технический прогресс в этих отраслях движется
настолько быстро, что к моменту выпуска изделие может
устареть и оказаться никому не нужным. Выход из этой
ситуации только один — создание гибких автоматизирован-
ных прои «водств, в которых переналадка производства на
выпуск новой продукции осуществляется не заменой обору-
дования, а изменением программ, управляющих работой
станков и промышленных роботов. Несмотря на то что
гибкие автоматизированные производства стоят гораздо
дороже обычных технологических линий, они экономически
выгодны, так как, помимо экономии времени на перена 1адку,
дают также ощутимый выигрыш из-за сравнительно низкой
себестоимости изделий
Автоматизированные производства строятся на основе
станков с числовым пршраммным управлением (ЧПУ).
Станки с ЧПУ это универсальные станки, на которых
управление обработкой деталей может осуществляться
микропроцессором по специальной программе.
В качестве иллюстрации рассмотрим принцип работы
станка с ЧПУ для токарной обработки деталей.
Обработка деталей на токарном станке проводится
ре «ном, закрепленным на суппорте, Суппорт вместе с резцом
может перемешаться в двух направлениях’ по осн v вперед
254
и назад, по оси у влево и вправо. При прижатии резца
к вращающейся заготовке с нее срезается стружка, и тем
самым деталь обтачивается. Перемещение суппорта осуще-
ствляется посредством электропривода, управление которым
можно производить вручную с пульта управления либо
программно с помощью микропроцессора.
СУППОРТ
РПЗПЦ
Обработка деталей может производиться вручную и
автоматически. При ручной работе микропроцессор запо-
минает последовательность действий рабочего (станок с
ЧПУ обучается). Затем программа обработки детали может
многократно выполняться уже без участия рабочего Про
грамма может также вводиться в станок т перфоленты
или с управляющей микроЭВМ
МикроЭВМ может обслуживать одновременно несколько
станков с ЧПУ и вести библиотеку программ обработки
деталей. Рассылка программ ЧПУ по станкам производится
так же как рассылка учебных и игровых программ с ЭВМ
учителя ученикам в школьном кабинете вычислительной
техники.
Установка деталей на станках на автоматизированных
участках проводится с помощью роботов манипуляторов.
Обычно это «механическая рука», управляемая мнкропро
цессором или микроЭВМ. Примером такого манипулятора
может служить болгарский учебный робот РОБКО 01
Такой робот манипулятор способен взять с помощью
механического захвата определенную деталь и перенести
ее в нужное место Таким обратом, робот манипулятор
может вставить в станок заготовку, а по окончании обра-
ботки положить полученную деталь в заданное место.
Транспортировка деталей и инструментов может также
производиться с помощью специальных роботов, управ
ляемых тележек, транспортеров и т. п.
Кроме процесса обработки деталей, использование робо-
РОБОТ — МАНИПУ-
ЛЯТОР
255
тов-манипуляторов ЭВМ нозволш авгомагизировать также
операции сборки на конвейерах. Роль человека на сб< '
ровных конвейерах все больше будет сводиться к контролю
наладке, управлению и планированию технологических
процессов.
«"'ЧИА/Н.НЫЕ ПОС
ЛЕ ДС ТВ ИЯ итомати
производстве
Следующий, более высокий уровень автоматизации
производства - это автоматизация проектирования изделий
и технологической подготовки производства. Например,
программы для станков с ЧПУ могут составляться не
человеком у станка, а электронно-вычислительной машиной
непосредственно по чертежам, если эти чертежи хранятся
в памяти ЭВМ. С использованием ЭВМ для подготовки
самих чертежей (автоматизированным проектированием)
вы познакомитесь в § 59'
Еще один круг задач автоматизации — планирование и
оперативное управление ходом производственного процесса.
При наличии в ЭВМ информации об имеющемся сырье,
материалах и инструментах, а также сведений о состоянии
оборудования машина способна наиболее оптимальным
образом распределять имеющиеся ресурсы для обеспечения
ритмичной работы производства.
Таким образом, автоматизация производства, разви-
вающаяся ныне бурными темпами, нс только поднимает
производство на качественно новый более высокий уровень,
но и изменяет роль человека, участвующего в производст-
венном процессе, т е имеет ярко выраженные социальные
последствия С одной стороны очевидны положительные
256
результаты этого явления: уменьшается обьем тяжелой,
механической работы, масса людей нысвобожтаегся ui
процесса произволегва Однако наивно полагль, что авто
матизацня производства несет с собой лишь преимущества
в социальной сфере К примеру, использование станков
с ЧПУ, как правило, уже не требует высокой ква шфикации
рабочих. Один рабочий с невысоких! разрядом способен
обслуживать несколько станков с ЧПУ. причем его роль
сводится в OCHOBHOX! лишь к поверхностному наблюдению
за ходом процесса, смене заготовок (если они не замени
ются автоматически) и сборке станка. Понятно, что такой
труд весьма монотонен, хотя и не тру тоемок. С другой
стороны, внедрение станков с ЧПУ требует наличия непо
средственно на производстве специалистов гораз ю более
высокой квалификации, чем прежде. таких. как рабочие-
наладчики (по сути, это работники с инженерным образо-
ванием). инженеры программисты и i д.
Высвобождение из процесса производства нысококна ш
фицироваиных работников (например, рабочих ci.ihohiih
ков) 11 необходимость смены ими области специализации,
a io и профессии обычно воснрпнимак>1ся людьми тоста
точно боле nieiiiio. Несмотря на то что у нас в стране
высвободившимся работникам не гронп безработица,
этот пример покатывает, как важен учет социальных фак
торов при введении технических новшеств.
Разумеется, это не значит, что нужно отк.иыватьсн от
введения авгомагизацин на пронзво гстве Научно технн
ческнй прогресс неостановим, необходимо лишь заранее
продумать, как изменяется структура занятости и условия
тру та людей, и в соответствии с этим осуществлять иод
готовку и переподготовку кадров по специальностям, ко
торые становятся необходимыми производству.
.?1. Что такое станок с ЧПУ?
2. Что такое робот-манипулятор?
3. Каковы основные применения ЭВМ на про-
изводстве?
4. Какие положительные и отрицательные по-
следствия несет с собой автоматизация про-
изводства?
. - - вл- ’Л
упражнения
12.' Z* задания
§58. ЭВМ в сельском хозяйстве
За несколько ближайших пятилетий сельское хозяйство
нашей страны должно превратиться в высокорентабельную
отрасль народного хозяйсиза, способную обеспечить насе-
ление страны высококачественными продуктами питания.
При этом особенно остро vtohi проблема улучшения уело-
Какис меры по реорга-
низации сельского хо-
зяйства намачены в
партийных и государ-
ственных документах!
257
Автоматизированно*
управление
Компьютер
на ферме
Планирование
и расчет
посевных площадей
Микропроцессор нв
комбайне
вий труда и быта людей, работающих в этой отрасли
Решение этих сложных задач требует не только применения
новых организационных форм (предоставление подлинной
самостоятельности колхозам на основе хозрасчета рас
пространение семейного подряда и т. д.), но и тесно свя-
занной с этими мерами технической реконструкции всего
сельского хозяйства. К»кую же роль здесь может сыграть
компьютеризация?
В распоряжении колхозов и совхозов имеются тракторы
комбайны, автомобили и другая техника Нахождение опги-
иальных вариантов использования иашимтно-тракторного
парка приведет к значительной экономии топлива, запасных
частей, позволит свести к минимуму простои техники. Авто-
матизированное Вк дение документации, составление и пе-
чать необходимых документой бет участия человека позво-
лят сократить количество людей, занятых управленческим
трудо- Своевременное прогнозирование потребности в
запасных частях для техники, а также другой промышлен-
ной продукции позволит в полной мере реализовать достоин-
ства агропромышленных объединений.
Большею помощь может оказатт. компьютер па живот-
новодческой ферме. Для каждого животного требуется
составить индивидуальный рацион кормления вести собст-
венную «историю боле ши» и т. и. Осуществить такой инди-
видуальный подход без использования компьютерных баз
данных нереально, поскольку должно быть принято во
внимание множество факторов, таких, как наличие кормов,
возможность (и стоимость) закупки кормов в других хозяй-
ствах и т. д. Применение же вычислительной техники
позволит решить эту задачу оптимальным образом, благо-
даря чему объем производства сельскохозяйственной про-
дукции значительно увеличится.
Еще одна проблема, требующая применения ЭВМ,—
расчет посевных площадей. Данная задача решается на
основе агрохимических моделей полей. Исходной информа-
цией для расчета служат планы производства сельскохо-
зяйственных культур. Для решения этих задач необходимы
специальные пакеты прикладных зрограмм
В перспективе такие прикладные программы будут
давать также прогнозы урожая в зависимости от погодных
условий. И уже на основе этих данных будет проводиться
планирование посадки и ухода за культурами с учетом
имеющейся техники и трудовых ресурсов, а также с учетом
различных вариантов погодных условий.
Еще одно направление применения вычислительной
техники создание машин и механизмов, управляемых
микропроцессорами, с шагносгикой неисправностей Кроме
того необходимо использование роботов на животновод
ческих фермах, при уборке и сортировке урожая, а также
при обработке земли.
258
II наконец, персональные ЭВМ позволят более четко
планировать и справлять сельскохозяйственным производ-
ством. Объединение ЭВМ в сети позволит более четко
организовать оперативней связь с соседними хозяйствами
и промышленными предприятиями.
5 чет наличных средств, техники, собранного урожаи,
животноводческой продукции становится основой для
введения полного хозяйственного расчета а также расчета
заработной платы по труду.
^11. Кановы возможные применения ЭВМ в сель-
ском хозяйстве?
2. Кан компьютеры могут использоваться в жи-
вотноводстве?
вопросы
упражнения
задания
§ 59. ЭВМ в проектировании
Проектирование новых машин и механизмов, приборов
и устройств. зданий и сооружений гребхет проведения
большого объема расчетных и графических работ, ведения
проектной документации, создания макетных образцов и
проведения испытаний.
Большую часть этих работ могут взять на себя ЭВМ
На их основе создаются системы автоматизированного
проектирования (САПР).
В состав систем автоматизированного проектирования
входят ЭВМ с графическими средствами ввода-вывода и
накопителями информации на магнитных тисках. При по
мощи систем автоматизированного проектирования инже-
неры-конструкторы макетируют и моделируют изделия
Графические работы с САПР проводятся при помощи
графических редакторов. С помощью этих средств удобно
вычерчивать чертежи и вносить в них изменения.
259
Для построения чертежей обьемных фигур используются
трехмерные графические редакторы. Такие ре дакторы позво-
ляют изображать на экране ЭВМ обьемные изображения
фигур (в тометрии)
Рисование фигур проводится с помощью клавиш-
SSeHQQ
влево или вправо
вдоль оси Оу,
вперед или назад
вдоль оси Ох
вверх или вниз
вдоль оси Ог.
Во время рисования изображение может поворачиваться
на заданный угол вокруг любой оси. При этом в изобра-
жение могут быть внесены изменения и дополнения. При
необходимости могут быть изображены проекции построен-
ных трехмерных фигур:
Применение ЭВМ для выполнения чертежных работ
ускорит создание чертежей, а также их тиражирование.
В системе автоматизированного проектирования гра-
фические редакторы могут совмещаться с электронными
таблицами и базами данных, содержащими раз шчные
технические справочники. По окончании конструкторских
работ ЭВМ может составить программы для станков с
ЧПУ, а также д >я микроЭВМ. управляющей автоматизи-
рованной линией Благодаря этому спроектированное изде-
ше может выпускаться почти без участия человека.
Сле тсюшей проб.к мой. решаемой с помощью систем
260
автоматизации проектирования, является проведение р.п
личных экснернмешон с математическими моделями на
->ВМ. Такое мо (елированш позволяет существенно эконо-
мить время и средства по сравнению с проведением натур-
ных испытаний.
Примером такой системы может служить учебный конст-
руктор электронных схем В этой автоматизированной сисзе
ме графический редактор позволяет рисовать некоторые
электрические, электронные или логические схемы из дан-
ною каталога элементов и соединений
После расстановки и соединения элементов схемы им
присваиваются имена и указываются их значения. Далее
может быть проведен эксперимент с созданной схемой. Для
этого нужно указать пробные входные 'сигналы и точки
. ьема информации. После этого ЭВМ по заданным входным
сигналам и математической модели схемы воспроизве зет
вид сигналов в заданных точках.
1. Что такое САПР?
2. Каковы возможности трехмерных графиче-
ских редакторе в г
3 Как проводится моделирование в системах
автоматизированного проектирования?
4. В чем заключаются преимущества проектиро-
вания с использованием ЭВМ*
вопросы
упражнения
задания
§ 60. ЭВМ о управлении
( ростом промышленного и сельскохозяйственного про-
изводства резко возросло число людей, занятых органи-
зацией управления производством При этом большая часть
этих людей занимается почти исключительно технической
работой по обобщению поступающих сводок сведению
воедино информации, ши гупаюшей из разных источников.
В нестоящее время ход общее!венного развития настоя-
гг ’ьно требует резкого сокращения численности работ ни
ков занятых управленческим трудом Для избавления от
зиизней централи займи управления необходимо передать
261
Компьютер & секре-
тарь-машинистка
Компьютер и плани-
рование
ЭВМ А бухгалтер
Компьютер — помощ-
ник руководителя
большинство управленческих функций непосре пененным
исполнителям на местах, а тля проведения необходимой
технической работы широко использовать компьютеры
Использование персональных ЭВМ позволяет наиболее
эффективно организовать труд секретаря. Подготовку
ретактирование и размножение различных документов
удобнее производить на компьютере, чем на обычной пишу-
щей машинке. Современные ЭВМ также могут «брать на
контроль» различные постановления, помогать в ведении
служебной переписки и в случае необходимости периоди-
чески напоминать о сроках принятия решений, о времени
совещаний и т. п. Появление в будущем устройств для
ввода в ЭВМ сообщений в виде устной речи позволит
устранить наиболее трудоемкую операцию — ввод инфор-
мации с клавиатуры.
Плановикам ЭВМ уже сегодня позволяет проводить
расчеты планов производства, подсчеты итогов выполнения
работ, рассчитывать себестоимость продукции. Технологам
ЭВМ поможет анализировать трудоемкость изготовления
деталей, узлов, изделий, составлять технологические марш
руты их движения по цехам, анализировать и оптимизи-
ровать загрузку оборудования.
На многих предприятиях расчет заработной платы
сотрудникам осуществляется с помощью ЭВМ. Кроме того,
ЭВМ помогает сотрудникам бухгалтерии осуществлять
и другие бюджетные операции. Работники отдела кадров
могут использовать базы данных для автоматизированного
ведения личных дел, запроса необходимой информации.
Что же касается руководителей предприятий и орга-
низаций, то многие из них уже сейчас не просят для полу-
чения необходимых данных принести соответствующую
папку Несколько нажатий на клавиши стоящего на столе
компьютера — и все нужные сведения о выпускаемой про-
дукции, поставках сырья, дневной выработке каждого цеха,
справки о телефонах других организаций, расписании
отправления поездов и самолетов и т. п. появляются на
экране.
Таким образом, внедрение ЭВМ в управленческую дея-
тельность позволяет экономить столь необходимое для
принятия решений время, а также выполнять достаточно
большой объем работ по переработке информации неболь-
ших! числом работающих.
вопросы
упражнения Р1
задания
1- Каким образом компьютер может облегчить
труд секретаря-машинистки?
2. Чем компьютер может помочь руководителю
крупного предприятия?
262
§ 61. ЭВМ f науке
Наиболее важным направлением применения ЭВМ в
современных нах иных исследованиях является компьютер-
ный эксперимент. Такой эксперимент проводится в тех
случаях. когда непосредственное наблюдение или обычный
эксперимент невозможны или очень дороги. Для ирове гения
кохшьютерного эксперимента составляется математическая
мотель соотношений Именно от выбора мотели зависит,
насколько достоверные результаты бу тут полечены в ходе
компьютерного эксперимента Затем математическая модель
воплощается в алгоритмах и программах тля ЭВМ. Зада-
вая различные тначения исходных данных и анализируя
результаты, предоставляемые компьютером, делают выводы
о том, какие результаты были бы получены в ходе физи-
ческого. химического, биологического, социального или
трхгого эксперимента.
Несколько лет назад группы советских и американских
ученых провели моделирование на ЭВМ процессов, которые
произошли бы над поверхностью Земли в случае я черного
конфликта Несмотря на то что были выбраны две различ-
ные модели исследуемых процессов, обе группы исследова
гелей получили результаты, свидетельствующие, что не
сколько дней после нанесения ядерных ударов станут
последними для человеческой цивилизации Гем самым
со всей полнотой и строгостью научного знания была дока-
зана недопустимость решения каких бы то ни было конфлик-
тов при помощи ядерного оружия.
Других) важным примером компьютерного эксперимента
может служить моделирование процессов, происходящих
в обществе Законы общественного развития также могут
быть смоделированы. хотя, разумеется, никакая модель не
способна отразить социальные закономерности во всей их
полноте.
Многие научные исследования, особенно в части естест-
венных нах к, требуют большого объема вычислительной
работы. Применение ЭВМ для выполнения вычислений
уже давно стало традиционным.
Для обработки экспериментальных явлений ЭВМ широко
используются в науке о Земле. Привлечение математи-
ческих моделей позволяет ученых! формировать более
точные прогнозы погоды в различных регионах Земли.
Обработка экспериментальных исследований с помощью
ЭВМ широко используется в химии и биологии Здесь
развернулись исследования по математическому моделиро
ванию химических реакций и процессов, синтезу новых
веществ, моделированию биологических процессов в орга-
низмах и популяциях.
Применение ЭВ/М в медицине только начинается Уже
КОМПЬЮТЕРНЫЙ
ЭКСПЕРИМЕНТ
Компьютер — вычис-
литель
263
Поиск научной инфор-
мации
сейчас компьютеры используются при проведении лисп ш
серизации населения, для создания автомата sup >ванных
регистратур, в операционной
В области общественных наук ЭВМ позволяют не только
создавать информационные архивы с оперативным V'ct\
ном, но и организовывать обработку ренегатов социоло-
гических опросов, проводить oi мысленный анализ и подбор
информации,
В области лингвистики ЭВМ позволят автоматизировать
изучение текстов, организовать технический тртвот с
одного языка на другой, проводить анализ стили рукошки
и помогать редактировать тексты, исходя из стн тистнче-
ских соображений.
Известно, что в науке довольно часто прихоцпея «тоб-
ретать велосипед», т е повторять нес ле юванни, которые
хже были проведены кем-то другим. Происходит эгоотго.о,
что число журналов, публику тощих научные статьи по той
или иной тематике, настолько велико, что ученый, занятый
собственными исс теюваниями, просто не в состоянии сле-
дить за всеми публикациями своих коллег Ситуатцтя также
осложняется тем, что интересующая ученого статья может
появиться на иностранном языке, которым данный научный
работник не владеет Создание на основе ЭВМ банков
данных, информационно-поисковых систем и информацион-
ных сетей позволит значительно ускорить процесс поиска
научной информации.
вопросы |Л1| I
упражнения IV! Ц
задания IГ ' ч
*У)1. В каких научных исследованиях возможно
использование ЭВМ?
2. Что такое компьютерный эксперимент?
3. Могут ли быть сделаны новые научные
открытия с помощью ЭВМ?
§ 62. ЭЯМ в образовании
ГМПЬ1 УЧЕБНЫХ ПРО-
ГРАММ:
Использование компьютеров в школах и профтехучили-
щах в настоящее время только начинается. В недалеком
будущем ЭВМ будут применяться не только на занятиях
по информатике, но и на уроках физики и химии истории и
биологии, черчения и рисования.
Занимаясь основами информатики, вы использовали
компьютер, как правило, в качестве исполнителя состав-
ленных вами программ. Однако при изучении других преДу
метов (и информатики в том числе) ЭВМ выступает в мной
роли, причем эта роль зависит от используемой программы.
Каждую программу, используемую в обучении, можно
отнести к одному из трех типов:
а) моделирующие учебные программы;
б) программы-тренажеры;
264
в) программы-* экзаменаторы».
Моделирующие учебные программы позволяют прово-
дить настоящие компьютерные эксперименты. Работая с
моделирующей программой, вы выполняете лабораторную
работу. Выполняя лабораторные работы по физике и химии,
вы привыкли к тому, что существуют погрешности обору-
тования. искажающие и гучаемое явление (например, изме-
ряя силу, которая действует на тело, при помощи динамо-
метра. вы не можете получить точное значение этой вели-
чины из-за постоянно меняющейся силы трения скольжения,
погрешностей динамометра и т. д.). При проведении же
компьютерного эксперимента все необходимое оборудова-
ние изображено на экране дисплея, а всякого рода помехи
и погрешности в математической модели явления отсутст-
вуют.
Знакомясь с «миром внутри экрана», т. е. ставя раз-
личные эксперименты, вы изучаете законы этого мира.
Iля ориентировки сама программа предлагает вам ряд
вопросов и задач, которые вы должны решить в ходе этих
ж. пери ментов Примером моделирующей программы может
( 'ужить программа «Физика-8» для ЭВМ «Ямаха».
Программы-тренажеры используются для выработки
необходимых навыков Одна из таких программ вам уже
известна эго клавиатурный тренажер «А гбука» Трена-
жеры широко применяются в профтехобразовании для
гвершенствования профессионального мастерства. Напри-
мер. программы-тренажеры могут помочь при подготовке
авиадиспетчеров и машинистов железной дороги.
Наконец, программы-экзаменаторы проверят ваши зна-
ния по той или иной теме. Конечно, подобная программа
нс в состоянии понять содержательный смысл некоторой
фгазы Однако проверить знание определенных слов, пра-
витьность выполнения несложных упражнений компьютер-
ный экзаменатор может Один из экзаменаторов на ЭВМ
'Ямаха» программа «Проверка».
Некоторые программы сочетают в себе черты программ
оазных типов Например, существуют протрам.мы-трена-
еры, которые к тому же «задают вопросы» по теорети-
ческому материалу В средних школах, профтехучилищах
и техникумах все эти программы служат для приобретения
общеобразовательных знаний и умений, а такл е профессио-
нальных навыков.
В высших учебных заведениях студенты будут изучать
научные основы информатики и программирования, мате-
матические методы моделирования и математические мето-
ты авали га правильности алгоритмов и программ. ЭВМ
будет иг вольтова п,г я для лабораторных работ по раглич
ным обгш ехничег ким и спениа гыгым шепни динам, а также
при иг чг-нии общее г венных наук
*гс делирэющие
тренажеры
экзаменаторы»
265
вопросы
упражнения P’U
задания l^^Zi
Главным достоинством применения вычисли тельных
машин в образовании служит возможность активной твор-
ческой деятельности, требующей от лютей более глубокого
изучения наук.
1. При изучении каких предметов вы исполь-
зовали ЭВМ?
2. Кан компьютеры могут использоваться на
уроках:
а) физики; г) математики;
б) химии; д) истории;
в) биологии;
е) литературы?
§ 63. ЭВМ в обслуживании и дома
ЭВМ — помощник кас-
сира
ЭВМ сообщает.
Компьютер дома
ЭВМ призваны также облегчить работу человека в быту.
Уже сейчас ЭВМ используются для продажи авиационных
и железнодорожных билетов, в сберегательных кассах для
проведения расчетов, а в телефонной связи для оплаты
междугородных телефонных переговоров.
В магазинах и ателье появляются кассовые аппараты
на базе микропроцессоров. ЭВМ смогут также отвечать
на вопросы покупателей и организовывать прием заказов.
В сфере услуг будущего персональные ЭВМ будут
использоваться для приема индивидуальных заказов на
пошив одежды и обуви. Кроме того, ЭВМ будут приме-
няться для регистрации квартплаты, расчетов за газ, воду
и электроэнергию.
В недалеком будущем .мы сможем заблаговременно
заказывать билеты на автобусы, поезда и самолеты по
телефону с помощью ЭВМ, которые будут связаны в единую
сеть.
Персональные ЭВМ, так же как радиоприемник, теле-
фон и телевизор, станут новым источником информации.
Газеты и журналы будут передаваться к нам домой по
телефонной сети, и самые свежие новости можно будет
в любой момент прочитать на экране дисплея
Компьютер дома может, ра<умеется, использоваться и
для развлечения, например для игр. Однако использовать
ЭВМ в качестве игрового автомата по меньшей мере нера-
зумно. Бытовой вычислительной технике можно найти более
полезное применение.
Компьютер будет служить телефонным справочником,
отвечать на телефонные звонки, напоминать о неотлож-
ных делах и даже о телевизионных передачах.
Пройдет не так уж много времени, и компьютер станет
вашим личным секретарем, консультантом и даже игровым
партнером Он будет полезен всем членам семьи от мала
до велика
2X6
•p t. Как могут использоваться ЭВМ в обслу-
живании?
2. Что может делать компьютер дома?
3. Может ли компьютер помогать школьни-
кам делать уроки?
вопросы
упражнения
задания
§ 64. ЭВМ и информационные коммуникации
Наша жшчь насыщена разнообразнейшей информацией
о событиях, проис хотящих в нашей стране, в каждом городе
и районе, а также во всем мире Для передачи сведений
используются радио, телевидение, газеты, журналы и книги.
Возможность своевременною получения интересующей
человека информации не случайно считается одним из
условий темократизации общественной жизни Ведь глас-
ность— это не только возможность открыто высказать
свое мнение, но и право знать мнения других. В этой связи
возрастает роль всех средств массовых коммуникаций.
Вычис штельныс машины е- к средство подготовки, сбора
и распространения информации найдут самое широкое
применение Уже сейчас на телевидении монтаж изобра-
жений и телепередач производится с помощью компьютеров.
Сбор информации, подготавливаемой журналистами, также
бх'дет проводиться с помощью ЭВМ.
С помощью ЭВМ журналисты и писатели будут под-
готавливать тексты статей и книг. Композиторы смогут
проигрывать и аранжировать свои произведения с помощью
музыкальных компьютеров. Для художников ЭВМ откроет
новые изобразите 1ьные возможности.
Вычислительные машины в корне изменят редакционно-
издательское тело, полностью устранив трудоемкие работы
по типографскому набору и многоразовую перепечатку
текстов. Редактирование рукописей может проводиться на
экране ЭВМ По телефонной сети тексты будут передаваться
в автоматические наборные машины.
В корне изменится и органтация библиотечного дела.
Книги, архивные документы и фото!рафии будут храниться
на магнитных или оптических носителях, и эта информация
будет пересылаться по информационным сетям всем, кому
она необходима Предоставление нолям оперативной
информации научною, производственною и другого харак-
тера превращаете я на наших елазах в индустрию, которая
по тупила название индустрии информатики
Индустрия информатики включает в себя, в частности,
производство, посеавку и обслуживание вычис тительиой
техники, а также раеработку программ и предоставление
информационных услуг различным отрастим народного
хозяйства Создание этой индустрии диктуется необходи-
'юстью ускорения научно-технического прогресса и перехо
ИНДУС’.'ИЯ ИНФОР-
МАТИКИ
Как саазаиа демокра-
тизация жизни обще-
ства с применением
ЭЙМ птоечислеиныз
облает»!
267
дом нашего общества
вития.
на качественно новую ступень раз-
вопросы I — |
упражнения lOILl
задания I й
1. Что включает в себя индустрия информатики?
2. Как, на ваш взгляд, компьютеры могут ис-
пользоваться:
а) в телевидении; б) на радио;
в) в книгоиздательстве; г) в прессе;
д) на почте?
краткий справочник
1. Ключевые слова языка Бейсик
AND
Л SC
CIRCLE
CLS
COLOR
DATA
DEFINT
DEFSTR
DELETE
DIM
ELSE
END
EXP
FILES
FOR
GOSL В
GOTO ..
IF..
IN KEY
INPl T
I NT
LEFT
LEN
LINE
LIST
LOAD
LOCATE
MID
NEW
NEXT
NOT
OPEN
OR
— и
— стандартный код символов
— окружность
— очистка экрана
— цвет экрана
—описание данных
— описание целочисленных переменных
— описание строковых переменных
— уда пение строк из программы
— размеры массивов
— иначе
— конец выполнения программы
— обозначение экспоненты
— каталог файлов
— для...
— вызов подпрограммы
переход к...
если...
— ввод символа с клавиатуры
— ввод данных
— целая часть числа
левая часть строки
— длина строки
— линия
— вывод текста программы
— загрузка программы
указание позиции курсора
— средняя часть строки
-уничтожение программы
конец цикла
- не
открытие фай ia
или
268
краткий справочник
PAINT закраска
PRINT вывод сообщений
PS FT вывод точки
Rl XD чтение данных
RESTORE указание начала данных
RFTl RN выход из подпрограммы
RIGHT правая часть строки
RND датчик случайных чисел
Rl N запуск программы
S Wi- за и и с ь програ м м ы
ld . ДО-
VXI выделение числа ил строки
2 Функции в Бейсике Примеры
xb.s’ абсолютное значение числа \BS( -Л)—з
I NT целая часть числа IN Г (2.5) *2
1 I\ отбрасывание грибной части FIX( —L5) —— 1
S0R квадратный корень числа SQR(h25) -2.5
SIN синус (в радианах) SIN (0.0)—О.QQ
('OS косинус (в радианах) ('OS (0 0) ►0.99
Г \N тангенс (в радианах) TAN (0 0) -0 00
ATN арктангенс (в радианах) AIN(IO) ►0 57
LOG и а ту р а л ьн ы и л о га рифм LOG (1.0) rf).OO
IXP — экспонента FXi’II 0) -2 87
RND датчик случайных чисел |():1| RND(l) ►0.13
I I'N длина строки символов 1 EN("Mnp")—3
MID£l выделение подстроки MIDQ ("колесо". 3. 3) - -"лес"
LEFT# левая часть строки 1 El TQ ("колесо" 3) —"кол"
RIGHT# правая часть строки RIG И Г# ( 'коле- со", 2)—"со"
INSTR место подстроки в строке INSTR ("колесо", "о") -2
\ XL вы теленке числа из строки X AL ("I0A") —10
XSC машинный код символа AS('(".A") —193
CHR# указание символа по коду (Т IRQ (193)—"А"
B1NQ — двоичный код числа VAL(15) —1111
INKEV # символ нажатой клавиши IN К1 Y#—"А
POS позиция курсора на экране POS (1) —8
( RSI IN — строка, где находится курсор CRSLIN—12
3 Команды Бейсика
Rl N запуск программы RUN
1.Ы вывод текста программы на зкран LIST 100 180
LI. 1ST — печать текста программы LLIS1
RI Nl XI - перенумерация строк программы RENUVl
DEI ETl удаление с i роки из программы DELETE 60 -80
NEW удаление программы из памяти NEW
269
краткий справочник
FILES
LOAD
SAVE
S АМЕ
KILL
C SAVE
CLOAD
— вывод каталога файлов
— загрузка программы с дискеты
-запись программы на дискету
— переименование программы на
дискете
— удаление программы с дискеты
— запись программы на магнитофон
— считывание программы с магнито-
фона
FILES
I ОЛЬ"авбуна"
S WE' npor 1"
\ ’ 4E"PRG I"
XS"npor 2"
KILL"nporI"
CS \\ E"npor 1 ”
CLOAD'Tipor 1"
4. Операторы Бейсика
- начало комментария
DIM — размерность массива
DEFINT — определение целочисленных переменных и массивов
DEFSTR —определение строковых переменных и массивов
END — конец выполнения программы
GOSUB — вызов подпрограммы
RETURN —конец выполнения подпрограммы
GOTO — оператор перехода
IF... GOTO — условный переход
IF... THEN — условный оператор
IF... THEN ...ELSE... — альтернативный оператор
’программа 1
DIM А(3. 3)
DEFINT К—X
DEFSTR S, Р, Q
FOR... ТО — цикл co счетчиком
NEXT —конец цикла co счетчиком
AND — логическая операция "И"
OR — логическая операция "ИЛИ"
NOT — логическая операция "НЕ"
PRINT — вывод сообщений на экран
INPUT — ввод данных с клавиатуры'
DATA — описание внутренних данных
READ — считывание внутренних данных
RESTORE — начало считывания внутренних
данных
CLS — очистка экрана
PSET —вывод точки на экран
PRESET — стирание точки на экране
PAINT — закраска области экрана
LINE — вывод на экран:
отрезка
рамки
END
GOST’В 200
RETURN
GOTO 50
IF K = N GOTO 160
IF A<0 TIirN
IF X>0 TH1 N
Y = X ELSE
\ = — К
for k=i to n
.NEXT К
(0<A) AND
(A< 1)
(N=0) OR
(N = 1)
NOT (X>0>
PRLNT"A="; A
INPUT"A="; A
DATA январь, 31
READ MSO. D>
RESTORE 1000
CLS
PSET (50, 50) 1
PRESET (50, 50)
PAINT (30, 30), 2
LINE (0, 0) -
(50, 50), 3
LINE (0. 0) -
(30, 30), 4, В
270
краткий справочник
( IRC1L вывод на окошка экран: 1 1X1. (0, 0) (20. .30), 3. BI-
5. Кодировка цветов и размеры окружное гн дуги эллипса экранов в школьных C1R( 1.1. (50. 50) 20. 4 CIRCLE (50, 50) 30. 3, 0, 3.14 CIRCLE ,90 90) 20. 2,„ 1.5 ЭВМ
Цвет экрана задается оператором COLOR С, [-, где
С цвет символов, a F — цвет фона.
4. КУВТ "Ямаха" (MSX=1):
Размеры экрана 256x192 точки. Текст — 24 строки
по 32 или по 40 символов.
Код Цвет
0 1 Прозрачный Черный
2 Зеленый
3 Светло-зеленый
4 Темно-синий
5 Светло-синий
6 Темно-красный
7 Голубой
Код Цвет
8 Красный
9 Светло-красный
10 Ярко-желтый
И Светло-желтый
12 Ярко-зеленый
13 Фиолетовый
14 Серый
15 Белый
Б. КУВТ "Корвет":
Размеры экрана —512X256 точек. Текст—16 строк
по 64 символа.
Код Цвет
0 1 Черный Синий
9 Зеленый
3 Г олубой
Код Цвет
4 Красный
5 Фиолетовый
6 Коричневый
7 Белый
В КУВТ-87 (БК-001 ОШ):
Размеры экрана —512 или 256 точек по горизонтали и
240 по вертикали. Текст - 24 строки по 64 или .32 символа.
Код Цвет
0 1 2 Прснрачный Красный .Зеленый
Код Цвет
3 Синий
4 Черный
ТЕРМИНОЛОГИЧЕСКИЙ СЛОВАРЬ
Алгоритм
Алгоритмический
язык
Алфавит
Архитектура ЭВМ
База данных
Байт
Бит
Бейсик
(BASIC)
Внешний накопитель
Дисплей
Доказательное
программирование
Доказательство
Доказательство
правильности
алгоритмов
Задача
Игры
компьютерные
Интерпретатор
Информатика
Информационно-
поисковая
(библиотечная)
система
Информационная
культура
Информация
Исполнитель
детальный план действий, направленных на получение определение
результатов. к ных
язык для записи алгоритмов решения задач и описания логики работы ЭВМ
- множество символов, из которых можно составлять слова и фразы на
данном языке. 1
— внутренняя организация ЭВМ.
программа организации и ведения информационных архивов на ЭВМ
— единица измерения информации, используемая для оценки объема па-
мяти ЭВМ: 1 байтов бит; 1 Кбайт = 1024 байт; 1 Мбайт = 1024 Кбайт
1 байта достаточно для кодирования одного машинного символа.
- минимальная единица информации, принимающая значения 0 или 1;
информацию в 1 бит несет ответ "да" или "нет" на вопрос.
язык программирования, широко используемый на персональных ЭВМ.
устройство для долговременного хранения информации и программ:
магнитные ленты, гибкие и жесткие магнитные диски и т. п.
- устройство для отображения графической и текстовой информации на
ЭВМ. В бытовой ЭВМ в качестве дисплея может использоваться теле-
визор.
- составление алгоритмов и программ с одновременным доказательством
их правильности.
- последовательность рассуждений, обосновывающих некоторое утверждение.
процесс, аналогичный доказательству теорем в алгебре н геометрии. Для
доказательства правильности алгоритма необходимо иметь строгую матема-
тическую постановку задачи, описание метода решения, а также сце-
нарий.
проблема, которую необходимо решить Под задачей в информатике
обычно понимают целый класс однотипных задач (например, задача реше-
ния квадратного уравнения при различных значениях коэффициентов а,
b и с).
увлекательное занятие, чрезмерное увлечение которым может привести
к серьезным нарушениям психики.
транслятор, который "переводит" каждый оператор языка программиро-
вания в машинные команды и немедленно исполняет их.
наука о законах и методах накопления, обработки н предоставления
информации в обшенин людей между собой, в общении человека с ЭВМ
и в жизни общества в целом
- программа» помогающая находить документы (литературу), в которых
содержится интересующая нас информация.
- умение выражать свои мысли в устной н письменной форме, в виде ри-
сунков и чертежей; собирать, перерабатывать и предоставлять людям
информацию, умение ставить задачи, проводить математические выкладки
и рассуждения, а также составлять планы решения поставленных задач,
обосновывать их правильность и убеждать в этом людей
отражение предметного мнра в форме знаков и сигналов; чертежей, фото-
графий, текстов и т п.
устройство или человек, которые могут выполнять определенные действия.
Исполнитель решает поставленную »адачу. выполняя соответствующий
алгоритм
272
Компилятор
Компьютер
Компьютерная
грамотность
Курсор
Массив
Метод решения
Микропроцессор
Модель
математическая
Надежность
Оперативная память
Операционная
система
Паскаль
Переменная
Постановка задачи
Правильность
Присваивание
Программа
Пролог
Процессор
Рассуждение
Редактор
графический
Редактор текстов
Способ решения
задачи
Суждение
Сценарий
программы
Технология
Файл
Цикл
Электронные
таблицы
транслятор, который "переводиг" в машинные коды всю nnorpaMMV
целиком. » н • л
то же. что ЭВМ (электронно-вычислительная машина).
умение мигать и писать, считать и рисовать, музицировать, а также
искать информацию с помощью ЭВМ.
метка, указывающая нужную позицию на экране дисплея.
— область памяти ЭВМ. используемая для хранения последовательности
чисел или других данных.
- обобщенный способ решения задач данного класса.
- полупроводниковое программируемое устройство, выполненное на едином
кристалле Поскольку программа жестко встроена в память, микропро-
цессоры обычно используются для управления различными объектами.
- система математических соотношений, отражающих свойства объекта.
- свойство алгоритмов и программ. Алгоритм надежный, если он не дает сбоев
и отказов, а также сообщает о сбоях в оборудовании или ошибках в действи-
ях людей.
- служит для хранения программ и данных в ЭВМ.
- набор программ, обеспечивающих управление работой ЭВМ и распреде-
ление ее ресурсов.
- язык структурного программирования. Язык Паскаль похож на алгоритми-
ческий язык, изучаемый в школе.
- область машинной памяти, в которой могут храниться определенные
значения. В ходе выполнения программы значения переменных могут
изменяться.
- точное определение результатов и исходных данных в предлагаемой для
решения задаче
- свойство алгоритма. Алгоритм правильный, если при всех допустимых
исходных данных он формирует результаты, указанные в постановке
задачи.
- операция, заключающаяся в вычислении значения выражения, находя-
щегося справа от знака присваивания, и записи этого значения в пере-
менную, имя которой указано слева от этого знака.
алгоритм, записанный на языке, "понятном" данной ЭВМ.
язык логического программирования Язык Пролог считается прототипом
языков программирования для ЭВМ пятого поколения.
основное устройство ЭВМ, осуществляющее выполнение программ и испол-
нение операций над данными.
- цепочка суждений, направленных на обоснование какого-либо утверждения.
программа, позволяющая рисовать на экране дисплея ЭВМ.
программа, позволяющая вводить, исправлять (редактировать) и распе-
чатывать тексты.
набор формул для получения результатов, указанных в постановке задачи.
- обобщение фактов, получаемых в качестве ответов на вопросы.
- описание диалога человека с ЭВМ
- способ организации работы (с использованием технических средств) для
получения определенной продукции.
- совокупность данных, записанных в ЭВМ на внешнем носителе: магнит-
ных дисках, лентах и т. п.
- многократно повторяемая последовательность действий в алгоритме (про-
грамме).
программа, позволяющая проводить на ЭВМ математические расчеты
н быстро производить перерасчет для различных вариантов исходных
данных.
СЗЯЗЬ Л^ГОРИМ/ИИЦЕСКОГО язь/кл с.
ОЛЕ/УЩИИ:
у ••=а-х + ь
зхллос ("а.-', а)
ьызод (а, ь, "=0")
лгошсл (х,у), с
ЛИЛИЯ (%, У^-^Уг), С
ЛЛ/ИКЛ (X-f, yi)-(Xz, У2.), сз
ошушос/ль (X, У), г, с
зххгхсхх (X, У}, с
Y = А X X + В
INPUT "А=";А
PRINT А; "ХХ+";В;”=0"
PSET (X,Y),C
LINE (XI , Y1) — (Х2, Y2) , С
LINE (XI,Yl)-(X2,Y2),С,В
CIRCLE (X,Y),R,C
PAINT (X,Y),C
УКЛУ/ШЕ/ШЬ/Е ХЕХСМЗХЯ:
33Q4 4Х//НЫХ
M/&OX ГЕХ<РИК4
GOSUB 400:’ввод данных
БОЗОВ 600:’вывод графика
ЗС/КМСУХИЕХМЫХххлтм;
ХХГ
хрг а^ - е>£Щ
ЯЕЗ X, у: ЗЕЩ
/УХУ
<O/73fXfEXX>
ШУ
400
410
420
430
’<название>
’арг а,Ь: вещ
’рез Х,у: вещ
<операторы>
520 RETURN
ЯЗЫКОМ ЛКЯГЯЯ/И/ММКОЫМИЯ 5КИСМК
EC/W <УС/ЮЫЕ > ИЯ
<Я/7Е&ЩМ1 У
<0/7&М//Ш£>
ХЕС/Ш
50 IF NOT <условие>
THEN GOTO I00
60 < операторы 1 >
90 GOTO 150
100 ’иначе
110 < операторы 2 >
150 ’несли
Ц/МЯ ЛЯ СУЕЛШЛУ-
Л ЦЛЛЯ
<ОЛЕГЯДЛЯ>
ЛЦЛЛЯ
220 FOR К = 1 ТО N ESTEP MJ
230 < операторы 1 >
310 NEXT К
ЦЛЛЛ- ЛЯЫ '
ЛЛЛЯ<УЛ//Я6ЛЕ> ЦЛМ
<&ЛЛЛЯЦЯЛ>
420 IF NOT <условие?
THEN GOTO 520
430 < операторы >
510 GOTO 420
520 ’кцикл