Salve,
Io sono totalmente nuova programmazione in C su Sun Solaris ambiente. Sono un membro attivo sul forum e UNIX shell di un buon programmatore.
Sto cercando di realizzare alcuni calcoli di programmazione in C. Ho la pseudo codice scritto, ma non si conosce la sintassi. Io sono la lettura di un paio di libri sulla programmazione C, ma ancora bisogno di aiuto.
Codice:
#include <stdlib.h>
#include <stdio.h>
int transRiskLock,
transRiskAdj,
empirica;
double transRiskProb,
transRiskNorm,
fico;
//Restrict range of transRiskScore from daily Trans-Union file PRM.JUNIPER.CSREJ.D*
if (transRiskScore > 900)
transRiskLock = 900;
else
if(transRiskScore < 150)
transRiskLock = 150;
else
transRiskLock = transRiskScore;
//Force score range between 150 and 900
if (transRiskScore is missing)
transRiskLock is missing; //Handle missing values - missing transRiskScore should result in missing empirica
for each record in recordset //Loop through each record
//Transrisk normalization Phase 1: Map transRiskScore to estimated probability
if (transRiskLock >= 150 and < 257.14286)
transRiskAdj = transRiskLock – 150;
transRiskProb = 0.84415864 - (1.0488722e-005 * (transRiskAdj)2) + (3.2397817e-008 * (transRiskAdj)3);
else
if (transRiskLock >= 257.14286 and < 364.28571)
transRiskAdj = transRiskLock – 257.14286;
transRiskProb = 0.7636003 – (0.001131842 * transRiskAdj) – (2.0788434e-005 * (transRiskAdj)2) + (9.3295162e-008 * (transRiskAdj)3);
else
if (transRiskLock >= 364.28571 and < 471.42857)
transRiskAdj = transRiskLock – 364.28571;
transRiskProb = 0.51843775 – (0.0023735353 * transRiskAdj) – (6.0623834e-006 * (transRiskAdj)2) + (4.8571025e-008 * (transRiskAdj)3);
else
;
//Transrisk normalization Phase 2: Map estimated probability to EMPIRICASCORE
if (transRiskProb >= 0 and < 0.00015241579)
transRiskNorm = 820.36625 – (69591.494 * transRiskProb) – (1.312436e+008 * (transRiskProb)2) + (9.7484131e+011 * (transRiskProb)3);
else
if (transRiskProb >= 0.00015241579 and < 0.0024386526)
transRiskNorm = 810.16217 – (41660.32 * (transRiskProb - 0.00015241579)) + (7018993.8 * (transRiskProb - 0.00015241579)2) +
(1.8073426e+008 * (transRiskProb - 0.00015241579)3);
else
if (transRiskProb >= 0.0024386526) and < 0.012345679)
transRiskNorm = 753.764 – (6732.1274 * (transRiskProb - 0.0024386526)) + (638606.42 * (transRiskProb - 0.0024386526)2) -
(28380051 * (transRiskProb - 0.0024386526)3);
else
;
fico = round(transRiskNorm); //Round to zero decimals
empirica = (int) fico; //cast to integer
score_aligned = compress('+0000' || input(left(EMPIRICA),$8.)) // convert to string by adding "+" and four leading zeros, remove spaces from result