Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
31 Мар 2020, 23:37
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: УДАЛИТЬ КАЖДЫЙ 3-Й ЭЛЕМЕНТ МАССИВА  (Прочитано 311 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Артём Сурмин

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-03-25
  • Сайт: 
Помогите решить задачу,дан массив количество элементов вводит пользователь , и нужно удалять каждый третий элемент
У кого есть возможность черканите цикл

Последний раз редактировалось: Артём Сурмин; 25 Мар 2020, 16:25


Оффлайн wise

  • *****
  • Сообщений: 1068
  • РЕПУТАЦИЯ: 154
  • КПД: 14%
  • Кто сгорел, того не подожжешь
  • Регистрация: 2013-03-21
  • Сайт: 
  • Профессия: Ученик 1С
(0) попробуйте ТАК:
{
МаксНомер = ВашМассив.Количество();
Пока МаксНомер >= 0 Цикл
    Если МаксНомер%3 = 0 Тогда
        ВашМассив.Удалить(МаксНомер-1);
    КонецЕсли;
    МаксНомер = МаксНомер - 1;
КонецЦикла;
}
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Оффлайн Артём Сурмин

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-03-25
  • Сайт: 
wise, пишет индекс находится за пределами массива,как мне правильно вывести (

Процедура УдалитьТретийЭлемент(Команда)
   
   Массив = Новый Массив(Объект.ПолеВвода);
        
   //ОбработатьМассив2(Массив);
   
   
   МаксНомер = Массив.Количество();
Пока МаксНомер >= 0 Цикл
    Если МаксНомер%3 = 0 Тогда
        Массив.Удалить(МаксНомер-1);
      Сообщить(Массив[МаксНомер]) ;
    КонецЕсли;
    МаксНомер = МаксНомер - 1;
КонецЦикла;

Оффлайн wise

  • *****
  • Сообщений: 1068
  • РЕПУТАЦИЯ: 154
  • КПД: 14%
  • Кто сгорел, того не подожжешь
  • Регистрация: 2013-03-21
  • Сайт: 
  • Профессия: Ученик 1С
(2) СНАЧАЛА сообщить, а ПОТОМ удалить.
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Оффлайн Артём Сурмин

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-03-25
  • Сайт: 
wise, он я так понял вывод каждый третий элемент , а надо чтобы удалял каждый третий пока не останется 2 элемента в массиве я так понял


Оффлайн wise

  • *****
  • Сообщений: 1068
  • РЕПУТАЦИЯ: 154
  • КПД: 14%
  • Кто сгорел, того не подожжешь
  • Регистрация: 2013-03-21
  • Сайт: 
  • Профессия: Ученик 1С
(4) {нужно удалять каждый третий элемент} ЭТО же Вы писали...
мой код и удаляет каждый третий элемент...
если надо - "пока не останется 2 элемента в массиве"
поставьте условие ПОСЛЕ цикла на проверку количества элементов
и рекурсивно вызывайте ЭТУ процедуру.
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Оффлайн Артём Сурмин

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-03-25
  • Сайт: 
wise,    КоличествоЭлементов = Массив.Количество();
   Если КоличествоЭлементов < 3 Тогда
      Сообщить("В массиве недостаточно элементов для анализа");
      Возврат;
   КонецЕсли;
    Разделитель = ",";
   Пока КоличествоЭлементов > 5 Цикл
      Пока КоличествоЭлементов > 1 Цикл
         //Сообщить(СтрСоединить(КоличествоЭлементов,Разделитель));

         Если Цел((КоличествоЭлементов)/3) = (КоличествоЭлементов)/3 Тогда 
            
            Массив.Удалить( КоличествоЭлементов-1);
            //Сообщить(СтрСоединить(КоличествоЭлементов,Разделитель));
            Сообщить(КоличествоЭлементов);

         КонецЕсли;     
         КоличествоЭлементов = КоличествоЭлементов -1;
      КонецЦикла;
      
   КонецЦикла;

сейчас вот так, но считает вообще не правильно , ввожу 12 элементов, ответ 3.6.9 12

а нужно чтобы выводило в строку через запятую 1,2,4,5,7,8,10,11,
                                              1,2,5,7,8,11
                                              1,2,7,8,11
ну и т.д пока не останется три элемента

Оффлайн alex0402

  • *****
  • Сообщений: 1963
  • РЕПУТАЦИЯ: 352
  • КПД: 18%
  • Регистрация: 2010-09-10
  • Сайт: 
  • Профессия: Программист 1С
МаксНомер = Массив.Количество();
Пока МаксНомер >= 3 Цикл
    Пока МаксНомер >= 0 Цикл
        Если (МаксНомер+1)%3 = 0 Тогда
            Массив.Удалить(МаксНомер);
        КонецЕсли;
        МаксНомер = МаксНомер - 1;
    КонецЦикла;
    Строка = "";
    Для ш = 0 По Массив.Количество()-1 Цикл
        Строка = Строка + Массив [ш] + ",";
    КонецЦикла;
    Сообщить(Строка);
    МаксНомер = Массив.Количество();
КонецЦикла
Спасибо за Сказать спасибо

Последний раз редактировалось: alex0402; 27 Мар 2020, 16:35

Оффлайн Артём Сурмин

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-03-25
  • Сайт: 
alex0402, {Обработка.Массив.Форма.Форма.Форма(26)}: Ошибка при вызове метода контекста (Удалить)
            Массив.Удалить(МаксНомер-1);
по причине:
Значение индекса выходит за границы диапазона


вот это пишет

Оффлайн alex0402

  • *****
  • Сообщений: 1963
  • РЕПУТАЦИЯ: 352
  • КПД: 18%
  • Регистрация: 2010-09-10
  • Сайт: 
  • Профессия: Программист 1С
alex0402, {Обработка.Массив.Форма.Форма.Форма(26)}: Ошибка при вызове метода контекста (Удалить)
            Массив.Удалить(МаксНомер-1);
по причине:
Значение индекса выходит за границы диапазона


вот это пишет
изменил
Спасибо за Сказать спасибо


 

Не удается удалить "Реализацию ТМЗ и услуги" и "Счет фактуру"

Автор TahibРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 7
Просмотров: 623
Последний ответ 05 Авг 2019, 07:58
от alexandr_ll
Не активны кнопки "Добавить" и "Удалить" дополнительные строки в отчете по НДС

Автор kiksiРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 1726
Последний ответ 25 Янв 2018, 14:50
от kiksi
Как удалить зависшее фоновое задание [фоновые задания] [фоновое задание] [снять зависший сеанс]

Автор MuI_I_IkaРаздел Администрирование 1с

Ответов: 0
Просмотров: 36363
Последний ответ 16 Июл 2014, 19:48
от MuI_I_Ika
Внимание вопрос: Как удалить "выемка ДС из кассы"?

Автор Unknown29rusРаздел Пользователям "1С - Предприятие 8"

Ответов: 5
Просмотров: 8432
Последний ответ 20 Май 2014, 11:24
от 790619540
Удалить запись из справочника "Сотрудники" уволенного

Автор Alex56Раздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4621
Последний ответ 02 Фев 2014, 21:37
от LordWizard

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
85 Сообщений
LexaK
60 Сообщений
alexandr_ll
32 Сообщений
antoneus antoneus
32 Сообщений
Алексей Рожков Алексей Рожков
31 Сообщений
ef0din
25 Сообщений
wise wise
20 Сообщений
Алексей_1985_06
19 Сообщений
Varg . Varg .
19 Сообщений
Alexbis
15 Сообщений

* Кто онлайн

  • Точка Гостей: 278
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal