2 / 2 / 0
Регистрация: 18.12.2016
Сообщений: 61

Подсчитать сколько раз в строке встречается заданная буква

27.12.2016, 12:30. Показов 5773. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел код тут на форуме скоммпилировал в tasm выводит не понятно, что, а долно выводить количество заданых букв в тексте.
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
.model tiny
.code
.386
org 100h
start:
    mov ah,10   ;ввод строки
    lea dx,strBig
    int 21h
 
    mov ah,2    ;перевод строки
    mov dl,10
    int 21h
 
    xor bx,bx   ;очистить счетчик
    xor cx,cx
    mov cl,[len]    ;длина строки
    lea di,str  ;на строку
    mov al,'c'  ;символ, который надо подсчитать
m1:
    repne scasb ;искать символ в строке
    jnz short exit  ;символ не найден, выход
m2:         ;найден
    inc bl      ;увеличить счетчик на 1
    test cx,cx  ;если СХ не 0, в строке есть символы,
    jnz short m1    ; продолжить поиск
 
exit:
;----------Вывод на экран---------
    mov ax,bx
;вывод на экран
    xor     cx, cx
    mov     bx, 10 ; основание сс. 10 для десятеричной и т.п.
oi2:
    xor     dx,dx
    div     bx
; Делим число на основание сс. В остатке получается последняя цифра.
; Сразу выводить её нельзя, поэтому сохраним её в стэке.
    push    dx
    inc     cx
; А с частным повторяем то же самое, отделяя от него очередную
; цифру справа, пока не останется ноль, что значит, что дальше
; слева только нули.
    test    ax, ax
    jnz     oi2
; Теперь приступим к выводу.
    mov     ah, 02h
oi3:
    pop     dx
; Извлекаем очередную цифру, переводим её в символ и выводим.
    add     dl, '0'
    int     21h
; Повторим ровно столько раз, сколько цифр насчитали.
    loop    oi3
;-----------------------------------------
    xor ax,ax   ;ждать нажатия клавиши
    int 16h
 
    ret     ;выход из программы
 
;--------Строка-----------
strBig db 41    ;40 символов
len db ?    ;длина
str:        ;строка
 
    end start
Добавлено через 11 минут
При запуске программы выводит сразу 1 и потом при вводе символов выводить числа "1044" и т.д.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.12.2016, 12:30
Ответы с готовыми решениями:

Подсчитать, сколько раз в строке встречается символы x, y, z
В памяти дана строка символов находящаяся по адресу A1 и длиной N. Подсчитать сколько раз встречается символы x y z. Результат записить в...

Подсчитать, сколько раз встречается в данной строке указанный символ
При построении выводится Warning: No stack При запуске программы выводит только единицы. В чем ошибка? запускал в TASM. .model...

Строка: Подсчитать, сколько раз встречается в данной строке указанный символ
Здравствуйте, у меня тут такие задачи надо решить. Я новичок, и не очень понимаю всю суть программы.Помогите решить 2 задачки: 1. Целое...

8
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
27.12.2016, 12:40
Не знаю, у меня все работает, подпилить немного пришлось.

0
2 / 2 / 0
Регистрация: 18.12.2016
Сообщений: 61
27.12.2016, 12:44  [ТС]
А в чем ты компилировал? И как подпилил код?
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
27.12.2016, 12:50
ml.exe 14.asm /AT
(masm под 16 разрядную, AT обязательно большие, для создания файла с расширением com).

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
.model tiny
.code
.386
org 100h
start:
    mov ah,10   ;ввод строки
    lea dx,strBig
    int 21h
 
    mov ah,2    ;перевод строки
    mov dl,10
    int 21h
 
    xor bx,bx   ;очистить счетчик
    xor cx,cx
    mov cl,[len+1]    ;длина строки
    lea di,strBig  ;на строку
    mov al,'c'  ;символ, который надо подсчитать
m1:
    repne scasb ;искать символ в строке
    jnz short exit  ;символ не найден, выход
m2:         ;найден
    inc bl      ;увеличить счетчик на 1
    test cx,cx  ;если СХ не 0, в строке есть символы,
    jnz short m1    ; продолжить поиск
 
exit:
;----------Вывод на экран---------
    mov ax,bx
;вывод на экран
    xor     cx, cx
    mov     bx, 10 ; основание сс. 10 для десятеричной и т.п.
oi2:
    xor     dx,dx
    div     bx
; Делим число на основание сс. В остатке получается последняя цифра.
; Сразу выводить её нельзя, поэтому сохраним её в стэке.
    push    dx
    inc     cx
; А с частным повторяем то же самое, отделяя от него очередную
; цифру справа, пока не останется ноль, что значит, что дальше
; слева только нули.
    test    ax, ax
    jnz     oi2
; Теперь приступим к выводу.
    mov     ah, 02h
oi3:
    pop     dx
; Извлекаем очередную цифру, переводим её в символ и выводим.
    add     dl, '0'
    int     21h
; Повторим ровно столько раз, сколько цифр насчитали.
    loop    oi3
;-----------------------------------------
    xor ax,ax   ;ждать нажатия клавиши
    int 16h
 
    ret     ;выход из программы
 
;--------Строка-----------
strBig db 41    ;40 символов
len db ?    ;длина
;str:        ;строка
 
    end start
0
2 / 2 / 0
Регистрация: 18.12.2016
Сообщений: 61
27.12.2016, 13:09  [ТС]
А как переделать код, чтобы он работал на тасм?
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
27.12.2016, 13:46
Цитата Сообщение от Croix Посмотреть сообщение
как переделать код, чтобы он работал на тасм?
Он и под Tasm собирается и работает, просто мануалы читать надо, да и на форуме найдете.
0
2 / 2 / 0
Регистрация: 18.12.2016
Сообщений: 61
27.12.2016, 14:21  [ТС]
Собирается и работает, но выводит не то что нужно. Как сделать, чтобы картинка сразу отображалась, а не ссылкой?

Добавлено через 7 минут
Вот что выводит.
Миниатюры
Подсчитать сколько раз в строке встречается заданная буква  
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
27.12.2016, 14:26
Лучший ответ Сообщение было отмечено Croix как решение

Решение

Что же все так плохо?


Обратите внимание на строку 18
2
2 / 2 / 0
Регистрация: 18.12.2016
Сообщений: 61
27.12.2016, 14:43  [ТС]
А ну так Вы запускаете файл .com, а я .exe я вот скомпилил как Вы и все работает.

Добавлено через 3 минуты
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.12.2016, 14:43
Помогаю со студенческими работами здесь

Определить сколько раз в строке встречается данный символ. Строку вводить с клавиатуры
use16 org 100h jmp start s1 rb 53 endline db 10,13,$ count db 0 s2 rb 10 s db ' $' start:

Подсчитать, сколько раз встречаются во введенной строке символы «а» и «м»
Написать программу на языке Ассемблера, которая позволяет ввести с клавиатуры строку символов, подсчитать, сколько раз встречаются во...

Подсчитать, сколько раз среди символов встречается буква "х"
Даны натуральное число n, символы S1,...,Sn. Подсчитать, сколько раз среди данных символов встречается буква 'х'. Строку символов ввести с...

Дана строка. Посчитать, сколько раз в ней встречается буква “b”
Дана строка. Посчитать, сколько раз в ней встречается буква “b”. Вывести на экран исходную строку и полученный результат.

Дан массив из 6 элементов. Подсчитать, сколько раз в нем встречается максимальное по величине число.
вечер добрый. подскажите пожалуйста, как можно переделать данный код под эту задачу - Дан массив из 6 элементов. Подсчитать, сколько раз...


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

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

Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru