0 / 0 / 2
Регистрация: 07.12.2016
Сообщений: 35
|
||||||
1 | ||||||
emu8086 Ввод и сравнение двух строк28.03.2017, 06:37. Показов 5004. Ответов 19
Метки нет (Все метки)
Всем снова здрасти! Поможете с задачей?
"Ввести с клавиатуры две строки символов(6-7 символов нужно ввести), одна в основном сегменте, вторая в ES. Сравнить строки, не совпадающие символы строки приемника заменить на символ "5". Вывести на экран число не совпадающих символов и вывести новую строку". Почему-то препод дал задание, которое НИКТО из группы не знает как составить для него задание. Добавлено через 11 часов 45 минут Вот пытался сделать код хотя бы для ввода символов в строку. Выводит строку "Введите строку а" и потом символы русско-латинские, среди которых можно найти "Ошибка при вводе числаПереполнениеНЕТЦИФРЫu".
0
|
28.03.2017, 06:37 | |
Ответы с готовыми решениями:
19
Ввод двух строк и их сравнение Ввод и сравнение двух строк Сравнение двух строк Сравнение двух строк |
Модератор
|
|||||||||||
28.03.2017, 08:09 | 2 | ||||||||||
При выводе строки при помощи int 21h ah=09h требуется, чтобы сама строка завершалась символом '$'.
И в конце строки 11 - лишний апостроф. Поэтому получается несколько странная подсветка операторов. Добавлено через 2 минуты И нет кода завершения программы и передачи управления ОС.
1
|
0 / 0 / 0
Регистрация: 10.10.2016
Сообщений: 20
|
|
28.03.2017, 10:19 | 3 |
Ну ввести-то, ввели, а как сделать что бы находить несовпадающие эл-ты и менять их на другие и после этого выводить новые строки??
0
|
Модератор
|
|
28.03.2017, 16:12 | 4 |
Antony_Chet, а кто вы-то такой по отношению к SegaMD64BIT?
0
|
0 / 0 / 0
Регистрация: 10.10.2016
Сообщений: 20
|
|
28.03.2017, 16:18 | 5 |
Человек с такой же проблемой.
0
|
Модератор
|
|
28.03.2017, 16:21 | 6 |
Тогда ЧеловекСТакойЖеПроблемой, приводите своё решение такой же проблемы, т.к. я не знаю, как у вас организована программа, называются переменные и прочее.
0
|
0 / 0 / 0
Регистрация: 10.10.2016
Сообщений: 20
|
|
28.03.2017, 16:26 | 7 |
Так поэтому мы и просим помощи т.к. не можем разобраться.
0
|
Модератор
|
|
28.03.2017, 16:29 | 8 |
Стоять-бояться. Сообщение
можно трактовать лишь так - уже есть код, который решает половину задачи. И никак иначе. Так эту половину я и прошу привести. Или наберу без проверки в браузере несколько строк, которые считают разные элементы, а вы сами встроете их в свой код и отладите (т.е. не факт, что код без проверки заработает).
0
|
0 / 0 / 0
Регистрация: 10.10.2016
Сообщений: 20
|
|
28.03.2017, 16:39 | 9 |
Ну вообще я проверил код перед тем как писать вам. И все символы в строку вводятся(их 6-7), а дальше я не понимаю как сделать так что бы находить несовпадающие эл-ты, менять их на нули и записывать в строку заного. Так как вы не хотите разговаривать со мной, я уйду. Спасибо за помощь.
0
|
Модератор
|
|
28.03.2017, 16:44 | 10 |
Я тоже не жажду общаться с человеком, который дважды игнорировал мою просьбу опубликовать наработки.
Успехов в учёбе!
0
|
0 / 0 / 2
Регистрация: 07.12.2016
Сообщений: 35
|
|
28.03.2017, 17:16 [ТС] | 11 |
ФедосеевПавел, что вы так на него взъелись?Antony_Chet, мой одногруппник, и у него такое же задание и он тоже не знает как его решить.
Насчет задачи: спасибо за помощь в вводе, но теперь самое основное - замена, подсчет количества замен и вывод новой строки. Если не сложно и понимаете в этом - просьба помочь
0
|
Модератор
|
||||||
28.03.2017, 18:02 | 12 | |||||
SegaMD64BIT, я на него не взъелся. Но как вы себе представляете моё продолжение работы над кодом Antony_Chet, если он ни строчки не приводит? Хотя я дважды попросил его об этом.
Хотя бы вы опубликуйте тот код, что уже есть. Или сразу говорите, что ничего нет, сегодня в ночной клуб идёте, а завтра лабу сдавать. Добавлено через 34 минуты Хорошо. Как вы просили - решение второй части. Но сопрягать с первой частью программы - не буду принципиально, так же как и вы принципиально игнорируете.
1
|
0 / 0 / 2
Регистрация: 07.12.2016
Сообщений: 35
|
|
28.03.2017, 19:03 [ТС] | 13 |
ФедосеевПавел, Неее, мы не из таких мажорных студентов.
Простите, я час мучаюсь из виртуалки переместить файл в хост ОС
0
|
Модератор
|
|
28.03.2017, 19:17 | 14 |
Какая виртуалка - VirtualBox?
0
|
0 / 0 / 2
Регистрация: 07.12.2016
Сообщений: 35
|
||||||
28.03.2017, 19:36 [ТС] | 15 | |||||
еееее, наконец-то
ФедосеевПавел, а вы написали вторую часть под МАСМ? Мы просто используем ТАСМ и я не очень понимаю, чем они различаются, в чем различие по синтаксису, как оформить начало программы или сегмента и т.д.
0
|
Модератор
|
|
28.03.2017, 19:40 | 16 |
Запускать DOS программы можно двумя путями
1. Виртуальная машина (VirtualBox) 2. Эмулятор DOSBox. Для связи с виртуальной машиной VirtualBox я использовал виртуальный Floppy Disk - виртуальную дискету, когда файл размером 1474560 байт в Windows виден, как дискета A:. эту дискету можно подключить к виртуальной машине или в виде файла-образа или в виде дискеты. Ну, а в DOSBox всё просто - выделил папку в качестве диска D: и обменивайся через неё файлами через проводник. Добавлено через 1 минуту Нет. Это tasm 4.1. Добавлено через 56 секунд Проверяйте компиляцией и компоновкой (линковкой).
0
|
0 / 0 / 2
Регистрация: 07.12.2016
Сообщений: 35
|
|
28.03.2017, 20:32 [ТС] | 17 |
ФедосеевПавел, Спасибо за вторую часть, завтра будем думать, подставлять.
А если вам не лень и есть желание - подстройте под ту первую часть, что я вам дал :3
0
|
Модератор
|
|
28.03.2017, 22:53 | 18 |
Я пользовался http://www.ltr-data.se/opencode.html/#ImDisk.
https://sourceforge.net/projects/imdisk-toolkit/ В примечаниях у меня пометка "Установить ImDisk - это только драйвера, а затем ImDisk Tk - это оболочка для управления." Создавал файл размером 1474560 байт. Назначал его образом дискеты. Форматировал уже как диск под Windows. Из проводника записывал на него файлы. Подключал к VirtualBox. Только не помню - или как проброс дискеты или как файл-образ в виде дискеты. Потом перешёл на DOSBox и забыл.
0
|
0 / 0 / 2
Регистрация: 07.12.2016
Сообщений: 35
|
|
29.03.2017, 07:28 [ТС] | 19 |
Я вот эту часть понять не могу, зачем она?
Добавлено через 17 минут ФедосеевПавел, И у нас похоже или версии ТАСМ различаются, или я не знаю почему, но у меня все по-другому оформляется и выделяется
0
|
Модератор
|
|
29.03.2017, 16:43 | 20 |
Думаю, что вам преподают с некоторым упрощением. Вместо прямого обращения к DOS API (int 21h) вы применяете именованные процедуры из библиотеки io.asm. А у меня нет этого самодельного файла от вашей кафедры, и на форуме спрашивают люди с другими методичками - поэтому я использую то, что будет компилироваться и работать.
Моя программа рабочая - можете проверить компиляцией. Строки 48-50 - переход на новую строку, т.к. функция ah=0Ah int 21h строку не переводит и вывод строки наложиться на "старые" символы. Строки 52-56 - преобразование числа Count в строку и вывод строки. Вернее, преобразование в символ цифры и вывод этого символа. Здесь просто. По условию Count ограниченно диапазоном от 0 до 7 - т.е. одной цифрой. Как получить символ цифры - прибавить к значению Count код символа '0'. За подробностями работы DOS API (int 21h) - в справочник (я им всегда пользуюсь при написании учебных программ) http://www.codenet.ru/progr/dos/int_0026.php Если у вас иначе оформление - так код обработки без изменения. Иначе вывод на экран - измените вывод на экран.
0
|
29.03.2017, 16:43 | |
29.03.2017, 16:43 | |
Помогаю со студенческими работами здесь
20
Сравнение двух строк Сравнение двух строк Сравнение двух 0-терминированных строк Вывод двух строк и сравнение их длин Ввод двух строк и их вывод Ввод двух векторов и их сравнение Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |