0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 22
1
TASM

Ввести строку состоящую из нескольких слов. Вывести каждое слово лесенкой с сдвигом относительно предыдущего.

08.02.2012, 11:31. Показов 3442. Ответов 8
Метки нет (Все метки)

Ввести с клавиатуры строку состоящюу из нескольких слов.
Вывести каждое слово лесенкой с фиксированным сдвигом относительно предыдущего. Пожалуйста с коментариями)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.02.2012, 11:31
Ответы с готовыми решениями:

Ввести с клавиатуры строку. Вывести каждое слово в отдельной строке.
ввести с клавиатуры строку,состоящую из нескольких слов.Вывести каждое слово на экран в отдельной...

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

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

Ввести строку, вывести на экран пословно, причем каждое слово вывести в обратном порядке
Задание: Ввести строку, вывести на экран пословно, причем каждое слово вывести в обратном порядке....

8
Ушел с форума
Автор FAQ
15021 / 7217 / 896
Регистрация: 11.11.2010
Сообщений: 12,961
08.02.2012, 11:39 2
dimkar10,
1) ввод строки с использованием функции 0Ah прерывания 21h
2) поиск в строке при помощи команды repne scasb символа с кодом 20h (пробел) и если нашел -- замени его на символ 0Ah (переход на новую строку)
3) после окончания замены -- выведи получившуюся строку функцией 9 прерывания 21h
0
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 22
08.02.2012, 12:11  [ТС] 3
Я Ассемблер не шарю есть пример скоро он будет готов я его выложу посмотрите пожалуйста)))

Добавлено через 26 минут
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
in_str db 80, ?, 82 dup(?) ;буфер ввода
out_str db 0Dh, 0Ah, ?,'-',?,?,'$' ;буфер вывода
data ends
code segment
assume cs:code, ds:data
start:
mov ax, data
mov ds, ax  ;Загрузить сегментный адрес данных
;Ввод строки
lea ds, in_str
mov ah, 0ah
;Обработка
xor ah, ah ;обнуление старшего байта AX
lea bx, in_str+2 ;адрес начала введенной строки
xor cx, cx
mov cl, in_str+1 ;количество введенных символов
BB:
mov al [bx] ;очередной символ строки
cmp al,'0'  ;код символа меньше чем код нуля?
jb NC ;да, не цифра
cmp al, '9' ;код символа больше чем код девяти
jb NC ;да, не цифра
;символ-десятичная цифра
sub al, '0' ;преобразуем ASCll код в число
mov si,ax ;индекс в массиве счетчиков COUNT
inc COUNT[si] ;увеличить счетчик цифр
NC
inc bx ;получить очередной символ строки
loop bb
;Ввывод результатов
...........
...........
...........незнаю как сделать)))))
0
Ушел с форума
Автор FAQ
15021 / 7217 / 896
Регистрация: 11.11.2010
Сообщений: 12,961
09.02.2012, 06:29 4
dimkar10, читать умеешь?
Цитата Сообщение от Mikl___ Посмотреть сообщение
поиск в строке ... символа с кодом 20h (пробел) и если нашел -- замени его на символ 0Ah (переход на новую строку)
А в твоей программе ты ищешь символы с кодом цифр и преобразуешь ASCll код в число
Assembler
1
2
3
4
5
6
7
8
9
10
mov al [bx] <-- потеряна запятая после AL
cmp al,'0'  ;код символа меньше чем код нуля?
jb NC ;да, не цифра
cmp al, '9' ;код символа больше чем код девяти
jb NC <--должно быть ja NC
;символ-десятичная цифра
sub al, '0' ;преобразуем ASCll код в число
mov si,ax ;индекс в массиве счетчиков COUNT
inc COUNT[si] ;увеличить счетчик цифр
NC <-- потеряно двоеточие после метки
Для чего это? Не хочешь делать для себя -- почему кто-то этим должен заниматься?
0
4086 / 1800 / 211
Регистрация: 06.10.2010
Сообщений: 4,030
09.02.2012, 06:45 5
FASM
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
org 100h
mov  al,3
int  10h           ;устанавливаем текстовый видеорежим 80x25
les  di,[VideoRAM] ;Помещаем в es:di адрес начала видеопамяти
main:xor ax,ax
     int 16h       ;получаем символ с клавиатуры
     cmp al,' '
     jne @f
       add di,158  ;если это пробел - переходим на новую строку
     @@:
     stosb         ;выводим символ на экран
     inc di
     cmp al,13     ;если нажат Enter - выходим из программы
jne main
ret
VideoRAM dd 0B8000000h
0
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 22
09.02.2012, 06:54  [ТС] 6
Да блин та программа которую я выложил всеволишь пример, я неразбираюсь в Ассемблере а программу я делаю не для себя а для училки...еслиб я шарил и это программа нужна была бы мне то я неспрашивал, Вот и прошу помоч. Помогите пожалуйста бедному студенту
0
Ушел с форума
Автор FAQ
15021 / 7217 / 896
Регистрация: 11.11.2010
Сообщений: 12,961
09.02.2012, 08:45 7
dimkar10, просят тебя купить легковой автомобиль, а ты покупаешь трактор, а на вопрос "Зачем ты его купил?" ты отвечаешь "А я никуя не понимаю" здесь то же самое, задача не сложная, тебе пытаются помочь, а в ответ
Цитата Сообщение от dimkar10 Посмотреть сообщение
еслиб я шарил и это программа нужна была бы мне то я неспрашивал, Вот и прошу помоч. Помогите пожалуйста бедному студенту
0
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 22
05.03.2012, 20:40  [ТС] 8
Ввожу с клавиатуры несколько слов через пробел далее ентер выводит это слова в строчку - а нужно чтобы выводил эти слова друг под другом лесенкой
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
vivod macro str
 push dx
 mov ah,09h
 lea dx,str
 int 21h
 pop dx
endm
kursor_ macro
  mov ah,2        
  mov dl,0dh
  int 21h
  mov dl,0ah
  int 21h 
endm
.model small
.stack 100h
.data 
        mesg db "vvedite stroku:$"
        Buffer db 128
        Entered db (?)
        String db 128 dup (?)
        maxbf db 128
 
.code 
assume cs:@code, ds:@data, es:@data
start:
  mov ax,03;ochistka ekrana
  int 10h
 
mov ax,@data
mov ds, ax
 
vivod mesg
; ввод
mov dx,offset buffer 
mov ah,0ah
int 21h ; 
xor bx,bx       
mov bl,Entered
mov String[bx],'$'
cmp [bx], '20'
int 0ah
kursor_       
   kursor_  
  mov ah,9h
  lea dx,String
  add dx,2
  int 21h
 
 ; vivod String
  kursor_
  mov ah,0ah      ;
  int 16h
                
quit: 
  mov ax, 4c00h
  int 21h
 
end start
Если можно добавте комментарии

Добавлено через 3 часа 40 минут
Люди помогите пожалуйста, в долгу неостанусь денег на телефон положу чтоли!
0
Ушел с форума
Автор FAQ
15021 / 7217 / 896
Регистрация: 11.11.2010
Сообщений: 12,961
06.03.2012, 04:55 9
dimkar10,
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
; masm dos exe #
.286
.model small
.stack 100h
.data 
mesg db 'введи строку из нескольких слов разделенных пробелами',0Dh,0Ah,'$'
Buffer db 255,?,255 dup(?)
.code
start:  mov ax,3;ochistka ekrana
    int 10h 
    mov ax,@data
    mov ds,ax
    mov es,ax
    mov ah,9
    mov dx,offset mesg
    int 21h
    mov dx,offset Buffer 
    mov ah,0Ah
    int 21h ; 
    mov ch,0       
    mov cl,Buffer+1
    mov di,offset Buffer+2
    mov al,' '
a0: repne scasb
    jcxz a1
    mov byte ptr [di-1],0Ah
    jmp a0
a1: mov byte ptr [di],'$'
        mov word ptr Buffer,0D0Ah
    mov ah,9
    mov dx,offset Buffer
    int 21h
    mov ah,0
    int 16h                
    mov ah,4Ch
    int 21h 
end start
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.03.2012, 04:55

Ввести строку из нескольких слов и найти в ней заданное слово
Ввести строку из нескольких слов и найти в ней заданное слово( введённое с клавиатуры) вывести...

Ввести текст из нескольких слов и вывести слово в котором чаще всего встречается буква
Нужно ввести текст, затем ввести букву. Прога должна выдать слово в котором чаще всего встречается...

Ввести строку, состоящую из слов
Ввести строку, состоящую из слов, разделенных пробелами (в начале, в конце строки и между словами...

Ввести строку вывести каждое слово из этой строки с кол-ом повторений этого слова учитывая все знаки препинания...
Составить прогу: Ввести строку вывести каждое слово из этой строки с кол-ом повторений этого слова...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru