Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Самоучитель игры на Паскале. АВС и немного Турбо

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
Ещё дальше, с желанием оттоптаться по телу безобидных сиплюсплюссников - C++ язык очень сильный, позволяющий программисту буквально всё. Паскаль не позволяет. Шаг влево, шаг вправо - ошибка компиляции. Си программиста не ограничивает ни в чём, Паскаль берёт за хобот и тащит унылой, но безопасной дорогой. Сильного программиста Паскаль местами сковывает (хотя для сильного программиста как всегда - есл хитрый фокус). Но в реальной жизни сильных программистов мало. Больше средних. Ещё больше слабых. И вот для них существует Паскаль. Он, худо-бедно, ГАРАНТИРУЕТ получение приемлемого результата. А когда программирование используется не как средство самоудовлетворения, а как возможность дл получения разноцветных бумажек, именуемых также деньгами, наличие результата становится главным. Пробегающим мимо и не плевать в колодец. Ну и главное - Паскаль лично мне очень нравится. Извините, если кого обидел. Конец лирического отступления.
Вопрос, кстати резонный - зачем, собственно, начинать с просто Паскаля (я опять по-русски), есл Паскаля, почему именно с Pascal ABC, а не с Turbo Pascal? Надо признать, что программировать на Турбо Паскале, кроме как в процессе обучения, почти наверняка не придётся - если только не достанется сопровождать какую-нибудь древнейшую программу. Турбо Паскаля в природе уже давно нет - есть только Del Печально, но такова суровая реальность. Ещё пе придется нигде и никогда – Pascal ABC - это абсолютно учебный язык, со всеми вытекающими отсюда преимуществами и недостатками.
Разумеется, мир Паскаля не ограничен Turbo и ABC. Есть множество разновидностей Паскаля, как ныне живых, так и давно окаменевших. Когда я был молодой, то программировал на Паскале на персональном
чальнее, что программировать на Pascal ABC в реальной жизни не
сишникам просьба не мнить себя могучими кодерами
А почему, собственно, Pascal ABC?
и нельзя, но очень хоч
и есть Delphi. И, уж если начинать с прост
ется, то есть в запасе
phi.
я
о
11
компьютере PDP-1 фирмы DEC под операционной системой CP/M. В те чудесные времена язык программирования являлся частью операционной системы и поставлялся вместе с ней. Это был чистый Паскаль, почти полностью соответствовавший стандарту языка. Все нынешние версии очень далеко удалились от первоначального замысла Вирта. Кто такой Вирт? А это такой специальный мужик, который, собственно, и
умал Паскаль.
прид
Так почему Паскаль? А потому. Логика Delphi программиста, переходящего на него с Паскаля (или любого традиционного языка).
По научному – строго императивного.
Традиционный язык – тот, который, что вижу - то пою. Программа медленно и торжественно разворачивается сверху вниз. Как сильно в Delphi будет не хватать этой ма есть нача Вот так и с традиционным Паскалем, извините за пафос. У дельфовской программы начала нет, и конца нет. Вся она состоит из обрывков и обрезков, реагирующих на различные события в жизни программы (и пользователя). Потом, немного поработав, программист поймёт, что это логика правильная и естестве выглядит как-то странно и ужасно. Кроме того, Delphi оказывает полумедвежью услугу разработчику – отчасти само генерирует текст. Это плюс – при том маленьком условии, что Вы этот сгенерированный текст полностью понимаете и можете в любой мо Ну и конечно, любимый вопрос дельфиста, за который над ним глумятся иноязычные коллеги программисты – Синдром Гарри Поттера - махнуть волшебной палочкой, компонентом в смысле – и счастье. Быстро и дешево. Поневоле оценишь справедливость армейского юмора – мне не надо, чтоб быстро, мне надо, чтоб ты
бался!
задол Так что начинать пр средстве разработки) - это беспощадная травма для начинающего
не совсем проста и привычна, даже для опытного
ленькой радости – того, что у программы
ло и есть конец. Это как воздух – пока он есть, его не замечаешь.
нная, но сначала это
мент написать его сами.
а где взять вот такой компонент?
ограммировать сразу на Delphi (или аналогичном
12
программиста. Не в обиду будь сказано - так навсегда ушибленным и останется. А теперь – почему именно Pascal ABC. Далее цитата от разработчиков
Pascal ABC, многое объясняющая:
«Язык Паскаль признан многими российскими преподавателями как один
из лучших именно для начального обучения. Однако, среда Borland Pascal, ориентированная на MS DOS, устарела, а среда Borland Delphi с ее богатыми возможностями сложна для начинающего программиста. Так,
тка начинать обучение с написания событийной программы в
попы
and Delphi вызывает у обучаемого массу сложностей и приводит к
Borl ряду неправильно сформированных навыков».
Мой комментарий. Borland Pascal здесь, как понятно всякому, синоним Turbo Pascal. А с остальным я полностью согласен, только выразился бы не так интеллигентно. Конец моего комментария.
И ещё о главном. В процессе и по ходу излож высказывать отрицательные мнения о возмож
ения я временами буду
ностях языка Pascal ABC. Это просто потому, что я такое моральное право имею, написав реальных, до сих пор работающих, программ, больше, чем все его, Паскаля АБЦ, создатели, вместе взятые. И не забывайте, что язык этот, как сами его творцы подчёркивают, язык уч Delphi. И это в лу
чшем случае.
ебный. А в реальной жизни вас ждёт
А зачем мелочиться? Два в одном
Итак, книга эта будет обучать программированию на языке Паскаль в версии Pascal ABC. Но, в конце концов, чем Pascal ABC отличается от Turbo Pascal? Я думаю не больше чем десятью процентами. Так что я добавлю эти десять процентов, вы эти десять процентов прочитаете и на выходе будете иметь возможность программировать на двух языках сразу. То есть, формально говоря, на одном языке в
двух его версиях, но при поступлении на работу в резюме вы честно сможете писать про два языка и безо всякого обмана Как это параллельное изучение будет выглядеть на практике?
13
Очень просто. В конце каждой главы будет дополнительный раздел, в котором будет рассказано, чем работа с Turbo Pascal отличается от Pascal ABC. В одном или двух случаях этот раздел будет большим, но чаще маленьким или вообще никаким. Сначала в Дополнении был большой кусок про то, как установить TP, как его настроить, как обеспечить вместе с ним кир
иллицу, про самые популярные кл
авиатурные комбинации, но потом я подумал – а зачем? Если человек хочет программировать на TP, он всё это сможет сделать сам. Единственное, что из всего этого я оставил – модуль для цивилизованной работы с клавиатурой в TP.
Ещё там был модуль для работы с нотами, но он тоже пошёл лесом.
Чему в этой книге научиться нельзя и почему
Трем вещам. Первое замечание чисто формальное. Разработчики Pascal ABC сделали его не вполне совместимым с Turbo Pascal. Это понятно и особых возражений не вызывает – они же двигались вперёд. Но они попутно сделали его в той же степени и не вполне совместимым с Delphi, что, по меньшей мере, странно. В реальной жи
зни, если пр
идется программировать на Паскале, то именно в версии Delphi. Так что, само самой разумеется, все эти опасные отклонения от генеральной линии мы будем игнорировать. То есть делать вид, что их нет и вообще о них не упоминать. К счастью, их немного. Второе, я не буду говорить о компонентах – потому что, а зачем? Компоненты – это в Delphi, это серьезно и навсегда, зачем изучать их в обкусанной игрушечной версии, да и вообще, портить нарождающийся
ь программирования. В это книге мы учимся языку, а не фокусам.
стил И третье, и, может быть, самое важное, в этой книге я не буду говорить об Объектно Ориентированном программировании (сокращённо ООП). Не потому, что это вещь неважная или ненужная – это вещь очень важная и нужная. Но, во перв
ых не для начинающих программистов, что бы они о себе не думали. Для начала освоения ООП надо в совершенстве овладеть элементарными навыками программирования. А во-вторых при всём желании в этой книге на ООП можно выделить одну главу, не больше. А надо гораздо бо
льше. А лучше отдельную книгу.
14
Что бы ещё почитать
Этот раздел обычно размещается в конце книги, но мне показалось, что лучше тут. Учебник обычно сопровождается задачником, или идёт с ним вместе под одним переплетом. На задачник меня не хватило, так что могу только порекомендовать какой-либо из уже существующих. Лучшее, что мне встречалось – Н.Культин ”Tur задач из него мы разберем (надеюс Дальше необязательное.
Ещё пара книжек, которые читать или уже поздно или ещё рано. Уже поздно - Б.Керниган, Ф.Плоджер “Элементы стиля программирования”, “Радио и связь”, 1984. Поздно потому, что языки программирования, в этой книге используемые, сил встреча очень даже во менее, это лучшая книга об этом. О чём? – о том, что в заголовке – о стиле программирования. Читать от начала до конца, потом снова – от начала до конца и снова… Ещё рано - Лу Гринзоу “Философия программирования Windows 95/NT”, Санкт-Петербург, “Символ”, 1997 Lou Grinzo Zen of Windows 95
Programming.
И ещё пара книжек: Э.Дейкстра “Дисциплина программирования” У.Дал, Э.Дейкстра, К.Хоор “Структурное программирование”. Попробуйте почитать, даже если в них будет ничего не понятно. Как-то где-то прочитал, что какой-то профессор говорил своим студентам – “Читайте, понимание придет потом”. Где-то так. И ещё старая книжка поповсовей: Дж. Хьюз, Дж. Мичтом “Структурный под там написано, уже неправда, но всё равно прочитайте. Вторая-то половина остается в силе, а из той половины, что скончалась, узнаете, какими представлениями жил программистский мир тридцать лет назад. Способствует развитию здорового скептицизма, – какой же ерундой вам пудрят мозги сейчас.
ход к программированию”. Поло
bo Pascal в задачах и примерах”. Несколько
ь, автор не будет в обиде).
ьно повымерли. С фортраном, впрочем,
зможна, а вот PL/I однозначно того…Тем не
вина из того, что
15
Как Вы, конечно, заметили, большинство рекомендуемых книг изданы очень-очень давно, ещё во времена диалектического материализма, если это Вам о чем-то говорит. Дело в том, что Советская Власть была заинтересована в умных людях и, применительно к программированию, выпускала литературу, ориентированную на думающих разработчиков. Сейчас нужны тупые кодеры, для их массов печатают. Попадаются, Когда подрастёте и станете маленьким начальником, прочитайте Брукса “Мифический человеко-месяц”. Это наше всё. Похоже, что книги эти в последние годы не переиздавались, кроме разве что Дисциплины программирования. Впрочем, в Интернете все они найдутся.
Поразмышляв немного, я решил д несколькими книгами – старыми и, кое­Сначала две очень старые книги:
Керниган, Плоджер «Инструментальные средства программирования на языке Паскаль» Радио и Связь, 1985 “Software Tools in Pascal”
Я её не открывал минимум двадцать лет, а сейчас открыл и перечёл предисловие от переводчика:
«Предлагаемая книга, по словам ее авторов «учит тому, ка хорошие программы». Читателя действительно учат писать программы программирования, а учебников программирования, принципов и приемов написания программ и в нашей стране, и за рубежом выпускается очень мало. Книга учит «хорошему стилю» программирования – документированию программ, учету интересов пользователей, созданию программ, предназначенных для вз всему тому, что отли программного продукта».
Читал и плакал, читал и плакал (С) Поручик Ржевский. Кинофильм «День Сурка» помните? – «Я, я, снова я…».
. Книг такого рода – не учебников по языкам
конечно, жемчужные зерна, но всё же редко.
аимодействия с другими программами, словом, чает программу, написанную дилетантом, от
ого изготовления книжки и
ополнить список литературы
где, даже новыми.
к писать
16
А вот следующую книгу мне перечитывать приходилось, и не один раз:
Роджерс «Алгоритмические основы машинной графики» Мир, 1989
“Procedural Elements for Computer Graphics”
Возможно, содержание этой книги покажется Вам чудовищно далёким от жизни. У тех графических устройству была ровно одна графическая функция – вывести точку. Но, по сути, с тех пор ничего не изменилось -
х современных граф
во все самые убогие алгоритмы. Так что не плюйте в колодец, юноша.
Теперь книги, можно сказать, новые – за десять лет в мире программирования ничего поменяться не успело, кроме языков программирования, конечно – но какая разница…
А вот опять наши старые знакомые, только Плоджер потерялся по дороге.
иган, Брайан «Практика программирования» Невский Диалект 2001
Керн
“The Pr
Ккак всегда, всё правильно и по делу.
Уэллингс «Как не надо программировать на С++» Питер, 2004 “How Not
to Program in C++”
И неважно, что это про несколько другой язык. Всё рано всё понятно.
Стивенс «Delphi. Готовые алгоритмы» ДМК Пресс 2001 “Ready-to-run
Delphi algorithms”
А это очень серьёзная и занудная книга, но что де тысяча двадцать четвёртый раз изобретать велосипед, или за эту книгу.
actice of Programming”
ических процессорах внутри жужжат вот эти
лать. Или вы будете в
глянете в
17
Хорен Генри С. «Алгоритмические трюки для программистов» ИД Вильямс, 2003 “Hacker’s Delight”
Название весёленькое, что по-русски, что по-английски, но хакерам радоваться не надо, а хорошим людям не надо печалиться. Трюки и хакеры тут маленько другие.
А это жемчужина нашей коллекции. Вроде бы и ни к месту, но надо же когда-то прив
ыкать и к математике.
Е.С.Вентцель «Теория вероя
тностей» Государственное издательство
физико-математической литературы, 1962
Книга изначально написана для военных лётчиков, так что есть вероятность, что и вы что-нибудь поймёте.
18
Глава 1.
Просто программа
Самая простая программа, которая ничего не делает
Запускаем Pascal ABC и пишем в редакторе
program kuku; begin end.
Что интересно, некоторые слова после написания сами окрашиваются в другой цвет, в зависимости от настроек редактора, – скорее всего тоже чёрный, но очень чёрный – то есть полужирный. У нас на бумаге эти слова так и будут полужирными.
Это так называемые з том, что эти слова нельзя использовать в качестве идентификаторов. Идентификатор – то же самое, что имя, но звучит научно. Имена бывают у переменных, процедур, функций, констант, у самой программы, в конце концов. Сейчас мы к этому перейдём.
Вместо kuku можно написать любое слово, главное англ Kuku – это имя нашей программы.
Действ английских букв, цифр и знака подчёркивания, но начинаться должно с буквы или подчеркивания - с цифры начинаться оно не имеет права. Большие буквы, или маленькие – это никакой роли не играет (кстати, немцам о рентгене - это в сторон так же, все остальные маленькие буквы по желанию могут быть заменены на бо На самом деле всё вышесказанное имеет гораздо большее значение - эти правила распространяются на все идентификаторы языка Pascal. Идентификаторами являются все имена в программе. В данном случае имя только одно: kuku – имя прог
ительность немного сложнее – это слово может состоять из
льшие, от этого ничего для компилятора не изменится.
арезервиров
анные слова. Зарезервированность их в
ийскими буквами.
у программистов на языке C). Точно
раммы.
19
Остальное должно быть в точности как написано. Ну, почти – так где стоит один пробел, можно поставить сколько угодно пробелов, это общее правило. Но лучше не увлекаться. Но там, где стоит хотя бы один пробел – хотя бы один пробел и должен быть.
Сокровенный смысл написанной выше программы. То, что находится между строчк
ами progra
m <её имя>; и begin является частью не выполняющейся, а декларативной. Говоря по другому, эта часть ничего не делает, а объясняет, как понимать написанное далее (понимать не программисту - компьютеру). А вот то, что написано между begin и end. как раз что-то делает. Даже если какая-то строка не делает (как будто) ничего, на самом деле это не так
- она указывает как, в каком поряд выполняться остальные строк
и.
ке, при каких условиях должны
Да, впервые упомянуто новое слово - оператор. Что это такое? Ну, как ни странно, если короче – обычно это одно такое слово в языке Паскаль, которое что-то делает. Но есть, например, оператор цикла, который много слов, и оператор присваивания, который вообще не сл
ово. Как ни печально, про оператор все понимают, но никто объяснить не может. И Вы поймёте. Наверное.
Экран сейчас должен выглядеть вот так:
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]