Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль_Конспект лекций.doc
Скачиваний:
41
Добавлен:
27.05.2015
Размер:
1.39 Mб
Скачать

8.4 Констант-массивы

Очень часто возникают сложности, связанные с вводом элементов массива, особенно во время отладки. Приходится по нескольку раз вводить большие объемы информации. Этого можно избежать, описав массив - константу в разделе Const.

Одномерный массив

<идентификатор — имя массива>: array [<диапазон изменения индекса> ] of <тип элементов> =

<список элементов, через запятую>);

Примеры:

Const

A : array [ 1 .. 5] of integer = (7, 3, 22, 4, 3) ;

B : array [ 1 .. 3] of real = (2.55, 7.1, 3.6) ;

C : array [ 1 .. 3] of char = (‘A’, ‘B’, ‘C’) ;

Многомерные массивы

<идентификатор - имя массива>: array [ <список диапазонов, через запятую>] of <тип элементов> = (<список элементов массива, разделённых по группам в круглых скобках>);

Для двухмерного массива, группы - это строки. Примеры:

Const

M : array [ 1 .. 3, 1 .. 3] of integer = ((1, 2, 4) , (1, 7, 8), (22, 8, 4)) ;

T : array [ 1 .. 2, 1 .. 2, 1 .. 2] of byte = (((1, 8) , (4, 4)), ((3, 2) , (5, 4))) ;

В нашем случае все массивы были описаны как типизированные константы, значит их использование в программе равноценно использованию обычных массивов - переменных. Однако надо помнить, что изменять элементы этих массивов нельзя.

Задача. В одномерном массиве определить количество последовательностей из нулей. Последовательности - это цепочки из одного или более нулей, разделенные ненулевыми элементами.

program p8_4;

const

n= 10;

A: array[l..n] of Integer = (0, 1, 0, 0, 5, 0, 1,0, 3, 0, 0, 0, 2) ;

var

zero: Boolean;

i, k: integer;

begin

zero:= false;

k:= 0;

for i : = 1 to n do

if A[i] = 0 then

if not zero then begin k := k + 1; zero:= true; end;

else zero:= false;

Writeln(' количество нулевых последовательностей = ', k);

end.

8.5 Генератор случайных чисел

8.5.1 Описание функции Random

В Object Pascal существует встроенный генератор случайных чисел – функция Random. Чтобы её использовать необходимо подключить библиотечный модуль CRT.

Если необходимо при каждом запуске программы, использующей Random, иметь различные последовательности случайных чисел, то перед обращением к Random следует обратиться к процедуре Randomize без параметров. Если этого не сделать, то при каждом запуске программы мы будем получать одну и туже последовательность случайных чисел. Это бывает полезно при отладке программы.

Обращение к функции: Random ( N ) , где Nцелое число типа word. Функция возвращает случайное целое число в диапазоне от 0 до N-1. Если требуется получить случайное целое число в интервале от a до b, то обращение к ней выглядит так: Random( ba +1) +a.

Пример:

program р8_5;

Uses Crt;

Var k : integer;

begin

Randomize;

Writeln(' Cлучайные числа в диапазоне от 0 до 255’);

repeat

k := Random(256);

Write(k : 3, ' ');

until KeyPressed;

end.

В этом примере будут выводиться на экран случайные целые числа, пока вы не нажмёте какую-либо клавишу.

Если, при обращении к нашей функции Random, диапазон не указан (обращение к функции без параметра), то возвращается действительное число в пределах от 0 до 1. Для получения случайного действительного числа в интервале от a до b обращение к функции следует скорректировать: (b-a)*Random + a.

В следующем примере будут выводиться действительные случайные числа в заданном диапазоне, пока не будет нажата любая клавиша.

program p8_6;

var

S : real;

begin

Write('Введи начало и конец диапазона случайных чисел:');

Readln(a, b);

Randomize;

Writeln(' Cлучайные числа в диапазоне от ', a, ' до ', b);

repeat

S := (b – a)*Random + a;

Write(S : 10 : 5, ' ');

until KeyPressed;

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]