Top.Mail.Ru
Ответы

Простая задача по 1С. Помогите, пожалуйста , с решением и разъяснением.

Отобразите индикатор загрузки для указанного количества процентов. Дано: Строка Стр содержит 2 числа, разделенных пробелом, текущее значение индикатора и его максимальное значение. Результат: Строка с изображением индикатора. Например: Стр = "6 10" Результат = "[######....] 60%"

Функция ПолучитьРезультат (Стр) Экспорт
....
....
КонецФункции

По дате
По Рейтингу
Аватар пользователя
Мастер
10мес
1234567891011121314151617
 Функция ПолучитьРезультат(Стр) Экспорт 
    МассивЗначений = Стр.Разделить(" "); 
    ТекущееЗначение = Число(МассивЗначений[0]); 
    МаксимальноеЗначение = Число(МассивЗначений[1]); 
    ПроцентЗагрузки = Окр(ТекущееЗначение / МаксимальноеЗначение * 100); 
    Индикатор = "["; 
    КоличествоЗаполненных = Окр(ПроцентЗагрузки / 10); 
    Для i = 1 По КоличествоЗаполненных Цикл 
        Индикатор = Индикатор + "#"; 
    КонецЦикла; 
    КоличествоПустых = 10 - КоличествоЗаполненных; 
    Для i = 1 По КоличествоПустых Цикл 
        Индикатор = Индикатор + "."; 
    КонецЦикла; 
    Индикатор = Индикатор + "] " + ПроцентЗагрузки + "%"; 
    Возврат Индикатор; 
КонецФункции 
Аватар пользователя
Просветленный
10мес

```1C
Функция ПолучитьРезультат(Стр) Экспорт

// Разделяем строку на два числа
Значения = СтрРазделить(Стр, " ");
ТекущееЗначение = Значения[1];
МаксимальноеЗначение = Значения[2];

// Вычисляем процент заполнения
Процент = Цел(ТекущееЗначение * 100 / МаксимальноеЗначение);

// Формируем строку с индикатором
Индикатор = "";
Для i = 1 По ТекущееЗначение Цикл
Индикатор = Индикатор + "#";
КонецЦикла;

Для i = 1 По МаксимальноеЗначение - ТекущееЗначение Цикл
Индикатор = Индикатор + ".";
КонецЦикла;

// Формируем строку с результатом
Результат = "[" + Индикатор + "] " + Процент + "%";

Возврат Результат;

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

**Объяснение:**

1. **Разделение строки:**
* Используем функцию `СтрРазделить` для разделения входной строки `Стр` по пробелу.
* Сохраняем значения в переменные `ТекущееЗначение` и `МаксимальноеЗначение`.
2. **Вычисление процента:**
* Вычисляем процент заполнения индикатора с помощью формулы `ТекущееЗначение * 100 / МаксимальноеЗначение`.
* Округляем результат до целого числа с помощью функции `Цел`.
3. **Формирование индикатора:**
* Создаем пустую строку `Индикатор`.
* В цикле добавляем символ `#` в `Индикатор` столько раз, сколько равно `ТекущееЗначение`.
* В другом цикле добавляем символ `.` в `Индикатор` столько раз, сколько равно `МаксимальноеЗначение - ТекущееЗначение`.
4. **Создание строки результата:**
* Объединяем `Индикатор`, процент и символ "%" в одну строку `Результат`.
5. **Возврат результата:**
* Возвращаем сформированную строку `Результат` из функции.

**Пример использования:**

```1C
Стр = "6 10";
Результат = ПолучитьРезультат(Стр);
// Результат: [######....] 60%
```

**Важно:**

* В 1С для создания символов "#[", "]" нужно использовать их кавычки.
* В вашем примере `Стр = "6 10"` не хватает пробела между числами.

Надеюсь, это решение и объяснение помогут вам!

Удаленный ответ Ответ удалён
Аватар пользователя
10мес

Раз простая то зачем спрашиваешь