Сапунов Павел : другие произведения.

Жила-Была Программа

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:
Школа кожевенного мастерства: сумки, ремни своими руками
 Ваша оценка:


ЖИЛА-БЫЛА ПРОГРАММА

Сказка аборигенов страны Borland (с комментариями)

  
   Жила-была программа. Вот такая:
  

Begin end.

{на любом законченном этапе

разработки программа должна

успешно компилироватьтся, а эта

программа является минимальной

программой на Паскале, из которой

можно сделать "эксешник"}

  
   Пусть и небольшая, зато настоящая. Мал золотник, да дорог. А дорогому существу и имя дорогое :
  
   Program Dear;
   Begin end.
  
   {Имена программ, процедур и функций либо обязаны отражать их сущность, либо должны быть настолько оригинальными, чтобы запоминаться надолго}
  
   Прошла минута, другая. Программа повзрослела, и стала вот такой:
  
   Program Dear;
   var n : word;
   Begin end.
   {если Вы хорошо продумали алгоритм, то точно знаете, сколько икаких переменных Вам нужно}
  
  
   "Ну уж нет!" - подумала взрослая программа, - "Мне так не нравится". И погрузилась программа в раздумья, ведь она взрослела не по дням, и не по часам, а по минутам. Серьёзные размышления о себе и о жизни заметно преобразили её:
  
   Program Dear;
   procedure Main;
   var n : word;
   begin {main}
   end; {main}
   Begin Main; end.
   Оформление главной программы в виде procedure Main способствует более аккуратному программированию. К тому же, к моменту завершения всей программы "МЭЙНОВ" может оказаться несколько.
  
   Программа была довольна собой. Но не очень, и не надолго.
   "Ведь когда я стану совсем взрослой, мне придется работать" - подумала она. А к работе, как известно, надо готовиться. И она решила подготовиться :
  
   Program Dear;
   uses crt;
   procedure Prepare_Screen;
   begin clrscr; end;
   procedure Main;
   var n : word;
   begin {main} Prepare_Screen;
   end; {main}
   Begin Main; end.
  
   {Маленький clrscr-чик, поставленный в начале разработки программы, к концу очень часто разрастается до размеров procedure Prepare_Screen, в которой кроме него может быть много других полезных операторов. То же самое иногда случается и с другими *-чиками.}
  
   Но опять ей что-то в себе не нравилось. И стала она снова серьёзной, задумчивой. Ничто так не делает нас взрослыми, как размышления о жизни. А думать о жизни можно по-разному: в прошедшем времени, в настоящем, в будущем. Размышления о будущем времени заметно повлияли на программу :
  
   Program Dear; {file "Dear.pas"}
   uses crt, Dear_2 ;
   procedure Main;
   var n : word;
   begin {main} Prepare_Screen;
   end; {main}
   Begin Main; end.
  
   Unit Dear_2; {file "Dear_2.pas"}
   INTERFACE
   uses crt;
   procedure Prepare_Screen;
   IMPLEMENTATION
   procedure Prepare_Screen;
   begin textmode(1);
   textcolor(7); textbackground(1);
   clrscr; end;
   end.
   Если есть вероятность, что программа со временем разрастётся до больших размеров, то лучше сразу создавать структуру модулей.
  
   А время шло... "Кто я?" - как-то задала себе извечный вопрос программа. И это означало, что у неё наступил переходный возраст. А в переходном возрасте каждому хочется отделить в себе вечное от временного, фундаментальное от быстротечного, хотя, конечно, и то и другое прекрасно. Но вечное принадлежит вечности, а временное - времени. И то, что программа услышала зов вечности и голос времени, конечно же, не прошло для неё даром :
  
   Program Dear; {file "Dear.pas"}
   uses crt, Dear_2, DearMain ;
   Begin Prepare_Screen; Main; Quit; end.
  
  
   Unit Dear_2; {file "Dear_2.pas"}
   INTERFACE
   uses crt;
   procedure Prepare_Screen;
   procedure Quit;
   IMPLEMENTATION
   procedure Prepare_Screen;
   begin
   textmode(1);textcolor(15);
   textbackground(1);
   clrscr; end;
  
   procedure Quit;
   begin textmode(1);
   textcolor(7); textbackground(0);
   clrscr; end;
   end.
  
  
   unit DearMain; {file "dearmain.pas"}
   INTERFACE
   uses crt;
   procedure Main;
   IMPLEMENTATION
   procedure Main;
   var n : word;
   begin { алгоритм расчёта } end;
   end.
   { Лучше, если в каждом модуле будут собраны однотипные процедуры и функции. Благодаря этому изменять и модернизировать программы значительно легче. }
  
  
   Вот теперь для программы наступила пора зрелости. "Я уже совсем взрослая" - воскликнула она радостно, но тут же подумала - "А вдруг я не такая как все? Кажется мне чего-то не хватает."
   Конечно же, ей многого не хватало. Просто пришло время действовать, наступил возраст созидания и творчества. Программе нужна была конкретная задача. Потому что она была готова к этому. Для работы, так же как и для общения, всегда нужно созреть.
   И она созрела : скоро программа познакомилась с задачей, задача ей понравилась, и между двух существующих процедур появилась ещё одна :
  
   procedure Calculate( var n:word );
  
   А в дальнейшем за этой процедурой стали появляться другие процедуры и функции: у каждой было своё уникальное красивое имя, сначала все они были маленькие, но с каждой минутой становились всё больше и взрослей, и у них тоже были свои сомнения и свои удачи.
   Но это уже совсем другая история...
  
  
  
  
  
   Павел Сапунов
   Опубликовано в газете "Учебная Москва"
   1995 г.
 Ваша оценка:

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список

Кожевенное мастерство | Сайт "Художники" | Доска об'явлений "Книги"