Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




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

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

Существует много версий языка Паскаль. Различия между ними порой весь велики. Так, базовая версия Вирта имеет многократно меньшие возможности, чем, скажем, версия Турбо Паскаль 7.0 (первая, фактически, – язык для обучен будущих программистов, а вторая – орудие профессиональных разработчиков прикладного программного обеспечения). Тем не менее, это версии одного языка, что, в частности, подтверждается их совместимостью «сверху вниз», т.е. любая программа, соответствующая «младшей» версии, соответствует и «старшей» исключением малозначащих синтаксических оговорок).

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

Программа 1

program KvadUravn;

var

a,b,c: real;

d,xl,x2: real;

begin

writeln;

writeln(‘введите a,b,c’); read(a,b,c);

d:=b*b-4*a*c;

if d<0 then

write('корней нет')

else

begin

xl: = (-b+sqrt(d))/ (2*a);

x2:=(-b-sqrt(d))/ (2*a);

write (1xl=xl, 'x2=',x2)

end end.

Схематически программа представляется в виде последовательности восьми разделов.

1. Заголовок программы.

2. Описание внешних модулей, процедур и функций.

3. Описание меток.

4. Описание констант.

5. Описание типов переменных.

6. Описание переменных.

7. Описание функций и процедур.

8. Раздел операторов.

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

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

Рассмотрим пример программы 2, вычисляющей длину окружности и площадь круга по данному радиусу.

Программа 2

program circle;

const

pi=3.14159;

var

r,s, l: real;

begin

writeln('введите радиус1); readln(r);

s:=pi*r*r; l:=2*pi*r;

writeln(1 площадь круга=',s:8:4);

writeln('длина окружности=',1:8:4)

end.

В этой программе можно выделить четыре раздела. Описание заголовка начинает­ся со служебного слова program, описание констант –const, описание перемен­ных – var, раздел операторов начинается с begin. Программа заканчивается слу­жебным словом end, после которого ставится точка. Описания величин и операторы друг от друга отделяются знаком «;». Для обозначения величин используются име­на. Они составляются из латинских букв и цифр, причем первым символом должна быть буква. В примере использованы имена величин – pi, г, s и 1.

Имя программы (в примере – circle) выбирается автором и составляется по такому же правилу.

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

Постоянные величины описываются в разделе констант по схеме:

const

<имя>=<константа>

В разделе констант может быть описано несколько постоянных величин, например:

const

pi=3.1415 9; k=-15; s='площадь';

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

Группа типов, значения каждого из которых можно перечислить в некотором списке, – скалярные типы. Для них определена порядковая функция ord(x) – номер значения х в списке (для целочисленного х ord (х)=х); функции pred (х) – значение в списке, предшествующее х, и succ(x) – значение в списке, следующее за х.

Упорядоченный тип – это тип, значения которого упорядочены в обычном смысле. К данным такого типа применимы операции отношения <, >, <= (меньше или равно), >= (больше или равно), =, <> (не равно). Для логического типа выполняется неравенство

false<true

Переменные описываются в разделе описания переменных по схеме:

var

<список имен переменных>: <тип>

Имена в списке разделяются запятой. В этом разделе может быть описано несколько переменных разного типа, например:

var

a,b,c: real; k,l: integer; p: boolean;

Над целыми величинами (тип integer) определены арифметические операции; * (умножение), div (деление нацело), mod (вычисление остатка отделения), +,- (сложение и вычитание); операции перечислены в порядке старшинства. Например:

25 div 4 = 6; 25 mod 4=1

Целый результат дают некоторые стандартные функции (аргумент функции за­ключается в круглые скобки):

abs (х) – абсолютная величина целого х;

sqr (х) – квадрат значения х;

trunc (х) – целая часть вещественной величины х;

round (х) – целое число, полученное из вещественного х по правилу округления;

random (х) – случайное целое число из интервала от 0 до х.

Например: trunc (4.7) =4; round (4. 7) =5; sqr(3)=9. Для данных типа byte определены те же операции и функции, что и для данных типа integer.

Над вещественными величинами определены операции: *, +, /, а также стандартные функции при вещественном или целом аргументе: abs (х), sqr (х), sin (х), cos (х), arctan (х), In (х), ехр (х), sqrt (х) – квадратный корень из х, int (х) – целая часть из х, random – случайное число из интервала от 0 до 1. Указанные операции и функции дают вещественный результат.

Над логическими величинами определены операции: not – отрицание, and – конъюнкция, or – дизъюнкция. Логическая функция odd(x) принимает значе­ние true, если целочисленное х является нечетным, и false, если четным.

Множество всех символов образуют символьные величины (тип char), которые являются упорядоченными, причем ‘A’<’B’<’C’<...<’Z’), ‘а’ < ‘b’ <... < ‘z’, ‘0’<’1’<...<’9’.

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

Эта роль выражений отражена в основном операторе языка – операторе при­сваивания. Он имеет следующий вид:

<имя переменной>:=<выражение>

Тип переменной и тип выражения должны быть согласованы (величины при­надлежат одному и тому же типу). Есть исключение: имя переменной может отно­ситься к типу real, а значение выражения – к типу integer.

Например: 1:=2*pi*r; р: = (а+b+с)/2; z:=sqrt(sqr(х)+sqr(у)).

В Паскале можно вводить с клавиатуры числовые и символьные данные. Име­ются две встроенные процедуры (подпрограммы) ввода:

1) read(<cnncoк переменных>); 2) readln(<список переменных>).

При выполнении процедуры read(xl,x2,...,xN) программа прерывается и компьютер ждет ввода с клавиатуры N значений переменных из списка х1, х2,..., xN. Эти значения – константы соответствующих типов – должны при вводе разде­ляться пробелами. Набор данных завершается клавишей ввода.

Процедура readln отличается от read только тем, что при завершении ввода курсор перемещается в начало следующей строки.

Например:

var a,b: real; с: char; d: integer; read (a, c, d, b);

Данные для ввода представляются следующим образом: 83.14 к 200 -7.15.

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

write(<список выражений>);

writeln (<список выражений>).

Процедура write (xl, х2,..., xN) печатает на экране значения выражений из списка x1, х2,..., xN.

Процедура writeln отличается от write тем, что переводит курсор в начало следующей строки. Для вывода на принтер используются те же процедуры с добав­лением служебного слова 1st перед списком выражений. Например: write (1st, 'нет решений').

На бумаге будет напечатан текст 'нет решений'.

Для управления печатью используются форматы данных. Пусть х – переменная типа real. Если не использовать форматы, то значение х будет выводиться в «плавающей» форме (типа 1.654887892Е-04). Форматы позволяют напечатать вещественное число в естественной форме. Пусть m, n – целые числа. Процедура write (x:m:n) выводит на экран значение переменной х в виде десятичной дроби, причем m определяет общее число выводимых символов, включая точку и знак числа, n – количество цифр после точки. Если количество выводимых символов меньше m, то перед числом добавляются пробелы.




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 512; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.025 сек.