Язык программирования Turbo Pascal

Характеристика языка программирования Turbo Pascal: процедуры и функции, операторы, выражения. Структура программы. Типы данных, стандартные функции языка Pascal. Особые пути построения арифметических выражений. Элементы структурного программирования.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 20.02.2009
Размер файла 49,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Содержание

1. Введение

1. Язык программирования Turbo Pascal

2.1 Процедуры и функции

2.2 Операторы

2.3 Выражения

3. Лексические основы языка Pascal

3.1 Лексемы

3.2 Структура программы на языке Pascal

3.3 Типы данных, используемые в Pascal

3.4 Стандартные функции языка Pascal

3.5 Построение арифметических выражений

3.6 Встроенные константы

3.7 Элементы структурного программирования

4. Литература

Введение

Скаждым годом всё большее и большее значение уделяется компьютеризации всех отраслей народного хозяйства. Компьютеры, в составе вычислительных комплексов, используются для ведения бухгалтерского учёта, выполнения банковских операций, для моделирования и статистической обработки результатов, выполнения офисных работ, словом нет такой области, в которой не используются компьютеры.

В своей основе компьютер является совокупностью электронных элементов транзисторов, которые могут обрабатывать только электронные сигналы. Эти сигналы условно можно представить в виде совокупности нулей и единиц, что соответствует двоичной системе счисления. Электронные сигналы, заставляющие компьютер выполнять те или иные действия называются командами. Так как "мозгом" компьютера является интегральная микросхема, называемая центральным управляющим модулем или микропроцессором, то эти команды предназначены для микропроцессора. Таким образом, микропроцессор, работающий с той или иной программой, на самом деле выполняет последовательность команд, представляемых в двоичной системе счисления, называемых машинным кодом.

Как известно для решения некоторой задачи необходимо построить алгоритм, то есть конечную последовательность действий по обработке исходных данных и приводящую к некоторому результату. Написать программу в машинном коде довольно сложное и кропотливое дело и чем труднее и объёмнее задача, тем больше возрастает трудоёмкость программирования. Языки программирования позволяют представить алгоритм в понятной для микропроцессора форме. Алгоритмическим языком программирования называется набор символов с заданными правилами образования из этих символов конструкций, с помощью которых описывается порядок выполнения алгоритма. Алгоритмические языки упрощают процесс разработки программ. Современные языки программирования позволяют решать широкий круг задач, но в определённых случаях предпочтительнее использовать специализированные языки программирования. Для каждого языка программирования разрабатывается специальная программа, позволяющая переводить текст программы на соответствующем языке в исполнительную форму. Эта программа относится к классу специальных системных программ, называемых инструментальными или трансляторами. Трансляторы подразделяются на два вида: компиляторы и интерпретаторы. Компилятор преобразует исходный текст программы в исполняемую форму и сохраняет его на внешнем запоминающем устройстве в виде исполняемого модуля (файл с расширением *.EXE). После трансляции исполняемый файл можно отправлять на исполнение самостоятельно. Интерпретатор переводит исходный текст программы в команды микропроцессора и сразу отправляет его на выполнение, не сохраняя его на диске. Для разработки больших программ и программных комплексов целесообразно использовать компиляторы, так как они позволяют широкому кругу пользователей выполнять прикладные задачи без специальных знаний по трансляции программы.

Каждый язык программирования имеет свой синтаксис, который определяет правила записи и состав допустимых конструкций языка. Смысл же каждой конструкции языка образует его семантику. Семантика обеспечивает пользователя языка смысловыми правилами применения и интерпретации конструкций языка. Запись алгоритма в терминах алгоритмического языка называется исходным текстом программы. При изучении языка программирования необходимо изучить, какие величины допускается использовать в данном языке, как они должны быть представлены в тексте программы, какие операции над этими величинами можно задавать, как эти операции записываются в соответствии с правилами языка, каковы правила объединения отдельных конструкций вычислительного процесса. При трансляции программы проверяется синтаксис программы и в случае отклонения от правил, трансляция прерывается и появляется сообщение об ошибке. При правильно написанной программе, но не отвечающей алгоритму использования команд языка, появляются логические ошибки. Если для обнаружения синтаксических ошибок достаточно произвести трансляцию программы, то для выявления логических используют специальные программы называемые отладчиками. Отладчики предоставляют программисту набор средств, позволяющих контролировать ход выполнения программы, наблюдать за изменением переменных, просматривать содержимое регистров микропроцессора, областей памяти и многие другие полезные при отладке функции. Процесс отладки и тестирования программ занимает время порой соизмеримое со временем разработки алгоритма и программы.

На сегодняшний день существует большое количество языков программирования. Они подразделяются на языки программирования низкого и высокого уровней, а также специализированные языки программирования (баз данных, скриптязыки). Терминология "низкий уровень" означает близость операторов языка к машинному коду. Наиболее используемый и популярный язык низкого уровня ассемблер. Каждый оператор языка представляет в виде мнемокодов команду микропроцессора, поэтому этот язык программирования называют машинно-ориентированным. Для каждого типа микропроцессора создаётся свой ассемблер, поддерживающий все его команды. При помощи языков низкого уровня создаются компактные и быстродействующие программы, однако, они зачастую привязаны к определённому виду архитектуры компьютера.

Терминология "высокий уровень" означает, что язык программирования приближен к мышлению человека. В них не учитываются особенности архитектуры конкретной модели компьютера, поэтому разрабатываемые программы легко переносятся на другие платформы. Разнообразие языков программирования обусловлено их специфическими особенностями и предназначением. Basic разработан в 60е годы как язык программирования для начинающих. Pascal, созданный в конце 70х для обучения программированию как систематической дисциплине. С для разработки программ системного назначения, обладающих преимуществами как языков программирования низкого уровня (компактность и эффективность разрабатываемых программ), так и преимуществами языков высокого уровня (независимость от машинных архитектур). Fortran первый компилируемый язык, созданный в 50е годы для научно-технических расчётов. Cobol применяется для решения экономических задач. Приведённый перечень языков программирования высокого уровня не претендует на полноту, однако, наглядно показывает разнообразие и специфичность тех или иных языков программирования.

В данном учебном пособии рассматривается один из наиболее популярных языков программирования высокого уровня Pascal, который, несмотря на свою концептуальную простоту, позволяет решать широкий круг задач. В конце 70х годов Никлаус Вирт, работавший доцентом на факультете информатики Стэндфордского университета, предложил язык Паскаль на конкурс по созданию нового языка программирования. В начале 80х, с появлением Turbo Pascal, произвёл переворот в программировании. Turbo Pascal объединил язык программирования с интегрированной средой разработки и отладки программ. Он, являясь продолжением языка ALGOL, положил основу таким языкам как Ada и Modul. Первая версия Turbo Pascal появилась в 1983 году и использовалась недолго. Через год вышла в свет вторая версия, получившая широкое распространение. В 1985 году вышла третья версия языка, удобная в эксплуатации и более быстродействующая. В четвертой версии появился встроенный компилятор, а в пятой встроенный отладчик. Разработанная в 1989 году версия 5.5, позволила перейти к поддержке объектно-ориентированной технологии программирования. Turbo Pascal 6.0 был расширен поддержкой многодокументного интерфейса, обладал встроенным ассемблером, что позволяло эффективно выполнять процедуры работы с устройствами компьютера на низком уровне. В 1992 году фирма Borland выпускает два пакета Borland Pascal 7.0 и Turbo Pascal 7.0. Эти пакеты позволяют не только использовать в разработке программ объектно-ориентированную методологию, но и разрабатывать приложения с поддержкой защищённого режима работы микропроцессора, а также создавать приложения для работы под популярную операционную среду "Windows". Дальнейшее своё продолжение Pascal получил в визуальной среде, поддерживающей технологию быстрой разработки приложений RAD (Rapid Application Development) Delphi. Delphi одно из наиболее распространённых в настоящий момент средств разработки программных продуктов, объединяющее средства визуального проектирования и объектный Pascal. Поскольку Pascal предназначен, в первую очередь, для изучения программирования как дисциплины, то многие профессиональные программисты начинали свой путь именно с изучения программирования на языке Pascal.

2. Язык программирования Turbo Pascal

Язык программирования Pascal (назван в честь выдающегося французского математика и философа Блеза Паскаля (1623 - 1662)), разработан в 1968-1971 гг. Никлаусом Виртом, профессором, директором Института информатики Швейцарской высшей политехнической школы. Язык Pascal, созданный первоначально для обучения программированию как систематической дисциплине, скоро стал широко использоваться для разработки программных средств в профессиональном программировании.

Широкой популярности Pascal среди программистов способствовали следующие причины:

· благодаря своей компактности, удачному первоначальному описанию Pascal оказался достаточно легким для обучения.

· язык программирования Pascal отражает фундаментальные и наиболее важные концепции (идеи) алгоритмов в очевидной и легко воспринимаемой форме, что предоставляет программисту средства, помогающие проектировать программы.

· язык Pascal позволяет четко реализовывать идеи структурного проектирования и структурной организации данных.

· язык Pascal сыграл большую роль в развитии методов аналитического доказательства правильности программ и позволил реально перейти от методов отладки программ к системам автоматической проверки правильности программ.

· применение языка Pascal значительно подняло «планку» надежности разрабатываемых программ за счет требований Pascal к описанию используемых в программе переменных, проверки согласованности программы при компиляции без ее выполнения.

· использование в Pascal простых и гибких структур управления: ветвлений циклов.

Для повышения качества и скорости разработки программ в середине 80-х гг. была создана система программирования Turbo Pascal. Слово Турбо в названии системы программирования - это отражение торговой марки фирмы-разработчика Borland International, Inc. (США).

Систему программирования Turbo Pascal называют интегрированной (integration - объединение отдельных элементов в единое целое) средой программирования, так как она объединяет в себе возможности ранее разрозненных средств, используемых при разработке программ: редактора текстов, компилятора, комповщика, отладчика, и при этом обеспечивает программисту великолепные сервисные возможности. Часто ее кратко называют IDE (Integrated Development Envirinment - интегрированная среда разработки).

Интегрированная среда программирования Turbo Pascal версий 6.0 и 7.0 имеет следующие возможности:

· множество накладывающихся окон;

· поддержка мыши, меню, диалоговых окон;

· многофайловый редактор, который может редактировать файлы до 1Мбайта;

· расширенные возможности отладки;

· полное сохранение и восстановление среды разработки.

К ее существенным отличиям от среды программирования Turbo Pascal более ранних версий относятся:

· объектно-ориентированная среда разработки прикладных программ Turbo Vision;

· полные возможности встроенного ассемблера;

· директива расширенного синтаксиса $ X, которая позволяет вам интерпретировать функции как процедуры (и игнорировать результаты функций);

· генерация кода 286;

· адресные ссылки в типизированных константах;

· директивы ближних и дальних процедур;

· редактирование инициализированных данных из объектных файлов;

· более быстрый монитор кучи, сокращающий фрагментацию (FreeMin и FreeList удалены);

· расширенные возможности встроенной справочной системы с использованием вырезки и вставки кода примеров для каждой библиотечной процедуры и функции.

В своей простейшей форме программа Borland Pascal состоит из заголовка программы, который именует программу, и основного программного блока, выполняющего назначение программы. В основном программном блоке находится секция кода, заключенная между ключевыми словами begin и end. Приведем простейшую программу, иллюстрирующую эти принципы:

program Privet;

begin

Writeln('Добро пожаловать в Borland Pascal');

end.

Первая строка - это заголовок программы, который именует данную программу. Остальная часть программы - это исходный код, который начинается ключевым словом begin и заканчивается end. Хотя данная конкретная программа содержит только одну строку, их может быть много. В любой программе Borland Pascal все действия выполняются между begin и end.

2.1 Процедуры и функции

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

Процедуры и функции позволяют разделить логику программы на более мелкие и управляемые фрагменты и аналогичны подпрограммам в других языках. Как и в основном блоке программы, все действия в процедурах и функциях заключаются в begin и end. Каждый из этих сегментов кода выполняет конкретную задачу.

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

Приведем пример функции. Следующая функция GetNumber получает число от пользователя:

function GetNumber: Real;

var

Responce: Real;

begin

Write('Введите число: ');

Readln(Response);

GetNumber := Response;

end;

Процедура или функция должна содержаться в программе перед секцией основного кода. В основном коде она может затем использоваться (вызываться).

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

1. Получение числа от пользователя.

2. Выполнение с этим числом необходимых вычислений.

3. Печать отчета.

Основная логика программы заключена в последнем блоке begin..end.

Program Report;

var

A: Real;

{ другие описания }

..

function GetNumber: Real;

var

Responce: Real;

begin

Write('Введите число: ');

Readln(Response);

GetNumber := Response;

end;

procedure Calculate(X: Real);

.procedure PrintReport;

..

begin

A: = GetNumber;

Calculate(A);

PrintReport;

end.

Основная логика программы достаточно проста для понимания. Все детали убраны в тела процедур и функций. Использование процедур и функций позволяет вам рассматривать программу более удобным и модульным способом.

2.2 Операторы

Исходный код между begin и end содержит операторы, которые описывают выполняемые программой действия. Это называются операторной частью программы. Приведем примеры операторов:

A := B + C; { присвоить значение }

Calculate(Length, Height); { активизировать процедуру }

if X < 2 then { оператор условия }

Answer := X * Y;

begin { составной оператор }

X := 3;

Y := 4;

Z := 5;

end;

while not EOF(InFile) do { оператор цикла }

begin

ReadLn(InFile, Line);

Process(Line);

end;

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

2.3 Выражения

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

Выражения Паскаля могут состоять из более простых выражений. Они могут быть достаточно сложными. Приведем некоторые примеры выражений:

X + Y

Done <> Error

I <= Length

-X

3. Лексические основы языка Pascal

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

3.1 Лексемы

Алфавит языка Pascal включает буквы английского алфавита от A до Z и от a до z. Арабские цифры от 0 до 9. Специальные символы: + - / * . , : ; ( ) [ ] { } & @ # ^ = < > Символ подчёркивания _ , считающийся буквой.

Из символов алфавита формируются минимальные единицы языка, имеющие определённый смысл - лексемы. Лексемы бывают пяти видов: служебные слова, идентификаторы (имена) переменных, знаки операций, числа и строки, заданные непосредственно в программе, символы разделители. Pascal не различает заглавных и строчных букв, поэтому идентификаторы MyVAR и myvar обозначают одну и ту же переменную.

Служебные слова являются зарезервированными и переназначать их действие нельзя. Их нельзя использовать в качестве идентификаторов. Например: Program, Begin, End, While. Служебные слова будут вводиться по ходу изучения языка.

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

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

Для изображения чисел, представляющих собой константы целого и вещественного типа, используется обычная десятичная запись. Целая константа в шестнадцатеричном формате записывается, начиная со знака доллара ($). Для экспоненциальной формы записи чисел используется буква "E" или "e" Например, 9E-6 означает 9*10-6, а 24.337E+6 или 24.337E6 обозначают 24.337*106. Для отделения целой части от дробной используется символ "точка". Числа с десятичными точками или показателями степени представляют собой константы вещественного типа. Остальные десятичные числа обозначают константы целого типа. Их значения должны находится в диапазоне от -2147483648 до 2147483647. Шестнадцатеричные числа обозначают константы целочисленного типа. Они должны находиться в диапазоне от $00000000 до $FFFFFFFF.

Строка представляет собой последовательность, содержащую ноль и более символов из расширенного набора символов американского стандарта кодирования информации ASCII. Строка записывается в одной строке программы и заключается в апострофы. Строка символов может быть нулевой (не содержит символов). Два последовательных апострофа в строке символов обозначают один символ - апостроф. Атрибут длины строки символов выражается действительным количеством символов между апострофами, например:

'Строка символов'

' ' ' '

';'

'' {пустая строка}

' ' {пробел}

Разрешается вставлять в строку символов управляющие символы, которые начинаются со знака #, за которым без пробела следует целая константа без знака в диапазоне от 0 до 255. Константа обозначает соответствующий этому значению символ в коде ASCII. Аналогично, если несколько управляющих символов входит строку символов, то между ними не должно быть разделителей. Например:

#13#10 'Перевод строки и возврат каретки'

'Строка 1'#13'Строка 2'

Символы разделители используются для отделения одних выражений от других (;), меток от операторов, переменных от типов (:), для завершения программы (.).

В программе могут использоваться комментарии. Они игнорируются компилятором и применяются для пояснения исходных текстов программы. Комментарий может начинаться символами { и (*, соответственно заканчиваться } *). Например:

{Это комментарий}

(* И это комментарий *)

В Turbo Pascal строки программы могут иметь максимальную длину в 126 символов.

3.2 Структура программы на языке Pascal

Программа состоит из трёх блоков: заголовок программы, раздел описаний, тело программы. Ниже приведена схема программы со всеми возможными разделами. Если нет необходимости использовать какие-либо разделы описаний, то они опускаются, последовательность записи разделов описаний не обязательная, причём некоторые разделы могут повторяться.

Program Name (Input, Output); {Заголовок программы}

Uses {Описание используемых модулей}

Label {Описание меток}

Const {Описание констант} Раздел описаний

Type {Описание типов}

Var {Описание переменных}

Procedure {Описание процедур}

Function {Описание функций}

Begin

Оператор 1;

Оператор 2; {Раздел операторов ... (тело программы)}

Оператор n

End.

Заголовок программы начинается служебным словом Program, за которым записывается идентификатор программы (имя). Имя программы строится в соответствии с правилами записи идентификаторов, после имени программы иногда указывают в круглых скобках имена стандартных файлов ввода и вывода, связанных соответственно с клавиатурой и экраном монитора (Input, Output). Заканчивается описание заголовка символом " ; ". Например:

Program MyProgram (Input, Output);

Program MyProgram;

Затем после служебного слова uses через запятую перечисляются модули, процедуры и функции которые, используются в программе. В конце ставится " ; ". Это могут быть как стандартные модули Pascal - Crt, Graph, так и модули, разработанные пользователем. Например:

Uses Crt, Graph;

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

Метка - это идентификатор, заканчивающийся двоеточием " : ", помечающий место в программе, на которое передаётся управление при помощи оператора безусловного перехода.

Label M1, M2, M3;

Следом располагается раздел описаний констант, начинающийся служебным словом Const. Идентификатор константы отделяется от значения знаком "=". После каждой константы ставится " ; ".

Константы - это данные, значения которых не могут изменяться в процессе выполнения программы. Константы распознаются компилятором по форме их записи. В языке Pascal используются константы трех видов: числовые, булевские и символьные. Числовые константы предназначены для представления числовых данных (целых и вещественных). Булевские константы используются для представления данных, имеющих смысл логических высказываний (истина-ложь). Символьные константы представляют данные, являющиеся последовательностями символов. Например:

const

A = 12; {целочисленная константа A}

B: Real = 23.05; {типизированная константа B}

S= Строка ; {строковая константа}

Типы данных, вводимые пользователем, описываются после служебного слова Type. Новый тип данных вводится своим идентификатором, за которым после знака равенства " = ", записывается расшифровка типа. Например:

Type

Color = (Red, Green, Blue); {Перечисляемый тип}

Scale = 2 * (A - B).. (A + B); {Тип диапазон}

MassivReal=array[1..100] of Real; {Массив из ста элементов типа Real}

MassivChar=array[0..19] of Char; {Массив из 20 элементов типа Char}

Раздел описания переменных начинается служебным словом Var. Значения переменных могут изменяться во время выполнения программы. Переменные идентифицируются по именам (идентификаторам), с каждой переменной программы связывается один тип данных. При описании они отделяются двоеточием " : ". Если необходимо различным переменным назначить один тип данных, то они перечисляются через запятую, после последнего идентификатора ставится двоеточие, за которым указывается тип данных.

Тип - это множество значений переменной вместе с множеством операций, которые можно выполнять над элементами этого множества. Заданием переменной некоторого типа, явно определяется множество значений, которые можно присваивать этой переменной, а также операции, с помощью которых можно манипулировать ее значениями. Число отдельных значений, принадлежащих некоторому типу, называется мощностью типа. Так, например, мощность типа Boolean - 2.

Var

X,Y,Z: real; {переменные типа Real}

I,J,K: integer; {переменные типа Integer}

Digit: 0..9; {переменная перечисляемого типа}

C: Color; {переменная типа Color, который описан в разделе Type}

Done, Error: boolean; {переменные типа boolean }

Operator: (plus, minus, times); {переменная перечисляемого типа}

Matrix: array[1..10,1..10] of Real; {переменная - массив}

Следом идёт раздел описания процедур и функций. Он будет рассмотрен позднее при рассмотрении вопросов, связанных с организацией подпрограмм.

Тело программы начинается служебным словом Begin, которое определяет точку начала выполнения программы. Затем следуют операторы, описывающие алгоритм решения задачи. Они отделяются друг от друга точкой с запятой " ; ". Завершается тело программы служебным словом End за которым ставится точка.

Кроме описаний и операторов Pascal-программа может содержать комментарии, которые представляют собой произвольную последовательность символов, расположенную между открывающей скобкой комментариев {и закрывающей скобкой комментариев}.

3.3 Типы данных, используемые в Pascal

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

В языке Pascal существует такое правило: тип явно задается в описании переменной или функции, которое предшествует их использованию. Концепция типа языка Pascal имеет следующие основные свойства:

? любой тип данных определяет множество значений, к которому принадлежит константа, которые может принимать переменная или выражение, или вырабатывать операция или функция;

? тип значения, задаваемого константой, переменной или выражением, можно определить по их виду или описанию;

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

Из этого следует, что транслятор может использовать информацию о типах для проверки вычислимости и правильности различных конструкций.

Тип определяет:

? возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу;

? внутреннюю форму представления данных в ЭВМ;

? операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу.

В Pascal все типы данных разделятся на следующие группы:

? скалярные (к скалярным относятся типы данных, значения которых не содержат составных частей, то есть простые типы: целочисленный, вещественный, логический, символьный, перечисляемый, интервальный (тип диапазон));

? ссылочный (являются указателями на данные других типов);

? структурированные (в своей основе имеет один или несколько скалярных типов данных: строковые, регулярные - массивы, множественные, комбинированные - записи, файловые);

? процедурные и объектные (используются в объектно-ориентированном программировании).

Рассмотрим скалярные типы данных. Они определяют упорядоченные множества значений. Ниже описаны скалярные типы, записанные по группам.

В Turbo Pascal пять предопределенных целочисленных типов: Shortint (короткое целое), Integer (целое), Longint (длинное целое), Byte (длиной в байт беззнаковый) и Word (длиной в слово беззнаковый). Каждый тип обозначает определенное подмножество целых чисел.

Byte. Диапазон значений типа: 0..255. Занимает размер памяти 1 байт.

Word. Диапазон значений типа Word: 0..65535. Занимает размер памяти 2 байта.

Shortint. Диапазон значений типа: -128…127. Занимает размер памяти 1 байт.

Integer. Диапазон значений типа: -32768..32767. Занимает размер памяти 2байта.

Longint. Диапазон значений типа: -2147483648…2147483647. Занимает размер памяти 4 байта.

К данными целого типа применимы следующие операции:

? сравнения ("=" равенство, "<>" неравенство, "<" меньше, "<=" меньше либо равно, ">" больше, ">=" больше либо равно);

? сложение (+);

? одноместный (унарный) плюс (+);

? вычитание (-);

? одноместный (унарный) минус (-);

? умножение (*);

? деление на цело (получение частного) (DIV);

? получение остатка от деления на цело (для беззнаковых второй операнд должен быть положительным) (MOD);

? логический сдвиг влево (ShL);

? логический сдвиг вправо (ShR).

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

К вещественному типу относится подмножество вещественных чисел, которые могут быть представлены в формате с плавающей точкой с фиксированным числом цифр. Имеется пять видов вещественных типов: вещественное (Real), с одинарной точностью (Single), с двойной точностью (Double), с повышенной точностью (Extended) и сложное (Comp). Действия над типами с одинарной точностью, с двойной точностью и с повышенной точностью и над сложным типом могут выполняться только при наличии математического сопроцессора.

Real. Диапазон значений типа: 2.9E-39..1.7E+38 (здесь и далее значения приводятся по абсолютной величине). Данные типа Real имеют точность 11-12 значащих цифр после запятой. Занимают размер в памяти 6 байт.

Single. Диапазон значений типа: 1.5E-45…3.4E+38 . Точность 7-8 значащих цифр после запятой. Занимают размер в памяти 4 байта.

Double. Диапазон значений типа: 5.0E-324...1.7E+308. Точность 15-16 значащих цифр после запятой. Занимают размер в памяти 8 байт.

Extended. Диапазон значений типа: 3.4E-4932...1.1E+4932. Точность 15-16 значащих цифр после запятой. Занимают размер в памяти 10 байт.

Comp. Диапазон значений типа: -9.2E+18…9.2E+18. Это 64-битное целое число. Занимают размер в памяти 8 байт.

Над данными вещественных типов допустимы следующие операции:

? сложение (+);

? одноместный (унарный) плюс (+);

? вычитание (-);

? одноместный (унарный) минус (-);

? умножение (*);

? деление (получение частного) (/);

Множеством значений типа данных Char являются символы, упорядоченные в соответствии с расширенным набором символов кода ASCII. При вызове функции Ord(Ch), где Ch - значение символьного типа, возвращается порядковый номер Ch. Строковая константа с длиной 1 может обозначать значение константы символьного типа. Любое значение символьного типа может быть получено с помощью стандартной функции Chr(N), где N - порядковый номер символа кода ASCII. Над данными типа Char допустимы операции сравнения (= , <>, <, <=, >, >=).

Данные типа Boolean могут принимать два значения: True (Истина) и False (Ложь). Над данными типа Boolean допустимы следующие операции:

сравнения (=, <>, <, <=, >, >=);

? And (логическое И);

? Or (логическое ИЛИ);

? Xor (логическое исключающее ИЛИ);

? Not (логическое отрицание).

Перечислимые типы определяют упорядоченные множества значений через перечисление идентификаторов, которые обозначают эти значения. Упорядочение множеств выполняется в соответствии с последовательностью, в которой перечисляются идентификаторы. При указании идентификатора в списке идентификаторов перечислимого типа он описывается как константа для блока, в котором указано описание перечислимого типа. Типом этой константы является описанный перечислимый тип. Порядковый номер перечислимой константы определяется её позицией в списке идентификаторов при описании. Перечислимый тип, в котором описывается константа, становится ее типом. Первая перечислимая константа в списке имеет порядковый номер 0. Пример перечислимого типа:

Type

Number=(one, two, three, four);

Согласно этим описаниям one является константой типа Number. При применении функции Ord к значению перечислимого типа Ord возвращает целое число, которое показывает, какое место по порядку занимает значение в отношении других значений этого перечислимого типа. Согласно предшествующим описаниям, Ord(one) возвращает 0, Ord(two) возвращает 1 и так далее.

Тип диапазон представляет собой совокупность значений из порядкового типа, называемого главным типом. Тип диапазон задаётся минимальной и максимальной константой порядкового типа. Обе константы должны иметь один и тот же порядковый тип. Например: a..b. При этом считают, что a меньше или равно b (0..99; -128..127). Переменная типа диапазон имеет все свойства переменных главного типа, однако ее значение на этапе выполнения должно принадлежать указанному интервалу. Разрешение использования выражений-констант там, где стандартный Pascal допускает только простые константы, приводит к некоторой синтаксической неоднозначности. В следующем описании неверно задан тип диапазон:

const

X = 50; Y = 10;

type

Scale = (A - B) * 2..(A + B) * 2;

Согласно синтаксису стандартного Pascal, если определение типа начинается с круглой скобки, то это перечислимый тип. Однако Scale предназначен для определения типа диапазона. Поэтому необходимо переупорядочить первое выражение поддиапазона или задать другую константу, равную значению данного выражения, и использовать эту константу в определении типа:

type

Scale = 2* (A - B)..(A + B) * 2;

3.4 Стандартные функции языка Pascal

При описании стандартных функций будет использоваться следующий синтаксис:

Имя_функции>(<аргумент:тип_аргумента>):<тип_возвращаемого_значения>

Abs (X :Real): Real - возвращает абсолютное значение аргумента (|X|);

Abs (X :Integer): Integer - возвращает абсолютное значение аргумента (|X|);

ArcTan (X:Real): Real - возвращает арктангенс аргумента (arctg X).

Chr (A :Byte): Char - возвращает символ, код которого равен A.

Cos (X :Real): Real - возвращает косинус аргумента (cos X);

Exp (X :Real): Real - возвращает экспоненту аргумента (ex);

Frac (X :Real): Real - возвращает дробную часть аргумента;

Int(X:Real):Real - возвращает целую часть аргумента;

Ln (X :Real): Real - возвращает натуральный логарифм аргумента (ln X);

Odd (A:Integer):Boolean - возвращает True, если А нечетно.

Ord (A :Char): Byte - возвращает порядковый номер символа A;

Round (X:Real): Integer - возвращает результат округления аргумента до ближайшего целого;

Random (A:Integer): Integer - возвращает случайное число из интервала [0,A];

Sqr (X:Real): Real - возвращает квадрат аргумента (X2);

Sqr (X:Integer): Integer - возвращает квадрат аргумента (X2);

Sqrt (X:Real): Real - возвращает квадратный корень аргумента(sqrt(x);

Sin (X:Real): Real - возвращает синус аргумента;

Trunc (X:Real): Integer - отбрасывает дробную часть действительного аргумента;

UpCase (A :Char):Char - превращает строчные буквы латинского алфавита в соответствующие им прописные.

Для вычисления значений других функций следует пользоваться тождествами:

3.5 Построение арифметических выражений

При построении арифметических выражений используются унарные и бинарные арифметические операции.

Для унарной операции требуется один операнд.

Например:

x:= - a; {изменение знака значения переменной a}

x:= + a; {сохранения знака значения переменной a}

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

Например:

Запись на языке Pascal будет выглядеть так:

x:=(Sqr(a)+Sqrt(a+Sqr(cos(b))))/(Ln(Sqr(b))/Ln(c)-Sin(a/(b+Pi))/Cos(a

/(b+Pi)))/((Cos(a)+Abs(Sin(b)))/Exp(b-a)+1);

Оператор " := " называется оператором присваивания. Он предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, имя которой указано в левой его части. Переменная и выражение должны быть совместимы по типу. Его синтаксис:

Y:=2;

X:='Строка';

P:=V1;

Summa:=V2;


где

- X, Y, P, Summa - имена переменных, описанных в разделе описания переменных;

- 2, 'Строка' - значения заданные явно (своими изображениями);

- V1,V2 - выражения, значения которых нужно вычислить.

3.6 Встроенные константы

В Pascal констант значения, которых предопределены. Они называются встроенными.

Например:

MaxInt : Integer - возвращает число 32767, наибольшее значение типа Integer;

PI : Real - возвращает число П = 3.14159265358.

3.7 Элементы структурного программирования

Структурированная программа - это программа, составленная из фиксированного множества базовых конструкций. На основе операций, развилок и слияний строятся базовые конструкции: следование, ветвление, цикл. Применяя только эти три конструкции, можно реализовать алгоритм решения любой задачи.

Конструкция, представляющая собой последовательное выполнение двух или более операций, называется следованием.

Конструкция, состоящая из развилки, двух операций и слияния, называется ветвлением. Одна из операций может отсутствовать.

Конструкция, имеющая линии управления, ведущие к предыдущим операциям или развилкам, называется циклом.

Конструкции следование, ветвление и цикл можно представить как операции, так как они имеют единственный вход и единственный выход.

Произвольную последовательность операций можно представить как одну операцию.

Операция может быть реализована любым оператором языка Pascal (простым или составным), либо группой операторов, за исключением оператора перехода Goto.

В языке Pascal количество базовых конструкций увеличено до шести, это:

? следование;

? ветвление;

? цикл с предусловием;

? цикл с постусловием;

? цикл с параметром;

? выбор.

4. Литература

1. Епанешников А.М. Епанешников В.А. - "Программирование в среде Turbo Pascal 7.0". Москва "Диалог - МИФИ". 2000г. 368с.

2. Марченко А.И. Марченко Л.А. - "Программирование в среде Turbo Pascal 7.0". Киев "Век+". 1999г. 460с.

3. Попов В.Б. - "Turbo Pascal для школьников." Москва. "Финансы и статистика". 1998г. 464с.

4. Под редакцией Усковой О.Ф. "Программирование на языке Паскаль. Задачник". Санкт-Петербург. "Питер". 2002г. 334с.

5. В.Н.Пильщиков - "Сборник упражнений по языку Паскаль". Москва. "Наука". 1989г. 160с.


Подобные документы

  • Структура и основные элементы языка Turbo Pascal. Алгоритм составления простейших программ на Turbo Pascal. Применение условного оператора и сильноветвящихся алгоритмов. Циклы с предусловием и постусловием, сочетание циклических и условных операторов.

    реферат [64,0 K], добавлен 20.03.2016

  • История создания и развитие Pascal. Особенности пакета программирования Turbo. его возможности редактора текстов, компилятора и отладчика. Построения программы на языке Turbo Pascal, ее структура, типы алгоритмов, одномерные и многомерные массивы.

    курсовая работа [519,3 K], добавлен 25.06.2011

  • Строгая типизация и наличие средств структурного (процедурного) программирования императивного языка Pascal. Структура программы, выражения, строки. Правила и описание типов, процедур и функций, операторов ввода - вывода, модулей и подпрограмм.

    курсовая работа [37,3 K], добавлен 28.06.2008

  • Характеристика используемой операционной системы, языка программирования. Структура программы на языке Turbo Pascal 7.1. Операторы языка Turbo Pascal. Проведение сортировки записей. Алгоритмы программы и подпрограмм. Причины возникновения ошибок.

    курсовая работа [454,1 K], добавлен 13.06.2014

  • Ознакомление со структурой языка программирования Turbo-Pascal 7.0, его алфавитом, выражениями и простейшими конструкциями (метками, идентификаторами). Способы описания арифметических, вещественных, логических и символьных операций в программной среде.

    реферат [68,2 K], добавлен 07.02.2011

  • Символьный тип данных как составляющая языка программирования: управляющие символы, лексемы и разделители. Разработка программного обеспечения для практической реализации решения задач, содержащих символьные величины языка программирования Turbo Pascal.

    курсовая работа [37,7 K], добавлен 03.05.2012

  • История создания и развитие языка программирования Pascal, его версии. Особенности и порядок построения графика функции на языке Turbo Pascal с использованием декартовой системы координат. Блок схема алгоритма процедур, листинг и тестирование программы.

    курсовая работа [102,7 K], добавлен 23.12.2011

  • Изучение текстового режима языка программирования Turbo Pascal. Написание игры "Змейка" с помощью средств, процедур и функций языка программирование Turbo Pascal. Структурное и функциональное описание разработки. Листинг и общие примеры работы программы.

    контрольная работа [286,3 K], добавлен 10.04.2011

  • История появления и распространения Turbo Pascal - среды разработки для языка программирования Паскаль. Общий вид объявления файлового типа. Входная, выходная и промежуточная информация. Алгоритм решения задачи: словесный алгоритм, блок-схема, программа.

    курсовая работа [359,4 K], добавлен 05.01.2010

  • Разработка эскизного и технического проектов программы "Helpopr" (ввод, хранение и вывод данных на дисплей по запросу пользователя). Язык программирования Turbo Pascal. Описание алгоритма программы. Требования к компьютеру и программному обеспечению.

    курсовая работа [198,1 K], добавлен 03.02.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.