Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 ноя 2024, 12:37

Помогите пожалуйста Массивы 1с

Автор s.freak, 07 мар 2013, 22:22

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

s.freak

Задача №1.
У вас есть неосортированный массив чисел {4,10,1,22,3,44,2,5}. Необходимо написать функцию  которая произведет сортировку массива и вернет отсортированый массив.
Задача №2.
У вас есть отсортированный массив {1,3,5,6,7,8,10,13,14,15,20}. Необходимо написать процедуру которая по передаваемому числу – возвращает позицию этого числа в массиве.



помогите пожалуйста,решается вопрос трудоустройства и обучения стажером.
Сам чесал репу. Не нашел типовых задач  ни у Радченко ни у Чистова.
Знаю что азы и база,но в книге этого нет,заранее спасибо
B)

sadovod

По задаче №1. Предполагаю, что цель задачи - использовать встроенные методы платформы, а не какой-нибудь пузырьковый алгоритм сортировки.
Не думаю, что это - оптимальный вариант, но для вечера пятницы, думаю, сойдёт :)
Функция ВернутьОтсортированныйМассив()
  Массив = Новый Массив;
  Массив.Добавить(4);
  Массив.Добавить(10);
  Массив.Добавить(1);
  Массив.Добавить(22);
  Массив.Добавить(3);
  Массив.Добавить(44);
  Массив.Добавить(2);
  Массив.Добавить(5);
   
  тз = Новый ТаблицаЗначений;
  тз.Колонки.Добавить("Число");
  Для каждого элемент Из Массив Цикл
   новая_строка = тз.Добавить();
   новая_строка.Число = элемент;
  КонецЦикла;
  тз.Сортировать("Число");

  Возврат тз.ВыгрузитьКолонку("Число");

КонецФункции

s.freak

Премного благодарен, а 2 задача?)

Просвятите новичка,насколько данная задача (сложность) уместна для стажера в 1с ?
или она более уместна для практикующего программиста?:)
Добавлено: 08 мар 2013, 19:38


Задачу 2 решил,но возможно коряво :xfbnsdfb:

Цитировать
Процедура ВозвратЗнач()
Массив = Новый Массив;
Массив.Добавить(1);
Массив.Добавить(3);
Массив.Добавить(5);
Массив.Добавить(6);
Массив.Добавить(7);
Массив.Добавить(8);
Массив.Добавить(10);
Массив.Добавить(13);
Массив.Добавить(14);
Массив.Добавить(15);
Массив.Добавить(20);

Если
X = ТипЗнч(ЭлементМассива)
Тогда
Массив.Элемент.Найти(Число);

Возврат;

КонецПроцедуры

Что не так сделал?<_<

SlazZy

Цитата: s.freak от 07 мар 2013, 23:38
Премного благодарен, а 2 задача?)

Просвятите новичка,насколько данная задача (сложность) уместна для стажера в 1с ?
или она более уместна для практикующего программиста?:)
Добавлено: 08 мар 2013, 19:38


Задачу 2 решил,но возможно коряво :xfbnsdfb:

Цитировать
Процедура ВозвратЗнач()
Массив = Новый Массив;
Массив.Добавить(1);
Массив.Добавить(3);
Массив.Добавить(5);
Массив.Добавить(6);
Массив.Добавить(7);
Массив.Добавить(8);
Массив.Добавить(10);
Массив.Добавить(13);
Массив.Добавить(14);
Массив.Добавить(15);
Массив.Добавить(20);

Если
X = ТипЗнч(ЭлементМассива)
Тогда
Массив.Элемент.Найти(Число);

Возврат;

КонецПроцедуры

Что не так сделал?<_<

Да в общем-то вообще не совсем понятно что вы сделали :))


Процедура ВозвратЗнач()
Массив = Новый Массив;
Массив.Добавить(1);
Массив.Добавить(3);
Массив.Добавить(5);
Массив.Добавить(6);
Массив.Добавить(7);
Массив.Добавить(8);
Массив.Добавить(10);
Массив.Добавить(13);
Массив.Добавить(14);
Массив.Добавить(15);
Массив.Добавить(20);

Сообщить(Массив.Найти(Число)+1);  //возвращает индекс, а он начинается с нуля.

КонецПроцедуры

Теги: массивы 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск