Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
1 / 1 / 0
Регистрация: 28.03.2014
Сообщений: 23
1

Определить, есть ли во введённой с клавиатуры последовательности чисел три одинаковых последовательных числа?

28.03.2014, 19:26. Показов 1811. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пожалуйста помогите написать программу. Задание: Определить, есть ли в введённой с клавиатуры последовательности чисел, три одинаковых последовательных числа. Числа разделяются пробелами.Результат выводится на экран. завершение работы программы по нажатию клавиши "Esc". (TASM) Компиляция СОМ.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2014, 19:26
Ответы с готовыми решениями:

Заданы три числа. Определить, есть ли среди них хотя бы одна пара одинаковых чисел
Решите, пожалуйста, такую задачу: Заданы три числа. Определить, есть ли среди них хотя бы одна...

Определение числа положительных чисел во введённой с клавиатуры последовательности
Написать программу, которая определяет число положительных чисел во введёной с клавиатуры...

Определить произведение нечетных чисел в введенной с клавиатуры последовательности
Написать программу, которая определяет произведение нечетных чисел в введенной с клавиатуры...

Определение максимального числа из введенной клавиатуры последовательности отрицательных чисел
Написать программу, которая определяет максимальное число из введенной с клавиатуры...

15
650 / 337 / 37
Регистрация: 04.04.2012
Сообщений: 886
30.03.2014, 21:01 2
Лучший ответ Сообщение было отмечено Наталья0810 как решение

Решение

Вводятся только парами цифра и пробел.
1 1 1
Yes

1 1 1
Yes
1
Yes
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
66
67
68
69
70
71
72
73
;Определить, есть ли в введённой с клавиатуры последовательности
;чисел, три одинаковых последовательных числа
;
;DOS, TASM, COM-файл
;
;Создание СОМ-файла
;tasm.exe /m filename.asm
;tlink.exe /t /x filename.obj
;Получается filename.com
;
.model tiny
.code
.386
org 100h
start:
    mov ah,9
    lea dx,str
    int 21h
 
    xor bx,bx   ;для двух цифр
    xor cx,cx   ;флаг цифра/пробел
m1:
    xor ax,ax   ;получить символ
    int 16h
    cmp al,1Bh  ;Esc
    jz short exit
    cmp al,' '  ;пробел
    jz short probel
 
    sub al,30h
    cmp al,09h
    ja short m1 ;не цифра
 
    test cx,cx  ;флаг цифра/пробел
    jnz short m1
    add al,30h  ;вывод символа цифоы на экран
    mov ah,2
    mov dl,al
    int 21h
    inc cx      ;установить флаг цифра/пробел
 
;проверка и запись символов в BX
    cmp bh,al
    jz short m2
    shl bx,8
m2:
    cmp bl,al
    jz short m3
    mov bl,al
    jmp short m1
m3:
    mov ah,9
    lea dx,str_OK
    int 21h
    mov bh,bl
    xor cx,cx   ;сброс флага цифра/пробел
    jmp short m1
probel:
    test cx,cx  ;проверка флага цифра/пробел
    jz short m1
    mov ah,2
    mov dl,al
    int 21h
    xor cx,cx   ;сброс флага цифра/пробел
    jmp short m1
exit:
    ret     ;выход из программы
 
str     db 'Esc - exit',13,10
        db "Enter your number:$"
str_OK  db 13,10,'Yes',13,10,'$'
 
    end start
1
1 / 1 / 0
Регистрация: 28.03.2014
Сообщений: 23
04.04.2014, 19:41  [ТС] 3
Сравнить последовательно введёные цифры...одну с другой.
0
1 / 1 / 0
Регистрация: 28.03.2014
Сообщений: 23
10.04.2014, 19:51  [ТС] 4
AFP, а нельзя ли сделать так чтобы программа сравнивала каждую следующую цифру с предыдущей в введёной строке,а затем выводила результат тех трёх одинаковых цифр которые встретились в этой строке....очень надо....
Спасибо за ту программу...она тоже хорошо помогла.
0
650 / 337 / 37
Регистрация: 04.04.2012
Сообщений: 886
10.04.2014, 20:42 5
Наталья0810,
Объясните подробнее.
Вводим с клавиатуры или нет, с выводом на экран или нет и т.д и т.п.
Вводим 1 2 3 4 5 5 5 4
Получить?
1
1 / 1 / 0
Регистрация: 28.03.2014
Сообщений: 23
10.04.2014, 21:02  [ТС] 6
AFP, Задание: Определить, есть ли в введённой с клавиатуры последовательности чисел, три одинаковых последовательных числа. Числа разделяются пробелами.Результат выводится на экран. завершение работы программы по нажатию клавиши "Esc". (TASM) Компиляция СОМ.
Только надо вводить строку чисел длинную...а программа сравнивает каждое введённое число с предыдущим...и потом выдаёт результат, есть ли в этой строке 3 одинаковых последовательных числа.
Например: 1 2 3 4 5 5 5 7 8 6 программа сравнивает 1 с 2, 2 с 3, 3 с 4, 4 с 5 , 5 с 5 ( и вот тут она должна запомнить это число т.е. 5 и потом в результате показать его) 5 с 7, 7 с 8, 8 с 6...
ну вот как-то так.

Добавлено через 26 секунд
Надеюсь я правильно выразилась)))
0
650 / 337 / 37
Регистрация: 04.04.2012
Сообщений: 886
10.04.2014, 21:14 7
Вводим: 1 2 3 4 5 5 5 7 8 6
Нажимаем Ентер
Выводим на экран: 1 2 3 4 5 7 8 6
Ждем нажатой клавиши
Так?
1
1 / 1 / 0
Регистрация: 28.03.2014
Сообщений: 23
10.04.2014, 21:19  [ТС] 8
AFP, нет
вводим с клавиатуры 1 2 3 4 5 5 5 7 5 6 ( ну тум могут быть любые цифры главное чтобы определялись 3 одинаковых)
нажимаем Ентер
выводим на экран : 5
0
650 / 337 / 37
Регистрация: 04.04.2012
Сообщений: 886
10.04.2014, 21:24 9
Лучший ответ Сообщение было отмечено Наталья0810 как решение

Решение

Вводим: 1 2 3 4 5 5 5 7 8 8 8 6
Нажимаем Ентер
Выводим на экран: 5 8
Ждем нажатой клавиши
А так?
Или только до первой тройки?
1
1 / 1 / 0
Регистрация: 28.03.2014
Сообщений: 23
10.04.2014, 21:25  [ТС] 10
AFP, можно и так... это даже лучше будет )))
0
650 / 337 / 37
Регистрация: 04.04.2012
Сообщений: 886
11.04.2014, 15:33 11
Лучший ответ Сообщение было отмечено Taatshi как решение

Решение

Хорошо, но не сегодня.

Добавлено через 18 часов 6 минут
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
66
67
68
69
70
71
72
73
74
75
76
.model tiny
.code
.386
org 100h
start:
    mov ah,9
    lea dx,str
    int 21h
 
    xor cx,cx   ;флаг цифра/пробел
    xor bx,bx   ;счетчик цифр и пробелов
    lea di,buffer   ;буфер для строки
m1:
    xor ax,ax   ;получить символ
    int 16h
    cmp al,13   ;Enter
    jz short ent
    cmp al,' '  ;пробел
    jz short probel
 
    sub al,30h
    cmp al,09h
    ja short m1 ;не цифра
 
    test cx,cx  ;был пробел?
    jnz short m1
    inc cx      ;установить флаг цифры
    add al,30h
    jmp short m2    ;на вывод цифры на экран
 
probel:
    test cx,cx  ;уже был пробел?
    jz short m1
    dec cx
m2:
    mov ah,2    ;вывод на экран
    mov dl,al
    int 21h
    inc bx      ;увеличить счетчик
    stosb
    jmp short m1
ent:
;перевод строки
    mov ah,2
    mov dl,13
    int 21h
    mov dl,10
    int 21h
 
    lea si,buffer   ;на адрес строки
    add bx,si   ;вычислить адрес конца строки
m3:
    cmp bx,si   ;конец строки?
    jbe short exit
    lodsw       ;читать символ
    cmp [si],al ;сравнить со вторым и
    jnz short m3
    cmp [si+2],al   ;с третьим
    jnz short m3
 
    mov ah,2    ;вывод на экран
    mov dl,al
    int 21h
    mov dl,' '
    int 21h
    jmp short m3    ;на следующий символ
exit:
    xor ax,ax
    int 16h
 
    ret     ;выход из программы
 
str db "Enter string: $"
buffer:
 
    end start
1
1 / 1 / 0
Регистрация: 28.03.2014
Сообщений: 23
11.04.2014, 17:04  [ТС] 12
AFP, Спасибо вам ОГРОМНОЕ!
0
1 / 1 / 0
Регистрация: 28.03.2014
Сообщений: 23
24.04.2014, 12:27  [ТС] 13
AFP, Эта программа хорошо работает. Закрывается она при нажатии любой клавиши.
Что сделать чтобы она закрывалась на ESC. Какие команды применить и в какое место вставить?
Заранее спасибо.
Буду очень ждать вашего ответа.
0
650 / 337 / 37
Регистрация: 04.04.2012
Сообщений: 886
24.04.2014, 13:09 14
Assembler
1
2
3
4
5
6
7
8
9
exit:
    xor ax,ax
    int 16h
;********************
    cmp al,27   ;Esc?
    jnz short exit
;********************
 
    ret     ;выход из программы
0
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 7
29.11.2015, 10:22 15
#11, почему при компиляции кода TASM выходит ошибка "Зарезервированный символ str используется как слово"?
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
30.11.2015, 03:27 16
Цитата Сообщение от maks19961996 Посмотреть сообщение
#11, почему при компиляции кода TASM выходит ошибка "Зарезервированный символ str используется как слово"?
Ну, ответ в самом вопросе -- в TASM слово str зарезервировано как служебное, используй вместо str например слово str1
0
30.11.2015, 03:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2015, 03:27
Помогаю со студенческими работами здесь

Определить максимальное число из введенной с клавиатуры последовательности положительных чисел
Доброго времени суток! У меня небольшая проблема, к сожалению совершенно не умею пользоваться...

Определить максимальное число из введённой с клавиатуры последовательности положительных чисел
Написать программу,которая определяет максимальное число из введённой с клавиатуры...

Определить максимальное число и среднее арифметическое в введенной с клавиатуры последовательности чисел
Написать программу, которая определяет максимальное число и среднее арифметическое в введенной с...

Задача, for,while,do-while (определить минимальное число во введенной с клавиатуры последовательности положительных чисел)
Добрый вечер! Прошу помогите решить задачу, ничего не выходит. Точнее не пойму как сделать....


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru