Имя: Пароль:
1C
1С v8
При изменение первого массива автоматически изменяется второй
,
0 qsan_gada
 
10.10.15
14:38
привет всем эмоциональным и не эмоциональным пользователям мисты. эта моя первая тема и я не хорошо знаю русский язык по этому пожалуйста относитесь немножко  терпеливо).

_массив2 = Новый Массив;
    Для _к = 0 По 4 Цикл
        _массив1 = Новый Массив;
        Для _л = 0 По 3 Цикл
            _кеш = Новый Массив;
            _кеш.Добавить(_к+_л);
            _кеш.Добавить(_к+_л+1);
            Если _массив1.Количество() = 0 Тогда
                _массив1.Добавить(_кеш);
            Иначе
                _массив1[_к][0] = _массив1[_к][0] + _кеш[0];
                _массив1[_к][1] = _массив1[_к][1] + _кеш[1];
            КонецЕсли;
            //
            Если _массив2.Количество() = 0 Тогда
                _массив2.Добавить(_кеш);
            Иначе
                _массив2[_к][0] = _массив2[_к][0] + _кеш[0];
                _массив2[_к][1] = _массив2[_к][1] + _кеш[1];
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;

в чем проблема?
табло смотрю:
после _л=2 после _массив1[_к][0] = _массив1[_к][0] + _кеш[0]; _массив2[_к][0] тоже изменяется. не понимаю почему. помогите кто нибудь новичку
1 jurassic
 
10.10.15
14:43
бармен! мне того же, что и этому джентльмену!
2 jurassic
 
10.10.15
14:44
>после _л=2
после чего, лядь?
3 qsan_gada
 
10.10.15
14:47
(2) себе копируй и в табло смотри пожалуйста, в цикле _л=2
после _массив1[_к][0] = _массив1[_к][0] + _кеш[0]; _массив2[_к][0]-тоже изменяет свой значение
4 qsan_gada
 
10.10.15
14:49
(3) _л тут ни причем, проста почему _массив2[_к][0]-изменяется не понимаю
5 jurassic
 
10.10.15
14:49
(3) вот я щас всё бросил и начал копировать себе в табло, ага. будь в курсе, что массив=другой_массив - это присвоение по ссылке, т.е. измененять первый и второй - монопенисуально
6 qsan_gada
 
10.10.15
14:50
(5) ети массивы отделно же создано
7 qsan_gada
 
10.10.15
14:51
(6) где можно прочитать по теме???
8 jurassic
 
10.10.15
14:53
(6) ну тогда ошибка у тебя в голове, ищт.
(7) в университете. на худой конец в институте. хотя, может, уже в школах учат азам программизма.
9 jurassic
 
10.10.15
14:55
лично я не хочу разбирать эти, без сомнения, божественные сферические массивы в вакууме и тыкать пальцем в ошибку, достойную школьника
10 Сияющий в темноте
 
10.10.15
14:57
Лисичка белая пришла
Хвостом массивы загребла

насколько я помню добавить добавляет в одномерный массив,а у вас он становится двумерным
11 jurassic
 
10.10.15
14:59
(10) тут все шизанулись что ли? не разрушайте моё гармоничное восприятие вселенной. чего не добавляй в массив, он не перестанет быть массивом
12 qsan_gada
 
10.10.15
15:01
(9) был бы рядом показал тебе проблема у меня в голове или у тебя. там же не _массив2[_к][0] = _массив1[_к][0] + _кеш[0];
отделно _массив1[_к][0] = _массив1[_к][0] + _кеш[0],
и отделно
_массив2[_к][0] = _массив2[_к][0] + _кеш[0];
13 kosts
 
10.10.15
15:02
(0) Напиши пожалуйста, что должен делать данный фрагмент программы.
14 jurassic
 
10.10.15
15:03
(12) адрес сказать?
15 jurassic
 
10.10.15
15:05
прострелите мне коленку, но задачи в 1С не предполагают таких мозголюбств. или как-то можно на это выйти?
16 jurassic
 
10.10.15
15:05
+(15) тест: мозгоёбств
17 qsan_gada
 
10.10.15
15:06
(13) проблема аналогично фрагменту, (итоги вычисляется)
18 jurassic
 
10.10.15
15:07
(17) а что должен делать данный фрагмент программы?
19 qsan_gada
 
10.10.15
15:08
(15) вижу очен умный, не нужен твой помош мне, можещ проста открыт другую тему
20 qsan_gada
 
10.10.15
15:10
(13) мне интересно почему при  
_массив1[_к][0] = _массив1[_к][0] + _кеш[0];
изменяется
_массив2[_к][0]
21 SleepyHead
 
гуру
10.10.15
15:11
(19) Учись варить борщ, если тебе не нужны советы профессионала.
22 jurassic
 
10.10.15
15:11
(20) ты врёшь
23 jurassic
 
10.10.15
15:11
(19) спасибо за комплимент, буду иметь в виду
24 kosts
 
10.10.15
15:13
(20) А что при _к = 1 программа не выдает ошибку?
25 qsan_gada
 
10.10.15
15:16
(24) дает, знаю, это проста аналогичный код, оригинале все ок.
26 qsan_gada
 
10.10.15
15:17
(24) скайп можно?
27 SleepyHead
 
гуру
10.10.15
15:20
(26) А может, тебе еще ключ на блюдечке с голубой каемочкой, от квартиры, где деньги лежат?

научись быть вежливым для начала, если просишь помощи.
28 kosts
 
10.10.15
15:23
У тебя _массив1[_к] и _массив2[_к] это один и тот же массив, одна и та же квартира.
Только сперва она называется "Моя хата", а в другом "ул.Ленина, 4, 5".
Соответственно входя в "Мою хату" ты оказываешься и в квартире "ул.Ленина, 4, 5".
29 jurassic
 
10.10.15
15:25
не, я знаю что на 1С и сапёра реализовывали, и кино крутили, которое бывало записано в БД, и винт форматировали. скажите мне, на хрена (0)? я воспитан на мозгоёбстве типа (0), я умею с этим жить, считаю это нормальным иногда. откуда, ятЪ, здесь 1Ска?
30 SleepyHead
 
гуру
10.10.15
15:25
(28) Ему еще в (5) то же самое сказали, после чего пациент начал буянить и хамить.
31 jurassic
 
10.10.15
15:26
(28) (30) я честно пытался найти у него в коде присвоение массивов. проглядел?
32 qsan_gada
 
10.10.15
15:28
(28) спасиба за ответ, очен благодарен.
но есть вопрос.
_массив2 = Новый Массив;
    Для _к = 0 По 4 Цикл
        _массив1 = Новый Массив;
там не создается ли 2 отделного массива или нет?
33 kosts
 
10.10.15
15:28
(30) Ну может, что со зрением у человека, у меня тож бывают затмения, пока не ткнут носом, не понимаю...
34 qsan_gada
 
10.10.15
15:29
(30) (31)  пожалуйта просто молчи
35 qsan_gada
 
10.10.15
15:30
(33) спасибо
36 kosts
 
10.10.15
15:30
(32) _массив1 и _массив2 разные , а внутрь них добавлен один и тот же.
37 jurassic
 
10.10.15
15:31
(34) бесполезно я буду продолжать говорить о том, что ты долбодятел
38 qsan_gada
 
10.10.15
15:31
(36) да, разви ето значить что они "синхронны"?
39 SleepyHead
 
гуру
10.10.15
15:32
(34) Просто иди варить борщ, ты не программист и ниогда им не будешь. Признай это.
40 SleepyHead
 
гуру
10.10.15
15:32
(33) Зрение тут ни при чем. Не тот склад ума. Даже кодером ему не стать никогда, я таких видел массу.
41 qsan_gada
 
10.10.15
15:33
(30) (31)  профессионалы может вы ответти

_массив2 = Новый Массив;
    Для _к = 0 По 4 Цикл
        _массив1 = Новый Массив;

там не создается ли 2 отделного массива или нет?
42 jurassic
 
10.10.15
15:33
(41) там создается ли 2 отделного массива
43 qsan_gada
 
10.10.15
15:34
(42) да
44 qsan_gada
 
10.10.15
15:35
(40) спасибо. тепер обясни как професионал, ну конечно если ты прф.
45 kosts
 
10.10.15
15:35
(38) Эт, не могу сказать, что там подразумевается под синхронностью...
46 jurassic
 
10.10.15
15:36
(44) забыл добавить "пожалуйста"
47 Germes
 
10.10.15
15:36
(40) Может быть человек программированием недавно занимается.
48 jurassic
 
10.10.15
15:37
(47) тогда ему следует спрашивать учительницу, а не путать учительницу с мистой
49 jurassic
 
10.10.15
15:38
сотню догоним, не?
50 SleepyHead
 
гуру
10.10.15
15:39
(47) Может быть, но если он хочет научиться, ему следует слушать и осмысливать услышанное, а не затыкать рот отвечающим, как в (34).
51 qsan_gada
 
10.10.15
15:39
(46) знакомтес, профессионализм умного "програмиста"
52 qsan_gada
 
10.10.15
15:40
(50) (11)
53 SleepyHead
 
гуру
10.10.15
15:40
(49) (47) Расходимся, это просто тролль.
54 jurassic
 
10.10.15
15:40
(51) то есть, ты щас оценил профессионализм по уровню сраказма. нормально, чо. поддерживаю
55 kosts
 
10.10.15
15:41
(41) Массивы _массив1 и _массив2 разные. Изменяя в одном в другом само не поменяется.
Но ты меняешь не в этих массивах, а в третьем _кеш.
Т.е. меня в _кеш у тебя меняется опять же в _кеш.
Т.е. три массива

_массив1[_к]
_массив2[_к]

и

_кеш

это одно и тоже.
56 SleepyHead
 
гуру
10.10.15
15:45
(55) Думаешь, на третий раз поймет?
57 qsan_gada
 
10.10.15
15:45
(55)
_массив2 = Новый Массив;
_массив1 = Новый Массив;
_кеш = Новый Массив;

три разных массивов.

_массив1 добавляю _кеш, при етом  _массив2 изменяет значение.
58 SleepyHead
 
гуру
10.10.15
15:46
(55) Судя по (57), так и не дошло.
59 qsan_gada
 
10.10.15
15:48
(58) только честно, сам ты понял в чем там дело
60 qsan_gada
 
10.10.15
15:49
(59) ?
61 kosts
 
10.10.15
15:49
(57) >_массив1 добавляю _кеш, при етом  _массив2 изменяет значение.
Вот тут не прав
62 kosts
 
10.10.15
15:50
(61) + изменяет значение только _кеш
_массив1 и _массив2 не меняются
63 qsan_gada
 
10.10.15
15:52
(62) табло так показывает же при _л = 2;
64 SleepyHead
 
гуру
10.10.15
15:56
(59) Про присвоение по ссылке слышал? Если нет, начни с азов, того же Кнута почитай.
65 kosts
 
10.10.15
15:59
Грубо говоря у тебя работает вот так (ну почти)

_массив2 = Новый Массив;
Для _к = 0 По 4 Цикл
    _массив1 = Новый Массив;
    Для _л = 0 По 3 Цикл
        _кеш = Новый Массив;
        _кеш.Добавить(_к+_л);
        _кеш.Добавить(_к+_л+1);
        Если _массив1.Количество() = 0 Тогда
            _массив1.Добавить(_кеш);
        Иначе
            _кеш[0] = _кеш[0] + _кеш[0];
            _кеш[1] = _кеш[1] + _кеш[1];
        КонецЕсли;
        //
        
        Если _массив2.Количество() = 0 Тогда
            _массив2.Добавить(_кеш);
        Иначе
            _кеш[0] = _кеш[0] + _кеш[0];
            _кеш[1] = _кеш[1] + _кеш[1];
        КонецЕсли;
    КонецЦикла;
КонецЦикла;
66 jurassic
 
10.10.15
15:59
судя по всему, юзер не только знает, что такое откладчик (а это не каждому под силу), а ещё и умеет им пользоваться. то есть, мозг есть. а чужой код разобрать не в состоянии. если с откладчиком - то мозга нет. автор - умная женщина?
67 Записьдампа
 
10.10.15
16:12
(66) Не. Обычный азербайджанец - признается, что не хорошо знает русский язык, но требует скайп, мимоходом не упускает случая подколоть собеседника - см (44), (51)

Марат Зульфугаров, 26 лет, Баку. Брат Turan, брат Azer =)
Ссылки на одноклассников легко гуглятся.

Осеннее обострение, гастарбайтеры в 1С, блеать...
68 qsan_gada
 
10.10.15
16:13
(65) очен благодарен,
но не понял как

_массив1[_к][0] = _массив1[_к][0] + _кеш[0];
_массив1[_к][1] = _массив1[_к][1] + _кеш[1];

привратился  на

_кеш[0] = _кеш[0] + _кеш[0];
_кеш[1] = _кеш[1] + _кеш[1];
69 kosts
 
10.10.15
16:16
(68) Ну вот некотором приближении одно меняется это другое и наоборот.
70 kosts
 
10.10.15
16:16
(68) Ну вот некотором приближении одно это другое и наоборот.
71 Записьдампа
 
10.10.15
16:24
Каспиец, у тебя два не два двумерных массива, а два одномерных, нулевым элементом у каждого является один и тот же массив. В выражениях массив1[0][i] и массив2[0][i] первая часть адресации - [0], ведет в один и тот же массив. Внутри которого ты меняешь элементы.
72 kosts
 
10.10.15
16:26
Ехал грека через кэш,
Видит грека в кэше рак,
Сунул грека в кэш руку,
кэш, кэш, кэш, кэш.
73 qsan_gada
 
10.10.15
16:31
(71) (72)  на родном языке, джан сагърай кlехо
74 kosts
 
10.10.15
16:32
(73) Ну ты хоть понял, что у тебя с массивами?
75 jurassic
 
10.10.15
16:37
да похй что там с массивами, расскажите мне, как это применить
76 jurassic
 
10.10.15
16:38
тест: ёбаный
77 jurassic
 
10.10.15
16:38
тест: ебаный
78 qsan_gada
 
10.10.15
16:51
(74) да, очен благодарен