Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 След.
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Доброго вечера Игорь.
Спасибо за помощь.
Извините, что сразу не ответил, много работы.
На сколько я понял, в конечном счёте Вы многомерный массив "а" трансформируете в двухмерный "е" и выводите его на лист.
Вы не подумайте, я Вам очень благодарен за помощь, но поймите правильно, работа у меня уже закончена и я конечно коряво, но всё-таки давно закончил её.
В любом случае,
С уважением и благодарностью ___________ Юрий.
Изменено: Юрий_Нд - 08.10.2023 21:44:01
Может ли склад выдать шестерни по наряду или не может?
 
Цитата
написал:
может у вас где нибудь "забит' двумерный массив
Цитата
написал:
Обрабатывает массив (136, 8, 136).
Ну конечно же забит.
c и t  - это ещё две дополнительные размерности от единички до 136 обe.
А то что я Вам показал, сидит внутри этого цикла.
----------------------------------------------
Павел, так у Вас простой Excel.
А меня  код Vba Excel интересует.
Кстати, моя программа выдаёт результат не только по конкретной шестерне, а вообще по наряду.
То есть, даёт ответ, может или не может вообще в принципе выполниться наряд.
И всё это выполняется порядка 10.000 раз.
Изменено: Юрий_Нд - 29.09.2023 12:28:54
Может ли склад выдать шестерни по наряду или не может?
 
Цитата
написал:
выкладывайте уже свою красоту
Доброго дня Уважаемые.
Павел, красота конечно корявая, но она моя красота и работает нормально.
Обрабатывает массив (136, 8, 136).
Кстати, многие тут не верили, что этот массив можно изобразить на одном листе Экселя.
А я вот по своей малоопытности и малообразованности, что нельзя этого всего делать, взял да и изобразил.
Excel где-то полторы минуты корячился, но всё-таки вывел мне этот массив.
Жаль что на этом форуме такие жёсткие ограничения, я бы Вам его показал.
Ну конечно не все 150.000 значений а только часть.
Потому что, я так понимаю, многие до сих пор считают, что это невозможно.
Код
  For i = 1 To 17
              zubsk(i) = zub(i)
          Next i
          
          zubtr(1) = tab3(t, 1, c)
          zubtr(2) = tab3(t, 2, c)
          zubtr(3) = tab3(t, 6, c)
          zubtr(4) = tab3(t, 7, c)
          
          tab3(t, 12, c) = 0
          
          For i = 1 To 4
              k = 0
              For j = 1 To 17
                  '------------------------
                  If zubtr(i) = zubsk(j) Then
                            zubsk(j) = zubsk(j) - zub(i)
                            k = 1
                            j = 17
                            tab3(t, 12, c) = 1
                  End If
                  '------------------------
                  If k = 0 And j = 17 Then
                  tab3(t, 12, c) = 0
                  i = 4
                  End If
                  '------------------------
                  If zubtr(1) = 0 And zubtr(2) = 0 Then
                  tab3(t, 12, c) = 0
                  j = 17
                  End If
                  '------------------------
              Next j
                  '------------------------
                  If zubtr(1) = 0 And zubtr(2) = 0 Then
                  tab3(t, 12, c) = 0
                  i = 4
                  End If
                  '------------------------
          Next i
[CODE][/CODE]
Может ли склад выдать шестерни по наряду или не может?
 
Цитата
написал:
это решается вложенными циклами
Спасибо Александр, примерно так я и думал.
Сейчас попробую что-нибудь "сварганить", потом покажу, может посоветуете что-нибудь "покрасивше".
Может ли склад выдать шестерни по наряду или не может?
 
Цитата
написал:
для чего шестерня с 0 зубьев
Спасибо за замечание, подкорректировал.
-----------------------------------------------------------
Цитата
написал:
Если формулами
Вы имеете в виду простой Excel, без вба?
Может ли склад выдать шестерни по наряду или не может?
 
Доброго дня Уважаемые.
Есть такая задачка.
На складе есть в хранятся шестерни с различным количеством зубьев.
Допустим, эти шестерни уже "забиты" в некоторый одномерный массив:
zubsklad(30, 35, 48, 60, 70, 71, 90, 90, 96, 100, 100, 105, 113, 113, 120, 127, 127)
Далее, на склад приходит наряд выдать определённое количество шестерён, которые также забиты в одномерный массив:
zubsnarad(30, 30, 127, 127)
Как средствами vба Excel решить такую задачку, то есть, может ли склад выдать шестерни по наряду или не может?
Спасибо ___________ Юрий.
п.с. У меня конечно есть идея, как выполнить эту задачку, но все эти мои идеи какие-то уж очень "громоздкие".
А хотелось бы всё-таки решить эту задачку "красиво".
Изменено: Юрий_Нд - 28.09.2023 18:02:23
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
а при N? нельзя в коде этой подпрограммы заложить заранее неизвес тно еколичество циклов.  Это обычно делается рекурсией
Ну так и чудненько.
Так бы и сразу и сказали.
А я бы Вам сразу ответил, что давайте будем брать для двумерного массива одну процедуру, для трёхмерного другую, и так далее...
Зачем надо было меня "на смех подымать", что невозможно на плоском листе изобразить трёхмерный и четырёхмерный массив ...
Сколько времени потеряли ...
И моего и Вашего ...
Вы не подумаете пожалуйста, что я с претензиями...
Просто так, мысли вслух.
В любом случае, с уважением и благодарностью __________ Юрий.  
---
п.с. ... А когда я с карандашом у кульмана стоял я уже и забыл.
Сначала AutoCAD, сейчас Ревит. Если Вы конечно понимаете, о чём я.
Кстати очень интересно, где Вы откопали такое сообщение?
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Достопочтенный Волшебник повелевает презренному кодеру, сформировать процедуру из кода в сообщении 53.
-----------
Ну а после сего, весьма почтенный Волшебник рассмотрит челобитную кодера.
Изменено: Юрий_Нд - 26.09.2023 19:45:32
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Код
dsn = 60
dcn = 22
.Range(.Cells(dsn, dcn), .Cells(dsn + 12, dcn + 250)).ClearContents 'î÷èñòêà
.Cells(dsn, dcn + 1) = "ïîâòîðíàÿ ñîðòèðîâêà"
For t = 1 To 2
    For s = 1 To 5
        For c = 1 To 250
            .Cells(7 * (t - 1) + s + dsn, c + dcn) = tab2(t, s, c)
        Next c
    Next s
    .Range(.Cells(7 * (t - 1) + 4 + dsn, 1 + dcn), .Cells(10 * (t - 1) + 5 + dsn, 250 + dcn)).NumberFormat = "0.00"      'ôîðìàòèðîâàíèå 5 è 6 ñòðî÷êè
Next t
Вот этот фрагмент я уже повторяю в пятый раз в коде вба.
Здесь я вывожу трёхмерный массив:
Dim  tab2(2, 5, 250) As Double
-----
Как это из этого слепить процедуру?
That is the question.
Изменено: Юрий_Нд - 26.09.2023 18:58:37
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
Если вам нужен только 4х мерный массив то так и напишите
Да в конце концов, я уже давно сказал, что давайте начнём хотя бы с двухмерного массива.
Я Вам задаю все его параметры, а Вы мне даёте процедуру, которая размещает этот массив в нужное мне место на Excel.
--------------------------------
Извиняюсь, данное сообщение написал отдельно, потому что не знаю,  как вставить цитату в изменения к предыдущему сообщению.
Изменено: Юрий_Нд - 26.09.2023 18:24:58
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
Так, как в приложенном файле, пойдёт?
Вы вообще открывали мой файл?
Вы видели там что-либо подобное?
------------------------------------
БМВ, извиняюсь, исправлюсь.
Просто я подумал, если не читают мои основные сообщения, то никто не будет читать изменения к моим сообщениям.
---
Кстати, можете подсказать, как в изменения к сообщению вставить цитату?
Изменено: Юрий_Нд - 26.09.2023 18:16:42
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
А вот массив из двух строк и четырех столбцов:
Я даже не знаю,  что говорить после такого сообщения.
То есть Вы пытаетесь мне пояснить, что такое двумерный массив?
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
анализировать то как раз проще именно массив
Иногда мне кажется, что Вы просто не читаете моих сообщений.
Даже когда я их повторно дублирую:

Цитата
написал:
Но неужели Вы даже не допускаете мысли о том, что можно тот же самый Excel заставить анализировать результаты?
--------------------------------
"щьйорт побъе ри", почему после того когда я вставляю цитату я вижу имя автора цитаты.
А после того как вставляю моё сообщение, имя автора цитаты загадочным образом исчезает?
Изменено: Юрий_Нд - 26.09.2023 18:17:34
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
другое дело, когда не известны именно измерения.
... это не мой случай.
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
...
Изменено: Юрий_Нд - 26.09.2023 18:18:50
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
не известном колличетве измерений
Что Вы понимаете под "количеством измерений"?
Одномерный, двухмерный или трёхмерный массив?
Так это известные данные, потому что я создаю этот массив. Количество измерений этого массива мне известны. Мне не сложно сказать процедуре какой у меня массив.
Мне всё известно об этом массиве.
И мне не сложно об этом сказать процедуре.
Изменено: Юрий_Нд - 26.09.2023 18:18:32
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
Но может найдется волшебник
Ещё раз повторю, этот волшебник уже есть. Это я.
Я показал, как я на листе экселя распечатываю или вывожу трёхмерный массив, это слева, а два двухмерных массива справа.
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
как организовать рекурсивный цикл по не четко определенному количеству измерений и их размеров.
По-моему, Вы не оправдано усложняете задачу.
Исходные данные известны.
В конце концов, давайте начнём с двухмерного массива.
Пять строк по горизонтали, восемь столбцов по вертикали.
Всё это хозяйство нужно разместить на листе "Расчёт", левая верхняя граница или клеточка листа Excel задана.
Пусть будет С9.
Нужна только процедура, которая всё это сделает.
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
надо последние 2 измерения выводит как матрицу, остальные в виде иерархии
Какое счастье...
Хоть кто-то меня понимает с полуслова, с самого первого сообщения.
Уважаемый testuser, я Вам очень признателен.
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
но хочу видеть сперва 4х мерный
То есть того, что я написал в двадцать седьмом сообщении недостаточно?
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
подсчет размера финальной области
Насколько я понимаю, Вы рассчитываете область Экселя, если просто говорить, количество клеток по вертикали и по горизонтали, которые нужны для того, чтобы вывести мой массив на экран.
Поэтому сразу скажу, что этого делать не нужно или не обязательно.
Будем считать, что у меня нет никаких ограничений ни по горизонтали ни по вертикали.
Я только задаю сам массив, и левую верхнюю точку на листе экселя, откуда нужно выводить данные массива на экран.
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
Запускать-то запускали, только для нас он - китайская грамота. ну выдаёт данные - и что? Ваша задача - у Вас в голове. Изложите простым языком что из чего Вы хотите получить?
Мне вот даже интересно что Вы там хотите понять?
Мою инженерную задачу?
Оно Вам надо?
Я Вас спрашиваю исключительно как специалистов по экселю.
Мне нужна процедура, которая выводит в клеточки Excel-я хотя бы двухмерный массив.
Потому что я уже не знаю как Вам объяснить, что трёхмерный массив я элементарно уже вывел на экран.
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
но читабельность её стремится к нулю.
Если конечно мыслить так, что анализировать можно только вооружившись карандашиком и листочком, тогда Вы безусловно правы.
Но неужели Вы даже не допускаете мысли о том, что можно тот же самый Excel заставить анализировать результаты?
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
Попробуйте изобразить как вы хотите, например 4х мерный массив (2;2;2;2)
Цитата
написал:
Также не проблема изобразить четырёхмерный массив на листе. Для этого нужно тиражировать уже изображённый мною трёхмерный массив вправо.
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Сейчас конкретно решаю инженерную задачу и мне нужен именно трёхмерный массив.
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
а всю практику в VBA ни разу реально не понадобился 3+ мерный массив…
... потому, что Вы не инженер.
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
Вывести на лист можно ТОЛЬКО двумерный массив
Я для начала спрошу Вас, Вы запускали мои файл из четвёртого сообщения?
-----
п.с. Если можно, немного "помягче" пожалуйста выражайтесь.
В Экселе Вы конечно боги, никто этого у Вас не отнимет, а вот в остальном...
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
только переменной
Согласен, годится.
-----------------------------------------------------------------------------------------------
2.
Цитата
написал:
колличество элементов конечно можно посчитать,
Не количество элементов, а размерность массива.
То есть количество строк и количество столбцов для двумерного массива.
Что-то типа lbound и убаунд, loverbound и upperbound, Но нижняя граница всегда единичка.
-----------------------------------------------------------------------------------------------
3.
Цитата
написал:
последние две мерности
Полностью согласен с Вами, поэтому для начала давайте ограничимся трёхмерным массивом. Как Вы и говорили, я его расположил в виде дерева, то есть вертикально вниз. Можно было также расположить вправо.
Также не проблема изобразить четырёхмерный массив на листе. Для этого нужно тиражировать уже изображённый мною трёхмерный массив вправо.
С пятимерным массивом уже сложнее, потому что отдельные элементы, четырехмерники, нужно располагать на разных листах, как вариант.
-----------------------------------------------------------------------------------------------
4.
Цитата
написал:
не архи-сложно, но не сказать, чтобы так уж и просто
Не боги горшки обжигают. Посмотрите, я элементарно разместил трёхмерный массив.
Не знаю, почему до сих пор меня никто не понимает. Для этого нужно просто элементарно запустить файл из четвертого сообщения.
Изменено: Юрий_Нд - 26.09.2023 14:28:06
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
Цитата
написал:
когда непонятно все - лучше вообще уйти из темы
Прошу прощения Игорь.
Мне понятно всё.
Возможно проблема только в том,  что я неправильно излагаю свои хотелки.
Поэтому ставьте дополнительные вопросы,  постараюсь ответить более подробно  и главное понятно.
Нужна процедура, которая выводит на экран данные н-мерного массива.
 
1. В данном конкретном случае данные находятся в массивах tab1(t, s, c) и tab2(t, s, c)
2. куда и в каком виде нужно сложить результаты:
Цитирую:
Цитата
написал:
1. Лист, на который должна выводиться информация из числового массива данных;
3. Левый верхний угол значений данных;
3. Какой алгоритм, мне абсолютно всё равно. Пусть это будет чёрный ящик, но главное, чтобы я смог разобраться, что и для чего в этом ящике.
---
И добавлю от себя четвёртое:
4.  Мне нужно зрительно увидеть все цифры, которые находятся в интересующем меня массиве.
---
А ещё Игорь, попробуйте пожалуйста один разочек запустить этот файл.
Слева будет данные по tab1(t, s, c)
А справа по  tab2(t, s, c).
Изменено: Юрий_Нд - 26.09.2023 12:22:52
Страницы: 1 2 3 След.
Наверх