Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

..pdf
Скачиваний:
11
Добавлен:
15.11.2022
Размер:
2.96 Mб
Скачать

Магнитный диск

Оперативная память

Рис. 1.1

который записывается в файл, например Progl.pas. Затем выполняется компиляция и строится объектный модуль - файл Progl.obj, который далее преобразуется компоновщи­ ком в исполняемый модуль - файл Progl.exe. Модули Progl.pas, Progl.obj и Progl.exe хранятся на диске. Загруз­ чик переносит файл Progl.exe в оперативную память ЭВМ. После этого управление передается на программу, и она начинает выполняться. По окончании процесса происходит возврат в среду Pascal.

Контрольные вопросы

1.Что такое программа для ЭВМ?

2.Что такое языки программирования? Язык програм­ мирования Паскаль, его особенности.

3.Интегрированная оболочка Паскаля, ее возможности.

4.Зачем нужны трансляторы? Что такое компилятор, чем он отличается от интерпретатора?

5.Что такое отладка программы? Структура ошибок.

Для чего нужен контрольный пример?

Л екция 2 Основные элементы языка Паскаль

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

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

основанный на следующем:

-на построении алгоритмов из базовых структур, т.е. разделении глобальной задачи на более мелкие (локаль­ ные) задачи;

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

Успешному распространению языка способствовали персональные компьютеры (ПК). Фирма Boland International (США) разработала систему программирова­ ния Pascal для ПК. Паскаль - это не только язык и транс­ лятор с него, но еще и операционная оболочка, позволяю­ щая комфортно работать на Паскале.

Паскаль стал языком профессионального программи­ рования с универсальными возможностями. На его основе были созданы многие современные языки программирова­ ния (Си, Делфи и др.).

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

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

2.1. Слова в Паскале

Прежде чем давать основные элементы языка, рас­ смотрим программу для решения простого примера.

Пример 2.1. Вычислить площадь круга (S = nR2) для вводимого с пульта значения радиуса R.

Program Priml;

Const

PI=3.1416;

Text = ‘Иванов П, ПГС-14-1

Var

R:integer; {радиус}

S:real; {площадь}

Begin Read(R);

S:=PI*R*R;

Write(R,S);

End.

Здесь мы имеем дело с самым простым алгоритмом - линейным, когда операторы выполняются строго в поряд­ ке их следования.

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

Символы языка - это элементарные знаки, используе­ мые для составления любых текстов. Набор символов и образует алфавит. Алфавит ТР включает русский и латин­

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

Слова состоят из отдельных символов. Слова в тексте программы разделяются пробелами или специальными символами. Рассмотрим несколько видов слов, представ­ ленных на следующей схеме (рис. 2.1).

Слова

________________ I________________

Идентификаторы

Зарезервированные

(служебные)

____ (Имена)____

Стандартные Пользовательские

Рис. 2.1

Зарезервированные слова имеют определенное смыс­ ловое значение. Например, Program используется только для объявления имени программы. Другими зарезервиро­ ванными словами в нашей программе являются Var, Begin, End, смысл которых рассмотрим позже.

Имя (идентификатор). Эти слова служат для обозна­ чения каких-либо объектов программы. Этими объектами могут быть метки, константы, переменные, процедуры, функции. Существует два вида имен: стандартные имена и имена пользователя.

Стандартные имена служат для обозначения стан­ дартных объектов (стандартные процедуры, функции). В нашей программе встречаются имена стандартных проце­ дур - Write и Read, о которых поговорим позже, в лекции 3.

Имена пользователя состоят из латинских букв, цифр или символа «_» - подчеркивание. Другие символы недо­ пустимы (например, пробел и точка «.»). Длина слова мо­ жет быть произвольной. В качестве таких слов нельзя брать зарезервированные и стандартные слова. Пример имен пользователя: а, А, ЬЗ, Summa, beta, Alfa_5.

Имена R и S в нашей программе являются пользователь­ скими и обозначают соответственно радиус и площадь круга.

Комментарий - это любая последовательность симво­ лов, заключенных в {...} или (*...*). При компиляции ком­ ментарий игнорируется, поэтому он может стоять в любом месте программы. Удачное использование комментария - признак хорошего стиля программирования. Программист пишет комментарий не для компьютера, а для себя.

2.2.Представление числовых данных

вдесятичной системе в ПК

Целые десятичные числа записываются в обычной форме целого числа со знаком или без него.

Например: 25, -5678.

Вещественные числа с фиксированной точкой запи­ сываются в обычной форме десятичного числа с дробной частью. Разделителем целой и дробной части является символ «точка» («.»).

Например: 56.789, -0.000098.

Вещественные числа с плавающей точкой имеют форму <мантисса> Е <порядок>,

где мантисса - это целое или вещественное число с фикси­ рованной точкой (до 11 знаков), порядок - целое число со знаком или без.

Например:

0,07 = 7*10-2= 7Е-2 -12,56 = -0,1256*102 = -0Д256Е2 1(Г25= 1Е-25

2.3. Структура Паскаль-программы

Структура программы в целом имеет вид

Program <имя программьО;

Uses <имя1, имя2,.... >;

 

Label

I Раздел описаний

Const

Type

I

Var

^

Procedure(Function)

Раздел подпрограмм

Begin

 

<раздел onepamopoe>

 

End.

 

Программа состоит из заголовка, раздела описаний,

раздела подпрограмм и

функций {Procedure/Function)

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

Раздел Uses состоит из зарезервированного слова Uses

исписка имен подключаемых стандартных и пользова­ тельских библиотечных модулей.

Модуль в ТР - это библиотека констант, подпрограмм, которые можно использовать в своих программах. В си­ стему языка включено восемь модулей: System, Crt, Dos,

Graph, Graph3, Overlay, Printer, ТурбоЗ. Все они находятся в файле Turbo,tpl. Модуль System подключается по умол­ чанию, все остальные модули должен подключить про­ граммист с помощью зарезервированного слова Uses.

Например: Uses Crt, , Printer.

Кратко опишем назначение некоторых модулей. System - сердце Паскаля, содержит подпрограммы,

обеспечивающие работу всех остальных модулей системы. Crt - содержит средства управления клавиатурой и

дисплеем в текстовом режиме.

Printer - обеспечивает быстрый доступ к печатающему устройству.

Graph - обеспечивает работу дисплея в графическом режиме.

Раздел описаний носит характер описаний. Разделы Label, Const, Type, Var могут следовать в любом порядке.

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

В разделе подпрограмм размещаются тела пользова­ тельских подпрограмм. В языке существует два вида под­ программ: Procedure и Function. Об организации и вызове их поговорим позже.

Раздел операторов - это основная часть программы, представляющая собой последовательность операторов, заключенную в операторные скобки Begin-End.

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

Исполняемые операторы отделяются друг от друга символом «точка с запятой» («;»). В конце раздела опера­ торов ставится символ «точка» («.»).

Операторы подразделяются на простые и сложные (со­ ставные).

Оператор, не содержащий в себе никаких других опе­ раторов, называется простым. Например: S := PI*R*R;.

Сложный (составной) оператор - это группа опера­ торов, заключенная в операторные скобки Begin-End.

Формат сложного (составного) оператора:

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

<onepamopN>;

End;

2.4. Типы данных

Концепция типов данных является одной из централь­ ных в любом языке программирования. Любое нестан­ дартное имя данного (идентификатор) в программе должно быть описано в разделе описаний. Ему присваивается ка­ кой-либо тип.

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

- форму внутреннего (машинного) представления данного;

-множество значений, принимаемых этим данным;

-множество допустимых операций с этим данным.

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

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

Константа - это элемент данных, значение которого заранее известно и не изменяется в процессе выполнения программы. Описание констант происходит в разделе опи­ саний с помощью зарезервированного слова Const.

Формат описания констант:

Const <имя константы> = <значение константы>;

Тип константы распознается компилятором по виду записи этой константы в разделе описания.

Например:

 

Const

 

Р1=3,1416;

{вещественное число, тип - real}

Мах=100;

{целое число, тип - integer}

Name=’TaHH’;

{строка символов, тип - string}

А 1 { с и м

в о л , тип - char}

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

Формат описания переменной:

Var < имя > < тип >;

Рассмотрим базовые типы данных:

1.Целочисленный тип {Integer).

2.Вещественный тип {Real).

3.Символьный (литерный) тип {Char).

4.Строковый тип {String).

Целочисленный тип (Integer) - это все целые числа в диапазоне от -32 768 до 32 767. Данные этого типа зани­ мают в памяти ПК 2 байта.

Для описания данных целочисленного типа использу­ ется зарезервированное слово integer.

Вещественный тип (Real) - это все вещественные числа в диапазоне от -2 15 до 215-1. Мантисса может содер­ жать И значащих цифр. Данные этого типа занимают в памяти ПК 6 байтов.

Для описания данных вещественного типа использует­ ся зарезервированное слово real.

Символьный (литерный) тип (Char) - это любой элемент алфавита (буква, цифра, символ), заключенный в апострофы. Данные этого типа занимают в памяти ЭВМ 1 байт. Например: ’W’, **’, ‘8’

Для описания данных символьного типа используется зарезервированное слово Char {Character).

Строковый тип (String) - это любой набор символов, строка, заключенная в апострофы. Например: ’Информа­ тика’, ‘Петров Иван Сидорович’, ‘2013’

Для описания данных строкового типа используется зарезервированное слово String {Строка). Данные этого типа занимают в памяти (по умолчанию) ЭВМ до 256 байт.