Другие языки программирования и технологии

Как посчитать количество гласных идущих в строке подряд?

Как найти место в строке в которой несколько гласных в подряд?
Мы вводим с клавиатуры строку, проверяем на гласные и выводим количество повторяемых букв
ассемблер
tasm32
объявите массив, или как там - зарезервируйте адреса памяти, сложите туда гласные для обхода введенной строки )

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

другой вариант - берем гласную букву и перебираем полученную строку на наличие гласных, запоминая ее адрес (позицию в массиве) .

Скорость, кажись, будет зависеть от длинны строки для этих алгоритмов, так что я бы применял разные алгоритмы для разного количества символов.

За подсчетом сложности алгоритмов я бы обратился к Вам, если вы закончите третий курс)

Да бы не использовать рекурсию - можно обходить нужным гласным символом всю строку, после менять символ. Тогда кривая рассчета производительности будет стабильно, но нужно ли это ...)

еще возможен вариант - записать одной строкой все последовательности гласных, если есть возможность, при сравнении строк введенных проверять поочередно нужное количество бит/байт - тогда итерация обхода будет вообще одна !)) это ж ASM ))

А еще, вероятно, можно использовать многопоточность для ускорения вычисления. . соответственно, хранить массив данных с гласными в кеше процессора ) если есть такая возможность )
АК
Алексей Коновалов
3 491
Лучший ответ
а еще вспомнить замечательный опкод XLAT
загнать в таблицу на позициях гласных (в ваших кодировках) 0 или 1 в
зависимости от гласности буквы. и плясать от этого прокслативая текущую букву в строке.
а дальше элементарный цикл с памятью :)

Похожие вопросы