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

Проблема С Циклом 1С 8.2

Автор Silent_Assassin, 18 июн 2013, 16:49

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

Silent_Assassin

Есть задание, создать обработку которая из трех чисел введенных пользователем выдает среднее из них.

Пока начал делать алгоритм, но не получается вывести число. В чем проблема.
&НаКлиенте
Процедура Среднее(Команда)
ср=0;
Если (Число1 > Число2 ) и (Число1 < Число3)
Тогда
Число1=ср;

   Сообщить(ср)
   
   //ИначеЕсли (Число2 > Число1 ) и (Число2 < Число3)


КонецЕсли;

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


Синтаксических ошибок нет, алгоритм не полный.

Vit1501

Если бы ты привел полный алгоритм, то было бы проще понять. Пока же получается так что при определенных условиях ты обнуляешь число1 и выводишь в сообщении ноль. Спрашивается зачем?

Silent_Assassin

Вот полный код.
Но не работает последнее условие, не пойму пока как реализовать. Может какие операторы неправельные?


&НаКлиенте
Процедура Среднее(Команда)
ср=0;
    Если (Число1 > Число2 ) и (Число1 < Число3)
    Тогда   
   СреднееЧисло=Число1;
     
   Сообщить("а")
   
    ИначеЕсли (Число2 > Число1 ) и (Число2 < Число3)
    Тогда   
    СреднееЧисло=Число2;
     
   Сообщить("б")
   
    ИначеЕсли (Число3 > Число1 ) и (Число3 < Число2)
    Тогда   
    СреднееЧисло=Число3;
     
   Сообщить("в")
ИначеЕсли  Число1 = Число1 и Число2=Число2
   тогда
   Сообщить("нетСтреднегоЧисла")
   
КонецЕсли;   
   
КонецПроцедуры

GRADUS

Процедура НайтиСреденее(Команда)
Если Число1 = Число2 Или Число1 = Число3 Или Число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;
КонецЕсли;

Сообщить(Среднее);
КонецПроцедуры

Silent_Assassin

Спасибо GRADUS :ooifh:
Я к стати только что свой код дописал, но у меня намного больше строк чем у тебя;)
&НаКлиенте
Процедура Среднее(Команда)
ср=0;
Если (Число1 > Число2 ) и (Число1 < Число3)
    Тогда   
   СреднееЧисло=Число1;
     
   Сообщить("а")
   
      ИначеЕсли (Число1 < Число2 ) и (Число1 > Число3)
    Тогда   
   СреднееЧисло=Число1;
     
   Сообщить("а")

   
    ИначеЕсли (Число2 > Число1 ) и (Число2 < Число3)
    Тогда   
    СреднееЧисло=Число2;
     
   Сообщить("б")
   
   
   
   
        ИначеЕсли (Число2 > Число3 ) и (Число2 < Число3)
    Тогда   
    СреднееЧисло=Число2;
     
   Сообщить("б")


ИначеЕсли (Число1 > Число2 ) и (Число3 < Число2)
    Тогда   
    СреднееЧисло=Число2;
     
   Сообщить("б")

   
   
   
    ИначеЕсли (Число1 > Число2 ) и (Число3 > Число2)
    Тогда   
    СреднееЧисло=Число3;
     
   Сообщить("в")     


ИначеЕсли (Число1 < Число2 ) и (Число3 < Число2)
    Тогда   
    СреднееЧисло=Число3;
     
   Сообщить("в")
   
       ИначеЕсли (Число1 > Число2 ) и (Число3 > Число2)
    Тогда   
    СреднееЧисло=Число3;
     
   Сообщить("в")


   
   
ИначеЕсли  Число1 = Число1 и Число2=Число2
   тогда
   Сообщить("нетСтреднегоЧисла")
   
КонецЕсли;   
   
КонецПроцедуры



Добавлено: 18 июн 2013, 20:33


Только почему то не работает вывод сообщения.
Добавлено: 18 июн 2013, 20:39


Ок, понял свою проблему переименовал процедуру и добавил команду сообщить (среднее) все работает.

GRADUS

Могу в одну строчку написать :D

Silent_Assassin

Цитата: GRADUS от 18 июн 2013, 20:42
Могу в одну строчку написать :D
Не Спасибо Я и так там замучился.

Теги:

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

Рейтинг@Mail.ru

Поиск