Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
Tdutybq
-13 / 3 / 1
Регистрация: 18.01.2012
Сообщений: 83
1

В словах, которые имеют окончание "ing", сделать замену "ing" на "ed"

19.01.2012, 22:13. Просмотров 1503. Ответов 8
Метки нет (Все метки)

Задан текст. Группы символов, разделённые пробелами (одним или несколькими) и не содержащими пробелов внутри себя, будем называть словами. В тех словах, которые имеют окончание “ing”, сделать замену “ing” на “ed”. Кто знает - помогите..

Добавлено через 9 часов 21 минуту
Ну кто-нибудь хоть что-нибудь подобное хотя-бы напишите,а??
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2012, 22:13
Ответы с готовыми решениями:

Из двух строк "ABCDE" и "12345" сделать одну - "A1*B2*C3*D4*E5"
Нужно из двух строк ‘ABCDE’ и ‘12345’ сделать одну - ‘A1*B2*C3*D4*E5’. Помогите, пожалуйста, решить!

Выходит ошибка Необработанное исключение в "0x0007102f" в "Lab08.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00078000". Как исправить
.586 .model flat, stdcall option casemap :none ; case sensitive ; Раздел подключения библиотек...

Даны числа "x" и "z", если их сумма кратна 3, то вывести "1", если нет, то 0
Даны числа "x" и "z", если их сумма кратна 3, то вывести "1", если нет, то 0.

Как исправить ошибку "warning LNK4089: all references to "winmm.dll" discarded by /OPT:REF"
В данном коде выдает ошибку "warning LNK4089: all references to "winmm.dll" discarded by /OPT:REF"....

Быстро определить, совпадает ли "строка" хотя бы с одной "строкой" из двух наборов
Строки не текстовые. Это просто какая-то последовательность из 32-х байт. Есть адрес первого байта...

8
skaa
Хочу в Исландию
1035 / 834 / 119
Регистрация: 10.11.2010
Сообщений: 1,629
20.01.2012, 03:17 2
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
        lea     esi,[sing]
 
        lea     edi,[sf]
        mov     ecx,[qcsf]
        sub     ecx,[qcsing]
        inc     ecx
mMain:
        push    edi
        push    esi
        push    ecx
 
        mov     eax,0
        mov     ecx,[qcsing]
        cld
        repe    cmpsb
        jne     mNotIng
        mov     eax,1
mNotIng:
 
        pop     ecx
        pop     esi
 
        cmp     eax,1
        jne     mNotIng2
        cmp     ecx,1
        je      mOk
        cmp     byte [edi],' '
        jne     mNotIng2
mOk:
        nop
        pop     edi
        push    edi
 
        push    ecx
        push    esi
        lea     esi,[sed]
        mov     ecx,[qcsed]
        cld
        rep     movsb
        pop     esi
        pop     ecx
mNotIng2:
 
        pop     edi
 
        inc     edi
        loop    mMain
 
        ...
 
sf      db 'the king is sitting on the meeting'
qcsf    dd $-sf
sing    db 'ing'
qcsing  dd $-sing
sed     db 'ed '
qcsed   dd $-sed
0
Tdutybq
-13 / 3 / 1
Регистрация: 18.01.2012
Сообщений: 83
20.01.2012, 12:05  [ТС] 3
Не знаю почему, но не работает..Выполняю батовский файл, захожу в среду, делаю пошаговый просмотр F7 строки sf, но там окончания не изменяются
0
Mikl___
Автор FAQ
13381 / 6381 / 630
Регистрация: 11.11.2010
Сообщений: 11,544
20.01.2012, 12:11 4
Tdutybq,
1)не известно содержание твоего "батовского файла" (правильно будет bat-файл)
2)не известно содержимое твоего asm-файла (skaa написал файл не полностью, только самую суть, а вот, что к этому файлу дописал ты неизвестно)
3)без содержимого этих двух файлов дальнейшее обсуждение превращается в "битву экстрасенсов"
0
Tdutybq
-13 / 3 / 1
Регистрация: 18.01.2012
Сообщений: 83
20.01.2012, 12:15  [ТС] 5
bat
@ echo off
c:\bc\bin\tasm /l/zi LAB1.asm
pause
c:\bc\bin\tlink /v LAB1.obj
pause
c:\bc\bin\td.exe LAB1.exe









Добавлено через 33 секунды
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
.model small
.stack 100h
.386
.data
sf      db 'the king is sitting on the meeting'
qcsf    dd $-sf
sing    db 'ing'
qcsing  dd $-sing
sed     db 'ed '
qcsed   dd $-sed
 
.code   
start:
mov ax,@data
mov ds,ax
 
        lea     esi,[sing] 
        lea     edi,[sf]
        mov     ecx,[qcsf]
        sub     ecx,[qcsing]
        inc     ecx
mMain:
        push    edi
        push    esi
        push    ecx
 
        mov     eax,0
        mov     ecx,[qcsing]
        cld
        repe    cmpsb
        jne     mNothIng
        mov     eax,1
mNothIng:
 
        pop     ecx
        pop     esi 
        cmp     eax,1
        jne     mNothIng2
        cmp     ecx,1
        je      mOk
        cmp     byte ptr [edi],' '
        jne     mNothIng2
mOk:
        nop
        pop     edi
        push    edi
 
        push    ecx
        push    esi
        lea     esi,[sed]
        mov     ecx,[qcsed]
        cld
        rep     movsb
        pop     esi
        pop     ecx
mNothIng2:
 
        pop     edi
        inc     edi
        loop    mMain
 
mov ah,9h
lea dx, sf
int 21h
 
mov ah, 4ch  
int 21h
 
 
 
 
end start



Когда в конце обращается в DOS, то выводит первоначальную строку (неизменённую) и всякие символы (и музыка пищит)О_о
0
Mikl___
Автор FAQ
13381 / 6381 / 630
Регистрация: 11.11.2010
Сообщений: 11,544
20.01.2012, 12:56 6
Лучший ответ Сообщение было отмечено Taatshi как решение

Решение

Tdutybq,
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
; masm dos exe #
.286
.model small
.stack 100h
.data
sf db 'the king is sitting on the meeting$'
qcsf = $-sf
sf1 db  qcsf dup (0) 
.code   
start:  mov ax,@data
    mov ds,ax
    mov es,ax
    mov ax,3
    int 10h
    lea si,sf
    lea di,sf1
    mov cx,qcsf
        mov ah,'d'
a1: lodsb
    cmp al,'i'
    jne a2
    cmp word ptr [si],'gn'
    jne a2
    add si,2
    sub cx,2
    mov al,'e'
    stosw
    jmp a3
a2: stosb
a3: loop a1
        mov ah,9
    lea dx,sf1
    int 21h
    mov ah,0
    int 16h
        mov ah, 4ch 
    int 21h
end start
рабочая программа
1
Tdutybq
-13 / 3 / 1
Регистрация: 18.01.2012
Сообщений: 83
20.01.2012, 18:18  [ТС] 7
Лучший ответ Сообщение было отмечено Taatshi как решение

Решение

Огроменнейшее спасибо

Добавлено через 5 часов 15 минут
И как дополнение ко всему вышеописанному - возможность вводить строку с экрана и обрабатывать её:


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
; masm dos exe #
.286
.model small
.stack 100h
.data
buf db 80 , ?, 80 dup(' ')
mes1 db 10,13, 'Vvedite  stroky:', 10,13, '$'
 
mes2 db 10,13, 'result:', 10,13, '$'
 
sf db 'the king is sitting on the meeting$'
qcsf = $-sf
sf1 db  qcsf dup (0) 
.code   
start:  mov ax,@data
        mov ds,ax
        mov es,ax
        mov ax,3
        int 10h
        mov ah,9
        lea dx,mes1
        int 21h
 
mov ah,10
        lea dx,buf
        int 21h
mov bl,buf+1
xor bh,bh
mov buf[bx+2],'$'
mov ah,9
        lea dx,sf1
        ;int 21h
 
 
        lea si,buf+2
        lea di,sf1
        mov cx,qcsf
a1:     lodsb
        cmp al,'i'
        jne a2
        cmp word ptr [si],'gn'
        jne a2
        add si,2
        sub cx,2
        mov ax,'de'
        stosw
        jmp a3
a2:     stosb
a3:     loop a1
mov ah,9
        lea dx,mes2
        int 21h
 
        mov ah,9
        lea dx,sf1
        int 21h
        mov ah,0
        int 16h
        mov ah, 4ch 
        int 21h
end start
0
v0l0d1ka
9 / 9 / 3
Регистрация: 14.12.2010
Сообщений: 129
10.12.2014, 21:02 8
Подскажите, как переделать последнюю программу чтобы заменяло ing на ed только в конце слова??
0
Mikl___
Автор FAQ
13381 / 6381 / 630
Регистрация: 11.11.2010
Сообщений: 11,544
11.12.2014, 18:04 9
v0l0d1ka,
проверяй на "ing ", "ing.", "ing?" и т.д.
1
11.12.2014, 18:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2014, 18:04

Просмотр битовой строки и замена всех имеющиеся последовательностей "111" на "000"
Здравствуйте! Нашёл по своей теме программу, но она что то не работает. Что нужно изменить? Заранее...

В заданном тексте после первого двоеточия надо поменять символ "+" на цифру "3"
в тексте после превый двоеточий + еще необходимо заменить их на 3

Заменить в строке группу символов "123" на "!", результат вывести на экран
Помогите решить задачу. Ввести с клавиатуры строку. Заменить группу символов " 123 " на " ! "....


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru