visual studio c++ 2013 빌드 오류 해결방법 알려주실분!

visual studio c++ 2013 빌드 오류 해결방법 알려주실분!

작성일 2016.07.22댓글 1건
    게시물 수정 , 삭제는 로그인 필요

#pragma warning (disable:4996)
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>


double Loa_ = 228.5;
double Lwl_ = 222.6;
double Lbp_ = 219;
double B_ = 32.24;
double D_ = 20.2;
double Tmld_ = 12.2;
double Tscant_ = 14.0;
double Deadweight_ = 72500;
double Speed_ = 15.0;
double BHP_;
double NMCR_ = 14100. / 0.9;
double DMCR_;
double NCR_;
double SFOC_;
double TONpDAY_ = 38.1;
double CruisingRange_ = 20000;
double Cargo_ = 81618.0;
double Tfuel_ = 2600;
double fuel_ = 2500;
double Ballast_ = 28500;
double Ws_ = 10803.5;
double Wo_ = 1173.7;
double Wm_ = 1072.5;
double Fb_ = 5.8;
double Lh_ = 161.6;
double Cch_ = 0.775529;
double Cmd_ = 1;
double Cch_md = 0.775529;
double Cad_ = 540.815;
double Et_ = 0.98;
//double Tmld = 13.6;
double Tmld = 13.6;
double Tscant = 14.6;
double Cargo = 123834.2069;
double B = 0;
double V = 15.3;
double DeadWeight = 99900;//98100;//91793;//
double Cb = 0.84;
double NMCR1 = 23000 * 0.986842105 / 0.9 / 0.9;
double alpha = 0.003;
FILE * fp;


/*
L(m)    238.522034
B(m)    41.951851
D(m)    20.917022
Cb      0.852842
W(ton)  128093.154297
LWT(ton)        18221.247451

*/
/**********************************
g1 -  penalty Function
param - double *x - 함수값.
return - double
**********************************/

double g1(double *x){
double result;
B = x[2];
Cb = x[3];
double NMCR;
if (NMCR1 != 0){
NMCR = NMCR1;
}
else{
NMCR = pow(x[0] * B*Tmld*Cb, 2. / 3.)*pow(V, 3) / Cad_ / Et_ *(1.2) / 0.9 / 0.9;
}

result = (
x[0] * B*Tmld*Cb*1.025*(1. + alpha)
-
(
(Ws_ / (pow(Lbp_, 1.6)*(B_ + D_)))*pow(x[0], 1.6)*(B + x[1])
+ (Wo_ / Lbp_ / B_)*x[0] * B
+ (Wm_ / NMCR_)*NMCR
+ DeadWeight
)
) / (x[0] * B*Tmld*Cb*1.025*(1. + alpha))
;
if (result > 0.000){
printf("g1-%.3f\n", result);
return result;
}
else return 0;

}

/**********************************
g1 -  penalty Function
param - double *x - 함수값.
return - double
**********************************/

double g2(double *x){
double result;
B = x[2];
Cb = x[3];
double NMCR;
if (NMCR1 != 0){
NMCR = NMCR1;
}
else{
NMCR = pow(x[0] * B*Tmld*Cb, 2. / 3.)*pow(V, 3) / Cad_ / Et_ *(1.2) / 0.9 / 0.9;
}
result = (
x[0] * B*Tmld*Cb*1.025*(1. + alpha)
-
(
(Ws_ / (pow(Lbp_, 1.6)*(B_ + D_)))*pow(x[0], 1.6)*(B + x[1])
+ (Wo_ / Lbp_ / B_)*x[0] * B
+ (Wm_ / NMCR_)*NMCR
+ DeadWeight
)
) / (x[0] * B*Tmld*Cb*1.025*(1. + alpha))
;
if (-result > 0.000){
printf("g2-%.3f\n", result);
return -result;
}
else return 0;

}
/**********************************
g1 -  penalty Function
param - double *x - 함수값.
return - double
**********************************/

double g3(double *x){
double result;
B = x[2];
Cb = x[3];
result = (x[0] / Lbp_*Fb_*1.0 + Tscant + 0.1 - x[1]) / x[1];
if (result > 0){
printf("g3-%.3f\n", result);
return result;
}
else return 0;

}
/**********************************
g1 -  penalty Function
param - double *x - 함수값.
return - double -- 화물창 용적식..
**********************************/

double g4(double *x){
double result;
Cb = x[3];
B = x[2];
result = -(x[0] / Lbp_*Lh_*B*x[1] * Cch_*Cmd_) / Cargo + 1;
printf("화물창 용적- %f\n", x[0] / Lbp_*Lh_*B*x[1] * Cch_*Cmd_);
if (result > 0){
printf("g4-%f-----화물창 용적- %f\n", result, x[0] / Lbp_*Lh_*B*x[1] * Cch_*Cmd_);
return result;
}
else return 0;

}

//Cb 제약식 
double g5(double *x){
double result;
Cb = x[3];
B = x[2];
result = Cb / (x[0] / B) / 0.15 - 1;
if (result > 0){
printf("g5-0.3f\n", result);
return result;
}
else return 0;

}
//Cb제약식 2
double g6(double *x){
double result;
Cb = x[3];
B = x[2];
result = (Cb - 0.125*atan((23 - 100 * V*0.5144 / sqrt(9.8*x[0])) / 4)) / 0.70 - 1;
if (result > 0){
printf("g6-%.3f\n", result);
return result;
}
else return 0;

}
double g7(double *x){
double result;
Cb = x[3];
B = x[2];
result = x[0] / 239.606 - 1;
if (result > 0){
printf("g7-%.3f\n", result);
return result;
}
else return 0;

}
double g8(double *x){
double result;
Cb = x[3];
B = x[2];
result = B / Tmld / 3.5 - 1;
if (result > 0){
printf("g8-%.3f\n", result);
return result;
}
result = B / Tmld / 3.3 - 1;
if (-result > 0){
printf("g8-%.3f ", -result);
return -result;
}
else return 0;

}
double g9(double *x){
double result;
Cb = x[3];
B = x[2];
result = x[0] / x[1] / 12.4 - 1;
if (result > 0){
printf("g9-%.3f\n", result);
return result;
}
result = x[0] / x[1] / 9.8 - 1;
if (-result > 0){
printf("g9-%.3f ", -result);
return -result;
}
else return 0;

}

/**********************
x[0] - L
x[1] - D
x[2] - B
x[3] - Cb
*********************/
/**********************************
function - object Function
param - double *x - 함수값.
double *_result - return 값의 포인터  -resurved
double r
return - double
**********************************/

double  function(double *x, double *_result, double r){
//x[2]=0.82;
B = x[2];
Cb = x[3];
double result;
double Ws = (Ws_ / (pow(Lbp_, 1.6)*(B_ + D_)))*pow(x[0], 1.6)*(B + x[1]);
double Wo = (Wo_ / Lbp_ / B_)*x[0] * B;
double Wsi = Ws + (0.9)*pow(Ws, 0.75);
double NMCR = pow(x[0] * B*Tmld*Cb, 2. / 3.)*pow(V, 3) / Cad_ / Et_ *(1.2) / 0.9 / 0.9;

if (NMCR1 != 0){
NMCR = NMCR1;
}

// printf("**%f**%f,%f",NMCR,x[0],x[1]);
result = (200 * pow(Wsi, 2. / 3.)*pow(x[0], 1. / 3.) / Cb + 1100 * pow(Wo, 2. / 3.)
+ 120 * pow(NMCR, 0.82)) * 20
+ 450 * Wsi + 4000 * pow(Wo, 0.95) + 2500 * pow(NMCR, 0.82);
result = result *(1 + 1. / 9.);
result = result + r*(g1(x) + g2(x) + g3(x) + g4(x) + g6(x) + g7(x) + g9(x));//+g8(x)
return result;
}

/**********************************
Local_Pattern_Search -  penalty Function
param - double (*fn)(double *x,double *result,double r)
double r
double *del, - 이동폭.
double* x,   -초기값
double fmin_pre, - 기존 함수값.
int variables_no -변수 갯수.
return - double  새로운 함수값..
**********************************/

double Local_Pattern_Search(double(*fn)(double *x, double *result, double r), double r, double *del, double* x, double fmin_pre, int variables_no)
{
double * temp_x = new double[variables_no];
double fmin, temp_function_value;
int i;

fmin = fmin_pre;

for (i = 0; i < variables_no; i++) temp_x[i] = x[i];

for (i = 0; i < variables_no; i++){
temp_x[i] = x[i] + del[i];
temp_function_value = fn(temp_x, NULL, r);
if (temp_function_value < fmin){
fmin = temp_function_value;
}
else {
del[i] = 0.0 - del[i];
temp_x[i] = x[i] + del[i];
temp_function_value = fn(temp_x, NULL, r);
if (temp_function_value < fmin){
fmin = temp_function_value;
}
else{
temp_x[i] = x[i];
}
}

}
for (i = 0; i< variables_no; i++){
x[i] = temp_x[i];
}
delete[] temp_x;
return fmin;
}
/**********************************
HJ - Hook And Jeeves.
param - double (*fn)(double *x,double *result,double r)
double r
double *del, - 이동폭.
double* x,   -초기값
int variables_no -변수 갯수.
return - double  새로운 함수값..
**********************************/

double HJ(double(*fn)(double *_x, double *_result, double r), double* _x, double *del, double r, int varN){
double* nowX = new double[varN];
double* beforeX = new double[varN];
double* globalX = new double[varN];

double tempResult, tempResult2;
int count = 0;
double  result;
int i;
for (i = 0; i < varN; i++) beforeX[i] = nowX[i] = _x[i];
tempResult = function(_x, NULL, r);
printf("start HJ\n  0 -- 1 Process  \n A -- PrintResult\n ");
fprintf(fp, "L,T,B,Cb,Value-%d\n", 1);


do{
printf("\n\nnow.. L-%f,D-%f,B-%f,Cb=-%f,Value-%f\n", nowX[0], nowX[1], nowX[2], nowX[3], tempResult);
fprintf(fp, "%f,%f,%f,%f,%f\n", nowX[0], nowX[1], nowX[2], nowX[3], tempResult);

scanf("%f", &result);
tempResult2 = Local_Pattern_Search(fn, r, del, nowX, tempResult, varN);
if (tempResult2 < tempResult){
tempResult = tempResult2;
for (i = 0; i < varN; i++) globalX[i] = 2 * nowX[i] - beforeX[i];

tempResult2 = function(nowX, NULL, r);
if (tempResult >tempResult2){
for (i = 0; i < varN; i++) beforeX[i] = nowX[i];
for (i = 0; i < varN; i++) nowX[i] = globalX[i];

tempResult = tempResult2;
}
else{
for (i = 0; i < varN; i++) beforeX[i] = nowX[i];
}
if (!(tempResult2>0)) {
for (i = 0; i < varN; i++) _x[i] = nowX[i];
return tempResult;
}
}
else{
for (i = 0; i< varN; i++) del[i] = del[i] / 2;
for (i = 0; i < varN; i++) beforeX[i] = nowX[i];
if (++count == 50) {
for (i = 0; i < varN; i++) _x[i] = nowX[i];
return tempResult;
}
}

} while (1);
}
/**********************************
main -  Main Function
param - none
return - none
**********************************/

void main()
{
double x[4];
double result;
double del[4] = { 1, 0.5, 0.5, 0.01 };
double r = 100000000;
fp = fopen("Z:\\My Documents\\result.txt", "w");
//초기값.. design
/*
x[0]= 230;
x[1]= 20;
x[2] =35;
x[3] =0.89;
*/
//초기값 scantling
/*
x[0]= 236;
x[1]= 21;
x[2] =40;
x[3] =0.85;
*/
x[0] = 236;
x[1] = 21;
x[2] = 42;
x[3] = 0.83;

//계산
result = HJ(function, x, del, r, 4);
// 계산 결과 출력.
double NMCR = pow(x[0] * B*Tmld*Cb, 2. / 3.)*pow(V, 3) / Cad_ / Et_ *(1.2) / 0.9 / 0.9;
printf("**********Result********\nL=%f,D=%f,Cb=%f,Value=%f\n", x[0], x[1], Cb, result);
fprintf(fp, "L,D,B,Cb,Value\n");
fprintf(fp, "%f,%f,%f,%f,%f\n", x[0], x[1], x[2], x[3], result);
fprintf(fp, "W(ton),LWT(ton),Fb(m),Cargo,NMCR(BHP),NMCR(PS)\n");
fprintf(fp, "%f,%f,%f,%f,%f,%f\n"
, (x[0] * B*Tmld*Cb*1.025*(1. + alpha))
, (Ws_ / (pow(Lbp_, 1.6)*(B_ + D_)))*pow(x[0], 1.6)*(B + x[1])
+ (Wo_ / Lbp_ / B_)*x[0] * B
+ (Wm_ / NMCR_)*NMCR
, x[0] / Lbp_*Fb_
, x[0] / Lbp_*Lh_*B*x[1] * Cch_*Cmd_
, NMCR1
, NMCR1*1.01333333
);
fprintf(fp, "VOL(m^3),LWL\n");
fprintf(fp, "%lf,%lf\n", x[0] * x[2] * Tmld*x[3] * (1 + alpha), Lwl_*x[0] / Lbp_);
printf("r-- %f\n", r);
printf("L(m)\t%f\nB(m)\t%f\nD(m)\t%f\nCb\t%f\n", x[0], B, x[1], Cb);
printf("건조비\t%f\nW(ton)\t%f\nLWT(ton)\t%f\nFb(m)\t%f\n", result, (x[0] * B*Tmld*Cb*1.025*(1. + alpha)),
(Ws_ / (pow(Lbp_, 1.6)*(B_ + D_)))*pow(x[0], 1.6)*(B + x[1])
+ (Wo_ / Lbp_ / B_)*x[0] * B
+ (Wm_ / NMCR_)*NMCR, x[0] / Lbp_*Fb_);
printf("Cargo(m^3)\t%f\nNMCR(BHP)\t%10.10f\n", x[0] / Lbp_*Lh_*B*x[1] * Cch_*Cmd_, NMCR);

fclose(fp);


}


여기서 빌드시 오류가 뜨는데 문제를 잘 모르겠습니다.

빌드하면 다음과 같이 나옵니다.


 


 
해결방법이 너무나 알고싶습니다.ㅠㅠ


#visual studio #visual studio code #visual studio 2022 #visual studio 2019 #visual studio community #visual studio code 한글 #visual studio code download #visual studio download #visual studio 설치 #visual studio 단축키

profile_image 익명 작성일 -

실행이 됐으니 빌드는 잘 된것 같고 런타임 오류같네요.
오류 메시지만 잘 보면 무엇이 문제인지 알수 있겠죠.

fprintf 의 인자가 null 값이기 때문입니다.
오류창이 나왔을때 다시시도 버튼을 누르면 바로 디버깅 모드가 됩니다.

예상으로는 파일 열기가 실패한게 아닐까 싶네요.
fp 값을 확인해보고 오류처리를 해보세요.

Visual Studio 2010 Professional 설치...

... 해결방법좀요 ㅠㅠㅠ 빠른 답변 부탁드립니다... 응용프로그램 오류 0xc000007b은 실행되는 파일에... Microsoft Visual C++ 2013,2015 api-ms~~~~~~~.dll -> Microsoft Visual C++ 2013...

Visual C++빌드실패

... 로그가 "file://c:\Users\pc-\Documents\Visual Studio 2008\Projects\연습\연습\Debug\BuildLog.htm"에 저장되었습니다. 1>연습 - 오류: 1개, 경고: 0개 ========== 빌드: 성공 0, 실패 1...

visual studio c++ 2013 빌드시 디버그...

이거 오류 해결 같이 도와주실분!!! 진짜 도와주시면 정말 감사하겠습니다./ 가능하신분있으시면 제 카카오톡 알려드릴테니 의견 남겨주시면 감사하겠습니다!~ 문자열에 잘못된...

C언어 컴파일 오류!!

... Microsoft Visual C++ 2008 Express Edition을 사용하고... 오류!! 이게 어떻게 된건지, 해결방법 가르쳐 주실분 어디 없나요? 30 걸어요!! [내용] #include<studio.h...