Типовые задачи на Паскале (массивы)
Массив - это упорядоченный набор однотипных элементов, обозначаемых одним именем; доступ к элементу массива осуществляется по его номеру.
Для записи элементов массива в память компьютера нужно выделить для их хранения необходимое количество ячеек памяти, которое определяется размером массива.
В программе для каждого массива должны быть указаны его параметры: имя, размерность и размер. Бывают одномерные, двумерные и т.д. массивы. Это называется размерностью.
Одномерные массивы (последовательности).
A: 3,-4,0,3,-5,10,0
A[1]=3, A[3]=0, A[7]=0
I - номер элемента, A[I] - элемент массива, стоящий на I-ом месте
-
Сформировать и вывести на экран последовательность из n элементов, заданных датчиком случайных чисел на интервале [-23, 34].
Program posled;
Var a: array[1..100] of integer;
i, n: integer;
Begin
Write (‘Сколько элементов? ’); Readln (n);
For i=1 to n do
begin
a[i]:= Random(58)-23;
writeln (a[i],’ ‘);
end;
End.
2. Найти произведение элементов одномерного массива, состоящего из n элементов. Элементы вводятся с клавиатуры.
Program proisveden;
Var a: array[1..100] of integer;
i, n, p: integer;
Begin
Write (‘Сколько элементов? ’); Readln (n);
p:=1;
For i:=1 to n do
begin
write (‘введите число’); readln (a[i]);
p:=p*a[i];
end;
writeln(‘произведение элементов равно: ‘,p);
End.
3. Найти сумму элементов одномерного массива. Размер произвольный. Элементы вводятся с клавиатуры.
Program summa;
Var a: array[1..100] of real;
i, n: integer;
s: real;
Begin
Write (‘n=’); Readln (n);
s:=0;
For i:=1 to n do
begin
write (‘введите число’); readln (a[i]);
s:=s+a[i];
end;
writeln(‘сумма элементов равна ‘,s);
End.
4. Задан массив А, состоящий из n чисел. Найти среднее арифметическое его элементов. Элементы вводятся с клавиатуры.
Program srednee;
Var a: array[1..100] of real;
i, n: integer;
s,sred: real;
Begin
Write (‘n=’); Readln (n);
s:=0;
For i:=1 to n do
begin
write (‘введите число’); readln (a[i]);
s:=s+a[i];
end;
sred:=s/n;
writeln(‘среднее арифметическое элементов: ‘,s);
End.
5. Найти сумму элементов массива с четными номерами, содержащего N элементов. Элементы вводятся с клавиатуры.
Program sumshet;
Var a: array[1..100] of real;
i, n: integer;
s,sred: real;
Begin
Write (‘n=’); Readln (n);
s:=0;
For i:=1 to n do
begin
write (‘введите число’); readln (a[i]);
if i mod 2 = 0 then s:=s+a[i];
end;
writeln(‘сумма элементов с четными номерами: ‘,s);
End.
Задачи для самостоятельной работы
-
Массив А вводится с клавиатуры. Найти сумму его элементов. Размер произвольный.
-
Найти произведение элементов, кратных 3 в массиве, заданном датчиком случайных чисел на интервале [-28, 27]. Размер произвольный.
-
Массив А вводится с клавиатуры. Найти среднее арифметическое его элементов с нечетными номерами. Размер произвольный.
-
Массив А вводится с клавиатуры. Найти сумму его элементов с четными номерами, произведение отрицательных элементов, количество нечетных элементов. Размер произвольный.
-
Найти наибольший элемент и его номер в последовательности, элементы которой вводятся с клавиатуры. Размер произвольный.
-
Найти средне арифметическое элементов последовательности, превосходящих некоторое число С. Массив задан датчиком случайных чисел на интервале [-44, 35]. Размер произвольный. Значение С вводится с экрана.
-
Массив А вводится с клавиатуры. Вывести только нечетные элементы. Размер произвольный.
-
Упорядочить данную последовательность по убыванию. Элементы вводятся с клавиатуры. Размер произвольный.
-
Упорядочить данную последовательность по убыванию. Массив задан датчиком случайных чисел на интервале [-54, 33]. Размер произвольный.
-
Массив А вводится с клавиатуры. Сформировать новый массив В, состоящий из положительных элементов массива А. Размер произвольный.
-
Массив задан датчиком случайных чисел на интервале [-31, 45]. Сформировать новый массив В, состоящий из нечетных элементов массива А. Размер произвольный.
-
Массив А вводится с клавиатуры. Сформировать новый массив В, состоящий из положительных элементов массива А и найти в нем наибольший элемент. Размер произвольный.
-
Массив задан датчиком случайных чисел на интервале [-37, 66]. Найти наименьший нечетный элемент. Размер произвольный.
Задания 10. Циклический алгоритм обработки массива чисел, записанный на алгоритмическом языке
№ 1 Var k, m, day: integer; Dat: array[1..7] of integer; Begin Dat[1] := 7; Dat[2] := 9; Dat[3] := 10; Dat[4] := 8; Dat[5] := 6; Dat[6] := 7; Dat[7] := 6; day := 1; m := Dat[1]; for k := 2 to 7 do if Dat[k] begin day := k; m := Dat[k]; end; writeln(day); End. | № 2 Var k, m, day: integer; A: array[1..6] of integer; Begin A[1]:=3;A[2]:=1; A[3]:=4;A[4]:=2; A[5]:=4;A[6]:=2; day := 1; m := A[1]; for k := 2 to 6 do if A[k] = m then begin m := A[k]; day := k; end; writeln(day); End. |
№ 3 Var k, m, n: integer; Dat: array[1..10] of integer; Begin Dat[1] := 7; Dat[2] := 9; Dat[3] := 10; Dat[4] := 5; Dat[5] := 6; Dat[6] := 7; Dat[7] := 5; Dat[8] := 8; Dat[9] := 6; Dat[10] := 9; m := 10; n := 0; for k := 1 to 10 do if Dat[k] begin m := Dat[k]; n := k; end; writeln(n); End. | № 4 Var k, m, day: integer; Pos: array[1..7] of integer; Begin Pos[1] := 17; Pos[2] := 19; Pos[3] := 20; Pos[4] := 18; Pos[5] := 16; Pos[6] := 20; Pos[7] := 16; day := 1; m := Pos[1]; for k := 2 to 7 do if Pos[k] begin m := Pos[k]; day := k; end; writeln(day); End. |