Паскаль: точка повернення, підстановка аргументів, зберігання змінних, Детальна інформація

Паскаль: точка повернення, підстановка аргументів, зберігання змінних
Тип документу: Реферат
Сторінок: 7
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 19.3
Скачувань: 886
З ним наша функція виглядає так:

function NextRand : integer;

const V : integer = 0; const m=1001; a=21; c=57;

begin

V := ( a*V+ c ) mod m; NextRand := V

end;

Як видно, першим псевдовипадковим числом завжди буде 0. Але в задачі було потрібно, щоб перше число надходило "із зовнішнього світу". Змінимо функцію так, що при виконанні її першого виклику відбувається запит на введення першого числа з клавіатури, а при наступних – обчислення за рекурентним співвідношенням:

function NextRand : integer;

const V : integer = 0; First : Boolean = true;

const m=1001; a=21; c=57;

function Rand1: integer;

var t : integer;

begin

write('Задайте ціле від 0 до ', m-1, '>'); readln(t);

Rand1 := t

end;

begin

if First then

begin First := false; V := Rand1 end

else V := ( a*V+ c ) mod m;

NextRand := V

end;

Тепер можна записувати цю функцію та її виклики в програмах, де потрібно імітувати появу випадкових чисел. Проте краще помістити цю функцію в модуль (п.7.2 ) з ім'ям, наприклад, Randoms, транслювати його та у програмі вказувати лише його використання: uses Randoms.

Використання модулів дозволяє розв'язати нашу задачу взагалі без використання локальних статичних змінних. Справа в тім, що змінні, означені в модулі, як і змінні програми, є статичними. Тому модуль можна записати в такому вигляді:

Unit Randoms;

Interface

function NextRand : integer;

Implementation

const m=1001; a=21; c=57; var V : integer; First : Boolean;

function Rand1: integer;

The online video editor trusted by teams to make professional video in minutes