Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 24

Сформировать строку, содержащую вместо указанного сочетания строку с сочетанием “double”

21.04.2013, 09:54. Показов 3365. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется строка длиной до 100 символов, в которой несколько раз встречается сочетание ”real”. Сформировать строку, содержащую вместо указанного сочетания строку с сочетанием “double”.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.04.2013, 09:54
Ответы с готовыми решениями:

Имеется строка длиной до 100 символов, в которой несколько раз встречается сочетание ”real”. Сформировать строку, содержащую вместо указанного соч
Имеется строка длиной до 100 символов, в которой несколько раз встречается сочетание ”real”. Сформировать строку, содержащую вместо...

Сформировать строку, содержащую двоичное представление неотрицательной дроби
Сформировать строку, содержащую двоичное представление неотрицательной дроби. Помогите написать программу, цикл с помощью while.

Сформировать строку, содержащую все возможные не повторяющиеся комбинации строк
Никак не могу разобраться... дано - 8 массивов строк с разным кол-вом элементов, возможен массив без элементов. задание - сформировать...

22
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
27.04.2013, 14:45
три часа плодотворной работы и прога готова.
Вложения
Тип файла: rar 222.rar (332 байт, 21 просмотров)
1
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
29.04.2013, 16:46
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
.186
.model small
.data
    str1 db 'real'
    len1 equ $-str1
    str2 db 'double'
    len2 equ $-str2
    OK db 13, 10, 'novaya stroka: $'
    str_in db 100, ?, 101 dup (?)
.stack 256
.code
start:
    mov ax, @data
    mov ds, ax
    mov es, ax
    ;ввод строки
    mov ax, 0a00h
    mov dx, offset str_in
    int 21h
    ;в конец введенной строки помещается код 13, но в длинну строки он не включается
    ;надо его заменить на $, чтобы потом можно было выводить строку через 9 функцию 21 прерывания
    mov di, offset str_in+2
    mov bl, str_in[1]
    xor bh, bh
    MOV str_in[bx+2], '$'
    mov cx, bx
    inc str_in[1]           ;и увеличить длинну строки на единицу
    
    cld
@@1:
    mov al, 'r'         ;будем искать в строке символ 'r' и если он будет, то от него искать строку real
    repne scasb
    jcxz write          ;если просмотрели всю строку то на выход
    pusha               
    dec di          ;di на 'r'
    mov cx, len1    ;длинна строки real
    mov si, offset str1
    repe cmpsb      
    je @1           
    popa                ;если строки не равны. то продолжаем поиск
    jmp short next
@1: 
    call change     
    popa
    add di, len2-1          ;пропускаем подстроку 'double'
    sub cx, 3               ;хоть убей не помню для чего это :DD скажите что во время отладки обнаружили что так надо)))
    sub str_in[1], len1     ;получаем новую длинну строки
    add str_in[1], len2
next:
    jcxz write              
    jmp short @@1
    ;тут уже вывод
write:  
    mov dx, offset OK
    mov ah, 9
    int 21h
    mov dx, offset str_in+2
    int 21h
exit:   
    xor ax, ax
    int 16h
    mov ax, 4c00h
    int 21h
 
change proc
    pusha
    mov si, di              ;в di смещение символа 'r', кладем его в si
    push si 
    mov ax, si
    sub ax, offset str_in+2     
    xor cx, cx
    mov cl, str_in[1]
    mov di, offset str_in+2 ;получаем смещение, куда нужно переместить строку
    add di, cx
    dec di
    add di, len2-len1
    ;получаем сколько символов будем перемещать
    sub cx, ax
    add si, cx  ;настраиваем si на последний символ в строк
    dec si
    std
    ;перемещаем строку с конца
    rep movsb
    pop di
    ;di на строку real
    sub di, len1
    mov si, offset str2
    mov cx, len2
    cld
    ;и затираем ее строкой double
    rep movsb
    popa
    ret
change endp
end start
2
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 24
29.04.2013, 16:51  [ТС]
Спасибо большое))) я позже проверю, сейчас пока не получается это сделать)))
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
29.04.2013, 16:54
DayX, да а что проверять то? вы смотрели прогу, которую я выше прикреплял? это и есть сей код в действии
0
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 24
29.04.2013, 16:56  [ТС]
у меня просто 64 битная стоит, просто поразбираться посидеть не получается нужна 32 битная))) я понял это)))
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
29.04.2013, 17:01
не учел один нюанс: строка 9 - замени на это:
Assembler
1
str_in db 100, ?, 152 dup (?)
1
3 / 3 / 1
Регистрация: 26.12.2012
Сообщений: 11
29.04.2013, 18:31
Sdal 9 praktosov ranwe vsei gruppy
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
29.04.2013, 18:51
SEREJQA, ой как интересно, а расскажи поподробнее
0
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 7
13.05.2013, 15:03
Не могу сделать подобный код, как сделать чтобы если первичное слово в моем случае "integer" затиралось полностью словом "byte" ?
0
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
13.05.2013, 16:09
замени real на integer, а double на byte. и не задавай слишком глупых вопросов)))
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
13.05.2013, 16:17
sh2ezo,
ему нужна готовая программа с "подробными комментариями"
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
13.05.2013, 16:39
Цитата Сообщение от sh2ezo Посмотреть сообщение
замени real на integer, а double на byte. и не задавай слишком глупых вопросов)))
а вот и нифига!!! integer длиннее слова byte, тут еще надо перемещение строки в другую сторону делать и длинну перемещаемой подстроки вычмслять по-другому!
0
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
13.05.2013, 16:41
Troll_Face, а ты думал, я твой код читал особо внимательно?

Я только увидел, что у тебя длина строки вычисляется на этапе сборки, вот и предположил, что остальное тоже на автомате делается)
1
13.05.2013, 16:45

Не по теме:

Не по теме:

Цитата Сообщение от sh2ezo Посмотреть сообщение
а ты думал, я твой код читал особо внимательно?
а зря, вдруг у меня офигенно продвинутые методы применяются в программах :D, о которых ты не знаешь, а мог бы использовать в своей практике:)



Добавлено через 1 минуту
Цитата Сообщение от sh2ezo Посмотреть сообщение
Я только увидел, что у тебя длина строки вычисляется на этапе сборки, вот и предположил, что остальное тоже на автомате делается)
честно говоря, я сам уже хотел было заменить эти два слова, уже загнал код в блокнот и... тут меня осенило. ну и мне стало лень это делать. как-нибудь в другой раз:) :smoke:

0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
13.05.2013, 16:49
Лучший ответ Сообщение было отмечено как решение

Решение

Troll_Face,
  1. создаем строку "приемник" и по-байтно копируем в нее содержимое строки "источник" пока не встретим букву "r"
  2. если сразу за этой буквой "eal", тогда копируем в строку "приемник" слово “double” и далее копируем ТО, что было за буквой "l"
  3. иначе копируем пока снова не встретим букву "r"
3
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 7
13.05.2013, 18:46
И еще вопрос как сделать, чтобы программа не останавливалась после, нахождения и замены?
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
13.05.2013, 18:49
в моей проге строки 60-61 тормозят прогу
2
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
13.05.2013, 18:53
Nyti,
чтобы ответить на твой вопрос нужно видеть ТВОЮ программу, "которая, останавливается после нахождения и замены"
0
AlexNih
25.06.2013, 15:56
Как сдвинуть точку записи на 3 байта назад и тем самым затереть ger продолжая заполнять строку. Извиняюсь за непонятность вопроса.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.06.2013, 15:56
Помогаю со студенческими работами здесь

Сформировать новую строку, содержащую те же символы, но расположенные в обратном порядке
Разработайте консольное приложение, которое, используя классstd :: stringвводит данные и выводит результат решения данной задачи: Дана...

Поменять строку, содержащую минимальный элемент на строку, содержащую максимальный элемент
чесно говоря не знаю как играться с min и max в массивах. Помогите пожалуйста з задачкой: есть массив а(6,8), нужно поменять строку что...

Сформировать из трех строк (фамилия, имя, отчество) одну строку, содержащую фамилию и инициалы
Здравствуйте! Ребят, помогите пожалуйста. Дано три строки, содержащие фамилию,имя, отчество. Сфор мировать из них одну строку,...

Матрицы: поменять местами первую строку и строку, содержащую максимальный элемент
1)В матрице поменять местами 1 строку и строку содержащие последнее вхождение элемента максимального где максимальный- максимальный элем...

Переставить местами строку, содержащую минимальный элемент и последнюю строку
Дан двумерный массив целых чисел из 4 столбцов и 3 строк. Переставить местами строку, содержащую минимальный элемент и последнюю строку..


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru