C/C++の宿題片付けま ..
369:デフォルトの名無しさん
10/01/30 22:28:36
[1] 授業単元: プログラム演習U
[2] 問題文(含コード&リンク):
3次元空間において線分が平面を通過しているか判定するプログラムを作りなさい
(線分の座標(x1,y1,z1) (x2,y2,z2)と平面の四隅の座標は入力する)
平面を通過していても平面の四隅の中に交点がない場合は通過していないものとする
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語: C
[4] 期限:2010/2/8
お願いします
370:デフォルトの名無しさん
10/01/30 22:43:05
>>358です。
稚拙ですが、質問をURLにまとめたので、よろしくお願いします。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
371:デフォルトの名無しさん
10/01/30 22:46:23
>>370
>>368を読め。
372:デフォルトの名無しさん
10/01/30 22:58:55
>>370
Cドライブ直下にfreeフォルダを作成します。
C:\free です。
>>360のソースを free1.c などとしコンパイルして free1.exe を作成します。
作成された free1.exe を C:\free フォルダ内にコピーします
C:\free\free1.exe です。
作成済みのデータ test.txt も同様に C:\free フォルダ内にコピーします
C:\free\test.txt です。
C:\free フォルダの中には free1.exe test.txt 2つのファイルがあります。
コマンドプロンプトを起動します。
スタート>ファイル名を指定して実行>cmd.exe OKボタン
コマンドプロンプトが立ち上がりました。
C:\............... >_ (_は点滅状態)
となります。
カレントディレクトリを C:\free に移動します。
C:\............... >cd c:\free
です。
C:\free>_ (_は点滅状態)
になりました。
この状態で
C:\free>free1.exe test.txt test2.txt
を実行します。
C:\freeフォルダの中に test2.txt が作成されました。おしまい。
373:デフォルトの名無しさん
10/01/30 23:03:50
>>340
ありがとうございます!助かりました!
課題4、5については引き続きどなたかよろしくお願い致します。。
374:デフォルトの名無しさん
10/01/30 23:30:33
>>353
ファイルの入出力はファイルポインタを用いたものに変更してます。
(インデントが変な所はタブをスペース4つに換えて下さい)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
375:デフォルトの名無しさん
10/01/31 00:04:17
372さん。回答ありがとうございます。
アドバイス通りにしてみて、実行したのですが、
「Lhaplus slef extractor」というのが
表示されます。展開先のフォルダはC:\free を選べるのですが、
展開されるファイルが何故かfree1.cしか選べません・・・。
何度も見直して実行したのですが、結果は一緒です。
これは、なにか他に原因があるのでしょうか?
376:デフォルトの名無しさん
10/01/31 01:53:57
>>356
には手だすな。
>>357も>>369も
やんないほうがいい
377:デフォルトの名無しさん
10/01/31 02:16:46
>>375
それ以上の質問はスレ違いどころか板違い。
378:デフォルトの名無しさん
10/01/31 02:35:35
乱数は言語学習レベルの人がうかつに手を出すべきものじゃない。
補助的に使うのならともかく
高度に依存するプログラムの生成には高度な専門知識が必要で
専門家”集団”レベルで扱うべきもの。
みだりに使う癖だけは付けないほうが良い
以上自戒を込めて
379:378
10/01/31 02:37:05
誤爆につき謝罪
380:デフォルトの名無しさん
10/01/31 07:42:21
around >>372
URLリンク(www.geocities.jp)
381:デフォルトの名無しさん
10/01/31 07:47:50
[1] 授業単元:プログラミング演習U
[2] 問題文(含コード&リンク): 入出力とデータファイルへの保存とその間の処理あるプログラムを作成する
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限:2010年2月4日まで
[5] その他の制限:特にありません
自分では手のつけようがなく、非常に困っています。
どなたかよろしくお願いします。
382:デフォルトの名無しさん
10/01/31 14:33:52
漠然としすぎ
383:357
10/01/31 15:40:24
ほとほと困っています。どなたか回答お願いします。
384: ◆QZaw55cn4c
10/01/31 15:41:15
[1] 自主課題:前スレ スレリンク(tech板:776番) 関連
[2] パイプ機能(prog1|prog2|prog3) を有するシェルを作成せよ。
[3.1] WindowsXP/cygwin または Linux(Vine linux 4.2)
[3.2] gcc3
[3.3] C
[4] 特になし
前スレ スレリンク(tech板:776番) を解こうとして挫折しました。
なにとぞ、お手本のプログラムを示していただきたく、お願いいたします。
私のほうでは、
まず、pipe() -> fork() ->read()/write()またはgetchar()/printf() の流れでチャイルドプロセスの鎖の間をパイプでつなごうとしましたがうまくいきません。
プログラムは
URLリンク(codepad.org) です。
#define LOWLEVEL ではパイプが頭からお尻までつながって、 read()/write() 低水準入出力てデータが渡り、最後にプロンプトが表示されます。
ところが、
/* #define LOWLEVEL */ とコメントアウトした場合、FILE stdin, stdout でデータの読み書きを行うのですが、EOF を検出できず
チャイルドプロセスがロックしてしまいます。
ヒントでもかまいませんので、この種のプログラムのやりかたをどうか教えていただきたくよろしくお願いいたします。
385:デフォルトの名無しさん
10/01/31 16:06:44
>>384
> EOF を検出できず
EOFではなく0x0Aを検出したらどうでしょ
386:デフォルトの名無しさん
10/01/31 19:35:06
URLリンク(kansai2channeler.hp.infoseek.co.jp)
どうぞ。
387:デフォルトの名無しさん
10/01/31 19:43:07
息抜きにって下さい。
自分は分からないっす
お客様に「今後の夏のセールには、必ず連絡してほしい」といわれた時
お客様に「もらいもので気に入らないので他の商品と取り替えて欲しい」といわれた時
販売員の正しい行動を。
388:デフォルトの名無しさん
10/01/31 20:49:08
上司に聞け
389:デフォルトの名無しさん
10/01/31 22:26:49
>>384
できたよ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
390:384
10/01/31 23:00:10
>>389
提示されたコードを読ませていただき、私のコードがうまくいかなかった原因がわかりました。
int fd[2];
pipe(fd);
dup2(fd[0], 0);
close(fd[0]);
のあとに、
close(fd[1]);
が必要でした。
その他、いろいろと示唆にとむコードを掲示していただき、ありがとうございました。
391:デフォルトの名無しさん
10/02/01 00:47:15
すいませんが規制されてるので携帯から簡単に
問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
環境:XP、gcc、C言語
期限:今日の午前中
その他制限:なし
構造体とfwrite関数とコマンドライン引数等を使うらしいのですがよく分かりません
よろしくおねがいします
392:デフォルトの名無しさん
10/02/01 00:50:31
>>391
追加ですいません
バイナリファイルです
393:デフォルトの名無しさん
10/02/01 01:44:49
>>391
名前〜年齢間のタブ数が一定ではないけどそのルールはどうなってるの?
394:デフォルトの名無しさん
10/02/01 05:48:48
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): 住所録の機能を実現するプログラムを作成せよ。
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:2月3日 17時まで
[5] その他の制限: 特になし
395:デフォルトの名無しさん
10/02/01 08:23:12
>>384,390
EOFの検出はfeof()でできるよ。
396:デフォルトの名無しさん
10/02/01 09:15:16
>>393
タブ数は共通して一回です
397:デフォルトの名無しさん
10/02/01 10:27:05
>>391
URLリンク(codepad.org)
これじゃダメ?
398:デフォルトの名無しさん
10/02/01 10:28:21
>>391
連投スマソ。
構造体も,fwrite() も使ってなかったorz
忘れて下さい。
399:デフォルトの名無しさん
10/02/01 10:32:02
[1] 授業単元: C++実習
[2] 問題文(含コード&リンク):
●自由にクラスを設計する
設計図を提出 : クラスのデータメンバ、メンバ関数、仕様、
使い方等を詳しく説明したドキュメント 形式自由
(ただし電子化されたものに限る)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VisualStudio2008
[3.3] 言語: C++
[4] 期限: 2010年2月7日まで
プログラム作成ではないのですが、よろしければよろしくお願いします。
400:デフォルトの名無しさん
10/02/01 11:11:23
設計図て。図まで書けと申すか。
401:デフォルトの名無しさん
10/02/01 11:32:51
規制中なので携帯から失礼します
[1] 授業単元:プログラミングI
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows vista
[3.2] コンパイラ名とバージョン:visual studio2008
[3.3] 言語:C++
[4] 期限:2010年02月5日まで
[5] その他の制限:特になし
自分では全然作れませんでした・・・
よろしくお願いします
402:デフォルトの名無しさん
10/02/01 12:47:47
配列の使い方がイヤすぎるw
403:デフォルトの名無しさん
10/02/01 12:48:02
schaffleって英語じゃないよな?何語?
404:デフォルトの名無しさん
10/02/01 12:51:07
シャッフルしてランダムな結果を返すならシャッフル関数は2つもいらない気がする
405:デフォルトの名無しさん
10/02/01 12:55:25
schaffle1(int n, int a[]) {
while(n > 1) {
int i = rand() / (RAND_MAX + 1.0) * n + 1;
int temp = a[n];
a[n--] = a[i];
a[i] = temp;
}}
schaffle2(int n, int a[]) {
int i, j, temp;
for(i=1; i<=n; i++) {
j = rand() / (RAND_MAX + 1.0) * i + 1;
temp = a[j];
a[j] = a[i];
a[i] = temp;
}}
406:デフォルトの名無しさん
10/02/01 14:48:08
[1] 授業単元:プログラミング応用演習
[2] 問題文(含コード&リンク): URLリンク(mikilab.doshisha.ac.jp)
[3] 環境
[3.1] OS: Windows
[3.2] )
[3.3] 言語:C++
[4] 期限: 2010/2/2or3
[5] その他の制限: ライブラリは使わず。問題文のリンク先のプログラム(DIRECT)を組む。
よろしくお願いします。できれば解説を付けてくださると助かります。
407:390
10/02/01 18:25:32
>>395
C 言語というより UNIX/POSIX システムコールの問題でした。
パイプを pipe() で作成した後適切に処理しなければ、パイプが閉じたことにならず、EOF が検出できずに getchar()やread() がブロックされたのでした。
これは fcntl() で NONBLOCK 属性をつけてもうまくいきませんでした。
URLリンク(codepad.org)
408:395
10/02/01 19:13:22
>>407
オレの言いたかったのはget_line()の方。
これじゃコマンドを入力するときのEOFを検出できないと言いたかったの。
409:デフォルトの名無しさん
10/02/01 19:26:11
[1] C言語演習
[2]
int x[10]={-1,2,-3,4,-5,6,-7,8,-9,10}
int y[10]={-5,-4,-3,-2,-1,1,2,3,4,5}
が与えられている。
値x[0]*y[0]+2*x[1]*y[1]+3*x[2]*y[2]+4*x[3]*y[3]+5*x[4]*y[4]+6*x[5]*y[5]
が最大/最小になるようにx,yの各要素を並べ替えたものを出力するプログラム
[3] Windows XP/Borland C++ 5.0/C言語
[4] 2/18迄
[5] 特に無し
410:デフォルトの名無しさん
10/02/01 20:27:14
>>408
拙作のgetline() のほうでしたら、fgets() が NULL を返すのをみて、一行入力の終わりがきたことを検知できます。特に問題はありません。
411:デフォルトの名無しさん
10/02/01 20:36:37
>>410
EOF入力してみた?
412:デフォルトの名無しさん
10/02/01 20:37:07
>>409
6以降はどうすんの?
413:410
10/02/01 20:41:12
>>411
わざわざ Ctrl-Dを入力しなくとも、一行の終わりは検知できていますが、何か?
414:409
10/02/01 20:43:57
すみません。誤りがありましたので訂正させて下さい。
[1] C言語演習
[2]
int x[10]={-1,2,-3,4,-5,6,-7,8,-9,10}
int y[10]={-5,-4,-3,-2,-1,1,2,3,4,5}
が与えられている。
値x[0]*y[0] - 2*x[1]*y[1]+3*x[2]*y[2]- 4*x[3]*y[3]+5*x[4]*y[4]-6*x[5]*y[5]
+7*x[6]*y[6]-8*x[7}*y[7]+9*x[8]}*y[8]-10*x[9]*x[9]
が最大/最小になるようにx,yの各要素を並べ替えたものを出力するプログラム
最大/最小になる時のx[],y[]とその値を出力すること
[3] Windows XP/Borland C++ 5.0/C言語
[4] 2/18迄
[5] 特に無し
415:デフォルトの名無しさん
10/02/01 20:51:49
>>413
入力してみ。
416:デフォルトの名無しさん
10/02/01 21:05:14
>>415
特になにもおこりません。というか fgets() で一行入力できているのですが。
どんな振る舞いが発生して、どうおかしいのか教えていただけないでしょうか?
417:デフォルトの名無しさん
10/02/01 21:21:57
>>416
> >
cannot found
がずっとでたけど。
EOFになったら綺麗に終了したほうがいいよ。
418:デフォルトの名無しさん
10/02/01 21:34:01
[1] C言語プログラミング演習(大学専門課程選択教科期末課題)
[2]URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]
[3-1] Windows Vista
[3-2] Visual C++ 2005
[3-3] C/C++どちらでも可(なるべくC言語)
[4] 2/11迄
[5]SQLがイマイチ理解できないので、指針だけでも
よろしくお願いします
419:デフォルトの名無しさん
10/02/01 21:36:53
>>417
なるほど、bash でも Ctrl-D できれいに終了しますね。
これは改良の余地がありました。アドバイスありがとうございます。
コード中のgetline() (とmain())を書き直しました。
URLリンク(codepad.org)
420:デフォルトの名無しさん
10/02/02 00:56:53
[1] 授業単元:プログラミング実践
[2] 問題文
アフィン変換のプログラムを作成し、下の図の真ん中を座標の中心にして90°回転した結果を出力せよ。
(図)affin.txt
00000
00000
11111
00000
00000
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名: gcc
[3.3] 言語:C++
[4] 期限:2010年2月4日まで
[5] その他の制限:特にありません
色々試しましたが、うまくいきませんでした。
よろしくお願いします。
421:409
10/02/02 00:59:25
すみません。
>>414の問題なんですがこちらの写し間違いみたいですので
結構です。取り敢えず今回はお願いを取り消させてください。
もういちど確かめてお願いするかもしれません。
422:418
10/02/02 14:40:57
>>418
の宿題のほう一部SQLが間違ったようですので
修正しました。まだ間違いがあるかもしれませんが。
注意事項も入れ忘れてましたので、いれました.
改めて依頼させて頂きます。
[1] C言語プログラミング演習(大学専門課程選択教科期末課題)
[2]URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]
[3-1] Windows Vista
[3-2] Visual C++ 2005
[3-3] C/C++どちらでも可(なるべくC言語)
[4] 2/11迄
[5]SQLがイマイチ理解できてないので、指針だけでも
よろしくお願いします
423:デフォルトの名無しさん
10/02/02 15:56:42
[1] 授業単元:DirectX研究
[2] 問題文(含コード&リンク):
サイコロを転がして目を決める。
・テーブルとサイコロを作成する。
・キー操作でサイコロを投げ下ろすように振る。
・落下してきて,1つの目を上にして止まる。
・何度でも遊べる
◎テーブルにサイコロの影がある
◎回転しながら落下してくる
◎自由な方向から見ることができる
◎テーブルの上でサイコロは跳ね,転がる。
◎サイコロとして正しい
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2008
[3.3] 言語:C++
[4] 期限: 2月10日まで
[5] よろしくお願いいたします。
424:デフォルトの名無しさん
10/02/02 16:51:53
>>420
どのように試したの?
>>421
素朴だが10!x10!の組み合わせ最適化問題
この手には一般論は無いだろから、奇麗なCプロ
グラム一つに纏めるという発想が頭にあると困難かと.
(いろいろ「補助手段」を開発しているうちに
別の手段で偶然、解けてしまって目的自体が大
きく喪失してしまう危険性がこの手の問題に
はつきまとう)
てか宿題としてC言語限定というのは不適当
>>422
SQLをわかる奴は少ないとオモ
425:デフォルトの名無しさん
10/02/02 16:59:09
SQL文はわかるが、プログラムに組み込めといわれると・・・
426:デフォルトの名無しさん
10/02/02 17:06:40
>>422
RDBMSには何を使うの?
コネクションを張ってSQL文を投げるのには何のライブラリ使うの?自作するの?
427:デフォルトの名無しさん
10/02/02 17:09:14
SQL文を組み込むんじゃなくて、SQLで書かれた
抽象的な処理仕様に基づいて実装しろってことじゃ?
SQL鯖とかが出てなかった昔は結構この手の奴あった
常識的にこの手の奴ではテーブル配列自体は勝手に
ソート出来なかったり項目を拡張してはならなかったり
とか色々とウルサイし、処理速度向上の為に細かい
最適化が要求されてメンドイんで俺はパス
428:デフォルトの名無しさん
10/02/02 17:15:17
>>427
そういう意味か。それは面倒だ。
429:デフォルトの名無しさん
10/02/02 17:21:16
>>427
問題文の URLリンク(kansai2channeler.hp.infoseek.co.jp)
前半: 固定項で項目の拡張無しの配列
後半:
解釈1) 題中のSQL文を与えたとして得られるであろう結果 と 同じ結果が得られるような関数を実装せよ
(→ 関数実装時 SQL構文を解釈する必要は全く無い。 同じ結果を求めるコードを直接記述してね)
解釈2) 題中のSQL文を渡して結果が得られるような 関数を実装せよ
(→ 関数実装時 SQL構文を解釈する必要が出てくる) ((題中に出てこない SQL文に関してはスルーの方向で))
こう読み取れるっぽいけど… …俺 SQL文わからんのでパス
430:デフォルトの名無しさん
10/02/02 17:40:19
>>429
どこの大学か知らんが、宿題として汎用SQLパーサーを
作れって奴出す教師も、それを真に受ける奴もちょっと
って感じ。
てか市販のRDBMSのSQLパーサーの性能は相当に
高くなってきてるけど、ちょっと大きなデータ+複雑なSQLに
なると手動で作ったCPG+CSVデータにパフォーマンスで
大敗することも多い。
酷いSQLだったり酷い構造のテーブルが多いってことも
多いけど
431:デフォルトの名無しさん
10/02/02 17:57:49
>>429
とても動きそうにないコードだけど、これは 解釈1)の方だね。
スレリンク(tech板:569番)
432:429
10/02/02 18:09:32
>>430
俺はそこらへんの事情を全く知らないんで勘弁して。
問題文の意図が分からなかったんで >>429 と…
433:デフォルトの名無しさん
10/02/02 19:50:16
あんだけgroup byがネストしてたらやる気失う。
434:429
10/02/03 00:28:45
>>431
とりあえずありがとうございます。
がprologではなくあくまでもCの宿題なので、
参考のみにさせて頂きます。
ちなみにそのスレに私は書き込んでいません。
もし誰かが転記したのをやって頂いてここに貼りなおして
下さったというのであれば結果的に相当無駄なお手数を
おかけしたことになります。
構造体をほぼSQLのまま定義しその構造体の配列にデータ
が詰め込まれた状態でlist関数が呼び出されるという前提で、
SQLが記述しているセレクト処理で得られるレコードを
そのままコンソール出力すれば良いと
同輩が言ってたのですがやっぱり皆様が御指摘の
通りめんどうなコードになるんでしょうか?
(ちなみにSQL自体が何をする処理なのか
今ひとつつかめてません。おわかりの方が
いらしゃいましたら教えて頂けると嬉しいです)
DB板というのがあるそうでそちらのほうでも
聞いてみます。
435:デフォルトの名無しさん
10/02/03 00:29:10
どなたか317を作ってもらえませんか?
私の力では手におえません。。。
436:418
10/02/03 00:30:16
レス番号のほう間違えました。
>>418=>>422=>>434でした。
437:デフォルトの名無しさん
10/02/03 00:42:08
配列 int out[3]={1,5,3};
の配列の各要素の大小関係を比べるプログラムをfor文で作りたんですけど
どうすればいいですか?
438:デフォルトの名無しさん
10/02/03 00:42:52
質問は「俺に聞け」スレで
439:デフォルトの名無しさん
10/02/03 00:49:00
>>434
>>431じゃないけどSQLは多少わかる
「テーブルSEISEKIHYOUから、
より人数が多いクラスの5科目平均点
以上の5科目成績の生徒で、より人数が
多いクラスの国語平均点の最高よりは
下の国語成績で、数学が最も成績が
高かった生徒について、その担当教師
と氏名、数学成績、国語成績を
リストする。」
440:デフォルトの名無しさん
10/02/03 00:58:45
420のものです。
ファイル読み込みまではいけたのですが、回転はさっぱりでした。
ご教授ねがいます。
441:デフォルトの名無しさん
10/02/03 01:09:31
>>440
公式を当てがうだけのつまらない問題だね
出来ないのは言語によるものじゃなくて
アフィン変換がどういうものか分かってないだけ。
442:デフォルトの名無しさん
10/02/03 01:13:22
00000
00000
11111
00000
00000
を90度
回転させると
00100
00100
00100
00100
00100
これじゃ駄目?
443:デフォルトの名無しさん
10/02/03 01:14:55
>>435
書こうと思ったけどエラー処理がめんどくさいんだよな
444:デフォルトの名無しさん
10/02/03 17:13:38
>>442
まさにその通りなんですが、それをプログラムでかくことができなかったです・・・
445:デフォルトの名無しさん
10/02/03 18:28:27
自分用のメモ
>>317
446:デフォルトの名無しさん
10/02/03 18:47:37
>>420,440,441,442,444
簡単、簡単、
URLリンク(kansai2channeler.hp.infoseek.co.jp)
447:デフォルトの名無しさん
10/02/03 19:25:39
>>420
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(www.geocities.co.jp)
448:434
10/02/03 19:33:42
DB板で相談したところすんなりとコードを
書いて頂けました。
もちろん許可をとってないのでお見せする
わけにはいかないのですが合計250行にも
なる立派なコードでした。
449:デフォルトの名無しさん
10/02/03 19:43:01
>>446
ご回答ありがとうございます。
試してみたんですが、コンパイルはうまくいきましたが何も表示されませんでした。
何か打ち込まなくては、いけないのですか?
質問ばっかですいません。。。
450:デフォルトの名無しさん
10/02/03 19:54:22
>>448
「立派なコード」を「すんなり」ですか
451:yui ◆zuLLaJzEzk
10/02/03 20:26:20
[1] 授業単元:情報処理入門
[2] 問題文(含コード&リンク):
rep1.ppmとrep2.ppmの2つの画像を加算するプログラムを作成せよ.
プログラム中で加算したデータは,コントラスト強調を行った上で
PPM画像ファイル(h12r.ppm)として保存するようにすること.
Cのソースファイルh12r.cおよび実行することにより作成
される画像ファイルを提出すること.rep1.ppmとrep2.ppmの
サイズはいずれも横124×縦124画素である.h12r.ppmのサイズも同じとする.
rep1.ppm
URLリンク(kansai2channeler.hp.infoseek.co.jp)
rep2.ppm
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: (Windows/Linux/等々)
Linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc 3.4
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
Cでおねがいします。
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
提出期限2010年2月8日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
特にありません。
前回は皆さんに本当にお世話になりました。あらためてお礼を言いたいです。本当にありがとうございました。
今回が最終レポートになるのですがどうか助けていただけないでしょうか?
よろしくお願い致します。
452:デフォルトの名無しさん
10/02/03 21:15:14
>>451
#include <stdio.h>
#define W 124
#define H 124
int main(){
double d,cl = -10.0;
unsigned char data1[H*W*3],data2[H*W*3],data3[H*W*3];
char buff[128];
FILE *fin1,*fin2,*fout;
int i;
if((fin1=fopen("rep1.ppm","rb"))==NULL)goto EXIT;
if((fin2=fopen("rep2.ppm","rb"))==NULL)goto EXIT;
if((fout=fopen("h12r.ppm","wb"))==NULL)goto EXIT;
for(i=0;i<3;i++)fgets(buff,128,fin1);
for(i=0;i<3;i++)fgets(buff,126,fin2);
fread(data1,1,sizeof(data1),fin1);
fread(data2,1,sizeof(data2),fin2);
for(i=0;i<H*W*3;i++){
d=data1[i]+data2[i];
d=d+cl*(d-127.5);
if(d>255)data3[i]=255;
else if(d<0)data3[i]=0;
else data3[i]=(unsigned char)d;
}
fprintf(fout,"P6\n124 124\n255\n");
fwrite(data3,1,H*W*3,fout);
EXIT:
if(fin1)fclose(fin1);
if(fin2)fclose(fin2);
if(fout)fclose(fout);
return 0;
}
453:デフォルトの名無しさん
10/02/03 21:25:30
>>447
ひえーこの場合はこれで正解なのか
偶然だな
454:デフォルトの名無しさん
10/02/03 22:51:55
>>447
ご回答ありがとうございます。
その処理を
00000
00000
11111
00000
00000
でしたいんですが、どうしたらいいですか?
455:デフォルトの名無しさん
10/02/03 23:31:12
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):課題2−2と2−3です。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: C
[4] 期限: [2010年02月07日23:59まで]
[5] その他の制限:
よろしくお願いします。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
456:デフォルトの名無しさん
10/02/03 23:59:33
[1] 授業単元: データ演習
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: C言語
[4] 期限: [2010年02月08日20:00まで]
[5] その他の制限:
努力はするも此方も断念 何方か宜しくお願い致す。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
457:447
10/02/04 01:19:54
>>454
// 入力
for(i=0; i<MAX; ++i)
for(j=0; j<MAX; ++j)
a[i][j] = (i==MAX/2)?1:0;
458:デフォルトの名無しさん
10/02/04 01:28:05
>>457
ありがとうございます。
ちゃんと表示されました。
459:デフォルトの名無しさん
10/02/04 01:35:10
[1] 授業単元:プログラミング実践
[2] 問題文
アフィン変換のプログラムを作成し、下の図の真ん中を座標の中心にして60°回転した結果を出力せよ。
(図)affin.txt
000000000
000010000
000010000
000010000
011111110
000010000
000010000
000010000
000000000
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名: gcc
[3.3] 言語:C++
[4] 期限:2010年2月5日まで
[5] その他の制限:特にありません
420のものです。
度々申し訳ありませんが、よろしくお願いします。
460:デフォルトの名無しさん
10/02/04 02:03:01
>>459
・問題文は、出題されたまま全文を書いてください。
もしそのまま出題されているとするなら糞問題です
添削スレで晒しちゃいましょう
461:デフォルトの名無しさん
10/02/04 02:29:39
良問自作テキスト:熱心な先生だ
悪問自作テキスト:着服しただろこいつ
462:447
10/02/04 02:45:18
URLリンク(kansai2channeler.hp.infoseek.co.jp)
数学なら左回転でいいのでした。
463:デフォルトの名無しさん
10/02/04 03:51:41
>459
アンチエイリアシング
464:デフォルトの名無しさん
10/02/04 05:56:57
>>460
なぜ糞問題と思ったのでしょうか、そこをひとつ。
465:デフォルトの名無しさん
10/02/04 07:29:06
[2] CIP法での1次元の移流計算
[3] 環境
[3.1] OS:Vista
[3.2] コンパイラ名:Microsoft Visual Studio 2008
[3.3] 言語:C++
自分で以下のプログラムを作ったところ。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
tの値を増やすにつれてf[n][t]のnの初期のほうの値がなぜかでかい数字が出てしまいます。
自分の計算ではtの値を増やせば、f[n][t]のnの初期のほうの値は0になると思うんですが、一体どこが悪いのか、ご教授をお願いいたします。
466:デフォルトの名無しさん
10/02/04 08:26:07
>>459
これでいいのかな?
URLリンク(kansai2channeler.hp.infoseek.co.jp)
467:デフォルトの名無しさん
10/02/04 08:40:53
>>466
オレなら
if(x>=-4 && x<=4 && y>=-4 && y<=4)
mat2[i][j] = mat1[4 + x][4 + y];
こうするな
はみ出たらカット
468:447
10/02/04 12:23:47
>>462 間違い sqrt(3)/2 だった。
x = i - MAX/2;
y = j - MAX/2;
m = x/2.0 - y*SQRT3/2;
n = x*SQRT3/2 + y/2.0;
x = m + MAX/2;
y = n + MAX/2;
if(x<0 || x>=MAX) continue;
if(y<0 || y>=MAX) continue;
// 左回転
if(b[x][y]==0)
b[x][y] = a[i][j];
469:デフォルトの名無しさん
10/02/04 20:21:37
>>462
>>466
ありがとうございました。
手つかずだったので、ほんと助かりました。。
470:466
10/02/05 16:32:53
要素の計算方法が逆だったのかな?と今考えてるけど。
変換先位置から変換元の要素を求めたんだけど、
画像の変換の問題じゃないんだから、逆の方が良かったかな?
471:デフォルトの名無しさん
10/02/05 19:17:12
>>470
90度回転なら、どちらの方法でも、隙間ができない。
60度回転では、・・・
ってことがポイントになる問題だったのでは?
画像かどうかは関係ないでしょ。
472:デフォルトの名無しさん
10/02/06 15:42:11
>>455
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
どうぞ。
473:デフォルトの名無しさん
10/02/06 16:15:20
どなたか406お願い出来ないでしょうか?
474:っっ
10/02/06 16:26:33
このプログラミングの前まではうまくいっているのですが、この部分がうまくいきません。助けてくださいm(_ _)m
printf("A/Sの式\n");
for(j=1;j<=12;j++){
a[i][j]/s[j];
printf("%3.1f\n",a[i][j]);
}
475:っっ
10/02/06 16:32:18
_. - ._ _
/. -−- \ l `i __
// ヽ } ´ ̄ ´ '´ う
|{ /\ ____ j /
( ヽ '.l. ___/ ヽ´ ー-=ニ.¨`7 r '
r─’ `ヽ .ゞ ' ´ '. `丶、 /
(´_ ̄ ヽ / | \ \/
‘ー⊂. \ / , l | |、 ヽ‐-,ヽ
 ̄ ̄\ \. / / ! ∧ ||ヽ__| ∨ `
\ \ / / | / ' ||'´ヽ l l. ', オワタ
\ \l ' | ,ィ´′ ∨ ハ. | Nヽ. |、 i
\ \l. | /|/ / / ', |、ヽ!
\ ヽ、. | i ∨ 三三 ハ. ! \
\. /\ | | xィ彡 ・{ l. ∧ /
/\ / }'ヽ! "´ ,、_, l |∨ ∨
/ / / \ ‘7´ ) .ノ | l
{ / ',\ 、__,. ' ,/ | /
\ / ', ヽ----r ' ´ | | ./
| ー ´ ', ', ヽ | | /
提出期限過ぎてしまった
476:デフォルトの名無しさん
10/02/06 19:00:28
>474
s/\//\/=/
477:デフォルトの名無しさん
10/02/06 20:55:03
>>406
478:デフォルトの名無しさん
10/02/06 20:56:51
>>474
a[i][j]/s[j];
の結果をどうしたいのですか?どこに保存するのですか?
479:デフォルトの名無しさん
10/02/06 23:49:03
>>475
小学校の国語から始めるべきです
C言語はその後で良いでしょう
480:デフォルトの名無しさん
10/02/07 01:25:57
[2] プログラム
環境
[3.1] OS:Linux
[3.2] コンパイラ名:gcc
[3.3] 言語:C++
以下の実行結果はどうなるか
#include<stdio.h>
#define N10
int main(){
int i,wa=0;
for(i=1;i<N;i++){
if((i%2) == 0) continue;
wa+=i;}
printf("%d\n",wa);
return 0;}
よろしくお願いします。
481:デフォルトの名無しさん
10/02/07 01:31:24
>>480
Nが未定義という類のエラーが出るでしょう
482:デフォルトの名無しさん
10/02/07 01:40:50
>>480
URLリンク(codepad.org)
483:デフォルトの名無しさん
10/02/07 03:45:18
[1] C言語プログラミング初歩(専門学校)
[2] int型の配列変数A[64][32]をB[32][64]に代入する.
次の対応があるようにすること
A[0][0] -> A[0][1] -> A[0][31] ->A[1][0] ->....->A[63][31]
B[0][0] -> B[0][1]-> B[0][31] -> B[0][32]->....->B[31][63]
(上の段と下の段が一致)
A[m][n]には値 (m+n) % 31が入っているものとする。
[3] Windows Vista /Visual studio 2008/C言語
[4] 2/15迄
[5] 1月開講です。ポインタはまだ習ってません
484:デフォルトの名無しさん
10/02/07 05:03:38
>>483
こんな感じ?
#include<stdio.h>
int main()
{
static int A[64][32], B[32][64];
int m,n;
for(m=0;m<64;m++)
for(n=0;n<32;n++)
A[m][n]=(m+n)%31;
for(m=0;m<32;m++)
for(n=0;n<64;n++)
B[m][n]=A[2*m+n/32][n%32];
return(0);
}
485:冷やかしです
10/02/07 05:41:31
return(0)はかっこ良すぎ(カッコ付け過ぎ)
return 0;で十分w
てか関数呼び出しと見間違えやすいので付けないほうが吉
486:温めます
10/02/07 09:35:40
int *a = &A[0][0], *b = &B[0][0];
for(m=0;m<32;m++)
for(n=0;n<64;n++)
*b++ = *a++;
487:前スレ639
10/02/07 11:46:40
宿題でなく質問させてもらいます。
スレリンク(tech板:652番)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
上のプログラムについて聞きたいのですが
このプログラムはfor文を2回まわしているので数列の長さをLとしたとき計算量は2LなのでO(L)と言えるのでしょうか?
それと、ソースの下の方にある ? はifの省略記法なのでしょうか?
初心者でよくわからなかったのでお教えください
488:デフォルトの名無しさん
10/02/07 12:08:15
>>487
O(n^2) 実際に適当な値入れて何回実行されるか考えたらいいと思う。
そういう捉え方もできなくもないが別物。
三項演算子とかでググったらいいと思う。
489:前スレ639
10/02/07 12:22:19
>>488
このプログラムを作ったくれた作者さんのレスを載せると
>数列のn[i]について毎回「n[i]の前後にn[i]よりも大きい数と小さい数があるか」を調べる場合、
>計算量は数列の長さをLとして O(L^2)かかる。
>一方、>>646のように、n[i]までの最大値と最小値を先に計算してしまうと計算量はO(L)で済む。
と書いてあり、
自分で考えてみてもl-1回計算するfor文が2個あるので2l-2なので、やはりO(L)といえる気もしますが・・・よくわかりません。
?は条件演算子ですね。分かりました。ありがとうございました。
490:デフォルトの名無しさん
10/02/07 12:23:36
>>487
>計算量は2LなのでO(L)と言えるのでしょうか?
YES。入れ子になってれば積になってO(L^2)だけど、
別々になっているので全体の計算量は多い方(今回は同じ)になる。
?は "c ? a : b" という三項演算子の一部。詳細はぐぐれば分かる。
基本的にはifとは別物だが、非常に限定された場面では代わりに使うこともできる。
491:488
10/02/07 12:30:26
最初の奴はよく見てなかった。
492:デフォルトの名無しさん
10/02/07 12:31:17
しかも、今度は途中送信スマン
493:前スレ639
10/02/07 12:38:12
それでは計算量は作者のとおりO(L)ということで正しいのですね?
ありがとうございます!勉強になりました!
494:デフォルトの名無しさん
10/02/07 13:14:34
【質問テンプレ】
[1] 授業単元:C言語入門
[2] 問題文:
キーボードから英文を1文字ずつ入力し母音の出現数をカウントする。その数だけアスタリスクを表示する。ただし、入力を終了するときはCtrl+Zを押すものとする。(vowel.c)
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2月8日
[5] その他の制限:特にありません。
よろしくお願いします。
495:デフォルトの名無しさん
10/02/07 14:55:13
>>494
URLリンク(kansai2channeler.hp.infoseek.co.jp)
こんな感じでしょうか。
496:デフォルトの名無しさん
10/02/07 15:55:53
>>495
ありがとうございます!
ですがコンパイル出来ませんでした;
制御構造の単元なのですが、While文などを使ってもう少し簡単にしていただくことはできるでしょうか?;
497:495
10/02/07 16:46:58
>>496
エラーメッセージを全部コピペしてもらえます?
498:デフォルトの名無しさん
10/02/07 17:18:05
>>497
vowel.c:
エラー E2140 vowel.c 31: ここでは宣言はできない(関数 countVowel )
エラー E2141 vowel.c 32: 宣言の構文エラー(関数 countVowel )
エラー E2139 vowel.c 70: 宣言に ; がない(関数 countVowel )
エラー E2134 vowel.c 70: 複合文に } がない(関数 countVowel )
*** 4 errors in Compile ***
です。
499:デフォルトの名無しさん
10/02/07 17:24:13
>>497
すみません。
こちら側のミスでエラではなく警告のみでした。
vowel.c:
警告 W8057 vowel.c 68: パラメータ 'argc' は一度も使用されない(関数 main )
警告 W8057 vowel.c 68: パラメータ 'argv' は一度も使用されない(関数 main )
500:デフォルトの名無しさん
10/02/07 17:35:10
>>499
int main (int argc, char* argv[])
を
int main ()
もしくは
int main(void)
に書き換えてみてください。
501:デフォルトの名無しさん
10/02/07 17:58:32
>>500
int main()に書き換えたらコンパイル出来ました!
for文苦手なので本当に助かりました。
ありがとうございました!!
502:デフォルトの名無しさん
10/02/07 18:16:02
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
入力された2つの文字列str1,str2を比較し、str1にstr2の文字列が含まれている場合に1を、含まれていない場合に-1を返す関数、strcmpを作成せよ。
int strcmp( char *str1, char *str2);
ex. str1=”abaabab” , str2=”aab” 1
ex. str1=”abaabab” , str2=”abb” -1
[3] 環境
[3.1] OS:XP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 出来れば今日中に。急ぎで申し訳ありません。
#include<stdio.h>
#include<string.h>
#define LENGTH 10
int strcmp(char *sp1,char *sp2);
int main(){
char str1[LENGTH+1];
char str2[LENGTH+1];
printf("aとbを使って10文字入力してください。\n");
scanf("%s",str1);
printf("aとbを使って2文字入力してください。\n");
scanf("%s",str2);
printf(結果)
strcmp(&str1[0],&str2[0]);
ここまで作ったのですが(中途半端ですみません)関数に行き詰まり、ネットで調べたところ本来のstrcmpの使い方とこの課題で求められているstrcmpの使い方が異なることが分かりどうすればいいのか混乱してしまいました。
この後、関数strcmpを使い、str1とstr2を比較して・・・をどうのようにすれば良いでしょうか?
503:デフォルトの名無しさん
10/02/07 19:23:30
>>502
URLリンク(kansai2channeler.hp.infoseek.co.jp)
これでいいかな。
「strcmp」という名前で関数を定義できなかたので、別名をつけています。
> ネットで調べたところ本来のstrcmpの使い方とこの課題で求められている
> strcmpの使い方が異なることが分かりどうすればいいのか混乱してしまいました。
その通り。
標準関数のstrcmpは、二つの文字列が一致しているか判定する関数。
課題の出し方が悪いと思う。
(あるいは学生をあえて混乱させようとしているのか・・・)
504:デフォルトの名無しさん
10/02/07 19:47:32
strstrだよね
505:デフォルトの名無しさん
10/02/07 20:54:35
strstrでググったら実装がすぐ見つかっちゃうからじゃないの
strcmpと被せたのは<string.h>使わせないためとか
506:デフォルトの名無しさん
10/02/07 21:00:09
それ以前に今日中という期限設定は常識を疑いたいもの
507:デフォルトの名無しさん
10/02/07 21:02:59
#include<string.h>をはずして関数名strcmpにしてなんとか形になりました。
>>503さん、本当にありがとうございました。
またこのスレにお世話になってしまうかもしれませんが宜しくお願いします。
508:デフォルトの名無しさん
10/02/07 21:20:25
1] 授業単元:プログラミング演習
[2] 問題文:次のプログラムを改造し、定積分の面積を求めるプログラムにせよ
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:無期限
URLリンク(kansai2channeler.hp.infoseek.co.jp)
お願いします
509: ◆QZaw55cn4c
10/02/07 21:49:54
>>456
ちょっと皆さんにご意見をお聞きしたいところです。
二分木で番兵(sentinel) をおく意義がわからない、どんなsentinel をおけばいいかわからないのですが、
どうすればいいのでしょうか。
sentinel をおくことで if 文が減らなければならない、と考えているのですが。
510:デフォルトの名無しさん
10/02/07 21:50:58
URLリンク(ameblo.jp)
ここで解説出てるよ
511:デフォルトの名無しさん
10/02/07 22:02:39
>>510
真に受けた俺が悪うございました。
512:デフォルトの名無しさん
10/02/07 23:32:58
>>509
[1] 授業単元:プログラミングコミュニケーション演習
[2] 問題文:>>456の正解を皆さんに”必ず”知らせてください。
[3] 環境
[3.1] OS:2ch
[3.2] コンパイラ名とバージョン:jd等
[3.3] 言語:無制限
[4] 期限:無期限
513:デフォルトの名無しさん
10/02/08 01:34:32
>>508
単純な台形則による定積分で、関数F(X)のXY座標を、X座標の小さい順に
V[][0], v[][1] に入力と解釈するなら
#include <stdio.h>
double daikei(double xa, double ya, double xb, double yb){
return(ya+yb)*(xb-xa)/2;
}
int main(void){
int n;
int i;
double V[1000][2];
double S,D;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%lf",&V[i][0]);
scanf("%lf",&V[i][1]);
}
S=0.0;
for(i=0;i<n-1;i++)
S+=daikei(V[i][0],V[i][1],V[i+1][0],V[i+1][1]);
printf("\n面積:%f\n",S);
return 0;
}
とか?
514:デフォルトの名無しさん
10/02/08 03:11:53
>>509
NODE sentinel;
NODE *root = &sentinel;
以降、全ての NULL を &sentinel に置き換える。
(malloc の戻り値チェックの NULL はそのまま)
元々 NULL が番兵の役割を果たしていたので、簡単な変更で済む。
NULL が番兵ではないと誤認識させる糞問題でした。
515:デフォルトの名無しさん
10/02/08 04:49:23
【質問テンプレ】
[1] 授業単元:C言語
[2] 問題文:
input.ppm というPPMフォーマットのファイルを読み込み, ヘッダをつけて縦横をそれぞれ 1/2(面積にして1/4) にして出力するプログラムを書きなさい.
input.ppm のサイズは 410x307 である.
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2/8
よろしくお願いします。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4948日前に更新/264 KB
担当:undef