Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции+Pascal.doc
Скачиваний:
31
Добавлен:
02.12.2018
Размер:
647.17 Кб
Скачать

Массивы

Одним из важных инструментов программиста является возможность работы с массивами переменных.

Массив - набор однотипных данных, хранящихся вместе и имеющих общее имя.

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

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

Одномерные массивы Основные понятия

Массив обозначается одним именем. Так всю совокупность действительных чисел

1.6, 14.9, -5.0, 8.5, 0.46

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

A[1], A[2], A[3], ..., A[n].

Индекс определяет положение элемента массива данных относительно его начала.

Для рассмотренного выше примера элементами массива А являются:

A[1]=1.6, A[2]=14.9, A[3]=-5.0, A[4]=8.5, A[5]=0.46

Описание массива

Формат

Var

<идентификатор,…>:array[тип индекса] of <тип компонент>;

Например:

M: array[1..4] of integer;

MAS: array[1..60] of real;

Для описания массива можно использовать предварительно определенные константы.

Например,

Const

G1=4; G2=6;

Var

M1: array[1..G1] of integer;

M2: array[1..G2] of real;

Заполнение массива

1 Способ (заполнение с клавиатуры. Динамический ввод данных)

Var

M:array[1..10] of integer;

I: byte;

Begin

For I:=1 To 10 Do Begin

Write('Введите ',I,' значение ');

ReadLn(M[I]);

End;

End.

2 Способ (с использованием генератора случайных чисел)

Var

M: array[1..25] of integer;

I: byte;

Begin

For I:=1 To 25 Do Begin

M[I]:=Random(50);

Write(M[I]:4);

End;

End.

3 Способ (статический ввод данных)

Const

M: array[1..12] of integer = (31,28,31,30,31,30,31,31,30,31,30,31);

Var

I: Integer;

Begin

For I:=1 To 9 Do

Write(M[I]:3);

End.

6.1.4 Примеры решения задач

1. Алгоритмы поиска и присвоения значений элементам массива

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

USES Crt;

CONST N=10;

VAR

A:ARRAY[0..N] OF INTEGER;

I:BYTE;

BEGIN

ClrScr;

{ Заполнение массива }

FOR I:=1 TO N DO Begin

Write('Введите ',I,' элемент массива '); ReadLn(A[I]);

End;

{ Обработка элементов массива }

FOR I:=1 TO N DO

IF A[I]>0 THEN WriteLn('Положительный элемент = ',A[I],' его индекс = ',I);

END.

2. Составить программу вычисления и печати значений функции Y=sin(x-1)/2x. Значения аргументов задать в массиве X, состоящего из 6 элементов. Значения функции записать в массив Y.

USES Crt;

VAR

X,Y:ARRAY[0..6] OF REAL;

I: BYTE;

BEGIN

ClrScr;

FOR I:=1 TO 6 DO Begin

Write('Введите ',I,' значение аргумента '); ReadLn(X[I]);

End;

FOR I:=1 TO 6 DO Begin

Y[I]:=SIN(X[I]-1)/(2*X[I]);

WriteLn(' X= ',X[I]:4:1,' Y=',Y[I]:5:2);

End;

END.

3. Дан массив M, состоящий из 30 элементов. Элементы массива - произвольные целые числа. Выдать на экран значение каждого пятого и положительного элемента. Указанные элементы выдать в строку.

USES Crt;

VAR

M:ARRAY[0..30] OF INTEGER;

I: BYTE;

BEGIN

ClrScr; Randomize;

WriteLn(' Значения элементов массива');

FOR I:=1 TO 30 DO Begin

M[I]:=Random(20)-4; Write(M[I]:3);

End; WriteLn;

I:=5;

WriteLn(' Значения каждого пятого и положительного элемента массива');

While I<=30 DO Begin

IF M[I] > 0 THEN Write(M[I]:3);

I:=I+5;

End;

END.

Примеры для самостоятельного решения:

  1. Дан одномерный массив размерностью 10, заполненный целыми числами, введенными с клавиатуры, и величина N. Отрицательные элементы заменить на N. Измененный массив вывести на экран одной строкой.

  2. Дан одномерный массив размерностью N, заполненный случайными числами в интервале от -15 до 20. Вывести на экран значения элементов массива, абсолютное значение которых >10.

  3. Дан одномерный массив размерностью N, заполненный случайными числами. Каждый третий элемент массива возвести в квадрат, если элемент отрицательный. Измененный массив вывести на экран.

  4. Составить программу вычисления и печати значений функции Y=(sinx+1)cos4x. Значения аргументов задать в массиве X, состоящего из 10 элементов. Значения функции записать в массив Y.

  5. Из элементов массива А, состоящего из 25 элементов, сформировать массив D той же размерности по правилу: первые 10 элементов находятся по формуле Di=Ai+i, остальные - по формуле Di=Ai-i.

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