本日の課題。

まずは1つ目。

1 から 99 までの奇数の2乗分の一の和 1/1^2 +1/3^2 +…+ 1/99^2 を求めよ。
また、無限級数の和 π^2/8 と比較せよ

#define PI 3.14159265358979323846
#define N 100
#include _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
main()
{
	int i;
	double s=0.0;
	for(i =1; i < N; i +=2) {
		s +=1.0 /i/i;
} printf("s=%f\n", s); printf("(%f)\n", PI*PI/8.0); }

まぁまだ余裕でわかります。

次に2つ目。

キーボードから入力された整数 n (n>1)が素数かどうか判断するプログラムを作れ。
ただし、n > 1 でない時には終了するものとする。素数でない時にはその最小約数を表示するものとする。(1234567 は素数か?)
(ヒント) k=2 から始めて n%k が 0 となるまで、k を増やしていく。

#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
main()
{
	int n, k;
	printf("n(n>1)=");
	scanf("%d",&n);
	if(n <= 1) return;
	for(k=2; k<= n; ++k){
		if(n%k == 0) break;
	}
	if(k == n) 
		printf("%dは素数です。 \n", n);
	else
		printf("%d は素数ではなく、%d が最小約数 \n",n, k);
}

これもまぁわかります。

次に3つ目。

面積 S [m^2] の正方形の一辺 a を平方根関数 sqrt() を用いずに、逐次近似によって求めるプログラムを作れ。(x^2-S=0 を Newton 法で求めるのと同等)
(ヒント) 第1近似 a_1 を適当に決める。漸化式 a_(n+1) = (a_n +S/a_n)/2 により次々に a_n を求める。小さなεを決めて、|a_n – S/a_n| < ε となるまで続ける。
ε=1.0e-6, S=16, a_1=2 としてみよ。

#define _CRT_SECURE_NO_DEPRECATE
#define EPS 1.0e-6
#include <stdio.h>
#include <math.h>
main()
{
	double a, a1, s;
	printf("S="); scanf("%lf",&s);
	printf("a="); scanf("%lf",&a);
	while(fabs(a-s/a) >= EPS){
		a1=a;
		a = (a1+s/a1)/2.0;
	}
	printf("a= %f\n", a);
	printf("sqrt(s)= %f \n", sqrt(s));
}

ソースを見れば何がしたいかはわかりますが、説明なしにfabs()を使用…orz
同じ処理は一列にポリシーは健在。
sqrtを「スクアッド」と呼ぶ人なんですが、マイク越しだとたまに「スクワット」と聴こえるのは仕様です。

次に4つ目。

3つの整数を読み込み、小さい順に並べるプログラムを書け。(注:下のコードは完成形ではなく雛形)

#define  _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
#define N 3   // データ個数の最大値
main()
{
	int i, imin, a[N], aa;
/* データの読み込み */


/* 1番小さいものを a[0] とする。元の a[0] は避難する。 */
          i =0;
          imin =0;
          if(a[i+1] < a[imin]) imin =i+1;
          if(a[i+2] < a[imin]) imin = i +2;
          if(imin > i) {
		       aa =a[i]; a[i]=a[imin]; a[imin] =aa;
		  }

/* 2番小さいものを a[1] とする。元の a[1] は避難する。 */
		  i=1;
		  imin =1;
		  if(a[i+1] < a[imin]) imin = i+1;
		  if(imin > i) {
		       aa =a[i]; a[i]=a[imin]; a[imin] =aa;
		  }

/* 表示 */

}

はい、合ってはいるけど見難いコード発生…
考え方を示しながらやりますとか言って、なんの考えもなしにやるからこんなことに。
しかもコード書いてるとき、「あれ、これは…なんだっけかなぁ。えーと、あーこれ違う。えー…あれ?わからん。いや、これか。フッフッフッ…」とか言いながらやってたら確実に不審だから…
しかも「整数天国」とか意味不明な単語を吐いちゃいましたよ、この人。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中