Слова перемешать наугад без повторов - 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.
Объяснение кода листинга программы
- Создается переменная
m
, которая будет хранить количество слов, введенных пользователем. - Выводится сообщение с просьбой ввести количество слов от 1 до 6 символов.
- Создается массив
a
типаarray[1..max] of string[6]
, который будет хранить введенные слова. - Выводится сообщение с просьбой ввести
m
слов от 1 до 6 символов. - Для каждого слова в массиве
a
выводится его содержимое. - Выводится сообщение с просьбой создать массив
b
типаarray[1..m] of integer
, который будет хранить числа от 1 доm
. - Для каждого числа в массиве
b
выводится его содержимое. - Выводится сообщение с просьбой перемешать массив
b
случайным образом. - Для каждого элемента массива
b
выполняется операция обмена значениями с элементом, находящимся на позицииj
(начиная с позицииm-1
). - Выводится сообщение с просьбой вывести перемешанный массив в 3 столбца.
- Для каждого элемента массива
a
выводится его содержимое. - Если текущая строка в массиве
a
является последней, то выводится символ новой строки (\n
). - Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д