Язык программирования Турбо Паскаль


  1. Идентификаторы языка Турбо Паскаль (ТП)

Идентификаторами ТП называют произвольный набор символов.

Требования к идентификаторам:

    • Идентификатор состоит из латинских букв и цифр (заглавные и строчные буквы не различаются).

    • Идентификатора должен начинаться обязательно с буквы {"а1", а не "1а"}.

    • Идентификатор может состоять из любого количества символов, но распознаются только первые 63 .

    • Служебные слова запрещается использовать в качестве идентификаторов.

    • При написании идентификатора нельзя использовать пробелы.



  1. Общие понятия и правила программирования на языке Турбо Паскаль

    • Программа составляется из операторов Турбо Паскаля, которые разделяются символом ";".

    • Для выделения группы операторов используют операторные скобки: begin…..end.

    • Несколько операторов, заключенных в операторные скобки, называют составным оператором.

    • В тексте программы фигурными скобками выделяются комментарии, которые игнорируются при выполнении программы. В тексте лекций будем также использовать фигурные скобки для комментирования.



  1. Структура программы на языке Турбо Паскаль

Program P1; {заголовок, название программы} {±}

Uses………;{подключение внешних модулей с расширением *.tpu}{±}

Const……...; {описание констант} {±}

Type………; {задание типов} {±}

Var………..; {раздел объявления переменных}{±}

Function F1 ….; {описание функций} {±}

Procedure Pr1 ….; {описание процедур} {±}

Begin{начало основной программы} {+}

.. {тело основной программы} {±}

End. {конец основной программы} {+}.


Примечание. {+} – обязательная часть программы,

{±} – необязательная часть программы.


Рассмотрим основные части программы


3.1. Uses – подключение внешних библиотек для расширения в программе набора доступных операторов.


Пример:

Uses DOS, Crt, Graph, Printer; { Подключение четырех стандартных модулей:

DOS – использование в программе команд операционной системы.

Crt – расширение возможностей ввода-вывода, использование звукового генератора.

Graph – подключение графических процедур и функций.

Printer – легкий доступ к печати.}


Пример. Следующая программа обеспечивает реализацию легкого доступа к печати.

UsesPrinter; { подключение модуля}

begin

Write(‘привет’); { выводится на экран слово "привет"}

Write(lst,‘привет’); { выводится на принтер слово "привет"}

end.


3.2. Const (константы).

В этом разделе описания идентификаторам задаются значения, которые не меняются при выполнении программы.


Пример.

Const

a=4; {численная константа}

b=’A’; {символьная константа }

s=’ABBA’; {строковая константа }

b1=false; {логическая константа }

M:array[1..4] of integer=(1,5,6,7); {массив констант }.


3.3. Type (тип данных) определяет множество допустимых значений, которые принимает идентификатор и множество операций, которые с ним можно производить.

На рисунке приведены основные типы данных языка Турбо Паскаль.

Основные типы данных ТП

Типы данных, которые далее будут использованы при написании программ, рассмотрим подробнее.


Простые типы


3.3.1 Численные типы

Тип

Размер,

Байт

Диапазон значений

Byte

1

0…255

Shortint

1

-128…127

Word

2

0…65535

Integer

2

-32768…32767

Longint

4

-2147483648…2147483647

Single

4

7..8 значащих цифр

-45…38-диапазон десятичного порядка

Real

6

11..12 значащих цифр

-39…38-диапазон десятичного порядка

Double

8

15..16 значащих цифр

-324…308-диапазон десятичного порядка

Extended

10

19..20 значащих цифр

-4951…4932-диапазон десятичного порядка

3.3.2. Символьные переменные - char

Значениями символьного типа является множество всех символов ПК. Каждому символу приписывается целое число в диапазоне 0…255.


3.3.3. Логические переменные - boolean

Значениями логического типа может быть одна из предварительно объявленных констант (False – ложь, True – истина).


Сложные типы


3.3.4. Массивы- array.

Тип данных Массив позволяет одному идентификатору задать несколько значений, которые отличаются порядковым номером. Номер элемента массива указывается после идентификатора в квадратных скобках {M[5] – пятый элемент массива М}. При описании массива указывается диапазон номеров элементов массива и тип, к которому относится каждый его элемент. Массивы могут быть одно-, двух- и многомерными.


Пример описания и заполнения элементов массива.

Var {описание массивов}

M: array [1..5] of integer; {одномерный массив М с номерами элементов от 1 до 5, состоящий из целых чисел}

M1: array [2..3,11..15] of char; {двумерный массив М1 с номерами строк от 2 до 3, с номерами столбцов от 11 до 15, состоящий из символов}

Begin {заполнение массива}

М[2]:=100; {второму элементу численного массива М присвоено значение 100}

М1[2,3]:=’d’; {элементу второй строки и третьего столбца символьного двухмерного массива М1 присвоено значение ’d’}

End.


3.3.5. Строковые переменные – string.

Переменные строкового типа состоят из нескольких символов.


Пример.

Var s:string; {описание идентификатора s как строковую переменную}

Begin

s:=’Привет’; {задание значения строковой переменной}

Writeln(s); {распечатка на экране слова "Привет"}

end.


3.4. Var (Переменные).

Все идентификаторы, используемые в программе, должны быть описаны. Описать идентификатор - указать тип данных, к которому он относится.


Пример.

Var

x,y:real; {идентификаторы x,y - переменные реального типа}

i,j,k:integer; { идентификаторы i,j,k – переменные целого типа }

M:array [1..4] of char; { M - одномерный символьный массив из 4 элементов}

M1:array [1..3,1..4] of byte; { M1 двухмерный массив из 12 элементовцелого типа}

Type

re=real; { описание нового типа: идентификатор re - реальный тип}

Var

z:re; {идентификатор z – переменная типа re, то есть реального типа}

{Четыре последние строки примера можно заменить следующим

образом: Var z:real;}


3.5. Основная программа

Основная программа, как правило, состоит из трех частей:

    1. Ввод исходных данных.

    2. Расчет.

    3. Вывод результата.



Рассмотрим эти части более подробно.



3.5.1. Ввод исходных данных.

Варианты ввода исходной информации покажем на примерах:

    • Const х=20; {идентификатору x задается постоянного значения в разделе описания констант}

    • y:=20; {идентификатору y присваивается численное значение в теле основной программы}

    • read(x); { выполнение программы приостанавливается для ввода значения "x" с клавиатуры. Оператор аналогичен оператору INPUT в Бейсике}

    • readln(x); {ввод значения идентификатора с новой строки}

    • read(x,y); {ввод двух значений x ,y. Одно значение от другогоотделяется нажатием клавишей пробела или Enter}

    • Write(‘x= ’); readln(x); {Ввод значения с пояснением. На экране в месте ввода появляется сообщение: ‘х= ’}



3.5.2.Расчет.

Основные математические соотношения и операции Турбо Паскаль:

    • + { сложение}

    • { вычитание}

    • * { умножение}

    • / { деление}

    • = {равенство (используется при описании констант, типов и т.д.)}

    • := {присваивание}

    • > { больше}

    • < { меньше}

    • >= { больше либо равно}

    • <= { меньше либо равно}

    • <> { не равно}.



Стандартные функции Турбо Паскаля

    • abs(x); {модуль, абсолютная величина}

    • exp(x); {еx- экспонента}

    • sqr(x); {x2 - квадрат числа}

    • sqrt(x); { - корень квадратный}

    • ln(x); {вычисление натурального логарифма }



{ - вычисление логарифма по произвольному основанию}

{xa=exp(a*ln(x)) - возведение в степень}

    • sin(x); {-вычисление синуса}

    • cos(x); {-вычисление косинуса}



{tg(x) = sin(x)/cos(x) - вычисление тангенса}

{ctg(x) = cos(x)/sin(x) - вычисление котангенса}

    • arctan(x); {вычисление арктангенса}

    • round(x); {округление: x=4.9; y=round(x), ⇒ y=5 }

    • trunc(x); { выделение целой части: x=4.9; y=trunc(x), ⇒ y=4}

    • i mod j; { остаток целочисленного деления 10 mod 3 → 1 {10:3=3(1)}

    • i div j ; { целочисленное деление 10 div 3 → 3}

    • chr(i) ; { по порядковому номеру i возвращает символ}

    • ord(b); {функция, обратная предыдущей (возвращение порядкового номера)}

    • int(r) ;{возвращение целой части числа}

    • frac(r) ;{возвращение дробной части числа}



Стандартные процедуры

    • Dec(i); {i:=i-1}

    • inc(i); {i:=i+1}

    • GotoXY(i,j); {перемещение курсора в указанную точку экрана с координатами i, j}

    • str(x,S); {идентификатор численного типа x переводит в строковую переменную S: x→S. }{ Требуется модуль Crt}

    • Clrscr; {очистка экрана} {Требуется модуль Crt }



Константы

Pi{число π = 3.14…}



3.5.3. Вывод результатов

    • Write(x); {вывод на экран значения x: при реальном x=4, на экран выводится "4.0000000000E+00"}

    • Write(x:5:1); {вывод форматированных данных, то есть выделение на экране заданного количества позиций для вывода идентификатора: 5 показывает общее число позиций, 1 – число знаков после запятой: при x=4 , на экран выводится "4.0"}

    • Writeln(x); {вывод с новой строки}

    • Writeln(x,y); {вывод двух значений идентификаторов}

    • Writeln(‘x= ’,x:4:1); {вывод с комментариями и форматированием: "x= 4.0"}

    • Writeln(‘Площадь круга радиусом 3 м равна’,3.14*sqr(3):4:1); {Вывод с комментариями и выполнением расчетов: "Площадь круга радиусом 3 м равна 28.3"}



Технология программирования

Включает пять технологических операций (этапов):

    1. Постановка задачи.

    2. Математическое описание.

    3. Алгоритм – структограмма.

    4. Написание текста программы.

    5. Отладка, получение результатов.



При разработке программ будем последовательно выполнять технологические этапы программирования, для наглядности помещая их в таблицу.



Пример. Определить площадь круга.

Этапы разработки программы сведены в таблицу.

Таблица

N

Этапы программирования

Выполнение

1.

Постановка задачи

Составить программу для вычисления площади круга радиусом R.

2.

Математическое описание

Расчетная формула: S=πR2

3.

Разработка алгоритма (структограммы)

Описание R,S

Ввод R

Расчет S=πR2

Вывод S


4.

Написание программы

Program P1; { программа вычисления площади круга}

Var r,S:real; {Описание переменных}

Begin

Read(R); {в этом месте программа останавливается, для ввода числового значения R}

{R:=4;}{другой вариант ввода исходных данных}

S:=3.14*Sqr(R); {расчет}

{S:=Pi*sqr(R);} {другой вариант расчета}

Writeln(‘R=’,R:3:1, ‘S=’,S:8:4); {Вывод}

end.

5.

Отладка и получение результатов

R= 4.0 S= 48.7654




Структурное программирование

Структурное программирование – это стиль программирования, позволяющий разрабатывать хорошо структурированные программы.

Основные положения структурного программирования:

    1. Программа разбивается на блоки, каждый из которых имеет один "вход" и один "выход".

    2. Любая программа может быть составлена из трех структур или блоков, которые представлены в таблице.

    3. Алгоритмы при структурном программировании представляются в виде структоргамм, элементы написания которых также приведены в таблице.



Таблица

Основные типы структур и примеры их изображения на структограммах

Название

Алгоритм

Блок-схема

Структограмма

а) линейная структура

б) Ветвящаяся структура

в) циклическая структура:



с предусловием

с постусловием



Created by miii. All right reserved © 2002-2003



Среда Турбо Паскаля загружается файлом turbo.exe.

Главное меню ТП содержит оглавление дополнительных меню:

  1. - вспомогательные действия.

  2. File(файл) – действие с файлами.

  3. Edit (редактировать) – редактирование файлов.

  4. Search (искать) – поиск.

  5. Run (работа) –прогон программы.

  6. Compile (компиляция) – компиляция программы.

  7. Debug ( отладка) – отладка программы.

  8. Options (варианты) – установка параметров среды.

  9. Windows (окно) – работа с окнами.

  10. Help (помощь) –обращение к справочной службе.


Выбор пункта главного меню приводит к появлению дополнительного меню, вид и назначение которого для каждой клавиши рассмотрены ниже на примере версии Турбо Паскаля 6.0.


  1. Вспомогательные действия

    About

    Версия о Паскале

    Refresh display

    Восстановление экрана

    Clear Desktop

    Очистка экрана



  2. File (файл) – действие с файлами;

    OpenF3

    Открыть файл {A:\LB1}

    New

    Новый файл

    SaveF2

    Сохранение

    Save as …

    Сохранить как

    Save all

    Записать всё

    Change dir

    Изменение директории

    Print

    Распечатывает файл из активного окна

    Get into

    Получение информации

    Dos shell

    Временный выход в DOS (из Turbo Pascal)

    Exit Alt-X

    Выход из Turbo Pascal



  3. Editредактирование

    Restore Line

    Восстановление строки

    CutShift+Del

    Удаление выделенного блока из окна в буфер

    Copy Ctrl-Ins

    Копирование выделенного блока из окна в буфер

    Paste Shift-Ins

    Копирование буфера в окно редактирования

    Copy Examples

    Копирование примера

    Clear Ctrl-Del

    Удаление выделенного блока



  4. Search - поиск

    Find

    Найти

    Replace

    Заменить

    Search again

    Повторить поиск

    Go to line number

    Искать линию с номером

    Find procedure

    Поиск процедуры

    Find Error

    Поиск ошибки



  5. Runработа

    Run Ctrl+F9

    Запуск программы

    Program Reset

    Прекращение отладки

    Go to cursor

    Начало режима отладки

    Trace into F7

    Режим отладки сначала

    Step over F8

    Следующий шаг

    Parameters

    Параметры



  6. Compile – компиляция

    CompileAlt+F9

    Создание exeфайла

    MakeF9

    Перекомпиляция измененных файлов

    Build

    Перекомпиляция всех файлов

    Destination

    Путь компиляции

    Primary File

    Имя компилируемого файла



  7. Debugотладка

    Evaluate/Modify Ctrl+F4

    Оценка модификации

    Watches

    Наблюдение

    Toggle Break Point Ctrl+F8

    Установка контрольной точки

    Break points

    Контрольные точки



  8. OptionsОпции

    Compiler

    Компилятор

    Memory size

    Размер памяти

    Linker

    Редактор связи

    Debugger

    Отладка

    Directories

    Директории

    Environment

    Окружающая среда

    Save options

    Запись опций

    Retrieve

    Загрузка опций



  9. Windowsокна

    Size/Move

    Размер и положение окна на экране

    ZoomF5

    Распахнуть

    Title

    Черепица

    Cascade

    Каскад

    Next F6

    Следующее окно

    Previous Shift+F6

    Предыдущее окно

    CloseAlt+F3

    Закрыть

    Watch

    Окно наблюдения

    Register

    Регистр

    Output

    Выходное окно

    Call stack

    Показать список

    User screenAlt+ F5

    Окно пользователя

    List

    Посмотреть содержимое экрана



  10. Helpпомощь

    Contents

    Содержание

    IndexSheft+F1

    Алфавитный список

    Topic Search Ctrl+F1

    Поиск в окрестностях курсора

    Previous Topic Alt+F1

    Предыдущее сообщение





Редактирование файла

Для корректировки файла в редакторе ТП зарезервированы следующие комбинации клавиш: