Файл: Основы программирования на языке Pascal.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 30.06.2023

Просмотров: 51

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Символьный тип. Этот тип данных, обозначаемый ключевым словом char, служит для представления любого символа из набора допустимых символов. Под каждый символ отводится 1 байт. К символам можно применять операции отношения (<, <=, >,>=, =, <>), при этом сравниваются коды символов. Меньшим окажется символ, код которого меньше. Стандартных функций для работы с символами тоже немного:

Таблица 7 - Пояснение к операциям

Имя

Описание

Результат

Пояснения

ord

порядковый номер символа

Целый

ord('b') даст в результате 98

ord('ю') даст в результате 238

chr

преобразование в символ

Символьный

chr(98) даст в результате 'b'

chr(238) даст в результате 'ю'

pred

предыдущий символ

Символьный

pred('b') даст в результате 'a'

succ

последующий символ

Символьный

pred('b') даст в результате 'a'

upcase

перевод в верхний регистр

Символьный

upcase('b') даст в результате 'B'

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

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

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

к любому порядковому типу могут быть применены стандартные функции Pred и Succ, которые возвращают предыдущее и последующее значения соответственно;

к любому порядковому типу могут быть применены стандартные функции Low и High, которые возвращают наименьшее и наибольшее значения величин данного типа [6].

1.3 Операторы языка

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

Простые операторы. Простыми являются те операторы, которые не содержат в себе других операторов. К ним относятся:


- оператор присваивания;

- обращение к процедуре;

- оператор безусловного перехода GOTO;

- пустой оператор.

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

X := Y;

Z := А + В;

Res := (I>0) and (I<100);

I := Sqr(J) + I*К;

Оператор безусловного перехода GOTO. Использование меток

Оператор GOTO позволяет изменить стандартный последовательный порядок выполнения операторов и перейти к выполнению заданного оператора. Оператор, на который происходит переход, должен быть помечен меткой. Эта же метка должна быть указана и в операторе GOTO. Метки, используемые в Turbo Pascal, могут быть двух типов:

- целым числом в пределах от 0 до 9999;

- обычным идентификатором.

Все используемые метки должны быть перечислены в разделе объявления меток, начинающемся зарезервированным словом label, например: label 1, 2, Metka;

Одной меткой можно пометить только один оператор. Метка от помеченного оператора отделяется двоеточием. Использовать оператор GOTO следует крайне осторожно. Широкое его применение без особых на то оснований ухудшает понимание логики работы программы. Безусловный переход можно осуществлять далеко не из каждого места программы и не в любое место программы. Так, нельзя с помощью этого оператора перейти из основной программы в подпрограмму или выйти из подпрограммы, не рекомендуется осуществлять переход внутрь структурированного оператора, т. к. он может дать неправильный результат, и т. д.

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

Структурированные операторы. Структурированными являются такие операторы, которые включают в себя другие операторы.

К структурированным операторам относятся:

- составной оператор;

- условный оператор IF;

- условный оператор CASE;

- оператор цикла REPEAT;

- оператор цикла WHILE;


- оператор цикла FOR;

- оператор над записями WITH.

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

begin

<оператор 1>;

<оператор 2>;

. . .

<оператор N>

end;

Он может потребоваться в тех случаях, когда в соответствии с правилами построения конструкций языка можно использовать ОДИН оператор, а выполнить нужно несколько действий. В такой составной оператор входит ряд операторов, выполняющих требуемые действия. В дальнейшем везде, где будет указываться, что можно использовать один оператор, им может быть и составной оператор. Отдельные операторы внутри составного оператора отделяются друг от друга точкой с. Так как завершающее составной оператор слово end не является отдельным предложением, то перед ним точку с запятой можно не ставить, в противном случае компилятор будет считать, что перед словом end стоит пустой оператор. Можно считать, что и само тело программы, т. к. оно заключено в операторные скобки begin и end, тоже является составным оператором.

Условный оператор IF. Оператор IF реализует алгоритмическую конструкцию РАЗВИЛКА и изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия. Существует два варианта оператора:

if S then A

else В; {полная развилка}

и

if S then А; {укороченная развилка}

В этих операторах:

S - Некоторое логическое выражение, истинность которого проверяется;

A - Оператор, который выполняется, если выражение S истинно;

B - Оператор, который выполняется, если выражение S ложно.

Так как условный оператор IF является единым предложением, ни перед then, ни перед else точку с запятой ставить нельзя. Примеры использования оператора:

if X < 0 then X := -Y;

if X < 1.5 then Z := X + Y else Z := 1.5;

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

Оператор цикла WHILE. Оператор цикла WHILE организует выполнение одного оператора неизвестное заранее число раз. Выход из цикла осуществляется, если некоторое логическое выражение окажется ложным. Так как истинность логического выражения проверяется в начале каждой итерации (т. е. раньше, чем выполняется тело), тело цикла может не выполняться ни разу.

Оператор цикла FOR. Оператор цикла FOR организует выполнение одного оператора заранее известное число раз. Существует два варианта оператора:


for <переменная цикла>:=<начальное значение> to <конечное значение> do <оператор>;

for <переменная цикла>:=<начальное значение> downto <конечное значение> do <оператор>;

В этих операторах:

<переменная цикла> - переменная порядкового типа;

<начальное значение> - выражение (порядкового типа), определяющее начальное значение переменной цикла;

<конечное значение> - выражение (порядкового типа), определяющее конечное значение переменной цикла (при этом значении тело цикла (т е <оператор>) выполняется последний раз);

<оператор> - выполняемый оператор.

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

Цикл действует таким образом:

- Сначала вычисляются и запоминаются начальное и конечное значения.

- Далее переменной цикла присваивается начальное значение.

- Затем значение переменной цикла сравнивается с конечным значением.

Причём, пока параметр цикла меньше или равен конечному значению (в первом варианте оператора) или больше или равен конечному значению (во втором варианте), выполняется очередная итерация; в противном случае происходит выход из цикла. Выполнение очередной итерации включает в себя сначала выполнение <оператора>, а затем

- присваивание переменной цикла следующего большего значения (в первом варианте оператора) или следующего меньшего значения (во втором варианте).

Естественно, что, если в первом варианте <начальное значение> больше чем

<конечное значение> или во втором варианте меньше чем <конечное значение>,

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

Использование стандартных процедур Break и Continue в операторах циклов REPEAT, WHILE и FOR. В версии 7.0 в циклах REPEAT, WHILE и FOR можно использовать две стандартные процедуры

- Break и Continue. Процедура Break позволяет досрочно выйти из цикла, не дожидаясь выполнения условия выхода. Процедура Continue позволяет начать новую итерацию цикла, даже если предыдущая не завершена [7].

Глава 2 Сравнение языков PASCAL и С

2.1 Преимущества и значение С


Язык программирования C был разработан в лабораториях Bell Labs в период с 1969 по 1973 годы. Согласно Д. Ритчи, самый активный период творчества пришёлся на 1972 год. Язык назвали «C», потому что многие его особенности берут начало от предшественника - языка «В»

Язык C быстро приобрел огромную популярность, как один из наиболее важных и популярных языков программирования. Программисты отдают Ему всё больше и больше предпочтения, чем всем другим языкам уже после первого знакомства с ним. При свободном владении языком C перед вами откроется возможность наиболее глубокой оценки его преимуществ. Сейчас авторы упомянут лишь некоторые из них, описанные в [1].

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

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

Переносимость/мобильность. Переносимость кода с одной вычислительной системы на другую возможно с небольшими изменениями, либо вовсе без них. Если изменения все же требуются, то это достигается редактированием «header» файла, который сопровождает главную программу. Язык C предоставляет уникальные возможности для переноса программ. Компиляторы с данного языка реализованы почти на 40 типах вычислительных систем, начиная от- 8-разрядных микропроцессоров и кончая CRAY-1 одним из самых мощных в настоящее время суперкомпьютеров.

Мощность и гибкость. Значительная часть мощной и гибкой операционной системы UNIX написана на C. Примером могут служить компиляторы и интерпретаторы языков: Fortran, APL, Pascal, Lisp, Logo и Basic. Поэтому, при использовании компилятора Fortran в системе UNIX, конечная программа в итоге получается с помощью некоторой подпрограммы, написанной на C. Кроме того, технические и физические задачи легче решать при помощи языка C.

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

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