Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка текста специальным образом 
:(
    Опции темы
Viton
Дата 25.10.2005, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 3.11.2004

Репутация: нет
Всего: нет



немогу разобраться в цикле чтобы получилось при выполнение этого кода не Р369
а 258Р369Р1470


Код

Sum = "1470258P369P"
int2 = Len("321")
txt2 = "321"
hir = Len(Sum)
oy = hir \ int2
For n = 1 To int2

For k = 1 To int2
kl = CInt(Mid(txt2, k, 1))
If n = kl Then
kodtxt = kodtxt & Mid(Sum, ox, oy)
Print kodtxt
End If
ox = ox + oy
Next k

Next n


PM MAIL ICQ   Вверх
Akina
Дата 25.10.2005, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Совершенно непонятна задача. Код тоже ничего не проясняет.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Viton
Дата 25.10.2005, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 3.11.2004

Репутация: нет
Всего: нет



э последний этап кода
поставили задачю написать шифрование методом перестановки и на этом месте у меня не получается отсортировать а до этого всё работает ок
вот графич пример
312-(ключевое число)
---
123
456
789
0РР -(символ Р дополняюший таблицу)

а мне надо чтобы было
123 (ключевое число отсартированное)
---
231
564
897
Р0Р
PM MAIL ICQ   Вверх
Akina
Дата 25.10.2005, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Ну так сперва собери столбцы, потом отсортируй, потом разбери обратно.

Код

dim key as string
dim txt(0 to 3) as string

key="312"

txt(0)="123"
txt(1)="456"
txt(2)="789"
txt(3)="0PP"

' определить промежуточный массив для манипуляций
dim tag(0 to len(key)-1)

' пересобрать в него данные по столбцам
for i=lbound(tag) to lbound(tag)
tag(i)=mid(key,i+1,1)
for j=0 to 3
tag(i)=tag(i) & mid(txt(j),i+1,1)
next j
next i

' отсортироватьпромежуточный  массив
call sort(tag)

' аналогичным образом разобрать по строкам 
' это ты уж как-нить сам...



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Viton
Дата 26.10.2005, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 3.11.2004

Репутация: нет
Всего: нет



Вот я сам и разобрался.
Но всёравно спасибо что предлагали различные способы
вот код той части которая у меня работал не так как надо.
Код

hir = Len(Sum)
oy = hir \ int2
kodtxt = ""
ox = 1
'начало блок сортировки по ключю
For n = 1 To int1
ox = 1
For k = 1 To int2
kl = CInt(Mid(txt2, k, 1))
If n = kl Then
tet6 = Mid(Sum, ox, oy)
kodtxt = kodtxt & tet6

End If
ox = ox + oy
Next k

Next n

Добавлено @ 20:01
Вот полеый код той программы которую я писал
а суть программы щифрование текста методом перестановки
вот её полный работаюший код.
Буду рад выслушать критику.

Код

Private Sub Command1_Click()
txt1 = Text1.Text
txt2 = Text2.Text
int2 = CInt(Len(txt2))
int1 = CInt(Len(txt1))
'цик Do
            'Некоторые операторы
'        Loop While k > 0
'пример(2)
'представленная таблица |должно получится
'1234                       1234
'5678                       5678
'90                         90PP (Р добавочный символ)
'в этом цикле добаваться два символа для полноценности таблицы
tmp1 = int1 / int2
tmp2 = int1 \ int2
tmp3 = tmp1 - tmp2

If tmp3 > 0 Then
Do While Not (tmp3 = 0)
If tmp3 > o Then Text1.Text = txt1 & "P"
txt1 = Text1.Text
int1 = CInt(Len(txt1))
tmp1 = int1 / int2
tmp2 = int1 \ int2
tmp3 = tmp1 - tmp2
Loop
End If

'конец дополнения таблицы
'-----------------------------------
'определние максимального числа в ключивом числе
int2q = CInt(Mid(txt2, 1, 1))
For i = 1 To int2
    int2w = CInt(Mid(txt2, i, 1))
    If int2q < int2w Then
    int2q = int2w
    max2 = int2w
    Else
    int2w = int2q
    max2 = int2q
    End If
    
Next i
'конец определения максимального числа в ключевом числе

'цикл пример(1)
'кодир число 1234567890
'ключевое чилсо 123
'образное представление в таблицу
'123
'456
'789
'0
'после этого цикла получим 1470258P369P


For o = 1 To int2

    For h = o To int1 Step int2
    ti = Mid(txt1, h, 1)
    Sum = Sum & ti
    Next h
    
Next o

'конец цикла с примером(1)
hir = Len(Sum)
oy = hir \ int2
kodtxt = ""
ox = 1
'начало блок сортировки по ключю
For n = 1 To int1
ox = 1
For k = 1 To int2
kl = CInt(Mid(txt2, k, 1))
If n = kl Then
tet6 = Mid(Sum, ox, oy)
kodtxt = kodtxt & tet6

End If
ox = ox + oy
Next k

Next n
Text3.Text = kodtxt

'конец  блока
End Sub


PM MAIL ICQ   Вверх
cardinal
Дата 26.10.2005, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(Viton @ 26.10.2005, 17:58)
Буду рад выслушать критику.

Ну чтож... smile
Вот она:
http://forum.vingrad.ru/index.php?showtopi...indpost&p=57864

То есть в основном в этом случае она касается читаемости кода...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0545 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.