X[1]=78, X[2]=6, X[3]=82, X[4]=67, X[5]=55, X[6]=44, X[7]=34
Описание массива определяет имя, размер массива и тип элементов.
Var X:array[1..7] of integer; Y:array [1..10] of real;
Одномерный массив объединяет под одним именем фиксированное
количество элементов одного типа данных.
Каждый элемент массива имеет собственный номер.
Способы задания (формирования) одномерных массивов
Задание типизированной константой
Const A: array [1..5] of integer = (5,6,2,0,-4);
С помощью генератора случайных чисел
For i:=1 to 20 do A[i]:= random(50);
Задание с помощью формулы
For i:=1 to 20 do A[i]:= i;
Чтение данных из файла
assign(input,'input.txt');
assign(output,'output.txt');
reset(input);
rewrite(output);
… … … … … … … …
close(input);
close(output);
A[1,1]=1, A[1,2]=4,… A[2,2]=-5,…
A[3,2]=9,… A[3,5]=20
Формирование и вывод двумерных массивов
Задание типизированной константой
Const A:array[1..2,1..2] of integer=((5,6),(2,0));
Задание с помощью генератора случ-х чисел
For i:=1 to n do
For j:=1 to m do A[i,j]:= random(50);
Формирование массива с помощью формулы
For i:=1 to n do
For j:=1 to m do A[i]:= i;
assign (input,'input.txt');
assign (output,'output.txt');
reset (input);
rewrite (output);
… … … … … … … …
close (input);
close (output);
Вывод двумерного массива
For i:=1 to n do
begin
Writeln;
For j:=1 to m do
Write (A[i,j]:2,' ');
end;
Чтение данных из файла input.txt
и запись в файл output.txt
Сумма элементов = 13
Произведение элементов =2688
Исходный массив
Результат
n=10
Размерность массива
Program massiv;
Const A: array [1..10] of integer = (1, 0, -1, 0, 6, 2, 0, 4, 8, -7);
Var i, s: integer; p: longint;
BEGIN
s:=0;
p:=1;
For i:=1 to 10 do
begin
s:=s + A[i];
p:=p*A[i];
end;
Writeln (‘Сумма элементов =‘, s);
Writeln (‘Произведение элементов =‘, p);
END.
Сумма отр-х элементов = -8
Исходный массив
Результат
n=10
Размерность массива
Program massiv;
Const A: array [1..10] of integer = (1, 0, -1, 0, 6, 2, 0, 9, 8, -7);
Var i, s: integer;
BEGIN
s:=0;
For i:=1 to 10 do if A[i]<0 then s:=s + A[i];
If s=0 then Writeln (‘отрицательных элементов нет‘)
else Writeln (‘Сумма отр-х элементов =‘, s);
END.
Исходный массив
Результат
Program d2;
Var A: array[1..10,1..10] of integer;
i, j, k1, k2, s, m, n : integer;
Begin
Writeln (‘Введите размерность массива');
Readln (n, m);
{Ввод массива}
S:=0;
Writeln (k1,k2); ReadLn (k1,k2);
If (k1>k2) or (k2>n) then Writeln ('ошибка') else
Begin
For i:=k1 to k2 do
For j:=1 to m do S:=S+A[i,j];
Write ('S=', S);
End;
End.
k1=2, k2=3
Сумма=20
Произведение=360
Отношение=0.055
Исходный массив
Результат
Program massiv;
Var A: array [1..4,1..4] of integer; i, j, s: integer;
BEGIN
{Ввод массива}
s:=0; p:=1;
For i:=1 to 4 do
For j:=1 to 4 do
begin
If A[i,j]>0 then s:=s+A[i,j];
If (A[i,j]>=2) and (A[i,j]<=5) then p:=p*A[i,j];
end;
Writeln ('Сумма=',s:6:2);
Writeln ('Произведение=',p:6:2);
If p=0 then Writeln ('Отношение вычислить нельзя')
else Writeln ('Отношение=',s/p:6:3)
END.
Program mm;
Var A, B: array[1..5] of integer;
n, I, s: integer;
BEGIN
S:=0;
For i:=1 to n do
Begin
Write ('A[',i,']='); Readln (A[i]);
End;
For i:=1 to n do
Begin
Write (‘B[',i,']='); Readln(B[i]);
End;
For i:=1 to n do S:= S+A[i]*B[i];
Writeln(‘вывод результата');
WriteLn (S);
END.
Исходный массив
A : 5 2 3 5 4
B: 1 5 5 4 0
Результат:
50
Program Srball;
Const N = 20;
Var A: array[1..N] of integer;
i, x, y: integer; S: real;
Begin
{Ввод массива}
x:=0; y:=0;
For i:= 1 to N do
If A[i]>20 then
begin
x:= x+1; y:= y+A[i];
end;
S:= y/x;
Writeln('Sredniy ball=',S:4:1);
End.
N=18
Sredniy ball=50.0
Результат
Размерность массива
Исходный массив
10 50 50 68 74 26 32 2 5 50 100 12 13 20 21 29 45 55
Исходный массив
51 22 34 58 91
13 6 19 34 26
20 15 25 33 85
56 3 44 35 16
65 27 85 15 34
Результат
Сред. ариф. чёт. эл.=31.8
Program A1;
Var A:array[1..100] of integer; k, n, i: integer; s: real;
Begin
Write ('число элементов массива ='); Readln (n);
k:=0; s:=0;
For i:=1 to n do
Begin
Write ('A[',i,']='); Readln (A[i]);
If A[i]<0 then
Begin
k:=k+1; s:=s+A[i];
End;
End;
If k=0 then writeln ('отрицательных элементов нет') else
Begin
s:=s/k; Writeln ('s=',s:8:1);
End;
End.
Исходный массив
10 57 51 68 74 27 31 5 5 50 100 12 13 23 22 9 45 55 10 10
Program A2;
Var A:array[1..100] of integer; k, n, i: integer; s: real;
Begin
Write ('число элементов массива ='); Readln (n);
k:=0; s:=0;
For i:=1 to n do
Begin
Write ('A[',i,']='); Readln(a[i]);
If (A[i]>=1) and (A[i]<=25) then
Begin
k:=k+1; s:=s+A[i];
End;
End;
If k=0 then Writeln ('элементов нет') else
Begin
s:=s/k; Writeln ('s=', s:6:1);
End;
End.
i < j
i > j
i = j
Исходный массив
Результат
Program diag2;
Var A:array [1..10,1..10] of real;
i, j, n: integer; s: real;
BEGIN
S:=0;
Writeln (‘введите размерность массива');
Readln (n);
{Ввод массива}
For i:=1 to n do
For j:=1 to n do
If i+j
END.
i+j>n+1 и i i+j
S=36
Исходный массив
Результат
i+j i+j>n+1 и i>j Program diag3;
Var A:array [1..10,1..10] of integer; i, j, n, s: integer;
BEGIN
S:=0;
Writeln (‘введите размерность массива');
Readln (n);
Randomize;
For i:=1 to n do
begin
Writeln;
For j:=1 to n do
begin
A[i,j]:=random(10); Write (A[i,j]:2,' ');
end;
end;
For i:=1 to n do
For j:=1 to n do
If (i+j
Writeln('S=',S:4);
END.
Program massiv;
Var A:array [1..10,1..10] of integer;
i, j, max, n, m: integer;
BEGIN
Writeln (‘введите размерность массива');
Readln (n,m);
{Ввод массива}
max:=A[1,1];
For i:=1 to 5 do
For j:=1 to 5 do
If A[i,j]>max then max:=A[i,j];
Writeln('max=', max);
END.
Найти наименьший элемент одномерного массива
S=28
Исходный массив
Результат
Program MAX1;
Var A:array [1..10,1..10] of integer;
S, i, j, max, n, m: integer;
BEGIN
Writeln (‘введите размерность массива');
Readln (n,m);
{Ввод массива}
S:=0;
For i:=1 to n do
begin
max:=A[i,1];
For j:=1 to m do
If A[i,j]>max then max:=A[i,j];
S:=S+max;
end;
Writeln('S=',S);
END.
Число эл-в
равных мин.=5
Результат
Program d5;
Var A:array [1..10,1..10] of integer;
n, m, i, j, k, min: integer;
BEGIN
Writeln ('Введите размерность массива');
Readln (n,m);
{Ввод массива}
k:=0;
min:=A[1,1];
For i:=1 to n do
For j:=1 to m do
If A[i,j]
For j:=1 to m do
If min=A[i,j] then k:=k+1;
Write (‘Число эл-в равных мин.=', k);
END.
Исходный массив
10 50 50 68 74 26 32 2 5 50 100 12 13 20 21 29 45 55 100 100
S=30
Исходный массив
Результат
Program mas32;
Const n:=5;
Var A:array[1..n,1..n] of integer;
max, s, imax, i, j: integer;
BEGIN
{Ввод массива}
max:=A[1,1]; S:=0; imax:=1;
For i:=1 to n do
For j:=1 to n do
If A[i,j]>max then
begin
max:=A[i,j]; imax:=i;
end;
For j:=1 to n do S:=S+A[imax,j];
Writeln ('S=',S);
End.
Размерность массива
Исходный массив
10 50 8 8 50 6 41 40 2 50 7 5 5 5 5 5 5 29 45 55 3 2 2 2 3
Результат
19
Program mas;
Сonst n=25;
Var A:array[1..n] of integer;
i, i1, s: integer;
BEGIN
For i:=1 to n do Readln (A[i]);
i1:=1;
S:=A[1]+A[2];
For i:=2 to n-1 do
If A[i]+A[i+1]> S then
begin
i1:=i;
s:=A[i]+A[i+1];
end;
Writeln(i1);
End.
Исходный массив
10 50 8 8 50 6 41 40 2 50 7 5 5 5 5 5 5 29 45 55 3 2 2 2 3
Program minsum; 4 х 5 № строки=2, sum=10 Исходный массив Результат Размерность массива
Const n=4 ; m=5;
Var A:array [1..n,1..m] of integer;
min, sum, imin, i, j: integer;
BEGIN
{Ввод массива}
Sum:=0;
For j:=1 to m do sum:=sum+A[1,j];
Min:=sum; imin:=1;
For i:=2 to n do
Begin
Sum:=0;
For j:=1 to m do sum:=sum+A[i,j];
If sum
min:=sum; imin:=i;
End;
End;
Writeln (‘№ строки=', imin, ‘, sum=', min);
END.
Исходный массив
10 50 50 68 74 26 32 2 5 50 -10 12 13 20 21 29 45 55 -90 -60
1 0.5 -1 0 6 2 0 9 8 -7
Исходный массив
n=10, t=5.5
Program mas3; Результат K=7
Var A: array [1..10] of real;
i,k: integer; t: real;
BEGIN
Write ('Введите число t=');
Readln (t);
k:=0;
For i:=1 to 10 do
begin
Write ('Введите значение элемента A(', i, ') = ');
Readln (A[i]);
If A[i]
Writeln ('Ответ: Количество элементов, меньших заданного числа‘,t:3:1);
Writeln('k=', k);
END.
Исходный массив
10 57 51 68 74 27 31 2 5 50 100 12 13 21 21 29 45 55 100 100
В данном одномерном массиве, элементами которого являются целые числа, поменять местами первый минимальный и последний максимальный элементы. Число элементов массива запрашивается с клавиатуры.
Program d3;
Var a:array[1..100] of integer;
nmin,nmax,min,max,n,i:integer;
Begin
Write ('число элементов массива =');
Readln(n);
For i:=1 to n do
Begin
Write ('A[',i,']='); Readln(A[i]);
End;
min:=a[1]; nmin:=1;
max:=a[1]; nmax:=1;
Исходный массив A
51 22 34 58 0
13 0 11 34 26
20 15 35 43 85
56 3 0 1 0
Пусть размерность массива A : 5 x 5
Program mmm2;
Var A:array[1..5,1..5]of integer;
B:array[1..5] of real; k, n, m, i , j: integer; s: real;
BEGIN
Writeln ('Введите размерность массива А');
Readln (n,m);
{Ввод двумерного массива А}
For j:=1 to m do
begin
s:=0; k:=0; B[j]:=0;
For i:=1 to n do
If A[i,j] mod 2<>0 then
begin
s:=s+A[i,j]; k:=k+1;
end;
If k<>0 then B[j]:=s/k ;
end;
For j:=1 to m do Write (B[j]:5:1,’ ‘);
END.
50 44 32 22 11
Результат
32.0 9.0 23.0 22.0 48.0
Тогда размерность массива В: 5
Пусть размерность массива A : 4 x 5
Program mmm2;
Var A:array[1..5,1..5]of integer; B:array [1..5] of integer;
n, m, i, j: integer;
BEGIN
Writeln ('Введите размерность массива А');
Readln (n,m);
Writeln ('Введите элементы массива А');
{Ввод двумерного массива А}
Writeln('Введите элементы массива В');
{Ввод одномерного массива В}
For i:=1 to n do
For j:=1 to m do
If i mod 2<>0 then A[i,j]:=B[j];
Writeln (Вывод изменённого массива');
For i:=1 to n do
begin
For j:=1 to m do Write(A[i,j]:5);
Writeln;
end;
END.
Исходный массив В
55 44 33 22 11
Результат
55 44 33 22 11
13 0 19 34 26
55 44 33 22 11
56 3 0 0 0
Тогда размерность массива В: 5
Program mm;
Var A:array[1..5,1..5] of integer;
B:array[1..5] of integer;
i, j, s: integer;
BEGIN
{Ввод двумерного массива А }
For j:=1 to 5 do
begin
s:=0; B[j]:=0;
For i:=1 to 5 do
If A[i,j] mod 7=0 then s:=s+A[i,j];
B[j]:=s;
end;
Writeln(‘вывод результата');
For j:=1 to 5 do WriteLn (’B[’, j , ’]=’, B[j]:4);
END.
Исходный массив
51 22 34 58 49
13 90 19 34 21
14 15 25 34 80
56 3 35 35 16
64 25 85 14 34
Результат: массив В
70 0 35 49 70
Начиная снизу, сравниваем два соседних элемента; если они стоят «неправильно», меняем их местами;
За 1 проход по массиву один элемент (самый маленький) становится на свое место;
1-ый проход
2-ой проход
3-ий проход
Для сортировки массива из N элементов нужен N-1 проход (достаточно поставить на свои места N-1 элементов).
Program Sorti1;
Const n=10;
Var A:array[1..n] of integer;
i, c, j: integer;
BEGIN
{Ввод массива}
For i:=1 to n-1 do
begin
For j:=n-1 downto i do
If A[j]>A[j+1] then
begin
c:=A[j];
A[j]:=A[j+1];
A[j+1]:=c;
end;
end;
For i:=1 to n do Write(A[i]:4);
END.
Program Sorti2;
Const n=10;
Var A:array[1..n] of integer; i, c, j: integer;
BEGIN
{Ввод массива}
For i:=1 to n-1 do
begin
min:=i;
For j:=i+1 to n do
If A[j] If min<>i then
begin
c:=A[i];
A[i]:=A[min];
A[min]:=c;
end;
end;
For i:=1 to n do Write(A[i]:4);
END.
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть