Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const
- n = 100; // размер массива
- var
- m, base: array [0..n] of integer;
- i, t, k, nom: Byte; // переменные не будут принимать больши значения, поэтому хватит и Byte
- {
- m - массив, в который будут заноситься значения
- base - массив значений, из которого будут братся значения для массива m
- i - счётчик для цикла
- t - переменная для обмена значениями двух переменных
- k - кол-во нераспределенных элементов базы (массив base)
- nom - номер элемента массива, назначающийся случайно
- }
- begin
- randomize; // отключаем одинаковый рандом
- k := n; // кол-во оставшихся элементов в базе изначально равно размеру массива m
- for i := 0 to n do // цикл от первого элемента массива до последнего
- base[i] := i; // инициализируем базу
- for i := 0 to n do // цикл от первого элемента массива до последнего
- begin // начало цикла
- nom := random(k); // генерируем номер элемента, который будем брать с базы
- m[i] := base[nom]; // записываем значение выбранного элемента в наш массив
- t := base[nom]; // записываем значение выбранного элемента во временную переменную
- base[nom] := base[k]; // заменяем значение выбранного элемента на значение последнего неиспользованного элемента в базе
- base[k] := t; // из временной переменной записываем значение в последний элемент базы
- dec(k); // уменьшаем кол-во неиспользованных элементов базы на 1
- end; // конец цикла
- // Вывод на экран полученного массива
- for i := 0 to n do
- writeln(m[i]); // вывод элемента массива
- readln; // ждём нажатия любой клавиши для закрытия программы, чтобы успеть посмотреть на результат программы
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement