По заданной фразе a$ сформировать и вывести фразы, слова в которых являются всевозможными...

0 голосов
31 просмотров

По заданной фразе a$ сформировать и вывести фразы, слова в которых являются всевозможными перестановками слов исходной фразы. Исходная информация вводится с клавиатуры(QBasic)


Информатика (77 баллов) | 31 просмотров
0

Откуда задачи? Информатики же не было еще?

0

Подруги попросили тут написать, тоже никак решить не могут

0

Я сейчас спать уже. Если до завтра никто не сделает, то завтра решу.

0

Спасибо заранее) Спокойной ночи

Дан 1 ответ
0 голосов
Правильный ответ

INPUT s$
k = LEN(s$) + 1
FOR i = 1 TO k
    IF MID$(s$, i, 1) = " " THEN n = n + 1 'считаем число слов
NEXT i
n = n + 1
DIM f$(n)
DIM z(n)
j = 1
FOR i = 1 TO k 'разрезаем фразу на слова и заносим их в массив f
    t$ = MID$(s$, i, 1)
    f$(j) = f$(j) + t$
    IF t$ = " " THEN j = j + 1
NEXT i
f$(n) = f$(n) + " "
FOR i = 1 TO n 'считаем в СС с основанием n, исключая повтор цифр
    z(i) = i
NEXT i
DO WHILE z(0) = 0
    z(n) = z(n) + 1
    k = n
    DO WHILE z(k) > n
        z(k) = 1
        k = k - 1
        z(k) = z(k) + 1
    LOOP
    p = 0
    FOR i = 1 TO n - 1 'исключаем числа с повторяющимися цифрами
        FOR j = i + 1 TO n
            IF z(i) = z(j) THEN p = 1
        NEXT j
    NEXT i
    IF p = 0 THEN 'выводим соответствующие числам слова
        FOR j = 1 TO n
            PRINT f$(z(j));
        NEXT j
        PRINT
    END IF
LOOP