Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Самоучитель игры на Паскале. АВС и немного Турбо
.pdf
А теперь выбираем в меню <Файл \ Сохранить>. Или тыкаем мышкой в
соответствующую кнопочку. Соответствующую кнопочку я рисовать не
буду, кнопочка стандартная для всех Windows-программ.
А зачем? А именно для этого - сохранить текст нашей программы
Появится стандартное окно сохранения файла.
Остаётся только указать имя файла, в котором будет сохранена наша
авишу
программа, и нажать кл
Enter.
В каталоге C:\PABCWork появился файл kuku.pas. А почему именно в
этом каталоге – так надо, но это не совсем хорошо. Лучше создать гденибудь подальше в тихом углу жёсткого диска свой собственный
маленький каталог, куда и прикапывать созданные Вами программы.
А вот теперь о важном. Для упрощения жизни настоятельно рекомендую
давать файлу то же имя, что и программе, то есть тот идентификатор, что
т после слов
стои
Теперь клавиша
а program.
F9. Это трансляция и запуск нашей программы – перевод
её из исходного текста в исполняемый машинный код и, что дальше будет
более важным, запуск нашей программы на выполнение. И, что на данном
этапе даже важнее, проверка исходного текста на правильность и
отсутствие в нём ошибок.
Итак, нажимаем клавишу F9, Или, если так вам больше нрави
тся, тыкаем
мышкой в маленький зеленый треугольник наверху.
Происходит быстрое мелькание экрана – и
всё. Что случилось? Да ничего,
собственно. Программа наша маленькая, ничего не делает.
Соответственно при запуске она ничего и не сделала. И очень быстро.
А теперь мы завершили работу, и вышли из Pascal ABC. При выходе нас,
естественно, спросят, не забыли ли мы сохранить нашу программу – если
мы забыли.
А теперь мы запустили Паскал
ь снова. Что мы видим? А собственно,
ничего. А что делать?
Очень просто. Тыка
ем мышкой <Файл \ Последние файлы> и выбираем
то, что нам надо. Под первым номером там будет стоять имя программы, с
которой мы работали последней.
По научному такой подход к организации данных называется стек. LIFO – Last In First Out.
21

Очень простая программа, которая делает хоть что-то
Как уже говорилось, если мы хотим, чтобы программа что-то делала, это
что-то должно быть выражено в тексте, находящемся в исполняемой
части программы – между begin и end.
Например:
program kuku;
begin
Write(‘Au!’);
end.
Вместо Au!, естественно, можно написать всё, что угодно. Но есть одно
ограничение – текст не должен содерж
ать кавычек. Пока, по крайней
мере.
Если очень хочется кавычек.
просто - дайте две! В смысле вместо одной кавычки поставьте
Очень
две. Не двойную кавычку вместо одинарной, а именно две. Видно в тексте
программы будет две, но восприняты они будут не как две, а как одна.
При подсчете симв
олов в строке (об этом дальше) обе они будут
восприняты как один символ. При выводе такой строки на экран видн
будет тоже только одну кавычку.
Далее снова то же самое:
Мышкой - сохранить.
F9 – скомпилировать и выполнить.
Теперь результат очень сильно изменился. Мы получили примерно вот
такое:
о
22

Внизу окна нашей программы появилось маленькой оконце и в нём наше
загадочное «Au».
Вывод из произошедшего – оператор Write выводит текст на экран. Текст
в кавычках, кавычки в скобках. Кавычки и скобки всегда ходят парами –
если есть открывающая (кавычка/скобка), где-то неподалёку должна быть
и закрывающая.
Меняем концепцию
А теперь очень ответственный моме
нт.
То как работает наша программа сейчас, является нескольк
противоестественным, хотя возможно и привлекательным. То есть в
одном окне её, программы, текст, чуть пониже в другом примыкающем
окне результат её работы. Это может показаться очень удобным, но
проблема здесь одна – в жизни так не будет. В жизни мы видим или
текст прог
раммы, или результат ее выполнения, или и то и другое, но
в
разных окнах, и давайте привыкать. Сами авторы Pascal ABC прекрасно
это понимали. Хотя они оставили выбор для работы с текстовым
выводом, для программ с графическим выводом выбора они уже не
23
о

оставили. Как говорил не помню кто – «При всём богатстве выбора
альтернативы нет!».
Возможно, звучит это пока не совсем понятно, но виноват не я.
Короче, меняем текст нашей замечательной программы на вот такой:
program kuku;
uses
Crt;
begin
Write(‘Au!’);
end.
И запускаем. Результат, что называется, драматически меняется:
А что означают загадочные слова
uses
Crt;
узнаем чуть позже.
Улучшаем программу. Много новых слов
Сделаем маленький, можно сказать, крошечный шаг вперёд. Добавим в
программу ещё одну строчку. Вот так:
24

program kuku;
uses
Crt;
begin
Write(‘Au!’);
Readln;
end.
После выполнения программы видим знакомую уже картинку.
Присмотревшись, видим всё же маленькую разницу – в заголовке окна
отсутствует текст «Программа завершена». Программа не завершена.
Программа чего-то ждёт. А ждет она нажатия клавиши
Enter. Нажимаем
клавишу – и заголовок окна приобретает привычный вид.
Вывод – оператор Readln занимается тем, что ничего не делает, ожидая
нажатия клавиши
Enter).
Enter (внимание – не любой клавиши, а именно клавиши
И ещё вывод – каждый оператор заканчивается точкой с запятой.
Ведутся глубокие философские дискуссии, ставится ли точка с запятой после оператора, или она является его
неотъемлемой частью. Вообще-то, что совой об пень, что пнём об сову.
25

А теперь выучим новое слово (а также новое понятие, новую концепцию и
новый подход к программированию). А всего-то сделаем вот так:
program kuku;
uses
Crt;
begin
Write(‘Au!’);
Readln;
ClrScr;
Write(AuAuAu!!!);
end.
Запускаем программу – и долго думаем. Всего четыре строки в программе
– а сколько интересного из них можно вынести. Складывается
впечатление, что первый Write что-то пишет на экран (точнее, в окн
вывода), а следующий за ним Readln ждёт на
Enter. Это мы уже
жатия
о
знаем. А волшебное слово ClrScr очищает экран от всего ранее
выведенного, так что результат работы следующего Write сияет на экране
в гордом одиночестве. Если Вам это не совсем понятно, удалите из
программы Readln. Запустите. Подумайте. Теперь удалите и ClrScr.
Запустите. Вам ведь всё понятно? Ведь правда?
Но чтобы ClrScr заработало, надо написать эти два во
лшебных слова –
uses Crt.
Если написать ClrScr, но забыть про uses Crt, то получим вот такое
несимпатичное сообщение об ошибке:
«Неизвестны
й идентификатор ClrScr».
Означает оно, что Паскаль не знает и даже не догадывается, кто такой
ClrScr и где его искать (а искать надо в модуле Crt).
ClrScr очень похож на оператор, но не оператор - это вызов вн
подпрог
раммы или процедуры (об этом позже), кому как больше
ешней
нравится. Впрочем, для всех практических целей это можно считать
оператором
Для расширения кругозора.
26

Невразумительное словцо ClrScr – сокращение от Clear Screen, очистить
экран.
Внешние процедуры содержатся в модулях (об этом подробнее позже).
Имя модуля – Crt. Переводится с иностранного как ЭЛТ – электроннолучевая трубка. В этом модуле содержатся подпрограммы для работы с
экраном в текстовом режиме.
Используемые модули перечисляются через запятую после слова uses.
Трудолюбивые это слово переведут сами.
А теперь оч
очевидны
это далеко не очевидно.
Вот так работает:
ClrScr;
Write(‘Au!’);
Имеем чистый экран и надпись на нём. Что и требовалось.
Вот так нет:
Write(‘Au!’);
ClrScr;
Чистый экран имеем, но, собственно, и всё.
Операторы выполняются по пор
Сначала первый, потом второй.
Ещё раз приношу извинения, если кому-то кажется это тривиальным. До
многих почему-то не доходит.
А теперь вместо
Write(‘Au!’);
напишем
ень важное! Если кому-то это покажется само собой
м, заранее извиняюсь – как показывает опыт, очень даже многим
ядку. Сверху вниз. В порядке написания.
Как ещё объяснить?
27

Write(‘Au!’);
Write(‘Au!’);
После запуска программы получим:
Au!Au!
А теперь слегка изменим программу
Writeln(‘Au!’);
Write(‘Au!’);
Картинка после запуска изменится на вот такую –
Au!
Au!
После недолгого размышления приходим к выводу, что отличие
оператора Writeln от оператора Write заключается в том, что Writeln ещё и
переходит на новую строку после вывода текста.
А если написать вот так:
Writeln(‘Au!’);
Writeln;
Write(‘Au!’);
то между нашими Au! появится пустая строка.
помним на всякий случай – оператор Writeln без параметров
За
(параметрами здесь называется то, что в
новую строку.
А теперь ещё раз – каждый оператор заканчивается точкой с запятой. Или
– операторы между собой разделяются точкой с запятой. Это уж как Вам
больше нравится. Естественно, начинаю
точки с запятой пропускают. Программисты продвинутые тоже, хотя и не
так регулярно. Компилято
насчёт отсутствия символа «Точка с запятой». Сообщение в целом
р это замечает и выдает тревожное сообщение
скобках) обеспечивает переход на
щие программисты регулярно эти
28

понятное, но вот курсор при этом может указывать не на то место, где
пропущена точка с запятой, а на начало следующего оператора, или
вообще куда подальше.
Почему я внимательно останавливаюсь на этом в сущности
малозначительном моменте, так это потому, что никакой он, в сущности
не малозначительный. Вы даже представить не мо
за свою жизнь я видел это сообщение. И я нисколько не преуве
Будьте внимательны.
Весёленько, в цветочек
А теперь несколько дополнительных возможностей и несколько новых
слов.
Вот такая программа
TextColor(Green);
Writeln(‘Au!’);
Получили текст зелёного цвета. Пустяк, а приятно.
Обратите внимание, что Green пишется без кавычек.
Можно задать и др
Black
Blue
Green
Cyan
Red
Magenta
Brown
LightGray
DarkGray
LightBlue
LightGreen
LightCyan
LightRed
LightMagenta
Yellow
угие цвета. Вот полный список. Ну, по
жете, сколько тысяч раз
личиваю.
чти полный.
29

White
Запомните имена цветов, на всякий случай. Ещё пригодится. Позже, в
процессе освоения графики, научимся красить и в более экзотические
цвета.
Если вам кажется, что цвета выглядят на экране как-то странно – значит,
вы девушка.
Можно сделать вот так:
GoToXY(10,10);
Writeln(‘Au!’);
Надпись переехала.
Первая десятка – номер строки, на которую мы отправились. Вторая
десятка – но
Повторюсь –
знакоместах), а не в пикселах!
Поэкспериментируйте.
Строки нумеруются сверху вниз. Это, конечно, естественно – пока мы не
доберемся до графики. Там нумерующиеся сверху вниз строки пикселов
вызывают некоторое неуд
математическими познаниями.
Текст, заключённый в фигурные скобки, - это комментарии. Компилятор
этот текст игнорирует, как будто его нет вовсе. То есть пишется он не для
компьютера, а для человека – для Вас, когда завтра Вы забудете, что
насочиняли вчера или для того неизвестного программиста, которому
достанется сопровождение Ва
Например:
{ Переходим в центр экрана}
GoToXY(40,12);
Writeln(‘Au!’);
Но можно и вот так, это будет тоже комментарий:
мер столбца, или, говоря по-другому, номер символа в строке.
это номера строк и столбцов в символах (иначе говоря, в
обство у обла
И ещё
шей программы.
дающих начальными
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
