или тему закрыть и стартануть по "новой" с новым названием, но каким?
генератор случайных последовательностей коррелирующих между собой?
а так, "тыкая" машинку понял, что связь между дисками есть.
вечерами с сыном записывали, через какой шаг повторяется и обнаружили, что диск №7 имеет следующую последовательность 1.2.5.2.2.1.3.2.2.1.1.1.7 (шаги №№2и9 между вращением) и он повторяется снова и снова, а вот его брат близнец диск №4 имеет такую последовательность 2.2.1.1.2.2.2.1.4.1.2.3.7 остальные вроде и есть последовательность но она как бы местами изменяется и шагов побольше между вращением
счетчик - ротор копирую (делаю подобие) от Фиалки М-125
по началу показалось все просто, механику понимаю, но как реализовать в эксель?
нажимаю кнопки на фиалке и считаю ходы, роторы стоят последовательно если по простому то там два счетчика они расположены друг в друге (чередуясь) один двигается от клавы другой ко клаве
Тема с счетчиком не прояснилась.... Оригинальный счетчик прям рулетка какая-то
Выяснил для полного цикла счетчика
вот такой алгоритм:
слева шаги счетчика желтые двигаются назад зеленые вперед 2 и 9 двигаются с каждым шагом остальные двигаются если сделано указанное в столбиках количество шагов цикл каждого "колеса" равен 31 начинается с 1. может и между собой как то связаны но я особо не выявил в таблице указана стартовая позиция 1.2.3.4.5.6.7.8.9.10 но можно ее сделать любую. по пробую прогнать стартовую позицию 1.1.1.1.1.1.1.1.1.1.1.
В3=0 это не правильно, начинается с 1 нуля в начальном состоянии нет стартовое состояние счетчика 1111111111 сейчас понял, что нужно в счетчик еще изменить. нужно, что бы цифры чаще менялись: скажем второй разряд через 6 знаков первого. второй разряд зацепляет не только третий разряд но и четвертый.
прикрепил исправленный файл и главное чтобы ноль на счетчике не появлялся
допустим в ячейку В3 пришло число 66 в счётчике в младшем разряде пишет 4 (так как 66-62=4) =ОСТАТ(B3-1;31)+1 пусть вот эта формула младшего разряда формулу последующих разрядов не могу придумать в следующем разряде 3 (т.к. 1 уже стояла, а 62 это два раза по 31) 66:31=2 (с остатком) то есть + 2 к предыдущему значению как то
там арифметика, я то же в этом направлении копался. единственное если ставлю 1 то в начальной ячейке выводит 2 это получается 32ричная система счисления, нужно вспомнить школьный курс информатики без нуля...
в ячейку В3 поступают числа по порядку 1,2,3,и т.д. в ячейке В4 идет циклический счет по 31
в общем нужен счетчик у которого четные колеса крутятся вперед нечетные назад цифры на колесах от 1 до 31 всего 10 колес второе колесо и девятое самые быстрые второе колесо совершив "оборот" поворачивает (вперед) на одно значение четвертое и т.д. четные до 10 девятое колесо совершив "оборот" поворачивает (назад) на одно значение седьмое колесо и т.д. до 1 в общем тут два счетчика которые запускает одна ячейка может функцией ОСТАТ реализовать? пример задумки: Счетчик.xlsx(12.46 КБ)
Здравствуйте Форумчане! Долго вынашивал проект шифровальной код машины, хотел с эмулировать ФИАЛКА М125 но все пошло по своему. Админам - может куда пристроить эту тему отдельно???
Описание Файла код машины: 1. Лист ШИФР набивается текст в текстбокс, шифрованный получаем слева в верхних ячейках счет буквам, ширина шифровки в буквах, текущая буква на шифрование, закодированная буква 2. Лист РАСШИФР аналогичен листу шифр только для расшифровки тескта 3. Лист КЛЮЧ сюда заполняются ключи 4. ОСЬ сюда приходят буквы из листа ШИФР (РАСШИФР) и согласно первой строке листа КЛЮЧ распределяются "ДИСКИ" массивы отсюда же зашифрованные буквы попадают на листы ШИФР (РАСШИФР) 5. Лист МОТОР задает дискам (массивам) вращение 6. Листы А,Б,В,Г,Д,Е,Ж,И,Й шифруют букву в последовательности заданной 1й строкой ключа, смещается массив по заданию листа МОТОР, смещаются заголовки по заданию листа КЛЮЧ 7. Лист РЕФ (отражатель) который по прохождении буквы всех 10 дисков отправляет ее обратно через них предварительно зашифровав согласно КЛЮЧа рефлектор.
ПРОБЛЕМЫ (задачи) 1. проблема стала в том что если набиваешь букву А через 31 символ возникает цикл, что не допустимо в шифровании 2. не смог сообразить как зашифровать пробел 3. шифровать не только в буквы, но и в двухзначные числа 4. зашифрованный текст имеет вид групп по 5 букв пример (фиалка м125): ЦПХРЙ ЮАРЬЕ ЕМХЛЖ СЖСТН текст с новым годом друзья ключ 0 А Б В Г Д Е Ж З И К А А А А А А А А А А А Б В Г Д Е Ж З И К 1 1 1 1 1 1 1 1 1 1 А А А А А А А А А А
Замысел: Шифрование происходит методом замены (Виженера) но с вводом новой буквы происходит сдвиг в таблице, этих таблиц десять т.е. после ввода буква шифруется 10 раз потом еще 1 раз в рефлекторе и снова 10 раз в таблицах и потом уже выводится (отображается).
2я таблица собирает данные из листов: А,Б,В,...Й 1я таблица сортирует порядок обработки данных желтым выделил поступающие данные синим исходные (результат) на листах такая же рассветка
на каждом листе (АБВГДЕЖЗИЙ) происходит определенная обработка данных.
имеем несколько таблиц с данными зависимость данных от предыдущей таблицы и последующей за ней. допустим на сводную таблицу поступило три числа 5, 12 и 3 имеем несколько таблиц(страниц)на которых происходит своя операция с данными ответы видим на сводной странице, последовательность по таблице тоже можем задать как отправлять исходные данные на нужную страницу для обработки? на примере входящие данные сначала должны поступить в таблицу Б, из Б в А, из А в Й и уже потом результирующий выход
получается на странице ТАБЛ нижнюю таблицу тоже нужно "учить" принимать данные по условию...
имеется исходная таблица, в ней 20 столбцов данных нужно менять какие столбцы в начале какие в конце по условию данные разбиты по индексам от А до Й (10 индексов) конечная таблица по кол-ву строк и столбцов такая же но вверху набирается буквы: А,Б,В,Г,Д,Е,Ж,З,И,Й (в любой заданной последовательности) но главное без повторов и в итоговой таблице столбцы выстраиваются согласно указанных индексов
в ячейке А1 значения меняются по нарастающей 1, 2, 3, 4, 5, ... итак до бесконечности а в ячейке В1 по формуле исчисляя от А1 так: 1, 2, 3, 1, 2, 3, 1, 2, и т.д. (циклично)
под задача а в ячейке С1 исчисляя от А1 : 2,1,3,2,1,3,2,1,3, и т.д. циклично
ПыСы из-за праздников и гриппа формула в голову не лезет... или не в лазит
в первой ячейки меняется значение от 0-1000 и более нужна вторая ячейка которая счет ведет от первой 1-30 и потом снова 1-30 и никогда больше (исходя из счета первой ячейки) вроде простая математическая загадка а решить не получается
Private Sub TBox1_Change()
' Объявление переменных
Dim Rg1 As Range ' Переменная для хранения диапазона ячеек
Dim kSim As Long, kSt As Long ' Переменные для хранения целочисленных значений
Static kSMax As Long ' Статическая переменная для отслеживания максимальной длины
' Получение значения из ячейки Y1 и присвоение его переменной kSt
kSt = Me.Range("Y1").Value
' Задание диапазона Rg1 для включения ячеек от A2 до указанной ширины в kSt
Set Rg1 = Me.Range("A2").Resize(, kSt)
' Получение длины текста в TBox1 и присвоение ее переменной kSim
kSim = Len(Me.TBox1.Text)
' Задание значения ячейки Z1 последним символом текста в TBox1
Me.Range("Z1").Value = Right(Me.TBox1.Text, 1)
' Проверка, если длина текста больше или равна предыдущей максимальной длине (kSMax)
If kSim >= kSMax Then
' Задание значения ячейки в Rg1, соответствующей текущей длине, последним символом текста в TBox1
Rg1.Cells(kSim) = Right(Me.TBox1.Text, 1)
Else
' Очистка содержимого ячейки в Rg1, соответствующей предыдущей максимальной длине
Rg1.Cells(kSMax).ClearContents
End If
' Присвоение текущей длины переменной kSMax
kSMax = kSim
' Задание значения ячейки X1 количеству символов, введенных в TBox1
Me.Range("X1").Value = kSim
End Sub
тоже сохраняю, но имя файла усложнил № дока из ячейки нужно вставить а дату текущую
Код
Sub сохранить_лист()
Dim awb As Workbook, sh As Worksheet, sFilename$
Application.DisplayAlerts = True
Application.CopyObjectsWithCells = False
Application.ScreenUpdating = False
For Each sh In ThisWorkbook.Worksheets
If awb Is Nothing Then
sh.Copy
Set awb = ActiveWorkbook
Else
sh.Copy After:=awb.Sheets(awb.Sheets.Count)
End If
Next
sFilename = Replace(ThisWorkbook.FullName, "Отчет", "Отчет № от" & Format(Date, "dd mmmm yyyy"))
Mid(sFilename, Len(sFilename), 1) = "x"
awb.SaveAs sFilename, xlOpenXMLWorkbook
awb.Close False
Application.DisplayAlerts = True
Application.CopyObjectsWithCells = True
Application.ScreenUpdating = True
End Sub
№ отчета из ячейки К4
понимаю что нужно вставить после № Range("B4") но как???