Важная информация

User Tag List

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 34

Тема: Учусь программировать (need help)

  1. #11
    Master
    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    364
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dr.Potapov Посмотреть сообщение
    Не во всех вариантах работает
    вроде во всех )

  2. #12
    Member Аватар для Dr.Potapov
    Регистрация
    31.10.2006
    Адрес
    г. Воронеж
    Сообщений
    75
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Преимущества подхода конечных автоматов - это то, что любая обработка текста, которая может быть описана регулярными выражениями, может производиться за один проход вперед по строке без необходимости заглядываний вперед или откатов назад. Единственное, что требуется - это хранить переменную состояния (как правило, одну). Таким образом, можно очень большой класс задач обработки текста решать единообразно и эффективно.
    Все, врубился ) Состояние поиска в Е мне мозги вправило )) Я то это состояние вчера в полуночной горячке пытался где то в параллельном мире сохранить ))) Спасибо большое!
    Нажмите на изображение для увеличения. 

Название:	2018-02-22_09-14-13.png 
Просмотров:	222 
Размер:	3.0 Кб 
ID:	64318

  3. #13
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,121
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    10 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Набросок на скорую руку. не факт, что сделано верно. Из двух пробелов оставляет только один.
    Вложения Вложения
    • Тип файла: zip sp.zip (1.3 Кб, Просмотров: 28)

  4. #14
    Member Аватар для Dr.Potapov
    Регистрация
    31.10.2006
    Адрес
    г. Воронеж
    Сообщений
    75
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shurik-ua Посмотреть сообщение
    вроде во всех )
    не, черная строка это то что я ввожу руками, а синяя строка это результат работы функции )
    т.е. при вводе "a_s_d_f_g" выдает результат "asd_fg", а должна оставить строку как есть "a_s_d_f_g"
    при вводе "a___s___d___f___g" результат "asd_fg" а должен быть "a_s_d_f_g"
    Все равно спасибо, Шурик, что с Бармалеем совместно меня носом в регистр Е ткнули с умной мыслью использовать его ))

  5. #15
    Master
    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    364
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    это я неправильно понял ) - думал что надо разбивать строку по 3 символа и разделять пробелами )

  6. #16
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,979
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    99 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Dr.Potapov,

    Как вариант:

    Код:
    	LD HL,ARRAY
    	LD BC,END-ARRAY
    
    LL0	LD A,#20
    LL1	CPIR
    	RET PO		; Выход
    	JR NZ,LL1
    	INC BC
    	LD E,L
    	LD D,H
    	CP (HL)
    LL3	CPI
    	JR Z,LL3
    	PUSH DE
    	JR C,LL4
    	DEC HL
    	LD A,C
    	LDIR
    	LD C,A
    LL4	POP HL
    	JR LL0
    
    
    ARRAY
    	DB "12 3   456     789",#0D,#0A
    END:
    Последний раз редактировалось drbars; 23.02.2018 в 02:17.

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,979
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    99 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если длина массива > 256 то лучше заменить код на:

    Код:
    	LD A,C	; --> PUSH BC
    	LDIR
    	LD C,A	; --> POP BC
    LL4	POP HL
    	JR LL0	; --> JR LL1
    Принцип работы процедуры нахождении более 1 пробела между словами, и подтягиванием хвоста массива к началу
    Однопроходный алогорим Бармалея правда оптимальнее, пример больше полезен для понимания работы с командами CPI(R).

  9. #18
    Member Аватар для Dr.Potapov
    Регистрация
    31.10.2006
    Адрес
    г. Воронеж
    Сообщений
    75
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от drbars Посмотреть сообщение
    Если длина массива > 256
    Спасибо )
    Буфер под строку 128 байт.
    Я бармалеевский метод применил ) точнее Бармалей подсказал в каком месте я затупил.

  10. #19
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,979
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    99 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dr.Potapov Посмотреть сообщение
    Спасибо )
    Буфер под строку 128 байт.
    Я бармалеевский метод применил ) точнее Бармалей подсказал в каком месте я затупил.
    На самом деле, тут можно посчитать такты... предполагаю что мой пример, возможно, на коротких массивах будет работать чуть быстрее. Но опять же надо пробовать

  11. #20
    Member Аватар для Dr.Potapov
    Регистрация
    31.10.2006
    Адрес
    г. Воронеж
    Сообщений
    75
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от drbars Посмотреть сообщение
    На самом деле, тут можно посчитать такты... предполагаю что мой пример, возможно, на коротких массивах будет работать чуть быстрее. Но опять же надо пробовать
    Мне не сложно в код скопировать ваш вариант, но без подсчета тактов я даже не знаю как замерить скорость да и нужно ли )
    Эта функция вызывается по нажатию ENTER, буфер на 128 байт с писаниной пользователя приводится в порядок по пробелам (убираются вначале, в конце и затем лишние в том что осталось). ENTER нажимается не столь часто, поэтому думаю что компактность тут более предпочтительна. Да и задачи по оптимизации пока нет (я еще очень плохо въезжаю в чужой и серьезно оптимизированный код), главное что бы работало и я мог понять что там написано )

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Трудно ли программировать спрайтовые движки?
    от Romanich в разделе Программирование
    Ответов: 29
    Последнее: 22.12.2006, 08:20

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •