Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 01.11.2016
Сообщений: 4
1

Сортировка букв в слове

31.10.2017, 15:39. Просмотров 463. Ответов 1
Метки нет (Все метки)


Вопрос такой. Как сделать так, чтобы знаки препинания оставались на том же месте
C
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
#include<iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
using namespace std;
 
char strr1[500], strr2[200], strr3[500], strr4[200];
char pr1 = ' ';
int pp, pp1, pp2, pp7, pp8, pp9, p10;
int vv0, v_v4;
char zap = ',';
char t;
int dlin[10], dlin1, dlin2[10], dlin3[10];
int main()
{
    setlocale(LC_ALL, ".1251");
    cout << "Введите строку из 6 слов:\n";
    fgets(strr1, sizeof(strr1), stdin);
    pp = strlen(strr1);
        _asm
    {
        lea esi, strr1
        mov ecx, 0
 
        mov bl, [esi]
 
        cmp bl, ' '
        je c_0_04
 
        cmp bl, '.'
        je c_0_04
 
        cmp bl, ','
        je c_0_04
 
        jmp c__01
 
        c_0_04 :
 
        ; пропускаем все пробелы и разделители
 
            mov bl, [esi]
 
            cmp bl, ' '
            je c_0__04
 
            cmp bl, '.'
            je c_0__04
 
            cmp bl, ','
            je c_0__04
 
            jmp c__01
 
            c_0__04 :
        inc p10
            inc esi
            jmp c_0_04
 
            ; считаем количество букв в каждом слове
 
            c__01 :
 
        mov bl, [esi]
        cmp bl, 10
            je c_0_3
 
 
            cmp bl, ' '
            je с_0_1
 
            cmp bl, '.'
            je с_0_1
 
            cmp bl, ','
            je с_0_1
            */
 
            mov pp9, ecx
            ; заносим в массив dlin2 количество букв в каждом слове
            mov ecx, pp7
            add[dlin2 + ecx], 1
 
            mov ecx, pp9
 
            ; заносим в массив dlin количество символов от первой буквы до первой буквы след.слова
 
            add[dlin + ecx], 1
 
            inc esi
            jmp c__01
 
            с_0_1 :
 
        add pp7, 04h
 
            c_00_2 :
 
        mov bl, [esi]
 
            cmp bl, 10
            je c_0_3
 
            
            cmp bl, ' '
            je c_00_3
 
            cmp bl, '.'
            je c_00_3
 
            cmp bl, ','
            je c_00_3
 
            add ecx, 04h
            jmp c__01
 
 
            c_00_3 :
        add[dlin + ecx], 1
            inc esi
            jmp c_00_2
 
 
            c_0_3 :
 
        ; ------------------------------------ -
 
            lea esi, strr1
            add esi, p10
            ; сортируем буквы в слове методом пузырька
            c_v_c_04 :
        mov ecx, pp2
            mov eax, [dlin2 + ecx]
            mov pp, eax
            mov ecx, pp
 
            vv_04 :
        mov pp1, 0
 
            vv_0_05 :
            mov edx, pp1
 
            mov bl, [esi + edx]
            mov al, [esi + edx + 1]
 
 
            cmp al, ' '
            je vk_03
 
            cmp al, 10
            je vk_03
 
            cmp bl, al
            jna vk_04
 
 
            mov bl, [esi + edx + 1]
            mov al, [esi + edx]
            mov[esi + edx], bl
            mov[esi + edx + 1], al
            jmp vk_04
 
            vk_03 :
        mov pp1, ecx
 
            vk_04 :
        cmp pp1, ecx
            je vv_05
 
            inc pp1
            jmp vv_0_05
 
            vv_05 :
 
        loop vv_04
 
            mov ecx, pp2
            mov eax, [dlin + ecx]
            add esi, eax
 
            add pp2, 04h
 
            mov ecx, pp2
            mov eax, [dlin + ecx]
            cmp eax, 0
            je vv_06
 
            jmp c_v_c_04
 
            vv_06 :
 
        xor edx, edx
 
    }
 
    cout << "Полученная строка:\n";
 
    for (int i(0); i< sizeof(strr1); i++)
    {
        if (strr1[i] == '/0')
            break;
        cout << strr1[i];
    }
 
    _getch();
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2017, 15:39
Ответы с готовыми решениями:

Количество букв 'о' в последнем слове
Всем доброго дня. Нужна помощь через день нужно сдавать контрольную вроде все сделал а вот эту...

Определить количество букв 'e' в последнем слове
Определить количество букв 'e' в последнем слове Вот код. Так все работает, но, когда в слове нету...

Подсчитать количество букв в каждом слове
написал что смог. не вижу где может быть ошибка, но даже на экран не выводит. ткните носом плиз ...

Сколько букв в слове в верхнем регистре в Assembler
Здравствуйте,помогите пожалуйста с программой. Программа должна высчитывать сколько букв в слове в...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
1
Модератор
Эксперт по электронике
7497 / 3694 / 1447
Регистрация: 01.02.2015
Сообщений: 11,498
Записей в блоге: 2
31.10.2017, 19:11 2
А как звучит исходная постановка задачи?

Добавлено через 2 минуты
Если "Сортировка букв в слове" - то выделить очередное слово и отсортировать подмассив, потом искать следующее слово.

Добавлено через 1 час 47 минут
Посмотрите, как можно разделять строку на слова при множестве символов-разделителей
https://www.cyberforum.ru/post10462363.html
Это, конечно, вариант для DOS и 16-разрядный, но идею IsDelimChar можно подчерпнуть.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2017, 19:11

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Сортировка букв в слове
Я написал код но он кривой: #include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; int...

Сортировка букв в слове по алфавиту
Гуру программирования, подскажите как сделать сортировку букв в слове по алфавиту. Например на...

Сортировка букв в слове по алфавиту VBA
Подскажите пожалуйста,как сделать сортировку букв в слове по алфавиту. Например на входе имею...

Сортировка слов в массиве по кол-ву букв в слове
Помогите , задали сделать эту программу в школе , но я без понятия как ее делать ) Буду очень...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.