- •Федеральное агентство по образованию
- •1. Метод проектирования программных средств
- •1.1. Техническое задание
- •1.2. Анализ задачи
- •1.3. Разработка алгоритма
- •1.4. Выбор языка программирования
- •2. Структуры алгоритмов
- •2.1. Алгоритм линейной структуры
- •2.2. Ветвления
- •2.3. Циклы
- •3. Еспд
- •3.1. Схемы алгоритмов, программ, данных и систем
- •1. Правила применения символов
- •2 Правила выполнения соединений
- •3 Специальные условные обозначения
- •3.2. Другие разделы еспд приведены в приложении №1.
- •4. Классификация языков программирования
- •Краткая история языков программирования
- •5. Работа в интегрированной среде Турбо Паскаль 7.0.
- •6. Основы Паскаля
- •6.1. Алфавит и лексемы
- •6.1.1. Имена, ключевые слова и знаки операций
- •6.1.2. Константы
- •6.1.3. Метки
- •6.1.4. Комментарии
- •6.1.5. Директивы компилятору
- •6.2. Структура программной единицы
- •6.3. Стиль записи программ на языке Паскаль
- •7. Типы данных в Паскале
- •7.1. Классификация типов данных в Турбо Паскале
- •7.2. Порядковые типы
- •7.2.1. Логический (булевский) тип
- •7.2.2. Целые типы
- •7.2.3. Перечисляемый тип
- •7.2.4. Тип – диапазон
- •7.2.5. Символьный тип
- •7.3. Вещественные типы
- •7.4. Строки
- •7.4.1. Основные понятия
- •7.4.2. Операции над строками
- •7.4.3. Процедуры и функции для работы со строками
- •8. Совместимость и преобразование типов
- •8.1. Совместимость типов
- •8.2. Преобразование (приведение) типов и значений
- •8.2.1. Явное преобразование типов и значений
- •8.2.2. Неявное преобразование типов
- •9. Выражения в языке Паскаль
- •10. Оператор присваивания
- •11. Простейший ввод-вывод на Паскале
- •11.1. Стандартные файлы Input и Output
- •11.2. Ввод с клавиатуры
- •11.3. Вывод на экран
- •12. Средства языка тр для циклов с известным числом повторений
- •12.1. Табулирование функций
- •13. Разветвляющиеся алгоритмы
- •13.1. Команда выбора case
- •13.2. Команда ветвления
- •14. Циклы с неизвестным числом повторений
- •14.1. Цикл с предусловием (While)
- •14.2. Цикл с постусловием (Repeat … until)
- •Приложение 1. «Стандарты еспд»
- •Руководство системного программиста гост 19503-79*
- •Общие положения
- •Содержание разделов
- •Руководство оператора гост 19.505 – 79* Общие положения
- •Содержание разделов
- •Описание программы гост 19.402-78
- •Программа и методика испытаний еспд. Гост 19.301-79
- •Общие положения
- •Содержание разделов
- •59 Лекции по курсу «Языки программирования» Часть I.
6.3. Стиль записи программ на языке Паскаль
Чтобы программа легко читалась, ее текст следует располагать ступенчато с помощью пробелов (отступов) и пустых строк. При этом надо помнить два простых правила:
конструкции языка (описания, операторы, блоки) одинакового уровня вложенности надо размещать с выравниванием влево по одной вертикальной линии.
конструкции языка с более высоким уровнем вложенности надо смещать вправо на 1-2 позиции относительно конструкций более низкого уровня вложенности.
Что такое уровень вложенности? Если некоторая конструкция языка является частью другой (вложена ей внутрь), то ее уровень вложенности на 1 больше, чем у внешней.
Самой внешней конструкцией является заголовок программы, начинающийся со слова Program. ЗаголовкиUses,Label,Type,Const,Var, заголовки процедур и функций в разделе описаний, словаbeginиend, отмечающие раздел действий программы, располагаются начиная с позиции, следующей вправо на 1 за позицией с которой начинается словоProgram.
Содержимое секций Uses,Label,Type,Const,Var, тела процедур и функций в разделе описаний, словаbeginиend, отмечающие раздел действий программы, располагаются начиная с позиции, следующей за позицией, с которой начинается заголовок соответствующей секции.
Внутри секций Type и Var надо так разместить текст, чтобы значки «:» и «=» располагались на одной вертикали. Описание каждой переменной и каждого типа должно занимать отдельную строку и заканчиваться комментарием.
Например:
Program P1;
uses crt;
type

t1= array[1..20] of char;
t2= string2=15].
t3= record a:byte; b: char; end;
var

v1 :t1;
v2 :t2;
v3 :t3;
begin
..........
end.
7. Типы данных в Паскале
Данные, с которыми работает программа, хранятся в оперативной памяти. Естественно, что компилятору необходимо точно знать, сколько места они занимают, как именно закодированы и какие действия с ними можно выполнять. Все это задается при описании данных с помощью типа. Тип данных однозначно определяет:
внутреннее представление данных, а следовательно, и диапазон их возможных значений;
допустимые действия над данными (операции и функции).
Например, целые и вещественные числа, даже если они занимают одинаковый объем памяти, имеют совершенно разные диапазоны возможных значений; целые числа можно умножать друг на друга, а, например, символы — нельзя.
Каждое выражение в программе имеет определенный тип. Компилятор использует информацию о типе при проверке допустимости описанных в программе действий.
7.1. Классификация типов данных в Турбо Паскале
На Паскале структура типов имеет следующий вид:

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

В соответствии с этим определением компилятор выделяет память для каждого имени в соответствии с типом. Причем, память выделяется в том порядке, в котором переменные описаны в разделе описания.
Например:
Var
a: byte; {занимает 1 байт}
b: integer; {занимает 2 байт}
c: Real; {занимает 6 байт}

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

Type
имя
= определение типа;
Type
M = record
a, b: byte:
end;
Однако можно объявлять типы прямо в секции описания переменных по следующему шаблону:
Var
имя1: описание нестандартного типа;
имя2: тип;
Например:
Var
v1: array [1..10] of char;
v2: byte;
Переменная v1 относится к тому типу, который вы определили при объявлении переменной, v2 - стандартный тип.
Константы, в отличие от переменных, объявляются в секции описания констант следующим образом:

|
|
|

Const
N = 2; целого типа
C = 'c'; символьного типа
D = 1.28; вещественный тип
E = $AD; целого типа
F = 'abcd'; строкового типа
В отличие от описания переменных, при описании констант тип явно не указывается, но он легко угадывается, исходя из формы записи констант (для простых констант).
В Паскале есть так называемые типизированные константы, для которых обязательно указывается тип. Форма их записи следующая:
Const
N: byte = 2;
C: char = 'c';
Хотя типизированные константы описываются в секции описания констант, они не являются на самом деле константами: значение типизированных констант, в отличие от простых констант, вы можете менять в программе сколько угодно раз. По своей сути типизированные константы - это переменные с заданные начальными значениями, причем начальные значения присваиваются еще на стадии компиляции.
Обычные константы используются для того, чтобы сделать вашу программу более читаемой и легче модифицируемой. Это достигается за счет того, что в программе вместо значений вы используете имена.


