Program prim_deistvi_nad_massivami;
Лабораторная работа №5
Одномерные массивы
Вариант №8
Задание 1:
8. Дан одномерный массив чисел. Определите сумму его элементов.
Работа программы
Вводятся исходные данные: массив через оператор random.
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 1
Таблица 1 – Назначение переменных
Переменная | Тип | Назначение |
n | real | Размер массива |
i | real | Номер элемента |
sum | real | Сумма элементов |
a | integer | Массив |
1.3Блок – схема алгоритма программы
Рис. 1 Блок схема алгоритма программы
Текст программы
Program summ;
Const
n=10;
Type
tarray=array[1..n] of integer;
var i, sum: integer;
a: tarray;
Begin
sum:=0;
writeln ('Исходный массив');
for i:=1 to n do begin
a [i]:=random(100);
sum:=sum+a[i];
write (a[i]:3,' ');
end;
writeln ('Сумма элементов массива равна =',sum);
readln;
End.
Тестирование
Задаем массив, проверяя корректность работы программы. Программа ведёт себя корректно.
1:
Исходный массив
24 56 32 47 32 54 2 7 32 89 43
Сумма элементов массива равна = 418
Задание 2:
8. Удалить все элементы, начиная с k1-го по k2-ой. Сделать проверку корректности ввода значений k1 и k2, если ввод некорректный, то вывести сообщение об ошибке и закончить работу.
Работа программы
Вводятся исходные данные: массив оператором random и переменные k1 и k2 с клавиатуры.
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 2.
Таблица 2 – Назначение переменных
Переменная | Тип | Назначение |
n | real | Размер массива |
i | real | Номер элемента |
k1, k2 | real | Номера элементов удаления |
a | integer | Массив |
1.3Блок – схема алгоритма программы
Рис. 2 Блок схема алгоритма программы
Текст программы
program udalenie;
const
n=10;
type
tarray=array[1..n] of integer;
var i, k1, k2: integer; a: tarray;
begin
writeln ('udalenie elementov massiva');
writeln ('ishodnui massiv');
for i:=1 to n do begin
a [i]:=random(100); write (a[i]:3,' ');
end;
writeln; writeln ('vvedite nomer s kotorogo nachat udalenie:'); readln (k1);
writeln ('vvedite nomer do kotorogo delat udalenie:'); readln (k2);
if (k1>k2) or (k2>n) then writeln ('vvod ne korrektnuy');
begin for i:=1 to k1 do write (a[i]:3,' ');
for i:=k2 to n do write (a[i]:3,' ');
readln; end;
end.
Тестирование
1:
udalenie elementov massiva
ishodnui massiv
24 56 32 47 32 54 2 7 32 89 43
vvedite nomer s kotorogo nachat udalenie: 4
vvedite nomer do kotorogo delat udalenie: 7
24 56 32 47 2 7 32 89 43
Задание 3:
8. Вставить элемент после первого отрицательного элемента.
Работа программы
Вводятся исходные данные: элемент k с клавиатуры.
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 3.
Таблица 3 – Назначение переменных
Переменная | Тип | Назначение |
n | real | Размер массива |
i | real | Номер элемента |
k | real | Отрицательный элемент |
b | real | Элемент, который необходимо вставить |
a | integer | Массив |
1.3Блок – схема алгоритма программы
Рис. 3 Блок схема алгоритма программы
Текст программы
Program vstavka;
Const
n=15;
var i, k, b: integer;
a:array [1..n+1] of integer;
Begin
randomize;
writeln ('vstavka elementa v massiv');
writeln ('zapolnenie massiva');
for i:=1 to n do
begin
a[i]:=random (25+25+1)-25;
write (a[i]:3,' ');
end;
for i:=n downto 1 do
begin
if (a[i]<0) then
k:=i;
end;
writeln;
writeln ('vvedite chislo, kotoroe nushno vstavit'); readln (b);
for i:=n+1 downto k+1 do
a[i]:=a[i-1];
a[k+1]:=b;
for i:=1 to n+1 do
write (a[i]:3,' ');
readln;
End.
Тестирование
Вводим число 7 , которое нужно вставить после отрицательного элемента, проверяя корректность работы программы. Программа ведёт себя корректно.
1:
vstavka elementa v massiv
zapolnenie massiva
13 -5 6 7 13 25 12 -8 -3 -8 9 14 23 -21 6
vvedite chislo, kotoroe nushno vstavit 7
13 -5 7 6 7 13 25 12 -8 -3 -8 9 14 23 -21 6
Задание 4:
8. Даны два одномерных массива А и В. Подсчитайте количество тех i, для которых:
а) А[i] < B[i]
б) A[i] = B[i];
в) A[i] > B[i]
Работа программы
Вводятся исходные данные: два массива оператором random.
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 4.
Таблица 4 – Назначение переменных
Переменная | Тип | Назначение |
n, m | integer | Десятичное число |
a, b | integer | Массив |
i | integer | Номер элемента массива |
g | integer | Количество элементов А[i] < B[i] |
e | integer | Количество элементов A[i] = B[i]; |
f | integer | Количество элементов A[i] > B[i] |
1.3Блок – схема алгоритма программы
Рис. 4 Блок схема алгоритма программы
Текст программы
Program sravnenie;
Const
n=15; m=15;
var i, j, g, e, f: integer;
a:array [1..n] of integer;
b:array [1..m] of integer;
Begin
randomize;
g:=0; e:=0; f:=0;
writeln ('Sravnenie massivov');
writeln ('Perviy massiv');
for i:=1 to n do begin
a[i]:=random (10);
write (a[i]:3,' ');
end;
writeln; writeln ('Vtoroy massiv');
for i:=1 to m do begin
b[i]:=random (10);
write (b[i]:3,' ');
end;
for i:=1 to n do begin
if a[i]<b[i] then begin g:=g+1; end
else
if a[i]=b[i] then begin e:=e+1; end
else
if a[i]>b[i] then begin f:=f+1; end;
end;
writeln;
writeln ('Kjlichestvo i, dlya kotoruh A[i]<B[i] = ',g);
writeln ('Kjlichestvo i, dlya kotoruh A[i]=B[i] = ',e);
writeln ('Kjlichestvo i, dlya kotoruh A[i]>B[i] = ',f);
readln;
end.
Тестирование
Вводятся 2 массива, проверяя корректность работы программы. Программа ведёт себя корректно.
1:
Sravnenie massivov
Perviy massiv
4 6 2 4 7 6 3 8 3 0 2 5 7 2 4
Vtoroy massiv
7 6 7 7 6 3 8 3 3 0 2 7 2 4 0
Kjlichestvo i, dlya kotoruh A[i]<B[i] = 6
Kjlichestvo i, dlya kotoruh A[i]=B[i] = 4
Kjlichestvo i, dlya kotoruh A[i]>B[i] = 5
Задание 5:
8. В массиве X(N) каждый элемент равен 0, 1 или 2. Переставить элементы массива так, чтобы сначала располагались все единицы, затем все двойки и, наконец, все нули (дополнительного массива не заводить).
Работа программы
Вводятся исходные данные: десятичное число с клавиатуры.
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 5.
Таблица 5 – Назначение переменных
Переменная | Тип | Назначение |
n | integer | Десятичное число |
a | integer | Массив |
i | integer | Номер элемента 1 массива |
1.3Блок – схема алгоритма программы
Рис. 5 Блок схема алгоритма программы
Текст программы
Program perestanovka;
Const
n=15;
var i: integer;
a:array [1..n] of integer;
Begin
randomize;
writeln ('Perestanovka massiva');
writeln ('Ishodniy massiv');
for i:=1 to n do
begin
a[i]:=random (3);
write (a[i]:3,' ');
end;
writeln;
writeln ('Noviy massiv');
for i:=1 to n do begin
if a[i]=1 then begin write (a[i]:3,' '); end;
end;
for i:=1 to n do begin
if a[i]=2 then begin write (a[i]:3,' '); end;
end;
for i:=1 to n do begin
if a[i]=0 then begin write (a[i]:3,' '); end;
end;
writeln;
writeln;
writeln;
readln;
End.
Тестирование
Вводится массив из трех чисел 0,1 и 2, проверяя корректность работы программы. Программа ведёт себя корректно.
1:
Perestanovka massiva
Ishodniy massiv
2 1 0 2 2 2 0 1 1 0 2 0 1 2 0
Noviy massiv
1 1 1 1 2 2 2 2 2 2 0 0 0 0 0
Задание 6:
8. Дан неупорядоченный массив целых чисел. Удалить в нем все элементы, встречающиеся более 1 раза.
Работа программы
Вводятся исходные данные: массив оператором random.
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 6.
Таблица 6 – Назначение переменных
Переменная | Тип | Назначение |
n | integer | Десятичное число |
a, b | integer | Массивы |
i | integer | Номер элемента 1 массива |
j | integer | Номер элемента 2 массива |
h | integer | Количество повторов |
1.3Блок – схема алгоритма программы
Рис. 4 Блок схема алгоритма программы
Текст программы
program prim_deistvi_nad_massivami;
Const
n=10;
var i, j, h: integer;
a: array [1..n] of integer;
b: array [1..n] of integer;
Begin
h:=0;
randomize;
writeln ('Действия над массивами');
writeln ('Исходный массив ');
for i:=1 to n do begin
a [i]:=random(10);
write (a[i]:3,' ');
end;
writeln;
for i:=1 to n do begin
b [i]:=a[i];
end;
writeln;
writeln ('Novii massiv');
for i:=1 to n do begin
h:=0;
for j:=1 to n do
if a[i]=b[j] then
h:=h+1;
if h<2 then write (a[i]:3,' ');
end;
readln;
End.
Тестирование
Вводится массив, проверяя корректность работы программы. Программа ведёт себя корректно.
1:
Действия над массивами
Исходный массив
10 3 5 4 6 4 2 7 5 3
Novii massiv
10 6 2 7