Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник Задач v2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
660.48 Кб
Скачать

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

Массив – это упорядоченная последовательность из фиксированного числа однотипных элементов, которая обозначается одним именем.

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

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

1) Одномерные массивы (линейные таблицы);

2) Двумерные массивы (прямоугольные таблицы);

3) Многомерные массивы (трехмерные и т.д. таблицы).

Для того, чтобы обратиться к нужному элементу массива необходимо указать имя массива и его индекс. Индекс – это порядковый номер элемента в массиве.

Т.е. обращение происходит по правилу:

идентификатор_массива[индекс]

Общее количество элементов в массиве называется размерностью массива.

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

  1. с описанием пользовательского типа:

type

идентификатор_типа=array[размерность] of базовый_тип_элементов;

var

идентификатор_массива:идентификатор_типа;

  1. без описания пользовательского типа:

var

идентификатор_массива:array[размерность] of базовый_тип_элементов;

Здесь размерность указывается следующим образом:

[ 1..10]

[10..100]

[5..10] одномерные массивы

[1..5]

[1..10,1..10] – двумерные массивы

Стандартные алгоритмы обработки массивов:

  1. Ввод-вывод элементов:

Program _1;

Uses Crt;

Const n=10;

Type

massiv=array[1..n] of integer;

Var

a:massiv; i:byte;

Begin

ClrScr;

Writeln(‘Введите элементы массива:’);

For i:=1 to n do

begin

write(‘a[‘,i,’]=’);

Readln(a[i]);

end;

For i:=1 to n do

Write(a[i],’ ‘);

Readkey;

End.

  1. Нахождение суммы, произведения, среднего арифметического элементов массива:

Program Summa;

Uses Crt;

Type

massiv=array[1..10] of integer;

Var

a:massiv; i:byte; S:integer;

Begin

ClrScr;

Writeln(‘Введите элементы массива:’);

For i:=1 to 10 do

begin

write(‘a[‘,i,’]=’);

Readln(a[i]);

end;

For i:=1 to 10 do

S:=s+a[i];

Writeln(‘S=’,S);

Readkey;

End.

Program Proizvedenie;

Uses Crt;

Var

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

i:byte; P:integer;

Begin

ClrScr;

Writeln(‘Введите элементы массива:’);

For i:=1 to 10 do

begin

write(‘a[‘,i,’]=’);

Readln(a[i]);

end;

P:=1;

For i:=1 to 10 do

P:=P*a[i];

Writeln(‘P=’,P);

Readkey;

End.

Program SrArifmet;

Uses Crt;

Var

a: array[1..1000] of integer;

S,n,i:integer;Sr:real;

Begin

ClrScr;

Writeln(‘Введите размерность массива:’);Readln(n);

Writeln(‘Введите элементы массива:’);

For i:=1 to n do

begin

write(‘a[‘,i,’]=’);

Readln(a[i]);

end;

For i:=1 to n do

s:=s+a[i];

Sr:=s/n;

Writeln(‘Sr=’,Sr);

Readkey;

End.

  1. Нахождение максимального и минимального элемента массива.

Program Maximum;

Uses Crt;

Var

a: array[1..1000] of integer;

max,n,i:integer;

Begin

ClrScr;

Writeln(‘Введите размерность массива:’);Readln(n);

Writeln(‘Введите элементы массива:’);

For i:=1 to n do

begin

write(‘a[‘,i,’]=’);

Readln(a[i]);

end;

max:=a[1];

For i:=1 to n do

if a[i]>max

then

max:=a[i];

Writeln(‘max=’,max);

Readkey;

End.

Минимальный находится аналогично.

  1. Нахождение суммы элементов двумерного массива:

Program Summa;

Uses Crt;

Type

massiv=array[1..10,1..10] of integer;

Var

a:massiv; i,j:byte; S:integer;

Begin

ClrScr;

Writeln(‘Введите элементы массива:’);

For i:=1 to 10 do

For j:=1 to 10 do

begin

write(‘a[‘,i,’,’,j,’]=’);

Readln(a[i,j]);

end;

For i:=1 to 10 do

For j:=1 to 10 do

S:=s+a[i,j];

Writeln(‘S=’,S);

Readkey;

End.

Рассмотрим еще пример: дан массив. Найти сколько в нем пар соседних одинаковых чисел.

Program massiv;

Const m=100;

Begin

Var mas:array [1..m] of integer;

Write (‘Ввести длину массива N=’);

Readln (N);

K:=0;

For i:=1 to n do

begin

Write (‘Ввести элементы массива ‘) ;

Readln (mas[i]);

End;

For i:=1 to n-1 do

if mas[i]=mas[i+1]

then k:=k+1;

Writeln (‘ Количество пар=’,k);

End.