http://sulfurzona.ru/
News
Service
Magazine
Software (Battle City Game, Wallpaper manager, Superpad, VG-NOW, Puzzle Game, Netler Internet Browser, ..)
Wing-Thunder Game (fly simulator)
Dune Game (Dune III, Dune IV, Cheats, Forum, ..)
Games free
Turbo Pascal (Assembler, Docs, Sources, Debbugers, ..)
Books (Docs for developers)
Guest book
Компьютерная диагностика двигателя автомобиля (адаптер К-линии)Компьютерная диагностика двигателя автомобиля (адаптер К-линии)
 
 
Скачать игру Крыло-Гром (Wing-Thunder) бесплатно
 
 

Паскаль для новичков (часть 1)

 
Автор: Владислав Демьянишин
 
Паскаль для новичковЕще пятнадцать лет назад наши школы в качестве языка программирования для обучения использовали Basic. Теперь в моде Pascal. Так отдадим же дань моде...
 
Настоящая серия статей (публикаций) посвящена известной реализации языка Pascal фирмы Borland International для персональных IBM-совместимых компьютеров - языку Turbo Pascal и предусматривает следующие тематические разделы:
 
Введение (краткая история создания языка Pascal)
 
Часть I. Pascal для новичков
 
1. Программный пакет(программы, необходимые для работы на Pascal и где их взять).
2. Ликбез(ячейки памяти - биты, байты, килобайты,..., порты, адреса)
3. Лексика и структура программ на Pascal.
4. Типы языка(система типов данных языка).
5. Операторы(описание операторов языка).
6. Процедуры и функции.
7. Динамически распределяемая память.
8. Выражения.
9. Работа с файлами.
10. Модули(стандартные модули, разработка собственных модулей).
11. Средства объектно-ориентированного программирования.
12. Системно-зависимые расширения(оверлеи, системные вызовы, память, порты, прерывания).
13. Рекомендуемая литература.
 
Часть II. Pascal для продвинутых
 
1. Снятие временных характеристик программ
2. Запуск независимых программ из Pascal-программы
3. Работаем с текстовым режимом
4. Работа с клавиатурой.
5. Покоряем MS Mouse
6. Расширение математических возможностей.
7. Покоряем XMS память.
8. Работа с INI файлами.
9. Ресурсные файлы.
10. Работаем с графическим режимом
11. Создание резидентных программ
 
Я помогу Вам приобрести базовые знания о языке Turbo Pascal и программированию на нем. К моменту, когда Вы приступите к чтению второй части для продвинутых, я поделюсь с Вами своим накопленным опытом в программировании, раскрою свои секреты.
Если эти знания пригодились мне, то пускай они послужат и Вам.
 

Введение

 
Язык программирования Pascal был разработан в 1968-1971 гг. Никлаусом Виртом в Цюрихском Институте информатики (Швейцария). Первоначальная цель разработки языка диктовалась необходимостью инструмента "для обучения программированию как систематической дисциплине". Однако очень скоро обнаружилась чрезвычайная эффективность языка Pascal в самых разнообразных приложениях, от решения небольших задач численного характера до разработки сложных программных систем - компиляторов, баз данных, операционных систем и т.п. К настоящему времени Pascal принадлежит к группе наиболее распространенных и популярных в мире языков программирования. Существуют многочисленные реализации языка практически для всех машинных архитектур; разработаны десятки диалектов и проблемно-ориентированных расширений языка Pascal; обучение программированию и научно-технические публикации в значительной степени базируются на этом языке.
 
Основной целью разработки системы программирования Turbo Pascal является обеспечение мощной и всесторонней поддержки всего технологического цикла создания программ производственного, научного и коммерческого назначения.
 
Язык Turbo Pascal - мощное расширение американского стандарта (ANSI Pascal), учитывающее архитектурные особенности операционной обстановки (MS-DOS) и снабженное внушительными по объему и разнообразию пакетами стандартных процедур. Такие принципиальные нововведения, как модульность и объектно-ориентированные средства разработки программ.
 

Программный пакет

 
Для начала работы на Turbo Pascal надо иметь в распоряжении необходимые программы обеспечивающие составление и отладку программ на языке Turbo Pascal. Я не стану нагружать Вас, просто познакомлю с необходимыми программами. В дальнейшем я расскажу о этих программах подробнее, а пока Вам нужно знать следующее краткое описание пакета этих программ:
 
Turbo.exe - интегрированная среда разработки программ на языке Turbo Pascal, включает в себя редактор исходного кода программы, отладчик, компилятор, систему помощи.
Turbo.hlp - файл помощи к редактору.
Turbo.tpl - файл содержащий основные модули System(System.tpu), Dos(Dos.tpu),Crt(Crt.tpu),Printer(Printer.tpu),Overlay(Overlay.tpu).
Tpc.exe - компилятор командной строки(должен находиться в одном каталоге с Turbo.tpl).
Дополнительный модуль Graph.tpu.
Необязательный Tpumover.exe - компоновщик библиотеки Turbo.tpl.
Библиотеки графического интерфейса *.bgi, библиотека шрифтов *.chr .
 

Как всем этим пользоваться?

 
Текст программы на языке Turbo Pascal должен содержаться в дисковом файле стандартной для MS-DOS структуры. Этот файл может быть сформирован любым доступным текстовым редактором (в частности, встроенным редактором системы Turbo Pascal).
Компилятор командной строки Tpc.exe предназначен для компиляции уже существующего файла *.pas с исходным кодом программы, например так:
 
c:/tpc.exe myprog.pas
 
выполнив эту командную строку получим файл myprog.exe, если конечно исходный код myprog.pas не содержит ошибок, выявляемых при компиляции, если же ошибка все-таки есть, то получим сообщение об ошибке, примерно такое:
 
c:/tpc.exe myprog.pas
Turbo Pascal Version 6.0 Copyright (c) 1983,90 Borland International
MYPROG.PAS(4): Error 3: Unknow identifier.
a:=b;
^
 
Итак, строка
 
MYPROG.PAS(4): Error 3: Unknow identifier.
 
гласит, что в файле MYPROG.PAS в строке 4 найдена ошибка с кодом 3 и названием "Unknow identifier". Строки
 
a:=b;
^
 
показывают строку, где была найдена ошибка и значком "^" отмечено место ошибки в строке.
 
Интегрированная среда разработки программ Turbo.exe является прежде всего редактором. Его можно запустить просто с пустым окном редактора:
 
c:/turbo.exe
 
и можно начинать писать новую программу. Можно запустить с именем уже существующего файла *.pas с исходным кодом программы:
 
c:/turbo.exe myprog.pas
 
и можно продолжать писать программу в окне редактирования.
Чтобы в редакторе открыть уже существующий *.pas файл, надо нажать [F3] и выбрать имя необходимого файла. Закрыть текущее окно можно одновременным нажатием [Alt]+[F3]. Если в редакторе уже открыто несколько файлов, то перейти в нужное окно можно нажав одновременно [Alt] и номер окна [1]...[9].
Сохранить редактируемый файл из текущего окна можно нажав [F2].
Откомпилировать исходный код можно нажав [F9]. Если в программе будет найдена ошибка, то на экране появится соответствующее сообщение, а если компиляция пройдут успешно, то появится небольшое окно с информацией:
 
Main file: MYPROG.PAS
Compiling: MYPROG.PAS
Destination: Disk Liner number: 1501
Free memory: 81K Total lines: 1501
 
Destination - указывает путь компиляции Disk или Memory.
При использовании компиляции в Memory (память) компилятор не создает файл *.exe и занимает много оперативной памяти. Если использовать компиляцию на Disk (диск), то компилятор создаст файл *.exe.
Free memory - свободная память в килобайтах, учитывая то что компилятор тоже находится в оперативной памяти.
Total lines - количество строк в исходном коде программы.
 
Запускается программа на выполнение клавишами [Ctrl]+[F9].
Прервать выполнение программы можно клавишами [Ctrl]+[Break].
Пошаговое выполнение программы (трассировка) выполняется клавишей [F8]. При каждом нажатии этой клавиши происходит выполнение одной строки кода. Для детальной трассировки надо использовать клавишу [F7].
Результат действия трассируемой программы можно увидеть, нажав [Alt]+[F5].
Выйти из окна редактирования в главное меню редактора можно клавишей [F10], а вернуться обратно [ESC] или [ESCAPE].
Выход из редактора в DOS клавишами [Alt]+[X].
Помощь вызывается клавишей [F1].
Алфавитная помощь [Shift]+[F1].
Помощь по конкретному элементу синтаксиса и процедурам можно получить разместив курсор на первом символе интересующего слова и нажать [Ctrl]+[F1].
 

Просмотр значений переменных

 
В режиме отладки программы можно легко указать переменные, значения которых необходимо отслеживать и показывать в окне Watches. Для этого выйдя из окна редактирования клавишей F10 и выбрав меню Debug > Watches > Add Watch.. следует ввести имя переменной. При вводе первой переменной будет открыто окно Watches. Находясь в нем, можно нажать [Ins] ([Insert]) чтобы ввести еще одну переменную для просмотра ее значения. Для удаления переменной из окна просмотра следует пользоваться клавишей [Del] ([Delete]).
 

Сеанс MS-DOS

 
Поскольку для более комфортной работы в Turbo Pascal желательно запускать текстовый редактор Паскаля turbo.exe в сеансе MS-DOS, то я рекомендую воспользоваться архивом Pascal.rar, где содержится сам компилятор языка, графические библиотеки, шрифты, основные модули. Помимо этого в архиве содержится Volkov Commander – файловый менеджер, позволяющий удобно копировать, перемещать файлы в среде DOS. Следует распаковать архив, при этом будет создана папка Pascal, где в папке VC будет запускной файл VC.com, для которого следует сделать ярлык на рабочем столе, чтобы было легко запускать его. Тогда система автоматически будет создавать сеанс MS-DOS и в нем запускать VC (Volkov Commander).
 
А уже находясь в нем можно многократно запускать компилятор. В конце работы с компилятором редактор следует закрыть комбинацией [Alt]+[X]. Затем закрыть Volkov Commander клавишей [F10]. После этого сеанс MS-DOS будет закрыт автоматически. Если нет, то следует в свойствах ярлыка сеанса в закладке Программа установить галочку Закрывать окно по завершении работы. Также рекомендую для каждой очередной создаваемой на Паскале программы создавать отдельную папку и туда копировать файлы: turbo.exe, turbo.tpl, tpc.exe, turbo.hlp, tpc.cfg.
 
Следует помнить, что Volkov Commander настроен так, что при выборе курсором в нем файла с окончанием .PAS и нажатием [F3] автоматически откроется редактор turbo.exe с уже загруженным выбранным файлом исходного кода выбранной программы. Если на выбранном файле .PAS нажать [Enter], то файл будет автоматически откомпилирован компилятором командной строки tpc.exe, в результате чего будет создан уже запускной файл (.EXE) вашей программы в этой же папке.
 
 

Ликбез

 
Однажды один из моих бывших сокурсников высказал непонимание того, что в единице памяти – байте может помещаться число от 0 до 255 и не более. Такая безграмотность меня поразила. Ведь мы вместе учили в вузе одно и тоже, но я усвоил, а он и после окончания вуза так и остался стоять перед этой дилеммой. Так высоко поднимем факел знаний и осветим дорогу любознательному путнику…
 
Каждая программа производит какие-нибудь операции над числами. Как правило, все числа в компьютере представляются с помощью нулей и единиц (а не десяти цифр, как это привычно для людей), что поделать, так сложилось :) . Иными словами, компьютеры обычно работают в двоичной системе счисления, поскольку при этом их устройство получается значительно более простым. Это значит что любой элемент ЭВМ понимает только два состояния 0/1, выключено/включено, ложь/истина. Компьютер внутри можно представить набором переключателей, которые могут находиться в двух позициях 0/1, выключено/включено, ложь/истина. Каждый такой переключатель называется битом(bit). Единицей информации в компьютере является один бит, т.е. двоичный разряд, который может принимать значение 0 или 1. Значит в одном бите информации можно хранить целые числа от 0 до 1. Маловато будет! А если взять и объединить вместе два бита, то получим возможность хранить целые числа от 0 до 3. Как это получается? Обозначим бит значком "X", то два бита будут выглядеть так
 
2^1 2^0 <- 2 в степени N
X2 X1 <- биты
2 1 <- разряды битов
 
младшему биту X1 соответствует число 2 в степени 0, что равно 1;
старшему биту X2 соответствует число 2 в степени 1, что равно 2;
Если взять биты, которые равны единице, и сложить их двоичные разряды, то получим число, которое они вместе представляют. Например:
 
       X2 X1
биты 0 0 где бит X1=0 и бит X2=0, то общее число 0;
биты 0 1 где бит X1=1 и бит X2=0, то общее число 1;
биты 1 0 где бит X1=0 и бит X2=1, то общее число 2;
биты 1 1 где бит X1=1 и бит X2=1, то общее число 2+1=3;
 
Таким образом, используя комбинации с несколькими битами можно получить определенную емкость для хранения чисел.
 
Все равно маловато!
Ну хорошо, возьмем четыре бита, в которых мы сможем хранить целые числа от 0 до 15.
 
2^3 2^2 2^1 2^0
X4 X3 X2 X1
8 4 2 1
 
младшему биту X1 соответствует число 2 в степени 0, что равно 1;
биту X2 соответствует число 2 в степени 1, что равно 2;
биту X3 соответствует число 2 в степени 2, что равно 4;
старшему биту X4 соответствует число 2 в степени 3, что равно 8;
Например:
 
 
т.е. двоичному числу 0101 соответствует десятичное 5. Еще пример:
 
 
т.е. двоичному числу 1110 соответствует десятичное 14.
 
Двоичная арифметика (для особо интересующихся).
 
Сложение в двоичной системе выполняется по тем же правилам, что и в десятичной арифметике, вот простой пример:
 
 
т.е. складывая младшие разряды 1+1=2, но число 2 в одном бите мы хранить не можем, и значит переносим 2 в следующий по старшинству разряд а в младшем остается остаток 0. Это все равно, если складывать десятичные 5+5=10, то число 10 в одном десятичном разряде не помещается, так как в одном десятичном разряде могут храниться числа от 0 до 9, и следовательно десятичный результат 10 состоит из двух разрядов: единицы в старшем разряде и нуля в младшем.
Вот еще пример:
 
В таком виде происходят вычисления и в таком виде данные хранятся в памяти ЭВМ.
Обычно биты организуются в группы по 8 бит, называемые байтами (byte) и могут хранить целые числа от 0 до 255.
В свою очередь байты могут группироваться парами в слова (word) и могут хранить целые числа от 0 до 65535. Когда байтов становится очень много, информацию начинают измерять в килобайтах (Кбайт) и 1 Кбайт=1024 байтам. Следующей единицей информации является мегабайт (Мбайт) и 1 Мбайт=1024 Кбайтам, а так же гигабайт (Гбайт) и на конец терабайт (Тбайт). Почему число 1024, а не 1000, как грамм в килограммах или метров в километрах? Откуда взялось магическое число 1024? Все просто, поскольку это результат все той же степени двойки, поскольку все пошло от двоичной системы счисления – машинной системы счисления. То есть число 1024 легко делится нацело на любую степень двойки, а значит вычисления адреса или длины передаваемых данных процессор сможет выполнять значительно быстрее, не затрачивая дополнительно драгоценное процессорное время.
 

Адреса

 
Каждый байт несет некую информацию, и к нужному байту или к группе байтов, например, слову (word) или к большой группе байтов (массиву или array) надо как-то обращаться (читать/записывать). Каждый байт имеет свой уникальный адрес (address). Например, есть 100 байт, памяти:
 
 
байт "месяц" хранит номер текущего месяца (целое число от 1 до 12)
и находится по адресу 0054;
байты "год1" (младший) и "год2" (старший) вместе образуют слово и хранят информацию о текущем годе (целое число от 1 до 2010 и больше до 65535) и находится по адресу 0070;
Т.е. адрес всегда указывает на самый младший байт в группе адресуемых байт. Обычно адрес так и называют - указатель.
 

Порты

 
В компьютере есть еще один вид памяти, к которой можно обращаться по адресу, но это не та память, в которой программист может размещать все, что он захочет. Порт(port) - это отдельная байтовая ячейка с уникальным адресом, которая функционирует предопределенным для нее образом. Есть порты, в которые можно заносить определенные значения, а есть порты, из которых можно только читать информацию в виде отдельных байт. Такие порты называются однонаправленными. Есть также двунаправленные порты, из которых можно не только читать, но и в них можно записывать.
 
Адрес байта памяти и адрес некого порта могут совпадать, но это не значит, что адреса указывают на одно и тоже. Память компьютера служит для хранения информации, а порты служат для обмена информацией с устройствами компьютера. Например, порт клавиатуры, из которого можно прочитать код нажатой клавиши, или порт принтера, записывая в который можно выводить информацию на принтер.
 
Продолжение следует…
 
© Владислав Демьянишин
 
На нашем сайте можно не только бесплатно скачать игры, но и документацию и книги по программированию на MIDLetPascal, Turbo Pascal 6, Turbo Pascal 7, Borland Pascal, по программированию устройств Sound Blaster, Adlib, VESA BIOS, справочник Norton Guide и много другой полезной информации для программистов, включая примеры решения реальных задач по созданию резидентных программ.
 

Журнал > Программирование > Паскаль для новичков (Turbo Pascal, Assembler) > Паскаль для новичков (часть 1)
 
 
 
 
 
 
На главную страницу На предыдущую страницу На начало страницы