Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

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

Покупка
Артикул: 801757.01.99
Доступ онлайн
129 ₽
В корзину
В пособии (часть 1) рассматриваются основные понятия языков структурного программирования на примере языка Паскаль, описываются различные типы данных, набор операторов для реализации базовых алгоритмических структур, приведены примеры разработки программ, задания для самостоятельного решения.
Комарова, Е. С. Практикум по программированию на языке Паскаль. Часть 1 / Е. С. Комарова. - 2-е изд., стереотипное - Москва : Директ-Медиа, 2019. - 85 с. - ISBN 978-5-4499-0163-7. - Текст : электронный. - URL: https://znanium.com/catalog/product/1985738 (дата обращения: 19.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Е. С. Комарова

ПРАКТИКУМ  
ПО ПРОГРАММИРОВАНИЮ 
НА ЯЗЫКЕ ПАСКАЛЬ 

Учебное пособие 

Часть 1

Направления подготовки: 01.03.02 (010400.62)  
Прикладная математика и информатика,  
02.03.02(010300.62) Фундаментальная информатика 
и информационные технологии 

Москва
Берлин 
2019 

Второе издание, стереотипное

УДК 681.3(075) 
ББК 32.9я7 
        К63 

Рецензент: 
Н. Д. Зюляркина, канд. физ.-мат. наук, доц. кафедры  
безопасность информационных систем НИУ ГОУ ВПО «ЮУрГУ» 

Составитель: 
Е. С. Комарова, старший преподаватель кафедры математики, 
экономики и управления 

Комарова, Е. С.

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

 учебное пособие. Часть 1 / Е. С. Комарова. – 2-е изд., стер. – 
 Москва ; Берлин :  Директ-Медиа, 2019. – 85 с.  

ISBN 978-5-4499-0163-7 

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

УДК 681.3(075) 
ББК 32.9я7 

ISBN 978-5-4499-0163-7 
© Комарова Е. С., текст, 2019 
© Издательство «Директ-Медиа», оформление, 2019 

1. Линейные алгоритмы

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

промежуточного 
значения, 
называются 
промежуточными. 
Необходимо указывать имена и типы данных – целый, вещественный, 
логический и символьный. 
Имена 
в 
языках 
программирования 
принято 
называть 
идентификаторами. 
Есть 
идентификаторы 
переменных, 
констант, типов, функций и т. д. 
С понятием величины связаны следующие характеристики (атрибуты): 
•

идентификатор – это ее обозначение и место в памяти;
•
тип – множество допустимых значений и множество применимых 
операций к ней; 
•
значение – динамическая характеристика, может меняться многократно 
в ходе исполнения алгоритма. Во время выполнения программы 
в каждый конкретный момент величина имеет какое-то значение или 
не определена. 
Постоянной называется величина, значение которой не изменяется 
(поскольку такое изменение запрещено) в процессе исполнения алгоритма, 
а остается одним и тем же, указанным в тексте алгоритма. 
Переменной называется величина, значение которой меняется (в общем 
случае, может изменяться) в процессе исполнения алгоритма. 
Тип выражения определяется типами входящих в него величин, а 
также выполняемыми операциями. В языке Pascal тип величины задают 
заранее, т. к. все переменные, используемые в программе, должны быть 
объявлены в разделе описания с указанием их типа. 
Различают переменные следующих простых типов: целые (Integer, 
Byte, ShortInt, Word, LongInt), вещественные (Real, Double, Single, 
Extended), логический (Boolean), символьный (Char), перечисляемый, 
диапазонный (интервальный). 

3 

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

Var 
D, C, N : Integer; 
LogPer : Boolean; 
A, B : Real; 
K : Char; 
Тип переменной определяет диапазон допустимых значений, принимаемых 
величинами этого типа; набор операций, допустимых над данной величиной; 
объем памяти, отводимой под эту переменную; способ представления величин в 
памяти компьютера. 
Каждый тип имеет свой идентификатор. 

Идентификатор 
Количество байт 
Диапазон (множество) 

значений
Операции 

Целые типы

integer
2
-32768..32767
+, -, /, *, div, mod, <=,
>=, <, >, <> 
byte
1
0..255

word
2
0..65535

shortint
1
-128..127

longint
4
-2147483648..2147483647

4 

В целом, иерархия типов в языке Pascal следующая: 

Вещественные типы

real
6
2,9×10–39 – 1,7×1038
+, –, /, *, >=, <=, =, <>, 
<, > 
single
4
1,5×10–45 – 3,4×1038

double
8
5×10–324 – 1,7×10308

extended
10
3,4×10–4932 – 1,1×104932

Логический тип

boolean
1
true, false
Not, And, Or, Xor, >=, 
<=, =, <>, <, >

Символьный тип

char
1
все 
символы 
кода 

ASCII

+, >=, <=, =, <>, <, >

 
Обмен информацией с компьютером предполагает использование 
определенных средств ввода-вывода. В ЭВМ основным средством ввода 
является клавиатура, вывода – дисплей. 
Процедура, которая в режиме диалога с клавиатуры присваивает 
значение для переменной величины, называется процедурой ввода. 
В языке Pascal она выглядит следующим образом: 
 
 
Read (список переменных); 
Например, 
 
Var 

 
 
A : Real; B : Integer; C : Char; 

 
Begin 

 
 
Read(A, B, C) 

 
End. 

Читается: «Ввести вещественную А, целую В и символьную С». 
Как только в программе встречается вызов процедуры Read, ЭВМ 
приостанавливает выполнение этой программы и ждет, пока пользова-
тель введет с клавиатуры соответствующие значения, которые будут 
присваиваться переменным, перечисленным в списке ввода, в порядке 
перечисления. Значения вводимых данных одновременно отображают-
ся на экране дисплея. После нажатия клавиши enter, когда все 
переменные примут свои значения из входного набора данных, опре-
деленного пользователем, выполнение программы продолжается с 
оператора, следующего за Read. 
В списке ввода значения разделяются между собой пробелом (либо 
каждое вводится в отдельной строке). Присваивание значений из вход-
ного потока выполняется слева направо в соответствии с порядком 
следования переменных в процедуре Read. Процедура ReadLn похожа 
на Read. Разница лишь в том, что ReadLn реагирует на конец строки, и 
в случае его обнаружения происходит сразу переход к следующей 
строке. 
Примеры ввода данных с помощью процедуры ReadLn: 
 
 
ReadLn(A, B, C); 

 
 
ReadLn(X); 

 
 
ReadLn(LogPer); 

5 

Процедура, которая позволяет выводить значения переменных (вы-
ражений) на экран, называется процедурой вывода. 
В Pascal эта команда выглядит следующим образом 
Write (список выражений) 
Например 
       Write ('Выходное значение: ', C); 
В списке вывода может быть либо одно выражение, либо последо-
вательность выражений, разделенных между собой запятыми. 
Процедура Write осуществляет вывод значений выражений, приве-
денных в его списке, на текущую строку до ее заполнения. С помощью 
процедуры WriteLn реализуется вывод значений выражений, приведен-
ных в его списке, на одну строку дисплея и переход к началу 
следующей строки. 
Примеры вывода данных: 

Write(A, B, C); 
WriteLn('Корнем уравнения является ', X); 
WriteLn(LogPer); 
Для управления размещением выводимых значений процедуры 
Write и WriteLn используются с форматами. Под форматом данных 
понимается расположение и порядок кодирования отдельных полей 
элементов данных. 
Процедура вывода с форматом для целого типа имеет вид: 

WriteLn(A : N, B : M, C : L); 
Здесь N, M, L – выражения целого типа, задающие ширину поля 
вывода значений. 
При выводе вещественных значений Write(R) без указания формата 
выводит вещественное R в поле шириной 18 символов в форме с пла-
вающей 
запятой 
в 
нормализованном 
виде. 
Для 
десятичного 
представления значения R применяется оператор с форматами вида 
WriteLn(R : N : M). В десятичной записи числа R выводится M  
(0 ≤ M ≤ 24) знаков после запятой, всего выводится N знаков. 
Примеры: 

WriteLn(N : 4); 
WriteLn(K : 10 : 5, S : 7 : 3); 
Любая программа состоит из двух частей: 
1.
Раздел описания данных
2.
Раздел описания действий
Общая структура программы на Pascal такова: 
 
Program имя программы; {заголовок} 

         {раздел описаний} 
 
Const  
Константа1 = значение;  {объявление констант} 
Константа2 = значение; 
... 
КонстантаN 
=
значение;

 

 
Type ...;            {объявление типов} 

 
Var  
СписокПеременных1 : Тип; {описание переменных} 

 
 
СписокПеременных2 : Тип; 

 
 
... 

 
 
СписокПеременныхN : Тип; 

 
Label СписокМеток; 

 
Function ... 

 
Procedure ... 

 
 
Begin 

 
 
{раздел операторов} 

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

Program имя программы; {заголовок} 
 
Var  
СписокПеременных1 : Тип; {описание переменных} 

 
 
СписокПеременных2 : Тип; 

 
 
... 

 
 
СписокПеременныхN : Тип; 

 
 
Begin 

 
 
{раздел операторов} 

 
End. 

Комментарии. В языке Паскаль (Pascal), как и во многих других 
языках программирования существуют комментарии. Комментарии 
разделяют на строчные и блочные. Строчный комментарий обычно 
комментирует одну строку и начинивается с двух бэкслэшей (//). 
Блочный комментарий способен закомментировать несколько строк 
одновременно (обозначение {}). 
Пример: 
 Program comments; 
 Var a,b:Integer; // тут строчный комментарий 
 Begin 
  // WriteLn('Введите число'); 
 
a:=0; 
 
b:=10; 
 
for a:=1 to 10 do 
 
 begin 
 
  Write (a*b, ' '); 
 
 end; 
 
{ Это блочный комментарий 
 
for a:=1 to 10 do 
 
 begin 

7 

 
  Write (a*b, ' '); 
 
 end; 
 
 все что внутри не исполняется} 
 End. 
Всякая Паскаль-программа есть последовательность операторов, которые 
подразделяются на простые и структурные. Каждый оператор 
имеет определенную структуру и записывается с использованием служебных 
слов и символов языка. Говорят, что оператор характеризуется 
своим синтаксисом и семантикой. 
Оператором называется команда машине осуществить некоторый 
шаг алгоритма. Операторы делаться на простые и структурированные. 
Сначала познакомимся с простыми операторами. 
Простые: 
1. Пустой оператор. Он не содержит никаких символов и не выполняет 
никаких действий. Используется для организации перехода к 
концу блока в случаях, если необходимо пропустить несколько операторов, 
но не выходить из блока. 
2. Оператор безусловного перехода. Оператор безусловного перехода (
go to) означает «перейти к» и применяется в случаях, когда 
после выполнения некоторого оператора надо выполнить не следующий 
по порядку, а какой-либо другой, отмеченный меткой, оператор. 
Общий вид: go to <метка>.  
Метка объявляется в разделе описания меток и состоит из имени и 
следующего за ним двоеточия. Имя метки может содержать цифровые 
и буквенные символы, максимальная длина имени ограничена 127 зна-
ками. Раздел описания меток начинается зарезервированным словом 
Label, за которым следует имя метки.  
Пример.  
Program primer;  
Label 999, metka;  
Begin  
….  
Go to 999;  
…  
999: write (‘ Имя’);  
…  
Go to metka;  
….  
Metka: write(‘Фамилия’);  
…  
end.  
3. Оператор присваивания – один из самых простых и наиболее 
часто используемых операторов в любом языке программирования, в 
том числе и в Pascal. Он предназначен для вычисления нового значе-

8 

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

     переменная := выражение; 
Оператор выполняется следующим образом. Вычисляется значение 
выражения в правой части присваивания. После этого переменная, ука-
занная в левой части, получает вычисленное значение. При этом тип 
выражения должен быть совместим по присваиванию с типом переменной! Как 
отмечалось ранее, тип выражения определяется типом операндов, вхо-
дящих в него, и зависит от операций, выполняемых над ними. 
Примеры присваивания: 
 
 
X := (Y + Z) / (2 + Z * 10) – 1/3; 

 
 
LogPer := (A > B) And (C <= D); 
Для операций сложения, вычитания и умножения тип результата в 
зависимости от типа операнда будет таким: 

Операнд 1 Операнд 2 Результат

Integer
Integer
Integer

Integer
Real
Real

Real
Integer
Real

Real
Real
Real

Для операции деления тип результата в зависимости от типа опе-
ранда будет таким: 

Операнд 1 Операнд 2 Результат

Integer
Integer
Real

Integer
Real
Real

Real
Integer
Real

Real
Real
Real

В Pascal есть операции целочисленного деления и нахождения 
остатка от деления. При выполнении целочисленного деления (опера-
ция div) остаток от деления отбрасывается. 
Например, 15 div 3 = 5; 18 div 5 = 3; 123 div 10 = 12, 7 div 10 = 0. 
С помощью операции mod можно найти остаток от деления одно-
го целого числа на другое. 
Например, 15 mod 3 = 0; 18 mod 5 = 3; 123 mod 10 = 3,  
7 mod 10 = 7. 
При записи алгебраических выражений используют арифметиче-
ские операции (сложение, умножение, вычитание, деление), функции 
Pascal, круглые скобки. 
Порядок действий при вычислении значения выражения: вычисля-
ются значения в скобках; 
1. вычисляются значения функций; 
2. выполняется унарные операции (унарный минус – смена знака); 

9 

3. выполняются операции умножения и деления (в том числе це-
лочисленного деления и нахождения остатка от деления); 
4. выполняются операции сложения и вычитания. 
 
Встроенные математические функции языка Pascal 
 

Математическая запись Запись на Pascal Назначение

cos x
cos(x)
Косинус x радиан

sin x
sin(x)
Синус x радиан

ex
exp(x)
Значение e в степени x

[x]
trunc(x)
Целая часть числа x

|x|
abs(x)
Модуль числа x

x2
sqr(x)
Квадрат числа x

х
 
sqrt(x) 
Квадратный корень из x 

{x}
frac(x)
Дробная часть x

arctg x
arctan(x)
Арктангенс числа x

ln x
ln(x)
Натуральный логарифм x

π
Pi
Число π

Примеры записи математических выражений: 

Математическая запись
Запись на Pascal

1.
x2 – 7x + 6
Sqr(x) – 7 * x + 6

2. 
ху

у
х

+

−

1

 (Abs(x) – Abs(y)) / (1 + Abs(x * y)) 

Логический операнд – это конструкция соответствующего языка 
программирования, которая задает правило для вычисления одного из 
двух возможных значений: True или False. 
Чаще всего логические выражения используют в операторах 
присваивания или для записи того или иного условия. Составными ча-
стями логических выражений могут быть: логические значения (True, 
False); логические переменные; отношения. 
Например, 1) Y:=True; 2) Z:=False; 3) LogPer:=A > B; 4) Log1:=(A = 
B) And (C <= D). 
Как видно из примеров, отношение – это два выражения, разде-
ленных между собой знаком операции отношения (>, <, =, <>, <=, 
>=). Отношение является простейшей конструкцией логического вы-
ражения. Оно вычисляет результат True, если выполняется заданное 
соотношение, и False – в противном случае. 

10 

Доступ онлайн
129 ₽
В корзину