Autor Wątek:  Tłumaczenie kodów Pascalowych  (Przeczytany 4364 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Technik

  • Wiadomości: 91
    • Zobacz profil
  • Otrzymane polubienia: 1
Tłumaczenie kodów Pascalowych
« dnia: 25 Kwietnia 2015, 13:12:02 »
Właśnie zabrałem się za tłumaczenie pascali stąd: https://github.com/eu07/maszyna/tree/master/McZapkie na Cpp, pierwsze wyniki powinny pojawić się w przyszłym tygodniu.
« Ostatnia zmiana: 25 Kwietnia 2015, 13:51:17 wysłana przez ShaXbee »

Offline ShaXbee

  • Administrator
  • Wiadomości: 1984
    • Zobacz profil
  • Otrzymane polubienia: 2
Odp: Tłumaczenie kodów Pascalowych
« Odpowiedź #1 dnia: 25 Kwietnia 2015, 13:50:28 »
Zly branch, aktualny kod jest na master.

Offline Technik

  • Wiadomości: 91
    • Zobacz profil
  • Otrzymane polubienia: 1
Odp: Tłumaczenie kodów Pascalowych
« Odpowiedź #2 dnia: 25 Kwietnia 2015, 14:36:19 »
No przecież robię z mastera.

Offline ShaXbee

  • Administrator
  • Wiadomości: 1984
    • Zobacz profil
  • Otrzymane polubienia: 2
Odp: Tłumaczenie kodów Pascalowych
« Odpowiedź #3 dnia: 25 Kwietnia 2015, 14:52:04 »
Sorry, zle spojrzalem na url ;-)

Offline Technik

  • Wiadomości: 91
    • Zobacz profil
  • Otrzymane polubienia: 1
Odp: Tłumaczenie kodów Pascalowych
« Odpowiedź #4 dnia: 25 Kwietnia 2015, 14:59:10 »
Na razie jest tyle. Typ string pascala tłumaczę na C++owy  string z biblioteki iostream, a real na float.

#include <iostream>
using namespace std;

//interface uses mctools,sysutils,hamulce,Oerlikon_ESt;

//CONST
   const bool Go=true;
   const bool Hold=false;                 //dla CheckLocomotiveParameters}
   const int ResArraySize=64;            //dla silnikow elektrycznych}
   const int MotorParametersArraySize=10;
   const int maxcc=4;                    //max. ilosc odbierakow pradu}
   const int LocalBrakePosNo=10;         //ilosc nastaw hamulca pomocniczego}
   const int MainBrakeMaxPos=10;          //max. ilosc nastaw hamulca zasadniczego}
   const int ManualBrakePosNo=20;        //ilosc nastaw hamulca recznego}

   //uszkodzenia toru}
   const int dtrack_railwear=2;
   const int dtrack_freerail=4;
   const int dtrack_thinrail=8;
   const int dtrack_railbend=16;
   const int dtrack_plants=32;
   const int dtrack_nomove=64;
   const int dtrack_norail=128;

   //uszkodzenia taboru}
   const int dtrain_thinwheel=1;     //dla lokomotyw}
   const int dtrain_loadshift=1;     //dla wagonow}
   const int dtrain_wheelwear=2;
   const int dtrain_bearing=4;
   const int dtrain_coupling=8;
   const int dtrain_ventilator=16;   //dla lokomotywy el.}
   const int dtrain_loaddamage=16;   //dla wagonow}
   const int dtrain_engine=32;       //dla lokomotyw}
   const int dtrain_loaddestroyed=32;//dla wagonow}
   const int dtrain_axle=64;
   const int dtrain_out=128;         //wykolejenie}

   //wagi prawdopodobienstwa dla funkcji FuzzyLogic}
   const float p_elengproblem = 0.01;
   const float p_elengdamage = 0.1;
   const float p_coupldmg = 0.02;
   const float p_derail=0.001;
   const float p_accn=0.1;
   const float p_slippdmg=0.001;

   //typ sprzegu}
   const int ctrain_virtual=0;        //gdy pojazdy na tym samym torze się widzą wzajemnie
   const int ctrain_coupler=1;        //sprzeg fizyczny
   const int ctrain_pneumatic=2;      //przewody hamulcowe
   const int ctrain_controll=4;       //przewody sterujące (ukrotnienie)
   const int ctrain_power=8;          //przewody zasilające (WN)
   const int ctrain_passenger=16;     //mostek przejściowy
   const int ctrain_scndpneumatic=32; //przewody 8 atm (żółte; zasilanie powietrzem)
   const int ctrain_heating=64;       //przewody ogrzewania WN
   const int ctrain_depot=128;        //nie rozłączalny podczas zwykłych manewrów (międzyczłonowy), we wpisie wartość ujemna

   //typ hamulca elektrodynamicznego}
   const int dbrake_none=0;
   const int dbrake_passive=1;
   const int dbrake_switch=2;
   const int dbrake_reversal=4;
   const int dbrake_automatic=8;

   //status czuwaka/SHP}
   //hunter-091012: rozdzielenie alarmow, dodanie testu czuwaka
   const int s_waiting=1; //działa
   const int s_aware=2;   //czuwak miga
   const int s_active=4;  //SHP świeci
   const int s_CAalarm=8;    //buczy
   const int s_SHPalarm=16;  //buczy
   const int s_CAebrake=32;  //hamuje
   const int s_SHPebrake=64; //hamuje
   const int s_CAtest=128;
   
   //dzwieki}
   const int sound_none=0;
   const int sound_loud=1;
   const int sound_couplerstretch=2;
   const int sound_bufferclamp=4;
   const int sound_bufferbump=8;
   const int sound_relay=16;
   const int sound_manyrelay=32;
   const int sound_brakeacc=64;

   PhysicActivationFlag: boolean=false;

   //szczególne typy pojazdów (inna obsługa) dla zmiennej TrainType
   //zamienione na flagi bitowe, aby szybko wybierać grupę (np. EZT+SZT)
   const int dt_Default=0;
   const int dt_EZT=1;
   const int dt_ET41=2;
   const int dt_ET42=4;
   const int dt_PseudoDiesel=8;
   const int dt_ET22=$10; //używane od Megapacka
   const int dt_SN61=$20; //nie używane w warunkach, ale ustawiane z CHK
   const int dt_EP05=$40;
   const int dt_ET40=$80;
   const int dt_181=$100;

//stałe dla asynchronów
  const int eimc_s_dfic=0;
  const int eimc_s_dfmax=1;
  const int eimc_s_p=2;
  const int eimc_s_cfu=3;
  const int eimc_s_cim=4;
  const int eimc_s_icif=5;
  const int eimc_f_Uzmax=7;
  const int eimc_f_Uzh=8;
  const int eimc_f_DU=9;
  const int eimc_f_I0=10;
  const int eimc_f_cfu=11;
  const int eimc_p_F0=13;
  const int eimc_p_a1=14;
  const int eimc_p_Pmax=15;
  const int eimc_p_Fh=16;
  const int eimc_p_Ph=17;
  const int eimc_p_Vh0=18;
  const int eimc_p_Vh1=19;
  const int eimc_p_Imax=20;

//zmienne dla asynchronów
  int eimv_FMAXMAX=0;
  int eimv_Fmax=1;
  int eimv_ks=2;
  int eimv_df=3;
  int eimv_fp=4;
  int eimv_U=5;
  int eimv_pole=6;
  int eimv_Ic=7;
  int eimv_If=8;
  int eimv_M=9;
  int eimv_Fr=10;
  int eimv_Ipoj=11;
  int eimv_Pm=12;
  int eimv_Pe=13;
  int eimv_eta=14;
  int eimv_fkr=15;
  int eimv_Uzsmax=16;
  int eimv_Pmax=17;
  int eimv_Fzad=18;
  int eimv_Imax=19;


//TYPE
    //ogolne

    /*TLocation = record
                  X,Y,Z: real;    //lokacja}
                 end;*/


class TLocation
{
public:
float X;
float Y;
float Z;
};

    /*TRotation = record
                  Rx,Ry,Rz: real; //rotacja}
                end;*/

class TRotation
{
public:
float Rx;
float Ry;
float Rz;
};

    /*TDimension= record
                  W,L,H: real;    //wymiary}
                end;*/

class TDimension
{
public:
float W;
float L;
float X;
};

    /*TCommand = record
                 Command: string;         //komenda}
                 Value1,Value2: real;     //argumenty komendy}
                 Location: TLocation;
               end;*/
   
class TCommand
{
public:
string Command;
float Value1;
float Value2;
TLocation Location;
};
Reg. obowiązki 11b.
Proszę poprawić.
Benek
« Ostatnia zmiana: 25 Kwietnia 2015, 15:14:48 wysłana przez Technik »