![]() |
![]() |
|
Очень МАССИВный вопрос | ☑ | ||
---|---|---|---|---|
0
ПроцедураСвета
28.10.09
✎
12:03
|
Большой МАССИВный вопрос.
Уважаемые завсегдатаи форума, помогите начинающей леди разобраться с массивами. Очень мало по этому поводу литературы. Честно скажу у меня её вообще нет. Потому все что там написано ниже не для того чтобы оскорбить ваш деликатный вкус своими неправдоподобными размышлениями, а только потому что мне нужно в этом разобраться, а литературы нет. Расскажу все что предполагаю, а вы уж меня поправьте, если не лень читать конечно. Не засоряйте только тему, чтобы потом кто-нибудь тоже начинающий мог легко вникнуть. Переем Массив[4]; – это я как понимаю двумерный массив, способный хранить в себе 4 любых значения. Если в ходе процедуры мы сослались на пременную Массив[4] четыре раза то она «приняла в себя» четыре значения. Но как это правильно пишется? (Или я вообще не правильно рассуждаю?) Предположу что так: Пример1 Переем Массив[4] Процедура Такая() операторы Массив[1]=12; Массив[2]=22; Массив[3]=33; Массив[4]=44; КонецПроцедуры Таким образом к концу процедуры мы будем иметь переменную (в раскрытом для образности, скажем так, виде) Массив[12,22,33,44]. Да? Или я ошибаюсь? Или можно (нужно!?) вот так: Пример2 Переем Массив[4] Процедура Такая() операторы Массив=12; Массив=22; Массив=33; Массив=44; КонецПроцедуры Написав это я предполагаю что переменная при обработке сама распределит значения «в своем» массиве отталкиваясь от того занято ли место или нет? А если так, что будет если я ошибусь и добавлю пятую переменную? Для примера 1 – Массив[5]=55; для примера 2 (12,22,33,44) Массив=55. Куда она денется? Вытиснит? Выдаст ошибку? Заменит? Проигнорирует? Еще мне очень интересно как можно «извлечь» содержимое массива? Например он имеет 4-е значения разных типов, - строка, число, дата, перечисление. И куда все это можно выгрузить? В Таблицу Значения? А как? «Массив[4].выгрузить(таблица1)?» или «Массив[] выгрузить(таблица1)» А если мне надо выгрузить только два значения а не четыре? И ещё, если у кого есть какая-нибудь всеобъясняющая ссылка, то прошу не жадничать, человекам нужно помогать. Заранее спасибо, калякала все это пол часа. |
|||
1
ТелепатБот
гуру
28.10.09
✎
12:03
|
||||
2
Rie
28.10.09
✎
12:06
|
(0) Первый вариант верен.
Массив (в 7.7) никуда нельзя ни выгрузить, ничего. Это - просто набор переменных, вот таким хитрые образом поименованных. Ну и хранить в массиве значения разных типов - моветон. Для этого есть другие структуры данных - списки значений, таблицы значений. Ссылка всеобъясняющая - книги, книги и ещё раз книги. Основные понятия программирования - не для 1С, а вообще. Одной ссылкой тут не обойтись. |
|||
3
skunk
28.10.09
✎
12:07
|
до второго примера все правильно ... второй пример даст ошибку ... и далее все ошибочно...
http://ru.wikipedia.org/wiki/Массив |
|||
4
ПроцедураСвета
28.10.09
✎
12:09
|
спасибо мальчишки, но книг таких хороших не знаю, посоветуйте если есть что.
А как выбрать из массива данные? или пербрать их. Ну например, через цикл? Какого он будет вида? Напишите если не трудненько. |
|||
5
Мулька
28.10.09
✎
12:11
|
(4) Не циклись на массиве, не от 1С это. Тянись к таблице значений и спискам значений
|
|||
6
Ёпрст
гуру
28.10.09
✎
12:13
|
Перем мас[10];
Для к = 1 По Разм("мас") Цикл мас[к] = к; Сообщить(мас[к]) КонецЦикла; |
|||
7
Rie
28.10.09
✎
12:13
|
(4) Перебор массива - через индексы.
Перем Массив[32]; Для н=1 По 32 Цикл // и здесь что-либо делать с Массив[н] КонецЦикла; |
|||
8
ПроцедураСвета
28.10.09
✎
12:14
|
(3) спасибочки, учту и Обязательно почитаю сегодня же.
(5) разобраться надо...не усну. (2) спасибо ....моветон... поразил я даже такого не знаю, видимо,что-то серьёзное. (6) спасибо |
|||
9
ПроцедураСвета
28.10.09
✎
12:21
|
(2)
Хорошо, с циклом разобрались. Но все таки можно ли выгрузить данные массива. И если нет то почему? (а иначе зачем их туда накапливать?)Например, в Масиве имеем значения одного типа - число. 22,21,32. Могу я назначить эти цифры трем(ф1,ф2,ф3) полям диалога в форме с типом Число? Так чтобы ф1=22, ф2=21, ф3=32? Например так: ф1=Массив[1] ф2=Массив[2] ф3=массив[3] такое будет работать? ведь да? А как передать значение Массива в ТЗ? |
|||
10
Ёпрст
гуру
28.10.09
✎
12:23
|
(9)
1.да 2. ТЗ.НоваяКолонка("Вася"); ТЗ.НоваяСтрока(); ТЗ.Вася = мас[1]; |
|||
11
ПроцедураСвета
28.10.09
✎
12:25
|
блин...пока все не ушли.. (или уже все ушли?)Зачем вообще нужны массивы? (Это что-то вроде матрицы, да?) Тем более двумерные? не проще ли пользоваться переменными? ДЛя того чтобы не запутаться в переменных? Так можно запутаться и в значениях массива ([10] ).
|
|||
12
Ёпрст
гуру
28.10.09
✎
12:25
|
+10
мас[2] = СоздатьОбъект("Список.Значений"); мас[2].ДобавитьЗначение("Вася"); мас[2].ДобавитьЗначение("Федя"); Сообщить(мас[2].ПолучитьЗначение(1)); |
|||
13
ДенисЧ
28.10.09
✎
12:26
|
"Переем Массив[4]; – это я как понимаю двумерный массив" - это неправильное понимание :-)
|
|||
14
ПроцедураСвета
28.10.09
✎
12:26
|
поправка... на последний, совершенно глупый вопрос я уже сама себе ответила. ссори.
|
|||
15
Rie
28.10.09
✎
12:32
|
(11) Массивы нужны, чтобы набор _однородные_ значений хранить.
В 1С 7.7 массивы весьма куцые, да и не особо нужны они там - есть другие, более уютные структуры данных. |
|||
16
Sadovnikov
28.10.09
✎
12:33
|
(15) В 7.7 массивы нужны когда требуется высокая скорость доступа к данным.
|
|||
17
ПроцедураСвета
28.10.09
✎
12:35
|
(13)
почему не двумерный? предположим что в Массиве[4] на Массив [1] мы прицепим значение типа Перечисление. Например Массив[1]=перечисление.склад. Такой массив не будет содержать в себе наименование товаров на складе. Если бы содеражал (перечисление.склад.стулья)- был бы бы трехмерным, а так как не содержит - двумерный. Если ошиблась - поправь пожал-та. (15) какие? ТЗ? (16) спасибо, вот благодоря вам начала хоть что-то вкуривать |
|||
18
ДенисЧ
28.10.09
✎
12:36
|
(17) Потому что одномерный :-) У тебя одно измерение - в длину. В ширину - нет, точнее 1. Поэтому и одномерный :-)
|
|||
19
Sadovnikov
28.10.09
✎
12:36
|
(17) "спасибо, вот благодоря вам начала хоть что-то вкуривать" - Э... А точно это мне адресовано? И ведь и веточке-то поучаствовал всего одним постом. причем, не сильно информативным.
|
|||
20
smaharbA
28.10.09
✎
12:38
|
(2) можно
|
|||
21
Rie
28.10.09
✎
12:38
|
(17) Стоп. Оставь в покое перечисления - о них у тебя ещё меньшее представление, чем о массивах.
|
|||
22
ДенисЧ
28.10.09
✎
12:39
|
+18 перечисление.Мебель.Сутл - это одно значение. А Слава КПСС - вообще не человек :-)
|
|||
23
smaharbA
28.10.09
✎
12:39
|
(22) Итого: - человечище
|
|||
24
ПроцедураСвета
28.10.09
✎
12:41
|
(19) тебе, точно тебе. )
(18) спасибо, учту на будущее. С матрицами всегда не лады были. Господа, всем большое спасибо (21) (весело смеётся) - это точно, тут и пророком быть не нужно.) |
|||
25
ПроцедураСвета
28.10.09
✎
12:44
|
(21) но если често, конецно пример не удачный я привела. не спорю. Вообще бредово-маразматический. Смешно даже повторить перечисление.склад.стулья. = Ха! надо в анекдоты добавить на каком-нибудь сайте.
|
|||
26
ДенисЧ
28.10.09
✎
12:45
|
(25) Попробуй подобрать более удачный пример, который ты считаешь многомерным. А мы опровергнем :-)
|
|||
27
smaharbA
28.10.09
✎
12:45
|
а мене ?
|
|||
28
ПроцедураСвета
28.10.09
✎
12:47
|
Ладно, всем спокойной ночи (у меня разница с Москвой в 8 часов), пойду думать лежа.
(26) справочник.стулья.Людмила_Ивановна А? (27) чмок. |
|||
29
ДенисЧ
28.10.09
✎
12:48
|
(28) Нет такого значения :-)
|
|||
30
ZOMI
28.10.09
✎
13:38
|
Опять неудачный клон Семененко
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |