|
0 / 0 / 0
Регистрация: 25.11.2019
Сообщений: 3
|
|
TASM Переставить в строке слова, поменяв местами первое слово с последним, второе с предпоследним25.11.2019, 14:44. Показов 8891. Ответов 10
По пути обучения встретился с данным заданием, не могу придумать принцип решения, может у кого возникнут идеи?
Ввести с клавиатуры строку, содержащую несколько слов, разделенных пробелом. Переставить в ней слова, поменяв местами первое слово с последним, второе с предпоследним и т.д. Вывести результаты на экран.
0
|
|
| 25.11.2019, 14:44 | |
|
Ответы с готовыми решениями:
10
Переставить слова, поменяв местами первое слово с последним, второе с предпоследним Переставить символы в строке, поменяв местами первый символ с последним, второй с предпоследним и т.д. Переставить все слова в исходном тексте так, чтобы первое слово стало последним, второе-предпоследним и т.д. |
|
Модератор
|
|
| 25.11.2019, 15:10 | |
|
Принцип, думаю, простой. Без реализации уже встречал его описание.
1. Реверс всей строки - поменять местами все символы. 2. Выделять в строке слова и выполнять реверс каждого слова. Можно и сложнее: 1. Выделять в строке слова 2. Для каждого слова выполнять циклическое вращение подстроки (от начала слова до конца строки) на величину длины слова Можете отработать алгоритм на любом языке программирования. Потом построчно переводить его на ассемблер - там будет почти "строка на языке" - "строка на ассемблере". Объём кода великоват для выполнения его за вас. Образцы выделения слов и пояснения Описание алгоритма (tasm StrLen) Количество слов, содержащих более 3-х символов Программы на его основе (изменено лишь действие после выделения очередного слова: (tasm StrLen) В строке в словах с четным номером изменить порядок букв на обратный (tasm StrLen) Расположить слова в обратном порядке (tasm StrLen) Найти и вывести все симметричные слова (tasm StrLen) Обмен в исходном файле соседних слов местами (tasm StrLen) Удалить слова с повторяющимися буквами (tasm StrLen) Выяснить, есть ли во введённом тексте слова, начинающиеся с буквы "А", и сколько таких слов (tasm StrLen) Определить сколько слов в тексте начинаются и оканчиваются одной и той же буквой (tasm StrLen) Выяснить, есть ли во введённом тексте слова, оканчивающиеся на "f" (tasm StrLen) Определить сколько слов содержат хотя бы одну букву "В" (tasm StrLen) Вывести последнее слово строки (fasm DOS StrLen) Нахождение короткого слова Обменять слова с максимальным и минимальным количеством букв «а» (tasm обмен двух слов через буфер) Добавлено через 6 минут Циклическое вращение подстроки Сортировка слов в строке по ASCII. Программа зацикливается Дана последовательность от 1 до 30 слов. Вывести все слова в алфавитном порядке
1
|
|
|
0 / 0 / 0
Регистрация: 25.11.2019
Сообщений: 3
|
|
| 25.11.2019, 15:11 [ТС] | |
|
Благодарю, сейчас буду работать
0
|
|
|
Модератор
|
|
| 25.11.2019, 15:25 | |
|
Я бы рекомендовал
1. Реверс всей строки - поменять местами все символы. 2. Выделять в строке слова и выполнять реверс каждого слова. Это выглядит наиболее просто. Реверс подстроки можно реализовать процедурой.
0
|
|
|
Модератор
|
||||||
| 27.11.2019, 19:44 | ||||||
Сообщение было отмечено AlbertBor как решение
Решение
Реверс всей строки и последующий реверс каждого слова
1
|
||||||
|
0 / 0 / 0
Регистрация: 25.11.2019
Сообщений: 3
|
|||||||||||
| 05.12.2019, 16:49 [ТС] | |||||||||||
|
Что идёт не так в программе?
Требуется ввести с клавиатуры строку из слов с разделителями, программа должна поменять местами первое и последнее слово, второе с предпоследним и так далее до конца, после чего вывести начальный вариант и результат. Основываясь на методичках и статьях в интернете написал данный код, но вместо строки выводятся непонятные символы, по всей видимости из кеша Вот код, прошу прощения, что без комментариев (позже могу скинуть скрины диаграммы, по которой писал сам код)
Недавно тут же помогли с кодом, но он оказался слишком замороченным и не подошёл, пришлось писать самому Вот тот код, в нем, к тому же, не организован ввод строки с клавиатуры
0
|
|||||||||||
|
Модератор
1245 / 676 / 292
Регистрация: 10.11.2019
Сообщений: 1,406
|
||||||
| 06.12.2019, 11:31 | ||||||
|
Задача
Ввести строку Поменять первое слово с последним, второе с предпоследним и т д Алгоритм. На первый взгляд кажется, что необходимо строку делить на слова, менять слова местами и т д. На самом деле всё проще. Пусть имеется строка one two three Отобразим строку зеркально eerht owt eno Теперь чтобы получить нужный результат надо все слова отразить зеркально: three two one Это можно сделать, занеся символы слова в стек, а затем вытолкнув из стека на печать.
0
|
||||||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|||||||
| 06.12.2019, 15:48 | |||||||
|
Ещё проще:
0
|
|||||||
|
Модератор
|
||||||||||||
| 06.12.2019, 18:11 | ||||||||||||
|
Если вынести повторения в процедуры, убрать комментарии и пустые строки, метки не выделять отдельными строками, сэкономить на объявлении и инициализации сегмента данных, убрать именованные константы, воспользоваться трюками и сэкономить на одном вызове процедуры Show (экономия 1 строки) - так и мой код превращается в короткий образец:
Не, вот так, чтобы усилить эффект
0
|
||||||||||||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||||||||
| 08.12.2019, 00:46 | ||||||||
|
Ревесировать реверсированеое, а "навар" от двойного реверсирования в карман положить. ![]()
Посчитайте целесооброзность использования п/п-м и прямого кода.
0
|
||||||||
|
Модератор
|
|
| 08.12.2019, 15:16 | |
|
Всё это лирика.
Как понимаю, топикстартер не может понять алгоритм и, естественно, сдать лабу. Пытался что-то изобразить - но из-за отсутствия представления об алгоритме - ничего не получается - ведь опубликовав наработки, он так и не пояснил, как он решает. AlbertBor, вы должны сделать декомпозицию задачи и решать её по частям. При этом, ускорение отладки будет за счёт отсутствия ввода строки - после получения рабочего кода добавите ввод. В любом случае, нужно научиться выделять слова. Значит учитесь выделять и выводить эти слова в кавычках, чтобы видеть, что выделено слово без дополнительных пробелов. А дальше - всё зависит от выбранного способа решения - алгоритма.
1
|
|
| 08.12.2019, 15:16 | |
|
Помогаю со студенческими работами здесь
11
В строке поменять слова первое с последним,второе с предпоследним и т.д. Что нужно поменять что бы программа меняла местами слова первое с последним второе с предпоследним и т.д? Сформировать строку, «склеив» первое слово с последним, второе с предпоследним и т.д. Дана строка. Поменять Первое слово с последним, второе с предпоследним и т.д Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|