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

Простейшая задача: найти среднее число из трех

Автор Travmatolog05, 03 мар 2022, 17:32

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

felov

Может так:
Число1 = 4535;
Число2 = 333;
Число3 = 657;


Если  Число1 < Число2 И Число1 > Число3 ИЛИ Число1 > Число2 И Число1 < Число3 Тогда
    Результат = Число1;
ИначеЕсли Число2 > Число1 И Число2 < Число3 ИЛИ Число2 > Число3 И Число2 < Число1 Тогда
    Результат = Число2;
 ИначеЕсли Число3 > Число2 И Число3 < Число1 ИЛИ Число3 < Число2 И Число3 > Число1 Тогда
    Результат = Число3;
 КонецЕсли;
   Сообщить("Среднее значение чисел- " + Результат + " "+"Числа "+Число1+","+Число2+","+Число3);

SokolKat

felov, а есть смысл проверять 3 число? 1 и 2 проверка уже дают полную картину.
Если Число1 > Число2 И Число1 < Число3 ИЛИ Число1 < Число2 И Число1 > Число3 Тогда
Среднее = Число1;
ИначеЕсли Число2 > Число1 И Число2 < Число3 ИЛИ Число2 > Число3 И Число2 < Число1 Тогда
Среднее = Число2;
Иначе
Среднее = Число3;
КонецЕсли;

antoneus

Числа = Новый СписокЗначений;
Числа.Добавить(Число1);
Числа.Добавить(Число2);
Числа.Добавить(Число3);
Числа.СортироватьПоЗначению();
Сообщить(Числа[1].Значение)

Afinogen

 :D так вам нужно среднее арифметическое или 2-е по порядку?
во втором случае я бы не парился,  сделал бы таблицу значений из трех строк, отсортировал по возрастанию  и вывел бы число соответствующее второй строке

ТЗ  = Новый таблицаЗначений
Новаяколонка = ТЗ.Колонки.Добавить("Число");
новаястрока = ТЗ.Добавить();
НоваяСтрока.Число = число1;
новаястрока = ТЗ.Добавить();
НоваяСтрока.Число = число2;
новаястрока = ТЗ.Добавить();
НоваяСтрока.Число = число3;
ТЗ.Сортировать("число возр"); //или ТЗСортировать("число убыв") тут не имеет значения

Сообщить(ТЗ[1].число);

 :D  :D  :D

Afinogen

действительно или список значений - еще проще)))

AnnaD

Всем привет! Я только начала изучать 1С программирование и в поисках подсказки на первую Задачу курса набрела на данный чат!
По формулировке вопроса его автором, я поняла, что прохожу тот же курс) Но простого ответа я здесь так и не нашла, однако, почитав варианты, я пришла к своему простому и верному решению.

(Смысл задачи не в том, чтобы код считал арифметически среднее значение из 3-х чисел, а определил его из данных чисел методом сравнения). Забивайте код, меняйте значения чисел на свой вкус, и результат всегда будет показывать "Ваше" значение, которое меньше одного и больше другого))

Решение:

Число1 = 8;
Число2 = 10;
Число3 = 9;
 
 Если Число1 > Число2 И Число1 < Число3 ИЛИ Число1 > Число3 И Число1 < Число2 Тогда Результат = Число1;
 
 ИначеЕсли Число2 > Число1 И Число2 < Число3 ИЛИ Число2 > Число3 И Число2 < Число1 Тогда Результат = Число2;
 
 ИначеЕсли Число3 > Число1 И Число3 < Число2 ИЛИ Число3 > Число2 И Число3 < Число1 Тогда Результат = Число3;
   
     КонецЕсли;
 
 Сообщить (Результат);

Afinogen

Приведенными выше способами эта задача так же прекрасно решается без всех этих "если"

Afinogen

И тот код будет работать быстрее чем все эти если, я так понимаю суть задачи просто показать владение оператором если

AnnaD

Afinogen, да, именно так )) приведенные выше способы еще не проходили)

kodzo

Процедура ВозвратСреднегоЧисла(Число1, Число2, Число3)
Если Число1 > Число2 И Число1 < Число3
ИЛИ Число1 < Число2 И Число1 > Число3 Тогда
    СреднееЧисло = Число1;
ИначеЕсли Число2 > Число1 И Число2 < Число3
ИЛИ Число2 < Число1 И Число2 > Число3 Тогда
    СреднееЧисло = Число2;
ИначеЕсли Число3 > Число1 И Число3 < Число2
ИЛИ Число3 < Число1 И Число3 > Число2 Тогда
    СреднееЧисло = Число3;
КонецЕсли;
Сообщить(СреднееЧисло);
КонецПроцедуры

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

Рейтинг@Mail.ru

Поиск