Program prim_deistvi_nad_massivami;

Лабораторная работа №5

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

Вариант №8

Задание 1:

8. Дан одномерный массив чисел. Определите сумму его элементов.

Работа программы

Вводятся исходные данные: массив через оператор random.

Назначение переменных

Назначение переменных, используемых в задаче, приведено в таблице 1

Таблица 1 – Назначение переменных

Переменная Тип Назначение
n real Размер массива
i real Номер элемента
sum real Сумма элементов
a integer Массив

1.3Блок – схема алгоритма программы

program prim_deistvi_nad_massivami; - student2.ru

Рис. 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 Массив

program prim_deistvi_nad_massivami; - student2.ru 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Блок – схема алгоритма программы

 
  program prim_deistvi_nad_massivami; - student2.ru

Рис. 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Блок – схема алгоритма программы

program prim_deistvi_nad_massivami; - student2.ru

Рис. 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 массива

program prim_deistvi_nad_massivami; - student2.ru 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Блок – схема алгоритма программы

 
  program prim_deistvi_nad_massivami; - student2.ru

Рис. 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

Наши рекомендации