Студопедия

Главная страница Случайная лекция

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика






Ввод с помощью датчика псевдослучайных чисел

Читайте также:
  1. Автоматизация работы с помощью макросов
  2. Арифметические операции на множестве действительных чисел
  3. Буксовые узлы с датчиками компаниями SKF.
  4. В мире чисел
  5. Вектор функции 2-х скалярных аргументов. Предел. Дифференцирование. Понятие поверхности. Гладкие поверхности и их параметризация с помощью вектор функции.
  6. Выбор типа, тактности, чисел оборотов и цилиндров и расположения цилиндров двигателя
  7. Датчика рН, особенности построения вторичного прибора рН-метра
  8. Датчики на основе датчика угла
  9. Делимость целых чисел и деление с остатком в кольце целых чисел

End

Begin

Begin

Var

Type

Ввод с клавиатуры

Ввод элементов массива

Работа с одномерными массивами

Var

Var

Анонимное описание

Type

Var

Type

Var

I,j: integer; {индексы массивов x и y}

X,y: vector; {идентификаторы массивов}

vector = ARRAY [-10..10] of real;

I,j: integer;

X,y: vector;

3. Const N=100; {максимальное число элементов массива}

vector = ARRAY [1..N] of real;

При этом пользовательский тип не создается, массив и переменная-индекс описываются в разделе описания переменных. Синтаксис такого описания:

a: array [1..n] of real;

i: integer;

2. const n=100;

a: array [1..n] of real;

i: integer;

Предпочтительнее второй вариант.

При необходимости в программе можно описать массив констант:

const n=5;

a:=array [1..5] of real=(3.2,5,3.4,7,2);

При работе с массивами часто приходится организовывать выполнение одинаковых действий для всех элементов массива. Для этого используются операторы повторений. Чаще всего это счетный цикл, параметр которого одновременно является индексом элементов массива: for i:=1 to K do

Все алгоритмы обработки массивов можно условно разделить на:

1. Алгоритмы обработки элементов, удовлетворяющих условию

2. Алгоритмы вставки-удаления элементов

3. Алгоритмы поиска максимума-минимума

4. Алгоритмы сортировки

Перед рассмотрением этих алгоритмов рассмотрим ввод-вывод массива. В начале работы программы, когда выделяется память под размещение массива, элементы получают значения по умолчанию. Для числовых типов Паскаля это значение 0. Можно сказать, что в начале работы массив пустой. Поэтому для многих задач прежде, чем обрабатывать массив, необходимо заполнить его значениями, отличными от значений по умолчанию. Это действие называется ввод.

Ввод массива организуется поэлементно, т.е. для каждого элемента массива нужно выполнить операцию ввода или присваивания. Поэтому ввода массива – это цикл(чаще всего счетный), перебирающий все значения индексов.

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

const n=100; {максимальное число элементов массива}

vector = ARRAY [1..N] of real;

a:vector;

K: integer; {К – текущая длина массива}

Write(‘Введите текущую длину массива ‘); readln(k);

For i:=1 to k do {для каждого элемента массива}

Write(‘Введите ’,I,’-й элемент массива-‘);{комментарий}

Readln(a[i]); {ввод элемента массива}

End.

В этом способе используются процедура randomize и функция random, входящие в состав модуля System.

Процедура randomize инициализирует встроенный генератор случайных чисел случайным значением, которое получается от системного таймера. Используют эту процедуру обычно в начале программы, перед вызовом функции random. Если этого не сделать, то при многократных запусках программы будет генерироваться одна и та же последовательность чисел.

Функция random возвращает случайное число. Ее можно вызывать:

§ без параметра - она будет выдавать вещественные числа х в диапазоне 0<=x<1;



§ с параметром N, который должен быть целым положительным числом – она будет выдавать целые числа х типа Word, значения которых лежат в диапазоне 0<=x<N.

Исходя из этих особенностей работы, можно организовать два варианта заполнения массива в зависимости от типа его элементов:

1. целочисленный массив x(d), значения элементов которого лежат в диапазоне [a,b) :

randomize;

For i:=1 to d do

x[i]:=a + random(b-a); {получение очередного элемента}

Если а=0, то x[i]:= random(b);

2. вещественный массив x(d), значения элементов которого лежат в диапазоне [a,b) :

randomize;

For i:=1 to d do

x[i]:=a + (b-a)*random; {получение очередного элемента}

Если а=0, то x[i]:= b*random;


<== предыдущая страница | следующая страница ==>
Типизированное описание | Программа

Дата добавления: 2014-03-11; просмотров: 305; Нарушение авторских прав


lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.003 сек.