1 / 1 / 0
Регистрация: 10.03.2010
Сообщений: 18
1
FASM

Удалить повторяющиеся символы в строке

17.05.2012, 12:46. Показов 4258. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребята, нужна ваша помощь, кто хорошо знает фасм, помогите написать программку. Нужно удалить повторяющиеся символы в строке. Заранее благодарен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.05.2012, 12:46
Ответы с готовыми решениями:

В строке символов требуется удалить повторяющиеся символы и все пробелы
Исходные данные: В строке символов требуется удалить повторяющиеся символы и все пробелы. Входные...

Определить есть ли повторяющиеся символы в строке
Здравствуйте, помогите решить задачу на assembler(FASM). уже недели две вожусь с этим, мозги кипят....

Удалить в строке повторяющиеся пробелы
Помогите пожалуйста написать программу, которая удаляет в строке повторяющиеся пробелы, т.е....

Подсчитать в строке число букв А и В, если букв А больше, чем В, то удалить в строке все символы В
Здравствуйте, помогите пожалуйста решить задачу с помощью процедур "Подсчитать в строке число букв...

9
155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,784
17.05.2012, 13:09 2
rolex123, ну вот представьте алгоритм берёте первый символ и пробегаете по строке удаляя похожие при этом сдвигая строку к начало от той позиции где был удалён символ и пробегаете до конца. Затем повтор тока с 2, з символами и до конца. Алгоритм не претендует на премию, но как вариант! Попробуйте привести алгоритм, а народ поможет тем более вопрос сейчас стоит сурьёзный!
0
Ушел с форума
Автор FAQ
16276 / 7601 / 1064
Регистрация: 11.11.2010
Сообщений: 13,616
17.05.2012, 13:27 3
rolex123, вот другой алгоритм, допустим длина строки N символов
берешь первый символ и сканируешь строку, пока не найдешь похожий на него, если найдешь, то ставишь на этом месте, допустим, ноль и так до конца строки, теперь начинаешь со второго символа, замещая нулями повторяющиеся символы, и так повторяешь до N-1 символа включительно, символом с номером N будет либо ноль, либо символ, который не повторялся. Последнее действие это удаление всех нулевых символов.
0
1 / 1 / 0
Регистрация: 10.03.2010
Сообщений: 18
17.05.2012, 14:52  [ТС] 4
Вот начал, буду благодарен если кто-то поможет. Не могу дописать алгоритм сравнения

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
format mz
 
    push    cs
    pop     ds
 
    xor al, al
    mov di, a
 
m:  repe scasb
    jcxz exit
    mov ah, byte [di]
    cmp byte [di], ah
    jne m
    mov ah, 0
exit:
 
    mov ah,9
    mov dx,a
    int 21h
 
    mov ah,8
    int 21h
 
    mov ax,4C00h
    int 21h
 
    a db "arrayisbad$"
0
Ушел с форума
Автор FAQ
16276 / 7601 / 1064
Регистрация: 11.11.2010
Сообщений: 13,616
17.05.2012, 15:16 5
rolex123,
1) нужно repne scasb тогда сканирование остановится на элементе равном содержимому AL или когда CX будет равен 0
2) при написании программы используй какой-нибудь отладчик
3) нужно mov di,offset a и mov dx,offset a
4) для команды scasb нужно чтобы ES=DS
1
1 / 1 / 0
Регистрация: 10.03.2010
Сообщений: 18
17.05.2012, 15:39  [ТС] 6
Цитата Сообщение от Mikl___ Посмотреть сообщение
rolex123,
1) нужно repne scasb тогда сканирование остановится на элементе равном содержимому AL или когда CX будет равен 0
2) при написании программы используй какой-нибудь отладчик
3) нужно mov di,offset a и mov dx,offset a
4) для команды scasb нужно чтобы ES=DS
Я конечно могу ошибаться, но разве offset используеться в фасме?
0
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
19.05.2012, 09:28 7
Цитата Сообщение от rolex123 Посмотреть сообщение
Я конечно могу ошибаться, но разве offset используеться в фасме?
Ну конечно. Это же диалект асма и там обязательно есть его общие инструкции.
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
19.05.2012, 10:45 8
Цитата Сообщение от programmisto Посмотреть сообщение
Цитата Сообщение от rolex123 Посмотреть сообщение
Я конечно могу ошибаться, но разве offset используеться в фасме?
Ну конечно. Это же диалект асма и там обязательно есть его общие инструкции.
programmisto, Вы ошибаетесь. Что за привычка постить не разбираясь в теме?
0
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
19.05.2012, 13:42 9
vital792, встречал образец кода, там как-раз был OFFset. На FASM'e
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
19.05.2012, 14:13 10
Цитата Сообщение от programmisto Посмотреть сообщение
встречал образец кода, там как-раз был OFFset. На FASM'e
покажи.

А я то всегда думал что на фасме
Assembler
1
mov eax, var
это то же самое что на масме
Assembler
1
mov eax, offset var
А если требуется не смещение, а значение памяти по адресу, то используют квадратные скобки
2
19.05.2012, 14:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2012, 14:13
Помогаю со студенческими работами здесь

Подсчитать в строке число букв А и В, если букв А больше, чем В, то удалить в строке все символы В
Помогите пожалуйста! Нужно подсчитать в строке число букв А и В, если букв А больше, чем В, то...

Подсчитать в строке число букв a и b, если букв а больше b, то удалить в строке все символы b
Помогите, пожалуйста, сделать задачу: Подсчитать в строке число букв a и b, если букв а больше b,...

В строке удалить все символы после точки
Нужна помощ в решении задачи я вообще нешарю в ассемблере. Вот условие: "В даной строке убалить...

В строке удалить символы в скобках вместе со скобками
Мне нужна в строке символов удалить те символы, которые будут в скобка и сами скобки тоже удалить...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru