Слова перемешать наугад без повторов - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Дано n кол-во слов. Нужно перемешать их наугад без повторений и вывести. Если возможно в 3 столбика

Решение задачи: «Слова перемешать наугад без повторов»

textual
Листинг программы
uses crt;
const max=50;
var a:array[1..max] of string[6];
    b:array[1..max] of integer;
    m,i,j,p,x:integer;
begin
randomize;
repeat
write('Количество слов до ',max,' m=');
readln(m);
until m in [1..max];
writeln('Введите ',m,' слов от 1 до 6 символов');
for i:=1 to m do
readln(a[i]);
clrscr;
writeln('Масcив слов');
for i:=1 to m do
write(a[i]:8);
writeln;
{создадим массив чисел от 1 до m}
for i:=1 to m do
b[i]:=i;
{перемешаем его случайно}
for i:=m downto 2 do
 begin
  j:=random(i)+1;
  x:=b[i];
  b[i]:=b[j];
  b[j]:=x;
 end;
writeln('Перемешанный массив в 3 столбца');
for i:=1 to m do
 begin
  write(a[b[i]]:8);
  if i mod 3=0 then writeln;
 end;
end.

Объяснение кода листинга программы

  1. Создается переменная m, которая будет хранить количество слов, введенных пользователем.
  2. Выводится сообщение с просьбой ввести количество слов от 1 до 6 символов.
  3. Создается массив a типа array[1..max] of string[6], который будет хранить введенные слова.
  4. Выводится сообщение с просьбой ввести m слов от 1 до 6 символов.
  5. Для каждого слова в массиве a выводится его содержимое.
  6. Выводится сообщение с просьбой создать массив b типа array[1..m] of integer, который будет хранить числа от 1 до m.
  7. Для каждого числа в массиве b выводится его содержимое.
  8. Выводится сообщение с просьбой перемешать массив b случайным образом.
  9. Для каждого элемента массива b выполняется операция обмена значениями с элементом, находящимся на позиции j (начиная с позиции m-1).
  10. Выводится сообщение с просьбой вывести перемешанный массив в 3 столбца.
  11. Для каждого элемента массива a выводится его содержимое.
  12. Если текущая строка в массиве a является последней, то выводится символ новой строки (\n).
  13. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы