Главная » Basic » НАЧАЛЬНАЯ СТАДИЯ РАЗРАБОТКИ ПРОГРАММЫ

0

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

Прежде всего, для чего требуется программирование? Основной его целью является решение задач и создание работающих систем. И не просто работающих, а работающих правильно, и  притом все время. Самая  худшая ситуация,  которую только можно представить, —  это  когда  кажется, что программа работает, и  она действительно тщательно тестирована, но при всем том, к примеру, в одном из тысячи  исполнений  выдает неверные результаты. Пользователи и авторы такой программы склонны  доверять  ей  и   могут  дорого  поплатиться за  вдруг  возникшую ошибку в  результатах. Поэтому правильность является первым критерием качества программы.

Задачи меняются и развиваются, изменяются данные, а также аппаратная часть ЭВМ. Поэтому даже бесхитростная программа  может  нуждаться  в  изменениях  в  течение своего  жизненного цикла. Изменения не исключение, а норма для программируемой  системы. Поэтому следующее свойство, которого надо добиваться  при разработке программы, — простота модификации.

Бурный прогресс микроэлектроники  привел к тому, что стоимость аппаратной части ЭВМ стала гораздо ниже стоимости разработки программного обеспечения. В 50-х и 60-х годах это соотношение было обратным; поэтому в то время появилось много "хитрых" методов программирования, направленных  на  экономию памяти ЭВМ,  сокращение времени исполнения  программы, минимизацию числа обращений  к диску. К сожалению,  эти ухищрения были потенциальным  источником ошибок; программы было трудно читать   и почти   невозможно модифицировать. Вывод ясен: при разработке программ надо добиваться их эффективности   всеми средствами, но не любой ценой. Достижение правильности программы и простоты ее модификации важнее достижения эффективности. Но как же добиться этих похвальных целей? До сих пор основным производителем программ является человек, мышление которого  индивидуально   и   иррационально.  Поэтому  любая  оценка  методов  работы программистов с  точки  зрения того,  насколько эффективно достигаются указанные выше  цели, сопряжена с большими  трудностями. Однако в настоящее время многие специалисты  в области программирования пропагандируют  метод   разработки  программ,   известный  под   названием структурного проектирования. Проводившиеся сравнения структурного проектирования с другими методами показали, что оно имеет заметные преимущества.

В   настоящее   время   существует   несколько   различных  методов,   относящихся  к   категории структурного проектирования.  Один из них применим к задачам, в которых приходится иметь дело с

большими объемами  структурированных  данных.   По   этому   методу   структура   программы определяется исходя  из структуры данных. Другой метод, которому мы собираемся следовать в этой книге, начинается с описания решения задачи в самом общем виде. Затем в это описание шаг за шагом вносятся детали до тех пор, пока это описание не станет настолько подробным, что по нему будет достаточно легко написать программу. Этот метод часто называют "пошаговой детализацией", и так как процесс его применения начинается с написания общего представления  решения задачи, а завершается написанием конкретной про-

граммы,  то  о  нем  говорят  как  о  проектировании   "сверху  вниз". Все  методы  структурного проектирования построены по принципу ."сверху вниз". В разд. 1.3 была описана структура простой программы в следующем виде:

Ввод Обработка Вывод

отвечающая верхнему уровню  разработки. Простая программа на Бейсике, приведенная в  гл.  1, отвечает нижнему уровню разработки. В данной главе уже шла речь о нескольких новых элементах языка  Бейсик, структурой  которых  можно  воспользоваться при разработке  программ, применив следующую форму записи1:

ДЛЯ цикла действие СЛЕДУЮЩИЙ проход цикла ЕСЛИ условие ТО действие

ЕСЛИ условие ТО действие1 ИНАЧЕ действие2

Здесь "действие" представляет собой один или  несколько операторов, не вызывающих перехода в

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

Если Вы испытываете склонность к математике, то можете использовать подобные структуры для программы печати таблиц того же вида, который встречается в справочниках по тригонометрическим функциям, например для таблицы значений синуса углов 0 … 90 градусов с шагом два градуса.

3.9.    Разработайте и напишите программу для решения следующей задачи моделирования:

Поезд, на котором Вы ездите на работу, может отойти от станции с опережением  расписания до 10 мин или с отставанием от расписания до 5 мин. Если Вы в течение месяца (равного 20 рабочим дням) приходите  на станцию к моменту отправления поезда согласно расписанию,  то сколько раз Вам удастся сесть на этот поезд?

Для моделирования реальной ситуации используйте  генератор случайных чисел.  Исходите  из того, что все времена в целых минутах из  указанного выше интервала равновероятны. Таким образом, всего возможно 15 отстоящих друг от друга на минуту времен отправления поезда, от 10-минутного опережения расписания  до 5-минутного отставания. Вам же удастся сесть на поезд только в тех случаях, когда он отходит вовремя или опаздывает.

3.10.     В одной из разновидностей  игры в метание стрелок требуется набрать ровно 301 очко. Новичок бросает стрелку так, что она попадает в мишень, с равной вероятностью давая от  0 очков (мимо мишени) до 20. Разработайте и напишите программу для моделирования этой игры и подсчета числа метаний стрелки.

Исходите  из того, что удвоения и утроения очков не бывает. Чтобы достигалась сумма ровно в 301 очко, результат очередного метания не учитывается, если сумма должна превзойти 301, и  метание продолжается, пока в результате очередного метания сумма очков не станет в точности равной 301.

Источник: Уолш Б.    Программирование на Бейсике: Пер. с англ. М.: Радио и связь, 1988. 336 с: ил.

По теме:

  • Комментарии