- •Вопрос 1 Типы данных, преобразование типов.
- •Вопрос 2 Массивы, как параметры функций и процедур
- •Вопрос 3. Условный оператор. Логические выражения
- •Вопрос 4. Функции и их использование
- •Вопрос 5. Оператор альтернативного выбора.
- •Вопрос 6 Оператор цикла со счетчиком.
- •Вопрос 7 Оператор цикла с предусловием.
- •Вопрос 8 Оператор цикла с постусловием.
- •Вопрос 9 Логические операторы и логические выражения. Тип Boolean.
- •Вопрос 10 Одномерные и двумерные массивы.
- •Вопрос 11. Условный оператор.
- •Вопрос 12. Процедуры. Глобальные и локальные переменные
- •Вопрос 13. Строковые переменные. Процедуры и функции для работы со строками.
- •Вопрос 14. Двумерные массивы и вложенные циклы.
- •Вопрос 15. Структура программы в языке Pascal Заголовок программы
- •Раздел меток (label)
- •Раздел констант (const)
- •Раздел типов (type)
- •Раздел процедур и функций
- •Раздел действий (операторов)
- •Вопрос 16 Операторы присваивания, ввода, вывода. Соответствие типов.
- •Вопрос 17 Записи. Синтаксис описания записей.
- •Вопрос 18 Сравнение массивов и записей. Работа с полями записей.
- •Вопрос 19 Символьные переменные Операции и функции для работы с ними.
- •Вопрос 20 Арифметические выражения. Стандартные математические функции.
- •Вопрос 21. Типизированные файлы. Процедуры и функции для работы с ними.
- •Вопрос 22. Типы файлов. Процедуры и функции для работы с ними
- •Вопрос 23. Текстовые файлы. Процедуры и функции для работы с ними.
- •Вопрос 24. Арифметические и логические операции и их приоритет
- •Xor логическое «или исключающее»
- •Вопрос 25. Область видимости переменных.
- •Вопрос 26 Механизмы передачи параметров процедурам.
- •Вопрос 27 Запись и чтение файлов. Открытие и закрытие файлов.
- •Вопрос 28 Понятие алгоритма. Линейный, разветвляющийся, циклический алгоритмы.
- •Вопрос 29 Структурированные типы: массивы, строки, записи, файлы.
Вопрос 1 Типы данных, преобразование типов.
Базовые типы – типы, определяемые в языке программирования.
Конструируемые типы – типы, которые задаются программистом.
Например переменные базовых типов могут быть определены в разделе описания переменных
Конструируемые типы так же могут быть описаны в разделе описания переменных
Типы данных, конструируемые программистом, описываются в разделе Type по следующему шаблону:
Type
<имя_типа> = <описание_типа>;
Базовые типы данных являются стандартными, поэтому нет нужды описывать их в разделе Type.
Однако при желании это тоже можно сделать, например, дав длинным определениям короткие имена. Скажем, введя новый тип данных
Неявное преобразование типов
Тип результата арифметических операций (а следовательно, и выражений) может отличаться от типов исходных операндов.
Если в некоторой операции присваивания участвуют два типа данных совместимых, но не совместимых по присваиванию, то тип присваиваемого выражения автоматически заменяется на подходящий.
Явное преобразование типов
Тип значения можно изменить и явным способом:
просто указав новый тип выражения.
Пример:
a:= byte(b);
В этом случае переменной а будет присвоено значение, полученное новой интерпретацией значения переменной b.
Функции округления:
trunc real -> integer
round real -> integer
Функция преобразования строки в число
val string -> byte/integer/real
Получение символа по заданному ASCII-коду
сhr byte -> char
Преобразование порядковых типов
ord <порядковый_тип> -> longint
Вопрос 2 Массивы, как параметры функций и процедур
Подпрограмма - это отдельная функционально независимая часть программы. Любая подпрограмма обладает той же структурой, которой обладает и вся программа.
Статический массив – упорядоченная последовательность фиксированного количества переменных одного типа, имеющая общее имя.
Параметры-значения передаются основной программой в подпрограмму через стек в виде их копий и, следовательно, собственный параметр программы подпрограммой измениться не может.
Параметр-значение указывает в заголовке подпрограммы своим именем и через двоеточие - типом. Тип параметра-значения может быть любым за исключением файлового.
Если параметров - значения одного типа несколько, их можно объединить в одну группу, перечислив их имена через запятую, а затем уже указать общий тип. Как отмечалось выше, отдельные группы параметров отделяются друг от друга точкой с запятой.
Пример.
procedure Inp ( Max, Min: real ; N: Word );
function Mult (X, Y: integer): real;
В качестве фактичного параметра на месте параметра-значения при вызове подпрограммы может выступать любое выражение совместимого для присваивания типа, не содержащее файловую компоненту, например:
Inp(Abs (Z), - Abs (T), 2 * K);
так как в списке формальных параметров фактически объявляется тип-диапазон, указывающий границы индексов массива.
Если мы хотим передать какой-то элемент массива, то проблем, как правило, не возникает, но если в подпрограмму передается весь массив, то следует первоначально описать его тип. Например:
type
atype = array [1..10]of Real;
Procedure S (a: atype);