スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

やっぱりコードそのまま載っけました。

アレだめだった。

長いけど、コード載っけます。


/*
* Frenel formula.h
* ↓
* FF
* 機能:フレネルの公式を計算します。
* Created by 小さなプログラマ on 11/01/05.
* Copyright 2011 初心者のObjective-C勉強ログ. All rights reserved.
*
*/

#include
int FF(double *a, double *b, double *c, double *q, double *w, double *e, double *x, double *y, double *z, double *num, double *numb, double *N, double *xx, double *yy, double *zz)
{

double alpha;
double aa;
double bb;
double cc;

alpha = *a * *w * *z + *b * *e * *x + *c * *q * *y - *c * *w * *x - *a * *y * *e - *b * *q * *z;
if (alpha == 0)
return 2;

aa = *num * *w * *z + *b * *e * *N + *c * *y * *numb - *c * *w * *N - *e * *y * *num - *z * *numb * *b;
bb = *a * *numb * *z + *num * *e * *x + *c * *N * *q - *c * *numb * *x - *e * *N * *a - *z * *q * *num;
cc = *a * *w * *N + *b * *numb * *x + *num * *y * *q - *num * *w * *x - *numb * *y * *a - *N * *q * *b;


*xx = aa / alpha;
*yy = bb / alpha;
*zz = cc / alpha;

return 1;
}



/*
* Fresnel formula.c
* 機能:フレネルの公式により、3変数の時の連立方程式を解く
* ver.1.0
* Created by 小さなプログラマ on 11/01/05.
* Copyright 2011 初心者のObjective-C勉強ログ. All rights reserved.
*
*/

#include "Fresnelformula.h"

#include

int main(void)
{

double a[3];
double b[3];
double c[3];
double num[3];//右辺の数値
char yes;
double ans[3];
int i;
double meson;
double meson2;
double xx;
double yy;
double zz;
int which;

printf("3変数の連立方程式を解きます。\n");
while (1) {
for (i = 0; i < 3; i++) {

do{
printf("まず%dつめの式の1つ目の変数の値を入力してください。", i+1);
scanf("%lf", &a[i]);
printf("2つ目を入力してください");
scanf("%lf", &b[i]);
printf("3つめ");
scanf("%lf", &c[i]);
printf("右辺整数を入力してください。");
scanf("%lf", &num[i]);
printf("%gx", a[i]);
if (b[i] > 0)
printf("+%gy", b[i]);
else if (b[i] < 0)
printf("%gy", b[i]);
if (c[i] > 0)
printf("+%gz", c[i]);
else if (c[i] < 0)
printf("%gz", c[i]);
printf("= %g", num[i]);
printf("\nこれでよろしいですか?y/n?");
scanf("%s", &yes);
}while(yes != 'y');
}
if (a[0] == a[1] && b[0] == b[1] && c[0] == c[1]){
printf("記入された式の2つ以上が同じ式になっています。");
continue;
}
else if (a[0] == a[2] && b[0] == b[2] && c[0] == c[2]){
printf("記入された式の2つ以上が同じ式になっています。");
continue;
}
else if (a[2] == a[1] && b[2] == b[1] && c[2] == c[1]){
printf("記入された式の2つ以上が同じ式になっています。");
continue;
}
else {
break;
}
}


which = FF(&a[0], &b[0], &c[0], &a[1], &b[1], &c[1], &a[2], &b[2], &c[2], &num[0], &num[1], &num[2], &xx, &yy, &zz);

if (which == 2){
printf("誠に申し訳ないことに、この条件ではこのプログラムで計算することが不可能です。\n");
return 0;
}
printf("x = %g\n", xx);
printf("y = %g\n", yy);
printf("z = %g\n", zz);

return 0;
}

いらない変数多!とか言われるかもしれませんが、まぁまぁ。

ポインタの必要無い!!とかも言われるかもしれませんが、仕様変更して必要無くなったけど変えるのがめんどかっただけです。

ノシ
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

小さなプログラマ

Author:小さなプログラマ
小さなプログラマです。

これはあくまで、「勉強ログ」なので間違っている場合が多々あります。

なので、このブログに書いてあることは、8%くらいの信じ度でお願いします。

間違っているじゃないか!と言われてもあれなので。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
メールフォーム

名前:
メール:
件名:
本文:

カテゴリ
カウンター
検索フォーム
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。