1 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:55:25 ] あなたが解けない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++の宿題を片付けます 102代目 pc11.2ch.net/test/read.cgi/tech/1197132472/
2 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:02:31 ] ∩___∩ |ノ⌒ ⌒ ヽ / ●) ●) | オツカレチャ━━━━━| ( _●_) ミ━━━━━ン♪ 彡、 |∪| 、` / ヽノ ヽ / 人 \\ 彡 ⊂´_/ ) ヽ__`⊃ / 人 ( (_ノ (_)
3 名前:デフォルトの名無しさん mailto:>>1乙 [2008/01/14(月) 23:16:24 ] >>1 前スレのアドレス間違ってるぞクズ 低脳が粋がって新スレ立てるなボケ 半年ロムってろゆとり
4 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:19:16 ] >>3 ム板でツンデレを見ることになるとは >>1 乙
5 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:24:19 ] >>1 乙。 >>3 ツンデレ乙。
6 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:37:53 ] C/C++の宿題を片付けます 102代目 pc11.2ch.net/test/read.cgi/tech/1199515728/ まだ埋まっていないので質問者はこちらへどうぞ
7 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:01:11 ] >>1 乙ンデレ
8 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:19:42 ] Cで任意の4つの数字を入力して四則演算(カッコ無し) で10にするプログラム教えてください
9 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:26:26 ] >>8 コラー!!
10 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:43:34 ] おしっこ漏れちゃったぉ。
11 名前: ◆gDKJL3vNys mailto:sage [2008/01/15(火) 01:52:04 ] 前スレ>>990 >>992 レスありがとうございます 申し訳ありませんマイコンにも種類があるのですね ハードウェアマニュアルによるとH8/3664グループと書かれています たしかH8/3664Nだと思われます
12 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:52:18 ] >>8 scanf("%d %d %d %d",a,b,c,d); printf("%d+%d+%d+%d+%d\n",a,b,c,d,10-(a+b+c+d));
13 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:55:31 ] >>12 2 4 6 8 → 2+4-6+8=10 みたいな意味じゃないの?
14 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:56:17 ] 四則計算も出来ないとは…orz 2*4-6+8=10だ。
15 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 02:06:48 ] 専ブラ使って、前スレ取得してればそれなりに見えるはず URLばっかりでうざかったら申し訳。 【未解決問題】 pc11.2ch.net/test/read.cgi/tech/1199515728/986 期限切れだが早めに (pass:c) pc11.2ch.net/test/read.cgi/tech/1199515728/934 1/15 早朝(7時くらい) pc11.2ch.net/test/read.cgi/tech/1199515728/870 1/15 正午 pc11.2ch.net/test/read.cgi/tech/1199515728/514 1/15 pc11.2ch.net/test/read.cgi/tech/1199515728/881 1/15 pc11.2ch.net/test/read.cgi/tech/1199515728/924 1/15 >>793 と別人? >>794 ? pc11.2ch.net/test/read.cgi/tech/1199515728/952 1/15 pc11.2ch.net/test/read.cgi/tech/1199515728/957 1/15 pc11.2ch.net/test/read.cgi/tech/1199515728/988 1/16 pc11.2ch.net/test/read.cgi/tech/1199515728/576 1/17日中 pc11.2ch.net/test/read.cgi/tech/1199515728/985 1/17 pc11.2ch.net/test/read.cgi/tech/1199515728/824 1/18 pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31
16 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 03:40:56 ] pc11.2ch.net/test/read.cgi/tech/1199515728/924 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5775.c
17 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 03:49:17 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):入力した文字列(アルファベット)の中に、指定したもじがいくつあるかカウントするプログラムを作成せよ。カウントした値を表示させること。なおカウントする文字列が該当しない場合は、0と表示する。 [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限:2008年1月16日10時まで [5] その他の制限:特にないです どうかよろしくお願いします
18 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 03:50:49 ] >>000000000000000000000000000000000017 文字の指定方法は?
19 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 04:05:55 ] pc11.2ch.net/test/read.cgi/tech/1199515728/576 狭義対角優位って |a_ii| >= 培aij| (j!=i) でよかったっけ // diagonally dominat -> 1, else -> 0 int is_dd_sq_matrix( double * mat, int n ) { int i, j;; if ( mat == 0 || n < 1 ) return 0; for ( i = 0; i < n; ++i ) { double a = fabs( mat[ i * n + i ] ); for ( j = 0; j < n; ++j ) a -= fabs( mat[ i * n + j ] ); if ( a < 0 ) return 0; } return 1; } int main(){ int n = 10; double * mat = malloc( sizeof(double)*n*n); if ( mat ) { int i;for(i=0;i<n*n;++i) mat[ i ] = rand()/(double)RAND_MAX; printf( "mat is%sdd\n", is_dd_sq_matrix(mat,n) ? " " : " not "); free(mat);} return 0;}
20 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 05:41:06 ] pc11.2ch.net/test/read.cgi/tech/1199515728/985 もっときれいな方法がありそうだが #include <stdio.h> #include <math.h> typedef unsigned int uint; int main( int argc, char ** args ){ uint a, b, ma, mb; double dif = 4., l = 3., u = 4.; for ( b = 1; b < (0xFFFFFFFF / 3); ++b ){ for ( a = (uint)(b * l - 1); a < (uint)( b * u + 1 ); ++a ){ if ( dif > fabs( M_PI - (double)a / b ) ) { ma = a; mb = b; dif = fabs( M_PI - (double)a / b ); l = M_PI - dif; u = M_PI + dif; printf ( "a:%u, b:%u, a/b:%.20lf, dif:%.20lf\n", a, b, (double)a/b, dif ); } } } printf ( "a:%u, b:%u, a/b:%.20lf, dif:%.20lf\n", ma, mb, (double)ma/mb, dif ); return 0; }
21 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 06:57:41 ] >>17 #include <stdio.h> int StrCount(char *str,int chr) //戻り値:カウント値 //str:文字列 //chr:カウントする文字 { int result; result=0; while(*str) { if(*str==chr)result++; str++; } return result; } int main(void) { char str[1024];int count;int chr; printf("文字列を入力してください。");gets(str); printf("カウントする文字を入力してください。");chr=getc(); count=StrCount(str,chr); printf("%d個見つかりました。\n",count); return 0; }
22 名前:デフォルトの名無しさん [2008/01/15(火) 09:27:39 ] [1] 授業単元:プログラミング入門 [2] 問題文(含コード&リンク): 0がでる確率40%、1〜50がでる確率10%、51〜100がでる確率10%、101〜150がでる確率10% 151〜200がでる確率10%、201以上がでる確率20% 上記の条件で乱数を1000個発生させるプログラムを作成しなさい。 [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限:2008年1月16日12時 [5] その他の制限:特にないです よろしくお願いします
23 名前:8 mailto:sage [2008/01/15(火) 09:35:42 ] >14 それです!良かったら教えてください。unixのgccです。
24 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 09:38:45 ] >>23 とりあえず>>1 をよく読んで書き直し
25 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 09:52:28 ] >>22 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int i, r; srand((unsigned int)time(0)); for(i=0;i<1000;i++) { r = (int)((rand() / ((double)RAND_MAX+1.0f)) * 10); if( r < 6 ) { r *= 50; r += (int)((rand() / ((double)RAND_MAX+1.0f)) * 49)+1; } else r = 0; printf("%d\n", r); } return 0; } 遅刻しそうであせって作ったので間違ってるかも。確認は自分でヨロ
26 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 10:44:41 ] >>22 上限は?
27 名前:デフォルトの名無しさん [2008/01/15(火) 10:50:19 ] pc11.2ch.net/test/read.cgi/tech/1199515728/985 これじゃだめかな? #include <stdio.h> #include <math.h> int main(void) { unsigned int A, B = 1; A = B * (unsigned int)M_PI; while (A <= 0xffffffff) { printf("A = %d, B = %d\n", A, B); B++; A = B * (unsigned int)M_PI; } return 0; }
28 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 11:13:17 ] [1] 授業単元: 基礎プログラミング [2] 問題文(含コード&リンク): 実数aと非負整数nを読み込みaのn乗を計算して出力するプログラミングを作りなさい。 実数aと非負整数nに対して、aのn乗を計算する再帰関数double power(double a,int n)を必ず 作成すること。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C言語 [4] 期限:1月19日まで [5] その他の制限: とりあえず再帰関数を使う。
29 名前:デフォルトの名無しさん [2008/01/15(火) 11:17:55 ] #include <stdio.h> #include <malloc.h> #define buffer_size 10 int main(int argc ,char *argv[]) {FILE *p; char buffer[buffer_size]; if(argv[1]==0){ printf("ファイル名を入力してください\n"); scanf("%s",&argv[1]); }else if(argv[1]==0){ printf("プログラムを終了します。");return 0; } p=(FILE *)malloc(sizeof(FILE)); if(p == 0){ perror("領域確保に失敗");return 0; } p=fopen(argv[1],"r"); if(p){ while(fgets(buffer,buffer_size,p)){ printf("%s",buffer); } } if(!p){ printf("文字列を書き込んでください\n"); scanf("%s",buffer); p=fopen(argv[1],"w"); if(fprintf(p,buffer)==0){ perror("終了します。\n");return 0;} }; fclose(p);free(p);return 0; } うまい下手はさておいてこのプログラムの間違いを教えてください。コマンド未入力の場合、既存ファイルがあるにも関らず入力を促す。セグメンテーション、アボートエラーがでます。よろしくお願いします。
30 名前:デフォルトの名無しさん [2008/01/15(火) 11:21:48 ] >>29 >if(argv[1]==0){ >printf("ファイル名を入力してください\n"); >scanf("%s",&argv[1]); >}else if(argv[1]==0){ >printf("プログラムを終了します。");return 0; >} ・argv[1] == 0 じゃなくて argc == 0 ・if(argv[1]==0) ・・・ else if(argv[1]==0) ↑ねーよwwww
31 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 11:35:21 ] >>29-30 スレ違い。 一応間違いを以下に指摘。 # 詳細は、初心者スレなどで -- #include <malloc.h> scanf("%s",&argv[1]); p=(FILE *)malloc(sizeof(FILE)); --以下省略
32 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 11:42:09 ] 前スレ870です 多少なら締め切りをオーバーしてもOKなので、今からでもどなたか解答をお願いできますでしょうか
33 名前:デフォルトの名無しさん mailto:age [2008/01/15(火) 11:46:59 ] >>28 #include <stdio.h> double power(double a,int n) { return n ? a*power(a,n-1):1; } int main(void) { double a; int n; printf("実数a入力>"); scanf("%lf",&a); do{ printf("非負整数n入力>"); scanf("%d",&n); }while(n<0); printf("%.2lf\n",power(a,n)); return 0; }
34 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 12:15:19 ] >>32 木構造かこれ? 両方向リストじゃない?
35 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 12:19:47 ] 3つのポインタを持つということか……
36 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 12:29:27 ] >>32 何時くらいまでならいいんじゃろ?
37 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 12:30:56 ] >>34 二分ではなく、それぞれのノードについて任意の数(0〜n個)のポインタを持つ木を作るとの事です 頭の中ではなんとなく分かっているのですが、いざプログラムに直そうとするとチンプンカンプンで……
38 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 12:32:57 ] >>36 締め切りを考えると明日の午前中がデッドラインかと 連レスで申し訳ないです
39 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 12:40:20 ] >>32 親、子、隣の3つのポインタを持つわけではないの? 普通配列で持ったりはしない気がするけど。 あと、削除が出来るようなことが書いてあるけれど、コマンドの一覧にはないよね? どうなってるのん?
40 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 12:46:17 ] [1] 授業単元: コンピュータグラフィックス [2] 問題文: GPSから取得された位置座標をカメラ位置,ジャイロから得られた角度(俯角)をカメラの傾きとし OpenGLで3D空間内にカメラ視点を設定し,空間中のオブジェクト(任意の座標上)を眺めることの 出来るプログラムを作成せよ. [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC 6.0 [3.3] 言語: どちらでも可 [4] 期限: ([2008年1月16日12:00まで] [5] その他の制限: OpenGLを使用 OpenGLスレもありましたが,今期限ギリギリで切羽詰っているのでこちらに書かせて頂きました. プログラムも2ちゃんねるもまだまだ初心者なので何か失礼がありましたら,すみません. 自分は視点の設定が良くわかっていません. gluLookAt()や透視投影の仕組みの理解不足で,位置座標やカメラ角度をどの引数に代入してやるか などが頭の中でごちゃごちゃになります. GPSはWGS84で緯度+35.658632,経度+139.745411のようなデータで得られます. どのようにxyz空間座標に変換すればよいかなどもご指導頂ければ助かります. OpenGLに精通された方がいらっしゃれば,どうぞよろしくお願いいたします. スレ違いならすみません.
41 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 13:08:57 ] >>39 ノードの持つポインタは ルート:子を指すポインタのみ ノード:親を指すポインタ、子を指すポインタ で進めます。兄弟姉妹に移動する場合、一度親を経由して移動します 要素の削除は「追加出来れば良い」(加点する)課題らしいので、追加して頂かなくて結構です わかりにくくてすいませんでした
42 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 13:14:25 ] >>25 いまさらだけど50*10の乱数つくって 50*6以上を0にすればよかっただけの気がする
43 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 13:24:24 ] >>32 とりあえずぱっとみた感じだけど ・子を追加する関数add_child ・親に戻る関数back_parent ・子を検索して表示する関数search_print_node をそれぞれ作って、コマンド入力するごとに現在注目しているノードを指すポインタのcurを表示すれば良いのかな? 子を消すなら、関数del_childも必要だけど
44 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 13:42:12 ] >>32 加点ということなんで、削除込みでつくってみるわい。
45 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 14:20:29 ] >>32 これはひどい kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5776.txt
46 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 14:33:16 ] [1] 授業単元:プログラミング2 [2] 問題文(含コード&リンク):指定ファイルの内容のうち,指定文字列を含む行を表示するプログラムを作りなさい。(UNIXコマンドのgrepに当たる) [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限:本日中 [5] その他の制限:急ではありますが、どなたかお願いできますでしょうか 参考:www.rsch.tuis.ac.jp/~mizutani/online/grep/grep.html
47 名前:44 mailto:sage [2008/01/15(火) 15:13:32 ] >>32 なんかすでにあるっぽいけど、作っちゃったからおいとくよ。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5777.txt (実行例と上の仕様に矛盾がある気がする…)
48 名前:デフォルトの名無しさん [2008/01/15(火) 15:50:19 ] キーボードから入力された文字列に指定した文字が何個 含まれているか表示するプログラムを作りなさい。 動作例: キーから文字を数文字入力してください= alpha-dog 調べる文字を入力してください= a 入力された文字列の中に a は、2 個ありました。 誰か教えてくださいぃぃ
49 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:16:17 ] >>48 >1
50 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:25:45 ] // >>48 #include <cstdio> int main() { std::puts( "キーから文字を数文字入力してください= alpha-dog\n\n" "調べる文字を入力してください= a\n\n" "入力された文字列の中に a は、2 個ありました。\n" ); return 0; }
51 名前:>>48 mailto:sage [2008/01/15(火) 16:29:28 ] >>50 のとおりに動作するようにしてくださいぃぃ
52 名前:デフォルトの名無しさん [2008/01/15(火) 16:32:27 ] [1] 授業単元:情報処理 [2] 問題文(含コード&リンク): キーボードから1行ずつ入力を受け取り、アルファベットである場合は13字ずつずらす暗号文の作成。 (A→N、B→O、(中略)、M→Z、N→A、(中略)、Y→L、Z→M) アルファベット以外はそのまま表示するので「abc500」と入力された場合「nop500」と表示される。 通常の文を打てば暗号の文になり暗号文を打てば通常文に戻る、ということ。 また10行分入力を受けたらプログラムを終了し、一行は80字でよい。 なお、プログラム中に最低1つのmain()関数以外の関数を定義すること。 [3] 環境 [3.1] OS:Windows xp [3.2] コンパイラ名とバージョン:VisualStudio.NET2003(これでいいのか不安だけど) [3.3] 言語: C [4] 期限: 今週中(2008年1月19日)まで [5] その他の制限: 文字列・文字コードは習得。main以外の関数は授業内ではdouble distanceとmyislowerとintmax、intmin、dumb程度です。これが関数でいいのかどうかは正直よくわかりませんが…orz どうかご教授よろしくお願いいたします
53 名前:デフォルトの名無しさん [2008/01/15(火) 16:33:46 ] printfとかつかいますよね?
54 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:46:21 ] >>51 50はどう見ても、50の通り動作するだろ。
55 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:56:37 ] //>>52 #include <stdio.h> #include <ctype.h> #include <string.h> void crypt(char * foo) { static char const inputLetters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; static char const outputLetters[] = "NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm"; for (int ic = 0; foo[ic] != '\0'; ++ic) { int ch = foo[ic]; char * pos = strchr(inputLetters, ch); if (pos != NULL) { foo[ic] = outputLetters[pos - inputLetters]; } } } int main() { char buf[81]; for (int ic = 0; ic < 10 && fgets(buf, sizeof(buf), stdin) != NULL; ++ic) { crypt(buf); fputs(buf, stdout); } return 0; }
56 名前:デフォルトの名無しさん [2008/01/15(火) 17:10:45 ] そのまま貼り付ければ動作しますか?
57 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:12:25 ] >>56 しません 帰れ!
58 名前:52 mailto:sage [2008/01/15(火) 17:14:38 ] 早速の返答ありがとうございます >>56 の行動をしてしまった…orz エラーが出る部分はどう対処すればいいでしょうか? 質問ばかりで申し訳ありません。。
59 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:29:48 ] 1-1/2+1/3-1/4+1/5-1/6... の値を有効数字6桁で求めるプログラムを作れ。 よろしくおねがいします
60 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:55:06 ] >>58 二箇所のfor (int ic... を、int ic; for (ic... に書き換えればOK。
61 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:10:13 ] >>59 >1
62 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:25:01 ] >>59 int main(int argc, char* argv[]) { printf("%f\n", log(2.0)); return 0; }
63 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:27:24 ] >>62 さっそくありがとうございます。 でも、任意の項でやめるときはどうしたらいいのでしょうか?
64 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:04:38 ] 前スレの >>938 >>925 本当に色々とありがとうございました。
65 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:12:35 ] >>63 テンプレ守ってないのがすごく気に入らないけど暇だったので。 #include <stdio.h> int main(void) { double answer = 0; int n; int i; printf("input N >>"); scanf("%d", &n); for (i = 1; i <= n; ++i) answer += (i & 1)? 1.0 / i: -1.0 / i; printf("answer: %lf\n", answer); return 0; }
66 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:18:38 ] >>65 たびたびすみません、 三項演算子を使わない方法はありますか?
67 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:19:29 ] >>66 if使えよ
68 名前:デフォルトの名無しさん [2008/01/15(火) 19:20:32 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5778.txt [3] 環境 [3.1] OS:Windows xp [3.2] コンパイラ名とバージョン:VisualStudio2005 [3.3] 言語: C [4] 期限:1月15日 [5] その他の制限:
69 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:23:52 ] >>67 といいますと? >>68 またジャンケンwwww
70 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:25:22 ] じゃんけん自重しろ
71 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:27:58 ] ∩___∩ | | ノ\ ヽ | / ●゛ ● | | | ∪ ( _●_) ミ j 彡、 |∪| | J / ∩ノ ⊃ ヽ >>69 ( \ / _ノ | | .\ “ /__| | \ /___ /
72 名前:デフォルトの名無しさん [2008/01/15(火) 19:31:35 ] >>69 ホントにあんたって人は一人じゃ何にもできないんだから! #include <stdio.h> int main(void) { double answer = 0; int n; int i; printf("input N >>"); scanf("%d", &n); for (i = 1; i <= n; ++i) { /* answer += (i & 1)? 1.0 / i: -1.0 / i; */ if (i % 2 != 0) /* 奇数項は足し算 */ answer = answer + 1.0 / i; else /* 偶数項は引き算 */ answer = answer - 1.0 / i; } printf("answer: %lf\n", answer); return 0; }
73 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:34:33 ] >>72 ありがとうございます でもif分を使わなくてもできました!! for(i=1;i<=n;i+=2)answer+=1.0/i; for(i=2;i<=n;i+=2)answer-=1.0/i; でいいんですかね?
74 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 20:10:22 ] ツンデレVSヤンデレ
75 名前:デフォルトの名無しさん [2008/01/15(火) 20:18:23 ] 前スレ988 pc11.2ch.net/test/read.cgi/tech/1199515728/988 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5779.txt P10,11にSW、P50,51,52,53にLED、SW押すと別のLEDを点灯するだけ タイマV (ベクタ22) の割り込み使ってるからベクタテーブル書き換え忘れないようにな ルネサス謹製のヘッダファイル使ってるけど、大丈夫か?
76 名前:デフォルトの名無しさん [2008/01/15(火) 20:21:52 ] >>75 ごめんクロック周波数20MHzで作ってる 周波数違うと一部違うから、わかんなきゃ言ってくれ あとヘッダが3694になってるけどI2C使ってなきゃ3664でも動く
77 名前:デフォルトの名無しさん [2008/01/15(火) 20:44:08 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 下のリンク先のプログラムは年月日の差を求めるプログラムなのですが、 ・2つの入力年月日を実行時にキーボードから入力させるか ・2つの入力年月日をファイルから与えるか ・2つの入力年月日をコマンドライン引数として与える この3つ条件のどれか1つを追加したプログラムに書き直したい。 プログラム:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5780.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: ([2008年1月16日12:00まで [5] その他の制限:できれば3つの条件のプログラムをそれぞれ教えて頂けたら助かります。 1つでもかまいません。宜しくお願いいたします。
78 名前:52 mailto:sage [2008/01/15(火) 22:00:42 ] >>60 親切にありがとうございます。助かりました。
79 名前:デフォルトの名無しさん [2008/01/15(火) 22:05:18 ] [1] 授業単元:プログラミング [2] 問題文:物理プログラミングをせよ ウィンドウズアプリケーションで作成せよ 物: 正四角形(2次元)と地面を作る 地面の動き: 方後キーの←→でその方向に傾く 正四角形の動き: 地面に落ちたり 地面が傾いたらすべるようにする なおDxLibを使うこと [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:c [4] 期限:2008年1月18日 [5] その他の制限:期日しかいのでよろしくおねがいします お願いいたします
80 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:10:52 ] >>79 期日しかいので無理。
81 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:16:26 ] >>79 DxLib + gcc がしかいだよなぁ
82 名前:デフォルトの名無しさん [2008/01/15(火) 22:18:07 ] >>69 えー((+_+)) お願いします(-_-メ)
83 名前:79 [2008/01/15(火) 22:45:21 ] >>80 すみません修正いたします 期日は無期ですよろしくお願いいたします
84 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:47:20 ] >>83 じゃあ、半万年後にまた会いましょう
85 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:07:05 ] >>79 gccでDxLib使うってからには、ライブラリのビルドは出来てるんだよな?
86 名前:デフォルトの名無しさん [2008/01/15(火) 23:09:28 ] [1] 授業単元:プログラミング技術 [2] 問題文(含コード&リンク): ファイルに一行にひとつずつ整数が書いてあるとする。このファイルを コマンドラインで指定して、リストに入力するプログラムを書け。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限:1月22日 [5] その他の制限: よろしくおねがいします
87 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:14:25 ] >>85 俺も気になったんでググってみると、DxLibは一応Cygwin or MinGWで使えるらしい 但し、関数ポインタを一々DLLから取ってきて使う必要があるらしく煩雑 もともとVC++/BCC用なんだからgcc前提でDxLibを強要する出題内容はセンスを疑うわな 宿題出されたヤツのやる気を削ぐようなこと言って申し訳ないが
88 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:37:31 ] >>40 これ表示するオブジェクトとかどうすんの? 球体に世界地図のテクスチャでも貼って、地球儀作って表示させんのかな そんならカメラより地球儀動かした方が簡単な気がするけど
89 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:52:48 ] >>46 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <regex.h> int main(int argc, char *argv[]) { regex_t pat; int i, err; char buf[1024]; if(argc < 3) return fprintf(stderr, "usage : %s pattern filename\n", argv[0]), 1; if((err = regcomp(&pat, argv[1], REG_EXTENDED | REG_NOSUB | REG_NEWLINE)) != 0){ regerror(err, &pat, buf, sizeof(buf)); return fputs(buf, stderr), 1; } for(i = 2; i < argc; i++){ FILE *fp; if((fp = fopen(argv[i], "r")) == NULL) return perror(argv[i]), 1; while(fgets(buf, sizeof(buf), fp)) if(!regexec(&pat, buf, 0, NULL, 0)) fputs(buf, stderr); fclose(fp); } regfree(&pat); return 0; }
90 名前: ◆5MBke502AE mailto:sage [2008/01/15(火) 23:54:54 ] >>88 オブジェクトは,建造物を3Dに起こしたもので, x-z平面を地面としてy軸方向に高さを伸ばしたような物体を想定しています! GPSから得られた位置をもとに, その建物オブジェクトを眺めた画像を保存し, 更に, GPS位置からある直線上(撮影方向に対する法線)にカメラ視点をズラして, 再び, オブジェクトを眺めた画像を得て…と繰り返して, 複数の画像を得ることが目的です! 言葉足らずですみません!
91 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:59:17 ] 【時間切れ】 (1/15) [前スレ] >934 >514 >881 >957 >952 【未解決問題】 pc11.2ch.net/test/read.cgi/tech/1199515728/986 期限切れだが早めに (pass:c) >>40 1/16 12:00 >>77 1/16 12:00 >>86 1/22 pc11.2ch.net/test/read.cgi/tech/1199515728/824 1/18 pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31 >>79 無期限
92 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 00:21:54 ] >>45 >>47 お二方とも、本当にありがとうございます いつかは自分も宿題を手伝う側になりたいと思いつつ、精進して参ります
93 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 00:26:37 ] >>77 > ・2つの入力年月日を実行時にキーボードから入力させるか もう実装されてね?
94 名前:デフォルトの名無しさん mailto:age [2008/01/16(水) 00:32:39 ] >>48 #include <stdio.h> int kensaku(char *data , char target) { int count; for(count=0;*data!='\0';*data++){ *data==target ? count++:1; } return count; } int main(void) { int i; char input[100]; char target[100]; printf("キーから文字を数文字入力してください="); scanf("%s",input); printf("調べる文字を入力してください="); scanf("%s",target); for(i=0;target[i]!='\0';i++){ printf("入力された文字列の中に %c は、%d 個ありました。\n",target[i],kensaku(input,target[i])); } printf("\n何か入力をしてください\n"); scanf("%s",input); return 0; }
95 名前:77 mailto:sage [2008/01/16(水) 00:35:24 ] >>93 さん すいませんそうですね!誤りです。 残りの条件の方でできればお願いいたします。
96 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 01:02:47 ] >>77 int m22 = 1, d22 = 1;の下からy_count = year_prev(&y1, &y2);上までを以下に書き換えでいかがでしょう char buf[100]; FILE *fp; if (argc == 7) { /* 引数の時 ./hoge.exe y1 m1 d1 y2 m2 d2 */ y1 = atoi(argv[1]); m1 = atoi(argv[2]); d1 = atoi(argv[3]); y2 = atoi(argv[4]); m2 = atoi(argv[5]); d2 = atoi(argv[6]); show_date(y1, m1, d1); show_date(y2, m2, d2); } else if (argc == 2) { /* ファイルのとき ファイルの中身はテキストでy1 m1 d1 y2 m2 d2 */ fp = fopen(argv[1], "r"); fgets(buf, sizeof(buf), fp); sscanf(buf, "%d %d %d %d %d %d", &y1, &m1, &d1, &y2, &m2, &d2); show_date(y1, m1, d1); show_date(y2, m2, d2); fclose(fp); }else { input_date(&y1, &m1, &d1); show_date(y1, m1, d1); input_date(&y2, &m2, &d2); show_date(y2, m2, d2); }
97 名前: ◆gDKJL3vNys mailto:sage [2008/01/16(水) 01:14:56 ] pc11.2ch.net/test/read.cgi/tech/1199515728/988 前スレ988です >>75 遅くなりすみませんレスありがとうございます 情報の後だしかつ、わざわざ作っていただき申し訳ないのですが 学習範囲外技術を含んだ非常に高度なプログラムなのでバレてしまうかもしれません またルネサスのヘッドファイルだと問題あるのかどうかもよく分かりません クロックも20MHzだと問題あるのでしょうか? 本日(昨日?)学校より今までに学習しそれを利用して製作した 今までのプログラムをアップしておきました ろだ、の5781.zipです 後出しかつせかっく作っていただいたのに文句ばかりつけて 本当に申し訳ありませんがアップしたプログラムの組み合わせや応用で 何かオリジナルの課題は作成可能でしょうか? アップしたプログラムと同じや似た内容だとはねられる可能性があるので 自分なりにも考えていますが現状ではお手上げです 時間も少なく申し訳ないですが、どうかよろしくお願いします。
98 名前:77 mailto:sage [2008/01/16(水) 02:11:06 ] >>96 さん 引数でもファイルからでもプログラムの実行が行えました! 教えていただいたプログラムは他の課題でも参考に使えそうです。 本当にありがとうございました!
99 名前:75 mailto:sage [2008/01/16(水) 12:00:27 ] >>97 課題サンプル見たよ 3664.hのヘッダは多分ルネサスから持ってきたもんだと思うから大丈夫 アップしたプログラムと課題には特に差はなかったです 課題のものが作れるならアップしたものも十分作れる…はず 日中時間ないんで夜になるけど、課題に合わせて修正してみるよ アップしたプログラムの動作はLEDが以下のように並んでるとして、 常に一つだけ点灯するもの ○○○● SW2押す→ ○○●○ SW2押す→ ○●○○ SW1押す→ ○○●○ 上のようにSWが押されると点灯しているLEDをずらしていくだけ SWは一回押されたら一つLEDをずらす、SWを一回離してもう一回押さないと 動かないようにしてます、内容的にはこんなんでいいのかな ちなみにクロック違うとタイマのカウント速度が違ってくるので TV.TCORA = 156 とかやってる部分をクロックに合わせて変更する必要があります 3664だと多分16MHzだと思いますが、どうなってるでしょう
100 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 12:09:17 ] [1] 授業単元:プログラミング言語II [2] 問題文(含コード&リンク): ポインタ配列を用いて月の名前を英語名で静的変数に格納しなさい。 ポインタ配列を用いて各文字列を走査し、「r」が入っている月を求めなさい。 見つかった月の名前を表示しなさい。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2008/01/16 24:00まで [5] その他の制限: 特になし 期限が今日まで申し訳ないですが、よろしくお願いします。