Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
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 (дата обращения: 21.11.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 

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