- •Вопрос 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);
