1 名前:デフォルトの名無しさん [2008/10/01(水) 07:28:51 BE:151474728-PLT(18888)] あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。 【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。 ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク): [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 前スレ C/C++の宿題を片付けます 115代目 pc11.2ch.net/test/read.cgi/tech/1217741118/
445 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 13:02:07 ] >>444 正常の定義は? エラーを出して止まるのが正常なのか 書式を無視するのが正常なのか
446 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 13:07:44 ] >>445 空白の行を無視して次の行から配列に代入する処理というのが正常です
447 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 19:03:24 ] [1]授業 c言語 [2] 問題:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7807.txt [3] 環境 [3.1] OS:linux [3.2] gcc [3.3] 言語:C [4] 期限 10/20
448 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 19:56:05 ] &s[i].id s[i].name &s[i].score[j]
449 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 22:10:12 ] [1] 授業単元:プログラミング基礎 [2] 問題文 体重と身長をキーボードから入力し、BMIを計算して出力するプログラムを書け。 BMIの計算はユーザ定義の関数を用いて行い、データの型にはdoubleを用いよ。 ただし、BMIの計算式は以下の通り。 BMI=体重(kg)/身長(m)^2 例:65kg/(1.70m * 1.70m) =22.49 [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2008年10月21日まで [5] その他の制限: かなり初歩の段階みたいです。 よろしくお願いします。
450 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 22:27:55 ] >>449 >>424-425
451 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 22:31:24 ] >>449 #include<stdio.h> double bmi(double weight, double height) { return weight / (height * height); } int main() { double weight, height; printf("体重(kg)?"); scanf("%lf", &weight); printf("身長(m)?"); scanf("%lf", &height); printf("BMI=%g\n", bmi(weight, height)); return 0; }
452 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 22:56:20 ] >>450 >>451 すいません。説明不足でしたがelseやifなんかはまだ習ってないくらい初歩なので >>424-425 はよくわからないんです。 お早いレスで助かりました。ありがとうございます。
453 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 02:08:14 ] >>425 こんなに早くやって下さり、本当に有難う御座いました。 助かりました。
454 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 05:04:55 ] >>453 elseやifについてどう思うかを>>452 に伝えてやってくれまいか
455 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 13:54:08 ] [1] 授業単元:プログラミング [2] 問題文: "A>B"と入力すると"AはBより大きい"のように、不等式を文章に変換するプログラムを作成せよ。また、入力データと実行結果は以下の通りとし、変換された文章をテキストファイルに順番に出力すること。 実行結果 データ1:A>B データ2:B<C データ3:A<C ○○○.txtに出力しました ○○○.txt AはBより大きい BはCより小さい AはCより小さい [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:bcc [3.3] 言語:C [4] 期限:10/21 [5] その他の制限:可能な限り初歩的なものでお願いします
456 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 14:38:08 ] #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { FILE *fpr, *fpw; char s1[1000], s2[1000], c; if (argc != 3) { fprintf(stderr, "引数にこでたのむ\n"); return 1; } if (!(fpr = fopen(argv[1], "r"))) {fprintf(stderr, "ファイルが\n"); return 1; } if (!(fpw = fopen(argv[2], "w"))) {fprintf(stderr, "ファイルが\n"); return 1; } while (fscanf(fpr, " %[^<> ] %c%s", s1, &c, s2) == 3) { switch (c) { case '<': fprintf(fpw,"%sは%sより小さい\n", s1, s2); break; case '>': fprintf(fpw,"%sは%sより大きい\n", s1, s2); break; default: fprintf(stderr, "なかみが\n"); return 1; } } fclose(fpr); fclose(fpw); return 0; }
457 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 15:42:56 ] [1]授業 c言語 [2] 問題: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7807.txt [3] 環境 3.1 OS:linux 3.2 gcc 3.3 言語:C [4] 期限 10/20 すいません、よろしくお願いします。
458 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 15:48:02 ] >>447 >>448
459 名前:デフォルトの名無しさん [2008/10/19(日) 16:04:58 ] >>457 まず、リスト@はmain関数の外で定義な。中でもいいけど、個人的には外の方が分かりやすい。 で、○○○は上から順に &s[i].id s[i].name &s[i].score[j] あんまり偉そうなこといいたくないが、これって構造体の基本問題だろ?? できるだけ自分で解けるようにしないと後々、辛い目にあうぞ。
460 名前:457 mailto:sage [2008/10/19(日) 17:07:53 ] >>459 ウザいです。 偉そうな口を聞いて欲しくないです。
461 名前:デフォルトの名無しさん [2008/10/19(日) 17:20:54 ] >>460 本当のことだろーが 構造体の基礎の基礎も出来てないやつが喚くな餓鬼め
462 名前:457 mailto:sage [2008/10/19(日) 17:23:18 ] >>461 スレ違いです。出て行ってください。
463 名前:457 mailto:sage [2008/10/19(日) 17:25:13 ] そういうのは止めてください >>458 どうもすいませんでした >>459 ありがとうございます
464 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 18:22:51 ] >>457 >>1 > なりすましを防ぐため、トリップを使ってください。
465 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 19:44:19 ] ワロタ
466 名前: ◆iTaRIJflUs mailto:sage [2008/10/20(月) 00:09:33 ] [1] 授業単元:C言語プログラミング [2] 問題文 <その1> 以下のようなプログラムを作成しなさい. 2×10の2次元配列を定義し、1行目の配列([0][0〜9])に1から10までの数字を格 納し、2行目の配列([1][0〜9])に2の倍数を2から20まで格納し、配列に格納した 数字を画面出力するプログラム。 <その2> 以下のようなプログラムを作りなさい 10人の学生の成績が以下のようになっている。 int score[]={90,28,35,80,72,55,76,90,96,42} このとき、0から9までの学生の偏差値を計算せよ。 [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2008年10月21日朝9時まで [5] その他の制限: まだまだ初歩の段階です。 どなたかお願いします。
467 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 01:52:12 ] >>466 int num[2][10]; int i, j; for( i = 0; i < 2; i++ ) { for( j = 0; j < 10; j++ ) { num[i][j] = (j + 1) * (i + 1); /* (1〜10) × ( 1 or 2) */ printf( "%2d ", num[i][j]); } printf("\n"); }
468 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 02:14:52 ] >>466 その2 #include <stdio.h> #include <math.h> int main(void) { int score[]={90, 28, 35, 80, 72, 55, 76, 90, 96, 42}; int i, n = sizeof(score) / sizeof(score[0]); double sum = 0., sqsum = 0., mean; for (i = 0; i < n; i++) { sum += score[i]; sqsum += score[i] * score[i]; } mean = sum / n; printf("標準偏差 = %f\n", sqrt(fabs(sqsum / n - mean * mean))); return 0; }
469 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 08:39:37 ] [1] 授業単元:プログラミング [2] 問題文:x=1y=2 が関数swapをもちいてx=2、y=1となる。関数swapを呼び出す前後のx,yのアドレスを表示し、アドレスが渡されていることをしめせ。 [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:visual2005 c [3.3] 言語:C [4] 期限:10/23 お願いします
470 名前:デフォルトの名無しさん [2008/10/20(月) 08:44:26 ] 【質問テンプレ】 [1] 授業単元: C++ [2] 問題文(含コード&リンク): 前もって用意された暗号化された文のテキストファイルと暗号化されていない文のテキストファイルがあります。 暗号化されたテキストファイルの始めの3文字はXXXとなっています。 プログラムは最初の3文字をよんで、XXXだったらそのファイルを解読して新たなファイルに保存、 XXXじゃなかったらそのファイルを暗号化して新たなファイルに保存しなさい。 尚、テキストファイルが1000文字以上だったらexitすること。 (暗号はa→c,b→dのようなshift2です。) [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: Dev-C++ [3.3] 言語: C++ [4] 期限: 今日中 どうやってファイルの最初の3文字を判断するのかがまず分かりません..。 どなたか教えて下さい。
471 名前:デフォルトの名無しさん [2008/10/20(月) 11:33:38 ] [1] 授業単元:プログラミングC++ [2] 問題文:学籍番号、名前、姓、が記入されたリストを入力し、これを名前、姓、学籍番号の順に出力するC++ プログラムを書き、正しく動くことを確かめよ。 動作確認のためには、「実行ファイル < データリスト」のようにデータファイルを作り、コマンドラインでリダイレクションによりデータ入力せよ。 s10000001 Taro Aizu s10000002 Jiro Aizu s10000003 Nuri Aizu s10000004 Taro Kin s10000005 Atami Bandai s10000006 Kogen Bandai s10000007 Choucreme Hirota s10000008 Kitakata Ramen s10000009 Beko Aka s10000010 Jo Tsuruga [3] 環境 [3.1] OS: unix [3.2] コンパイラ名とバージョン:g++ [3.3] 言語:C++ [4] 期限: 2008年10月23日00:00まで [5] その他の制限:特になし
472 名前:デフォルトの名無しさん [2008/10/20(月) 12:15:46 ] >>471 の補足ですが、ループを使うのが条件です
473 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 14:10:40 ] >>470 1000文字未満だったらfreadでchar[1000]に読み込んではじめの三文字見ればよくね?
474 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 18:10:38 ] 授業単元: C [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7810.txt 条件は関数 void sort3 の引数は3つの int 型の値であるが,これをポインタ変数を受け取る関数に書き換える.交換の作業はすべて関数内で処理し,main 関数では交換作業を行わないものとする 。 [3] 環境 [3.1] OS: Windows/Linux [3.2] コンパイラ名とバージョン: 任意 [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限:2008年10月23日まで
475 名前:デフォルトの名無しさん [2008/10/20(月) 18:33:20 ] [1] 授業単元:プログラミング [2] 問題文: Newton--Raphson法を用いて X*X*X-7X*X+16X-10=0 の解を求めよ。 [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:bcc [3.3] 言語:C [4] 期限:10/24 [5] その他の制限:初心者です。なるべく基本的な構造でお願いします。
476 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 18:48:16 ] >>474 void sort3(int *x, int *y, int *z) { int tmp; if (*y < *x) { tmp = *x; *x = *y; *y = tmp; } if (*z < *y) { tmp = *y; *y = *z; *z = tmp; } if (*y < *x) { tmp = *x; *x = *y; *y = tmp; } }
477 名前:デフォルトの名無しさん [2008/10/20(月) 19:07:40 ] #define GOSA 0.00001 #define F(X) (X*X*X-7*X*X+16*X-10) #define dF(X) (3*X*X-14*X+16) int main(){ double x=10,y; while(1){ printf("計算経過 %f\n",x); y=F(x); if(y>-GOSA)if(y<GOSA)break; x -= y/dF(x); } }
478 名前:デフォルトの名無しさん [2008/10/20(月) 19:22:25 ] #define GOSA 0.00001 #define F(X) (X*X*X-7*X*X+16*X-10) #define dF(X) (3*X*X-14*X+16) int main(){ double x=10,y; do{ x -= y/dF(x); printf("計算経過 %f\n",x); y=F(x); }while(y<-GOSA || y>GOSA); }
479 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 23:25:55 ] [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7806.txt [3] 環境 [3.1] OS: Windows) [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:無期限 [5] その他の制限:関数・配列は習いましたが、ポインタは知りません。 自分で書いてみたのですが、例えば15を打つと 「素数ではありません」「素数ではありません」「素数です」とでてしまいます。
480 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 23:36:28 ] else{ for(i=3;i<=no;i+=2){ if ((no%i)==0){ puts("素数ではありません"); break; } else{ puts("素数です"); break; } } }
481 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 23:57:28 ] >>479 int main(){ unsigned long int i ; unsigned long no = 0; printf("1から%luまで入力可能です\n", ULONG_MAX); do { printf("正の整数:"); scanf("%lu", &no); if (no <= 0) { puts("0以外、正の整数を入力してください") ; } while(no <= 0) ; if (no == 2) { puts("素数です"); } else if (no == 1 || no%2 == 0) { puts("素数ではありません"); } else { for ( i = 3; i * i <= no; i += 2) { if (no % i == 0) { puts("素数ではありません"); return 0; } } puts("素数です"); } return 0; }
482 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 00:06:50 ] >>480 481 ありがとうございます!
483 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 02:39:36 ] >>469 エスパーするとこうかな?関数swapを自分で書いて、呼び出す側とその関数内それぞれでアドレスを表示。 #include <stdio.h> /* aの指すデータとbの指すデータを交換する */ void swap( int *a, int *b) { int temp = *a; printf( "swap() : &a = %p, &b = %p\n", a, b); *a = *b; *b = temp; } int main(void) { int x = 1, y = 2; printf( "main() : x = %d, y = %d, &x = %p, &y = %p\n", x, y, &x, &y); swap( &x, &y); printf( "main() : x = %d, y = %d, &x = %p, &y = %p\n", x, y, &x, &y); return 0; }
484 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 08:16:08 ] >>483 俺は int* temp = a; a = b; b = temp; かと思った
485 名前:デフォルトの名無しさん [2008/10/21(火) 12:43:13 ] >>473 ありがとうございました。調べてみます。
486 名前:デフォルトの名無しさん [2008/10/21(火) 12:53:22 ] >>476 それでコンパイルすると3つ目の整数を入力してから入力した整数が小さい順に出力されるようにしたいんだけどそれだとエラー起きてしまうのですが・・・
487 名前: ◆3VUXqvbfSY mailto:sage [2008/10/21(火) 13:04:05 ] 【質問テンプレ】 [1] 授業単元:計算機プログラミングII [2] 問題文(含コード&リンク): 単精度実数型配列(float)を宣言する。その配列にn個のデータを入力する。その配 列名をポインタとして用いて,入力したn個のデータの最大値と最小値を求め,その 結果とそれら値が何番目に入力されたかを出力するプログラムを作成せよ。 ただし,複数回の異なる場合について実行してみること。データ入力の際,値が昇順 または降順にならないようにすること。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc (注) gcc -Wall -ansi -std=c89 -pedantic ファイル名.c のようにしてコンパイル [3.3] 言語:C [4] 期限:2008年10月23日10:30まで [5] その他の制限:ポインタを習い始めたばかり,for文やif文,関数,配列,文字列の基礎は学習済み おねがいします。
488 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 14:14:37 ] >>486 関数のプロトタイプ宣言 void sort3(int *x, int *y, int *z); 呼び出し sort3(&n1, &n2, &n3);
489 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 17:19:27 ] >>487 どうやって入力するのかわからなかったけど、 とりあえず標準入力から一行ずつ float の値を一つ読み込こんでいくようにしておいた kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7812.txt
490 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 18:11:11 ] 簡単なゲームを作っているのですが、今まで使っていたアイコンは32×32だったので、それを16×16のサイズにしようと思い、そのサイズの画像を取り込んだら、32×32のサイズに拡大されて表示されてしまうのですがどうしたらよいのでしょう? アイコンファイルってサイズ指定するとこないですよね?
491 名前: ◆3VUXqvbfSY mailto:sage [2008/10/21(火) 18:30:43 ] 【質問テンプレ】 [1] 授業単元:計算機プログラミングII 対象:学部2年次 [2] 問題文(含コード&リンク):問題2( /2問) 次に示す手順により,入力されたデータのデータの総和を求めるプログラムを作成せよ。 (1) 適当な要素数の倍精度実数型配列(double)を宣言する。 (2) 上記(1)で宣言された配列の先頭アドレスをポインタ変数に代入する。ポインタ 変数を利用して上記(1)で宣言した配列に対して,キーボードから実数データを 入力する。ただし,Ctrl-Dが入力されたら,データの入力を終了する。 (3) ポインタ変数を利用して,参照アドレスを移動しながら入力されたデータの 総和を計算する。 (4) 入力したデータおよびそれらの総和を表形式で出力せよ。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc (注) gcc -Wall -ansi -std=c89 -pedantic ファイル名.c のようにしてコンパイル [3.3] 言語:C [4] 期限:2008年10月23日10:30まで [5] その他の制限:ポインタを習い始めたばかり,for文やif文,関数,配列,文字列の基礎は学習済み お願いします。
492 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 19:03:53 ] >>491 いいオプションがついてるな。 ってことはいい先生って事だ。たぶん。
493 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 19:13:49 ] 2枚の画像を読み込んで、それを引き算をして、その引き算した画像を出力するプログラムをお願いします。
494 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 19:35:27 ] [1] 授業単元:データー構造とアルゴリズム設計 [2] 入力された文字を,リストを用いて順次格納する.’−’が入力された時に文字の入力を終 了し,それまでに格納された全ての文字を表示するプログラム (例) a ←入力 b ←入力 c ←入力 − ←入力 c ←出力 b ←出力 a ←出力 [3] 環境 [3.1] OS:Linux ver3.1 [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 来週まで [5] その他の制限:特にありません
495 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 19:38:47 ] もう1つ [1] 授業単元:データー構造とアルゴリズム設計 [2] 入力された小文字のアルファベットを,リストを用いて順次格納する.’−’が入力された 時に文字の入力を終了し,それまでに格納された全ての文字を表示するプログラムを作成 せよ.ただし,リストに格納する際,リストの最後に追加するようにせよ. (例) a ←入力 b ←入力 c ←入力 − ←入力 a ←出力 b ←出力 c ←出力 [3] 環境 [3.1] OS:Linux ver3.1 [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 来週まで [5] その他の制限:特にありません
496 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 19:39:23 ] お願いします。
497 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 20:56:21 ] [1] 授業単元: 信号処理 [2] 問題文(含コード&リンク): @ 209921行5列の2次元配列のファイルを読み込みなさい。ファイルの値を1024個で区切り1024個中の値の平均値と平均値から突飛している値=最大値を求めなさい。最大値をmax1、max2、max3、・・・・として最大値は1個とは限らないこととする。 また1024個の最大値を求め終わったら、次の1024個の最大値を求めなさい。 この作業をファイルの最後の2097152個目の値までやりなさい。 ただし、ファイルのサイズは17.2MBととし十分なメモリ領域を確保すること。 ヒント:malloc関数 ※ファイル↓(17MBもあるのでDLするのに時間がかかるかもしれません。お手数かけます。) kissho4.xii.jp/50/src/5yoshi7327.txt.html DLKey:data A 求めた最大値を2次元配列でpeak.txtに出力しなさい。1行目を最初の1024個中で求めた最大値を出力させ、2行目からは次の1024個中から求めた最大値を出力させなさい。 同様に3行目、4行目、・・・と順次最大値を出力させなさい。 例:peak.txt 472 234 800 578 ・・・・ 677 347 554 532 ・・・・ 843 637 347 551 ・・・・ ・ ・ ・ [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: LSI−86 [3.3] 言語: C [4] 期限: 2008年10月23日午後3時 [5] その他の制限: 特になし よろしくお願いします。
498 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 22:04:04 ] よくわからないけど平均値どこ行ったの?
499 名前:358 mailto:sage [2008/10/21(火) 23:39:49 ] >>494 ,495 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7813.zip 参考程度にしてくれ >>497 ロダ死亡 LSIのは、むかし試食版とか使ったことあるけど、もうしらねぇ。 www1.axfc.net/uploader/Ne/so/34790.zip 参考程度にしてくれ DLkey : foo
500 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 00:02:22 ] ちょっと修正、勘違いしていた、気がしないでもない。 ついでに、全ソースもつけといたので、環境に合わせてコンパイルとリンクしてくれ ロダ生きてたみたい kissho1.xii.jp/7/src/7jyou16166.zip.html DLkey : foo ってか、358ってなんだ、前のがそのまんまだった。
501 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 01:44:49 ] [1] 授業単元: プログラミング実習2 [2] 問題文(含コード&リンク):カレンダー風の出力 下に示すようなカレンダー風の出力を行うプログラムをwhile文を使って作成してください。 ・1〜31までの範囲とします。 ・printf関数で表示幅をそろえます。(右揃え) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [3] 環境 Visual C++ [3.1] OS:Windows [3.2] コンパイラ名とバージョン: C++コンパイラ,リンカ [3.3] 言語: C言語 [4] 期限: 2008年10月23日(木)までお願いします。 [5] その他の制限: 逐次処理(順次処理)、条件分岐(選択処理)if,if-else,switch、 繰り返し(反復処理)while,do-while,for、演算子の複合演算子(+=,-=,*=,/=,%=) インクリメント(++)デクリメント(--)は習いました。 お願いします。
502 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 02:23:57 ] >>498 平均値は最大値を求めるだけに使うので、出力とかはしなくていいんです。 ↓(手書きで申し訳ないですけど・・・)イメージ的には↓ kissho.xii.jp/1/src/1jyou52627.bmp.html DLkey:foo >>499 >>500 ありがとうございます。早速、明日学校でコンパイルしてみます。 本当に助かりました。
503 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 03:55:43 ] >>502 圧縮するという事を学ぼう。 テキストはzipに、bmpは形式を変更。
504 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 06:21:16 ] >>501 #include <stdio.h> int main(void) { int i=1; while(i!=32){ printf("%2d ",i); if(!(i%7)) printf("\n"); i++; } return 0; }
505 名前::デフォルトの名無しさん [2008/10/22(水) 11:35:56 ] >>501 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7816.txt
506 名前:デフォルトの名無しさん [2008/10/22(水) 11:47:05 ] オブジェクト形式マクロを用いたNUMBER人の点数を配列tensuに 読込み,秀(90〜100点),優(80〜89点),良(70〜79点),可(60 〜69点),不可(0〜59点),判定不能(0未満あるいは100点より 上)の人数を,それぞれ変数a,b,c,d,e,fに格納・表示し,更に最高 点,最低点,合計点,平均点を表示するプログラムを作成せよ.た だし,最高点,最低点,合計点,平均点の計算において,判定不能 の点数は除外すること. なおNUMBERの値は10とし,平均点は小数点以下第2位まで表示 すること. という問題誰か教えてください。
507 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 11:48:05 ] [1] 授業単元: [2] 問題文(含コード&リンク): 5.6 29.2 ・・・・25.2 2.7 ・・・ ・ ・ ・ -1.0 mozi 6.7 ・・・・ という様に数値データが書かれたファイルを読み込む。各行に100個の正の実数が書かれている。 これを1次元配列data[100]に順番に入れて、表示する。 これをファイルの終わりまで行う。 -1.0から始まる行があるが、その行は読み飛ばし、次の行から処理を行うようにすること [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC [3.3] 言語: C [4] 期限:今日 [5] その他の制限: なし
508 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 11:55:37 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク):文字列を入力すると,英小文字を大文字に変換して出力するプログラムをポイン タを用いてつくりなさい。但し,ライブラリ関数toupper を用いないこと。また,文字 列の入力には,ライブラリ関数であるgets 関数を用いること。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:08年10月23日23:00まで よろしくお願いします。
509 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 12:47:36 ] [2] ・dx/dt = t という式についてx(t=0)=0として,x(t) をt=0 から1 まで求めるEuler法のプログラムを作れ. 時間刻み(h)をどの程度小さくすると,真値(解析解:x=0.5*t*t)にどの程度近づくかを調べよ. ・FitzHugh-Nagumo方程式の解軌跡を求めるプログラムを作成せよ. ・作成したプログラムを使って、興奮性を示すx,yの初期値を一組探しグラフで結果を示せ. 初期値も自由に設定して良いが、うまくパラメータが見つからない場合は、a=0.7, b=0.8, c=20, z=1.0 を使用すること. dx/dt=c(x-x^3)/(3+y+z) dy/dt=(a-x-by)/c [3] 環境 [3.1] Windows [3.2] コマンドプロンプト [3.3] C [4] 明日17時 [5] わからないのを3つ載せましたが、1つでも構わないのでなんとかお願いします。
510 名前::デフォルトの名無しさん [2008/10/22(水) 13:08:58 ] >>508 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7817.txt
511 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 13:52:57 ] >>510 ありがとうございました!
512 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 14:32:51 ] わざわざ文字列の長さを求めなくてもAllCharactersToUpperのfor文の条件をstr[i]!='\0'にすればいいと思う。
513 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 14:50:28 ] >>509 Cじゃないけどエクセルで作ってみたw kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7818.zip
514 名前::デフォルトの名無しさん [2008/10/22(水) 15:14:32 ] >>507 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7819.txt
515 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 15:41:27 ] 2つの画像を読み込んで、1つ目の画像から2つ目の画像を引き算をした画像を作りたいんですが どのような感じで作ればいいでしょう?
516 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 15:55:18 ] 2つの画像を読み込んで、1つ目の画像から2つ目の画像を引き算するような感じで 作ればいいと思います
517 名前::デフォルトの名無しさん [2008/10/22(水) 16:21:40 ] >>507 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7820.txt
518 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:25:34 ] >>514 最初の1行しか読まれないんですが・・・
519 名前::デフォルトの名無しさん [2008/10/22(水) 16:30:51 ] >>518 >>517 で試してみて
520 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:32:18 ] >>519 3つめでしょうか?
521 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:36:01 ] >>518 プログラムざっとみたけど1行目しか読んでない
522 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:42:31 ] >>519 3つめでやったら、コンパイルは通るんですが、バッファーオーバーランでとまります・・・
523 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:50:24 ] do-while間のi初期化忘れてるな
524 名前:523 mailto:sage [2008/10/22(水) 16:53:21 ] 投稿者が見てるか分からんが i=0; ←追加 do{ (略) }while(dp = strtok(NULL,gDlim)); これで動くように一見見える
525 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:54:36 ] >>524 動きました。がやはり1行目しか読まれないみたいです
526 名前:523 mailto:sage [2008/10/22(水) 17:01:18 ] char *dp,*p,*gDlim = " \n\r"; ↓ char *dp,*p,*gDlim = " "; これもミスっぽいな
527 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:17:20 ] >>504-505 お二人とも本当に有難う御座いました。 助かりました。
528 名前::デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:25:24 ] >>525 読み込むファイルアップしてみ
529 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:29:51 ] fgets後にstrtokで" \r\n"渡してるからじゃん? これだと行頭しか処理されないよ。
530 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:31:44 ] strtokとか使う必要あんの?普通にfscanfのほうがよくね?とか無責任に言ってみる
531 名前:517 mailto:sage [2008/10/22(水) 17:39:35 ] 行頭に-1.0がある行は無視するという条件だから 行中に-1.0があっても読み込むためにstrtokを使った ちなみにfscanfつかったソースは#if 0〜#endif の間に残してある
532 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:42:21 ] >>529 そうなんですか?やはり1行目しか読まれません
533 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:47:15 ] あと1行1列が2回表示されます・・・
534 名前:デフォルトの名無しさん [2008/10/22(水) 17:53:07 ] >>533 だから読み込むファイルアップしてみ
535 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:57:21 ] >>534 見落としてました。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7821.txt これです。横に100個って書いたんですが、12個のファイルしかなかったです。 先ほど頂いたソースは100のところを12に書き換えました。
536 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:59:29 ] >>534 俺も適当にddata.txt作ってみたけど1列目が2回出たなあ
537 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 18:03:30 ] 実数が100個並ぶのにバッファは512かあ。
538 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 18:15:03 ] >>535 なんかこれでいいかわかんないけどつくってみた #include<stdio.h> #include<stdlib.h> #include<string.h> int main(){ FILE* fp; char buf[1024],*cp; double data[100]; int i,cnt; if((fp = fopen("in.txt","r")) == NULL) return 1; while(fgets(buf,sizeof(buf),fp) != NULL){ if(strnicmp("-1.0",buf,strlen("-1.0")) == 0) continue; cp = buf; cnt = 0; while((cp = strtok(cp," \t\r\n")) != NULL){ data[cnt++] = atof(cp); cp = NULL; } for(i=0;i<cnt;i++) printf("%f\n",data[i]); } fclose(fp); }
539 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 18:19:14 ] return 0; わすれちゃった。
540 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 18:42:16 ] >>538 うまくうごきました。ありがとうございます。
541 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 19:01:36 ] [1] 授業単元:C [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7823.txt 問1.このプログラムではxの零乗が3x{0}と表示されるため3と出力されるようにする 問2.このプログラムでは入力の逆順に単項式が出力されるためそれを入力した順番に単項式が出力するようにする [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: お任せ [3.3] 言語: C [4] 期限: 2008年10月24日hh:mmまで
542 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 19:25:10 ] 画像を読み込み、引き算したプログラムを自分なりに作ったんですが #include <stdio.h> #include <stdlib.h> #include<math.h> #define XL 900 #define YL 900 int main(int argc, char**argv) { FILE *fp1, *fp2, *fp3; int i; float opx, px1, px2; fp1 = open("argv[1]", "rb"); fp2 = open("argv[2]", "rb"); fp3 = open("argv[3]", "wb"); for(i=0; i<XL*YL; i++){ fread(&px1,sizeof(float),1,fp1); fread(&px2.sizeof(float),1,fp2); opx = px1-px2; write(&opx,sizeof(float),1,fp3); } fclose(fp1); fclose(fp2); fclose(fp3); return 0; } コンパイルが通らず、エラーがでてしまいます; アドバイスを頂けるとうれしいです
543 名前:デフォルトの名無しさん [2008/10/22(水) 19:26:15 ] 380 >>407 遅くなりましたが、回答ありがとうございました!! もっと自分で学習せないかんですね・・・
544 名前:デフォルトの名無しさん [2008/10/22(水) 19:27:58 ] fread(&px1,sizeof(float),1,fp1); fread(&px2.sizeof(float),1,fp2); write(&opx,sizeof(float),1,fp3); &いるっけ?
545 名前:デフォルトの名無しさん [2008/10/22(水) 19:28:47 ] ごめん、いるわw 勘違いでした