Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Расписанные билеты (Pascal).doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
676.86 Кб
Скачать

X, y, Eps : Double ;

function BesselI0(x, Eps : Double) : Double ;

var

S, A, B, R: Double ;

begin

. . .

BesselI0 := S ;

end;

begin

writeln(‘x=? ’) ; readln(x);

writeln(‘Eps=? ’) ; readln(Eps);

y := BesselI0(x, Eps) ; writeln(‘y=’, y) ;

end.

Билет №12

Если задача в ходе такого последовательного разбиения свелась (необязательно за один шаг) сама к себе самой, имеет место рекурсия.

Примеры:

- ok - not ok

Полиномы Фибоначчи являются коэффициентами разложения в степенной ряд функции

, .

Полиномы Фибоначчи выражаются «сами через себя» при , но выражаются явно (дают тривиальный случай) при и :

, ,

Связь с числами Фибоначчи:

function Fib(n: integer; x: double): double;

begin

if n < 1 then

Fib := 0

else

if n = 1 then

Fib := 1

else

if n = 2 then

Fib := x

else

Fib := x*Fib(n-1, x) + Fib(n-2, x);

end;

Билет №13

Тип «Перечисляемый»

<Перечисляемый тип> : : =

(<Список имён значений>)

Первому из элементов <Списка имён значений> придаётся внутренний (недоступный пользователю) номер 0, второму – номер 1, и т.д.

Переменные типа «Перечисляемый»:

var

V1: (LeftDyrecton, RightDyrecton, BackDyrecton);

type

MyType2=(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

MyType4=(MyTrue, MyFalse);

var

MyVar2: MyType2;

MyVar3: boolean;

MyVar4: MyType4;

begin

for MyVar2 :=Monday to Friday do writeln(MyVar2); // Ошибка

for MyVar4 :=MyFalse to MyTrue do writeln(MyVar4); // Ошибка

for MyVar3 := False to True do writeln(MyVar3); // Выход: False True

end.

Замечание. boolean ≠ (False, True). Вообще говоря.

Замечание. Тип «Перечисляемый – порядковый тип.

Диапазон

<Диапазон> : : =

<Целое число 1> . . <Целое число 2>

Естественное требование:

<Целое число 1> не более, чем <Целое число 2>

Примеры.

1 . . 5

First . . Third

// Если выше по тексту было что-то наподобие:

// const First = 0; Third = 2;

Тип «Диапазон»

type <Имя типа> = <Диапазон> ;

Пример.

type MyType01 = –3 . . 72 ;

Переменные типа «Диапазон»

Примеры:

var

v1: 22 . . 44 ;

v2: MyType01 ;

const

v3: MyType01 = 6 ;

const

MyConst11 = 1; MyConst12 = 7;

type

MyType02 = MyConst11 .. MyConst12;

var

MyVar02: MyType02;

Замечание. Тип–Диапазон – порядковый тип.

Билет №14

Массив – упорядоченная совокупность данных одного типа.

Массив – переменная с индексом (со списком индексов).

<Объявление одномерного массива> : : =

<Имя переменной> : array[<Диапазон>] of <Тип элемента> ;

<Объявление нескольких многомерных массивов> : : =

<Список имён > : array[<Список диапазонов>] of <Тип элемента> ;

или

<Список имён > : <Тип-массив> ;

<Тип-массив> : : =

array[<Список диапазонов>] of <Тип элемента > ;

<Обращение к элементу массива> : : =

<имя массива> [ <Список значений индексов> ]

Билет №15

Открытые массивы

var

B: array[3..7] of double;

procedure P(var A: array of double);

begin

WriteLN('High(A)=', High(A), ' A[High(A)[=', A[High(A)]:0:2);

WriteLN('Low(A)=', Low(A), ' A[Low(A)[=', A[Low(A)]:0:2);

ReadLN;

end;

begin

B[3] := 3; B[4] := 4; B[5] := 5; B[6] := 6; B[7] := 7;

P(B);

end.

Динамические массивы

Динамические массивы не имеют фиксированного размера. Память под

массив выделяется, когда ему придается значение (!) или по отношению к нему

применяется процедура SetLength.

<Объявление динамического массива> ::=

<Имя массива>: array of <Тип>

Переменная <Имя массива> в действительности является указателем, однако,

знаком ^, процедурами New, Dispose пользоваться по отношению к этой

переменной нельзя.

Билет №16

Тип «Запись»

<Тип «Запись»> : : =

record

<Список имён полей 1>: <Тип 1>;

<Список имён полей 2>: <Тип 2>;

. . .

end;

<Обращение к полю переменой типа «Запись»> : : =

<Имя переменной>.<Имя поля>

или

with <Имя переменной> do <Оператор, содержащий Имя поля>

Пример:

{ TP7 }

program P0701;

type

DateTime = record // Delphi: TDateTime

Year, Month, Day, Hour, Min, Sec: word ;

end ;

MyRec = record

N: longint ;

FIO: string[40] ;

BirthDate: DateTime ;

end;

var

N: longint ;