Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Деякі способи розбиття множин

Реферат Деякі способи розбиття множин





tr 1 [ k 1] ^. p ; { додати розмірність, доданого подпонятія }

Inc ( k 1); { збільшити k 1 на 1 }

End ;

If ( sum > i ) or ( k 1 = 2) then begin { якщо кількість елементів отриманого поняття більше розмірності завдання або k 1 = 2 , тобто додано тільки одне поняття в подпонятіе, то, щоб уникнути зайвих дужок і неправильних рішень виконати }

Dispose ( pot ^. next ); { звільнити пам'ять, займану цим В«НеправильнимВ» поняттям }

Pot ^. next : = nil ; { вказати, що попереднє поняття було останнім }

If k 1 = 2 then break {< b> якщо k 1 = 2 , то вийти з основного циклу програми }

End

Else begin

If i = POW then begin { якщо розмірність поточної підзадачі дорівнює розмірності основного завдання, то }

Writeln ( fil , pot ^. next ^. s ); { записати поняття в файл }

Writeln ( pot ^. next ^. s ); { і вивести на екран }

Dispose ( pot ^. next ); { звільнити пам'ять, займану поняттям , так як поняття розмірності задачі нам больше не знадобляться }

Pot ^. next: = nil

End

Else begin { інакше инициализируем поняття до кінця }

Pot: = pot ^. next;

Pot ^. s: = pot ^. s + ')'; { закриваємо дужку }

Pot ^. next : = nil ; { Вказуємо, що це поняття останнім у списку }

Pot ^. p : = I {< b> вказуємо кількість елементів, містяться в понятті }

End

End ;

For j : = k 1-1 downto 2 do begin { k 1 зараз показує кількість подпонятій останнього поняття плюс 1. Тому в цьому циклі, який спробує визначити наступну комбінацію понять і використовується змінна k 1. Ця частина програми розглядає випадок, коли подпонятія будуть ставати НЕ наступними за списком подпонятіямі (принаймні не всі), а будуть відбуватися інші переходи. Тобто цей цикл розрахований на те, щоб не дозволити подпонятію з великим номером за списком у понятті бути великим за абсолютним адресою (за часом створення) }

В 

If (Str1 [j] ^. Next = str1 [j-1]) and (str1 [j +1] = str1 [j]) or ((J = k1-1) and (str1 [j] <>

Str 1 [ j -1])) then begin { якщо за подпонятіем з номером j за списком слід подпонятіе з номером j -1 і подпонятія з номером j і j + 1 збігаються, або j дорівнює кількості подпонятій і останні два поняття збігаються (порівняння йде за абсолютними адресами розташування понять в пам'яті), то }

str 1 [ j ]: = str 1 [ j ] ^. next ; { подпонятіе з номером j переходить на наступне за списком подпонятіе }

For j : = J +1 to k 1-1 do str 1 [ j ]: = f ; { а всі наступні подпонятія, стають рівними першому (елементарному) подпонятію }

goto met { хоча застосування оператора безумовного переходу вважається поганим стилем програмування, але тут він виправданий, щоб НЕ заплутувати програму новими циклами }

End ;

End ;

For j : = k 1-1 downto 2 do begin { нов и й цикл, який перемкне відповідні подпонятія. Ми виділяємо це в новий цикл, так як потрібно було перевірити на наявність "граничнихВ» переходів (Див....


Назад | сторінка 5 з 6 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Creation of control system by a personnel how to begin with a zero
  • Реферат на тему: Поняття мови як найважливіше комунікативне якість. Поняття полісемії
  • Реферат на тему: Поняття про вимірювальних шкалах, їх види. Поняття про шкалировании
  • Реферат на тему: Система забезпечення виклику екстрених оперативних і інших служб життєзабез ...
  • Реферат на тему: Поняття позову і його елементів