C/C++の宿題を片付け ..
[2ch|▼Menu]
970:デフォルトの名無しさん
08/02/05 23:31:18
>>967
void main()
{
double X[2];
int flag=0;
srand( (unsigned)time( NULL ) );

int i;
long double x,y, sum_y, sum_y2, s;
x=0;

FILE *fp1, *fp2;
fp1=fopen("file1.txt","w");
fp2 = fopen("file2.txt", "w");
for(x=0;x<=10;x++)
{
i=0;
sum_y = sum_y2 = 0;
while(i<100){
i=i+1;
y=x*x+AddError(&flag,X)*0.05;
sum_y+=y;
sum_y2 += pow(y, (long double)2.0);
fprintf(fp1,"%lf\t%lf\n",x,y);
}
s = -pow(sum_y, (long double)2.0)/10000 + sum_y2/100;
fprintf(fp2, "%lf\t%lf\n", x, s);
}
fclose(fp1);
fclose(fp2);
}

971:デフォルトの名無しさん
08/02/05 23:37:07
>>954
std::set<std::string>(moji,moji+sizeof(moji)/sizeof(*moji)).size()

972:デフォルトの名無しさん
08/02/06 00:14:18
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境 
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio
 [3.3] 言語: C
[4] 期限: 2月7日
[5] その他の制限: おねがいします。

973:デフォルトの名無しさん
08/02/06 06:51:28
>>972
またその問題かいな。

974:デフォルトの名無しさん
08/02/06 07:31:03
>>973
!!
もう誰かが質問してたってことですか! ぐへえ

975:デフォルトの名無しさん
08/02/06 09:25:24
【質問テンプレ】
[1] 授業単元:C++
[2] 問題文
テトラナッチ数列の問題で。
初項と第2項は0、第3項は1の値となるが第n項(n>3)び値Tnは以下の式で
あらわせられる。
Tn=Tn-1+Tn-2+Tn-3
再起を利用した関数int tetra(int n)を作成しn=1から n=30までに各値を表示
させたい。以下の質問に答えよ
@関数tetraを以下に記述せよ
Amain関数を以下に記述せよ
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン: (borand5.5)
 [3.3] 言語: (/C++/)
[4] 期限: 今日中


976:975
08/02/06 09:29:17
追記で。
上記プログラムを何回実行したかを確認したいときどこをどのように変更したらよいか答えなさい。

977:デフォルトの名無しさん
08/02/06 09:53:54
>>975

#include <stdio.h>

int tetra(int n) {
    if (n < 2)
        return 0;
    else if (n == 3)
        return 1;
    else
        return tetra(n - 4) + tetra(n - 3) + tetra(n - 2) + tetra(n - 1);
}

int main() {
    for (int i = 0; i <= 30; i++)
        printf("T%d : %d\n", i, tetra(i));
    return 0;
}

978:デフォルトの名無しさん
08/02/06 12:08:07
>>977
一個増えてるwww

979:967
08/02/06 13:14:45
>>970
こうじゃなくて、
ひとつのxについて
100個でてくるyの平均を出す

100個のyについてそれぞれ平均との差を出して二乗をとる

それを100個分足してΣが出るので、それを100で割って分散を求める

っていうのをそれぞれ1〜10について求めたいんですけれど・・・

980:デフォルトの名無しさん
08/02/06 13:49:32
(E[y] - y)^2=((E[y])^2-2E[y]y+y^2)
1/100*Σ((E[y]^2-2E[y]y+y^2)=E[y]^2-2E[y](1/100)Σy+(1/100)Σ(y^2)
E[y]=(1/100)Σyだから
((1/100)Σy)^2-2((1/100)Σy)^2+(1/100)Σ(y^2)
=-((1/100)Σy)^2+(1/100)Σ(y^2)
だと思ったんだが,違ったのか

981:デフォルトの名無しさん
08/02/06 16:54:14
間違ってるようでいて、合ってる。
N回分お得。

982:デフォルトの名無しさん
08/02/06 17:46:13
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):課題作成 簡単なすごろく 20でゴール
[3] 環境
 [3.1] OS: (WindowsXP)
 [3.2] Visual studio 2005 8
 [3.3] 言語: (C++)
[4] 期限: 2月12日

最終課題ですごろくを作れと言われたのですが、基礎の基礎しか習ってないのでよくわかりません。
過去ログにあったプログラム例も試してみたのですが無理でした。
どなたかお願いします。

983:デフォルトの名無しさん
08/02/06 17:49:22
>>982
GUI付き?

984:982
08/02/06 21:02:41
GUIはないと思います・・多分。

985:デフォルトの名無しさん
08/02/06 22:15:05
すいません、詰まっています。教えてください。
「第6回 万年カレンダー(2)
キーボードから年と月を入力し、その月のカレンダーを表示する。 」

#include <stdio.h>
int is_bissextile(int year)
{
/*
閏年かどうか判定する関数
閏年なら1,そうでなければ0を返す
*/

int bis;

if((year % 400) == 0 || ((year % 4) == 0 && (year % 100) != 0)){
bis = 1;
}
else {
bis = 0;
}

/* 下のような書き方も可能
bis = ( year % 400 == 0 || (year % 4 == 0 && year % 100 != 0));
*/
1日の曜日を計算する)

986:デフォルトの名無しさん
08/02/06 22:16:35
2008年2月のカレンダーを表示する
2月1日が金曜日であることがわかっているものとする
(課題では,前回のプログラムを使って1日の曜日を計算する)
*/
int year = 2008;
int month = 2;
int first_dow = 5; /* 1日は金曜日 */
int i;

int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

if(is_bissextile(year)) { /* 閏年なら,2月を29日までにする */
days[1] = 29;
}

printf(" %d年%2d月\n", year, month);
printf("日 月 火 水 木 金 土\n");

987:デフォルトの名無しさん
08/02/06 22:26:58
for(i=0; i<first_dow; i++){
printf(" "); /* 最初の曜日の,1日の前の空白 */
}
for(i=1; i<days[month-1]+1; i++){
printf("%2d ", i); /* 数字二桁と,二つの空白 */
if((first_dow + i) % 7 == 0){
printf("\n"); /* 土曜日になったら,改行 */
}
}
/*
最終日が土曜日以外だったら,最後に改行を入れる
土曜日の場合は,既に入っているので入れない
*/
if((first_dow + i)%7!=1) printf("\n");
}

988:デフォルトの名無しさん
08/02/06 22:52:24
>>985-987
わかりづれーなww
>>985>>986の間に

return bis;
}
int main(void){

を追加すればいいだけじゃないのか?

989:デフォルトの名無しさん
08/02/07 10:56:35
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):課題1:キーボードから文字列を入力し、その内容をファイルに保存するプログラムを作成しなさい。
なお、文字列の最大長は256バイトとし、プログラムの終了条件は、文字データの入力がないときとする。
課題2:課題1で作成されたファイルを読み込み、画面に表示するプログラムを作成しなさい。
[3] 環境
 [3.1] OS: (WindowsXP)
 [3.2] Visual studio 2005
 [3.3] 言語:C
[4] 期限: 2月14日

課題が2つもありますがどうかよろしくお願いします

990:デフォルトの名無しさん
08/02/07 10:59:20
連続投稿すみません。課題1の最後の分に「すなわち、次の入力とする「C:\>Enter」」を追加します。

991:デフォルトの名無しさん
08/02/07 11:41:11
>>988
ごめんなさいちょっとミスしましたw
えっと、この日本語を全てプログラムにしないとダメなのですが、分からないんです

URLリンク(jbbs.livedoor.jp)

問題こちらです、よろしくお願いします。

992:デフォルトの名無しさん
08/02/07 11:42:11
>>991
特定したwwwwww

993:デフォルトの名無しさん
08/02/07 11:43:37
え、ちょ、何がですか?怖いです

994:デフォルトの名無しさん
08/02/07 12:00:44
>>989
初心者ですが作ってみました。

//課題1
#include <stdio.h>
#include <string.h>

#define CHARMAX 256

int main(void)
{
int i=0;
char str[CHARMAX];
FILE *fp=fopen("data.txt","w");

if(!fp) return 1;

do{
fgets(str, CHARMAX, stdin);
i += int(strlen(str));
if(i > CHARMAX){
printf("入力文字数オーバー");
break;
}
fputs(str, fp);
}while(str[0]!='\n');
return 0;
}

995:デフォルトの名無しさん
08/02/07 12:01:04
//課題2
#include <stdio.h>

#define CHARMAX 256

int main(void)
{
char str[256];
FILE *fp=fopen("data.txt", "r");
if(!fp) return 1;

while(!feof(fp)){
fgets(str, CHARMAX, fp);
printf("%s", str);
}
return 0;
}

996:デフォルトの名無しさん
08/02/07 13:14:20
>>982
こんなんでいいんでしょうか。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

997:デフォルトの名無しさん
08/02/07 13:34:05
>>994
問題の解釈違いかも知れんが、入力制限はトータルではなくて毎回個別でいいんじゃないか?
それなら、fgets()任せで済むことだし。

998:デフォルトの名無しさん
08/02/07 13:39:15
>>997
ああ、確かに文字列一個当たりの最大値っぽいですね。
指摘ありがとうございます。

//課題1
#include <stdio.h>

#define CHARMAX 256

int main(void)
{
char str[CHARMAX];
FILE *fp=fopen("data.txt","w");

if(!fp) return 1;

do{
fgets(str, CHARMAX, stdin);
fputs(str, fp);
}while(str[0]!='\n');
return 0;
}

課題2は同じで大丈夫ぽいかな。

999:デフォルトの名無しさん
08/02/07 13:47:22


1000:デフォルトの名無しさん
08/02/07 13:48:02


1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4969日前に更新/357 KB
担当:undef