
- •Федеральное агентство по образованию
- •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.
8.2.2. Неявное преобразование типов
Это преобразование типа происходит без явного указания на его необходимость. Преобразование происходит в следующих случаях:
При выполнении арифметических операций над целочисленными операндами преобразование происходит к т.н. общему типу в бинарных операциях.
В арифметических операциях смешаны целые и вещественные. Происходит преобразования целых в вещественные.
Одна и та же область памяти в программе переменно трактуется как значения разных типов.
Совмещение данных в памяти может произойти при использовании записей с вариантными полями, типизированных указателей, содержащих одинаковый адрес, а также при явном размещении данных разного типа по одному и тому же абсолютному адресу. Для размещения переменной по нужному абсолютному адресу она описывается с последующим зарезервированным словом ABSOLUTE, за которым помещается либо абсолютный адрес, либо идентификатор ранее определенной переменной. Абсолютный адрес указывается парой чисел типа WORD, разделенных двоеточием; первое число трактуется как сегмент, второе - как смещение адреса . Например:
b : byte absolute $0000:$0055;
w : longlnt absolute $128:$0;
Если за словом ABSOLUTE указан идентификатор ранее определенной переменной, то происходит совмещение в памяти данных разного типа, причем первые байты внутреннего представления этих данных будут располагаться по одному и тому же абсолютному адресу, например:
var
х : word;
у : word absolute x;
x и y – разные идентификаторы одного и того же значения. Изменение х равносильно изменению у, т.к. х и у находятся в одной ячейке памяти.
Формально размеры совмещаемых переменных не обязательно должны быть одинаковыми. Совмещение по имени переменной – это по сути, совмещение их начал. Поэтому можно использовать следующий прием:
var
st : string[30];
srlen : byte absolute st;
Однако не рекомендуется совмещать большую по длине переменную с меньшей:
var
srlen : byte;
sr : string absolute stlen;
Изменение st изменит не только stlen, но и значения тех переменных, которые будут объявляться после st.
9. Выражения в языке Паскаль
Выражение — это правило вычисления значения. В выражении участвуют операнды, объединенные знаками операций. Операндами выражения могут быть константы, переменные и вызовы функций. Операции выполняются в определенном порядке в соответствии с приоритетами, как и в математике. Для изменения порядка выполнения операций используются круглые скобки, уровень их вложенности практически не ограничен.
Результатом выражения всегда является значение определенного типа, который определяется типами операндов. Величины, участвующие в выражении, должны быть совместимых типов. Например, допускается использовать в одном выражении величины целых и вещественных типов. Результат такого выражения будет вещественным.
Ниже приведены операции Паскаля, упорядоченные по убыванию приоритетов.
1. Унарная операция not, унарный минус -, взятие адреса @.
2. Операции типа умножения: *, /, div, mod, and, shl, shr.
3. Операции типа сложения: +, -, or, xor.
4. Операции отношения: =, <, >, <>, <=, >=, in.
Функции, используемые в выражении, вычисляются в первую очередь.
Внимание. Константа и переменная являются частными случаями выражения.
Одно выражение от другого отличается : значением, типом операндов, типом операций и типом результата. Различают арифметические, логические и символьные выражения.
В арифметических выражениях используются в качестве операндов числа или символьные значения переменных и результатом является целое или вещественное число:
x + 4 - Sin(x);
где x - переменная, 4 - константа, Sin -вызов функции.
Логические выражения строятся с помощью логических переменных (констант) и логических операций, которые возвращают логические значения (операции отношения). Знаки операций логические или операции отношений. Результата - логический.
ПРИМЕР логического выражения: (a>b) or false and (c>d).
В символьных выражениях операндами служат строки. Единственная разрешенная операция – конкатенация строк.
Существуют две схемы вычисления логических выражений: полная и неполная. Полная схема означает, что выражения вычисляются полностью слева направо. По короткой схеме вычисление логических выражений прерывается, как только станет известным итоговый результат выражений (истина или ложь).
ПРИМЕР.
(1>2) and ((c>d) or (a<b)). - false.
При вычислении значения этого выражения по короткой схеме с самого начала ясно, какой результат имеет значение выражения (False).
Для выбора схем используется директива:
{$B+} -по полной схеме
{$B-} - по короткой схеме (по умолчанию).
Также можно установить флажок Complete Boolean evail, расположенного в окне настроек компилятора, Options Compiler.