- 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/
- 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] その他の制限: 特になし 期限が今日まで申し訳ないですが、よろしくお願いします。
- 101 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 12:29:39 ]
- 月って英語でlunaだっけ?と思った俺は負け組 orz
- 102 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 12:41:14 ]
- >>99の優しさを独り占めにしたい。
>>100 #include <stdio.h> int main(void) { char *month[] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; int i; char *p; for(i = 0; i < sizeof(month)/sizeof(month[0]); i++){ for(p = month[i]; *p != '\0'; p++) if(*p == 'r') break; if(*p != '\0') puts(month[i]); } return 0; } sizeof(month)/sizeof(month[0])はたまたま動くのかな?(そんなら12にしないと駄目だけど)
- 103 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 12:57:36 ]
- 動くのはたまたまじゃないが、要素数が分かってるからやる必要はないかもな。
- 104 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 13:00:24 ]
- 配列の要素数を指定してないんだからsizeofの方が自然じゃね?
*month[12]とかしてるなら12でもいいけど。
- 105 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 13:02:44 ]
- それだと文字数が12の予感
- 106 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 13:03:58 ]
- 一度他の変数に限界値保存して比較したほうがいいな。
forループ抜けるまで変動はしないのだから、毎回sizeof2つ使って除算までしてたら無駄過ぎる。 あとbreakする前にputsすればいいところを、わざわざif文外に持ってくる理由も分からん。
- 107 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 13:08:55 ]
- static忘れてね?
- 108 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 13:11:11 ]
- 忘れてた。
- 109 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 13:22:35 ]
- sizeof(array) / sizeof(* array)は(コンパイル時に確定するから)定数だよ。
- 110 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 13:24:20 ]
- >>105
アホがいるw
- 111 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 13:37:35 ]
- >>110
すんませんでした。
- 112 名前: ◆gDKJL3vNys mailto:sage [2008/01/16(水) 14:30:34 ]
- >>99
レスありがとうございます それで全然かまわないのでよろしくお願いします お手数おかけし申し訳ありません
- 113 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 17:58:06 ]
- [1] 授業単元: C言語
[2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5782.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:visual studio 2005 [3.3] 言語: C言語 [4] 期限: 今日中です。。。 [5] その他:よろしくお願い致します。
- 114 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 19:01:05 ]
- >>113
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5783.txt Switchを再入力させる条件が読み取れなかったので、 その辺は自身で修正して。
- 115 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 19:06:48 ]
- >>113
おいらもできた。マルチバイト文字セットをつかってくれ #include <stdio.h> #include <stdlib.h> #include <ctype.h> int main(void) { #define BUFSIZE 256 char buffer[BUFSIZE]; unsigned char val = 0; int bitpos, bitnum, i; while (1) { printf("\nBit number : 7 6 5 4 3 2 1 0\n" "Bit :"); for (i=7; i >=0 ; --i) printf( ((val >> i) & 1) ? " 1" : " 0"); while (1) { printf("\n\ninput change bit : "); fgets(buffer, BUFSIZE, stdin); bitpos = atoi(buffer); if (buffer[0] == '.') { return 0; } else if (isdigit(buffer[0]) && (bitpos >= 0 && bitpos <= 7)) { break; } puts("\nSorry. Input 0-7 number.\n" "(. is end)"); } while(1) { printf("\nSwitch on(1) or off(0) ? : "); fgets(buffer, BUFSIZE, stdin); bitnum = atoi(buffer); if (isdigit(buffer[0]) && (bitnum == 0 || bitnum == 1)) { val = (bitnum == 1) ? (val | (1 << bitpos)) : (val & ~(unsigned char)(1 << bitpos)); break; } puts("\nSorry. Input 0 or 1."); } } return 0; }
- 116 名前:114 mailto:sage [2008/01/16(水) 19:16:28 ]
- あ、バイトじゃなくてビットだから間違ってるorz
- 117 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 19:21:30 ]
- >>113の人気に嫉妬しつつ書いてみた
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5784.txt
- 118 名前: ◆gDKJL3vNys mailto:sage [2008/01/16(水) 19:36:27 ]
- >>99
自分なりに調べてみましたが 仰られる通り 3664ではシステムクロック信号はΦ16MHzで 周波数16MHzでは1ステートは1/16MHz=0.0625μsになるようです 遅くなり申し訳ありませんがよろしければご参考ください
- 119 名前:114 mailto:sage [2008/01/16(水) 19:37:29 ]
- >>114の修正版。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5785.txt
- 120 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 20:00:39 ]
- >>114
>>115 >>117 本当にありがとうございます。
- 121 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 20:35:15 ]
- [1] 授業単元:コンパイラ
[2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5786.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:VC 6.0 [3.3] 言語:どちらでも可 [4] 期限: 1月17日10:00まで [5] その他の制限:特に無し よろしくお願いしますm(__)m
- 122 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:33:08 ]
- #include <stdio.h>
int main(void) { char buf[100], delim[] = "=)(+*-/."; char *p, *q; printf("入力 : "); fgets(buf, sizeof(buf), stdin); for (p = buf; *p != '\0'; p++) { for (q = delim; *q != *p && *q != '\0'; q++); if (*q) printf("\n%c\n", *p); else putchar(*p); } return 0; }
- 123 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 22:38:26 ]
- >>121
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5787.txt
|

|