Рубрики
ЕГЭ Информатика

Возможны несколько способов заполнения числовых массивов

Возможны несколько способов заполнения числовых массивов.

П3.1. Заполнение массива разными значениями, не подчиняющимися общему закону

Если все значения элементов разные и не подчиняются общему закону, то для за­полнения массива используются п операторов присваивания: m[l] — … m[2] := …

M[n] := …

Здесь и далее ∏ — число элементов массива (индексы элементов от 1 до п).

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

НЦ ДЛЯ 1 от 1 до п ввод m[i]

Кц

Однако при таком оформлении пользователю нужно контролировать количество уже введенных значений. Более рациональный вариант: Нц для 1 От 1 До п

Вывод не, «Введите значение «, i, «-го элемента массива»Ввод M[i]

КЦ

Для двумерных массивов соответствующие фрагменты:

M[l, 1] := …

M[l, 2] := …

M[l, s] := …

M[2, 1] := …

M[2z2} :=

M[2, s] := …

M[n, 1] := …

M[n, 2] := …

M[n, s] := …

Где п — число строк, s — число столбцов (эти же величины будут использоваться и далее).

Нц для i от 1 до п

Нц для j от 1 до s

Ввод M[i, j]

Кц

Кц

Нц для i от 1 до п

НЦ ДЛЯ j ОТ 1 ДО S

Вывод нс, «Введите значение элемента в «, i, «-й строке «

Вывод «в «, j, «-M столбце»

Ввод M[i, j]

«Ц

Кц

П3.2. Заполнение массива одинаковыми значениями

В этом случае фрагмент программы для заполнения имеет вид:

А) одномерного массива:

НЦ ДЛЯ 1 от 1 до п

M[i] := …

КЦ

Б) двумерного массива:

Нц для i от 1 до п

Нц для j от 1 до s

M[i, j] : = …

Кц

Кц

Например, при заполнении одномерного массива нулями:

Нц для i от 1 до п

M[i] := О

Кц

290

ПЗ. З. Заполнение массива последовательностью чисел, закон построения которой известен

Когда зависимость значения элемента массива от его индекса M[I = Fij)Указана явно, задача является простой:

M[l] := 2

Нц для i от 2 до п

M[i] := m[i-l]+3

Кц

Где вместо многоточия должно быть записано выражение, соответствующее задан­ной зависимости. Например, для случая заполнения массива по закону MI = Z2:

Нц для i от 1 до п m[i] := i * i

Кц

Для двумерного массива:

Нц для i от 1 до п

Нц для j от 1 до s m[i, j] := …

Кц

КЦ

Где вместо многоточия должно быть записано выражение, соответствующее задан­ной зависимости. Эта может быть зависимость от номера строки и/или номера столбца. Например, для случая заполнения массива по закону w[∕,√] = I ÷7:

Нц для i от 1 до п

Нц для j от 1 до s m[i, j] := i + j

Кц

КЦ

Другим примером последовательностей, закон построения которых известен, явля­ются значения членов прогрессий (арифметической или геометрической). В таких случаях первый элемент массива равен первому члену соответствующей прогрес­сии, а остальные рассчитываются с использованием формул:

□ z-ro члена арифметической прогрессии: Ai = ам+ √, Где D разность прогрессии;

ΓJ z-ro члена арифметической прогрессии: Ai- Cιl^ ∙ z,

Где z — знаменатель прогрессии.

ПРИМЕР 1.Заполнить одномерный массив из ∏ элементов членами арифметиче­ской прогрессии, первый член которой равен 2, а разность — 3.

Решение. В соответствии с определением арифметической прогрессии можно так оформить фрагмент программы, в котором проводится заполнение массива:

Ш[1] := 2

ИЦ ДЛЯ 1 от 1 до п

M[i] := m[i — 1] + 3 Кц

ПРИМЕР 2.Заполнить одномерный массив из п элементов членами геометрической прогрессии, первый член которой равен 1, а знаменатель — 1,5.

Решение. Учитывая закон построения геометрической прогрессии, можем записать: m[l] : = 1 нц для i от 2 до п m[i] := m[i — 1] * 1.5 кц

Прогрессии являются частным случаем так называемых «рекуррентных” последо­вательностей — последовательностей чисел, каждый элемент которых зависит от одного или нескольких предшествующих элементов1.

П3.4. Заполнение массива случайными значениями

Для получения случайных чисел во всех современных языках программирования имеется стандартная функция. В школьном алгоритмическом языке ее имя — md, в языке Бейсик — rnd(верхний регистр букв, естественно, не обязателен), в языке Паскаль— random. Формулы для расчета случайного числа Х различного типа в программах на этих языках программирования приведены в табл. ∏3.1-∏3.3. [37][38]

Таблица П3.1. Школьный алгоритмический язык2

Тип величины X

Диапазон возможных значений

Формула

Вещественный

0

Х — rnd(l)

0 ≤x <А

Х = rnd (А)

A≤x

X = A + rnd (В — А)

Целый

Q≤x≤A

Х = int(rnd(А + 1))

A≤x≤B

X=A+ int (rnd(В — А + 1) )

Таблица П3.2. Язык Паскаль

Тип величины X

Диапазон возможных значений

Формула

Вещественный

0≤x< 1

Х = random

0

Х — random ★ А

A

X=A+ random * (B-A)

Целый

0

Х = random(А + 1)

A≤x≤B

Х = А + random(В — А + 1)

В случае заполнения массива случайными значениями следует использовать опера­тор цикла:

А) для одномерного массива:

Нц для i от 1 до п

M [i] := …

Кц

Б) для двумерного массива:

Нц для i от 1 до п

Нц для j от 1 до s

M[i, j] := …

КЦ

КЦ

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

Внимание!

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

• в программах на языке Бейсик оператор RANDOMIZE с параметром TIMER (в виде RANDOMIZE TIMER);

• в программах на языке Паскаль — оператор randomize (без параметров).

ПРИЛОЖЕНИЕ 4

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *