
- •Билет №8 Вычисления с вещественными числами и машинное эпсилон №8
- •Машинное эпсилон может быть вычислено с помощью следующей программы:
- •Билет №9 Общая схема итерации и №9 рекуррентные вычисления
- •Вычисления с целыми числами
- •Билет№10 Схема интерации. Вычисление частичной суммы (вещ числа) №10
- •Общая формулировка задания
- •Пример выполнения задания
- •Вопрос №12 . Основные правила аналитической верификации программ №12
- •Вопрос №14 Ограничивающая ф-ция оператора цикла.Примеры №14
- •Билет№15. Теорема о цикле, его инварианте и ограничивающей функции №15
- •Билет №17 Теорема о цикле repeat- until ,его инварианте и ограничивающей его ф-ции. Аннотирование цикла и понимание аннотации №17
- •Вопрос№18 Алгоритм анализа двоичной записи натурального числа в двоичной сист счисления №18
- •Последовательности и файлы
- •Индуктивные функции
- •Стационарные значения индуктивных функций
- •Индуктивные расширения функций
- •Примеры задач с индуктивными функциями
- •Кванторы и запись утверждений о массивах
- •Правила вывода для цикла с параметром
- •Примеры программ работы с массивами
- •Решение последовательными обменами
- •Задача перестановки сегментов разной длины (второе решение)
- •Задача перестановки сегментов разной длины (третье решение)
- •Билет№35 Задача о равнинах (с испол массива) №35
- •Линейный поиск
- •Оптимизация программы бинарного поиска
- •Билет№44 Массивы в качестве параметров:открытые массивы №44 Сведения о массивах в языке Паскаль
- •Билет№45 Двумерные (многомерные массивы). Индексация. Исполбзование процедур. Задача: о МиниМаксе(матрица как массив строк) №45 обработка двухмерных массивов
Билет№44 Массивы в качестве параметров:открытые массивы №44 Сведения о массивах в языке Паскаль
Тип-диапазон (ограниченный или интервальный тип) является подмножеством своего базового типа, в качестве которого может выступать любой порядковый тип кроме типа-диапазона. Тип-диапазон наследует все свойства своего базового типа.
Пример (объявление типа-диапазона и переменных):
Type Colors = ( Black, Red, Green, Blue, Yellow, White );
Cols = Red .. Blue; { диапазон на базе типа Colors }
Letters = 'A' .. 'z'; { английские буквы : диапазон на базе типа char }
Digits = 0 .. 9; {цифры}
var z : Cols; c, d : Letters; x : Digits;
Массив – это упорядоченная структура данных одного типа, хранящая их последовательно. Доступ к элементу массива осуществляется через его индекс. Массивы можно описать следующим образом:
Type имя_типа = array [ диапазоны индексов ] of тип элемента массива;
Типом элементов массива может быть любой тип Турбо Паскаля (кроме файлового). Диапазоны индексов определяют размерность массива. Верхняя и нижняя границы диапазонов определяют кол-во эл-тов для соответствующей размерности.
Пример (способы описания одного и того же типа массива):
type {1)} Array1 = array ['a'..'z'] of Integer;
Array2 = array [1..15] of Array1;
Array3 = array [-5..5] of Array2;
{2)} Array3 = array [-5..5] of array [1..15] of array ['a'..'z'] of Integer;
{3)} Array3 = array [-5..5,1..15,'a'..'z'] of Integer;
var A : Array3; { Объявление и обращение к элементам массива: }
begin
Read(A[-4,3,'w']); Read(A[1][10]['g']); A[3][7,'h']:=100;
end.
Над массивами допускается применение только операции присваивания массивов (подмассивов) одинаковых типов. Остальные операции должны выполняться поэлементно.
Передача массивов в процедуры и функции.
Открытые параметры-массивы
Используемые в программе массивы могут передаваться при вызове процедур (ф-ций) в качестве фактических параметров. Их заголовок должен иметь соответствующий формальный параметр, при описании которого в общем случае необходимо использовать идентификатор, обозначающий тип массива, который ранее был введен в разделе описания типов (type). Рекомендуется описывать этот формальный параметр как параметр-переменную (с использованием var перед его именем), что исключит выделение новой области памяти для копии передаваемого массива.
type MyElems = Real;
MyArray = array [-5..5] of MyElems;
procedure Inp( var parameter : MyArray);
Турбо Паскаль имеет дополнительный способ передачи одномерного массива с помощью описания формального параметра в виде открытого параметра-массива. Это используется для передачи массивов произвольной размерности с однотипными элементами. Заголовок процедуры с открытым параметром-массивом имеет вид
procedure OpenArray( vector : array of MyElems);
Формальный параметр при этом является массивом эл-тов типа MyElems с нулевой базой, т. е. array [0..N-1] of MyElems; где N – количество эл-тов массива, которое можно определить с помощью стандартной ф-ции High: N в примере равно High(vector).