powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Кол-во слов в предложении( ASM)
6 сообщений из 6, страница 1 из 1
Кол-во слов в предложении( ASM)
    #33055014
Kamerad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста, как написать программу на Assembler'е (под DOS)? которая бы подсчитывала количество слов в предложении( при условии, что между словами может быть несколько пробелов)
...
Рейтинг: 0 / 0
Кол-во слов в предложении( ASM)
    #33055276
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упрощаем алгоритм до безобразия:
а) удалить повторяющиеся пробелы
б) дописать в конец пробел, если там такового нету
в) посчитать кол-во пробелов
P.S. Правда, есть еще тонкие моменты, типа того, что тире может выделяться с двух сторон пробелами, но словом, по большому счету, не является ... Короче, уточните определение "слова".
...
Рейтинг: 0 / 0
Кол-во слов в предложении( ASM)
    #33055453
Kamerad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за предложение об упрощении алгоритма. Словом в данном случае является группа букв (или одна буква), отделенная от других слов при помощи пробелов (знаки препинания не учитываются). Хотелось бы увидеть примерный код программы, т.к. в Assembler'е я новичок.
...
Рейтинг: 0 / 0
Кол-во слов в предложении( ASM)
    #33055488
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грубый код на C:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]){
        int count= 0 ;
        int inword= 0 ;
        char * st=argv[ 1 ];
        while(*st){
                if(*st == ' '){
                        inword= 0 ;
                }else if( 0 ==inword){
                        ++count;
                        inword= 1 ;
                }
                st++;
        }
        printf("Word count:%d in %s\n", count, argv[ 1 ]);
        return  0 ;
}
Примерный код на ASM
Код: plaintext
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.
; на входе в процедуру DS:SI - указатель на строку (zero-ended)
; на выходе AX = кол-во слов в строке
word_count:
; сохранение регистров
        push    si
        push    cx
        push    dx
        push    bx

; инициализация
        xor     cx,cx ; счетчик слов
        xor     dx,dx ; признак in_word
; цикл подсчета
start_loop:
        cmp     [si], 0 
        je      end_loop
        cmp     [si],  32 
        jne     else_block
        mov     dx, 0 
        jmp     end_if
else_block:
        cmp     dx, 0 
        jne     end_if
        inc     cx
        mov     dx, 1 
end_if:
        inc     si
        jmp     start_loop
end_loop:
        mov     ax,cx
; восстановление состояния регистров
        pop     bx
        pop     dx
        pop     cx
        pop     si
; возврат
        retn
...
Рейтинг: 0 / 0
Кол-во слов в предложении( ASM)
    #33057029
CruelGenius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KameradСпасибо за предложение об упрощении алгоритма. Словом в данном случае является группа букв (или одна буква), отделенная от других слов при помощи пробелов (знаки препинания не учитываются). Хотелось бы увидеть примерный код программы, т.к. в Assembler'е я новичок.

Вы студент что ли ?

2 ХМ
А_вы_знаете_что_настоящий_программист_не_пользуется_пробелами?

:-))))))))))))))
...
Рейтинг: 0 / 0
Кол-во слов в предложении( ASM)
    #33057522
Kamerad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CruelGenuis Вы студент что ли ?

Ну не пенсионер же :-)

2 XM
Огромный thanXXX за код.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Кол-во слов в предложении( ASM)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]