Имя: Пароль:
1C
1С v8
помогите пожалуйста с решением задач, заранее спасибо
🠗 (Волшебник 29.05.2013 14:33)
,
0 kittis666
 
29.05.13
12:50
1. В одномерном массиве, состоящем из n вещественных элементов:
1) определите, какие числа встречаются в нем более двух раз;
2) выведите на экран элементы массива, большие среднего арифметического.


2. Дана последовательность целых чисел, за которой следует ноль.
Определите число соседств чисел с одинаковыми знаками.
1 alek_aab
 
29.05.13
12:51
тебе решение целиком написать?
2 kittis666
 
29.05.13
12:51
очень хотелось бы
3 alek_aab
 
29.05.13
12:52
ау-у-у-у, альтруисты, где вы-ы?
4 mikecool
 
29.05.13
12:52
стянула где то горшок с цветами, теперь решения задач хочешь...
5 drcrasher
 
29.05.13
12:52
не надо, программирование  - не твоё
6 kittis666
 
29.05.13
12:52
при чем тут моя работа?;)
7 Abmo
 
29.05.13
12:53
(0) Ой зря ты сюда пришла)
8 kittis666
 
29.05.13
12:53
в том-то и дело, что надо(
9 shuhard
 
29.05.13
12:53
(6) на форум кинологов уже обращалась ?
10 alek_aab
 
29.05.13
12:53
однако, пятница начнется в среду...
11 kittis666
 
29.05.13
12:53
очень вас рекомендовали, вот и пришла
12 Abmo
 
29.05.13
12:55
может кто-то что-то и напишет, хотя.. нет, не напишет
13 salvator
 
29.05.13
12:55
(11) Тебе на 1С надо это сделать?
14 kittis666
 
29.05.13
12:55
в частности мне просто нужен программный код
15 del123
 
29.05.13
12:56
Здесь так не принято.
Нужно показать что уже у самой получилось, подскажут что неправильно
16 GROOVY
 
29.05.13
12:56
Проведем краткий анализ топика:
Автор не владеет навыками алгоритмизации.
Автор не владеет синтаксисом 1С, да и думаю вообще с языками программирования у ТС очень плохо.
Автору нужно решить задание. Зачем? Видимо при устройстве на работу.
Будут ли люди помогать обмануть работодателя?
К чему приведет в дальнейшем такая ложь?
17 kittis666
 
29.05.13
12:56
автору нужно сдать контрольную
18 alek_aab
 
29.05.13
12:57
(17) завтра?
19 Maxus43
 
29.05.13
12:57
2) выведите на экран элементы массива, большие среднего арифметического.
///Среднее-арифмитическое
й=0;
Для каждого Эл Из МойМассив Цикл
й = й + Эл;
КонецЦикла;
Среднее = й МойМассив.Количество();
//Вывод
Для каждого Эл Из МойМассив Цикл
Если Эл > Среднее Тогда
Сообщить(Эл);
КонецЕсли;
КонецЦикла;

З.ы. начинайте кидаться какахами
20 GROOVY
 
29.05.13
12:57
(17) Но контролируется то как раз некий навык. Если его нет, то зачем обманывать экзаменующую сторону? Нет навыка - нет зачета.
21 GROOVY
 
29.05.13
12:57
(19) :)
22 kittis666
 
29.05.13
12:58
к 02/06
23 Maxus43
 
29.05.13
12:58
*Среднее = й / МойМассив.Количество();
24 alek_aab
 
29.05.13
12:59
(22) сочувствую, примите соболезнования...
25 Maxus43
 
29.05.13
12:59
1.1 я бы вобще как 1сник запихнул в ТЗ и запросом вывел... писать алгоритмы лень
26 salvator
 
29.05.13
13:05
определите, какие числа встречаются в нем более двух раз:

ТЗ = Новый ТаблицаЗначений();
ТЗ.Колонки.Добавить("А");
ТЗ.Колонки.Добавить("Б");
ТЗ.ЗагрузитьКолонку(МассивЧисел,"А");
ТЗ.ЗаполнитьЗначения(1,"Б");
ТЗ.Свернуть("А","Б");
Для Каждого Стр Из ТЗ Цикл
 Если Стр.Б > 1 Тогда
   Сообщить(Стр.А);
 КонецЕсли;
КонецЦикла;
27 Maxus43
 
29.05.13
13:08
(26) строки в ТЗ должны быть созданы только, насколько я помню. столько же сколько и в массиве
28 salvator
 
29.05.13
13:10
(27) Да, точно.
29 dkonakov
 
29.05.13
13:13
ЧислоСоседствЧисел = 0;
ПеременнаяМассива = 0;
Пока МойМассив[ПеременнаяМассива]<>0 Цикл
Если МойМассив[ПеременнаяМассива]>0 и МойМассив[ПеременнаяМассива]>0 Тогда ЧислоСоседствЧисел =  ЧислоСоседствЧисел +1;
КонецЕсли;
Если МойМассив[ПеременнаяМассива]<0 и МойМассив[ПеременнаяМассива]<0 Тогда ЧислоСоседствЧисел =  ЧислоСоседствЧисел +1;
КонецЕсли;
ПеременнаяМассива = ПеременнаяМассива+1;
КонецЦикла;
31 dkonakov
 
29.05.13
13:17
ой, ошибся:
ЧислоСоседствЧисел = 0;
ПеременнаяМассива = 0;
Пока МойМассив[ПеременнаяМассива]<>0 Цикл
Если МойМассив[ПеременнаяМассива]>0 и МойМассив[ПеременнаяМассива+1]>0 Тогда ЧислоСоседствЧисел =  ЧислоСоседствЧисел +1;
КонецЕсли;
Если МойМассив[ПеременнаяМассива]<0 и МойМассив[ПеременнаяМассива+1]<0 Тогда ЧислоСоседствЧисел =  ЧислоСоседствЧисел +1;
КонецЕсли;
ПеременнаяМассива = ПеременнаяМассива+1;
КонецЦикла;
43 kittis666
 
29.05.13
13:33
в чем тут ошибка? ( не работает программа)

Перем Число, Количество;
Таблица = Новый Массив;

ВвестиЧисло(Количество,"Введите количество элементов");
Для сч=1 по Количество Цикл
ВвестиЧисло(Число, "Введите " + сч + " элемент");
Таблица.Добавить(Число);
КонецЦикла;

сумма = 0;
для сч=0 по Количество-1 Цикл
сумма = сумма+Таблица[сч];
КонецЦикла;

Ответ=новый массив;
у=сумма/количество;
Для сч=1 по количество Цикл
если сч>у тогда
Ответ.Добавить(сч);
КонецЕсли;
КонецЦикла;
44 Maxus43
 
29.05.13
13:35
(43) вроде на первый взгляд должно. что конкретно не работает?
45 Maxus43
 
29.05.13
13:35
ввела может все числа одинаковые, тогда не будет конечно больше среднего ничего
46 H A D G E H O G s
 
29.05.13
13:36
Сомневаюсь, что, например, Дельфи, знает, что такое ТаблицаЗначений.

Пешите примитивно.
47 vicof
 
29.05.13
13:37
(44) На экран не выводится))
48 kittis666
 
29.05.13
13:37
индекс выходит за границы массива
49 kittis666
 
29.05.13
13:38
с разними числами тоже не работает(
50 kittis666
 
29.05.13
13:38
разными*
51 DexterMorgan
 
29.05.13
13:39
(46) А где там таблица значений?
52 Maxus43
 
29.05.13
13:39
для сч=0 по Таблица.Количество()-1 Цикл
53 DexterMorgan
 
29.05.13
13:40
(48) Ответ.Добавить(сч) добавь минус 1
54 Maxus43
 
29.05.13
13:41
Для примера юзай 3 числа, 1,2,3
55 ICWiner
 
29.05.13
13:42
Не

Для сч=1 по количество Цикл
если сч>у тогда
Ответ.Добавить(сч);
КонецЕсли;

а

Для сч=1 по количество Цикл
если Таблица[сч]>у тогда
Ответ.Добавить(Таблица[сч]);
КонецЕсли;
56 ICWiner
 
29.05.13
13:42
а то итератор сравниваешь со средним
57 kittis666
 
29.05.13
13:43
все равно индекс за границами(
58 ICWiner
 
29.05.13
13:44
Я скопировал и запустил, все отработало...
59 kittis666
 
29.05.13
13:44
это было на пред.сообщ, сейчас это попробую)
60 Maxus43
 
29.05.13
13:44
(55) это косяк, да, но ошибки быть не должно такой. К индексу обращается только тут сумма = сумма+Таблица[сч];
61 DexterMorgan
 
29.05.13
13:45
(57) =(
62 AaNnDdRrEeYy
 
29.05.13
13:46
вместо индексов можно и Для каждого Цикл, точно выхода за границы массива не будет.
63 ICWiner
 
29.05.13
13:46
Я ж говорю, создал внешнюю обработку, в модуль скопипастил этот код, задал число символов 5, ввел 1 2 3 4 5, все норм, кроме сравнения со средней. Отработало без ошибок
64 Maxus43
 
29.05.13
13:47
не весь код выложила, он почти нормальный
65 kittis666
 
29.05.13
13:47
не работает(
причину не могу понять(
66 Jonny_Khomich
 
29.05.13
13:49
67 DexterMorgan
 
29.05.13
13:49
(65) Ну не расстраивайся(( Выложи весь код мы тебе поможем!
68 ICWiner
 
29.05.13
13:49
У тебя был код

сумма = 0;
для сч=0 по Количество Цикл
сумма = сумма+Таблица[сч];
КонецЦикла;

Выдавал эту ошибку, ты исправила в обработке/конфигурации на "по Количество - 1", потом или забыла сохранить, или забыла закрыть обработку после сохранения и окрыть заного.
69 kittis666
 
29.05.13
13:50
Перем Число, Количество;
Таблица = Новый Массив;

ВвестиЧисло(Количество,"Введите количество элементов");
Для сч=1 по Количество Цикл
ВвестиЧисло(Число, "Введите " + сч + " элемент");
Таблица.Добавить(Число);
КонецЦикла;

сумма = 0;
для сч=0 по Количество-1 Цикл
сумма = сумма+Таблица[сч];
КонецЦикла;

Ответ = новый массив;
у=сумма/количество;
Для сч=1 по количество Цикл
если Таблица[сч]>у тогда
Ответ.Добавить(Таблица[сч]);
КонецЕсли;
КонецЦикла;

Строкавывода = "";
Для сч=0 по Количество-1 Цикл
Строкавывода = СтрокаВывода + Ответ[сч] + " ";
КонецЦикла;
ЭлементыФормы.массив.Значение = СтрокаВывода;
70 ICWiner
 
29.05.13
13:50
телепат бот моде он
71 kittis666
 
29.05.13
13:50
с этим выходит за границы
72 DexterMorgan
 
29.05.13
13:50
(68) или кэш)
73 ICWiner
 
29.05.13
13:50
Для сч=0 по Количество-1 Цикл
Строкавывода = СтрокаВывода + Ответ[сч] + " ";
КонецЦикла;
74 AaNnDdRrEeYy
 
29.05.13
13:51
Это какой-то жирный троль! не поддавайтесь на провакации
75 Mikeware
 
29.05.13
13:51
(43) в ДНК
76 DexterMorgan
 
29.05.13
13:51
(69) Ну поправь же!

Для сч=1 по количество Цикл
77 ICWiner
 
29.05.13
13:51
В массиве Ответ меньше символов

Для сч=0 по Ответ.Количество() - 1 Цикл
Строкавывода = СтрокаВывода + Ответ[сч] + " ";
КонецЦикла;
78 ICWiner
 
29.05.13
13:55
омг, это что, семерка? оО
80 Михаил 1С
 
29.05.13
14:01
(18) Здоровский вопрос! :))
81 kittis666
 
29.05.13
14:13
есть еще такое, ту же ошибку выводит

перем кол, а;
Таблица= новый массив;

ВвестиЧисло(Кол,"Введите количество элементов");
Для сч=1 по Кол Цикл
ВвестиЧисло(а, "Введите " + сч + " элемент");
Таблица.Добавить(а);
КонецЦикла;

к=0;
для сч=0 по кол-1 цикл

если Таблица[сч]*Таблица[сч+1]> 0 тогда
к=к+1;
КонецЕсли;
КонецЦикла;


ЭлементыФормы.Ответ.Значение = к;
82 DexterMorgan
 
29.05.13
14:19
Таблица[сч]*Таблица[сч+1]

ты правда троллишь? Зачем здесь +1?
83 DexterMorgan
 
29.05.13
14:21
Ты понимаешь что индекс в массиве считается с 0, те количество элементов всегда = макс индекс + 1?
84 m-serg74
 
29.05.13
14:24
(81)
85 m-serg74
 
29.05.13
14:24
к=0;
для сч=0 по кол-2 цикл

если Таблица[сч]*Таблица[сч+1]> 0 тогда
к=к+1;
КонецЕсли;
КонецЦикла;