Для изучения любого языка программирования требуется определить несколько понятий, как общих для всех языков, так и специфических для Турбо-Паскаля.
Алгоритм.
Алгоритмом называется последовательность дискретных шагов (действий), предназначенных для исполнения и приводящих к некоторому конечному результату. Алгоритм обладает определенным набором свойств
Свойства алгоритма
Любой алгоритм должен обладать следующими основными свойствами:
1) Конечность. Выполнение программы должно быть завершено за некоторый конечный промежуток времени.
Существует целый набор операторов, неправильное использование которых может вызвать бесконечный цикл, "зависание" программы. Это касается операторов цикла, условного и безусловного перехода и даже оператора присваивания (например - присваивание произвольной области памяти некоторого значения. Если эта область находится не в области данных программы, то результаты такого действия совершенно непредсказуемы).
2) Определенность. Все операторы, а также любые другие структуры, из которых состоит программа, должны быть известны исполнителю.
Из этого следует, что в программе не должно быть отступления от синтаксиса ТП.
3) Возможность ввода данных и вывода результатов.
В ТП ввод-вывод организуется с помощью процедур ввода-вывода. Рассмотрим четыре из них.
Процедура Write позволяет выводить на экран значения выражений, следующие за ней в скобках через запятую. Процедура Writeln делает то же самое, но после вывода информации переводит строку:
begin
writeln(1231+4*(231-21),' ',444+23);
end.
В результате работы этой программы на экране появятся 2 числа:
2071 467
Все, что заключено в апострофы, выводится на экран без изменений. В данном случае в апострофы заключен пробел, используемый для разделения друг от друга первого и второго результатов.
Дополнительно, процедуры Write и Writeln позволяют ставить после каждого числового выражения одно или два натуральных числа через двоеточие. Первое означает общее количество символов в числе (если цифр не хватает, то при выводе значение выражения дополняется слева требуемым количеством пробелов), а второе - количество выводимых знаков дробной части.
Пример :
begin
writeln (11.32/3:8:3, 4+5+6:5);
writeln (11.32/0.3:8:3, 44+55+66:5);
end.
В результате работы программы на экране появится:
3.773 15
37.733 165
Таким методом легко производить форматирование и выравнивание числовых выражений.
Процедура Read позволяет вводить с клавиатуры значения и присваивать их переменным, имена которых идут после Read в скобках через запятую. Процедура Readln делает то же самое, но после ввода информации происходит переход на другую строку:
var A,B: integer;
begin
Writeln(' Введите два целых числа ');
Readln (A,B);
Writeln(' Произведение чисел ' , A, ' и ', B, ' равно ', A*B);
end.
После запуска данная программа остановится в ожидании ввода двух чисел (разделенных пробелом). После ввода и нажатия на клавишу "Enter" произойдет вывод на экран произведения этих чисел с соответствующими комментариями:
Введите два целых числа
6 2
Произведение чисел 6 и 2 равно 12
Процедура Readln без параметров ждет нажатия клавиши "Enter" ( что удобно использовать как задержку в конце работы программы ) , а процедура Writeln - переводит курсор на другую строку. Процедуры Read и Write без параметров ничего не делают.
Программа.
В языках программирования синонимом алгоритма служит программа.
Создание готовой к исполнению программы проходит через несколько этапов:
1) Подготовка текста программы с помощью текстового редактора
2) Трансляция (компиляция и компоновка).
3) При обнаружении ошибок запускается процесс отладки.
Данные.
Данные программы - это информация, хранимая в памяти ЭВМ и обрабатываемая программой. В ТП данные сохраняются в переменных, а их обработка ведется с помощью операторов (см. ниже). Переменной называется именованная область памяти, содержимое которой программист может произвольно изменять в процессе работы программы. Каждая переменная имеет свой собственный тип, от которого зависит набор операций над переменной и занимаемый ею объем памяти компьютера. В ТП переменные могут быть целочисленными, вещественными, логическими, строковыми и т.д.
Пример: числовые переменные могут занимать от 1 до 10 байт памяти в зависимости от того, является переменная целочисленной, натуральной, вещественной и т.д. Стандартные строковые переменные по умолчанию занимают 256 байт, однако при определении их размер может быть уменьшен до 1 байта.
Любые переменные в ТП должны быть определены до своего использования. Это делается с помощью зарезервированного слова VAR :
…
Var X,Y:integer; Z,B:real;
…
В данном примере зарезервированное слово Integer определяет, что переменные X и Y будут иметь целочисленный тип , а слово Real - что переменные Z и B будут вещественными.
Оператор.
Оператор – это команда или набор команд исполнителю (в данном случае исполнителем является компьютер), некоторое действие над данными программы. Операторы выполняются в программе один за другим до тех пор, пока выполнение не дойдет до самого последнего из них или до оператора, который принудительно заставит программу завершить работу.
Чаще всего употребляемый оператор в ТП - это оператор присваивания, который используется для того, чтобы помещать в переменные различные значения:
var A:real;
begin
a:=7;
a:=a+2;
end.
В этом примере между зарезервированными словами begin и end A значение 7, а второй - увеличивает A на 2. (последовательность которых также является оператором и означает (в данном случае) начало и конец программы) находятся 2 оператора присваивания, первый из которых присваивает переменной
Подпрограмма.
Процедура (подпрограмма) - это часть программы, которая содержит набор операторов, выполняющих определенные действия над переданными ей данными (параметрами, аргументами). Процедура может быть вызвана из любой точки программы, причем при каждом вызове ей могут передаваться различные значения параметров.
Функция - это процедура, возвращающая результат, что позволяет использовать ее в выражениях.
В заголовке процедур и функций обычно описывается имя процедуры и список формальных параметров, то есть тех значений, которые анализирует процедура при своем выполнении. Параметры, передаваемые в процедуру из программы при ее вызове называются фактическими. Дополнительно, в заголовке функции описывается тип возвращаемого функцией значения.
ТП имеет множество встроенных процедур и функций. Типичным примером могут служить арифметические и алгебраические функции : sin, cos, arctan, abs, sqrt и т.д. Каждая из них имеет только один числовой параметр, передаваемый ей в скобках и возвращает некоторое значение. Например, для получения тангенса некоторой переменной следует составить такую программу:
var pi,z:real;
begin
pi:=3.1415926;
z:=sin(pi)/cos(pi);
end.
Если процедура или функция имеет несколько параметров, то они передаются ей в скобках через запятую.
Модуль.
Модули - это автономные программные блоки, содержащие в себе объединенные общим принципом такие компоненты программы, как переменные, типы, процедуры, функции и т.д. Модули используются для разбиения больших программ на отдельные, независимо существующие части.
Например, в ТП имеется модуль Graph , который содержит в себе все требуемое для работы с графикой, имеется модуль Printer , использование которого позволяет вести вывод на печать стандартными средствами ввода-вывода и т.д.
Язык программирования.
Язык программирования - это четкий, не допускающий различных толкований, искусственно созданный язык для точного описания алгоритмов, используемых в вычислительных машинах. Существуют языки программирования низкого и высокого уровней. Под языком низкого уровня понимают язык, синтаксис и семантика которого зависят от типа вычислительной машины, на которой он используется. Таким, например, является язык ассемблер, который имеет различные мнемонику и команды для различных типов машин. Синтаксис и семантика языка высокого уровня едины для любого типа ЭВМ. Результат выполнения программ на Паскале или Си будет одинаков и на IBM PC , и на Ямахе MSX-2. Однако в этом случае для каждого типа ЭВМ должна существовать программа-транслятор (см. ниже).
Текстовый редактор.
На первом этапе создания программы используется текстовый редактор - программа подготовки разнообразных текстов.
Транслятор.
Транслятор - это переводчик с языка высокого уровня на язык ассемблера. Трансляторы бывают двух видов - интерпретаторы и компиляторы. Программа-интерпретатор выполняет команды языка строка за строкой. Программа-компилятор переводит всю программу на язык ассемблера и только затем позволяет ее выполнить. Компоновщик - это одно средств разработки программ, входящее в состав транслятора. Под компоновкой понимается процесс объединения различных автономных программных блоков (модулей) в единое целое - готовую к исполнению программу.
В поставке Турбо-Паскаля имеется быстродействующий компилятор-компоновщик, результатом работы которого является исполняемый файл.
Отладчик.
Отладка - это процесс обнаружения и исправления ошибок. Отладчиком называется инструментальное программное средство, автоматизирующее процесс отладки.
Интегрированная среда.
Интегрированная среда ( IDE или ИС)- это система разработки программ, объединяющая текстовый редактор, компилятор (интерпретатор), компоновщик и отладчик в единое целое.
IDE Турбо-Паскаля - это мощная и удобная система, позволяющая быстро создавать программы небольших и средних размеров. При больших объемах программного текста удобнее использовать автономные средства разработки программ, также входящие в состав ТП.