Как найти место в строке в которой несколько гласных в подряд?
Мы вводим с клавиатуры строку, проверяем на гласные и выводим количество повторяемых букв
ассемблер
tasm32
Другие языки программирования и технологии
Как посчитать количество гласных идущих в строке подряд?
объявите массив, или как там - зарезервируйте адреса памяти, сложите туда гласные для обхода введенной строки )
затем посимвольно считывайте строку. . сверяя каждый символ с элементами, хранящимися в вашем массиве поочередно, при этом, в цикле обхода строки нужно будет хранить предыдущый симвом и поставить условие на сравнение с текущей, проверяемой.
другой вариант - берем гласную букву и перебираем полученную строку на наличие гласных, запоминая ее адрес (позицию в массиве) .
Скорость, кажись, будет зависеть от длинны строки для этих алгоритмов, так что я бы применял разные алгоритмы для разного количества символов.
За подсчетом сложности алгоритмов я бы обратился к Вам, если вы закончите третий курс)
Да бы не использовать рекурсию - можно обходить нужным гласным символом всю строку, после менять символ. Тогда кривая рассчета производительности будет стабильно, но нужно ли это ...)
еще возможен вариант - записать одной строкой все последовательности гласных, если есть возможность, при сравнении строк введенных проверять поочередно нужное количество бит/байт - тогда итерация обхода будет вообще одна !)) это ж ASM ))
А еще, вероятно, можно использовать многопоточность для ускорения вычисления. . соответственно, хранить массив данных с гласными в кеше процессора ) если есть такая возможность )
затем посимвольно считывайте строку. . сверяя каждый символ с элементами, хранящимися в вашем массиве поочередно, при этом, в цикле обхода строки нужно будет хранить предыдущый симвом и поставить условие на сравнение с текущей, проверяемой.
другой вариант - берем гласную букву и перебираем полученную строку на наличие гласных, запоминая ее адрес (позицию в массиве) .
Скорость, кажись, будет зависеть от длинны строки для этих алгоритмов, так что я бы применял разные алгоритмы для разного количества символов.
За подсчетом сложности алгоритмов я бы обратился к Вам, если вы закончите третий курс)
Да бы не использовать рекурсию - можно обходить нужным гласным символом всю строку, после менять символ. Тогда кривая рассчета производительности будет стабильно, но нужно ли это ...)
еще возможен вариант - записать одной строкой все последовательности гласных, если есть возможность, при сравнении строк введенных проверять поочередно нужное количество бит/байт - тогда итерация обхода будет вообще одна !)) это ж ASM ))
А еще, вероятно, можно использовать многопоточность для ускорения вычисления. . соответственно, хранить массив данных с гласными в кеше процессора ) если есть такая возможность )
а еще вспомнить замечательный опкод XLAT
загнать в таблицу на позициях гласных (в ваших кодировках) 0 или 1 в
зависимости от гласности буквы. и плясать от этого прокслативая текущую букву в строке.
а дальше элементарный цикл с памятью :)
загнать в таблицу на позициях гласных (в ваших кодировках) 0 или 1 в
зависимости от гласности буквы. и плясать от этого прокслативая текущую букву в строке.
а дальше элементарный цикл с памятью :)
Похожие вопросы
- Программирование ассемблер. Дан массив из 8 байт. Посчитать количество байт, в которых число нулей и единиц одинаковое
- как посчитать количество объектов в классе с помощью static. На С++
- Как отдельно подсчитать количество русских букв и английских букв в строке массива???
- как подсчитать количество слов в строке разделённым больше чем одним пробелом(Delphi)
- дана строка содержащая латинские буквы, русские буквы и цифры. Подсчитать количество русских букв и цифр в данной строке
- Вводится последовательность чисел. Посчитать в ней количество четных чисел, стоящих на четных местах.
- Непонятка с C++. Хочу посчитать колво точек в строке и почему то на 1 больше считает
- Как посчитать пробелы в тексте С++? Ток не 1 строку а пробелы)
- QBASIC сформировать мосив состоящая С М-строк,и М-столбцов
- ассемблер, проверка длины строки