Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
blinds
4 / 4 / 1
Регистрация: 22.02.2009
Сообщений: 35
1

Удвоить каждый четный элемент текстовой строки

22.09.2010, 21:13. Просмотров 542. Ответов 1
Метки нет (Все метки)

Доброго всем времени суток. Нужна помощь, чтобы придумать решение задачи.
В общем задание звучит так:
Ввести произвольную строку, и каждый парный элемент удвоить.
Задание относиться к теме по созданию циклов (команды jmp, loop и производные от них), т.е. как я понимаю, надо придумать автоматизированный алгоритм, который будет обрабатывать строку в цикле.
Т.е. допустим, я имею строку на 6 элементов "abcdef". Получить должен "abccdeef".(По идее, первую дублировать не надо, т.к. она на нулевом месте.)
Все алгоритмы, которые придумал, имеют изъяны. Не знаю уже, что еще придумать. Надеюсь на помощь знатоков, хотя бы пару идей. Буду очень благодарен за помощь.

Добавлено через 59 минут
Извиняюсь за даблпост, в общем нашел решение. Скорее всего оно достаточно не оптимизировано, неуниверсально и т.д., но все же:
Изначально: z=2,n=6, взял изначальную строку на 6 елементов.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    xor bx,bx
    xor bp,bp
    xor dx,dx
    mov dx,2
m2: mov cl,[s1+bx]
    mov [s3+bp],cl
    inc bx
    cmp bx,n
    jz go   ;if bx=6 then exit  
    inc bp
    cmp bx,z
    jz m1
    jnz m2
m1: mov cl,[s1+bx]
    mov [s3+bp],cl
    inc bp
    add dx,2
    mov z,dx
    jmp m2
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2010, 21:13
Ответы с готовыми решениями:

Assembler(удалить каждый пятый элемент строки)
Всем доброго времени суток... Дело к сессии и вот осталась одна лаба все никак...

Редактирование текстовой строки
в DOS. Написать программу, которая обеспечивает возможность ввода и...

Прерывания по Dos, Ввод и вывод текстовой строки, (Tasm)
Составить программу вывода на экран текста пословицы на английском языке. С...

Работа с файлами, запись в файл текстовой строки. Ассемблер, tasm
Исправить ошибки, чтобы в созданном файле записывалась текстовая строка .model...

Первый четный элемент одномерного массива переставить в конец массива
Вот к примеру задание: Первый четный элемент одномерного массива нужно...

1
alexcoder
1558 / 703 / 146
Регистрация: 03.06.2009
Сообщений: 4,186
Завершенные тесты: 1
23.09.2010, 11:47 2
Я бы сделал так:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
stroka db 'abcdef'
newstr db 10 dup (0)
...
mov bl,z
mov dx,0
cld
lea si,stroka
lea di,newstr
m1:
lodsb
stosb
push ax
mov ax,dx
div bl
test ah,ah
pop ax
jnz m2
stosb
m2:
inc dx
cmp dx,n
jnz m1
Код не проверял, взял с головы.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2010, 11:47

Строка: Написать программу, которая обеспечивает возможность ввода и редактирования текстовой строки
Написать программу, которая обеспечивает возможность ввода и редактирования...

разделить каждый элемент массива на 2
Доброго времени суток!! Задание: Дан массив 1,2,5,-1,0,3,-1,6 (элементы...

Каждый элемент массива уменьшить на минимальный
Вобщем задача такая нужно объеденить модули паскаль и ассемблер, т.е. в паскале...


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

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

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