Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program
- lab5_3;
- const
- lmax = 100;
- type
- Arr = array [1..lmax] of integer;
- var
- i, n, k : integer;
- A, B, C : Arr;
- r : real;
- {Подсчёт числа повторяющихся элементов
- [in]A - исходный массив
- [in]n - число его элементов
- [in]B - массив, содержащий все элементы A по подному разу
- [in]k - его размерность
- [out]C - массив, содердащий число повторений каждого элемента в массиве A}
- Procedure createArrayWithRepetitionOfElements (var A, B, C : Arr; n, k : integer);
- var
- i, j, count : integer;
- begin
- for i := 1 to k do
- begin
- count := 0;
- for j := 1 to n do
- if B[i] = A[j] then
- count := count + 1;
- C[i] := count;
- end;
- end;
- {Формирует массив, содержащий все элементы A по 1 разу
- [in]A - исходный массив
- [in]n - число его элементов
- [out]B - новый массив
- [out]k - число его ээлементов}
- Procedure createArrayWithoutRepeatedElements (var A, B : Arr; var k : integer; n : integer);
- var
- i, j : integer;
- is_contains : boolean;
- begin
- k := 0; // размерность нового массива
- for i := 1 to n do
- begin
- j := 1;
- is_contains := false;
- // проверяем содержится ли уже элемент в новом массиве
- while (j <= k) and not is_contains do
- if a[i] = b[j] then
- is_contains := true
- else
- j := j + 1;
- // если нет, запоминаем его в массив
- if not is_contains then
- begin
- k := k + 1;
- B[k] := A[i];
- end;
- end;
- end;
- BEGIN
- writeln ('Лабораторная работа №5.');
- writeln ('Задание 3');
- write ('Введите n. n = '); read (n);
- while (n <= 0) or (n > lmax) do
- begin
- writeln ('Введено недопустимое значение.');
- write ('Введите n. n = '); read (n);
- end;
- {Ввод данных}
- writeln ('Введите массив A: ');
- {randomize;
- for i := 1 to n do
- begin
- A[i] := random (50);
- write (A[i], ' ');
- end;}
- for i := 1 to n do
- begin
- repeat
- write ('Введите целое число a[', i, '] = '); read (r);
- writeln;
- until (r = round (r));
- a[i] := round (r);
- end;
- {Вычисление}
- writeln;
- createArrayWithoutRepeatedElements (A, B, k, n);
- createArrayWithRepetitionOfElements (A, B, C, n, k);
- for i := 1 to k do
- writeln('Элемент B[', i, '] = ', B[i], ' повторяется ', C[i], ' раз.');
- END.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement