Юный техник 1984-12, страница 40мы, переписывает с магнитного диска в память и, наконец, выполняет ее... Впрочем, все это происходит намного быстрее, чем об этом можно рассказать! Вот уже печатающее устройство выдает Лене результат. Над распечаткой стоит призадуматься. Первое число — 127 — самое большое в наборе, как ему и полагается. А дальше вместо 97 почему-то напечатан О, потом — снова 0... А вот сообщение о том, что машина столкнулась с непреодолимой трудностью — обращением к несуществующей области памяти. Выполнение программы прервано. Нужно искать ошибку. Выходит, написать программу — это не конец, а только начало серьезной, кропотливой работы по ее отладке, то есть по устранению ошибок и внесению изменений. И вовсе не потому лишь, что «человеку свойственно ошибаться»; очень многие неясности и тонкости выявляются только после пробного выполнения первоначального варианта программы. Отладка сложных программных комплексов, таких, как система управления доменным процессом или система продажи билетов на самолеты, может продолжаться месяц за месяцем. Я хотел помочь Лене найти ошибку в программе: ведь это иной раз очень непростое дело! Но преподаватель, Евгений Александрович Фридман, сделал мне замечание: все необходимые теоретические познания ребята уже приобрели, теперь они должны научиться применять их на практике. — Пусть хоть на минуту почувствуют себя настоящими программистами,— прибавил он.— Пусть поговорят с машиной один на один! Конечно, Евгений Александрович несколько сгустил краски. В любой момент ребята могут рассчитывать на помощь преподавателя. Сотрудник ГИВЦа. сам опытный программист, он ■же не первый год обучает ребят из 401-й школы азам своей профессии. И уж кому, как не ему, прекрасно известно, что без взаимной выручки, без доброго совета и помощи коллег не обходится ни один программист. Но что поделаешь: тяжело в ученье — легко в бою. Пока Лена разбирается со своей распечаткой, место у пульта заняла Ира Боброва. Она работает над более сложной задачей: надо заставить шахматного коня «проскакать» всю доску, проходя через каждую клетку ровно один раз. Нелегко найти решение среди несметного множества путей — ведь из каждой клетки конь может сделать до восьми различных ходов! И если заставить машину просто перепробовать все варианты подряд, мощь ее окажется бессильной: она проработает минуту, пять, десять... И задачу придется снять, чтобы уступить место другим заданиям. Вам может показаться, что эти задачи какие-то «несерьезные», оторванные от действительности. Ничего подобного! Ведь в современных АСУ до 70% машинного времени расходуется на всякого рода сортировки, а на примере «скачек», иначе называемых «Гамильто-новым циклом на графе», отрабатываются методы направленного перебора вариантов. 38 |