Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Ввод с помощью датчика псевдослучайных чисел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; просмотров: 573; Нарушение авторских прав Мы поможем в написании ваших работ! |