Турбо С: руководство пользователя. Часть 2

Турбо С: руководство пользователя. Часть 2 - Стр. 25

Печать PDF
Индекс материала
Турбо С: руководство пользователя. Часть 2
Стр. 2
Стр. 3
Стр. 4
Стр. 5
Стр. 6
Стр. 7
Стр. 8
Стр. 9
Стр. 10
Стр. 11
Стр. 12
Стр. 13
Стр. 14
Стр. 15
Стр. 16
Стр. 17
Стр. 18
Стр. 19
Стр. 20
Стр. 21
Стр. 22
Стр. 23
Стр. 24
Стр. 25
Стр. 26
Стр. 27
Стр. 28
Стр. 29
Стр. 30
Стр. 31
Стр. 32
Стр. 33
Стр. 34
Стр. 35
Стр. 36
Стр. 37
Стр. 38
Стр. 39
Стр. 40
Стр. 41
Стр. 42
Стр. 43
Стр. 44
Стр. 45
Стр. 46
Стр. 47
Стр. 48
Стр. 49
Стр. 50
Стр. 51
Стр. 52
Стр. 53
Стр. 54
Стр. 55
Стр. 56
Все страницы
     }                                                                          
                                                                                
          И с х о д н ы й  ф а й л Турбо Си: FACTRL.C                           
                                                                                
     void factorial_0(int top, double *result) /* Вычисляет                     
                                                      факториал */              
     {                                                                          
         double x;                                                              
         int i;                                                                 
         if (top
        makewindow(1,49,31,                                                     
        "Окно взаимодействия Турбо Пролога с программами Турбо Си",             
                                                           0,0,15,80),          
        makewindow(2,47,3,                                                      
        "Окно Турбо Пролога для Турбо Пролог программы",                        
                                                          15,0,10,80),          
        /* Приглашение пользователя к первому вводу */                          
        write("Введите целое число; Турбо Си вычислит факториал."),             
        readint(Int), nl,                                                       
        shiftwindow(1), /* Переадресация окна вывода в окно Турбо               
                                                                 Си */          
        /* Вызов модуля Турбо Си factrl и вычисление факториала */              
        factorial(Int, Result),                                                 
        shiftwindow(2), /* Переадресация окна вывода в окно Турбо               
                                                            Пролога */          
        /* Приглашение пользователя ко второму вводу */                         
        write("Введите действительное число для сложения с                      
                                                        факториалом"),          
        readreal(Real),nl,                                                      
        shiftwindow(1), /* Переадресация окна вывода в окно Турбо               
                                                                Си */           
                                                                                
                                                                                
        /* Вызов модуля Турбо Си сsum1 и вычисление суммы */                    
        sum(Result,Real,Sum),                                                   
        shiftwindow(2), /* Переадресация вывода в окно Турбо                    
                                                      Пролога */                
        /* Запись результата первого вычисления в окно */                       
        write("Значение факториала числа ",Int," равно ",Result),nl,            
                                                                                
        /* Запись результата второго вычисления в окно */                       
        write("Результат ", Result, " + ",Real," = ",Sum),nl.                   
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                

                         - 207,208 -
                                                                                
          Компиляция FACTSUM.PRO в FACTSUM.OBJ                                  
     -----------------------------------------------------------------          
                                                                                
          Также как  и в первом примере вы должны откомпилировать файл          
     с исходным текстом на Турбо Прологе в обьектный файл (.OBJ) перед          
     компоновкой его с другими модулями.  Перед тем как выполнить ком-          
     пиляцию, выберите из главного меню Турбо Пролога Оptions/Obj.              
                                                                                
                                                                                
          Компоновка СSUM1.OBJ, FACTRL.OBJ и FACTSUM.OBJ                        
     -----------------------------------------------------------------          
                                                                                
          В команде на компоновку, используемой в этом примере,                 
                                                                                
          - объектными модулями Турбо Пролога являются модули INIT.OBJ          
     и FACTSUM.OBJ;                                                             
          - объектными модулями Турбо Си являются модули  CSUM1.OBJ  и          
     FACTRL.OBJ;                                                                
          - именами  выходных  файлов  являются  FACTSUM.SYM  (таблица          
     идентификаторов) и SUM.EXE (выполняемый файл);                             
          - необходимыми библиотеками  являются  PROLOG.LIB,  EMU.LIB,          
     MATHL.LIB и CL.LIB.                                                        
                                                                                
                                                                                
                                                                                
          Приведенная ниже команда компонует модули:                            
                                                                                
     tlink  init factsum  factrl csum1 factsum.sym,sum,,prolog                  
     +emu+mathl+cl                                                              
                                                                                
          Замечание: команда должна быть набрана в одной строке.                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                

                         - 209,210 -
                                                                                
               Пример 3: Шаблоны аргументов и распределение памяти.             
     -----------------------------------------------------------------          
                                                                                
          Следующая программа  представляет  код  по созданию на Турбо          
     Прологе функтора (functor) и списка (list) в Турбо  Си,  а  также          
     возвращению этих новых структур в Турбо Пролог. Этот пример также          
     демонстрирует возможное распределение памяти в  глобальном  стеке          
     Турбо Пролога. Списки представляют собой рекурсивные структуры из