Имя: Пароль:
1C
1С v8
Как присвоить переменной тип данных?
,
0 Джим
 
24.09.13
23:01
Привет все. Делаю игру "угадай число". имеется вот такой код:

    Процедура УгадайЧисло()
            
        Перем ВведенноеЧисло;
                
        СгенерированноеЧисло = Новый ГенераторСлучайныхЧисел;
        СгенерированноеЧисло.СлучайноеЧисло(1,1000);
        
        СгенерированноеЧисло = Строка(СгенерированноеЧисло);
        ВведенноеЧисло = Строка(ВведенноеЧисло);
        Если Вопрос("Хотите сыграть в игру?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да  Тогда
                ВвестиЗначение(ВведенноеЧисло, "Введите число в диапазоне от 1 до 1000", Тип("Число"));
        
                    Пока Не ВведенноеЧисло = СгенерированноеЧисло Цикл
            
                    Если ВведенноеЧисло>СгенерированноеЧисло Тогда
                            Предупреждение("Ваше число "+ВведенноеЧисло+" больше задуманного компьютером! Попробуйте еще раз.");
                    Иначе
                            Предупреждение("Ваше число "+ВведенноеЧисло+" меньше задуманного компьютером! Попробуйте еще раз.");
                      КонецЕсли;
                    КонецЦикла;
            
          Если ВведенноеЧисло = СгенерированноеЧисло Тогда
          
              Предупреждение("Молодец, угадал!");
        КонецЕсли;
        Иначе Предупреждение("Ну и зря!");
        КонецЕсли;
    
    
    
        КонецПроцедуры


Однако, когда в модуле управляемого приложение ввожу число, выскакивает такая фигня:
{МодульУправляемогоПриложения(30)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)
Если ВведенноеЧисло>СгенерированноеЧисло Тогда

В чем косяк?
1 Джим
 
24.09.13
23:01
Ой ой ой, чего-то код разбило на два куска
2 Попытка1С
 
24.09.13
23:03
СгенерированноеЧисло = Строка(СгенерированноеЧисло)

а нафига тут строка?
3 Джим
 
24.09.13
23:03
Пардон, это эксперименты, забыл удалить) Вот такой вариант конечный:



Процедура УгадайЧисло()
            
        Перем ВведенноеЧисло;
                
        СгенерированноеЧисло = Новый ГенераторСлучайныхЧисел;
        СгенерированноеЧисло.СлучайноеЧисло(1,1000);
                
        Если Вопрос("Хотите сыграть в игру?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да  Тогда
                ВвестиЗначение(ВведенноеЧисло, "Введите число в диапазоне от 1 до 1000", Тип("Число"));
        
                    Пока Не ВведенноеЧисло = СгенерированноеЧисло Цикл
            
                    Если ВведенноеЧисло>СгенерированноеЧисло Тогда
                            Предупреждение("Ваше число "+ВведенноеЧисло+" больше задуманного компьютером! Попробуйте еще раз.");
                    Иначе
                            Предупреждение("Ваше число "+ВведенноеЧисло+" меньше задуманного компьютером! Попробуйте еще раз.");
                      КонецЕсли;
                    КонецЦикла;
            
          Если ВведенноеЧисло = СгенерированноеЧисло Тогда
          
              Предупреждение("Молодец, угадал!");
        КонецЕсли;
        Иначе Предупреждение("Ну и зря!");
        КонецЕсли;
    
    
    
        КонецПроцедуры
4 Джим
 
24.09.13
23:04
(2) Я новенький тут, пытаюсь разбираться. Проблема в том, что не сравниваются два числа, т.е. их надо как-то привести к определенному типу данных, в данном случае "число". Как я понял.
5 Fragster
 
модератор
24.09.13
23:07
ГСЧ = Новый ГенераторСлучайныхЧисел;
        СгенерированноеЧисло = ГСЧ.СлучайноеЧисло(1,1000);
6 Джим
 
24.09.13
23:16
(5) Спасибо большое!