Advertisement
Guest User

Untitled

a guest
Aug 10th, 2013
568
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const
  2.   n = 100; // размер массива
  3.  
  4. var
  5.   m, base: array [0..n] of integer;
  6.   i, t, k, nom: Byte; // переменные не будут принимать больши значения, поэтому хватит и Byte
  7.   {
  8.   m - массив, в который будут заноситься значения
  9.   base - массив значений, из которого будут братся значения для массива m
  10.  
  11.   i - счётчик для цикла
  12.   t - переменная для обмена значениями двух переменных
  13.   k - кол-во нераспределенных элементов базы (массив base)
  14.   nom - номер элемента массива, назначающийся случайно
  15.   }
  16.  
  17. begin
  18. randomize; // отключаем одинаковый рандом
  19. k := n; // кол-во оставшихся элементов в базе изначально равно размеру массива m
  20.  
  21. for i := 0 to n do // цикл от первого элемента массива до последнего
  22.   base[i] := i; // инициализируем базу
  23.  
  24. for i := 0 to n do // цикл от первого элемента массива до последнего
  25.   begin // начало цикла
  26.   nom := random(k); // генерируем номер элемента, который будем брать с базы
  27.   m[i] := base[nom]; // записываем значение выбранного элемента в наш массив
  28.  
  29.   t := base[nom]; // записываем значение выбранного элемента во временную переменную
  30.   base[nom] := base[k]; // заменяем значение выбранного элемента на значение последнего неиспользованного элемента в базе
  31.   base[k] := t; // из временной переменной записываем значение в последний элемент базы
  32.  
  33.   dec(k); // уменьшаем кол-во неиспользованных элементов базы на 1
  34.   end; // конец цикла
  35.  
  36. // Вывод на экран полученного массива
  37. for i := 0 to n do
  38.   writeln(m[i]); // вывод элемента массива
  39. readln; // ждём нажатия любой клавиши для закрытия программы, чтобы успеть посмотреть на результат программы
  40. end.
Advertisement
RAW Paste Data Copied
Advertisement