Lost Password?


Go Back   CodeCall Programming Forum > Software Development > C and C++

C and C++ C and C++ forum for discussing all forms of C except for C#. These languages are powerful low level languages used for creating Operating Systems, Device Drivers, compilers and much more.

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old 07-21-2008, 05:40 AM
HDi HDi is offline
Newbie
 
Join Date: Jul 2008
Posts: 2
Rep Power: 0
HDi is on a distinguished road
Default C++ to Pascal

I'm quite new to C++ and I find difficulity in rewriting code from c++ to pascal.
Who can help to rewrite variables declarations; main() function until, InitializeApplication(&Net); and functions: GenerateNetwork(), RandomWeights(), to pascal;

This Neural net app.

P.s sorry for my english.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

Sponsored Links
  #2 (permalink)  
Old 07-21-2008, 11:41 AM
WingedPanther's Avatar   
WingedPanther WingedPanther is offline
Super Moderator
 
Join Date: Jul 2006
Age: 35
Posts: 3,421
Last Blog:
wxWidgets is NOT code ...
Rep Power: 37
WingedPanther is a splendid one to beholdWingedPanther is a splendid one to beholdWingedPanther is a splendid one to beholdWingedPanther is a splendid one to beholdWingedPanther is a splendid one to beholdWingedPanther is a splendid one to behold
Default Re: C++ to Pascal

You will have an easier time translating C++ to Object Pascal, as the supported concepts will align better. Having said that, you will still run into issues when you have to recreate libraries in ObjectPascal that exist by default in C++. You also need to realize that they do not use some of the same concepts.

I cannot give you more than general advice without seeing code and your attempts to translate it, however.
__________________
CodeCall Blog | CodeCall Wiki | Shareware | Linux Forum
Programming is a branch of mathematics.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 07-22-2008, 06:57 AM
HDi HDi is offline
Newbie
 
Join Date: Jul 2008
Posts: 2
Rep Power: 0
HDi is on a distinguished road
Default Re: C++ to Pascal

Code:
1.
      #include <stdlib.h>
   2.
      #include <stdio.h>
   3.
      #include <math.h>
   4.
       
   5.
      typedef int           BOOL;
   6.
      typedef int           INT;
   7.
      typedef double        REAL;
   8.
       
   9.
       
  10.
       
  11.
       
  12.
      #define LO            0.1
  13.
      #define HI            0.9
  14.
      #define BIAS          1
  15.
       
  16.
       
  17.
      typedef struct {                     /* A LAYER OF A NET:                     */
  18.
              INT           Units;         /* - number of units in this layer       */
  19.
              REAL*         Output;        /* - output of ith unit                  */
  20.
              REAL*         Error;         /* - error term of ith unit              */
  21.
              REAL**        Weight;        /* - connection weights to ith unit      */
  22.
              REAL**        WeightSave;    /* - saved weights for stopped training  */
  23.
              REAL**        dWeight;       /* - last weight deltas for momentum     */
  24.
      } LAYER;
  25.
       
  26.
      typedef struct {                     /* A NET:                                */
  27.
              LAYER**       Layer;         /* - layers of this net                  */
  28.
              LAYER*        InputLayer;    /* - input layer                         */
  29.
              LAYER*        OutputLayer;   /* - output layer                        */
  30.
              REAL          Alpha;         /* - momentum factor                     */
  31.
              REAL          Eta;           /* - learning rate                       */
  32.
              REAL          Gain;          /* - gain of sigmoid function            */
  33.
              REAL          Error;         /* - total net error                     */
  34.
      } NET;
  35.
       
  36.
       
  37.
      /******************************************************************************
  38.
                     A P P L I C A T I O N - S P E C I F I C   C O D E
  39.
      ******************************************************************************/
  40.
       
  41.
      #define NUM_LAYERS    3
  42.
      #define N             30
  43.
      #define M             1
  44.
      INT                   Units[NUM_LAYERS] = {N, 10, M};
  45.
       
  46.
      #define FIRST_YEAR    1700
  47.
      #define NUM_YEARS     280
  48.
       
  49.
      #define TRAIN_LWB     (N)
  50.
      #define TRAIN_UPB     (179)
  51.
      #define TRAIN_YEARS   (TRAIN_UPB - TRAIN_LWB + 1)
  52.
      #define TEST_LWB      (180)
  53.
      #define TEST_UPB      (259)
  54.
      #define TEST_YEARS    (TEST_UPB - TEST_LWB + 1)
  55.
      #define EVAL_LWB      (260)
  56.
      #define EVAL_UPB      (NUM_YEARS - 1)
  57.
      #define EVAL_YEARS    (EVAL_UPB - EVAL_LWB + 1)
  58.
       
  59.
      REAL                  Sunspots_[NUM_YEARS];
  60.
      REAL                  Sunspots [NUM_YEARS] = {
  61.
       
  62.
                              0.0262,  0.0575,  0.0837,  0.1203,  0.1883,  0.3033,
  63.
                              0.1517,  0.1046,  0.0523,  0.0418,  0.0157,  0.0000,
  64.
                              0.0000,  0.0105,  0.0575,  0.1412,  0.2458,  0.3295,
  65.
                              0.3138,  0.2040,  0.1464,  0.1360,  0.1151,  0.0575,
  66.
                              0.1098,  0.2092,  0.4079,  0.6381,  0.5387,  0.3818,
  67.
                              0.2458,  0.1831,  0.0575,  0.0262,  0.0837,  0.1778,
  68.
                              0.3661,  0.4236,  0.5805,  0.5282,  0.3818,  0.2092,
  69.
                              0.1046,  0.0837,  0.0262,  0.0575,  0.1151,  0.2092,
  70.
                              0.3138,  0.4231,  0.4362,  0.2495,  0.2500,  0.1606,
  71.
                              0.0638,  0.0502,  0.0534,  0.1700,  0.2489,  0.2824,
  72.
                              0.3290,  0.4493,  0.3201,  0.2359,  0.1904,  0.1093,
  73.
                              0.0596,  0.1977,  0.3651,  0.5549,  0.5272,  0.4268,
  74.
                              0.3478,  0.1820,  0.1600,  0.0366,  0.1036,  0.4838,
  75.
                              0.8075,  0.6585,  0.4435,  0.3562,  0.2014,  0.1192,
  76.
                              0.0534,  0.1260,  0.4336,  0.6904,  0.6846,  0.6177,
  77.
                              0.4702,  0.3483,  0.3138,  0.2453,  0.2144,  0.1114,
  78.
                              0.0837,  0.0335,  0.0214,  0.0356,  0.0758,  0.1778,
  79.
                              0.2354,  0.2254,  0.2484,  0.2207,  0.1470,  0.0528,
  80.
                              0.0424,  0.0131,  0.0000,  0.0073,  0.0262,  0.0638,
  81.
                              0.0727,  0.1851,  0.2395,  0.2150,  0.1574,  0.1250,
  82.
                              0.0816,  0.0345,  0.0209,  0.0094,  0.0445,  0.0868,
  83.
                              0.1898,  0.2594,  0.3358,  0.3504,  0.3708,  0.2500,
  84.
                              0.1438,  0.0445,  0.0690,  0.2976,  0.6354,  0.7233,
  85.
                              0.5397,  0.4482,  0.3379,  0.1919,  0.1266,  0.0560,
  86.
                              0.0785,  0.2097,  0.3216,  0.5152,  0.6522,  0.5036,
  87.
                              0.3483,  0.3373,  0.2829,  0.2040,  0.1077,  0.0350,
  88.
                              0.0225,  0.1187,  0.2866,  0.4906,  0.5010,  0.4038,
  89.
                              0.3091,  0.2301,  0.2458,  0.1595,  0.0853,  0.0382,
  90.
                              0.1966,  0.3870,  0.7270,  0.5816,  0.5314,  0.3462,
  91.
                              0.2338,  0.0889,  0.0591,  0.0649,  0.0178,  0.0314,
  92.
                              0.1689,  0.2840,  0.3122,  0.3332,  0.3321,  0.2730,
  93.
                              0.1328,  0.0685,  0.0356,  0.0330,  0.0371,  0.1862,
  94.
                              0.3818,  0.4451,  0.4079,  0.3347,  0.2186,  0.1370,
  95.
                              0.1396,  0.0633,  0.0497,  0.0141,  0.0262,  0.1276,
  96.
                              0.2197,  0.3321,  0.2814,  0.3243,  0.2537,  0.2296,
  97.
                              0.0973,  0.0298,  0.0188,  0.0073,  0.0502,  0.2479,
  98.
                              0.2986,  0.5434,  0.4215,  0.3326,  0.1966,  0.1365,
  99.
                              0.0743,  0.0303,  0.0873,  0.2317,  0.3342,  0.3609,
 100.
                              0.4069,  0.3394,  0.1867,  0.1109,  0.0581,  0.0298,
 101.
                              0.0455,  0.1888,  0.4168,  0.5983,  0.5732,  0.4644,
 102.
                              0.3546,  0.2484,  0.1600,  0.0853,  0.0502,  0.1736,
 103.
                              0.4843,  0.7929,  0.7128,  0.7045,  0.4388,  0.3630,
 104.
                              0.1647,  0.0727,  0.0230,  0.1987,  0.7411,  0.9947,
 105.
                              0.9665,  0.8316,  0.5873,  0.2819,  0.1961,  0.1459,
 106.
                              0.0534,  0.0790,  0.2458,  0.4906,  0.5539,  0.5518,
 107.
                              0.5465,  0.3483,  0.3603,  0.1987,  0.1804,  0.0811,
 108.
                              0.0659,  0.1428,  0.4838,  0.8127
 109.
       
 110.
                            };
 111.
       
 112.
      REAL                  Mean;
 113.
      REAL                  TrainError;
 114.
      REAL                  TrainErrorPredictingMean;
 115.
      REAL                  TestError;
 116.
      REAL                  TestErrorPredictingMean;
 117.
       
 118.
      FILE*                 f;
 119.
       
 120.
       
 121.
      void GenerateNetwork(NET* Net)
 122.
      {
 123.
        INT l,i;
 124.
       
 125.
        Net->Layer = (LAYER**) calloc(NUM_LAYERS, sizeof(LAYER*));
 126.
       
 127.
        for (l=0; l<NUM_LAYERS; l++) {
 128.
          Net->Layer[l] = (LAYER*) malloc(sizeof(LAYER));
 129.
       
 130.
          Net->Layer[l]->Units      = Units[l];
 131.
          Net->Layer[l]->Output     = (REAL*)  calloc(Units[l]+1, sizeof(REAL));
 132.
          Net->Layer[l]->Error      = (REAL*)  calloc(Units[l]+1, sizeof(REAL));
 133.
          Net->Layer[l]->Weight     = (REAL**) calloc(Units[l]+1, sizeof(REAL*));
 134.
          Net->Layer[l]->WeightSave = (REAL**) calloc(Units[l]+1, sizeof(REAL*));
 135.
          Net->Layer[l]->dWeight    = (REAL**) calloc(Units[l]+1, sizeof(REAL*));
 136.
          Net->Layer[l]->Output[0]  = BIAS;
 137.
       
 138.
          if (l != 0) {
 139.
            for (i=1; i<=Units[l]; i++) {
 140.
              Net->Layer[l]->Weight[i]     = (REAL*) calloc(Units[l-1]+1,
 141.
      sizeof(REAL));
 142.
              Net->Layer[l]->WeightSave[i] = (REAL*) calloc(Units[l-1]+1,
 143.
      sizeof(REAL));
 144.
              Net->Layer[l]->dWeight[i]    = (REAL*) calloc(Units[l-1]+1,
 145.
      sizeof(REAL));
 146.
            }
 147.
          }
 148.
        }
 149.
        Net->InputLayer  = Net->Layer[0];
 150.
        Net->OutputLayer = Net->Layer[NUM_LAYERS - 1];
 151.
        Net->Alpha       = 0.9;
 152.
        Net->Eta         = 0.25;
 153.
        Net->Gain        = 1;
 154.
      }
 155.
       
 156.
      void RandomWeights(NET* Net)
 157.
      {
 158.
        INT l,i,j;
 159.
       
 160.
        for (l=1; l<NUM_LAYERS; l++) {
 161.
          for (i=1; i<=Net->Layer[l]->Units; i++) {
 162.
            for (j=0; j<=Net->Layer[l-1]->Units; j++) {
 163.
              Net->Layer[l]->Weight[i][j] = RandomEqualREAL(-0.5, 0.5);
 164.
            }
 165.
          }
 166.
        }
 167.
      }
 168.
       
 169.
       
 170.
      int main()
 171.
      {
 172.
        NET  Net;
 173.
        BOOL Stop;
 174.
        REAL MinTestError;
 175.
       
 176.
        GenerateNetwork(&Net);
 177.
        RandomWeights(&Net);
 178.
       
 179.
      }
 180.

Last edited by WingedPanther; 07-23-2008 at 11:37 AM. Reason: add code tags
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Code: Pascal Snake Game TcM Tutorials 60 12-03-2008 11:49 PM
Pascal! PascalPro General Programming 2 10-25-2008 04:23 PM
Dev pascal help ragingfear General Programming 3 11-21-2007 04:23 PM
Turbo pascal compiler ragingfear General Programming 2 11-21-2007 04:17 PM
Free pascal cuzz200469 General Programming 3 03-23-2007 12:38 PM


All times are GMT -5. The time now is 11:32 AM.

Contest Stats

WingedPanther ........ 2753.6
Xav ........ 2704
Brandon W ........ 1702.32
John ........ 1207.73
marwex89 ........ 1175.24
morefood2001 ........ 966.05
dcs ........ 655.75
Steve.L ........ 475.59
orjan ........ 418.58
Aereshaa ........ 383.54

Contest Rules

CodeCall Goal

Goal: 100,000 Posts
Complete: 101%


Complete - Celebrate!

Ads