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

Реферат Моделювання програми гіпотетичної машини за допомогою макрозасобів





align="justify"> Для початку сортування необхідно мати покажчики на порівнювані слова і прапор встановлюється в 1 якщо ми за один прохід здійснили хоча б один обмін, в іншому випадку все "бульбашки спливли" і сортування закінчена. В якості покажчиків будуть виступати змінні Р1 і Р2 (можна було б використовувати стандартні регістри, але для поліпшення читабельності вводимо 2-е змінні). В якості прапора вводимо змінну Flag і встановлюємо її в 1 щоб не вийти з циклу до його перегляду. Встановлюємо змінну P1 на перше слово, а Р2 на друге (Р1 + R0 тому що в R0 довжина максимального слова). Далі порівнюємо слова і здійснюємо або обмін або шукаємо далі. Для продовження порівняння необхідно зрушити покажчики Р1 і Р2 на наступну пару слів, для цього присвоюємо вказівником Р1 значення Р2, а до значення Р2 додаємо R0. Важливим є визначення кінця рядка, тому що Р2 приходить до кінця рядка раніше то перевіряємо чи не варто Р2 на кінці рядка. Для цього зручно ввести макрос перевірки кінця рядка TestEnd offset. Він здійснює порівняння поточного елемента з ознакою кінця рядка "$". Якщо Р2 стоїть на кінці рядка, то перевіряємо справили чи за цей прохід хоча б один обмін, якщо так, то продовжуємо "виштовхувати черговий пухирець" інакше сортування закінчена. p align="justify"> Розглянемо ще кілька макросів необхідних для роботи програми:


BeginProg - Ініціалізація програми. Тут виробляється прив'язка сегментних регістрів до відповідних сегментах. p align="justify"> EndProg - Стандартне завершення DOS програми.

PushReg - Збереження в стек декількох вказаних регістрів.

PopReg - Відновлення з стека декількох вказаних регістрів

ReadString string - Читання з клавіатури рядка для обробки.

WriteString string - Висновок обробленої рядка на екран.


Тепер, коли розглянуті всі команди та їх робота розглянемо розробку алгоритму роботи заданої задачі. Для початку необхідно ввести рядок за допомогою команди ReadString MyString, де MyString - наша вихідна рядок. Далі за умовою задачі необхідно видалити всі знаки пунктуації, видалимо їх за допомогою команди DeleteSign. Тепер необхідно відсортувати слова, але перед цим підготуємо рядок відповідним чином: знайдемо довжину максимального слова (команда FindMaxLen) і наведемо всі слова до одного розміру (команда ToOneSize). Тепер відсортуємо слова (команда Sorting). Запишемо довжини всіх слів (команда WriteLenWords). Здається, що завдання виконане, однак після приведення всіх слів до одного розміру в рядку залишилися зайві розділові знаки, тут ми можемо знову використовувати команду DeleteSign. Завдання повністю вирішена. Тепер запишемо алгоритм роботи програми. br/>

3. Алгоритм


Ініціалізація програми Введення рядка д...


Назад | сторінка 7 з 13 | Наступна сторінка





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

  • Реферат на тему: Розробка програми перекладу введеного рядка тексту в послідовність кодів аб ...
  • Реферат на тему: Створення базового класу &Рядок&, рядки ідентифікатора і десяткової рядка. ...
  • Реферат на тему: Проектування біжучого рядка на мікроконтролері з використанням програмного ...
  • Реферат на тему: Розробка програм по створенню бази даних приладів і додавання першого рядка ...
  • Реферат на тему: Розробка програми, динамічно підсвічує ключові слова з завантажуваного кори ...