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

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





justify"> Складність представляє не сам процес сортування, і навіть не процес звернення до елементів сортування - словами, а процес обміну слів, т.к. слова можуть бути різної довжини, а команда ChangeWords виконує обмін слів з однаковою довжиною. Одним з виходів є ускладнення алгоритму обміну слів. На перший погляд це вирішить проблему, проте вирішивши цю проблему таким чином ми породимо ще кілька проблем. Зокрема доведеться ввести ще команди які будуть: видаляти в рядку зайві букви залишилися від більш довгого слова і розширювати рядок для запису більш довгого слова. Таким чином доведеться ускладнити алгоритм роботи всієї програми і, відповідно, збільшити її розміри і зменшити швидкодію. Замість усього цього можна зробити наступне - у рядку всі слова "привести до одного розміру" шляхом додавання до кінця слів прогалин чи інших знаків пунктуації. Довжина такого слова з доданими пробілами повинна бути дорівнює довжині максимального слова в рядку. Відповідно до найдовшого слова нічого додавати не треба. Цим самим ми добилися:

Не треба писати нових команд розширення та видалення зайвих символів

Чи не доведеться ускладнювати алгоритм обміну слів

Процес звернення до елементів сортування (словами) значно полегшиться, тому що довжина всіх слів однакова і тоді вони відстоять один від одного на деякий постійне число.

Приведення всіх слів до одного розміру здійснюється макросом ToOneSize.

Алгоритм команди полягає в обчисленні довжини слова, визначенні його кінця і зсуву вправо рядка на певне число рівне (довжина max слова-довжина поточного слова), цим ми прирівнюємо всі слова до одного розміру. Перед виконанням цієї команди ми видаляємо з рядка всі знаки пунктуації та поділяємо слова комами. Тому при зсуві кожен попередній символ дублюється як символ коми і немає небезпеки "появи нового непотрібного слова". p align="justify"> Зрушення здійснюється макросом ShiftRight offset. Для якого вказується адреса початку зсуву. Далі обчислюється кількість зсуваються байтів і, за допомогою команди MOVSB, проводиться зсув на один байт вправо. p align="justify"> Для знаходження довжини максимального слова розроблений макрос FindMaxLen. Алгоритм його роботи простий - він переглядає рядок вважаючи довжину поточного слова і порівнюючи її з довжиною максимального слова, якщо довжина поточного слова більше довжини максимального, то довжина поточного стає максимальною довжиною. Далі максимальна довжина записується в регістр R0 і до нього додається число 5. 5 - це число 3-х цифр і 2-х дужок для запису в кінець кожного слова його довжини. p align="justify"> Тепер приступимо до розробки алгоритму сортування. Далі нам знадобляться ще деякі команди, проте вони не так складні і об'ємні, тому ми їх розглянемо по ходу розробки алгоритму. p align="justify"> При розробці будемо використовувати паскалевская еквівалент наведений вище.


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





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

  • Реферат на тему: Мотив «спустошеного» слова в ліриці І. Анненського і його розвиток в поезії ...
  • Реферат на тему: Мотив «спустошеного» слова в ліриці І. Анненського і його розвиток в поезії ...
  • Реферат на тему: Склад слова і методика його вивчення на уроках російської мови в початковій ...
  • Реферат на тему: Розробка програми, динамічно підсвічує ключові слова з завантажуваного кори ...
  • Реферат на тему: Структура слова