![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Forum Rules | FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| High Level Programming Post questions about C, C++, Java, SQL, and other programming languages here. |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Unix Arithmatic operation issue , datatype issue | thambi | Shell Programming and Scripting | 23 | 02-19-2008 03:19 AM |
| syntax issue in ksh file | manav666 | Shell Programming and Scripting | 2 | 10-30-2007 03:52 AM |
| How To Calculate | krishna_sicsr | Shell Programming and Scripting | 1 | 03-28-2007 07:24 AM |
| calculate output | amon | Shell Programming and Scripting | 3 | 04-12-2006 06:02 AM |
| How to calculate with awk | whatisthis | Shell Programming and Scripting | 4 | 11-09-2005 08:39 AM |
|
|
Submit Tools | LinkBack | Thread Tools | Display Modes |
|
|||
|
Calculate scores and probability -- Syntax issue
Hi,
I am totally new to C programming on Sun Solaris environment. I am an active member on the UNIX forum and a good shell programmer. I am trying to achieve some calculations in C programming. I have the pseudo code written down but don't know the syntax. I am reading a couple of books on C programming but still need some help. Code:
#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
Please advise.. Thank You, Madhu |
| Forum Sponsor | ||
|
|
|
|||
|
This is the 1st thing that stands out:
Quote:
Code:
int i;
for( i = 0; recordset[i] ; i++ ) {
/* stuff goes here */
}
Quote:
Code:
if (transRiskLock >= 150 && transRiskLock < 257.14286) Quote:
Code:
if (transRiskScore == 0)
transRiskLock = 0;
Last edited by nathan; 08-01-2006 at 07:17 PM. Reason: Add some more content |
| Thread Tools | |
| Display Modes | |
|
|