Вход | Регистрация

  1  2   
Информационные технологии :: Математика и алгоритмы

Удалить каждое 3 число

Удалить каждое 3 число
Я
   Kostyaaa
 
17.07.18 - 15:10
Подскажите, пожалуйста. мне нужно что бы пользователь ввел ряд чисел от 1 до 30(допустим), и при каждом нажатии кнопки удалялось каждое 3е число. как сделать, ума не приложу. помогите пожалуйста!
 
 
   dezss
 
1 - 17.07.18 - 15:13
куда ввел?
в каком формате?
надо хранить информацию о тех числах, которые уже были удалены? т.е. если были числа 1 5 7 8 9 4 3, нажимаем, удалится 7, нажимаем второй раз, должно удалится 4, 8 или 3?
   Tonik992
 
2 - 17.07.18 - 15:17
(0) Вам надо помочь заставить пользователя ввести числа?
   Вафель
 
3 - 17.07.18 - 15:18
пусть водит в ТЗ. тогда нужно будет удалить каждую третью строку (удалять лучше с конца)
   Малыш Джон
 
4 - 17.07.18 - 15:19
О, это надо в соседнюю ветку, там как раз числа обсуждают
   YaFedor
 
5 - 17.07.18 - 15:19
Зачем все это нужно?
   sergey198
 
6 - 17.07.18 - 15:19
(0) автор что хоть за задача то, нифига это нужно?
   Kostyaaa
 
7 - 17.07.18 - 15:20
(1) я так понимаю в строку.
формат 1,2,3,4,5 и тд.
хранить информацию не надо
удаляем 3,6,9,12 и тд
соответсвенно после удаления, эти числа пропадают.
при следующем нажатии удалить 4,8,13 и тд. до того момента пока не останется 2 числа.
   sergey198
 
8 - 17.07.18 - 15:22
(7) ты за интриговал, традиционно накуя?
   Симпатяга
 
9 - 17.07.18 - 15:23
(7) замените разделитель на Символы.ПС
Удаляйте каждую третью
   Малыш Джон
 
10 - 17.07.18 - 15:23
(7) не хочу тебя огорчать, но при таком подходе - оставляй тупо первых два числа и не заморачивайся
 
 Рекламное место пустует
   r_p
 
11 - 17.07.18 - 15:23
Я не очень понял зачем, но целый остаток от деления счетчика и оператор "%" должны помочь?
   Kostyaaa
 
12 - 17.07.18 - 15:24
(8) поспорили с другом, что такое реально сделать в 1с
   dezss
 
13 - 17.07.18 - 15:24
(7) так фигня же...
счетчик нажатий, позиция удаляемого числа будет вычисляться по формуле: n*2+3, где n - число нажатий
   dezss
 
14 - 17.07.18 - 15:25
(12) а какая разница на чем это писать? %)
это ж простейший алгоритм
   DeeK
 
15 - 17.07.18 - 15:26
чето либо я не понимаю задачи, либо че тут делать то, элементарно же
   Tonik992
 
16 - 17.07.18 - 15:27
(14) Там друг полюбому из .net или java, который опорочил 1С
   q10n1k
 
17 - 17.07.18 - 15:27
Мне кажется это какое-нибудь тестовое задание, которое выдали студенту при приеме на работу
   dezss
 
18 - 17.07.18 - 15:27
(16) и ТС, который тоже порочит 1с)
   dezss
 
19 - 17.07.18 - 15:27
(18) + и программистов вцелом
   bolobol
 
20 - 17.07.18 - 15:28
Правильный ответ в (10). Ещё и с оптимизацией рутинной операции пользователя - нажатий не нужно вообще.
   Tonik992
 
21 - 17.07.18 - 15:29
(20) настоящий искусственный интеллект, в (10)
   r_p
 
22 - 17.07.18 - 15:29
Я сделаю эту задачу с 2 циклами. Кто меньше?
   Timon1405
 
23 - 17.07.18 - 15:30
Если все-таки числа по кругу, то это
https://ru.wikipedia.org/wiki/Задача_Иосифа_Флавия
   Kostyaaa
 
24 - 17.07.18 - 15:30
как код будет выглядеть? мен это нужно написать и показать как работает
   Tonik992
 
25 - 17.07.18 - 15:30
В (10) вас уже опередили.
   dezss
 
26 - 17.07.18 - 15:30
(22) э...а зачем тут циклы?
   dezss
 
27 - 17.07.18 - 15:31
(26) + ну разве что один цикл, чтоб эту всю ерундень в массив запихать
   Tonik992
 
28 - 17.07.18 - 15:31
(24) А как вы собираетесь это проверять? На чем будете запускать программу?
   DeeK
 
29 - 17.07.18 - 15:31
(22) один цикл же, не?
   dezss
 
30 - 17.07.18 - 15:31
(24) ну он будет выглядеть так, как ты его напишешь)
   dezss
 
31 - 17.07.18 - 15:33
колитесь, кто уже обработку написал?))
   r_p
 
32 - 17.07.18 - 15:33
(26) Если удалять в первом цикле, то порядок цифр изменится же и мы удалим не то. Не?
   Tonik992
 
33 - 17.07.18 - 15:33
ТС! Сам поспорил, сам алгоритм и пиши :-)
А мы ответили, что такое на 1С можно сделать.
 
 
   Kostyaaa
 
34 - 17.07.18 - 15:33
(28) в 1с я сперва сам начал делать через оработку, там создал реквизит(строка) и пытался сделать. ничего не вышло
   bolobol
 
35 - 17.07.18 - 15:37
Не смог ввести числа от 1 до 30 ?
   Timon1405
 
36 - 17.07.18 - 15:39
Коллеги, зрите в корень,
Друг = злой препод, который не проставляет зачет
   Kostyaaa
 
37 - 17.07.18 - 15:40
(35) не смог сделать, что бы программа удаляла их, и удаленные сразу удаляла в строке
   Kostyaaa
 
38 - 17.07.18 - 15:40
(36) я уже 3 года работаю электриком, 1с хобби)
и сессия в июле не идет)
   Tonik992
 
39 - 17.07.18 - 15:41
(37) Значит вы проиграли спор :-)
   DeeK
 
40 - 17.07.18 - 15:44
Сч = ТабличнаяЧасть1.Количество();
    Пока Сч > 0 цикл
        Если Цел(Сч / 3) = Сч/3 тогда
            ТабличнаяЧасть1.Удалить(Сч-1);
        КонецЕсли;
        Сч = Сч - 1;
    КонецЦикла;
   Asmody
 
41 - 17.07.18 - 15:44
В типовой ERP точно должно быть.
Или писать ВК.
   Tonik992
 
42 - 17.07.18 - 15:46
(41) рулетка при закрытии месяца?
   Малыш Джон
 
43 - 17.07.18 - 15:47
в ERP точно такая функция есть, сам видел

ОбщегоНазначения.УдалитьКаждыйТретийЭлемент(Строка);
   Asmody
 
44 - 17.07.18 - 15:49
(43) ОбщегоНазначенияКлиентСерверПереопределяемый.УдалитьКаждыйТретийЭлемент(Строка);
   r_p
 
45 - 17.07.18 - 15:49
(40) легче сч%3=0
   Малыш Джон
 
46 - 17.07.18 - 15:49
причем тянется она - с самых первых дней 1С. Сам БГ однажды пророчески сказал: "Настанет день и придет человек, называемый Константин, и понадобится ему такая функция, чтоб перед другом не оплошать". И вот. Как в воду глядел.
   Asmody
 
47 - 17.07.18 - 15:50
(46) Точно! Сейчас глянул - там код ещё шестёрочный.
   Kostyaaa
 
48 - 17.07.18 - 15:51
(40) это таблица. а мне строку надо...
   r_p
 
49 - 17.07.18 - 15:51
(40) ну и запусти посмотри, при первом удалении будет сдвиг строк, и дальше удалять будет неправильно. Поэтому надо массив строк для удаления копить.
 
 Рекламное место пустует
   Малыш Джон
 
50 - 17.07.18 - 15:51
(49) с конца ж удаляет-то, как сдвиг повлияет на то, что к началу ближе?
   r_p
 
51 - 17.07.18 - 15:52
(50) Согласен, ступил
   Tonik992
 
52 - 17.07.18 - 15:53
Жаль только в ERP есть.
   Малыш Джон
 
53 - 17.07.18 - 15:53
(48) РазложитьСтрокуВМассивПодстрок() и работай в свое удовольствие
   Tonik992
 
54 - 17.07.18 - 15:55
(53) Старье ведь :-) Надо СтрРазделить()
   hawksib
 
55 - 17.07.18 - 15:57
а слабо на 1с сделать игру футбол? вот я понимаю спор, а тут...
   DeeK
 
56 - 17.07.18 - 15:57
(48) ну разложи строку в таблицу, делов то, хоть кубиком хоть пирамидкой ее уложи, как тебе надо
   ERWINS
 
57 - 17.07.18 - 15:58
"ВЫБРАТЬ
|    ТЗ.ЧСЛ КАК ЧСЛ,
|    АВТОНОМЕРЗАПИСИ() КАК Поле1
|ПОМЕСТИТЬ ТТ
|ИЗ
|    &ТЗ КАК ТЗ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|    ТТ.ЧСЛ КАК ЧСЛ
|ИЗ
|    ТТ КАК ТТ
|ГДЕ
|    (ВЫРАЗИТЬ(ТТ.Поле1 / 3 КАК ЧИСЛО(10, 0))) = ТТ.Поле1 / 3"
   DeeK
 
58 - 17.07.18 - 15:58
(48) либо драконь строку напрямую, методика та же, только в глазах рябить будет
   Tonik992
 
59 - 17.07.18 - 15:59
(57) что еще за АВТОНОМЕРЗАПИСИ()  ?
Это не 1С.
   Kostyaaa
 
60 - 17.07.18 - 16:01
(54) как ее разделить?
   ERWINS
 
61 - 17.07.18 - 16:02
(59) 1с. только что сделал в конструкторе запросов
   Малыш Джон
 
62 - 17.07.18 - 16:04
(59) 8.3.13

(57) если данные из ТЗ тащить, там номер строки изначально есть
   Timon1405
 
63 - 17.07.18 - 16:06
Функция ЫшелПышелНахерВышел(Строка,НомерУдаления)
    СтрокаЧисел=СтрЗаменить(СтрокаЧисел," ",Символы.ПС);
    ТДД = Новый ТекстовыйДокумент;
    ТДД.УстановитьТекст(СтрокаЧисел);
    Для Сч =-ТДД.КоличествоСтрок()  По 1 Цикл
        Если -Сч%НомерУдаления=0 Тогда
            ТДД.УдалитьСтроку(-Сч);
        КонецЕсли;
    КонецЦикла;
    СтрокаЧисел= ТДД.получитьТекст();
    СтрокаЧисел=СтрЗаменить(СтрокаЧисел,Символы.ПС," ");
    Возврат СтрокаЧисел;
КонецФункции
   fedoss
 
64 - 17.07.18 - 16:10
Вариант с использованием только строк. Можно переделать, чтобы прам из текущей строки символы удалял

КоличествоЗпт = 0; Результат = "";
Для Х = 1 По СтрДлина(ИсходнаяСтрока) Цикл
    ТекСимвол = Сред(ИсходнаяСтрока, Х, 1);
    КоличествоЗпт = КоличествоЗпт + ?(ТекСимвол = ",", 1, 0);
    Если КоличествоЗпт % 3 <> 2 Тогда
        Результат = Результат + Символ;
    КонецЕсли;     
КонецЦикла;
   dezss
 
65 - 17.07.18 - 16:15
народ, да напишите ему уже обработку)
   Kostyaaa
 
66 - 17.07.18 - 16:17
(65) да) Пожалуйста...
   Garykom
 
67 - 17.07.18 - 16:25
Сегодня же вроде не пятница?
   Kostyaaa
 
68 - 17.07.18 - 16:25
(67) вторник
   bolobol
 
69 - 17.07.18 - 16:29
Неправильный студент... Задачей пятницы озадачился уже во вторник...
   Kostyaaa
 
70 - 17.07.18 - 16:30
(69) завтра зачет)) (Шутка)
   hawksib
 
71 - 17.07.18 - 16:31
строка = "1921о2392-02=";
счет= 0;
индекссимвола = 0;
для и = по строка.количествосимволов() цикл
индекссимвола++;
счет++;
Если счет = 3 Тогда
строка.Удалить(индекссимвола);
счет = 0;
КонецЦикла;
КонецЕсли;
   hawksib
 
72 - 17.07.18 - 16:32
идите в .опу
   Kostyaaa
 
73 - 17.07.18 - 16:33
(71) "СТрока = " что за символы после =?
   hawksib
 
74 - 17.07.18 - 16:35
(73) это не кириллические и не латинские символы, тебе не понять уже
   uno-group
 
75 - 17.07.18 - 16:36
Мельчает народ. Раньше забивались, что 1с в шахматы не хуже 2 разряда будет играть, а тут пару чисел из строки не знают как написать. ;(
   Kostyaaa
 
76 - 17.07.18 - 16:37
(74) чт оже вы с таким упреком...
   hawksib
 
77 - 17.07.18 - 16:37
(75) я ж говорю, что надо футбол на 1с запрограммировать, вот это спор, а шахматы я и на калькуляторе сделаю
   Kostyaaa
 
78 - 17.07.18 - 16:39
(77) не работает. ошибки выдает при запуске в отладке
   Kostyaaa
 
79 - 17.07.18 - 16:43
(77) {Обработка.ЧислаВРяду.Форма.Форма.Форма(21,5)}: Ожидается имя переменной
для <<?>>и = по строка.количествосимволов() цикл  (Проверка: Сервер)
{Обработка.ЧислаВРяду.Форма.Форма.Форма(23,5)}: Неопознанный оператор
счет<<?>>++;  (Проверка: Сервер)
{Обработка.ЧислаВРяду.Форма.Форма.Форма(27,1)}: Ожидается ключевое слово 'КонецЕсли' ('EndIf')
<<?>>КонецЦикла;  (Проверка: Сервер)
{Обработка.ЧислаВРяду.Форма.Форма.Форма(28,1)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
<<?>>КонецЕсли; (Проверка: Сервер)
{Обработка.ЧислаВРяду.Форма.Форма.Форма(21,5)}: Ожидается имя переменной
для <<?>>и = по строка.количествосимволов() цикл  (Проверка: Тонкий клиент)
{Обработка.ЧислаВРяду.Форма.Форма.Форма(23,5)}: Неопознанный оператор
счет<<?>>++;  (Проверка: Тонкий клиент)
{Обработка.ЧислаВРяду.Форма.Форма.Форма(27,1)}: Ожидается ключевое слово 'КонецЕсли' ('EndIf')
<<?>>КонецЦикла;  (Проверка: Тонкий клиент)
{Обработка.ЧислаВРяду.Форма.Форма.Форма(28,1)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
<<?>>КонецЕсли; (Проверка: Тонкий клиент)
   hawksib
 
80 - 17.07.18 - 16:43
(78) ещё б оно работало xD
   hawksib
 
81 - 17.07.18 - 16:45
(79) пройди до 10 урока на javarush, до 10 уровня бесплатно, а с 1с завязывай, плохое это хобби
   hawksib
 
82 - 17.07.18 - 16:47
бесполезое
   Kostyaaa
 
83 - 17.07.18 - 16:47
(81) ты не поможешь?
   Kigo_Kigo
 
84 - 17.07.18 - 16:48
Процедура Сформировать()
    СчетчикЦикла = 0;
    СтрокаНеНаформе = "";
    Для А = 1 По СтрДлина(СтрокаНаФорме) Цикл
        СтрокаНеНаформе = СтрокаНеНаформе + Лев(СтрокаНаФорме,2);
        СтрокаНаФорме = Сред(СтрокаНаФорме,4);
    КонецЦикла;
    СтрокаНаФорме = СтрокаНеНаформе;
КонецПроцедуры
   Kigo_Kigo
 
85 - 17.07.18 - 16:49
По факту всегда останется первые 2 символа :)
ПыСы код выше клюшек
   Kostyaaa
 
86 - 17.07.18 - 16:52
(85) Спасибо. Вот только пишет, что переменная не определена...
   hawksib
 
87 - 17.07.18 - 16:53
(81) а на сколько вы поспорили?
   hawksib
 
88 - 17.07.18 - 16:54
(87) ой, (83)
   Garykom
 
89 - 17.07.18 - 16:54
(84) В задании просят удалить числа, не просят их сдвигать.

1 2 3 4 5 6 7 8 9
1 2   4 5   7 8
1 2     5   7
1 2         7
   Kostyaaa
 
90 - 17.07.18 - 16:55
(89) совершенно верно!!!
   Kigo_Kigo
 
91 - 17.07.18 - 16:56
(89) Да не сдвигайте, лепите туда пробел :)
   Kostyaaa
 
92 - 17.07.18 - 16:56
(91) не работает у меня в общем...(((
   Garykom
 
93 - 17.07.18 - 16:57
(91) Числа до 30, иногда придется лепить два пробела
   hawksib
 
94 - 17.07.18 - 16:58
блин, ну вот реально, половина форума знает, что сделать можно, просто не дает рабочий код, потому что задача - шлак. вопрос, на сколько денег спор? готов дать код за 5$, если работать не будет, сделаю кэшбэк
   Kigo_Kigo
 
95 - 17.07.18 - 16:59
(92) Я же сказал, что это код для 7.7
   Kostyaaa
 
96 - 17.07.18 - 17:01
(94) с чего вы взяли, что спор на деньги? мы спорили на то что, кто проиграет побежит 10км.
   hawksib
 
97 - 17.07.18 - 17:03
(96) и в чем выгода победителя? я каждый день по 10 км бегаю, при этом ни с кем не спорю
   dezss
 
98 - 17.07.18 - 17:03
(96) ну вот...тогда вопрос другой, сколько ты готов заплатить, чтобы не бежать 10 км?))))
   Kigo_Kigo
 
99 - 17.07.18 - 17:03
(89) Читаем задание
"и при каждом нажатии кнопки удалялось каждое 3е число"
в моем пониманиее удалить, это удалить
   hawksib
 
100 - 17.07.18 - 17:07
в общем, коллективным голосованием думаю надо решить, что бы оба спорщика бежали по 100 км. и факт пробежки выложили на youtube. я за. Здесь голосуем или на change петицию будем писать?
  1  2   

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует