Переделать программу так, чтобы пользователь вводил максимальный размер массива - Turbo Pascal
Формулировка задачи:
Помогите переделать программу так, чтобы пользователь вводил максимальный размер массива n
Решение задачи: «Переделать программу так, чтобы пользователь вводил максимальный размер массива»
textual
Листинг программы
type arrA=array of byte;
arrNumbers=array of byte;
var a:arrA;
b:arrNumbers;
count,numb:byte;
n:integer;
procedure randomArr(var a:arrA);
var i:byte;
begin
writeln('Введите размер массива');
readln(n);
setlength(a,n);
randomize;
writeln('Ishodniy massiv');
for i:=0 to n-1 do
begin
a[i]:=random(10);
write(a[i]);
end;
writeln;
end;
procedure search(a:arrA;var numb:byte;var count:byte);
var i:byte;
begin
setlength(b,10);
for i:=0 to 9 do
b[i]:=0;
for i:=0 to n-1 do
inc(b[a[i]]);
count:=0;
for i:=0 to 9 do
if b[i]>count then
begin
count:=b[i];
numb:=i;
end;
end;
procedure output(numb:byte;count:byte);
begin
write('Naibolee chasto vstrechaetsya eliment ',numb,' ',count,' raz');
readln;
end;
begin
randomArr(a);
search(a, numb, count);
output(numb,count);
end.
Объяснение кода листинга программы
- Создаются два типа данных: arrA и arrNumbers.
- Создаются переменные a, b, count и numb типа arrA и одна переменная n типа integer.
- Создается процедура randomArr, которая принимает в качестве параметра arrA и выполняет следующие действия:
- запрашивает у пользователя размер массива;
- устанавливает длину массива a в n;
- инициализирует генератор случайных чисел;
- выводит сообщение
Ishodniy massiv; - заполняет массив a случайными числами от 0 до 9 (предполагается, что это максимальное значение для типа byte);
- выводит сообщение
Ishodniy massivснова.
- Создается процедура search, которая принимает в качестве параметров arrA, numb и count. Она выполняет следующие действия:
- устанавливает длину массива b в 10;
- инициализирует переменные count и numb;
- проходит циклом по всем элементам массива a;
- увеличивает значение count каждый раз, когда встречается число, большее текущего значения count;
- после завершения цикла выводит сообщение
Naibolee chasto vstrechaetsya eliment; - выводит сообщение
Naibolee chasto vstrechaetsya elimentс указанием найденного значения count.
- Создается процедура output, которая принимает в качестве параметров numb и count. Она выполняет следующие действия:
- выводит сообщение
Naibolee chasto vstrechaetsya eliment; - выводит сообщение
Naibolee chasto vstrechaetsya elimentс указанием найденного значения count.
- выводит сообщение
- Выполняется последовательность действий:
- вызывается процедура randomArr(a);
- вызывается процедура search(a, numb, count);
- вызывается процедура output(numb,count);
- выводится сообщение
Naibolee chasto vstrechaetsya eliment; - выводится сообщение
Naibolee chasto vstrechaetsya elimentс указанием найденного значения count.