Transcript Document

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

Решение задач

Табличный способ организации данных

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

Таблицей или массивом называют набор однотипных данных расположенных в несколько строк одинаковой длины.

Бывают одномерные и двумерные массивы.

А= {1,3,-4,100} 1 1 3 4 одномерный массив размерности 4 A = 3 8 1 5 двумерный массив размерности 3х4 1 1 -2 2

Одномерным массивом размерности n называется массив содержащий n элементов. Доступ к элементу одномерного массива осуществляется по его номеру. Запись A[ i ] означает, что элемент стоит на i-том месте. i - это индекс одномерного массива.

А= {1,3,-4,100} A[3]= A[4]= A[6]=

Двумерным массивом размерности n х m называется массив содержащий номеру столбца. Запись A[ i,j ] n строк и m столбцов. Доступ к элементу двумерного массива осуществляется по номеру строки и означает, что элемент стоит на пересечении i-той строки и j-того столбца. i , j - это индексы двумерного массива.

1 1 3 4 A[1,3]= A = 3 8 1 5 A[3,1]= 1 1 -2 2 A[4,3]=

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

VAR ИМЯ МАССИВА : ARRAY[ T1 ] OF T2 где T1- тип индекса T2- тип элементов массива Например: VAR a : array [ 1..10

] of var b : array [ 1..5,1..7

integer; ] of integer;

Напоминание: найти сумму всех элементов одномерного массива program a5; var n,i,s: integer; a:array [1..10] of integer;

Begin read(n);

for i:=1 to n do

begin

a[i]:=random(100); write( 'a[', i, ']=' ,a[i]);

end;

s:=0; for i:=1 to n do s:=s+a[i]; write(‘s=‘,s);

6. Найти сумму элементов массива, кратных заданному числу.

program a6; var n,i,s: integer; a:array [1..10] of integer;

Begin read(n); read(q);

for i:=1 to n do

begin

a[i]:=random(100); write( 'a[', i, ']=' ,a[i]);

end;

s:=0; for i:=1 to n do

if

a[i] mod q = 0

then

s:=s+a[i]; write(‘s=‘,s);

End.

3. Даны два одномерных массива из целых чисел, разной размерности. Найти целую часть среднего арифметического элементов каждого массива и их сумму.

n=4; m=6 A: (12, 3, 5, 6) B: (1, 13, 3, 1, 3, 5) Среднее арифметическое из 4 чисел= сумма всех 4-х чисел, деленное на 4 (количество чисел) Решение: 1) Заполнить массивы А и В случайными числами 2) Найти суммы всех элементов этих массивов ( s1,s2 ) 3) Найти средние арифметические ( p1 сумму ( р ) и p2 ), их

3. Даны два одномерных массива из целых чисел, разной размерности. Найти целую часть среднего арифметического элементов каждого массива и их сумму.

program a2; var n,m,i,s1,s2: integer; p1,p2,p:real; a, b :array [1..10] of integer;

begin

write( 'n=' );read(n); write( 'm=' );read(m); writeln; for i:=1 to n do begin a[i]:=random(100); write( ' a[' ,i,']=',a[i]); end; writeln; for i:=1 to m do begin b[i]:= random(50); write(' b[',i,']=',b[i]); end; writeln;

3. Даны два одномерных массива из целых чисел, разной размерности. Найти целую часть среднего арифметического элементов каждого массива и их сумму.

s1:=0; for i:=1 to n do s1:=s1+a[i]; p1:= s1/n; p1:=int(p1); writeln('сред. арифм массива А=',p1); s2:=0; for i:=1 to m do s2:=s2+b[i]; p2:= s2/m; p2:=int(p2); writeln('сред. арифм массива B=',p2); p:=p1+p2; writeln('их сумма=',p); end.

Дома:

4. Решить предыдущую задачу для 3-х массивов.

10. Дан массив целых чисел. Найти сумму элементов массива, больших данного числа q, вводимого с клавиатуры.

5. Даны три одномерных массива из целых чисел одинаковой размерности. Сформировать четвертый массив, каждый элемент которого равен максимальному из соответствующих элементов первых трех массивов.

n=4 A: (12, 3, 5, 6) B: (1, 13, 3, 1) C: (3, 1, 1, 8) D: (12, 13, 5, 8)

напоминание : Дано a,b,c – числа введенные с клавиатуры, найти максимальное.

program a3; var a,b,c, max: integer; begin write(‘a=‘); read (a); write(‘b=‘); read (b); write(‘c=‘); read (c); If (a>b) and (а>c) then max:=a; If (b>a) and (b>c) then max:=b; If (c>b) and (c>a) then max:=c; write (‘max=’,max) end.

5. Даны три одномерных массива из целых чисел одинаковой размерности. Сформировать четвертый массив, каждый элемент которого равен максимальному из соответствующих элементов первых трех массивов.

program a4; var n,i,max: integer; a, b, c, d:array [1..10] of integer;

Begin read(n);

for i:=1 to n do

begin

a[i]:=random(100); write( 'a[', i, ']=' ,a[i]); b[i]:= random(50); write( ' b[' ,i, ']=' ,b[i]); c[i]:= random(50); writeln( ' c[' ,i, ']=' ,c[i]); end; max:=a[1]; for i:=1 to n do begin if (a[i]>b[i]) and (a[i]>c[i]) then max:= a[i]; if (b[i]>a[i]) and (b[i]>c[i]) then max:= b[i]; if (c[i]>b[i]) and (c[i]>a[i]) then max:= c[i]; d[i]:=max; write( ' d[' ,i, ']=' ,d[i]); end; end.

Самостоятельно:

7. Найти количество положительных и отрицательных элементов массива.

8. Составить программу записи в массив В номеров четных элементов массива А. 9. Найти номер последнего отрицательного элемента в массиве.

11. Дан массив целых чисел. Найти сумму элементов массива, принадлежащих промежутку от q до t, вводимых с клавиатуры.

12. Дан массив из различных целых чисел (нет совпадений). Найти максимальный элемент массива и его номер.