C/C++の宿題片付けます 151代目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2011/07/20(水) 00:33:39.96【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。 >>2以降にあります。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【回答者へ】
・◆QZaw55cn4cは書き込み禁止。トリップを隠しても書き込み禁止です。
0002では質問どーぞ
2011/07/20(水) 00:34:27.37[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/joyful.cgi
http://codepad.org/ ←遅い時間は重い事があります
http://ideone.com/
http://pastebin.com/ ←たまにテンポるので上の2つが混んでいる時以外はなるべく使わないで下さい
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】 http://chomework.sakura.ne.jp/
【wiki】 http://www23.atwiki.jp/homework/
前スレ
C/C++の宿題片付けます 150代目
http://hibari.2ch.net/test/read.cgi/tech/1308749241/
0003デフォルトの名無しさん
2011/07/20(水) 01:10:43.760004デフォルトの名無しさん
2011/07/20(水) 01:27:19.52[2] 問題文(含コード&リンク):入力された特定の名前だけすべて削除する関数 void del_order(ORDER *node, char *name) を線形リストを用いて作成しなさい
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Visual Studio 2008
[3.3] 言語:C++
[4] 期限: 今週末15:00~
おねがいします
0006デフォルトの名無しさん
2011/07/20(水) 07:53:32.65ローカルルールを守れ。クズ。
>>1
> 【回答者へ】
> ・◆QZaw55cn4cは書き込み禁止。トリップを隠しても書き込み禁止です。
0007デフォルトの名無しさん
2011/07/20(水) 08:39:33.76> void del_order_by_name(ORDER **node, char *name)
> ではなく、
> void del_order_by_name(ORDER *node, char *name)
> としたいんですが、アドバイスをおねがいします
http://codepad.org/vcf5pd5h オレは一応とめたからな。
前スレに貼られたhttp://codepad.org/imsXD8tDはうんこが書いたバグ入りコードだから、
落第したくないなら使わない方が良い。
0008デフォルトの名無しさん
2011/07/20(水) 09:26:52.31> floatだけじゃなくて、doubleも使ったことが無いんだろ。ww
技術計算を整数値だけで行う事が可能なら凄い技術だと思うよw
0009デフォルトの名無しさん
2011/07/20(水) 09:38:21.650010デフォルトの名無しさん
2011/07/20(水) 09:49:34.33円の面積求めて
技術計算10年やってる 霧
って言ってるんだね。そりゃすげー。ww
0011デフォルトの名無しさん
2011/07/20(水) 10:48:46.48出来れば以下のソースを基に関数を作って簡略化したソースを作っていただけませんか?
宜しくお願いします。
http://codepad.org/qblj0aNR
0012デフォルトの名無しさん
2011/07/20(水) 11:18:20.33http://ideone.com/Ki9Ag
極力いじらずに、酷いコピペで処理してるswitchのとこだけ関数化しておいた
0013デフォルトの名無しさん
2011/07/20(水) 12:07:09.72涙拭けよ。顔真っ赤だぞw
0014デフォルトの名無しさん
2011/07/20(水) 12:17:51.60floatを一度も使ったことが無い技術計算PG www
これを恥ずかしげもなく告白できる事が低レベルの証明。あー、哀れ。
0015デフォルトの名無しさん
2011/07/20(水) 12:21:24.17http://ideone.com/Ki9Ag
を基に2以上10以下の項の四則演算の出来るプログラムを教えていただけますか?
ずうずうしくて本当に申し訳ありません。
0016デフォルトの名無しさん
2011/07/20(水) 15:05:14.34技術計算で float を使わない理由は算術関数のインターフェイスが double であるって事が大きいんだ
一部の処理系では tanf() の様な float系関数も用意されているけど、可搬性を考えると使うべきではない
もし、float を使うなら以下の二つの理由が考えられるだろう
・ファーム等で算術関数が float 系しか用意されていない環境での開発
そんな環境には double は存在しないかも知れないけどね
・メモリ消費を意識しなければならないくらい膨大なデータを扱う処理または貧弱な環境
私はEWSやPC上での開発経験しかないし、膨大なデータを扱うような業務(地球シミュレータとか?)の
開発に携わった事がないから float を使った事はない
君がもし float を使った開発経験を持つなら、どういう業務か教えて欲しい
001716
2011/07/20(水) 15:10:20.16float a, b;
a = (float)tan( (double)b );
と書くと『有効精度が失われます』みたいな warning が出るから
warning が出るだけなら問題は無いんだけど、大量に出る問題が無い warning の中に
問題がある warning (整数の型によるオーバーフロー等)が埋もれるのが怖いんだよね
0018デフォルトの名無しさん
2011/07/20(水) 15:49:53.24http://codepad.org/JJE3ZWnw
[3] 環境 OS:Windows gcc
[4] 期限:7月21日
[5] その他の制限: 特になし
0019デフォルトの名無しさん
2011/07/20(水) 15:52:14.36リスト構造体のやり方がまるで分からないので説明してくださると嬉しいです
0020デフォルトの名無しさん
2011/07/20(水) 16:22:50.16演算子は(+,-,*,/)だけとする。
例:式を入力してください
式:1+1*8/4*8+6/3*2+1 enterkey
答え:22
出来ればhttp://ideone.com/Ki9Ag を基に作成して頂けますか?
上記のソースは3項だけしか出来ません。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2011年07月21日09:00まで
[5] その他の制限: 処理は基本的にif、else if,else文、switch文、for文を使って頂けますか?
あと、文字入力はscanfでお願いします。宜しくお願いします。
0021デフォルトの名無しさん
2011/07/20(水) 16:26:17.01>>20
>>11,12,15
0023デフォルトの名無しさん
2011/07/20(水) 17:05:45.61リスト構造体のnextに次のデータのポインタ突っ込め
ってお前自分で書いてるんじゃん
いきなり5-1からはじめてるけどほかになんか前提があるんじゃないのか?
0024デフォルトの名無しさん
2011/07/20(水) 17:17:52.51前提は他にありません。このまま課題がでました
0025デフォルトの名無しさん
2011/07/20(水) 17:40:37.250027デフォルトの名無しさん
2011/07/20(水) 19:15:05.43http://codepad.org/1Qg8DRVA
0028デフォルトの名無しさん
2011/07/20(水) 19:45:13.39実行結果:数え始める西暦を入力してください 1967,8,7
数え終える西暦を入力してください 2009,6,12
1967,8,7から2009,6,12までの日数は15285日です
ベース
#include <stdio.h>
int uruu(int y);
int monthday(int y, int m);
int main(){
int year_a, month_a, day_a;
int year_b, month_b, day_b;
int days;
int i;
days = 0;
printf("日数計算プログラム\n");
printf("数え始める西暦年月日を入力してください\n");
scanf("%d,%d,%d",&year_a, &month_a, &day_a);
printf("終わりの西暦年月日を入力してください\n");
scanf("%d,%d,%d",&year_b, &month_b, &day_b);
ここに処理が入る
printf("%d年%d月%d日から%d年%d月%d日までの日数は%d日です。\n",year_a, month_a, day_a, year_b, month_b, day_b, days);
return 0;}
int uruu(int y){
int ret;
ここに処理が入る
return ret;
}
int monthday(int y, int m){
int d;
ここに処理が入る
return d;
}
0029デフォルトの名無しさん
2011/07/20(水) 20:51:49.79http://codepad.org/ENQhWHkB
[3] 環境 OS:Windows
gcc
C言語
[4] 期限:7月21日
[5] その他の制限: 特になし
訂正させていただきました。それぞれの問題で/***プログラムをここに書くとする***/
の部分に複数行いれて問題に合ったプログラムにします。
リンク先のプログラムは25〜39行目で図の通りに動くと仮定してます。
0030デフォルトの名無しさん
2011/07/20(水) 20:51:52.420031デフォルトの名無しさん
2011/07/20(水) 21:07:13.64批判するだけしてプログラム作らないとかウ●コと同じだぞ
0032デフォルトの名無しさん
2011/07/20(水) 21:07:59.240033デフォルトの名無しさん
2011/07/20(水) 21:26:05.49ローカルルールを守れ。クズ。
>>1
> 【回答者へ】
> ・◆QZaw55cn4cは書き込み禁止。トリップを隠しても書き込み禁止です。
>>31
>>7に質問者の要望通りのインターフェースで、正しく動くの張っただろ。
http://codepad.org/vcf5pd5h
0034デフォルトの名無しさん
2011/07/20(水) 21:56:33.01C99ではfloat, double, long doubleな関数が三つ組で用意されてるけど、そうかC99は可搬性ないのか。
使うべきじゃないのか。
それじゃ、使うべきは、C90とかですか(float関数が無い事は知らないけど)? 20年以上前の規格ですな。
いやー、さすが数値計算歴10年のベテラン。www
>>17
> a = (float)tan( (double)b );
うわー、ヘボPGが得意なキャストfloodingにそっくりなのは気のせいでしょうか?
まさかね、数値計算歴10年のベテランがキャストfloodingなんか… まさかね。
0035デフォルトの名無しさん
2011/07/20(水) 22:11:41.450036""
2011/07/20(水) 22:28:07.66[2] 問題文(含コード&リンク):
#include <stdio.h>
/* 配列arrayの要素数 */
#define ELENUM(array) (sizeof(array) / sizeof((array)[0]))
#define SIZE_DATA (10) /* データ数 */
struct Address_data{
char name[81];
char phone[20];
int age;
};
0037""
2011/07/20(水) 22:28:28.04{
struct Address_data data[SIZE_DATA], *p = data;
printf("Input end = Ctrl + D\n");
/* 配列初期化(入力プロンプトより前に置くべき?) */
for (p = data; p - data < ELENUM(data); p++) {
p->age = -1;
}
/* 入力処理 */
for (p = data; p - data < ELENUM(data); p++) {
printf("[%d]name phone age = ", p - data);
if (scanf("%s %s %d", p->name, p->phone, &p->age) != 3) {
break;
}
}
putchar('\n');
/* 表示 */
for (p = data; p->age >= 0; p++) {
printf("%s\t(%d)\t[%s]\n", p->name, p->age, p->phone);
}
return 0;
}
表示を行う際に、年齢順に表示するようにしたい。配列の並び替えを行なって表示するようにプログラムを拡張しなさい
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限:金曜日まで
0038デフォルトの名無しさん
2011/07/20(水) 22:30:55.81それ昨晩から気付いてたけど敢えて突っ込まないでおいた
0039デフォルトの名無しさん
2011/07/20(水) 22:30:58.03ほっといてやれよ、どうみても引っ込みつかなくなってるだけだろ。
0040デフォルトの名無しさん
2011/07/20(水) 22:33:51.89低レベル過ぎる。10年修行してきなさい。
0041デフォルトの名無しさん
2011/07/20(水) 22:58:12.75はい、ご指導ありがとうございました。
0042デフォルトの名無しさん
2011/07/20(水) 22:59:56.990043デフォルトの名無しさん
2011/07/20(水) 23:02:31.72> C99ではfloat, double, long doubleな関数が三つ組で用意されてるけど....
規格について始めると面倒な人が出てきそうだから触れないけど、float系が無い処理系は有るよ
規格うんぬん以前に必ず存在する double系を使うのが普通の考えだよ(先に書いた様に特殊な環境なら別)
キャストしなかったらどうやって書くの?
そもそも double 系の関数を float で処理するっていう『ヘボ』な書き方を示しただけなんだけど
5-1〜5-4
http://codepad.org/eQKEuAlc
0045デフォルトの名無しさん
2011/07/20(水) 23:14:54.96ごめんなさい、まるで分からないです。
自分では
http://codepad.org/lNU2hw2m
みたいに考えていたので,下手な書き方だとは思いますが、解説していただいてると嬉しいです
0046デフォルトの名無しさん
2011/07/20(水) 23:23:59.11http://codepad.org/7UVONvby
次は>>1のテンプレ使ってね。
期日が書いてないと誰もしないかも
0047デフォルトの名無しさん
2011/07/20(水) 23:24:01.19どこの学校?
0048デフォルトの名無しさん
2011/07/20(水) 23:24:31.32o戻り値の型
0049デフォルトの名無しさん
2011/07/20(水) 23:32:15.57先生と学校はいえませんが、大学1年生です。最初はint main~return 0 をつかったり
戻り値をつかったりしてたのですが、リスト構造体の項目に入ってからは一切使わなくなりました。
ですが、課題の性質上、戻り値無しのやり方でやらないと点数はもらえなかったりします。
加えてその先生が課題と資料を出すだけ出して授業を終わる人です
0050デフォルトの名無しさん
2011/07/20(水) 23:42:23.49> 規格について始めると面倒な人が出てきそうだから触れないけど、float系が無い処理系は有るよ
具体的にどれだよ。w
> 規格うんぬん以前に必ず存在する double系を使うのが普通の考えだよ(先に書いた様に特殊な環境なら別)
それはお前が経験した狭い世界の「普通の考え」。
> キャストしなかったらどうやって書くの?
普通はfloat使うから
a = tanf(b);
どうしてもdoubleな関数使う場合でも
a = tan(b);
キャストは不要。
0051デフォルトの名無しさん
2011/07/20(水) 23:42:28.88[2] 問題文(含コード&リンク):片方向リストの最後に要素を追加するプログラムをさくせいしなさい。
ただし連結リストの最後の要素をさすポインタを持っている時と持ってないときについて作成すること。
[3] 環境
[3.1] OS: linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 明日まで
[5] その他の制限:http://codepad.org/EhgsNjq1
一応つくってみたですが、問題自体の意味がイマイチわかりません。
これはどちらのプログラムになるのでしょうか。
また、このプログラムの計算量と実行効率について比較するにはどのようにすればいいか教えていただければありがたいです。
よろしくお願いします。
0052デフォルトの名無しさん
2011/07/21(木) 00:00:05.84前者の 最後の要素をさすポインタを持っている時 に該当
後者は head のみを保持した前提で末尾追加を記述するのを期待してるっぽい
リスト追加の際、毎回末尾を探す
p=head p->next が NULL になるまで p を送っていく
ってことをやって見つけた末尾 p から追加分を連結すると
0053デフォルトの名無しさん
2011/07/21(木) 00:01:04.75> 具体的にどれだよ
手元に有った bcc++ Ver.5.5 (私の回答専用コンパイラ)には無いみたいだよ
0054デフォルトの名無しさん
2011/07/21(木) 00:03:50.73それより君が float を使わざる得なかったプロジェクトについて教えてはくれないか?
資源が乏しかった大昔なら『敢えて double を使う理由』をレビューで説明する必要が有ったと思うんだけど、
メモリもディスクも大容量の現在では『敢えて float を使い理由』を説明する必要が有ると思うんだ
http://hibari.2ch.net/test/read.cgi/tech/1308749241/478 ttp://codepad.org/qL7fTlqB
http://hibari.2ch.net/test/read.cgi/tech/1308749241/499 http://codepad.org/JrlFCyW2
>>50
>キャストは不要。
>>17
>『有効精度が失われます』みたいな warning が出るから
>warning が出るだけなら問題は無いんだけど、大量に出る問題が無い warning の中に
>問題がある warning (整数の型によるオーバーフロー等)が埋もれるのが怖いんだよね
float でインプリメントする環境があることは知っていますが(cuda, ati stream はさわってみたいなあ)、
http://hibari.2ch.net/test/read.cgi/tech/1308749241/906 で float を使う理由がない、というか
http://hibari.2ch.net/test/read.cgi/tech/1308749241/957
>floatを使うのは癖だ。
馬鹿としかいいようがない。
0056デフォルトの名無しさん
2011/07/21(木) 00:13:58.24割と愚直なコードにしてみた。
ttp://codepad.org/rvgcNi3K
>>44
宿題スレでもありますし、少し丁寧にコメントをいれたほうが
良いと思います。一行の箇条書きで構わないので、
関数のヘッダコメント位はあった方がありがたいです。
005756
2011/07/21(木) 00:22:26.62>課題の性質上、戻り値無しのやり方でやらないと点数はもらえなかったりします。
戻り値の型を省略したら暗黙にintになるけど、褒められたコーディングスタイルとは思えない。
課題に関しては無関係な部分と思うけど。int mainにしたら点数もらえないっていうのなら、焦点がぼやけている。
>>56は割と愚直なコードです。
もし説明が欲しいなら、その点を具体的に言ってください。
一応先に説明しておくと、
リストのノード連結操作が主題になっていると思いましたので、
ノードは静的に確保しています。
「静的に確保」っていうのは、mallocを使わないで,
staticでノードを宣言している事です。
0058デフォルトの名無しさん
2011/07/21(木) 00:23:37.66お前の臭いコメントなんていらねーよ
ばっかじゃないの
0059デフォルトの名無しさん
2011/07/21(木) 00:27:34.35俺もそう思います
>>44は馬鹿過ぎると思います
自分のテクに酔っていてこんなの提出したらまず質問攻めに遭って
答えられなくて単位を落とす事になりかねません
0060デフォルトの名無しさん
2011/07/21(木) 00:31:23.18うわぁ、教授「こいつら回答一緒だな・・・」フラグ・・・
まぁありがとうございます...
0061デフォルトの名無しさん
2011/07/21(木) 00:33:07.48うぜー
善意でやってるつもりかよ
0062デフォルトの名無しさん
2011/07/21(木) 00:36:28.780063デフォルトの名無しさん
2011/07/21(木) 00:44:11.97これはQ本人か、はたまたQ化して人生終わっちゃった奴か・・・
0064デフォルトの名無しさん
2011/07/21(木) 00:48:17.11また宣伝してるつもりかクズ
0065デフォルトの名無しさん
2011/07/21(木) 05:38:42.96[2] 問題文(含コード&リンク):
世代数 平均適応度 最大適応度というフォーマットで、ooo.dat というファイル名で保存すれば、gnuplot で
plot ”ooo.dat”using 1:2 w l, ”result.dat”using 1:3 w l
とすることで、グラフが得られる。
グラフの例とプログラムと問題文は以下のURLです。
http://ux.getuploader.com/qwertykey/
パスはqqq3538です。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限:[2011年7月22日まで]
[5] その他の制限: プログラムに詳しく書かれているので遺伝アルゴリズムに知識がなくてもできると思います。
前板で回答がなかったのでもう一度投稿しました。
よろしくお願いします。
0066デフォルトの名無しさん
2011/07/21(木) 10:28:51.85お前がdoubleを使うべきとしている根拠は「float系のライブラリが無い」の一点だけなんだから、先に
> float系が無い処理系は有るよ
これを明示しろよ。お前が>>53で10年間やってる技術計算が2ch宿題スレでの回答者というのなら説明不要だが。
0067デフォルトの名無しさん
2011/07/21(木) 12:22:19.48http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.4.4.html
0068デフォルトの名無しさん
2011/07/21(木) 13:42:28.26> float系が無い処理系は有るよ
これを問うてるんだが。池沼?
0070デフォルトの名無しさん
2011/07/21(木) 14:22:46.87[2] 問題文(含コード&リンク):
1〜N(N >= 1)までの、1ずつ増加する等差数列が与えられる、この時のNの階乗通り存在する組み合わせをすべて表示せよ
例)
Nの値: 3
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
※なお、例のような表示順序で無くても良い、すべて表示されているならその表示順序は問わない。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 今週末 2011年7月22日 13:00 まで
[5] その他の制限: 再帰かループどちらかの方法で解くこと
0071デフォルトの名無しさん
2011/07/21(木) 14:25:22.50ところで、自虐ネタ? w
> 第4章 キャストが好き
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.4.2.html
> リスト4个ア1に元のプログラム(に近いもの)を示します。とにかく「キャスト」が異常に多い のが目立ちますね。
0072デフォルトの名無しさん
2011/07/21(木) 15:45:37.55意味がよく判らないな
少なくとも『手元に有った bcc には float 系は無いよ』っていうのを読んだでしょ、示した事にならないのかな?
私が使ってきた処理系は主に Solaris 系だけど業務で float 系なんて使った事が無いから、
そこにそれが存在したか否かは知らないよ
0073デフォルトの名無しさん
2011/07/21(木) 16:01:07.54上記のプログラムを実行すると8/3*3=6となります。
このソースを正常に8/3*3=8となるようにif文で前の演算子に'÷'次の演算子に'*'が来た時に
乗算を優先的に行うようにプログラムを付け加えていただけますか?
あえてint型で型を宣言していますので、そこは変更しないで下さい。
宜しくお願いします。
0074デフォルトの名無しさん
2011/07/21(木) 16:04:44.87> 少なくとも『手元に有った bcc には float 系は無いよ』っていうのを読んだでしょ、示した事にならないのかな?
おまえは、10年間やっている技術計算での仕事でfloatを使わない理由として、
floatな関数は可搬性が悪いという事をあげたんだろ。
そして、その処理系を問うと2chの宿題スレ専用のbcc32だと答える。
おまえの「技術計算経験10年」とは2chの宿題スレで回答の事か? ww
> 私が使ってきた処理系は主に Solaris 系だけど業務で float 系なんて使った事が無いから、
Solarisの純正コンパイラにはある。
0075デフォルトの名無しさん
2011/07/21(木) 16:08:32.08int型で8/3*3を計算したら6になるのが「正常」でしょうよ。
0076デフォルトの名無しさん
2011/07/21(木) 16:13:55.528*3/3に並べ替えして計算したいってことだろ
テンプレ無視だし俺はやらんけど
0077デフォルトの名無しさん
2011/07/21(木) 16:16:02.66[2] 問題文:http://codepad.org/kRpsBNJPを参考にして
累計
50 49 48 47 46 240
45 44 43 42 41 455
(長すぎて書き込めないため中略)
累計 275 540 795 1040 1275
↑(1から50までの整数を5つずつ50から表示して行きます。)
�@上のように横と縦の累計を計算して表示するプログラムを作成せよ。
ただし配列は使ってはならない。。
�A次に一次元配列を用いて上図のように縦と横の類計を計算して
表すプログラムを作成せよ。
�B次に縦と横の累計の計算をする部分を関数を使って
表すプログラムを作成せよ。
[3] [3.1] OS:windows7[3.2] visualstdio[3.3] 言語: C言語
[4] 2011年7月23日の11時59分まで
問題が多くて申し訳ありません。どうかよろしくお願いいたします。
0078デフォルトの名無しさん
2011/07/21(木) 16:46:42.37まず、bcc が業務では使えないコンパイラであるという認識をしているので有ればそれは失礼だろう
あくまで私の手元に有る float 系を持たないコンパイラとして例示したに過ぎないから
現在の Solaris には有ってもおかしくない、C99の規格に float 系が定義されているなら当然だろう
しかし、BSD4.3あたりでは?
これは私が最初に Sun の業務を行った頃のOSだが今となっては確認するのは困難だろう
私は可搬性に関して触れたが float 系が無い処理系を業務で扱ったと断言した覚えは無い
だって float を使わないんだから、そんな事はどうでも良い話だ
float 系が無い処理系で業務を行う可能性が有るか否かは可搬性を考慮する際には関係ないんだよ
絶対に存在する double 系で構築すればどんな環境にでも対応できる(先に書いた様に例外は有るかもしれないが)
敢えて float を使うメリットが何も無いのだから double で統一すべきと教育されたし、それを遵守してきた
君にどんな業務で float を使ったかを問うたのは float を使うメリット、又は double を使えない制約に
どんなモノが有るのか知りたかったからだ
どうやら君は脳内プログラマらしいからこれ以上の追及は無意味だろう
0079デフォルトの名無しさん
2011/07/21(木) 16:55:12.350080デフォルトの名無しさん
2011/07/21(木) 17:07:19.64[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク): http://codepad.org/n47BkpXa
上記のプログラムを実行すると8/3*3=6となります。
このソースを正常に8/3*3=8となるようにif文で前の演算子に'÷'次の演算子に'*'が来た時に
乗算を優先的に行うようにプログラムを付け加えていただけますか?
あえてint型で型を宣言していますので、そこは変更しないで下さい。
宜しくお願いします。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: [2011年07月22日09:00まで]
[5] その他の制限: 変数は変えない。関数は出来れば増やさない。
0081デフォルトの名無しさん
2011/07/21(木) 17:09:53.80> 敢えて float を使うメリットが何も無いのだから double で統一すべきと教育されたし、それを遵守してきた
つまり、盲目的に押し付けられた作法を守ってきただけだね。その作法の根拠が藤原本?
藤原本は藤原自身が書いているように
> プログラミング言語の本は、コンピュータ関連の本の中では寿命の長い方 ですが、
> それでも出版されてから5年程度が寿命です。いつ出版された本かは 必ず確認して買いましょう。
http://www.pro.or.jp/~fuji/mybooks/cdiag/appendix.b.html
> float を使うメリット
省メモリ、高速
省メモリは言うまでもない。
高速であることのデータは(業務上の)出せないけど、公開されてるデータ(Fortranの倍精度、単精度比較)
http://www.softek.co.jp/SPG/Pgi/TIPS/public/general/multicore-para.html
doubleが速いは時代遅れ。
0082デフォルトの名無しさん
2011/07/21(木) 17:53:17.49大昔に DreamCast を弄った経験が有るんだけど、普通の算術関数が float 系だった様な気もする
先に述べた通り、特殊な環境ならありえるだろうね
>>81
藤原本が何かは知らない
最初にこの教育を受けたのは大学の研究室
float が速いってのは一般的に認知されてるの?環境依存ならありそうだけど
省メモリに関しては前から言っている様に現在ではメリットとならないよ
一度だけ省メモリの観点で float を使った事を思い出した
但し、環境が MS-DOS でしかも言語は N88-BASIC だ
大きな表計算みたいなプログラムだったんだけど、double を使うと行が稼げないから敢えて float を使った
EWSやWindows環境で省メモリなんて考慮しなければならない業務に当たった経験は無い
君は省メモリの観点で float を使うような仕事をしてるの?
0083デフォルトの名無しさん
2011/07/21(木) 18:24:15.95どんな用途でも「特殊」の一言で切り捨てられる気がする
0084デフォルトの名無しさん
2011/07/21(木) 18:24:45.82floatって今時C#の座標系位にしか使わなくないか?
doubleと比べると有効桁数が少なすぎて積み残し誤差がハンパないぞ
0085デフォルトの名無しさん
2011/07/21(木) 18:28:03.33> 先に述べた通り、特殊な環境ならありえるだろうね
SSEを特殊な環境と主張するつもりかい? floatならdoubleの倍突っ込める。
>藤原本が何かは知らない
>>67は別人? 別人格?
> float が速いってのは一般的に認知されてるの?環境依存ならありそうだけど
さあね、でも、10年前?にsparcが抜き去られた時からは「doubleが速い」は迷信。
> 省メモリに関しては前から言っている様に現在ではメリットとならないよ
それはキミがそういう領域しか扱ってないから。無尽蔵なメモリ使えるなら疎行列扱うテクニックとかいらないだろ。
技術計算やってると言ってて「疎行列」聞いたことないとかいうなよ。
> 君は省メモリの観点で float を使うような仕事をしてるの?
1000万×1000万のマトリックスが相手だよ。
0086デフォルトの名無しさん
2011/07/21(木) 18:28:59.57GPUを使って計算する方法が、
汎用的かつ一般的で、
環境に依存せずに動くなら、
特殊でないと言ってもいいんじゃない?
0087デフォルトの名無しさん
2011/07/21(木) 18:35:01.600088デフォルトの名無しさん
2011/07/21(木) 18:36:05.75疎行列くらい知っとるわアホ
0089デフォルトの名無しさん
2011/07/21(木) 18:40:08.370090デフォルトの名無しさん
2011/07/21(木) 18:40:32.29なら、↓こんな意味不明な反論すんなよ。
> 省メモリに関しては前から言っている様に現在ではメリットとならないよ
0091デフォルトの名無しさん
2011/07/21(木) 18:43:45.79おまえSSEとか使わんのか
あとキャッシュメモリ考えたことないだろ
で、なんで宿題と関係ないことでスレ荒らすん?
0092デフォルトの名無しさん
2011/07/21(木) 18:45:22.72一般的ならそりゃ特殊じゃないだろ
言葉くらいちゃんと使おうぜ
(何の話題か知らんけど)
0093デフォルトの名無しさん
2011/07/21(木) 18:47:23.12そのリンク先は、あきらかに SSE/CUDA/GPGPU 等の float をターゲットにしたハードウェア相手にコードを記述する場合の話。
CPU/FPU 相手にプログラムを組むのであれば float/double に差はない。
で、発端となった、http://hibari.2ch.net/test/read.cgi/tech/1308749241/906 は float をターゲットにしたハードウェア相手のコードなのか?
float の演算が多量に存在するのか?現状のコンパイラははこのコードに対して SSE命令を生成するのか?
このコードを float で書くメリットはなにか?
0094デフォルトの名無しさん
2011/07/21(木) 18:47:49.55私の認識が古いのかもしれないね、コンピュータグラフィックスはほとんどやった事が無いので
先に書いた DreamCast はバイトだ
>>85
> SSEを特殊な環境と主張するつもりかい? floatならdoubleの倍突っ込める
上と同じレベルの話だよ、認識の違いだ
標準的な算術関数が double 系であるという事に間違いは無いだろう
float 系が主体である処理系はこの考えに基づくと『特殊』と考えても良いんじゃないのか?
将来は逆転するかも知れないが、私の世代を含めたプログラマ全体の平均を取れば誤った認識とは思わない
>別人? 別人格?
>「doubleが速い」は迷信。
別人だよ、私は double が速いなんて主張はしていない
敢えて float を使うのに速さを主張するのはいかがなものかと言っている
>それはキミがそういう領域しか扱ってないから
1000万x1000万のマトリックス?具体的な対象については教えてくれないのw
0095デフォルトの名無しさん
2011/07/21(木) 18:51:12.40おい、うんこ。バグなおせよ。www
http://codepad.org/imsXD8tD
0096デフォルトの名無しさん
2011/07/21(木) 18:51:16.12そりゃGPUを搭載しててDirectXやOpenGLなどが動くとかある程度環境に依存するけど
わりと一般的な構成じゃね?
0097デフォルトの名無しさん
2011/07/21(木) 18:54:44.16> そのリンク先は、あきらかに SSE/CUDA/GPGPU 等の float をターゲットにしたハードウェア相手にコードを記述する場合の話。
実数計算の世界では今はこれがスタンダード。
> このコードを float で書くメリットはなにか?
doubleにするメリットは何もないな。
0098デフォルトの名無しさん
2011/07/21(木) 18:57:44.49> 別人だよ、私は double が速いなんて主張はしていない
それではデフォルトがdoubleであるべきとする根拠はなんだよ。
「先輩に教えられたから?」www
ライブラリ説→否定された
メモリ使用量→完全に負け
速度→負け
0099デフォルトの名無しさん
2011/07/21(木) 18:58:04.57なんで特殊なマシン扱いするのか分からない
0100デフォルトの名無しさん
2011/07/21(木) 18:59:52.72gpgpu は汎用的でもなければ一般的でもない。
cuda は nvidia の提供する拡張されたコンパイラしか対応しない(ライブラリをリンクする程度の拡張ではない)。
ati stream も c/c++ベースの拡張言語 brook+ を使う。
C で GPGPU アプリケーションは記述できないゆえ、少なくともこのスレ的には、汎用的でも一般的でもない。
0101デフォルトの名無しさん
2011/07/21(木) 19:00:08.47> 標準的な算術関数が double 系であるという事に間違いは無いだろう
根拠も示せず盲信するジジイ。もしくはそういうジジイに洗脳されているメクラ。
0102デフォルトの名無しさん
2011/07/21(木) 19:02:48.18ISO/IEC 9899:1999でも読んでろカス
0103デフォルトの名無しさん
2011/07/21(木) 19:04:09.19GPUを表示に使うだけのソフトウェアでも普通はfloat使うんだけど
0104デフォルトの名無しさん
2011/07/21(木) 19:08:35.64ライブラリ説が否定されたとは思って無いのだけどw
当たり前すぎて書く気も無かったんだけど精度の問題は有るよ
特に姿勢制御なんかをやってる時に角度を float で扱うと落ちる誤差が馬鹿にならないんだ
『敢えて float を使う』メリットが無ければ double を使うのはごく当たり前の選択だと思う
0105デフォルトの名無しさん
2011/07/21(木) 19:08:59.14コンパイラが sse を吐く場面は限られてますよ。
本当に mmx/sse を効果的に使いたいのなら、直に mmx/sse を記述するのが一般的。それか、mmx/sse を使って書かれたライブラリをリンクするか。
0106デフォルトの名無しさん
2011/07/21(木) 19:11:04.85http://hibari.2ch.net/test/read.cgi/tech/1311026419/79
以下の使用許諾条件に従って、指示通りの書き込みしろよ。
http://hibari.2ch.net/test/read.cgi/tech/1308749241/909
>>904
>>905,906を使うための条件
1 このスレ(または次スレ)に↓を書き込むこと。
QZ死ね。てめーのうんこコードなんか単位落とすことになったって使わねー。
2 次回の質問の時は↓これを制限とすること。
[5] その他の制限: QZは邪魔だから回答しない事
0107デフォルトの名無しさん
2011/07/21(木) 19:13:23.09C99の標準ライブラリに可搬性に問題があると言いがかりをつけ続けるって事だな。
0108デフォルトの名無しさん
2011/07/21(木) 19:17:18.54参考にされたし。
http://codepad.org/jk2wAWxM
0110デフォルトの名無しさん
2011/07/21(木) 19:24:38.42てめー、うんこ本人だろ。必死だな。クズ。
> そのリンク先は、あきらかに SSE/CUDA/GPGPU 等の float をターゲットにしたハードウェア相手にコードを記述する場合の話。
http://www.softek.co.jp/SPG/Pgi/TIPS/public/general/multicore-para.html
どう見ても最大で-fastsseですが。www
おい、うんこ。バグなおせよ。www
http://codepad.org/imsXD8tD
0111デフォルトの名無しさん
2011/07/21(木) 19:29:55.94そうだよ、C99はまだ新しいから対応していない環境が有ってもおかしくないんだ
君がどんな記事を読んで float の方が技術向きと考えたかは知らないけれど、
現場では圧倒的に double が幅を利かせているのは事実なんだ
本当に速度を要求される処理で並列化まで考えたら float を選択するケースも有るだろうけど、
それは一部の『特殊』な業務であって、大多数の技術コードを書くプログラマ達には考える場面は無いと思う
勿論、先の事は判らないから10年後には『敢えて double を使う』理由を問われる時代が来るかも知れない
でも、現場を知らない人が誤った認識を学生に与えるのは良くないと思うから、お付き合いさせてもらった
まぁ、この辺で止めようよ、荒らしって言われるのは心外だからね
0112デフォルトの名無しさん
2011/07/21(木) 19:39:40.66sseを使う現場ではfloatが幅を利かせてる
とか現場によって違うでいいじゃないか。無理にまとめんなよ
0113デフォルトの名無しさん
2011/07/21(木) 19:39:52.390114デフォルトの名無しさん
2011/07/21(木) 19:43:09.37> そうだよ、C99はまだ新しいから対応していない環境が有ってもおかしくないんだ
bcc32ってこれか?
http://www.mlab.im.dendai.ac.jp/ic2/webdesign/web/tool/bcc/readme.txt
> Copyright (c) 2000 Inprise Corporation.
10年も前の処理系根拠にC99の可搬性に言いがかり付けるクズ。www
当然ライブラリだけじゃなくて、可搬性が悪いからlong long禁止、snprint禁止、//コメント禁止って言ってるんだろうな。
そうじゃないと矛盾するもんな。
> 現場では圧倒的に double が幅を利かせているのは事実なんだ
根拠も示せず盲信するジジイ。もしくはそういうジジイに洗脳されているメクラが作り出した妄想。
0115デフォルトの名無しさん
2011/07/21(木) 19:45:58.55sseがどの程度一般的に用いられてるかが重要だろう
double が幅を利かせるのは sparc に限らずほとんどのEWSだ(もうEWSって言葉も古いかな?)
マルチコア上のプログラムでも sse を意識して書いてる人は一部だろう
>>113
そういう事を言われると続けざる得なくなるじゃないか、で続けると荒らすなって言うんだろw
0116デフォルトの名無しさん
2011/07/21(木) 19:53:33.89別に bcc だけを根拠にしてる訳じゃないよ
確実に対応していない例としてあげただけだ
技術計算コードを書く上で long long も snprintf も必要とは思わないよ
C++は使うから // 禁止なんて話にはならないけどね
C++も昔は方言が有ったから使い方には制約を受けた記憶が有るけど、最近は気にしないのが普通だね
現場で double が幅を利かせている根拠を問われても困るな
実際に見て貰うしかないだろう
ほとんどの技術系プログラマがやってる仕事は最先端なんかじゃなくてもっと泥臭い仕事だよ
だから大昔からの『基本は double』って伝統が残ってる
先にも書いたけど10年後は違うかも知れないけど、今はまだそんな時代だよ
0117デフォルトの名無しさん
2011/07/21(木) 19:55:34.55どれくらい使われてるかは俺は調べたことないから知らないけど、
環境だけみたらEWSよりSSE使える環境の方が多いだろ
使う現場の数を調べた上で言ってるなら納得するけど調べたりしてないでしょ?
現場ごとに変わるから先輩に黙って従えとか言っておけばいいのに
0118デフォルトの名無しさん
2011/07/21(木) 20:01:35.10[2] 問題文(含コード&リンク):http://codepad.org/FcoiN1sk
表示を行う際に、年齢順に表示するようにしたい。配列の並び替えを行なって表示するようにプログラムを拡張しなさい
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限:明日の9時まで
0119デフォルトの名無しさん
2011/07/21(木) 20:56:12.31無職のクズが何を一丁前に現場の話に口を出してんだ?
仕事してから言えアホ
0120デフォルトの名無しさん
2011/07/21(木) 21:03:59.740121デフォルトの名無しさん
2011/07/21(木) 21:10:10.35>>70
http://codepad.org/vUWFFzFw
>>95
>完璧な回答に
http://hibari.2ch.net/test/read.cgi/tech/1308749241/906 http://codepad.org/1ylIxLGa のどこが完璧でしょうかね?
再三指摘しているように、入力したデータの最小値が 10001 だったら破綻します。身長の単位が cm との指定が http://hibari.2ch.net/test/read.cgi/tech/1308749241/720 にあるのでしょうか?
だいたい最大値/最小値の初期値を決めうちしている事自体が拙い。(つたない、と読む。念のため)
float を使うのも阿呆。このコードに sse を吐かせる余地はない。
int main() なら return を書け。
http://codepad.org/imsXD8tDにバグはない。あるというのなら、どんなバグか示してほしいものですね。
あなたの、>>7 を、教えていただいた codegurad にかけると、http://codepad.org/DPu2ivH8 とか Error が出力されるんですけど、本当に大丈夫なんですかね?
0123デフォルトの名無しさん
2011/07/21(木) 21:55:30.82> 技術計算コードを書く上で long long も snprintf も必要とは思わないよ
2G超えるファイルサイズはどうすんだよ。まさか使わない? w
> 現場で double が幅を利かせている根拠を問われても困るな
つまり、根拠なしに盲信されてるだけって事ね。
0124デフォルトの名無しさん
2011/07/21(木) 22:06:54.76ル ー プ は 仕 様 で す。 き り り っ
ル ー プ は 仕 様 で す。 き り り っ
ル ー プ は 仕 様 で す。 き り り っ
ル ー プ は 仕 様 で す。 き り り っ
って言っていながらループしてたのもう忘れたか? www
バグバグだよ。バカ。
> float を使うのも阿呆。このコードに sse を吐かせる余地はない。
doubleを選択する理由はない。自称技術計算歴10年選手も根拠示せずにいるぞ。w
> int main() なら return を書け。
C99前提だから問題ない。
> あなたの、>>7 を、教えていただいた codegurad にかけると、http://codepad.org/DPu2ivH8 とか Error が出力されるんですけど、本当に大丈夫なんですかね?
英語が読めれば問題無い事がわかる。
0125デフォルトの名無しさん
2011/07/21(木) 22:09:54.12http://codepad.org/IL1K9Pql
http://codepad.org/T2ygG9yL
データを配列のサイズいっぱい(この場合は 10 個)入れると、表示で破綻する。.age に -1 を入れているが無意味。
その点を修正しておきました。
0127デフォルトの名無しさん
2011/07/21(木) 22:20:51.66http://codepad.org/JgbH58j8
crossoverとtwo_crossoverの説明がよく分からなかった。
適当に解釈したから、違ってたら直してくれ。
0128デフォルトの名無しさん
2011/07/21(木) 22:25:57.40おお、できた
ありがとう!
アドバイスもありがとうございます!
0129デフォルトの名無しさん
2011/07/21(木) 22:38:34.25http://codepad.org/X1C7kONsのコードなんですが、どうすればバグが消えるんですか?
>ループしてたのもう忘れたか?
ループするのはエラー時に再入力を促す仕様。ループ自体に問題はありません。
http://hibari.2ch.net/test/read.cgi/tech/1308749241/846 で問題なのは、先読みバッファの扱いが適当でなく入力が空の場合に挙動不審に陥る点。
本当にバグの本質を理解していたのか疑問ですねえ。
とはいえ、自力でバグを発見するのは簡単ではないもの。どんなバグかご教授願ください。ループをバグだと言っているようではちと不安ですが。
>doubleを選択する理由はない。自称技術計算歴10年選手も根拠示せずにいるぞ。w
float を選択する理由も同じくらいに示せていませんが?
それはそうと、http://hibari.2ch.net/test/read.cgi/tech/1308749241/906 は入力したデータの最小値が 10001 だったら破綻しますよ。はやく修正してください。
データを入力した個数を、なんらかの方法で数えて記録しておくのがいいと思います。手段はいろいろあるでしょう。
0132デフォルトの名無しさん
2011/07/21(木) 22:49:10.19ttp://codepad.org/KzPxgBmq
>[4] 期限:明日の9時まで
って綱渡り過ぎ。
0133デフォルトの名無しさん
2011/07/21(木) 22:52:02.94私を引き合いに出さないでくれるかな
君は精度に関して何の反論もしていない
都合の悪い部分には触れずに議論を進める輩とは関わりたくないんだよ
0134デフォルトの名無しさん
2011/07/21(木) 22:52:47.69> とはいえ、自力でバグを発見するのは簡単ではないもの。どんなバグかご教授願ください。ループをバグだと言っているようではちと不安ですが。
コードをざっくりと見るだけでわかる。
> float を選択する理由も同じくらいに示せていませんが?
doubleを選択する理由が無いんだから、floatを選択することに言いがかりをつけられる理由はない。
> 入力したデータの最小値が 10001 だったら破綻しますよ。はやく修正してください。
身長10000メートルの人間はいないのだから問題ない。
0135デフォルトの名無しさん
2011/07/21(木) 22:54:20.330136デフォルトの名無しさん
2011/07/21(木) 22:58:01.33うんこの尻馬に乗って言いがかりをつけてきたのはお前だ。
精度とメモリ使用量、速度はトレードオフ。無条件にdoubleを
デフォルトとする根拠にはならない。
0137デフォルトの名無しさん
2011/07/21(木) 23:00:44.920138デフォルトの名無しさん
2011/07/21(木) 23:01:17.36関わりたくないと書いたけど、都合の悪いところには触れないと返されたら嫌だから...
> 2G超えるファイルサイズはどうすんだよ。まさか使わない?
基本的は使わない
連続性をもった巨大データを1ファイルで扱わなければならない理由は無い
データファイルが巨大になるとデバッグの為にダンプを取るのも困難になるから、
小さなファイルに連番を振って管理した方が合理的だ
君は経験が浅そうだ
>コードをざっくりと見るだけでわかる。
どうですかね。http://hibari.2ch.net/test/read.cgi/tech/1308749241/846 のバグの本質をご理解いただけていないようでは疑問ですね。
>身長10000メートルの人間はいないのだから問題ない。
単位がメートルだとはどこにも書いていませんが?
はやく修正してください。
0140デフォルトの名無しさん
2011/07/21(木) 23:03:28.810141デフォルトの名無しさん
2011/07/21(木) 23:03:58.83>君は経験が浅そうだ
この部分はどう考えても余計だと思いますが?
0142デフォルトの名無しさん
2011/07/21(木) 23:04:44.150143デフォルトの名無しさん
2011/07/21(木) 23:05:22.21単に自分の経験を語っただけだよ、それに対して君が突っかかってきたと思うが?
速度に関しては環境依存なのを認めたんじゃなかったっけ?
メモリ使用量が半分になるから精度を落とすなんてトレードオフが現在成立するとは思えないと思うぞ
0144デフォルトの名無しさん
2011/07/21(木) 23:06:37.64そうかも知れないけど、Gバイトオーダーのファイルを作るなんて現場を知らない人の発言だよ
0145デフォルトの名無しさん
2011/07/21(木) 23:07:54.88それはあんたの考えでしょ?データベースを作るとあっという間に2G超えするんだが何か?
0146デフォルトの名無しさん
2011/07/21(木) 23:09:39.550147デフォルトの名無しさん
2011/07/21(木) 23:09:53.87RDBと計測データを一緒にされても困るよw
0148デフォルトの名無しさん
2011/07/21(木) 23:11:41.48どっから計測データなんか沸いて出たんだ?話を自分の都合の良いように
勝手にねじ曲げないでもらえないかな?
>>146
だよな
ビデオカメラの映像をリアルタイムで記録するプログラムを作ると分割して
記録するなどの工夫が必要な場面がある
本職のマってすごいんだなあ、と感心しました。
最大値/最小値を求めるロジックに本質的なバグがあっても頑として修正をかけないんですね。
修正すると負け、の世界なんでしょうか。とても私には勤まりません。
マじゃなくて良かった、と思いました。以上。
0150デフォルトの名無しさん
2011/07/21(木) 23:13:29.22>doubleが速いは時代遅れ
というのはいくつかWebでベンチをみて、へーっと思ったことがあります。
しかーし、それは特定のCPUとコンパイラで成り立つ話です。
標準Cの範囲で言えば、特に理由がなければ
浮動小数点型はdouble、
整数型はint
をとりあえず選択しておくべきでしょう。
>doubleが速いは時代遅れ
と同じ理由でいつでもfloatが良いわけでは無いです。
このスレに持ち込まれるケースでは何も考えないでdoubleで
ほぼ間違いないです。
念のため、QZとか言うコテハンの肩を持つわけじゃないです。
私のスタンスは「バグを憎んで、プログラマ憎まず」
QZを腐すために、言いがかり付けてるだけにみえるけど。
0151デフォルトの名無しさん
2011/07/21(木) 23:13:52.12> 2G超えるファイルサイズはどうすんだよ。まさか使わない? w
> 基本的は使わない
ぷぷぷっ
インライン関数は? 浮動小数点例外は放置?
C99で追加されたこういう関数は自作しちゃうんだ。使っていい関数の一覧とかあるのか? ww
> erf erfc lgamma tgamma hypot acosh asinh atanh cbrt expm1 ilogb log1p
> logb nextafter remainder rint isnan isinf signbit isfinite isnormal
> fpclassify isunordered isgreater isgreaterequal isless islessequal
> islessgreater copysign log2 exp2 fdim fmax fmin nan scalbn scalbln
> nearbyint round trunc remquo lrint lround llrint llround fma nexttoward
0152デフォルトの名無しさん
2011/07/21(木) 23:17:38.06> 速度に関しては環境依存なのを認めたんじゃなかったっけ?
そんな事、オレは言ってないし、誰もいってないぞ。現在のスタンダードはSSEアリ。
> メモリ使用量が半分になるから精度を落とすなんてトレードオフが現在成立するとは思えないと思うぞ
15ケタの精度が不要な場合もたくさんある。たとえばヒトの身長を扱う場合など。w
0153デフォルトの名無しさん
2011/07/21(木) 23:21:13.56学校の宿題だけを考えたらdoubleの前にfloatを教えてる可能性が高いから
とりあえずfloatにしておくという選択肢もありかと
整数はintで間違いないけど
0154デフォルトの名無しさん
2011/07/21(木) 23:24:26.49> しかーし、それは特定のCPUとコンパイラで成り立つ話です。
doubleの方が早いというのも特定のCPUとコンパイラで成り立つ話だよな。
とすると↓こうする根拠は全くない。
> 標準Cの範囲で言えば、特に理由がなければ
> 浮動小数点型はdouble、
> をとりあえず選択しておくべきでしょう。
これはある。
> 整数型はint
0155デフォルトの名無しさん
2011/07/21(木) 23:25:18.28我々が扱うデータと言えば普通は計測データだよ
画像処理で動画データを扱う事も有るけど、結局はフレーム単位で切り出して処理する
> ビデオカメラの映像をリアルタイムで記録するプログラムを作ると分割して
> 記録するなどの工夫が必要な場面がある
これって巨大ファイルを扱う事は無いって認めてるように読めるんだけどw
>>151
知らん関数がほとんどだな、仕様を確認するなら自作した方が早いって話はよくあるよ
そもそも、C99以前から仕事してるからね
何故にインライン関数や例外の話が出てくるの?
0156デフォルトの名無しさん
2011/07/21(木) 23:26:47.09そういえば、maxが-1だったら破たんするとか言いがかりをつけていたが、
ここまで来てやっと気づいたのか? ww
>QZを腐すために、言いがかり付けてるだけにみえるけど。
いいんです、それで。具体的なバグ・不具合・仕様のまずさを指摘いただけるのなら、ニート、自己愛なんちゃら、バグ量産マシン呼ばわりされても。ついでにいろいろお話が聞けますし。
「バグを憎んで人を憎まず」というスタンスです、て同じですね。
でもなかなか、バグ、減りませんね。
0158デフォルトの名無しさん
2011/07/21(木) 23:28:23.69この表現も主観的
>「最大値/最小値を求めるロジックに本質的なバグがあ」
るよね、というスタンスですよ、最初から。
まあ、max の初期値が -1 でも問題ないことは認めますから、はやく最小値を求めるロジックを修正してください。
0160デフォルトの名無しさん
2011/07/21(木) 23:31:47.23> 何故にインライン関数や例外の話が出てくるの?
インライン関数や浮動小数点例外のハンドリングはC99で規格化されたんだが、
C99は可搬性が悪いから禁止なんだろ。
0161デフォルトの名無しさん
2011/07/21(木) 23:38:31.91ロジックには全く問題が無い。極めてよく使われるロジック。
質問者のレベルに合わせて10000を使ったに過ぎない。
ところで、http://codepad.org/imsXD8tDはまだバグ見つけられないのか? www
他人に言いがかりつけるのは100年はえーぞ。
これくらいcodepadに貼る前にわかるようになってからにしろ。
0162デフォルトの名無しさん
2011/07/21(木) 23:51:11.30そんな個人的主観的な話をされても返答に困るな
>これって巨大ファイルを扱う事は無いって認めてるように読めるんだけどw
だって2GBを超えると扱えない処理系があるからね
あるある詐欺ですか。
まあ。http://hibari.2ch.net/test/read.cgi/tech/1308749241/846 のバグの本質をご理解いただけていないようでは、バグをご指摘いただけるとは期待していませんが。
>ロジックには全く問題が無い。
本当ですか?
>極めてよく使われるロジック。
よく使うのは馬鹿が、ではないですか?
0164デフォルトの名無しさん
2011/07/21(木) 23:58:54.17やっぱり、バカにはわからない。www
> バグの本質をご理解いただけていないようでは
バグの本質 wwww
> while (!peek('\n'))
> nextc = getchar();
ループしてるじゃねーか。これを「ループしている」以外になんていうんだ? www
>> while (!peek('\n'))
>> nextc = getchar();
>ループしてるじゃねーか。これを「ループしている」以外になんていうんだ? www
いいんですよ。それで。
標準入力から一行読む限りは末尾に '\n' がありますから、いずれループから抜け出ます。エラーが発生したらその行を捨ててしまうのです。
#define peek(c) (nextc == c)
ですから、
while (nextc != '\n')
nextc = getchar();
と同じことです。
http://hibari.2ch.net/test/read.cgi/tech/1308749241/846 は、代数式の解析に、とあるLL(1)文法を採用し、deternative に下降型構文解析を構成しているのです。
そのため先読みを明示して peek() をあえてマクロに仕立てました。
鋭いご指摘を受けたのでこの辺の事情は釈迦に説法だと考えていたのですがね。
0166デフォルトの名無しさん
2011/07/22(金) 00:13:01.53> >極めてよく使われるロジック。
> よく使うのは馬鹿が、ではないですか?
値が不適切という事にだけ粘着すべきだったね。ロジックにケチ付けて自爆。
http://www.pc.uec.ac.jp/sp/hshrkw/edu/program/b1/Prob2-3.htm
0167デフォルトの名無しさん
2011/07/22(金) 00:17:05.66> 標準入力から一行読む限りは末尾に '\n' がありますから
救いようの無いバカだな。全部書いてやらないとわからないのか。w
> while (!peek('\n'))
> nextc = getchar();
\nが現れる前にファイルエンドに達したらループしてるじゃねーか。これを「ループしている」以外になんていうんだ? www
ん、電通か‥‥‥。
0169デフォルトの名無しさん
2011/07/22(金) 00:19:51.81あなたもしつこいですね。
>doubleの方が早いというのも特定のCPUとコンパイラで成り立つ話だよな。
他の人もそうですが、早いからdoubleにしろ、ではないです。
C言語の仕様そのものが浮動小数点型は、doubleが基本になっているのです。
整数型の基本がintに鳴っていることと同じです。
>doubleの前にfloatを教えてる可能性が高いから
通常はdoubleを教えてfloatは教えさえもしない場合の方が
多いような気がしますよ。敢えてshortを教えない場合がめずらしくないのと、
同じ理由です。
「doubleが速いは時代遅れ」というからには、かつてはdoubleが速いのは常識だったのです。
歴史的な経緯もあり、標準math関数がdoubleを扱っていることもあり、
浮動小数点型はdoubleを使え、は常識だと思うけど。
0170デフォルトの名無しさん
2011/07/22(金) 00:20:54.52ほれ、ここでも使ってるロジックだ。
http://katahiromz.web.fc2.com/c/array.html
0171デフォルトの名無しさん
2011/07/22(金) 00:29:46.35代数式が解析不能状態は再入力を促す、という仕様は、もともとコンソールからの入力を想定しているということ。
コンソールから入力する限りは '\n' が行末に存在すると仮定していてもいいでしょう、よって問題ありません。(なんだったら実際にいろいろ入力して試してみてください。)
リダイレクトは考えていないだけの話です。無論、それが適か不適かはまた別の問題。
http://hibari.2ch.net/test/read.cgi/tech/1308749241/826 を見る限りはそれでいいと思いはしましたが。
でもなんの入力もなくいきなり EOF に達したときは、EOF のさらに後ろを先読みしようとして嵌ってしまっていた、というのが
http://hibari.2ch.net/test/read.cgi/tech/1308749241/846 が包含する問題だったのでした。
あてずっぽうでもあたるときはあるものです。失礼、素人にはあてずっぽうにみえるだけであって、実は無意識下の超絶思考経路が稼動していた、ということはあると思いますので、>>167 の評価を下げることはありません。
これからもよろしくお願いいたします。
あと、http://hibari.2ch.net/test/read.cgi/tech/1308749241/992 もよろしく。
>片山博文MZ
(爆笑)
0173デフォルトの名無しさん
2011/07/22(金) 00:31:26.23> >doubleの方が早いというのも特定のCPUとコンパイラで成り立つ話だよな。
> 他の人もそうですが、早いからdoubleにしろ、ではないです。
ライブラリの可搬性が悪いとか、精度が不十分とか、藤原本(doubleの方が高速)を
引用してdoubleデフォルトの根拠にしようと必死だったろ。
> C言語の仕様そのものが浮動小数点型は、doubleが基本になっているのです。
ようやく、本質に辿り着いたな。
doubleを基本としたのは関数プロトタイプがなかったK&R時代の名残。
floatを引数に渡すdoubleに格上げされた。この一点。
今は、プロトタイプ書かないクズは死ね。つーかエラー。なのでdoubleを基本とする根拠がない。
0174デフォルトの名無しさん
2011/07/22(金) 00:32:57.16UNIX(Linux)だったらENTER押すまえにctrl-Dでその状態になるが、まさか知らない。www
0175デフォルトの名無しさん
2011/07/22(金) 00:33:44.24[2]
2次正方行列AとBの各成分の値をキーボードから読み込み
AとBの積、各行列式の値を求めるプログラムを作成せよ。
[3] 環境
[3.1] window7
[3.2] MinGW gcc
[3.3] 言語: C言語
[4] 期限:あと8時間
よろしくお願いします
0176デフォルトの名無しさん
2011/07/22(金) 00:40:10.01>>171
UNIX(Linux)だったらENTER押すまえにctrl-Dでその状態になるが、まさか知らない? www
0177デフォルトの名無しさん
2011/07/22(金) 00:41:56.45下も見たけど、minを10000で初期化ってダサいと思うよ。
ttp://hibari.2ch.net/test/read.cgi/tech/1308749241/906
FLT_MAXで初期化するほうが良くないかい?
これなら入力がfloatの全範囲で、まったく問題が起きない。
0178デフォルトの名無しさん
2011/07/22(金) 00:44:08.60それは前に書いた。FLT_MAXは質問者は確実に習ってないからあえて10000にした。
0179デフォルトの名無しさん
2011/07/22(金) 00:45:15.13その場合も問題ありません。E, T, F, A, B を非終端文字として、LL(1)文法
E -> TA
A -> +TA
A -> -TA
A -> epsilon
T -> FB
B -> *FB
B -> /FB
B -> epsilon
F -> 0...9
F -> (E)
の A->epsilon, B->epsilon が効いており、http://hibari.2ch.net/test/read.cgi/tech/1308749241/846 では表示は乱れますが、
解析可能な代数式である限り評価は完了します。
解析可能でない場合は?\n が入力されるまで狂ってしまいますが‥‥‥。まあそういうことです。
0180デフォルトの名無しさん
2011/07/22(金) 00:47:24.66>通常はdoubleを教えてfloatは教えさえもしない場合の方が多いような気がしますよ。
符号部、指数部、仮数部を教える際は普通単精度から教える。なぜなら短いから。
単精度をすっ飛ばして倍精度から教える学校なんて存在しないと思うけど?
10年以上前は事情が違ったんだろうか
0182デフォルトの名無しさん
2011/07/22(金) 00:50:26.22[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):
http://codepad.org/n47BkpXa
上記のプログラムを実行すると8/3*3=6となります。
このソースを正常に8/3*3=8となるようにif文で前の演算子に'÷'次の演算子に'*'が来た時に
乗算を優先的に行うようにプログラムを付け加えていただけますか?
あえてint型で型を宣言していますので、そこは変更しないで下さい。
宜しくお願いします。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: [2011年07月22日09:00まで]
[5] その他の制限: 変数は変えない。関数は出来れば増やさない。
0183181 ◆QZaw55cn4c
2011/07/22(金) 00:51:28.901+3=
とか
1+3X
1+3)
1+3EOF
でも 4 を返してしまうのが、この文法の弱点なわけです。これも A->epsilon, B->epsilon のせいで、仕方ありません。
0184デフォルトの名無しさん
2011/07/22(金) 00:53:29.10私も最後に言いたいこと言って止めます。乗り遅れて入った分、
他の人より呆れるまで時間がかかったようです。識者の方々すみません。
>ようやく、本質に辿り着いたな。
>doubleを基本としたのは関数プロトタイプがなかったK&R時代の名残。
>floatを引数に渡すdoubleに格上げされた。この一点。
そうですよ。そしてこれがdoubleを基本とせよ、との理由です。
多くのプログラマはこれが理由でfloatではなく、doubleを選択するのです。
ですからfloatが推奨されるような環境では、その点が明示されます。
doubleのペナルティが顕著な環境でも、やはりその点が明示されます。
もし、コードレビューで、doubleではなくfloatが使用されていれば、
必ずその根拠を確認されます。プロトタイプ宣言をしていてもです。
なぜ、floatで宣言したか、確認されます。逆は無いです。
どうぞ、floatが推奨されるような環境ではfloatを使用してください。
0185デフォルトの名無しさん
2011/07/22(金) 00:56:08.37これでループるけど。ww
$ echo -n '(1+2+' | ./a.out
まさか、echo -n '(1+2+'と等価な入力はキーボードからはやってこないとか言うなよ。w
0186デフォルトの名無しさん
2011/07/22(金) 00:58:58.97都合の良いところだけ抜き出すな。著作権者として下記のように全部引用しなおす事を要求する。
> ようやく、本質に辿り着いたな。
> doubleを基本としたのは関数プロトタイプがなかったK&R時代の名残。
> floatを引数に渡すdoubleに格上げされた。この一点。
>
> 今は、プロトタイプ書かないクズは死ね。つーかエラー。なのでdoubleを基本とする根拠がない。
ふむ。リダイレクトするとだめか。コンソールは EOF を受け取ったあとでも、さらに入力があれば getchar() できる、という点にかかっているわけですかね。
ちなみに、echo -n '1+2' | ./a.out は OK ですね。
まあ、ファイルからの読み込みには対応していない、ということですかね。
仕様です霧
>doubleを基本としたのは関数プロトタイプがなかったK&R時代の名残。
>floatを引数に渡すdoubleに格上げされた。この一点。
申し訳ありませんが、http://hibari.2ch.net/test/read.cgi/tech/1308749241/946 でISO/IEC 9899:1999 6.5.2.2.6 まで引っ張って述べられ済み。著作権/先取権は私にあります。
>今は、プロトタイプ書かないクズは死ね。
可変長引数は?
0189デフォルトの名無しさん
2011/07/22(金) 01:13:29.78交叉の例
単純交叉(crossover)
親1 子1
1001|1010 1001|0011
親2 ↕ 子2
0010|0011 0010|1010
二点交叉(two_crossover)
親1 子1
100|11|010 100|00|010
親2 ↕ 子2
001|00|011 001|11|011
こうなっています。
そこの解釈間違って作ってくださっていたら教えてください。
作ってくださり、ありがとうございました。
0190デフォルトの名無しさん
2011/07/22(金) 01:15:19.77> ふむ。リダイレクトするとだめか。コンソールは EOF を受け取ったあとでも、さらに入力があれば getchar() できる、という点にかかっているわけですかね。
死ねクズ。一度エンドオブファイルになったらgetcharはずーっとEOFだ。
> まさか、echo -n '(1+2+'と等価な入力はキーボードからはやってこないとか言うなよ。w
まさか、これとおなじデータ列をキーボードから入力する方法を知らない? www
$ ./a.out
(1+2+CTRL-DCTRL-D
CTRL-Dを二度押し
0192デフォルトの名無しさん
2011/07/22(金) 01:29:27.00EOFの後読み込むか規格票にはどう書いてある?
0193デフォルトの名無しさん
2011/07/22(金) 01:48:19.44まだやってたのw
嘘はいけないよ、誰も速度の話なんてしてない
誰かがその藤原本だかの引用(>>67)を入れたが、直後に君はそんな話はしていないと >>68 で言ったじゃないか
皆が呆れたようだから私も呆れる事にしよう
0194デフォルトの名無しさん
2011/07/22(金) 01:50:32.08だから何?
K&R: 関数の引数はdoubleでしか受けられないのでデフォルトもdoubleで良いだろ。どーせ、本格的な数値演算はFORTRANでやるし。
C99: 可変個引数関数だけがdoubleでしか受けられない。
全然違うね。
0195デフォルトの名無しさん
2011/07/22(金) 01:56:31.61誰か(>>67)が藤原本引用して速度の話を出しただろ。
トリップついて無いんだから敵(doubleデフォルト説支持者)の認識しかしてないよ。
0196デフォルトの名無しさん
2011/07/22(金) 02:00:13.72仕様はend-of-fileに達した後はずーっとEOF
If the end-of-file indicator for the stream is set, or if the stream is at end-of-file,
the end-of-file indicator for the stream is set and fgetc returns EOF. Otherwise,
the fgetc function returns the next character from the input stream pointed to by stream. If a read error occurs, the error indicator for the stream is set and fgetc returns EOF.
0197デフォルトの名無しさん
2011/07/22(金) 02:11:27.85[2] 問題文(含コード&リンク):http://codepad.org/qstTADEC
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ: gcc
[3.3] 言語: C
[4] 期限: 2011/07/23
[5] その他の制限:特に無し
0198デフォルトの名無しさん
2011/07/22(金) 02:31:47.34つまりQの使ってる処理系は規格に合致してない糞環境って事か
そんなもんで「やってみてください」もクソもねーだろと思う
C99 の 7.19.2 にはなにも。
端末を非カノニカルモード(stty -icanon min 1 time 0 とか)にすると、そもそも ^D が EOL にならないみたい。
カノニカルモードで端末は ^D を渡さないだけで普通にバッファリングしているみたいですね。この辺の詳しいことはどこに書いてあるのだろう?
>>194
ISO/IEC 9899:1999 6.5.2.2.6 には float -> double の格上げをわざわざ
These are called the default argument promotions.(JIS では 「既定の実引数拡張」という表現)
と呼んでますよ。プロトタイプがない場合は 整数型は全部 int になるし、実数型は全部 double になる。
という事実は、int や double が基本だ、ということになりませんか。
これが言葉だけの話、というのならば、話を最初 http://hibari.2ch.net/test/read.cgi/tech/1308749241/906 にもどして、
のちのち可変長引数関数である printf() において いずれ double に変換されるにきまっているのに、最初に float にしておくのはなぜか?
最初から double にしとけばええやん、という話になりませんかね。無駄に変換をかける必然性はあるのかなあ?
もともと私はそこを問題視しているんですけれどもね。
0200デフォルトの名無しさん
2011/07/22(金) 02:38:34.87>gene[1]とgene[2], gene[3]とgene[4] ... のように親にする
こうあるんだけど、この1と2,3と4の組合せ、個体の決め方はどうするの?
書いたソースでは、1番目と2番目、3番目と4番目の個体を、
固定で交換するようにしてるけど、ランダムに変えなくてもいいのかな?
Linux(Vine 5.2)/bash も FreeBSD(8.2)/bash も Windows 上の cygwin/bash も挙動は同じですね。たぶんあなたの環境でもそうでしょうよ。
>>196
端末ディシプリンは ^D をストリームの終了とはしないようですね。そもそも、カノニカルモードでは端末は ^D をプロセスに渡さないだけで、普通にデータをバッファリングし、NL/EOL で吐き出す。
ただ、これは C の話からはだいぶ外れますが、典拠がみつからない。
>>124 では http://hibari.2ch.net/test/read.cgi/tech/1308749241/846 のバグの話にもどすとは性悪ですね。
しかも端末の仕様なんて、c の規格書みてもわかるわけがあらへん。
マってみんなこんな性格なんですか?
0203デフォルトの名無しさん
2011/07/22(金) 02:57:23.08VC10ではちゃんと動くんだがgccが糞だという事だろ
0204デフォルトの名無しさん
2011/07/22(金) 02:58:48.95お前自分の性格の糞さを棚に上げて人様の事を非難できる立場にあるとでも思ってるのか?
どれだけ自分が嫌われてるのか他の人の書き込みから類推も出来ないんだとしたらクズだよお前
0205デフォルトの名無しさん
2011/07/22(金) 03:04:21.90嫌う人(たち)もトリップ付けてよ
ほう。で、http://codepad.org/imsXD8tD のバグは見つかりましたか?
>>203
bcc32(一番あたらしい奴ね、この前試用版いれた)でも vc と同じでした。となると、gcc は別なんでしょうね。
ただ、vcもbcc も ^Z+リターン、で EOF なんですね。これって端末制御文字のつもりか、と思ってしまう。
0207デフォルトの名無しさん
2011/07/22(金) 03:08:29.490209デフォルトの名無しさん
2011/07/22(金) 03:27:39.41何で俺が人のプログラムのバグを見つけてやる義理があるんだよ?馬鹿か?
0210181 ◆QZaw55cn4c
2011/07/22(金) 03:35:26.11>>7 でバグ入り危険とのたまうのなら、じゃあ、そのバグはなんですか?と聞いているだけですよ。それともあるある詐欺ですかね。
>>7 と >>209 が別人だったら、それは >>209 のおっしゃるとおり。私にも異存はありませんが。
0211デフォルトの名無しさん
2011/07/22(金) 03:53:57.99相当人に突っかかりたいストレスを溜めてますね
だからクズって言われるんですよ
行っておきますが人に突っかかってもストレスは晴れませんよ
自分の中のゴミを掃除するまではね
0212デフォルトの名無しさん
2011/07/22(金) 04:36:33.33>210
先に言っとくが>7じゃないからな
まぁ、バグって程でもないけどmain()の変数pは危険だよね
サイズ指定していないので脆弱性があります
別にデーモンとかじゃないからいいけどね
0213デフォルトの名無しさん
2011/07/22(金) 05:22:48.470214デフォルトの名無しさん
2011/07/22(金) 05:24:07.840215デフォルトの名無しさん
2011/07/22(金) 05:28:06.97数十個あるうちのいくつかをおねがいしたいのです。
0216デフォルトの名無しさん
2011/07/22(金) 05:30:35.860217デフォルトの名無しさん
2011/07/22(金) 05:34:26.84とりあえず自分で頑張ってみます。ご丁寧にありがとうございます。
0218デフォルトの名無しさん
2011/07/22(金) 05:35:18.92面白い問題なら誰かが解く
0219デフォルトの名無しさん
2011/07/22(金) 05:37:20.53なんて素直な人なんだろう
0220デフォルトの名無しさん
2011/07/22(金) 05:49:54.95って問題だと俺が釣られる
0221デフォルトの名無しさん
2011/07/22(金) 06:09:42.130222デフォルトの名無しさん
2011/07/22(金) 06:27:58.67時間がありません。誰かお願いします。
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):
http://codepad.org/n47BkpXa
上記のプログラムを実行すると8/3*3=6となります。
このソースを正常に8/3*3=8となるようにif文で前の演算子に'÷'次の演算子に'*'が来た時に
乗算を優先的に行うようにプログラムを付け加えていただけますか?
あえてint型で型を宣言していますので、そこは変更しないで下さい。
宜しくお願いします。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: [2011年07月22日09:00まで]
[5] その他の制限: 変数は変えない。関数は出来れば増やさない。
0223デフォルトの名無しさん
2011/07/22(金) 07:09:47.76ん〜。実に実践的な課題だな。
ある意味感動した。
根本的な設計の問題を抱えたソースを
過剰な規則で縛り上げつつ
修正という名の再設計を
末端のプログラマに丸投げする。
おまけに「時間がありません」ときたもんだ。
まさに「殺し文句」。
職業プログラマの現実って、大体こんな感じ。
こういう課題を易々と乗り越えられる奴は、
職業プログラマに向いていると思う。
あと、>>222 は上流工程の仕事に適性があるね。
0224デフォルトの名無しさん
2011/07/22(金) 07:28:36.38> 端末を非カノニカルモード(stty -icanon min 1 time 0 とか)にすると、そもそも ^D が EOL にならないみたい。
非カノニカルモードを知らねー事を告白しなくても良いんだぞ。wwww
> 最初に float にしておくのはなぜか?
ヒトの身長を表現するには単精度で充分だからだよ。死ね。
>>201
> 端末ディシプリンは ^D をストリームの終了とはしないようですね。そもそも、カノニカルモードでは端末は ^D をプロセスに渡さないだけで、普通にデータをバッファリングし、NL/EOL で吐き出す。
必死でググった結果がこれかよ。噴飯ものだよ。www
CTRL-Dをバッファリングする。wwwwww
CTRL-Dをバッファリングする。wwwwww
CTRL-Dをバッファリングする。wwwwww
CTRL-Dをバッファリングする。wwwwww
CTRL-Dをバッファリングする。wwwwww
CTRL-Dをバッファリングする。wwwwww
>>202
> そもそも、http://codepad.org/imsXD8tD のバグを見つけてください、という話なのに、
あると言っているんだから「見つけてください」じゃなくて「教えてください」だろ。
「もしあるなら、このスレには二度とこない」というのなら教えてやるよ。www
> >>124 では http://hibari.2ch.net/test/read.cgi/tech/1308749241/846 のバグの話にもどすとは性悪ですね。
お前がクズだってことはfreeの宗教戦争で充分にわかったからな。クズに相応しい対応をしてるだけだ。
お前は、たかだか数十行の学生の課題のバグフリーな回答を作成する能力が無い。
その上、他人に指摘されるまでその単純なバグの存在に気づく能力が無い。
このスレから出ていけ。
0225デフォルトの名無しさん
2011/07/22(金) 07:42:47.43> 上記のプログラムを実行すると8/3*3=6となります。
> このソースを正常に8/3*3=8となるようにif文で前の演算子に'÷'次の演算子に'*'が来た時に
> 乗算を優先的に行うようにプログラムを付け加えていただけますか?
この仕様は「プログラミングの世界では左結合」という原則に反するんだよ。
原則に反する仕様が必要な理由を説明できればやる奴もいるかもしれない。
ギャラ次第では原則を曲げた仕様も受け入れるけど。ここは無料スレだしな。
0226181 ◆QZaw55cn4c
2011/07/22(金) 07:50:34.87> ^D をプロセスに渡さないだけで、普通にデータをバッファリングし、
とは書きましたが
>CTRL-Dをバッファリングする。
とは書いていませんね。頭おかしいんじゃない?
>ヒトの身長を表現するには単精度で充分だからだよ。
なるほど。十分に納得しました。
>このスレから出ていけ。
気が向いたら。
0227デフォルトの名無しさん
2011/07/22(金) 07:52:32.77その通りにやったら8/3/3*3*3とかが正しく計算されないと思うんだが
0228デフォルトの名無しさん
2011/07/22(金) 07:52:41.23無意味に型が違って気持ち悪い
中置記法の計算にはポピュラーな方法を使って欲しい
整数型だけでどうにかしたいなら(既約)分数の型を使うべき
0229デフォルトの名無しさん
2011/07/22(金) 07:53:18.42自分で言ったことも守れないクズの分際で他人にどうこう言うとか人間として恥ずかしくないの?
0230デフォルトの名無しさん
2011/07/22(金) 07:59:41.18面倒だから嫌だって言えば良いじゃん、俺はそう言うよ
0232デフォルトの名無しさん
2011/07/22(金) 08:08:13.890233デフォルトの名無しさん
2011/07/22(金) 08:11:45.88理解してない検索結果を継ぎはぎしてるから、↓が意味不明なんだよ。
> 端末ディシプリンは ^D をストリームの終了とはしないようですね。
するよ。
$ stty
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
^^^^^^^^^
> そもそも、カノニカルモードでは端末は ^D をプロセスに渡さないだけで、普通にデータをバッファリングし、NL/EOL で吐き出す。
「だけ」とはなんの「だけ」か? ここいらへんの概念まるっきり理解してないだろ。
> >「もしあるなら、このスレには二度とこない」というのなら教えてやるよ。www
> 絶対にありません。それでいいです。霧
って言わないのか? www
0234デフォルトの名無しさん
2011/07/22(金) 08:17:59.28どんなに正しい事を言ってても、相手にバカとかクズとか頭おかしいとか言ってると必死に見えてしまう
俺なら、ただ事実のみを言うことで相手をねじ伏せる
本当に自分が正しいならば、それで勝てる
そして、常に冷静な自分vs必死な相手という構図を作り出す。これだね
これが上手く出来たときの快感は何事にもかえがたい
μm や nm では問題ですねえ。
0236デフォルトの名無しさん
2011/07/22(金) 08:27:58.07名無しで醜態を晒すよりは、トリ付けて醜態を晒す方が正々堂々としていて良いが。
0238デフォルトの名無しさん
2011/07/22(金) 08:30:53.97>> 君は省メモリの観点で float を使うような仕事をしてるの?
>1000万×1000万のマトリックスが相手だよ。
それ、1400万×1400万になったらどうする?
0239デフォルトの名無しさん
2011/07/22(金) 08:30:54.09ヒトの身長をμmやnmの精度で計測可能な測定器は存在しないので問題ない。
> >「もしあるなら、このスレには二度とこない」というのなら教えてやるよ。www
> 絶対にありません。それでいいです。霧
って言わないのか? www
0240デフォルトの名無しさん
2011/07/22(金) 08:33:18.28正々堂々としているかどうかと、その行為が恥であるかどうかは別問題。
自宅で全裸になるのと屋外で全裸になるのとでは、明らかに後者の方が正々堂々としているが、
恥であるのもまた明らかに後者。
0241デフォルトの名無しさん
2011/07/22(金) 08:35:24.221000万以上の二乗とかくのが面倒だったからそう書いた。
1000万超 × 1000万超
とでも書けばわかるか?
>>224
>たかだか数十行の学生の課題のバグフリーな回答を作成する能力が無い。
>その上、他人に指摘されるまでその単純なバグの存在に気づく能力が無い。
に自覚的なので、恥と引き換えに指摘をいただけるのならそれでよし、としているだけですね。
もっとも
http://hibari.2ch.net/test/read.cgi/tech/1308749241/906
はさすがに恥だとおもうし、
http://hibari.2ch.net/test/read.cgi/tech/1308749241/906
にはバグはない、と言い張るほど恥知らずではないと思っていますけれどもね。
0243デフォルトの名無しさん
2011/07/22(金) 08:37:15.59同じ場所に書き込みをしているのだから、屋外なのはどちらも同じだろ。
トリを付けているか名無しかというのは、
素顔を晒して全裸になるか仮面で顔を隠して全裸になるかの違いだけ。
0244デフォルトの名無しさん
2011/07/22(金) 08:37:56.87それは相手がある程度物事を理解できるっていう前提が必要で、
Qみたいな頭の悪すぎるクズには通用しない
0245デフォルトの名無しさん
2011/07/22(金) 08:40:45.48数値計算の分野で、
doubleとfloatの選択をメモリ節約なんていう観点で決めないだろう・・・
という突っ込み。
逆に、700万×700万ならdoubleでも足りるからdoubleでやるの?そうじゃないでしょ。
0246デフォルトの名無しさん
2011/07/22(金) 08:43:08.02私が挙げた例えは、あくまで「正々堂々としているかどうかと、その行為が恥であるかどうかは別問題」ということを示すための(極端な)例えであって、
このスレにおける一連の流れとは独立したものであると考えて欲しい。
今の状況は、「無理数同士の積は無理数とは限らない」ということを示すために、私が√2×√2という例を挙げたところに、
あなたが「でも√2×πは無理数だ」と指摘したようなものである。
0247デフォルトの名無しさん
2011/07/22(金) 08:45:37.441000万でdoubleがNG、floatならOKというなら
1400万なら(充填率が一定の前提なら)1.96倍になるのでfloatでもほぼNG
700万なら0.49倍になるのでdoubleでもOK
という意味の数字。
0248デフォルトの名無しさん
2011/07/22(金) 08:53:52.51確かに、どうしても自分の間違いを認めようとしないような人を相手取るとちょっと困るね
それでも、自分が暴言を使わなければ少なくともその点では相手より勝ることになるから
俺はこういう場であえて暴言を使うことはほとんどない
0249デフォルトの名無しさん
2011/07/22(金) 08:59:01.510250デフォルトの名無しさん
2011/07/22(金) 09:01:34.43> doubleとfloatの選択をメモリ節約なんていう観点で決めないだろう・・・
精度に関しては当然だから言及していない。
> 逆に、700万×700万ならdoubleでも足りるからdoubleでやるの?そうじゃないでしょ。
そう(メモリ無尽蔵にあるからdoubleで良いじゃん)と言ってたのがdoubleデフォルト派。
0251デフォルトの名無しさん
2011/07/22(金) 09:19:17.04> に自覚的なので、恥と引き換えに指摘をいただけるのならそれでよし、としているだけですね。
恥知らずのお前に引き換える恥はない。
http://hibari.2ch.net/test/read.cgi/tech/1308749241/906 は
↓で決着済み。ロジックに問題はない。
>>159
> まあ、max の初期値が -1 でも問題ないことは認めますから、はやく最小値を求めるロジックを修正してください。
> >「もしあるなら、このスレには二度とこない」というのなら教えてやるよ。www
> 絶対にありません。それでいいです。霧
って言わないのか? www
0252デフォルトの名無しさん
2011/07/22(金) 10:45:18.16で終わる話題なのにいつまでQZで遊んでるん?
0253デフォルトの名無しさん
2011/07/22(金) 10:50:35.080254デフォルトの名無しさん
2011/07/22(金) 11:08:11.49案件によるでは終わらんだろ
ディフォルトが double か float かって話なんだから
0255デフォルトの名無しさん
2011/07/22(金) 11:53:12.29なら書き込まなくていい、と私は思う。
>http://hibari.2ch.net/test/read.cgi/tech/1308749241/906 は
>↓で決着済み。ロジックに問題はない。
>>>159
>> まあ、max の初期値が -1 でも問題ないことは認めますから、はやく最小値を求めるロジックを修正してください。
最小値の求めるロジックの方は決着はついていませんね。
>>239
SI単位接頭辞そのものには有効桁を示す機能はないでしょう。
有効桁を明記したいのなら、10進の浮動小数点表記にするはず。
私の分野の最近の論文は、最近は 9.0×10^9/?などと使うようになりました。http://www.bpro.or.jp/publication/document_record.php?id=180
μm, nm で表記したからといって、μm, nm の精度を要求されるわけではないのだから、はやく、http://hibari.2ch.net/test/read.cgi/tech/1308749241/906 の欠陥ロジックを修正してください。
0257デフォルトの名無しさん
2011/07/22(金) 12:47:32.22宿題スレでやることじゃないし
0258デフォルトの名無しさん
2011/07/22(金) 13:13:30.68任意単位の入力を仮定しなければいけないというのならば、doubleでもlong doubleでも
表現範囲が不十分なので、無限精度浮動小数点を使わなきゃいけないな。
まず、これまでのてめーの回答を任意単位の入力を受けられるようになおしてから
修正を要求しろ。てめーが回答したもの全部だ。
他人に要求するんだから、当然自分もするんだよな。wwww
バカの言いがかりは底が浅すぎる。ブーメランのようにてめーに帰る。ww
0259デフォルトの名無しさん
2011/07/22(金) 13:34:52.50926 名前: デフォルトの名無しさん 投稿日: 2011/07/19(火) 22:15:14.88
> あと、float をあえて使う場面はそうそうない。浮動小数点は double がデフォと学校で習いませんでしたか?
キミみたいな底辺PGは使う機会そうそう無いだろうけど、数値演算やってると不要な処でdoubleは使わないんだよ。
話の発端はこれなんだが、こんな非常識な事を書いて後に引けなくなった馬鹿が強弁してる
学生が見てるスレだから白黒は付けた方が良いと思うよ
0261デフォルトの名無しさん
2011/07/22(金) 13:54:45.91死ねよ。QZ。
floatを選択する場合は普通にある。QZが学校で習ったという(浮動小数点は double がデフォ)はウソ。
2011年時点のスタンダードハードウエアではdoubleよりfloatの方が速い、メモリ消費量は言わずもがな。
速度なんかどうでもいい場合は、doubleにしとけば精度や表現範囲に関する考慮を省ける。
速度を気にするならば、doubleの精度が必要な場合以外はfloatを使った方が良い。
0262デフォルトの名無しさん
2011/07/22(金) 14:09:11.24専門学校とかがそんな感じなの?
0263デフォルトの名無しさん
2011/07/22(金) 14:18:50.86俺はQZじゃないよ
QZはアレな部分もあるけど基本的にはトリを付けるじゃん、そこだけは認めてる
float の方が速い環境で速度を優先するならって前提が付くだろ
『基本は double だけど理由が有れば float を使う場合も有る』で良いと思うぞ
> 数値演算やってると不要な処でdoubleは使わないんだよ
これを撤回するつもりは無いの?
0264デフォルトの名無しさん
2011/07/22(金) 14:45:59.97> > 数値演算やってると不要な処でdoubleは使わないんだよ
> これを撤回するつもりは無いの?
無いよ。常に精度や値域考えて(floatで充分なところはfloat)選択するから。
数値演算やってると言いながら、無神経に「double選んどけ」っていう方が信じがたいわ。
0265デフォルトの名無しさん
2011/07/22(金) 14:59:59.19まぁ頑張りなよw
常に必要精度を考えて float と double が混在したコード書くほうが俺には信じがたいけどね
職業プログラマが
ttp://hibari.2ch.net/test/read.cgi/tech/1308749241/906
みたいな学生に任せとけば良いような問題に解答するのと同じくらい信じがたいw
0266デフォルトの名無しさん
2011/07/22(金) 15:09:41.12そういえば、あんた、技術計算歴10年の人だよね。撤退すると言いながらノコノコでてきて白黒つけろ? www
捨て台詞もキュートです。
> まぁ頑張りなよw
> 常に必要精度を考えて float と double が混在したコード書くほうが俺には信じがたいけどね
> 職業プログラマが
> ttp://hibari.2ch.net/test/read.cgi/tech/1308749241/906
> みたいな学生に任せとけば良いような問題に解答するのと同じくらい信じがたいw
0267デフォルトの名無しさん
2011/07/22(金) 15:45:11.58キュートだろ
職業プログラマだったら100%こんな問題には手を付けないもんなぁ
考えなくても書けるコードなんて暇つぶしにならん、Qzあたりも回答しないレベルだ
積み残されて時間切れになりそうなら仕方ないから書いてやろうかなって思うけど、
前スレをチェックしたら出題から回答まで20分くらいかw
嬉々として回答したらQzにケチ付けられて強弁に強弁を重ねてる脳内プログラマにしか見えないんだよw
0268デフォルトの名無しさん
2011/07/22(金) 15:48:10.78doubleがその2倍の情報量だって規格されてるの?
floatが16byteでdoubleが8バイトって違法?
0269デフォルトの名無しさん
2011/07/22(金) 15:52:17.39されてない
されてない
規格違反
0270デフォルトの名無しさん
2011/07/22(金) 15:54:52.20> 積み残されて時間切れになりそうなら仕方ないから書いてやろうかなって思うけど、
はあ? すでに期限切れだったから回答したんだか。元の依頼は
http://hibari.2ch.net/test/read.cgi/tech/1308749241/720
引っ込むと言って粘着してるし、的外れな言いがかり付けるし、お前やっぱQZだろ。
0271デフォルトの名無しさん
2011/07/22(金) 15:54:53.26その必要情報量は360Tを超えてる。これをまともに扱う
処理系と環境を教えて下さい。(スパースマトリクスだとかは
理屈になりませんので)
0272デフォルトの名無しさん
2011/07/22(金) 16:00:02.28法律で決まってる?
0273デフォルトの名無しさん
2011/07/22(金) 16:03:26.56いいえ
0274デフォルトの名無しさん
2011/07/22(金) 16:03:46.740275デフォルトの名無しさん
2011/07/22(金) 16:11:18.08[2] 問題文(含コード&リンク):
パーティクルを採用した、エフェクトプログラムデモを作成する。
0276デフォルトの名無しさん
2011/07/22(金) 16:12:14.06ところで、前回はとぼけられちゃったけど、C99禁止で浮動小数点例外の
ハンドリングどうやってんの?
0277デフォルトの名無しさん
2011/07/22(金) 16:13:21.32・光の粒子が回転移動。
・爆発エフェクト(破片の物理移動) など。
例)花火
0278デフォルトの名無しさん
2011/07/22(金) 16:13:41.95なにかしらのライブラリが必須を思われるので
何使ってるのか教えろハゲ
0279デフォルトの名無しさん
2011/07/22(金) 16:15:37.491.情報の洗い出し → 構造体
2.初期化 → 爆発時に初期データセット
3.実処理 → 移動、加減速、色調
4.後処理 → 情報の削除(メモリの解放)
0280デフォルトの名無しさん
2011/07/22(金) 16:18:43.88[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: VC6.0
[3.3] 言語: Cのみ
[4] 期限: 8月1日
0281デフォルトの名無しさん
2011/07/22(金) 16:24:23.64[5] その他の制限:エフェクトは自由にとのことでしたが、炎や、爆発や雷で作っていただけるとありがたいです。よろしくお願いします。
DirectXは使用不可です。コンソールアプリでお願いします。3Dは使わず、"*"や、"+"などの記号で表現お願いします。
0282デフォルトの名無しさん
2011/07/22(金) 16:26:50.04お手数ですが、コメントよろしくお願いします。
0283デフォルトの名無しさん
2011/07/22(金) 16:28:26.230284デフォルトの名無しさん
2011/07/22(金) 16:44:29.52unsingned long num_ = *( reinterpret_cast<const unsigned long *>(pData) );
pData += sizeof( unsigned long );
//etc
}
この関数で移動したpDataのアドレスを返すにはどうするのがスマートですかね?
引数を2重ポインタ使って返す?
返値で返す?
一般的な解法がわからん
0285デフォルトの名無しさん
2011/07/22(金) 16:47:11.120286デフォルトの名無しさん
2011/07/22(金) 16:48:05.33printf と sleep でそれっぽく作れるのか?
0287デフォルトの名無しさん
2011/07/22(金) 16:55:28.79すれ違いすいませんでした。
違うところで聞いてきます。
0288デフォルトの名無しさん
2011/07/22(金) 16:55:31.19お前の相手するのもう嫌なんだけど技術的な話だから答えるよ
まず、例外処理を使わないなんて言った覚えは無いよ
可搬性を重視するといっても程度問題だ、C++も使うって書いたよな
構造的例外処理がまだ一般的ではない時代は例外ハンドリングの概念は無かった
よって、ゼロ割や溢れが起きないように演算の前後に数値チェックを入れるのが必須だった
現在でもゼロ割で例外に引っかかる様なコードを書くと馬鹿にされるよ
ちゃんとチェックすれば例外なんて生じないからね
0289デフォルトの名無しさん
2011/07/22(金) 17:09:01.24DOS窓はMSDOSとは全然考え方が違う
http://www.asahi-net.or.jp/~qb3k-kwsk/rpg/program/tutorial/game1/m100.html
この当たりを参照
0290デフォルトの名無しさん
2011/07/22(金) 17:23:30.77curses みたいなもんか、MSって知らんうちに変なモンを作ってるなぁ
宿題以外で需要有るんだろうか?
0291デフォルトの名無しさん
2011/07/22(金) 17:24:18.270292デフォルトの名無しさん
2011/07/22(金) 17:36:10.76http://homepage2.nifty.com/LM/kurogam/w2k-ansi.htm
これ使ってもいいのなら簡単だよな
0293デフォルトの名無しさん
2011/07/22(金) 17:44:25.59入れとけば昔のDOSプログラムもリコンパイルして動かせるのに....こっちも需要は無いかw
0294デフォルトの名無しさん
2011/07/22(金) 17:57:37.69超小規模だけど、1文字を文字色と背景色を上手く変えて1画素として扱えるようにして、
ファミコンクオリティゲームをコマンドプロンプトで動かそうってのがある
0295デフォルトの名無しさん
2011/07/22(金) 18:08:45.35> お前の相手するのもう嫌なんだけど技術的な話だから答えるよ
撤退宣言したくせにノコノコでてきたのはお前だぞ。しかも呼んでないのに。
> まず、例外処理を使わないなんて言った覚えは無いよ
C99のライブラリダメでFP例外はアリかよ。ずいぶん都合の良いルールだな。
そんな曖昧なルールを根拠にdouble強要すんなよ。
> よって、ゼロ割や溢れが起きないように演算の前後に数値チェックを入れるのが必須だった
> 現在でもゼロ割で例外に引っかかる様なコードを書くと馬鹿にされるよ
それ古くねーか。
うちのスタンダードは、いちいち数値チェックなんか、(速度的に)入れてらんねーから、
とりあえず計算する→例外発生したら条件替えてやり直しだな。
稀にしか発生しないから*例外*な。
0296デフォルトの名無しさん
2011/07/22(金) 18:20:02.12> C99のライブラリダメでFP例外はアリかよ。ずいぶん都合の良いルールだな。
程度問題って言葉が理解できないからお前の相手は嫌なんだよ
> それ古くねーか
> うちのスタンダードは、いちいち数値チェックなんか、(速度的に)入れてらんねーから、
> とりあえず計算する→例外発生したら条件替えてやり直しだな。
やり直しが可能なら落ちたってかまわないよ
でも例えば、NC加工中に落ちたり止まったりしたら材料が無駄になるだろ
素人に使わせるコードが例外出してダイアログ出したら電話がかかってくる
だいたい関数の引数チェック程度だったらたいしたオーバーヘッドでもねぇだろ
まぁお前さんの脳内でどんな凄いプロジェクトが進行中なのかは知らんけどねw
0297デフォルトの名無しさん
2011/07/22(金) 18:34:31.43[2] 問題文(含コード&リンク):http://codepad.org/biBuP97v
このプログラムの入力処理、出力処理をそれぞれvoid input(???),void output(???)として関数化し、
同じ動きをするプログラムに書き換えなさい
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限:7/29まで
0298デフォルトの名無しさん
2011/07/22(金) 18:38:54.87> 程度問題って言葉が理解できないからお前の相手は嫌なんだよ
そういうあいまいな*程度問題*とやらで、デフォルトdoubleを強要すんな。
floatな関数の可搬性を根拠にしてみたけど、引っ込みつかなくなって強弁してるのお前だろ。w
> でも例えば、NC加工中に落ちたり止まったりしたら材料が無駄になるだろ
> 素人に使わせるコードが例外出してダイアログ出したら電話がかかってくる
誰がプログラム止めるって言ったよ。例外をプログラム中で捕捉するための例外処理だぞ。
例外が発生したことなんて利用者は気づかねーよ。
0299デフォルトの名無しさん
2011/07/22(金) 18:49:05.95まだ続けるつもりかよ、素人がw
float の可搬性なんて話を俺が本気で根拠にしてると思うのか?
だからお前は素人なんだよ
ある一文を書けば俺はグウの音も出なくなるんだが、お前はそれについて気が付かない
だから俺はお前を素人だと断定してからかってるんだよ
悔しかったらある一文を書いてみなよw
でもなぁ『数値演算やってると不要な処でdoubleは使わないんだよ』これは撤回しろよ
あまりに認識が現実離れしすぎてる
理由はfloat 使うと面倒だからなんだよ
レビューじゃ絶対突っつかれるし、後で精度不足に気が付いたら書き直しになる
普通の現場じゃ double と float が混在した不気味なコードは使わないからなw
後の面倒を考えたら全部 double にした方が楽なんだよ
まぁお前さんも現場に入ればすぐ判るよ
0300デフォルトの名無しさん
2011/07/22(金) 18:52:54.15それと>>297
http://codepad.org/V1e2k3bc
0301デフォルトの名無しさん
2011/07/22(金) 19:11:15.15そうか? 逆にオレは
> 数値演算やってると不要な処でdoubleは使わないんだよ
これを撤回しろというお前の素性を疑っている。
> a = (float)tan( (double)b );
このキャストでもヘボPGと認定したが。w
> 理由はfloat 使うと面倒だからなんだよ
また新しい根拠を捏造しだしたのか? 墓穴掘ってるぞ。
面倒でもやらなきゃいけないのがお仕事なんだよ。
特別に教えてやろう。SSEにfloatはdoubleの倍突っ込めるんだよ。
0302デフォルトの名無しさん
2011/07/22(金) 19:23:42.24少し流れてしまったのですがどなたか>>77をお願いいたします。
0303デフォルトの名無しさん
2011/07/22(金) 19:24:49.98俺の質問の答えは判らんのか?
まぁ素人は知らんかもな
別に捏造でもなんでもないぞ、どっちかというと可搬性が捏造だw
double にしといた方が楽だからって理由はカッコ悪いだろ、だから隠してたw
そろそろ終わりにしたいから本音を書いただけだ
敢えて double と float の混在ソースなんて面倒を買う必要はないだろ
勿論、何らかの必然性が有れば別だけどな、SSEもその一つとなりうるだろう
0304デフォルトの名無しさん
2011/07/22(金) 19:25:50.53その問題は前スレで見たよ、回答も有ったと思う
誰も回答しないのはそういう理由じゃないかな
0305デフォルトの名無しさん
2011/07/22(金) 20:07:57.81> ある一文を書けば俺はグウの音も出なくなるんだが、お前はそれについて気が付かない
それを書けばグウの音でなくさせて終了させられるんじゃないのか? ww
うーん、何故それをせず、可搬性とか適当な事言ってたのを認めたんだろう? www
> SSEもその一つとなりうるだろう
SSEはスタンダードっていってるじゃん。
逆に、いまどきSSE使えない環境で数値計算やってますって方が嘘くさいぞ。
0306デフォルトの名無しさん
2011/07/22(金) 20:18:03.15のプログラムがエラーになってしまい困っています
何が原因でどうすればいいのか教えてください!
0307デフォルトの名無しさん
2011/07/22(金) 20:21:46.10typo
エラーメッセージ嫁
0308デフォルトの名無しさん
2011/07/22(金) 20:23:35.190309デフォルトの名無しさん
2011/07/22(金) 21:08:57.08エラーを修正しましたが、またエラーがでます
http://codepad.org/kl31FANo
何が原因なんでしょうか?
0310デフォルトの名無しさん
2011/07/22(金) 21:30:59.25あまり褒められたソースじゃない、間に合わせで書いてる。
�@
http://codepad.org/DvGtxGG5
�A
http://codepad.org/AOcw0k4Q
�B
http://codepad.org/EZTv4FfQ
0311デフォルトの名無しさん
2011/07/22(金) 22:03:51.21素人な上に読解力も無いのか?
可搬性に関して俺が書いた時にC99の仕様なんて持ち出さずに『ある一文』を書けば俺はグウの音も出なかった、
その一文とは何かと聞いてるんだよ
素人には判らないと思うけど可搬性について考慮した事が有る奴なら誰でもわかる話だ
お前は素人なんだよ
0312デフォルトの名無しさん
2011/07/22(金) 22:23:29.08memcpy(p2,p1,2); → p2 = p1;
memcpy(p2,&p1,10); → p2 = p1;
全体的にコードの意図が不明だが、
第3引数の2とか10はどういう意図?
0313デフォルトの名無しさん
2011/07/22(金) 22:34:38.06�@だけ書いてみた
http://codepad.org/GzASmpap
0314デフォルトの名無しさん
2011/07/22(金) 22:36:15.362と10はコピーするためのバイト数を表わしたつもりです...
0315デフォルトの名無しさん
2011/07/22(金) 22:41:11.07自分の中で
何やる(やりたい)のか
わかってる
0316デフォルトの名無しさん
2011/07/22(金) 22:49:53.26�@
http://codepad.org/LukVMIny
0317デフォルトの名無しさん
2011/07/22(金) 23:00:40.18何をコピーしたいの?
とりあえずmemcpyの第一引数、第二引数にはポインタを渡さなければ
ならないが、それも間違っている。
2,10はなんのサイズ?わざと半端なサイズコピーして、メモリの中を
見ようとしているの?その割にはprintfのなかで%sで受けると、
まずいことになるのだけれど。
0318デフォルトの名無しさん
2011/07/22(金) 23:00:55.53メモリーの内容をコピーすることですが
0319デフォルトの名無しさん
2011/07/22(金) 23:29:15.97>とりあえずmemcpyの第一引数、第二引数にはポインタを渡さなければ
ならないが、それも間違っている。
ご指摘の通り下記のようにしましたが、これで合ってますか?
http://codepad.org/90TBENdS
0320B
2011/07/22(金) 23:33:45.45typedef struct{
char name[8];
int age;
} PROFILE;
int main(){
char c[10];
PROFILE p1;
PROFILE *p2;
strcpy(p1.name, "hoge");
p1.age = 10;
printf("%s;%d\n", p1.name, p1.age);
p2 = &p1; // memcpy(&p2, &&p1, 4); p1の先頭アドレスをp2にコピーすることによりp2をセット
printf("%s;%d\n", p2->name, p2->age);
memcpy(c, &p1, 10);
printf("%s;%d\n", c, c[8]);
}
0321デフォルトの名無しさん
2011/07/22(金) 23:35:13.68やっぱり2,10の意図が不明。
memcpy(&p2,&p1,2); → memcpy(&p2,&p1,sizeof(p2));
memcpy(c,&p1,10); → strcpy(c,p1.name);
なら、まぁいいかと思うけど。
0322デフォルトの名無しさん
2011/07/22(金) 23:37:38.43ありがとうございます!
>>321
実を言うと、そこは適当な容量ってことだったので特にこだわってません
0323デフォルトの名無しさん
2011/07/22(金) 23:40:05.29p1, p2の型が違うっていうのは、バグになり易い。
PROFILE prof1, *pProf2;
とかの方がいい。
後、
printf("%s;%d\n", c, c[8]);
これは何を期待している?エンディアン次第で結果が変わるし、
%dは%hhdにすべきかな。
0324デフォルトの名無しさん
2011/07/23(土) 00:02:32.56#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
char name[8];
int age;
} PROFILE;
int main(){
char c[10];
PROFILE prof1,*prof2;
strcpy(prof1.name, "hoge");
prof1.age = 10;
printf("%s;%d\n", prof1.name, prof1.age);
prof2 = &prof1;
memcpy(&prof2, &prof1, 4); //p1の先頭アドレスをp2にコピーすることによりprof2をセット
printf("%s;%d\n", prof2->name, prof2->age);
memcpy(c, &prof1, 10);
printf("%s;%hhd\n", c, c[8]);
}
0325デフォルトの名無しさん
2011/07/23(土) 00:05:12.72%hhdって何ですか?
0326デフォルトの名無しさん
2011/07/23(土) 00:16:52.02>memcpy(&p2, &&p1, 4);
&&p1だと出力できない気がする
0327デフォルトの名無しさん
2011/07/23(土) 00:34:30.83[2] 問題文(含コード&リンク):http://codepad.org/biBuP97v
20人分の生徒の名前と、5教科(国語、数学、英語、理科、社会)の点数を入力し、
data.txtファイルに保存するプログラムを作成しなさい。( 保存ファイルの書式は、各自で設計すること)
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限:7/29まで
よろしくお願いします。
0328デフォルトの名無しさん
2011/07/23(土) 01:08:54.56ミスです。
0329デフォルトの名無しさん
2011/07/23(土) 01:19:42.19http://codepad.org/5pupoPGW
0330329
2011/07/23(土) 01:21:24.65直しておいてください
http://hibari.2ch.net/test/read.cgi/tech/1309527259/132
>>258
>任意単位の入力を仮定しなければいけないというのならば、
そんなことは言っていませんね。
単位に仮定がない以上、double あるいは float で表現できる数値に対して、常に最小値が求まる
ロジックであればいいだけの話。
http://hibari.2ch.net/test/read.cgi/tech/1308749241/906 はロジックが破綻しており、
float で表現できる複数の数値があたえられたとき、場合によってはそれらの最小値を
求めることができない実装になっていることを、指摘しているだけです。
malloc()/free() 信者論争のときといい、すぐに都合のいい拡大解釈を行うんですね。
とにかく、http://hibari.2ch.net/test/read.cgi/tech/1308749241/906 の欠陥ロジックを修正してください。
>>259
>> あと、float をあえて使う場面はそうそうない。浮動小数点は double がデフォと学校で習いませんでしたか?
>キミみたいな底辺PGは使う機会そうそう無いだろうけど、数値演算やってると不要な処でdoubleは使わないんだよ。
>
>話の発端はこれなんだが、こんな非常識な事を書いて後に引けなくなった馬鹿が強弁してる
>学生が見てるスレだから白黒は付けた方が良いと思うよ
普通にC で浮動小数点演算を記述すると NDP/FPU 相手のコードを吐くものと思っておりましたが、
いろいろお話を伺うと、最近のコンパイラは SSE に対応するコードも吐くようですね。レジスタは共用しているようだし。
もっとも、複数のfloat 演算を一つの命令で一気にこなすことまでは、普通に書くだけではだめ、
との指摘もあるようですし、もう少し調べておきましょうか。
教育的配慮から、私の「float をあえて使う場面はそうそうない」という発言は撤回します。
ただし、http://hibari.2ch.net/test/read.cgi/tech/1308749241/906 で float を使うことについては疑問視とします。
0332デフォルトの名無しさん
2011/07/23(土) 01:37:49.59>>329
http://codepad.org/BskPKOxm
0334デフォルトの名無しさん
2011/07/23(土) 07:34:24.01ただし相互互換性は原則的に保証されない
処理系のfloatはA type of floatとなり処理系が異なれば精度も違ってくるだろうし
(勿論最小限の制約は残るだろうけど)
それこそSSEを前提とするようなものも出現するかもしれない。
これに対してdoubleはIEEEかどっかが決定するThe type of doubleって感じで
ま、業界標準の浮動小数点実数型で、多くの言語もこれと互換のものを用意する
ことが多くなるって感じ(つまり事実上すべての言語処理系が言語的には非公式に実装)
そもそもsingleが無いからdoubleは形容詞じゃなく名詞として扱われてるし
0335デフォルトの名無しさん
2011/07/23(土) 08:21:28.19お前がしつこく聞いていた「どんなプロジェクト」か?
狭い業界なんだから身バレの可能性が高くなるわ。こんなクソスレで書けるかバカ。
結局言いがかりの根拠は押し付けられた古いしきたりだったようだな。
> a = (float)tan( (double)b );
ヘボなハケンがよくこういうの書くんだよな。やっぱり直感は正しかったようだ。
>>331 うんこ:
> 教育的配慮から、私の「float をあえて使う場面はそうそうない」という発言は撤回します。
ほら、梯子外されちゃったぞ。w
0336デフォルトの名無しさん
2011/07/23(土) 08:23:58.000337デフォルトの名無しさん
2011/07/23(土) 08:25:32.82メモリの時もそうだったが、てめーが勝手に設定したルールを押し付けるから、
オレも勝手にルールを設定しててめーに押し付ける。
てめーがオレのルールに従うなら、オレもてめーのルールを受け入れてやる。
過去のうんこコードを任意単位と任意値域に対応できるようになおせ。
0338デフォルトの名無しさん
2011/07/23(土) 08:26:16.59longの十進法表示に対応するのが%ld
intの十進法表示に対応するのが%d
shortの十進法表示に対応するのが%hd
chrの十進法表示に対応するのが%hhd
0339デフォルトの名無しさん
2011/07/23(土) 08:56:47.86だって三次元データを扱おうとすると、3つセットだし、
4x4の行列を用意すると16個。
オブジェクトを生成するにしろ、リプレイデータを保存するにしろ、
doubleじゃあ息苦しくなってくる。
0340デフォルトの名無しさん
2011/07/23(土) 09:07:57.34解らないなら解らないって言えよw
別にお前の脳内プロジェクトなんて知りたくもないわw
『可搬性を考えたら float を使うべきではない』これは誤りではない
しかし、『可搬性を考えたら double を使うべきだ』これは誤りだ
お前にこの違いが解るか?
0341デフォルトの名無しさん
2011/07/23(土) 09:14:06.01> 『可搬性を考えたら float を使うべきではない』これは誤りではない
これは捏造だと認めただろ。アルツハイマーが進行しているようだな。
>>303
> 別に捏造でもなんでもないぞ、どっちかというと可搬性が捏造だw
0342デフォルトの名無しさん
2011/07/23(土) 09:32:35.59お前は本当に頭が悪いな
『可搬性を考えたら double を使うべきだ』は誤りだって書いてるだろ
こんな良いヒントに無意味な突っ込み入れるなよw
0343デフォルトの名無しさん
2011/07/23(土) 09:49:16.90QZの尻馬にのってノコノコでてきて、完膚なきまでに叩きのめされ、その上にQZに梯子外されて。
何度も撤退表明しときながらまだ粘着するのか。惨めすぎる。ww
0344デフォルトの名無しさん
2011/07/23(土) 09:56:08.12お前よりはマシだ
>任意値域に対応できるよう
実は面白い。整数に関していえば実は今インプリメント中だったりします。遠くない未来にこのスレでお見せできるかと思います。
0346デフォルトの名無しさん
2011/07/23(土) 09:57:28.33質問者こんなんじゃ質問し辛いだろ。現に荒れてから質問一気に減ったじゃん。
日々の仕事からの現実逃避娯楽を奪わんでくれw
0347デフォルトの名無しさん
2011/07/23(土) 09:59:46.97そんなうんこコードで回答されてもお前以外は誰も得しない。隔離スレで勝手にやってろ。
>>346
夏休みに入ったからだよ。
0348デフォルトの名無しさん
2011/07/23(土) 10:03:31.69俺の質問に float 馬鹿が答えるか降参してくれるのを待ってる
0349デフォルトの名無しさん
2011/07/23(土) 10:17:52.11こういうクソコードかく底辺派遣はストレス溜めてるねえ。
主張に欠陥があることを認めながら粘着つづける。ああ、惨めすぎる。w
0350デフォルトの名無しさん
2011/07/23(土) 10:31:11.62降参ならさっさと降参しろよw
そもそも、そんなコードを書くことは無い、だって double しか使わないんだもんw
どこまで見苦しいんだよw
0351デフォルトの名無しさん
2011/07/23(土) 10:31:21.94うんこ◆QZaw55cn4cでさえもすでに収拾をつける方向というのに、
うんこ以下が粘着しつづける。
>>349 はうんこに絡まれた float 馬鹿のほうかね。
ttp://hibari.2ch.net/test/read.cgi/tech/1308749241/906 を
>>267 >嬉々として回答したらQzにケチ付けられて強弁に強弁を重ねてる脳内プログラマ
0352デフォルトの名無しさん
2011/07/23(土) 10:42:32.71普段は書かないとか言い訳してる。wwww
つい、底辺派遣の地がでちゃったんだろうね。一発で底辺派遣と見分けられるクソコード。ww
きっかけ作ったうんこも撤退したのに粘着し続ける底辺派遣惨めすぎる。
学生さんは底辺派遣にならないように、自分で課題こなしてしっかり勉強しようね。
0353デフォルトの名無しさん
2011/07/23(土) 10:45:37.68夏ですね^^
0354デフォルトの名無しさん
2011/07/23(土) 10:46:04.90お前は本当に終わってるな
部分抜粋じゃなくて全部を引用しろよ
それは『こういうコードを書くハメになるから駄目でしょ』って意味で書いただろ
答えも解らん、降参するのも悔しい、つまりは頭が悪い上に潔さも無いって事か
もう回答か降参以外にはレスしないからね
0355デフォルトの名無しさん
2011/07/23(土) 10:50:11.89今度はダメな例とか言い訳してる。www 底辺派遣惨め。www
0356デフォルトの名無しさん
2011/07/23(土) 10:54:24.77うんこ◆QZaw55cn4cでさえもすでに収拾をつける方向というのに、
うんこ以下が粘着しつづける。
>>355 はうんこに絡まれた float 馬鹿のほうかね。
ttp://hibari.2ch.net/test/read.cgi/tech/1308749241/906 を
>>267 >嬉々として回答したらQzにケチ付けられて強弁に強弁を重ねてる脳内プログラマ
0357デフォルトの名無しさん
2011/07/23(土) 11:02:52.65しつこいわ、俺もだけどw
>>17 を見て駄目な例じゃないと読むならお前は何処の国の人間だ?
まぁ >>17 は嘘なんだけどな、float を使うにしてもこんな実装にはならん
最後に大ヒントだ『生と裸は駄目だよ』
解るかなぁ、解んないだろうなぁ
3で割った余りを表示したいんですがうまく出来ません
よろしくお願いします
#include <stdio.h>
int main(void){
int num,c;
num=getchar();
c=num%3;
switch(c){
case '0':
printf("num/3の余りは0です\n");
break;
case '1':
printf("num/3の余りは1です\n");
break;
case '2':
printf("num/3の余りは2です\n");
break;
default:
printf("入力ミスです\n");
break;
}
return 0;
}
×num=getchar();
○scanf("%d", &num);
0360デフォルトの名無しさん
2011/07/23(土) 11:17:57.42書き換えましたが、何を入力しても「入力ミスです」と表示されてしまいます
0361デフォルトの名無しさん
2011/07/23(土) 11:20:26.47×case '0':
○case 0
0362デフォルトの名無しさん
2011/07/23(土) 11:22:55.78ありがとうごさいます出来ました
0363デフォルトの名無しさん
2011/07/23(土) 11:24:23.34[2] 問題文(含コード&リンク):http://codepad.org/vPJorQaD
はじめに操作メニューを表示し、データの新規入力か閲覧かを選択させる。
新規入力は、上記のリンク先のプログラムの仕様に沿ったものとし、閲覧はdata.txtの内容を読み込み、読み込んだ人数分を表のように各項目が上下に揃って表示されるように設計しなさい。
詳細設定は、各自で行って良い。各自で決めた設計は、プログラムの先頭にコメントで記述すること
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限:7/29まで
0364デフォルトの名無しさん
2011/07/23(土) 11:39:47.02見れば見るほど底辺派遣コード。
>>357
>>17はダメな例じゃなくてwarinigを避けるための例
底辺派遣らしく真偽を間違えて
> と書くと『有効精度が失われます』みたいな warning が出るから
とかいてるけど、
> と書かないと『有効精度が失われます』みたいな warning が出るから
が正しい。
つまり、warningを避けるために本気で書いた底辺派遣コード。www 底辺派遣惨め過ぎる。
0365デフォルトの名無しさん
2011/07/23(土) 11:51:18.20うんこ◆QZaw55cn4cでさえもすでに収拾をつける方向というのに、
うんこ以下が粘着しつづける。
>>364 はうんこに絡まれた float 馬鹿のほうかね。
ttp://hibari.2ch.net/test/read.cgi/tech/1308749241/906 を
>>267 >嬉々として回答したらQzにケチ付けられて強弁に強弁を重ねてる脳内プログラマ
0366デフォルトの名無しさん
2011/07/23(土) 11:57:39.610367デフォルトの名無しさん
2011/07/23(土) 12:02:22.70言い訳も突き崩されて涙目でコピペを続ける底辺派遣。www 惨めすぎる www
学生諸君はこういうコード書いたら一発でバカにされるという事を良く覚えておこう。
「デフォルトはdouble」は憶えちゃだめだぞ。ウソだから。
0368デフォルトの名無しさん
2011/07/23(土) 12:03:28.140369デフォルトの名無しさん
2011/07/23(土) 12:12:05.88うんこ◆QZaw55cn4cでさえもすでに収拾をつける方向というのに、
うんこ以下が粘着しつづける。
>>367 はうんこに絡まれた float 馬鹿のほうかね。
ttp://hibari.2ch.net/test/read.cgi/tech/1308749241/906 を
>>267 >嬉々として回答したらQzにケチ付けられて強弁に強弁を重ねてる脳内プログラマ
0370デフォルトの名無しさん
2011/07/23(土) 12:56:29.61> a = (float)tan( (double)b );
言い訳も突き崩されて涙目でコピペを続ける底辺派遣。www 惨めすぎる www
このスレに来るような落ちこぼれ候補の学生諸君のために特別に講義だ。
これが、底辺派遣が書いたコードだ
(1) a = (float)tan( (double)b );
さて、これのどこが悪いか? bをキャストしている点だ。floatからdoubleへ
の格上げは自動で行われるから、不要なのである。
(2) a = (float)tan( b );
これが>>17で例示すべきだった記述だ。これなら「コンパイラの警告を避ける
ために面倒な記述が必要」という屁理屈を付ける事は可能だ。
キャストは強力すぎて、せっかくコンパイラが発見しているコーディングミスを
隠してしまうので、使用は必要最小限にとどめるべきである。
ところが、底辺派遣と呼ばれる連中は要不要の判断が面倒なのか、それもと出来な
いのか、はたまた脊髄反射なのかわからないが、全部キャストする。
あらゆるところでキャストする。意味不明のキャストをする。
したがって(1)のようなコードを書く奴は底辺派遣と見なされバカにされる。
(2)も、C99ではtanfが定義されてるからバカにされる対象となることを忘れてはいけない。
0371デフォルトの名無しさん
2011/07/23(土) 16:25:22.27[2] 問題文(含コード&リンク):
演習目的
�@構造体やポインタを利用して、データ構造を設計することができる。
�A構造体をreturn文で返却する関数を作ることができる。
�Bポインタを扱うことができる。
課題
プロフィールを入れる構造体を定義し、その構造体に値を入れる関数と、
メンバの値を表示する関数を作成しなさい。
ただし、呼び出し側では構造体の配列を宣言して、複数人のプロフィールを
入れた例を示しなさい。プロフィールとする項目は自由に決めてよい。
ただし、3つ以上の型を使用すること。
例
氏名:char name[]
取得単位数:int unit
身長:double height
…
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限:7月27日
[5] その他の制限:特になし
前板で回答がなかったのでもう一度投稿させてもらいました。
お手数ですが、どなたかよろしくお願いします。
0372デフォルトの名無しさん
2011/07/23(土) 16:48:25.87『(1990年代の意味での)可搬性を考えたらCではdoubleを使うべきだ』○
『(長いタイムスパンでの)可搬性を考えたらCではfloatを使うべきある』○
『(長いタイムスパンでの)可搬性を考えたらCではdoubleを使うべきだ』△
0373デフォルトの名無しさん
2011/07/23(土) 17:14:30.01returnしてないけど題意的にこれでいいのかなと
http://ideone.com/TvDnJ
0374デフォルトの名無しさん
2011/07/23(土) 17:27:32.66構造体1個だけ入力し戻す関数
構造体(配列)を引数にとる関数
に分離
http://ideone.com/gyFR3
0375デフォルトの名無しさん
2011/07/23(土) 18:26:47.17http://codepad.org/WIFtlyRf
0376デフォルトの名無しさん
2011/07/23(土) 18:46:27.42[2] 問題文(含コード&リンク):http://codepad.org/WIFtlyRf
管理できる生徒数を最大20人とし、入力を途中で中断する機能、追加入力する機能を追加しなさい。
各自で詳細設定を行い、プログラムの先頭にコメントで記述すること
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限:7/29まで
0377デフォルトの名無しさん
2011/07/23(土) 19:40:43.05>>310
ありがとうございます。過去ログにあったようですが、助かりました。
>>313
ありがとうございます、いろんな書き方があって勉強になります。
>>316
ありがとうございます。大勢のかたに解答していただいて申し訳ありません。
0378デフォルトの名無しさん
2011/07/23(土) 20:39:53.29[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク): http://codepad.org/Iks8CtjTのプログラミングはscanfでint型の配列に数値
char型の配列に四則演算子を入れています。
これを利用して多項でも入力可能な電卓を作成させなさい。
例:式:10/3*3 enter key 答え:10
答えの結果はint型で宣言すること。
・講師の方がアルゴリズムが好きな方なので割り算、掛け算が多く連続しても結果が
正確にでプログラミングも教えて頂けると幸いです。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: (
[4] 期限: [2011年07月24日18:00まで
[5] その他の制限: 習って2ヶ月です。多項の式に対応したif文やfor文で回して計算結果が出せるようなアルゴリズムがあれば教えて頂けますか?
宜しくお願いします。講師の方がアルゴリズムが好きな方なので割り算、掛け算が多く連続しても結果が
正確にでプログラミングも教えて頂けると幸いです。
8/3*3/4*2+5*9/3
結果:19
0379デフォルトの名無しさん
2011/07/23(土) 20:56:02.41誰かに丸投げしろっていう課題なのか?
0380デフォルトの名無しさん
2011/07/23(土) 21:36:06.570383デフォルトの名無しさん
2011/07/23(土) 21:47:55.30途中の値は有理数で保持
出力時に除算
0384デフォルトの名無しさん
2011/07/23(土) 21:52:08.89こういう時はどうするのかな?
0385デフォルトの名無しさん
2011/07/23(土) 21:57:37.77http://codepad.org/Iks8CtjT
scanfでint型の配列に 数値、char型の配列には四則演算子が入ります。 これを利用して多項でも入力可能な電卓を作成させたいです。計算結果はint型とする。
[3.1] OS: Windows
[3.2] コンパイラ:gcc
[3.3] 言語:C
[4] 期限:2011年07月24日18:00まで
[5] その他の制限:習って2ヶ月です。多項の式に対応したif文やfor文で回して計算結果が
出せるようなアルゴリズムがあれば教えて頂けますか?
int型なので左辺から順番に先にやると(/が先に来た場合)結果がおかしくなる。
OK:8/3*3/4*2+5*9/3 結果:19
NG:8/3*3/4*2+5*9/3 結果:21
0386デフォルトの名無しさん
2011/07/23(土) 22:00:28.70何度もすみません。書き直しました。
http://codepad.org/n47BkpXa
上記でも、可能ですが上記の制限に記したように結果が生じてしまいます。
>講師の方がアルゴリズムが好きな方なので
ならば、こちらをプレゼントしてみて、反応を教えてください。
http://codepad.org/Hf0IP3LK
>>385
バグがありましたので訂正します。減算のオペランドが入れ替わっていました。
http://ideone.com/61ALt
0389デフォルトの名無しさん
2011/07/23(土) 22:29:04.53早速の回答ありがとうございます。
問題に記したソースを基に作成して頂ければ幸いです。
たぶん、計算の優先順位をどう作るかだと思います。ご指導お願いいたします。
では >>331 をチェックしてみてください。
この問題はすでに、>>221 で依頼があり、そのときは与えられたプログラムに沿うようにして >>331 を書きました。
なお、当時は期限切れであったので、>>331 は隔離スレに飛ばしていますが、このスレはネタスレで、当然無料です。:-)
0391デフォルトの名無しさん
2011/07/23(土) 22:44:32.90>入力を途中で中断する機能、
データを入力するところで中断要求(例えばctrl+D)が来たらメニューに戻るってことでOK?
>追加入力する機能
現状でも追加入力できてね?
追加入力のイメージが湧かないんだけど・・・
0392デフォルトの名無しさん
2011/07/23(土) 23:00:10.18まともなもん作れよ。うんこ。
$ ./unko < X
Bus error (core dumped)
0393デフォルトの名無しさん
2011/07/23(土) 23:10:15.06実は>>221でやってる方法を提示したら結果が違うと指摘されました。
たぶん、分子と分母で分けて計算する考えだと思います。
例8/3*4*9/4+5
8×4×9
------------ + 5というイメージだと思います。ご指導お願いします。
3×4
出来ればmain関数の中だけで行えませんか?まだ関数をつくる所まで習っていないので。
Vine Linux 5.2 でも FreeBSD 8.2 でも Windows/cygwin (すべて x86) でも現象が確認できませんね。
bus error ということは、アラインメントの厳しいアーキテクチャかな?
よろしければ実行環境の詳細を教えてください。
0395デフォルトの名無しさん
2011/07/23(土) 23:17:07.63自分で考えろ。クズ。
演算順序を入れ替える方法(実は難しい)でも、>>331 で採用している「途中経過を有理数(分子分母)でキープする」方法でも、
8/3*4*9/4 と 8*4*9/(3*4) とで結果は一緒なのに、
「結果が違う」という返答は極めて不正確ですね。
「やり方が違う」なら異論があるにせよ意思疎通が図れる可能性があるのですが。
値はあっているはずですので、プログラムの内容をしっかり把握したうえで、もう一度アタックしてみてください。
それでも反応が同じならば、日本語を正確に扱えない馬鹿講師みたいですから、あきらめたほうがいいと思います。弟子は師匠のいうことをきかなければいけませんが、師匠を選択する権利と自由だけはあります。
あと、main() にまとめるのはしんどいですね。
>>392
「./unko < X」の X ってなんですか?
あとコンパイラとコンパイルオプションも教えてください。
そんなバグレポートには客観的にみてバグの存在を主張する能力はありませんね。
いつぞや、どなたかから
http://hibari.2ch.net/test/read.cgi/tech/1304410950/728
のようなバグレポートをいただきましたが、結局
http://hibari.2ch.net/test/read.cgi/tech/1304410950/827
でツールが馬鹿だったし再現性もない、という結論になりました。
今回も、チェックの仕方がわるいんじゃないですか?多分。
0399デフォルトの名無しさん
2011/07/23(土) 23:37:43.51ソースを一回眺めれば、すぐにわかるバグだが。www
ヘボはいつまでたってもヘボ。
バックトレースやろうか? 余計混乱するだろうけど。w
(gdb) run <X
Starting program: unko <X
Program received signal SIGBUS, Bus error.
0x00000008008cb403 in malloc_usable_size () from libc.so
(gdb) where
#0 0x00000008008cb403 in malloc_usable_size () from libc.so
#1 0x00000008008cde16 in malloc_usable_size () from libc.so
#2 0x00000008008ce1c7 in malloc_usable_size () from libc.so
#3 0x00000008008d139f in malloc () from libc.so
#4 0x0000000800947b8b in memchr () from libc.so
#5 0x0000000800947a45 in memchr () from libc.so
#6 0x000000080093c657 in open () from libc.so
#7 0x000000080093e0ca in vfprintf () from libc.so
#8 0x000000080092bf2a in printf () from libc.so
#9 0x0000000000400bfb in main () at unko.c:82
なぜ、
int a;
printf("%d\n", a) / unko.c 82 で bus error が出るのかちょっと想像がつきません。
よろしければ リダイレクトで与えた X の内容を教えてください。
0401デフォルトの名無しさん
2011/07/24(日) 00:13:13.30コアダンプしてるしWWW
必死でウケ狙ってるわけだな
0402デフォルトの名無しさん
2011/07/24(日) 01:10:57.67http://codepad.org/n47BkpXa
上記のソースを提出しました。これだと8/3*3=6になってしまい、
8/3*3=8になりません。
問題点を教えて 頂けませんか?
宜しくお願いします。
0403デフォルトの名無しさん
2011/07/24(日) 01:13:44.73>データを入力するところで中断要求(例えばctrl+D)が来たらメニューに戻るってことでOK?
それでいいです
>追加入力する機能について
データ入力するところで中断要求したあと、そのデータ入力を再開できるようにする機能のこと
0404デフォルトの名無しさん
2011/07/24(日) 01:25:12.70判ってて言ってると思うけど、Xの内容は出してこないよ。
うちの環境を幾つか試したけどBus errorにはならない。
イチャモン付けたいだけで、検証可能な証拠は絶対にみせないから。
というより、他のスレに移動してやってくれ。
0405デフォルトの名無しさん
2011/07/24(日) 01:37:26.31演算の優先順位を変えずにintでやってるから、
8/3*3 -> 2*3 -> 6 になる。
0406デフォルトの名無しさん
2011/07/24(日) 01:45:07.69[2] 問題文(含コード&リンク):
演習目的
�@構造体やポインタを利用して、データ構造を設計することができる。
�A構造体をreturn文で返却する関数を作ることができる。
�Bポインタを扱うことができる。
課題:
直交座標系の座標(x,y)を極座標系の座標(r,θ)に変換する関数と、
その逆変換をする関数を作成しなさい。
ただし、直交座標系(orthogonal coordinate system)の座標と、
極座標系(polar coordinates system)の座標はそれぞれ構造体を
用いて定義すること。
{x=rcosθ,y=rsinθ
{r=√(x^2+y^2),tanθ=y/x
例えば、次のように定義することができる。
typedef struct{
double x; /** x座標 **/
double y; /** y座標 **/
} orth_coord_t;
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限:7月27日
[5] その他の制限:特になし
お手数ですが、よろしくお願いします。
0407デフォルトの名無しさん
2011/07/24(日) 01:45:19.81[2] 問題文(含コード&リンク):
パーティクルを採用した、エフェクトプログラムデモを作成する。
・光の粒子が回転移動。
・爆発エフェクト(破片の物理移動)など。
例)花火
情報の洗い出し → 構造体
2.初期化 → 爆発時に初期データセット
3.実処理 → 移動、加減速、色調
4.後処理 → 情報の削除(メモリの解放)
[3] 環境
[3.1]OS:Windows7
[3.2]コンパイラ名とバージョン:VC6.0
[3.3]言語:Cのみ
[4] 期限:8月1日
[5] その他の制限:エフェクトは自由にとのことでしたが、炎や、爆発や雷で作っていただけるとありがたいです。よろしくお願いします。
DirectXは使用不可です。コンソールアプリでお願いします。3Dは使わず、"*"や、"+"などの記号で表現お願いします。お手数ですが、コメントよろしくお願いします。
0408デフォルトの名無しさん
2011/07/24(日) 02:00:09.62[2]あたりくじ付き自動販売機のシミュレーターを作りなさい。
入力インターフェースはコンソール入力とします。
お釣りに帯する対応(例えば10円玉不足の場合は、ボタンを
押しても釣り銭切れで、商品が出ないようにするとか)が
必要になることでしょう。
商品種数、在庫、表示方法、状態出力方法は自由としますが、
わかりやすさ、面白さの作り込みの工夫は高い評価ポイントに
なります。
あたりくじは、商品購入時点で777が出たら当選で、
単価が一定金額以下のもう一本好きな商品の選択が出来るように
するというものを想定していますが、他に良いアイデアが
あればそれを採用しても構いません。
[3] Linux/gcc4.6/C言語
[4] 7/31迄
0409デフォルトの名無しさん
2011/07/24(日) 04:07:13.93#include <math.h>
typedef struct {
double x;
double y;
} orth_coord_t;
typedef struct {
double r;
double theta;
} polar_coord_t;
orth_coord_t polar_to_orth(polar_coord_t p)
{
orth_coord_t ret;
ret.x = p.r * cos(p.theta);
ret.y = p.r * sin(p.theta);
return ret;
}
polar_coord_t orth_to_polar(orth_coord_t o)
{
polar_coord_t ret;
ret.r = sqrt(o.x * o.x + o.y * o.y);
ret.theta = atan2(o.y, o.x);
return ret;
}
0410デフォルトの名無しさん
2011/07/24(日) 04:36:15.15>>331 はその問題をクリアしています。
8/3*3 enter
と入力すると
8
と返ってくるはず。これは、最後の出力まで、途中経過を分数(分子分母)で記憶しているからです。
サイズ固定(1024バイト)の配列を内部にもっており、これがあふれれば場合によっては printf() の第一引数を壊すこともないではない。
elf ではなく coff とか a.out とかにして、セクションの順番を変えているのか?
しかし bus error はどうやっても引き起こせそうもない‥‥‥。
ともあれご要望にしたがい、再現可能な情報を出してくるまでは一切応答いたしません。
0412デフォルトの名無しさん
2011/07/24(日) 06:31:44.65[2] 問題文(含コード&リンク):テキストファイルtest.txtを単語ごとによみだして表示するプログラム
http://ideone.com/8MhVjがあります。これを改変して切り出した単語の出現回数を調べ、
各単語の出現回数をアルファベット順に出力するプログラムを作っていただけないでしょうか。
例えば、Sato Aoki Suzuki Yoshida AOKI SATO Suzuki Satoという文章であれば
Aoki 2
Sato 3
Suzuki 2
Yoshida 1
という感じです。その際以下の条件があります。
・線形リストを用いて単語の出現回数を記憶し、単語をファイルから読み出す度にこれを更新すること。
・線形リストの内部では、単語が常に辞書順に並ぶように管理されること。単語は大文字と小文字を区別しないこと
・ノード作成、ノード挿入、ノード探索、ノード削除のそれぞれを関数として独立すること
以上です。よろしくお願いします
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
よろしくお願いします
0413デフォルトの名無しさん
2011/07/24(日) 08:18:11.63うんこ、てめーは敵を作りすぎた。
> printf("%d\n", a) / unko.c 82 で bus error が出るのかちょっと想像がつきません。
バックトレースまで乗っけてやってんのに、ヘボはヘボ。
>>404
てめーもバスエラーがどういう場合に発生するかわかってねー。自称技術計算10年の底辺派遣か? w
: 0x8008cb3ff <malloc_usable_size+24783>: lea (%rax,%rdi,1),%r12
: rdi 0x3131313131313131 3544668469065756977
こういう状況でバスエラーが発生するんだ。憶えとけ。
> うちの環境を幾つか試したけどBus errorにはならない。
やるべきことは検証ではない。推理だ。www
もっとも、うんこのコードがうんこ過ぎるからBus errorという一見発生しそうもない
例外が発生してるんだが。←大ヒント。www
> というより、他のスレに移動してやってくれ。
うんこは「恥と引き換えに荒らす」と宣言してるんだから、このスレでたっぷり恥をかいてもらう。
残念なところはうんこは恥を持ち合わせていない事だ。←矛盾w
Program received signal SIGBUS, Bus error.
0x00000008008cb403 in malloc_usable_size () from libc.so
(gdb) x/i 0x00000008008cb403
0x8008cb403 <malloc_usable_size+24787>: cmp %rbp,0x130(%r12)
(gdb) info registers rbp
rbp 0x1000 0x1000
(gdb) info registers r12
r12 0x3131313131314031 3544668469065760817
0414デフォルトの名無しさん
2011/07/24(日) 08:25:50.18しつこく粘着していた↓と同じ「欠陥ロジック」もってんじゃねーか。wwww
> とにかく、http://hibari.2ch.net/test/read.cgi/tech/1308749241/906 の欠陥ロジックを修正してください。
オレは欠陥ロジックと思ってないが、お前は欠陥ロジックと確信してるんだよな。
どうするんだ? なおすのか? 教えてやろうか? 再現データ。 www
たった160行にバスエラー1、「欠陥ロジック」1 www
0415デフォルトの名無しさん
2011/07/24(日) 08:45:18.57>>413はコピペミス。↓が正しい。 ツツシンデオワビシマス。
てめーもバスエラーがどういう場合に発生するかわかってねー。自称技術計算10年の底辺派遣か? w
: 0x8008cb403 <malloc_usable_size+24787>: cmp %rbp,0x130(%r12)
: r12 0x3131313131314031 3544668469065760817
こういう状況でバスエラーが発生するんだ。憶えとけ。
0416デフォルトの名無しさん
2011/07/24(日) 09:46:20.42ノード削除の条件を具体的に。
例えば、指定単語に前方一致とか。
0417デフォルトの名無しさん
2011/07/24(日) 10:45:11.48>>403
http://codepad.org/jd2TiJfa
0418デフォルトの名無しさん
2011/07/24(日) 12:28:54.63問題ではノードの削除について具体的な指定はないで、
その条件で大丈夫だと思います。それから、後付けになってしまい申し訳ないのですが、
線形リストは単方向線形リストを使って頂くとありがたいです
0419デフォルトの名無しさん
2011/07/24(日) 13:17:59.690420デフォルトの名無しさん
2011/07/24(日) 13:23:09.88悔しいなら、自分で見つけろよ。
仕様未達一件追加 www
たった160行にバスエラー1、「欠陥ロジック」1、仕様未達1 www
0421デフォルトの名無しさん
2011/07/24(日) 13:32:14.74問題にノードの削除関数は必要無いから使われない関数を作れって事?
ノードの開放関数なら解るけど
0422デフォルトの名無しさん
2011/07/24(日) 13:43:07.83すみません。問題をきちんと把握してませんでした
この問題の参考資料に、ノードの削除関数は今回は使わないかもしれないが、一般的には必要である。と書いてあるので
削除関数は作らなくても大丈夫だということだと思います
バグ調査の労、重ね重ね感謝いたします。以下の点修正いたします。
・バッファオーバーランの可能性を排除しました。
・プログラム内にて 0 割り自体は発生しませんが、1/0 という分母が 0 の形で出力していました。今回演算処理中に 0 割りが発生した場合は、その旨表示するようにしました。
・仕様上、内部表現の分数表現の分子・分母それぞれに上限があります。(int 型 4 バイトに 2 つの整数を押し込んでいる以上仕方ありません。)
ただし、式評価の最中にその上限を超える可能性が発生した場合にエラー表示を出力しておりませんでしたので、今回エラーを出力するようにいたしました。
なお、その上限とは 16782 です。
http://codepad.org/9MSpIXlt
なお、本プログラムは再帰呼び出しにて記述しておりますので、以上の対策をとっていても入力によっては暴走等異常が発生する可能性があります。
プログラムのバグを報告していただく際には、プログラムに与えた入力と実行ファイル生成時に設定したスタックサイズをあわせてご連絡いただければ幸いです。
よろしくお願いいたします。
0424423 ◆QZaw55cn4c
2011/07/24(日) 14:10:30.85失礼、誤記を訂正します。上限は 16382 です。
プログラム中の #define LIMIT 32767 の1/2 (端数は切り捨て)にあたります。
0425デフォルトの名無しさん
2011/07/24(日) 14:29:06.70[2] 問題文(含コード&リンク):http://codepad.org/jd2TiJfa
同じ名前の学生はいないものとして考える。入力データの修正と削除の機能を関数を作成して追加しなさい。
各自で詳細設定を行い、プログラムの先頭にコメントで記述すること
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限:7/29まで
0426デフォルトの名無しさん
2011/07/24(日) 15:14:01.90申し訳ありません
問題文を修正します
・ノード作成、ノード挿入、ノード探索のそれぞれを関数として独立すること
ノード削除関数は必要ありません
よろしくお願いします
0427デフォルトの名無しさん
2011/07/24(日) 15:47:34.09ttp://ideone.com/BPsD5
0428デフォルトの名無しさん
2011/07/24(日) 16:24:08.81ありがとうございます!
とても助かりました!
>p = (Word*)malloc( sizeof( Word ) );
>assert( p );
nice におもったけれども、assert() はりリース時には消えてしまう前提、とすれば、めんどくさいけれども if() ではじくしかないのかなあ。
0430デフォルトの名無しさん
2011/07/24(日) 16:50:37.290431デフォルトの名無しさん
2011/07/24(日) 17:12:42.18malloc() エラーなんて滅多に起きるもんじゃないからね(引数異常は除く)
起きるとしたらスワップ使い果たしてOSがハング寸前の時だろうか
ワンオフなら業務でも許されるんじゃないかな
たしかにそんなときには、スラッシング状態(いやその前に切り捨てられるか)・なにをやっても無駄・打つ手なしでしょうからね。assert() で意思表明する程度でいいのでしょう。
そういう意味でも >>427 は nice な表現ですね。
0433デフォルトの名無しさん
2011/07/24(日) 17:37:16.40NULLアクセスにするのはなぁ
0434デフォルトの名無しさん
2011/07/24(日) 17:49:08.74nice っていうより普通に使われる便利なマクロ(だったかな?)
>>433
assert() は引数が false なら exit() するよ
0435デフォルトの名無しさん
2011/07/24(日) 17:52:54.70リリースビルドの話に決まってんだろ
あとexit()じゃねーし
0436デフォルトの名無しさん
2011/07/24(日) 18:22:42.16abort() だっけ、どうでも良いことは忘れるタイプなんでね
だからワンオフなら許されるかもと書いた、普通はリリース前に assert() を消すか妥当なエラー処理に直すかするよ
ミッションクリティカルな業務においても実装開始時にエラー処理系の方針が固まっていない事も有る
そういう場合に assert() を用いた実装でテストを行い、エラー処理の実装を待って正規の処理に書き換える
てのはよくある話だ
そも assert() はデバッグツールの一種だから
0437デフォルトの名無しさん
2011/07/24(日) 18:37:43.09assertがリリースのとき消えるのすら知らない人かと思ったもんで
あと俺が死ねといってるのは、ナイスな表現とか言ってるQZの方だ
ワンオフの話は別にいい
0438デフォルトの名無しさん
2011/07/24(日) 18:50:26.17程度が低い奴って相手も程度が低いと決め付ける事が多いから仕方ないよねw
0439デフォルトの名無しさん
2011/07/24(日) 18:53:31.500440デフォルトの名無しさん
2011/07/24(日) 18:56:24.29先日JAVAをC言語に変換しろという課題が出ました
JAVAのソースは以下の通りとなっています。
http://codepad.org/mEqlSVQe
これをC言語に変換したいのです…。
尚、自宅のパソコンのスペックがとても低く、
JAVAの再生環境がない状況で打ち込みましたので
もしも間違いがあったらすみません。
何卒宜しくお願いします。
【質問テンプレ】
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): マインスイーパ(地雷ゲーム)を作れ
[3] 環境
[3.1] OS: Windows xp
[3.2] 学習用C言語開発環境
[3.3] 言語: C言語のみ
[4] 期限: 7.26
[5] その他の制限:配列までは習いました。
0441デフォルトの名無しさん
2011/07/24(日) 19:05:47.48ネストが変だけどコピペミスしてないか?
0442デフォルトの名無しさん
2011/07/24(日) 19:07:48.00本当にお聞きし辛いのですが、ネスト、とはなんでしょうか、
直ぐに訂正いたしますので教えていただけると幸いです…
0443デフォルトの名無しさん
2011/07/24(日) 19:12:46.58>尚、自宅のパソコンのスペックがとても低く、
>JAVAの再生環境がない状況で打ち込みましたので
ideoneにJavaがあるだろ
0444デフォルトの名無しさん
2011/07/24(日) 19:15:27.15括弧の対応の事
これが変だからコピペミスしてソースの一部が欠損してるんじゃないかなって話
0445デフォルトの名無しさん
2011/07/24(日) 19:16:21.07ありがとうございます!!
すごく助かりました。
0446デフォルトの名無しさん
2011/07/24(日) 19:17:43.30こんなサイトがあったのですね、ソフトを導入する余地が無かったので
うちのパソコンではもうJAVAは出来ないだろうなと思ってました。
ありがとうございます。
0447デフォルトの名無しさん
2011/07/24(日) 19:28:24.04[2] 問題文(含コード&リンク):ハンバーガーショップの注文管理システムを考える。管理する注文は必ずハンバーガー、ドリンク、
ポテトのセットとする。またハンバーガーとドリンクの種類は選択可能である。
選択されたハンバーガー、ドリンクとそのセット価格を構造体で管理したい。ハンバーガー、ドリンクに対応する数値が#define
により定義されているものとする。
条件:
<1>構造体ORDERの変数に注文を入力できるようにする
<2>ハンバーガーの種類が既に格納された構造体変数が引数として渡されたとき、ハンバーガーの種類によって決定する
価格をメンバー変数priceに格納する関数set_priceを作成しなさい
<3>ハンバーガーの種類によって焼くべきバンズとパティが決定する。ハンバーガーの種類が既に格納された構造体が引数
として渡されたときに、パティと肉の枚数を格納する関数を作成しなさい
枚数は適当で良い
http://codepad.org/QaLvqKSk←エラーの原因が分かりません
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C++
[4] 期限:7/26日まで
よろしくお願いします
0448デフォルトの名無しさん
2011/07/24(日) 19:30:05.16385 386,388: デフォルトの名無しさん [] 2011/07/23(土) 21:57:37.77
http://codepad.org/Iks8CtjT
まだ、define定義ななど習ってないので計算をしている関数とmain関数内の二つ程でやってるように教えて頂けますか?
上記の方法にプログラムは数値、演算子を取り出すだけのプログラムです。それに付け加えて頂けますでしょうか?
あと、説明もしなければならないのでコメントを入れて頂ければ助かります。宜しくお願いします。
0449デフォルトの名無しさん
2011/07/24(日) 19:32:05.61ネストって入れ子のことじゃないの?
0450デフォルトの名無しさん
2011/07/24(日) 19:47:37.16メモ帳の通りコピペは出来てるんですが、
打ち込みをどこか間違っているのかもしれません。
一応{}の対応を見ていったのですが、
私ではミスを見つけきれません…色付きで表示がせめてあれば…
0451デフォルトの名無しさん
2011/07/24(日) 19:50:42.04scanf() と set_price() には実体ではなくアドレスを渡すべき
0452デフォルトの名無しさん
2011/07/24(日) 19:56:48.92一番最初の { と return 直前の } が対応してるよ
メモ帳以外のエディター持ってないの?
最近のエディターなら『対応する括弧へジャンプ』の機能は付いてるよ
打ち込み間違いなら確認は困難かな?
推測して書いてみるけど期待はするな
0453デフォルトの名無しさん
2011/07/24(日) 19:57:04.93http://codepad.org/mEqlSVQeの59行目から変じゃん。
73行目return 0;も(mainはvoidだからreturn 0はおかしい)
0454デフォルトの名無しさん
2011/07/24(日) 20:10:30.15丁寧にお返事いただいて本当にありがとうございます。
実はメモ帳以外のエディターはDLが上手く進まず
途中で全て中断されてしまうorフリーズしてしまう為(恐らく容量不足です)
仕方なしにメモ帳で打ち込んだ次第です…。
0455デフォルトの名無しさん
2011/07/24(日) 20:16:45.61見ていただいたようで有難うございます。
C言語に変換したり色々しているうちにファイルが
ちょっとおかしくなっていたらしく、
存在しないはずのprintf等が入った状態になっていました
書き直してみたのですがどうでしょうか…
http://codepad.org/Ye2XkWLd
0456デフォルトの名無しさん
2011/07/24(日) 20:32:03.92ttp://codepad.org/G604AWOL
修正後のコードを見る前に書いた
色々、バグと見られる部分も有ったのでオリジナルとロジックが異なる
又、マインスイーパーなら白地(周りに地雷が無い)を踏んだ場合、数字が出るエリアまで自動的に開くはずだが、
そのロジックは見当たらないから組んでない
はっきりいってクリアは非常に困難だし面白くないよw
0457455
2011/07/24(日) 20:40:34.21先ほど教えていただいたサイトでミスを修正してみました。
これでどうでしょうか…
(4行目だけは何が違うのかよく解らないのですが…)
http://ideone.com/vGu9R
0458デフォルトの名無しさん
2011/07/24(日) 20:42:02.52他のソースとか問題全部無視してエラー箇所だけつっこむと
scanf("%d",&data.burger);
set_price(&data);
の様にアドレスを渡すこと。
あと関数はポインタ渡してるからアロー演算子使わないとね。
0459455
2011/07/24(日) 20:50:52.59わざわざ打っていただいたようで本当にありがとうございます!!
初心者丸出しで本当にお恥ずかしい限りです…申し訳ない…。
言われてみれば元のソースが確かにゲームとして破綻してますね…
もし>>456様の仰る部分を組んだらどのようになるのでしょうか?
0460デフォルトの名無しさん
2011/07/24(日) 20:53:08.77多分、Main.javaというファイル名になるので、クラス名をMainにしなければいけない。
0461デフォルトの名無しさん
2011/07/24(日) 21:01:36.18pbulic で Jirai2 というクラスを宣言するならソースファイル名は Jirai2.jave でなくてはいけないって書いてるね
だとすると ideone では public class を含むソースはコンパイル不可能って事になっちゃうのかな?
ネストは直ってるけどロジック的な問題は残ってるし白地を踏んだ時の自動処理は無いね
そのプログラムだと最初に踏んだ場所が白地か1だったら後は同じマスを踏んでればクリアになっちゃうよw
0462455
2011/07/24(日) 21:02:23.37すみません追記になるのですが、
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
これが3つ並んでいるのを初めて見たのですが
1つにする事は出来ないのでしょうか?
授業で使うことがないもので、本当にすみません…
0463デフォルトの名無しさん
2011/07/24(日) 21:05:08.61それは無理
0464デフォルトの名無しさん
2011/07/24(日) 21:11:23.39ヘッダ関連はその程度の規模なら無視してかまわない
0465455
2011/07/24(日) 21:13:00.50すみません、ロジック的な問題とはなんでしょうか…
プログラムとしてねじれている、という解釈でもよいですか?
>>464
無視ということは削除しても構わないという事でしょうか?
0466デフォルトの名無しさん
2011/07/24(日) 21:16:31.520468デフォルトの名無しさん
2011/07/24(日) 21:20:10.46ttp://codepad.org/0paulLGQ
>cmp %rbp,0x130(%r12)
>r12 0x3131313131314031
たぶん、X ファイルの中身は"111111111111111111111111111111111111111111......." で容量は1G? 2G? とメモリ空間を埋め尽くすくらいあったのですね。
はじめはとても信じられなかったんですが、ありうる話。
で、メモリ空間の最初の方の静的配列が書き様がまずいせいであふれて、とうとう、もう端っこのほうにあるスタックエリアまで到達してしまった。
libc/printf() の下の下のどこかで、0x31313131......31 という値がレジスタ r12 によみこまれてしまった。
この値、2byte, 4byte, 可能性の高いのは 8byte のアラインメントからずれてしまっている(そもそも奇数だし)。
したがって、cmp ebp, (r12 + 0x130) のオペランド r12+0x130 自体がアラインメント不整。で、バスエラー例外が発生した。
というシナリオでいいでしょうか。
であれば、>>423 で封じ込めることができているはずですね。
レジスタ bp や r12 があるということは、x86 かつAMD64 以降でしょうね。
>やるべきことは検証ではない。推理だ。www
深く同意し感謝いたします。
0470デフォルトの名無しさん
2011/07/24(日) 21:23:21.44[2] 問題文
Nr(i)は身長とし、Na(i)氏名のデータとする
どちらも10個の要素を持つ配列であり、それぞれは10人の身長と氏名のデータとして持つ。
キーボードから身長Xを入力し、二分検索処理を用いてXの氏名をもとめ、結果をディスプレイへ表示するプログラムを作成せよ。
よろしくお願いたします
二分検索がいまいち理解できないので軽く解説も書いていただければ幸いです
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C++
[4] 期限:7/26日まで
0471デフォルトの名無しさん
2011/07/24(日) 21:26:12.06ねじれてるというか誤ってる
>>457 の42, 44行目の nokori--; は有ってはいけない
開いたマスを踏み続けても nokori--; が実行されるとゲームはクリアされてしまう
jimen[fumi] が 2, 3 の場合は、1 と同様に既に踏んでいますのメッセージを出すべきだろう
0472455
2011/07/24(日) 21:33:39.73>>471
ありがとうございます!
色々な方からのコメントを見る限りプログラム自体がかなり破綻していたのに
色々と手を加えていただいたり根気強くコメントを頂き本当に嬉しい限りです…
実はこの課題がJAVAで出たのは1年前で、当時のデータ(教科書含め)を持っておらず
課題の趣旨が把握仕切れて居なかったので色々指摘していただけて助かりました。
一応明日課題の出題内容をもう一度見直して
もう1度ギリギリまでプログラムと向き合ってみます!
また明日も来るかもしれませんがそのときは宜しくお願いします…
0473デフォルトの名無しさん
2011/07/24(日) 21:35:07.77ありがとうございました
アロー演算子はどこに使えば良いのでしょうか?
0474デフォルトの名無しさん
2011/07/24(日) 21:40:05.951Gも食わせる必要有るのか?
バッファサイズを越える数字の連続が有ればオーバーフローが生じそうだけど、
オーバーフローでスタックが破壊されたらリターンアドレスが変わって変な挙動をするんじゃないか?
0475デフォルトの名無しさん
2011/07/24(日) 21:45:18.54> で、メモリ空間の最初の方の静的配列が書き様がまずいせいであふれて、とうとう、もう端っこのほうにあるスタックエリアまで到達してしまった。
ちげーよ低能。64ビットの端っこのスタックまで到達するわきゃねーだろ。wwww
これまでの情報から、そうじゃないことも推測できる。
0476デフォルトの名無しさん
2011/07/24(日) 22:19:57.48おいこら。
「欠陥ロジック」の修正もちゃんと書けよ。www
・前スレから他人に対してしつこく粘着していたのと同等の「欠陥ロジック」が自分のコードにありました。それを修正しました。
0477デフォルトの名無しさん
2011/07/24(日) 22:38:39.05>ちげーよ低能。64ビットの端っこのスタックまで到達するわきゃねーだろ。
発端は、printf() の第一引数が 0x31313131313131.... で書きつぶされた、と踏んでいます。が、どのように書きつぶされたのかが見当がつきません。
main() が 0x40,0000 スタート
shared lib が 0x8.0000,0000 スタート
bp が 0x1000?
スタックが頭?
スタック, bss, const data, text/lib の順?
バッファオーバーラン=前スレから他人に対してしつこく粘着していたのと同等の「糞味噌欠陥ロジック」
で勘弁してください。
0480デフォルトの名無しさん
2011/07/24(日) 23:23:55.56だからさ、
スタックが破壊されてリターンアドレスが腐ったら printf をコールする直前にジャンプするかもしれないでしょ
その時に引数として用意されるスタックの内容に何が入ってるか判ったもんじゃないんだからw
スタックが破壊されたらデバッガの出す情報はあんまり役に立たないんだよ
0481デフォルトの名無しさん
2011/07/24(日) 23:30:46.25[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限:7/ 26 全く分かりません。どなたかお願いします。
次のプログラムにおいて,sumrangeは,M行N列の行列A = (a_{ij})(実際には,
大きさM×Nのint 型の2次元配列で表される)を引数として渡されると,各行の最大値から最小値を
引いた値の(全体での)和を返す関数である.(ここでは,C 言語の配列の添え字にならって,i, jは
0から始まると考えている) 例えば,M = 3, N = 4のとき,主プログラム中で,配列aの値に
{7・5・-2・4
-3・11・-5・6
2・6・6・14}が入力された場合,0行目の最大値は7,最小値は-2であり,その差は7 - (-2) = 9,
1行目の最大値は11,最小値は-5であり,その差は11 - (-5) = 16, 2行目の最大値は14,最小値は2であり,
その差は14 - 2 = 12 となるので,sumrangeは9 + 16 + 12 = 37を返す.関数sumrangeを,下記のプログラムの
/* INSERT HERE */ の部分に挿入できるように書け.なお,行列の(i, j)成分は,2次元配列の[i][j]要素に
対応するものとせよ.また,配列中のデータは,-10000以上10000未満であると仮定してよい.
#include <stdio.h>
#define M (適当な正整数)
#define N (適当な正整数)
/* INSERT HERE */
int main(void)
{
int a[M][N];
/* ここで a[0][0]〜a[M-1][N-1] の値を入力する */
printf("sumrange = %2d\n", sumrange(a));
return 0;
}
0482デフォルトの名無しさん
2011/07/24(日) 23:32:34.76その書き方だと期限がわからないように見える
0483デフォルトの名無しさん
2011/07/24(日) 23:53:27.28とんでもないものプレゼントされた依頼者が可哀想
これってリアルな世界じゃ完全に損害賠償訴訟モノだね
事故を伴った場合はへたすりゃ業務上過失致死傷に
問われかねないね。
0484デフォルトの名無しさん
2011/07/24(日) 23:56:30.630485デフォルトの名無しさん
2011/07/24(日) 23:58:23.30>リアルな世界じゃ完全に損害賠償訴訟モノだね
事例があるのか?
0486デフォルトの名無しさん
2011/07/25(月) 00:06:50.93荒らしはもう放置しなよ。
宿題スレという入門レベルに一日中粘着する奴が業務にかかわれるわけ無いじゃん。
0487デフォルトの名無しさん
2011/07/25(月) 00:07:14.60数式処理プログラムに1000桁越える数字を入力する馬鹿なユーザーが損害賠償裁判起こしても負けるよ
運用が常識を逸脱してるって理由で
0488デフォルトの名無しさん
2011/07/25(月) 00:10:13.25> 発端は、printf() の第一引数が 0x31313131313131.... で書きつぶされた、と踏んでいます。
ちげーよ、低能。
>>479
ちげーよ、低能。
> 入力値の妥当性チェックを手抜きした=前スレから他人に対してしつこく粘着していたのと同等の「糞味噌欠陥ロジック」
>>480
ちげーよ、もう一匹の低能。>>399のバックトレースは完璧。スタックは壊れてない。
0489デフォルトの名無しさん
2011/07/25(月) 00:14:02.390490デフォルトの名無しさん
2011/07/25(月) 00:16:05.11バッファオーバーランしてスタックが壊れていないとはこれ如何に?
そりゃまぁ printf() 以降のトレースは完璧だろうけどw
0491デフォルトの名無しさん
2011/07/25(月) 00:16:20.89なんか見てるとよほどQZにかまって欲しいみたいだね。
スレがガシガシ流れちゃうから、ツイッターのIDとか教えあってやれば。
ズバリ不具合ある箇所と、改善案出せばいいのに
コードの隅々まで見てますよアッピールがすごすぎて、引くわ。
>>480
お邪魔らしいよ。二人の間に割り込まないようにしようよ。
0492デフォルトの名無しさん
2011/07/25(月) 00:16:25.07http://codepad.org/OamkBIRT
今回は再帰呼び出しが深くなりすぎた、ということはなく、単に "111111111111111111111111111...." のようなデータに対応していなかった、ということになります。
>>413 r12 = 0x31313131,3131xx31 がいかにも。(いや、"00000000..." じゃなくてよかった。)
でも再帰呼び出しのリスクにも対処しないといけないでしょうね。
http://codepad.org/CVZ0npDo
ある程度の深さに到達すると(1024レベル、おおよそ項数が 1024 個くらい)そこで打ち切ってエラーを表示して終わります。
0494デフォルトの名無しさん
2011/07/25(月) 00:23:06.28バッファオーバーランでスタック壊れるって誰が決めたんだよ。低能
普通はスタックこわれるが、うんこが書いたうんこコードだからスタック壊れない。www
0495デフォルトの名無しさん
2011/07/25(月) 00:36:33.83#include <stdio.h>
void print_bit(unsigned short int x); //プロトタイプ宣言
void left_rotate(unsigned short int *x, unsigned short int n);
int main(){
unsigned short int usi;
usi = 0xb85f ;
print_bit(usi);
print_bit(left_rotate2(&usi, 3));
return 0; //システムに値0を返す}
void print_bit(unsigned short int x){
int length , i , mask ;
mask = 1;
length = sizeof(x) *8;
mask =mask << (length -1);
printf("数値%xのビット状態\n",x);
for(i = 1;i<= length ; i++){
if(x & mask){
printf("1");
}else{ printf("0");}
mask =mask >> 1;
}
printf("\n");}
void left_rotate2(unsigned short int *x, unsigned short int n){
ここに処理が入る
printf("%d ビット左回転しました\n",n);}
実行結果:
数値b85fのビット状態
1011100001011111
3ビット左回転しました
数値c2fdのビット状態
1100001011111101
0496デフォルトの名無しさん
2011/07/25(月) 00:37:05.86底辺派遣クンなら混ぜてあげるよ。w
0497デフォルトの名無しさん
2011/07/25(月) 00:38:35.720498デフォルトの名無しさん
2011/07/25(月) 00:40:27.73厳密に言うと壊れない場合も有る
スタックが詰まれる方向によってはオーバーランした分が後から積まれたスタックに上書きする処理系も
有り得るからだ、当然、後ろに何も積まれて居なければ破壊されたとは呼ばないだろう
また、1〜3バイト程度のオーバーランならパディングの隙間に入って壊さない場合も有るだろう
しかしQzのケースはスタックを破壊してリターンアドレスが腐ったと断言して良いだろう
しかし千桁以上の数字を食わせてまでして人のコードにケチつけて楽しいのか?
虚しくならんか?
お邪魔みたいだからお暇するけどねw
>うんこが書いたうんこコード
static char buf[1024];
としたから。
0500デフォルトの名無しさん
2011/07/25(月) 00:43:38.88バカ。うんこ同等のバカ。そのバカさは底辺派遣だろ。www
> バッファオーバーランでスタック壊れるって誰が決めたんだよ。低能
0501デフォルトの名無しさん
2011/07/25(月) 00:45:34.18うんこはスタックが壊れないって気付いたようだぞ。www
理解し出来てねーのは底辺派遣。お前だけだ。www
0502デフォルトの名無しさん
2011/07/25(月) 00:53:19.22良く見て無かったわ、スマン
それでヒープ側から押しよせてきたとか言ってたのね
ちょっと吊ってくる
0503デフォルトの名無しさん
2011/07/25(月) 00:57:58.59普通に存在している事もしらないQ
さすが無職
6809? 68000?
最近の事情はしりませんが、x86 もセグメントレジスタ増えましたし、ありうることだと思います。
0505デフォルトの名無しさん
2011/07/25(月) 01:23:29.96>最近の事情
お前どれだけオッサンなんだよ
0507デフォルトの名無しさん
2011/07/25(月) 01:27:27.2768000にSSPとUSPがあった事もしらないバカ
0508デフォルトの名無しさん
2011/07/25(月) 01:29:37.72USPはシステムコールが掛かると使われる
本当はこんなの必要ない物だったけどな
それに仮想記憶が使えないとか致命的だったろ
0509デフォルトの名無しさん
2011/07/25(月) 01:35:47.51SSPがスーパバイザモード、つまり特権モード用、USPが通常モード用だった
あの時代にスタックだけでも保護モードがあったのは先進的だったが、残念ながら
ユーザー領域にはセグメントの考え方がなく保護もされなかった
0510デフォルトの名無しさん
2011/07/25(月) 01:38:33.88呼び出し側が unsigned short の戻り値を期待してるようなので型は変更させて貰った
でも引数が unsigned short* だから呼び出し側が間違ってると考える方が正しいのか微妙
この関数のプロトタイプ宣言を追加してね
unsigned short left_rotate2(unsigned short int *x, unsigned short int n)
{
unsigned long a;
a = ( *x << 16 ) + *x;
a = a << n;
a = a >> 16;
printf("%d ビット左回転しました\n",n);
return (unsigned short)a;
}
なんか美しくないな
0511デフォルトの名無しさん
2011/07/25(月) 01:55:42.13[2] 問題文(含コード&リンク):
演習目的
�@構造体やポインタを利用して、データ構造を設計することができる。
�A構造体をreturn文で返却する関数を作ることができる。
�Bポインタを扱うことができる。
課題:
2つのビット列(unsigned char型の2変数)を受け取り、
そのビット列のハミング距離を返す関数を作成しなさい。
また、ビットの並を表示する関数を作成しなさい。
ビット列x=(x0,x1,…,x7)とy=(y0,y1,…,y7)の
ハミング距離dは次で定義される。
すなわち、異なるビットの個数である。
d=納i=0,7](xi^yi), xi,yi∈{0,1}
例えば、x=5,y=3のとき、x=(00000101),y=(00000011)であり、
ハミング距離はd=2となる。
01の並びを入力し、変数に代入する関数を作ってもよい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限:7月27日
[5] その他の制限:特になし
お手数ですが、どなたかよろしくお願いします!
0512奈緒
2011/07/25(月) 02:31:43.68[2] 問題文(含コード&リンク):http://codepad.org/cr9HeX77 http://codepad.org/KRbWMvrc
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限:7/ 27 15:00までです。
全く分からなくてほんとに困っています。誰か分かる方宜しくお願いします。
テキストがhttp://codepad.org/cr9HeX77で問題がhttp://codepad.org/KRbWMvrcです。
0515デフォルトの名無しさん
2011/07/25(月) 03:28:49.59http://codepad.org/Bkwvsj4t
回答既に出てたか
0516デフォルトの名無しさん
2011/07/25(月) 03:35:33.59http://codepad.org/v0lfo7gJ
0517デフォルトの名無しさん
2011/07/25(月) 03:43:37.28こんな時間に起きてて今日は仕事は遅刻するのか?
rdata + bss + heap という古来からのセクション/セグメント順序を仮定します。text や stack はなんか別んところにあるみたいですね。
>>413 では malloc() 関係のところでストップしていますから‥‥‥シナリオを二つ。
(1)
main() を呼び出すスタートアップの扱うところとして malloc() に関する重要なグローバル変数があって、それが、たまたま
bss 内の static buff[1024] の先(下位)に位置していた。buff[] のオーバーフローにより書き換えてしまった。
※リンク順序からして、buff の先(下位)にcrt管轄の変数があるのだろうか?
(2)
main() を呼び出すスタートアップ crt はすでに malloc() を呼んで何がしかのヒープを所有していた。
buff[] のオーバーランが発生して、bss の後ろにある heap 一帯は 0x31313131... で埋め尽くされてしまった。
その後呼び出された printf() も malloc() を呼び出してメモリブロックを確保しようとし、すでに壊れたヒープ管理構造の一部からデータを拾ってきた、その内容が 0x313131... であった。
※ありそうなシナリオだが、crt の内容を入手しても確認する気力もない‥‥‥。
>>503
その昔、ds!=ss はやっかいでした。今もデータ・スタック・ヒープは同一空間にあると思います。
手持ちの 32 bit 環境の gcc -S の結果をながめていましたが、sp, bp の動きやインデックス修飾のやりかたをみるかぎり、関数の引数、sp, bp, 関数ローカル変数の置き位置は ms-dos と変わりませんね。
たぶん一つのスタックにこれら全部が押し込められています。
64 bit 環境はよくわかりませんが。
歩いて 3 分だから‥‥‥ 2 時間くらいは寝れるでしょう。おやすみなさい。
0520デフォルトの名無しさん
2011/07/25(月) 05:34:40.64http://ideone.com/F7EdB
ポインタと構造体勉強したほうがいいねー
0521デフォルトの名無しさん
2011/07/25(月) 05:50:57.41作ろうと思ったけど与えられるデータ10*10個どう扱えば良いか(例えばファイルから読み込み?)
わからんからその辺ちゃんとしないと誰もやってくれないかと。言わんとしてることは構造体ネストして作るんだろうけどねー
2分検索はググればわかると思うんだけどまずデータをソートしてその中央値を見つける。
探したいデータが中央値より大きいなら中央値より小さい数は探さなくていい。逆も然りで検索量を減らす事ができる。
って考えの検索法。
0522デフォルトの名無しさん
2011/07/25(月) 06:46:24.65同一身長者がいる場合などは厄介だな。
0523デフォルトの名無しさん
2011/07/25(月) 06:58:34.380524デフォルトの名無しさん
2011/07/25(月) 08:20:46.220525デフォルトの名無しさん
2011/07/25(月) 08:30:49.94>どちらも10個の要素を持つ配列であり、それぞれは10人の身長と氏名のデータとして持つ。
ここじゃね?
問題文がおかしい気がする
0526デフォルトの名無しさん
2011/07/25(月) 08:48:56.07氏名をデータとして持つ10個の要素からなる配列*Na[10]
0527デフォルトの名無しさん
2011/07/25(月) 08:50:33.21char Na[10][64]; // or char *Na[10];
このように読み取れないなら、日本語の勉強しなおせ。
0528デフォルトの名無しさん
2011/07/25(月) 09:00:42.68例えば、x=5,y=3のとき、x=(00000101),y=(00000011)だと、
ハミング距離はd=7にならないかな。
0529528
2011/07/25(月) 09:06:08.430530デフォルトの名無しさん
2011/07/25(月) 09:08:55.740531デフォルトの名無しさん
2011/07/25(月) 09:09:14.77遅くなりました。
問題文その他から判断してみましたがはっきりと明示されてはいませんでした。
ですが、おそらくランダムに変える必要はないと思います。
ありがとうございました!
0533デフォルトの名無しさん
2011/07/25(月) 09:45:26.20http://ideone.com/u4TUp
0534デフォルトの名無しさん
2011/07/25(月) 10:03:40.43プログラムコンパイルは通ったんですが、実行できませんでした。
コンソールから引数指定する必要はないですよね?
0535デフォルトの名無しさん
2011/07/25(月) 10:12:42.72>あの時代にスタックだけでも保護モードがあったのは先進的だったが、残念ながら
>ユーザー領域にはセグメントの考え方がなく保護もされなかった
ユーザーモードとスーパーバイザモードではメモリーアクセス時のファンクション
コードが違うから、適切な外部回路があれば、保護することができる。
逆に、スタックも通常のメモリーアクセスだから適切な外部回路がないと保護もさ
れない。
よく理解もせずに、適当なこと書くなよ。
0536デフォルトの名無しさん
2011/07/25(月) 10:18:11.87/*** この部分を自分で書く ***/
この記述があるところだけ書き加えました。
コンソールから引数指定する場合は
mainを手直しすると良いのではないかな?
0537デフォルトの名無しさん
2011/07/25(月) 10:41:23.01引数指定はする必要はないはずなんですが文字化けエラーが起こってしまい
result.datが生成できていない感じです。
0538デフォルトの名無しさん
2011/07/25(月) 10:57:09.15実行したときに、
><< 世代数 : 1 >>
>平均適応度 : 4.400000
>最大適応度 : 7.000000
このような表示が出てきていませんか?
それと同じ内容がファイルに出力されるはずですが。
出ていない場合、表示内容を教えて下さい。
0539奈緒
2011/07/25(月) 13:22:39.570540455
2011/07/25(月) 15:03:45.70正しい課題のソースが手に入ったのでまたこちらに来ました。
以下が正しいソースコードになります。
(おそらくこちらなら皆さんが指摘してくださったロジック的な問題などは無いかと思います)
http://ideone.com/0M3Vi
これをC言語に変換しろというのが課題です。
何卒宜しくお願いいたします。
0541デフォルトの名無しさん
2011/07/25(月) 15:12:11.56[3.2] 学習用C言語開発環境
これ何使ってる?
0542455
2011/07/25(月) 15:23:36.53いつも使っているエディタ+コンパイラのことでいいんですよね?
そのままの名前のものを使っています…
Verが0.0.9.0です。
0543デフォルトの名無しさん
2011/07/25(月) 15:33:40.91http://ideone.com/Vglan
0544455
2011/07/25(月) 15:44:22.30ありがとうございます!助かりました!
少しお尋ねしたいのですが
・ #define RAND(n) (rand() / (RAND_MAX / (n) + 1)) はどういう意味なのでしょうか?
この課題の提出の際に口頭で問題が出されるので
念のために教えていただけると幸いです
0545デフォルトの名無しさん
2011/07/25(月) 16:31:55.12> #define RAND(n) (rand() / (RAND_MAX / (n) + 1)) はどういう意味なのでしょうか?
●#defineの意味を聞いている場合
マクロといって、繰り返し出現する記述を一回で済ませる記述法。習って無いなら。
13 int n = rand() / (RAND_MAX / 11);
15 n = rand() / RAND_MAX / 11;
としてもよい。
●式の意味を聞いている場合
rand(0〜RAND_MAXを返す)が返す乱数の下位ビットはランダム性がとても悪い。
なので上位ビットを使うためにこのようにするのが定石。
http://www.kouno.jp/home/c_faq/c13.htmlの13.16読んで理解できなければ、
そこに書いてあるように
#define RAND(n) (rand() % (n))
としてもよい。
0546デフォルトの名無しさん
2011/07/25(月) 16:33:03.62> 15 n = rand() / (RAND_MAX / 11);
0547デフォルトの名無しさん
2011/07/25(月) 16:35:59.0313 int n = rand() / (RAND_MAX / 10 + 1);
15 n = rand() / (RAND_MAX / 10 + 1);
が正しい。
0548デフォルトの名無しさん
2011/07/25(月) 17:51:41.95[2] 問題文:http://www.uproda.net/down/uproda333628.pdf
[3] 環境
[3.1] OS:Windows
[3.2] gcc
[3.3] 言語: C/C++(問題6-2はC++)
[4] 期限: [2011年7月29日まで]
[5] その他の制限: 問題6-1はhttp://www.uproda.net/down/uproda333641.pdf
のプログラムを基に、
問題6-2はhttp://www.uproda.net/down/uproda333640.pdf
の二番目のプログラムを基に作成をお願いします
問題6-3は�@,�B,�Eをお願いします
お願いします
0549470
2011/07/25(月) 18:25:34.04例として以下のような
Nr Na
0 120 taro
1 145 tinta
2 以下略 以下略
3
4
5
6
7
8
9
とソートして二分検索で求めたいです
0550470
2011/07/25(月) 18:26:36.810 120 taro
1 145 tinta
2 以下略 以下略
3
4
5
6
7
8
9
ずれましたすみません
0551455
2011/07/25(月) 18:28:27.43お返事が遅くなってすみません、回答ありがとうございました
この課題に対して口頭で問題が出されるのでその対策をしたいと思います。
もしまたコードについて解ら無くなった時はこちらに訪れますので
ご迷惑かもしれませんが何卒宜しくお願いいたします。
0553デフォルトの名無しさん
2011/07/25(月) 19:15:57.18俺が昨日の最初に書いたコードと大きな違いは無いよ
・メッセージが少し違う
・隣に地雷が有るマスを踏んだら『オットット危ない』のメッセージが出る
なので俺はパス
0554デフォルトの名無しさん
2011/07/25(月) 19:25:25.78[2] 問題文(含コード&リンク): チャットシステムサンプルを用いてパスワード設定(初めて入室したクライアントに4文字でパスワードを設定させ、
以降に入るクライアントにパス入力を求める。パスが正しければ接続。パスが正しくなければ接続せずに終了)と自身の発言時にecho。
また、発言時にIPアドレスを標準出力させる。
ex.
211.9.36.148:こんな感じで
211.9.36.148:こんな感じで
172.31.10.96:出力されます
0555554
2011/07/25(月) 19:30:27.99[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2011年07月26日09:00まで
[5] その他の制限: TCPを用いてネットワーク間でのやりとりが見受けられれば、特に制限はありません
クライアント側でIP出力はできたのですが、サーバーのIPを引数にしているのですべてサーバーのIPが出力されてしまいます。どうやって個々のIPを取得すれば良いでしょうか?
サンプルはこちらにhttp://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/joyful.cgi
よろしくお願いします
0556554
2011/07/25(月) 19:35:39.07よろしくお願いします。
http://codepad.org/1AQxUk1g
0557デフォルトの名無しさん
2011/07/25(月) 19:52:17.92[2] 問題文(含コード&リンク):4つの頂点座標の引数を与えると線の長さを返す関数を作成して下さい。
計算された長さはdouble型で返されるものとする。
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C++
[4] 期限:7/29
[5]その他制限:次の計算関数を用いるものとする
double sqrt(double n);
double pow(double x,double y);
よろしくお願いします
0558デフォルトの名無しさん
2011/07/25(月) 19:56:23.63>> 533 に回答してる人が居るよ。
0559デフォルトの名無しさん
2011/07/25(月) 20:04:34.37>4つの頂点座標の引数
点が4つあるんじゃなくて、例えばx1,y1,x2,y2みたいに、
2点の座標値が4つ渡されるということだよね?
0560デフォルトの名無しさん
2011/07/25(月) 20:10:09.290562496
2011/07/25(月) 20:28:09.35[2] 問題文(含コード&リンク):選択ソートの交換、比較回数を表示するプログラム
[3] 言語:C
[4] 期限:7/26
http://ideone.com/CDOGT
エラーが何を指しているのかわからず困っています
0563デフォルトの名無しさん
2011/07/25(月) 20:29:50.49http://ideone.com/FzOxP
0564デフォルトの名無しさん
2011/07/25(月) 20:31:20.09selection_sortのプロトタイプ宣言がない
0565デフォルトの名無しさん
2011/07/25(月) 20:33:42.06>>562
とりあえずselection_sortをプロトタイプ宣言してないね
0566デフォルトの名無しさん
2011/07/25(月) 20:38:44.24>4つの頂点座標の引数を与えると線の長さを返す関数を作成して下さい。
>計算された長さはdouble型で返されるものとする。
だから、関数にしてあげないと
0567デフォルトの名無しさん
2011/07/25(月) 20:47:21.18>[3.3] 言語:C++
0568デフォルトの名無しさん
2011/07/25(月) 20:54:26.86その通りです
誤解を招いてしまい申し訳ない
0569デフォルトの名無しさん
2011/07/25(月) 20:57:27.33ごめん俺も今気づいた。
>>557
http://ideone.com/w0ZSP
0570デフォルトの名無しさん
2011/07/25(月) 20:58:35.30氏名、年齢、住所、電話番号、メールアドレス、郵便番号を持つ構造体を使用する
一覧を表示可能である
作成したデータはファイルとして保存、読み込みができる
構造体の追加、削除が可能である
任意の項目を修正可能である
任意の項目をキーとして検索、ソート(昇順・降順)が可能である
[3] 環境
[3.1] OS:linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 7/28
お手数ですがよろしくお願いします
0571デフォルトの名無しさん
2011/07/25(月) 21:02:27.27ありがとうございます
0572デフォルトの名無しさん
2011/07/25(月) 21:03:23.83っていうか、double型の変数をdoubleにキャストするってなんの冗談?
0573デフォルトの名無しさん
2011/07/25(月) 21:09:07.09>>563見てもらえばわかるけど最初diff〜はintで作ってて後からdoubleにしたから消し忘れた(´Д`)
0574デフォルトの名無しさん
2011/07/25(月) 21:12:36.540575デフォルトの名無しさん
2011/07/25(月) 21:18:10.60なぜかさっきはできなくて改めてやったらresult.datが自動生成されるようになりました。
しかしコンソール上では文字化けが起こってしまい、こんな感じに表示されます。
�̐� : 5
���`�� : 10 bit
�ˑR�ψٗ� : 0.100000
0576デフォルトの名無しさん
2011/07/25(月) 21:22:19.78プロトタイプあるからdoubleに変換されるのに。キャスト大好き底辺派遣だな。
第2引数の2はなんでキャストしないんだ? www
0577デフォルトの名無しさん
2011/07/25(月) 21:22:41.77実行環境の漢字コードを調べて、
それにソースを変換してから、
コンパイル・実行してみて
0578デフォルトの名無しさん
2011/07/25(月) 21:30:56.15http://codepad.org/KRyTZEQX
0579455
2011/07/25(月) 21:33:03.21http://ideone.com/Vglan で書いていただいたコードの
srand(time(NULL)); を学校で扱ったことがまだないのですが
何か違うものに置き換える事などは可能なのでしょうか?…
0580デフォルトの名無しさん
2011/07/25(月) 21:51:34.75(1)全試行回数と結果を表示する間隔をscanf()で読みそれにしたがって処理が進むようにする。
(2)各途中経過で求めたπの近似値のうち最もπの真値(=3.14159)に近い値とその時の試行回数を最後に表示させる。
という2つの点を加えて改良しなければならないのですがどなたか教えていただけませんか?
0581デフォルトの名無しさん
2011/07/25(月) 21:53:52.91#include<stdlib.h>
int main(){
int i,CircleCount=0;
float x,y;
for(i=1;i<=100000;i++){
x=(double)rand()/(double)0x7fff;
y=(double)rand()/(double)0x7fff;
if(x*x+y*y<=1.0)
CircleCount++;
if(i%10000==0)
printf(“%7d回 n=%f\n”,i,4.0*CircleCount/(float)i);
}
return(0);
}
c言語初心者で全く分かりません。
なのでココに載せたものを利用して
ソースプログラムを書いていただけると幸いです。
0582デフォルトの名無しさん
2011/07/25(月) 21:55:05.290583デフォルトの名無しさん
2011/07/25(月) 21:55:53.29>>2
0584デフォルトの名無しさん
2011/07/25(月) 21:59:57.19srandは乱数のタネ(初期値)を設定する、randと組みだからそれを使わないという方法は無い。
実行の度に異なるタネを与えないと、毎回同じ場所に地雷が配置されてしまう。
タネとしてtimeで現在時刻を取得している。
選択肢:
0 そのままtimeを使う
1 キーボードからタネを入力させる。(入力したタネで配置が決まってしまうのでゲームにならない)
2 プログラムの起動時刻から最初の入力までの時間をタネにする。多分習っていない
3 プロセス番号(getpid())。多分習っていない。
4 /dev/urandomを読む。多分習っていない。
0585デフォルトの名無しさん
2011/07/25(月) 22:02:53.605 初期化していない変数から rand seed を作る
0586デフォルトの名無しさん
2011/07/25(月) 22:03:46.69多分習っていない。
0587デフォルトの名無しさん
2011/07/25(月) 22:04:49.44大抵同じ値になる。
0588デフォルトの名無しさん
2011/07/25(月) 22:05:51.250589デフォルトの名無しさん
2011/07/25(月) 22:07:03.020590デフォルトの名無しさん
2011/07/25(月) 22:08:41.67同じになる?
#include<stdio.h>
int main(void)
{
unsigned long seed=0UL;
{
unsigned long arr[1024];
int i;
for(i=0;i<1024;i++) seed^=arr[i];
}
printf("%lu\n", seed);
return 0;
}
0591455
2011/07/25(月) 22:09:12.89ありがとうございます、>>584さんの仰るとおり
見事にどれも習ってないですね、このまま使う方が良さそうです。
いかに自分が初歩しか習ってないかを今ひしひしと実感しています…
RANDと組であるとの事なのですが、は何を意味する関数(?)なのでしょうか。
0592デフォルトの名無しさん
2011/07/25(月) 22:09:19.15ありがとうございます
ちゃんとできました
0593デフォルトの名無しさん
2011/07/25(月) 22:13:51.58VCのデバッグビルドならフフフが入ってるから seed は 0 になる気がする
0594デフォルトの名無しさん
2011/07/25(月) 22:19:23.650595デフォルトの名無しさん
2011/07/25(月) 22:28:21.92プログラムの動作確認した時に -s で動かしたホストと -c で動かしたホストは同じはずだよ
main() の中で -c の場合、gethostbyname( "localhost" ); で得たIPを用いて接続してるから、
サーバーIP = クライアントIPが前提となっている
つまりこのプログラムにおいては『すべてサーバーのIPが出力されてしまいます』は正常な動作だ
0596デフォルトの名無しさん
2011/07/25(月) 22:34:50.14#include <stdio.h>
int main(void)
{
int i, total = 0;
for(i = 1; i <= 10; i++)
{
total += i;
}
printf("total = %d/n",total);
return 0;
}
教科書に載っていた問題ですが、
どうしてこれの計算結果が55になるのかわかりません。
1を10回以下足しても55にはなりませんよね
恐らく自分の解釈が間違っているのだと思うのですが
教科書にはそれ以上の記述がないのでわかりません。
誰か噛み砕いて教えてください。
0597デフォルトの名無しさん
2011/07/25(月) 22:38:50.51total=1+2+3+4+5+6+7+8+9+10;
iの値はforのループ一回回る毎に1増えている。
0598デフォルトの名無しさん
2011/07/25(月) 22:44:02.040599デフォルトの名無しさん
2011/07/25(月) 23:04:57.28#include <stdio.h>
void print_bit(unsigned short int x); //プロトタイプ宣言
void left_rotate2(unsigned short int *x, unsigned short int n);
int main(){
unsigned short int usi;
usi = 0xb85f ;
print_bit(usi);
print_bit(left_rotate2(&usi, 3));
return 0; //システムに値0を返す}
void print_bit(unsigned short int x){
int length , i , mask ;
mask = 1;
length = sizeof(x) *8;
mask =mask << (length -1);
printf("数値%xのビット状態\n",x);
for(i = 1;i<= length ; i++){
if(x & mask){
printf("1");
}else{ printf("0");}
mask =mask >> 1;
}
printf("\n");}
void left_rotate2(unsigned short int *x, unsigned short int n){
ここに処理が入る
printf("%d ビット左回転しました\n",n);}
実行結果:
数値b85fのビット状態
1011100001011111
3ビット左回転しました
数値c2fdのビット状態
1100001011111101
0600デフォルトの名無しさん
2011/07/25(月) 23:05:45.53>>596がアホなだけでは?
0601デフォルトの名無しさん
2011/07/25(月) 23:07:38.81randは疑似乱数を発生する。疑似乱数とは乱数のように見えるけれど、
実際は特定のアルゴリズムで計算される数列。
それの初期値を設定するのがsrand
0602デフォルトの名無しさん
2011/07/25(月) 23:17:01.13>>510 で書いたぞ
その例題の『ここに処理が入る』だけを書いても動かないぞ
void 型の left_rotate2() の戻り値を print_bit() の引数として渡してるから
出題者の程度が知れる問題だなぁ
0603デフォルトの名無しさん
2011/07/25(月) 23:24:29.74[2] 問題文(含コード&リンク): http://codepad.org/DSBxwIe8
上記のプログラムは数値を入れるとval[]の配列に。演算子を入れるとop[]の配列に
入れられます。これを利用して四則演算が出来る電卓を作成していただけますか?
*計算の優先順位(÷が×より前にあれば、数値を移動する処理は出来ています。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: (
[4] 期限: (2011年7月26日12:00まで)
[5] その他の制限:今の処理は8/3*3enterkeyで8*3/3になります。
enterkeyで計算結果を表示できるようにお願いします。
あと、if文、for文だけで行えますか?宜しくお願いします。
http://ideone.com/ly4Ru
>>423, >>493
0割りがありましたので修正しました。
http://ideone.com/2sY2Y
0606デフォルトの名無しさん
2011/07/25(月) 23:31:01.510607デフォルトの名無しさん
2011/07/25(月) 23:32:01.780608デフォルトの名無しさん
2011/07/25(月) 23:33:28.110609デフォルトの名無しさん
2011/07/25(月) 23:42:28.99度々すみません。
同じ人です。今日の講習で出された宿題です。
たぶん、今回で電卓の宿題は終わると思います。宜しくお願いします。
失礼。私ができなかった「÷が×より前にあれば、数値を移動する処理」はすでに作ってくださっていたのですね。感謝。
http://ideone.com/vRxYn
0612デフォルトの名無しさん
2011/07/26(火) 00:03:33.81作って頂いて申し訳ないんですが、下記のプログラムをいじらずに計算と計算結果を表示するプログラムを追加して頂けますか?宜しくお願いします。
http://codepad.org/DSBxwIe8
出来ればif文、for文で追加して頂けますか?ポイントと関数を作るところは習っていないので
0613デフォルトの名無しさん
2011/07/26(火) 00:13:31.20nkfコマンドでunicode(UTF-8)にしてみましたが改善されませんでした。
一応プログラム敵には何の問題もないのですがもやもやしています。
調べて見ましたが他の問題候補がありませんでした。
どうしたもんでしょう?
0614デフォルトの名無しさん
2011/07/26(火) 00:20:45.170615デフォルトの名無しさん
2011/07/26(火) 00:20:47.36telnetでホストに接続してるんだよね?
まさかと思うけど、使っているtelnetソフトの
漢字コードの設定はできてる?
0616デフォルトの名無しさん
2011/07/26(火) 00:25:59.380617デフォルトの名無しさん
2011/07/26(火) 00:30:59.68あえてint型で宣言してますので最初に割り算を行うと、割りきれない値がくると結果がおかしくなる。
8/3*3=8だが、わり算を先に行うと6になってしまう。
ですので割り算を最後に行わなければならない。
0618デフォルトの名無しさん
2011/07/26(火) 00:36:39.741,2行目と3行目がつながらない
0619デフォルトの名無しさん
2011/07/26(火) 00:38:37.050620デフォルトの名無しさん
2011/07/26(火) 00:42:48.53すみません。8/3*3を並び変えないで行うと8/3=2.6666で端数が切られ、2*3=6になりますので、8*3/3に並び変えて24/3=8で行うイメージらしいです。
こんな感じでどうですか?
http://codepad.org/dNEJ0TvJ
0622デフォルトの名無しさん
2011/07/26(火) 00:49:32.44以下の結果はどうすれば良い?
1/2
1/2+1/2
1/2+1/3
0623デフォルトの名無しさん
2011/07/26(火) 00:54:42.26[2] 問題文(含コード&リンク):
n個のデータを降順に並び変える関数を作成しなさい。
ただし、個数nを先に入力し、必要なメモリ領域を関数malloc()を用いて確保すること。
すなわち、配列による宣言はせずに、ポインタで宣言する。
また、2つの変数の値を入れ替える関数swap()も作成すること。
http://codepad.org/hZCN4vEh
上の課題を提出したのですが、再提出を要求されました。
コメントに対する直しがわかる方よろしくお願いします。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:7/28
[5] その他の制限:特になし
どなたか、よろしくお願いします。
http://ideone.com/8S6yH
無論、最初は先生にしたがって学ぶべきですが、int をわざわざ T に置き換えている(typedef int T;) は、私は意味がある、と思っています。参考までに。
0625デフォルトの名無しさん
2011/07/26(火) 01:28:22.67> >>612
> こんな感じでどうですか?
> http://codepad.org/dNEJ0TvJ
本当に何度もすみません。
scanfでは出来ませんか?
本当に面倒かけて申し訳ありません。
0626デフォルトの名無しさん
2011/07/26(火) 02:07:28.95ああ、かわいそうに。
QZっていうのはここに巣食ってるクズだから、そんなクズが作ったの
提出したら再提出になっちまうのもあたりまえ。
>>624もカスだから、そのまま提出したらダメ食らうよ。
でも、クズのコードなおす気はないので、悪いのに引っかかったと思って、
自分でなおす事を考えた方が良い。
0627デフォルトの名無しさん
2011/07/26(火) 02:27:45.85[2] 問題文(含コード&リンク)
符号無し整数xのposビット目を、1にした値を返す関数sec,0にした値を返す関数reset,反転した値を返す関数inverse
unsigned set( unsigned x, int pos) { /* ••• */ }
unsigned reset ( unsigned x, int pos) { /* ••• */ }
unsigned inverse ( unsigned x, int pos) { /* ••• */ }
を作成せよ。
<実行例>
非負の整数を入力してください:0x0B
セットしたいポジションを入力してください:3
Original bits: 00000000000000000000000000001011
set 1 to pos: 00000000000000000000000000001011
reset 0 to pos: 00000000000000000000000000000011
inverse the pos: 00000000000000000000000000000011
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:7月27日
よろしくお願いします。
0631デフォルトの名無しさん
2011/07/26(火) 03:31:58.300632デフォルトの名無しさん
2011/07/26(火) 04:33:24.00いえ、WinとLinuxデュアルブートにしてるのでtelnet接続ではないです。
ここはCの宿題坂なのでこれ以上はあきらめときます。
0633デフォルトの名無しさん
2011/07/26(火) 04:38:05.07unsigned set(unsigned x, int pos) { return x | 1 << pos; }
unsigned reset(unsigned x, int pos) { return x & ~(1 << pos); }
unsigned inverse(unsigned x, int pos) { return x ^ 1 << pos; }
0634デフォルトの名無しさん
2011/07/26(火) 05:18:43.40いえ、WinとLinuxデュアルブートにしてるのでtelnet接続ではないです。
ここはCの宿題坂なのでこれ以上はあきらめときます。
0635デフォルトの名無しさん
2011/07/26(火) 05:20:57.57void show_gene(int t, int gene[POP_SIZE][G_LENGTH],double fitness[POP_SIZE],FILE *fp)
関数で個体の値・遺伝子の表示はしなくても問題ないのでしょうか?
0636デフォルトの名無しさん
2011/07/26(火) 07:27:42.801/2 = (int)0.5 = 0
1/2+1/2 = 2/2 = 1
1/2+1/3 = (3+2)/6 = (int)0.833 = 0
でいいんでない?
0637デフォルトの名無しさん
2011/07/26(火) 08:12:03.83ここで質問するような人には確実にできない宿題だな
0638デフォルトの名無しさん
2011/07/26(火) 08:41:30.09[2] 問題文(含コード&リンク): 4つの数字を入力して四則演算の組み合わせを考えて
10になる数式を表示せよ。10になる数式がなければ"NG"と表示。
入力できる数値は1〜9までとする。
例)
入:1 2 3 4
答え:2×3+1×4
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: [2011年07月26日18:00まで
[5]文の作り方はif文とfor文で出来ればお願いします。
あと、値の入力はscanfでお願いします。
宜しくお願いします。
0639ディ
2011/07/26(火) 08:54:30.011/2 = 0
1/2+1/2 = 0 + 0 = 0
1/2+1/3 = 0 + 0 = 0
でいいんでない?
8/3 が 2 だということなら。
0640デフォルトの名無しさん
2011/07/26(火) 09:23:29.84項の単位で / の演算法を変えるのか (>>636)
0641デフォルトの名無しさん
2011/07/26(火) 09:25:44.85つまり
1/2+1/2=0
1/2*2=1
ということか
0642デフォルトの名無しさん
2011/07/26(火) 09:33:36.19その意味には興味が有るので教えて欲しい
0643デフォルトの名無しさん
2011/07/26(火) 09:45:50.78http://codepad.org/EGE8MIba
0644デフォルトの名無しさん
2011/07/26(火) 09:50:18.571199や1158もできるようにすんの?
0645ディ
2011/07/26(火) 09:57:53.19<int>(8÷3)=2 は大学レベル。 こうゆう時学歴が物を言うと。
0646デフォルトの名無しさん
2011/07/26(火) 10:13:30.81できないのはNG表示で良いです。
説明も出来なければならないので考え方も教えて頂けますか?
宜しくお願いします。
0647デフォルトの名無しさん
2011/07/26(火) 11:09:08.13num[0]=1 num[1]=2 num[2]=3 num[3]=4と入るプログラムを教えて頂けますか?
0648千夏
2011/07/26(火) 11:59:12.15[2]M,Nを与えられた自然数(キーボードから読み込む)とする。MxNのサイズの迷路を作り表示する。
ただし壁は*、道は+であらわすこと
表示例:M=12 N=5
*+**********
*+**+++++++*
*+****+***+*
*++++++***++
************
[3]Windows Vista・Visual studio 2008・C言語
[4] 8/31まで
[5]当然だが、正解経路は一つに決まること
お願いします
0649デフォルトの名無しさん
2011/07/26(火) 12:17:31.490650デフォルトの名無しさん
2011/07/26(火) 12:25:07.39頻繁な催促はよしなさい
0651デフォルトの名無しさん
2011/07/26(火) 12:29:09.34申し訳ありませんでした
0652デフォルトの名無しさん
2011/07/26(火) 15:09:11.44電気回路の問題なんて専門的(高校物理程度かな)過ぎてここのドカタじゃ解けない
じゃないか
0653デフォルトの名無しさん
2011/07/26(火) 15:44:30.18拒否反応起こして問題読んでないだろ
0654デフォルトの名無しさん
2011/07/26(火) 18:03:36.21まあ、単位落とそうが知ったこっちゃ無いし
0655デフォルトの名無しさん
2011/07/26(火) 18:04:47.72そのサイズで作り得る全ての迷路をあげる問題?
0656デフォルトの名無しさん
2011/07/26(火) 18:29:01.45[2] 問題文(含コード&リンク): 4つの数字を入力して四則演算の組み合わせを考えて
10になる数式を表示せよ。10になる数式がなければ"NG"と表示。
入力できる数値は1〜9までとする。
例) 入:1 2 3 4 答え:2×3+1×4
[3.1] OS: WindowsXP
[3.2] gcc
[3.3] 言語: C [4] 期限:[2011年07月27日16:00まで
[5]小町演算の作り方はif文とfor文で出来ればお願いします。
http://codepad.org/hBuUU9YQ ←は値を取り出すだけのプログラムでです。
このmain関数内だけに追加お願いします
0657デフォルトの名無しさん
2011/07/26(火) 18:32:36.62本当に何度もすみません。皆さんの力を借りないと解けないような問題です。宜しくお願いします。
0658デフォルトの名無しさん
2011/07/26(火) 19:30:20.89明日提出期限です。
入力した数の階乗を計算するプログラムを作れ。
nの階乗とは、n!と書いて、次のような計算をするものである。
n! = n × (n – 1) × (n – 2) × … × 2 × 1
ヒント)関数 fact(n)を n!を計算するプログラムとする。
この時、
n! = n × (n – 1)!
だから、fact(n) を計算するには、fact(n-1)を計算してから、nをかければ良い。
0660デフォルトの名無しさん
2011/07/26(火) 19:54:50.890661デフォルトの名無しさん
2011/07/26(火) 19:55:24.59(例)hexという名前のプログラムを作り、217を入力した場合に以下のようになる。
Q:\hello> hex
Input? 217
Kotae = D9 (注) 217 == 13*16 + 9
Q:\hello>
(注意)この例でInput? や Kotae = の部分は入力したものではなく、プログラムが表示した部分である。これらは、出来るだけ分かりやすいものにすることが望ましい。
cでお願いします。
0662デフォルトの名無しさん
2011/07/26(火) 19:57:46.00Sum = 12 + 22 + ... + N2
(注意) Nの値は、キーボードから入力できるようにすること。
Q:\prog> calcsum (注) この例ではプログラムの名前をcalcsumとした。
Input N? 10 Nの値として10を入力する
Sum is 385 12 + 22 + 32 + 42 + 52 + 62 + 72 + 82 + 92 + 102 を計算すると385になる。
0663デフォルトの名無しさん
2011/07/26(火) 20:02:25.88[2]
課題8-2. 配列に順番に入力した数字を代入するプログラムを作れ。
すなわち、例えば以下のようなものを作れ。
1度目にinput_number()で入力した数を、numbers[0]に代入し、
2度目にinput_number()で入力した数を、numbers[1]に代入し、
…
n 度目にinput_number()で入力した数を、numbers[n-1]に代入する。
input_number()という関数は、自分で定義するように
[3]Windows Vista・cygwin1.7・C言語
[4]今夜まで
お願いします、
0664デフォルトの名無しさん
2011/07/26(火) 20:02:41.970665デフォルトの名無しさん
2011/07/26(火) 20:05:06.05http://ideone.com/BUpP3
0666デフォルトの名無しさん
2011/07/26(火) 20:17:06.27http://ideone.com/rtOOM
0667デフォルトの名無しさん
2011/07/26(火) 20:18:52.51お願いします。本当に切羽詰まってます。
0668デフォルトの名無しさん
2011/07/26(火) 20:26:14.87多分n^2という書き方が分からなくてn2とか書いちゃったんだろ
0669デフォルトの名無しさん
2011/07/26(火) 20:37:51.41与えられた迷路を脱出する問題じゃないかな。
0670デフォルトの名無しさん
2011/07/26(火) 20:45:38.27杏仁豆腐 杏仁豆腐
この白く甘いスイーツが
豆腐だと
今の僕には理解できない
0671デフォルトの名無しさん
2011/07/26(火) 20:48:50.69Sum = 12 + 22 + ... + N2 (注意) Nの値は、キーボードから入力できるようにすること。
すいません 385計算ミスでした。
相変わらずjk巷のかわいいハァハァ
0672デフォルトの名無しさん
2011/07/26(火) 21:05:02.83初期値2でNまで10ずつ足せば良いの?
0673デフォルトの名無しさん
2011/07/26(火) 21:13:56.93http://ideone.com/4U6lp
こんなんでいいのかな
0674デフォルトの名無しさん
2011/07/26(火) 21:14:30.53というふに読めるが… はて
0675デフォルトの名無しさん
2011/07/26(火) 21:15:40.810676デフォルトの名無しさん
2011/07/26(火) 21:22:29.56できればかわいい女の子のm字開脚の写真を貼りたいのだが、拙者持ってない。
本当にありがとう。
0677デフォルトの名無しさん
2011/07/26(火) 21:25:53.56http://ideone.com/SzxVh
ネット流用
0678デフォルトの名無しさん
2011/07/26(火) 21:46:44.65>> 638向けに作ってたやつです。
好きに加工して下さい。
0679デフォルトの名無しさん
2011/07/26(火) 21:47:39.35http://codepad.org/SaPkBvDJ
0680デフォルトの名無しさん
2011/07/26(火) 21:56:00.79ttp://codepad.org/1qweX3Gx
0681デフォルトの名無しさん
2011/07/26(火) 21:58:14.95作成して頂いて誠に申し訳ありませんが、ポインタと別の関数を作るのは習っておりませんのでmain関数内だけで行う事は可能でしょうか?
本当に申し訳ありません。
0682デフォルトの名無しさん
2011/07/26(火) 22:03:31.98[2] 問題文:引数argvに以下の3種類がある。
組み合わせて使用した場合にNGを出力しなさい。
例)
0 ... 指定なし
1 ... 指定あり
引数 | --a | --b | --c |
-----+-----+-----+-----+------
| 0 | 0 | 0 | OK
| 0 | 0 | 1 | OK
| 0 | 1 | 0 | OK
| 0 | 1 | 1 | NG
| 1 | 0 | 0 | OK
| 1 | 0 | 1 | NG
| 1 | 1 | 0 | NG
| 1 | 1 | 1 | NG
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:07/27 10:00まで
[5] 特になし
0683デフォルトの名無しさん
2011/07/26(火) 22:20:06.42本当にありがとうございました。
0684デフォルトの名無しさん
2011/07/26(火) 22:31:00.83http://codepad.org/z459eTS5
0685デフォルトの名無しさん
2011/07/26(火) 22:36:50.03わざわざありがとうございます。
せっかくコーディングしていただいて申し訳ないですが、
もし可能であればビット演算を利用していただけないでしょうか?
0686デフォルトの名無しさん
2011/07/26(火) 22:36:55.83GMPやNTLが多いのでたまには別のライブラリで、と言うことで書いてみた
ttp://codepad.org/NSKHzAat
次回からはテンプレ使うように
0687デフォルトの名無しさん
2011/07/26(火) 22:49:22.66typedef struct{
R:符号なし整数8ビット
G:〃
B:〃
}COLOR;
の構造体の作ってください
おねがいします
0688デフォルトの名無しさん
2011/07/26(火) 22:54:43.86>>687は誤爆でした
0689デフォルトの名無しさん
2011/07/26(火) 22:57:45.63誤爆じゃないです
0690デフォルトの名無しさん
2011/07/26(火) 23:01:19.41>>687はスレチでした
0691デフォルトの名無しさん
2011/07/26(火) 23:05:02.920692デフォルトの名無しさん
2011/07/26(火) 23:05:57.420693デフォルトの名無しさん
2011/07/26(火) 23:06:36.32>>2
0694>>687
2011/07/26(火) 23:11:10.45[1] 授業単元:-
[2] 問題文(含コード&リンク):次の構造体を完成して下さい
typedef struct{
R:符号なし整数8ビット
G:〃
B:〃
}COLOR;
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C++
[4] 期限:7/27
[5]その他制限:なし
おねがいします!!
0695デフォルトの名無しさん
2011/07/26(火) 23:15:06.430696デフォルトの名無しさん
2011/07/26(火) 23:15:59.11それでできるんですか?
0697デフォルトの名無しさん
2011/07/26(火) 23:19:01.37><
0698デフォルトの名無しさん
2011/07/26(火) 23:21:48.16><
0699デフォルトの名無しさん
2011/07/26(火) 23:22:54.17[1] 授業単元:C言語演習
[2] 問題文:引数argvに以下の3種類がある。
組み合わせて使用した場合にNGを出力しなさい。
例)
0 ... 指定なし
1 ... 指定あり
引数 | --a | --b | --c |
-----+-----+-----+-----+------
| 0 | 0 | 0 | OK
| 0 | 0 | 1 | OK
| 0 | 1 | 0 | OK
| 0 | 1 | 1 | NG
| 1 | 0 | 0 | OK
| 1 | 0 | 1 | NG
| 1 | 1 | 0 | NG
| 1 | 1 | 1 | NG
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:07/27 15:00まで
[5] フラグ・判定にビット演算を使用してください。
0700>>696
2011/07/26(火) 23:25:20.15コンパイルしたら
できないんですが…
0701デフォルトの名無しさん
2011/07/26(火) 23:27:46.22typedef struct {unsigned int R:8;
unsigned int G:8;
unsigned int B8;} COLOR;
0702デフォルトの名無しさん
2011/07/26(火) 23:30:04.07×B8
○B:8
0703デフォルトの名無しさん
2011/07/26(火) 23:39:31.27ありがとうございました!
0704デフォルトの名無しさん
2011/07/26(火) 23:58:43.85http://ideone.com/213KD
0705デフォルトの名無しさん
2011/07/27(水) 00:04:16.24日本語が読めない人は回答しないでいいです。
0706デフォルトの名無しさん
2011/07/27(水) 00:10:56.22http://ideone.com/9uYLL
>>705
無能に生まれたせいでネットで叩くしかできない人はさっさと死んだほうがいいです。
0707デフォルトの名無しさん
2011/07/27(水) 00:17:43.73嘘つくと信用なくすよ
0708デフォルトの名無しさん
2011/07/27(水) 00:21:48.35[2] 問題文:下の画像の問題の()を埋めるんですけど分かりません。お願いします。
ttp://nagamochi.info/src/up77571.jpg
ttp://nagamochi.info/src/up77572.jpg
ttp://nagamochi.info/src/up77573.jpg
☆をno個表示するプログラム部分である。
ttp://nagamochi.info/src/up77574.jpg
ttp://nagamochi.info/src/up77575.jpg
0709デフォルトの名無しさん
2011/07/27(水) 00:22:33.01テスト用にcloneで作って修正した新しい方を閉じて古い方を間違って貼ったから再度cloneして作り直した
>>705はビット演算してないと勘違いしてんだろ その部分は>>704の時点から変わってない
「貼り間違えた」のどこに矛盾があるんだ
0710デフォルトの名無しさん
2011/07/27(水) 00:35:48.87[1] 授業単元: 課題
[2] 問題文
1. ランダムに決めた10個の整数(0〜50)を要素とする配列Aと配列Bを用意する。
2. 配列Aと配列Bに共通する整数を表示する。
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限: なし
[5] 大学2年生レベル
・総当りで調べる
・配列を昇順にソートしてから調べる
この2つの方法が思いつきました。
要素の数が増えた場合も考慮して、
さらに速い方法があれば教えてください。
0711デフォルトの名無しさん
2011/07/27(水) 00:38:49.46だってドカタのプだもん
嘘吐きや日本語が読めないはドカタのプには当たり前です
0712デフォルトの名無しさん
2011/07/27(水) 00:39:47.82mainだけで、forとifで作ったよw
入力値に0があるとおかしいけど、
>このmain関数内だけに追加お願いします
こうあるので、そのままにした。
もともとのソースを直してね
http://codepad.org/uKQUfUmO
0713デフォルトの名無しさん
2011/07/27(水) 01:32:08.95N個のカウンタcnt[50]を用意し、Aにある数字の位置に1をセット。
Bにある数字の位置を2倍する。
http://codepad.org/rusbiYKs
0714デフォルトの名無しさん
2011/07/27(水) 01:38:36.13A,Bがそれぞれの中で重複無しなら、cnt[A[i]]++;cnt[B[i]]++;
0715デフォルトの名無しさん
2011/07/27(水) 10:45:34.37[2] 問題文:1358をを並び替えた数字を24通り表示させるプログラムを完成させない。
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:07/27 11:30まで
[5] sacnfで入れた4文字を並び替えるようにお願いします。
0716デフォルトの名無しさん
2011/07/27(水) 10:51:08.99>投稿日:2011/07/27(水) 10:45:34.37
>[4] 期限:07/27 11:30まで
0717デフォルトの名無しさん
2011/07/27(水) 11:05:44.82#include <stdio.h>
int main()
{
int uk[4];
int i, j, k, p;
scanf("%d%d%d%d", &uk[0], &uk[1], &uk[2], &uk[3]);
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
if (i == j)
continue;
for (k = 0; k < 4; k++) {
if (i == k || j == k)
continue;
for (p = 0; p < 4; p++) {
if (i == p || j == p || k == p)
continue;
printf("%d%d%d%d\n", uk[i], uk[j], uk[k], uk[p]);
}
}
}
}
return 0;
}
入力は 1 3 5 8のようになります
1358のように入力させる仕様がいいならそうする
0718デフォルトの名無しさん
2011/07/27(水) 11:20:56.59ttp://codepad.org/s59XILmv
美しくないな
0719デフォルトの名無しさん
2011/07/27(水) 11:26:01.030722デフォルトの名無しさん
2011/07/27(水) 12:43:20.85美しいかどうかはさておき自分はこんな風になった
期限すぎてる時点で駄目だけどw
#include <stdio.h>
#define N 4
void printNumber( int *pd, int *ps, int n )
{
int i, j, k, d[ N ];
if( ! n ) {
for( i=0; i<N; ++i )
printf( "%d ", pd[ i ] );
printf( "\n" );
return;
}
for( i=0; i<n; ++i ) {
pd[ N-n ] = ps[ i ];
k = 0;
for( j=0; j<n; ++j )
if( j != i )
d[ k++ ] = ps[ j ];
printNumber( pd, d, n-1 );
}
}
int main()
{
int i, d[ N ], t[ N ];
for( i=0; i<N;++i )
scanf( "%d", & d[ i ] );
printNumber( t, d, N );
return 0;
}
0723デフォルトの名無しさん
2011/07/27(水) 13:17:42.02力任せ。
http://codepad.org/h8sAnXoo
0724718
2011/07/27(水) 15:38:34.19すこし美しくなったが....もっとなんとかなりそうな気がする
0725デフォルトの名無しさん
2011/07/27(水) 15:46:22.220726デフォルトの名無しさん
2011/07/27(水) 15:52:38.71[2] 問題文:char str[4]="ABCD"
上記の変数strには"A" "B" "C" "D"がstrの[0]〜[3]が入っています。
この文字を三つ取り出して文字が同じになってもいいので組み合わせを表示
させるプログラムを教えてください。
例:
ABC
ACB
ADC
AAA
AAB
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:07/27 18:00まで
[5] さっき、数字を並び替えるプログラムを学んだのでそれの応用問題だと思います。
以下に今日習ったソースコードを追加します。
http://codepad.org/ye1dWylL
習い始めて2ヶ月ですので、上記のソースに近いイメージでお願いします。
0727デフォルトの名無しさん
2011/07/27(水) 15:57:48.860728デフォルトの名無しさん
2011/07/27(水) 16:10:33.50処理的にはそうだが美しさ的にはネストが一つ深くなるから嫌だ
0729デフォルトの名無しさん
2011/07/27(水) 16:31:27.14ネストなんて飾りですよ
ttp://codepad.org/Z5LalDTU
0730デフォルトの名無しさん
2011/07/27(水) 16:39:33.56美しくないです
0731デフォルトの名無しさん
2011/07/27(水) 16:41:34.80すみません。提出することが出来ました。
明日に行う課題を出されました。
出来れば教えていただけますか?
[1] 授業単元:C言語プログラミング
[2] 問題文:4つの数値をを入力して結果が20になる数式(+,-,*,/)を全て表示させる.
()は考えない。
組み合わせがない場合はエラー表示とする。入力できる数値は一桁のみとする。
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:07/28 09:00まで
[5]数値を並び替える http://codepad.org/wXuq003F 演算子を三つ取り出す http://codepad.org/cLkTFiYX
上記を今日、習ったのでコレを使って行いたいです。宜しくお願いします。
0732デフォルトの名無しさん
2011/07/27(水) 16:45:17.230733デフォルトの名無しさん
2011/07/27(水) 16:45:43.04再帰で7桁まで対応。
http://ideone.com/vA5mq
0734デフォルトの名無しさん
2011/07/27(水) 16:50:46.45>> 712 は合計10。
0735デフォルトの名無しさん
2011/07/27(水) 16:57:56.73>>712でも構いませんが、習った内容を生かさないとコピペだと思われるので評価に響くので宜しくお願いします。本当に申し訳ありません。
0736デフォルトの名無しさん
2011/07/27(水) 17:09:37.15採点する人はたいていここ見てるから
0737デフォルトの名無しさん
2011/07/27(水) 17:13:38.50>コピペだと思われるので
コピペなのになに言ってんだか
0738デフォルトの名無しさん
2011/07/27(水) 17:17:45.46コピペがばれるって意味じゃね?
0739デフォルトの名無しさん
2011/07/27(水) 17:36:45.840740デフォルトの名無しさん
2011/07/27(水) 17:47:46.43教えてるのを生かして作成しないと疑われるからです。
0741デフォルトの名無しさん
2011/07/27(水) 17:49:42.970742デフォルトの名無しさん
2011/07/27(水) 17:55:11.55糞コードの書き方を教えられても困ります。
0743デフォルトの名無しさん
2011/07/27(水) 18:23:27.92http://hibari.2ch.net/test/read.cgi/tech/1197620454/
0744デフォルトの名無しさん
2011/07/27(水) 19:02:48.19http://codepad.org/CRzlU5au
0745デフォルトの名無しさん
2011/07/27(水) 19:20:44.58[2] 問題文(含コード&リンク):0 が入力されるまで正整数を読み込み、最大値、(最後の0 を除いた)最小値、全入力数値の平均(最
後の0 を含めず) を出力するプログラムを作りなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 7 /28 13:30まで
[5] その他の制限: forあるいはwhileを使用すると思われます
よろしくお願いします。
0746デフォルトの名無しさん
2011/07/27(水) 19:23:00.08>組み合わせがない場合はエラー表示とする。
これ入れてあげて
0747デフォルトの名無しさん
2011/07/27(水) 19:27:07.28http://pastebin.com/SETZzwz0
調べたりしてデータをファイルとして保存、読込以外はできました
保存、読込の部分で詰まったのでよければこの部分をお願いします
0748デフォルトの名無しさん
2011/07/27(水) 20:00:29.98http://ideone.com/QM5JB
0749デフォルトの名無しさん
2011/07/27(水) 20:03:47.58http://codepad.org/sDcg753n
0750デフォルトの名無しさん
2011/07/27(水) 20:41:06.70問題6-1
ttp://ideone.com/2FWbP
問題6-2
ttp://ideone.com/VmEli
問題6-3
ttp://ideone.com/2biBT
0751デフォルトの名無しさん
2011/07/27(水) 20:45:13.980752デフォルトの名無しさん
2011/07/27(水) 20:59:27.130753デフォルトの名無しさん
2011/07/27(水) 22:24:14.120754デフォルトの名無しさん
2011/07/27(水) 23:13:36.92[2] 問題文
構造体TACを作成しなさい
メンバー、変数は以下のとおりである
データ 変数名 型
輪の数 ver 整数型
輪の色 r_color 構造体COLOR
背景色 b_color 構造体COLOR
座標 x 整数
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限: なし
[5] なし
お願いします
0755デフォルトの名無しさん
2011/07/27(水) 23:16:37.00それ宿題じゃないだろ
0756デフォルトの名無しさん
2011/07/27(水) 23:19:03.40単純な字句置換もできないのか
0758デフォルトの名無しさん
2011/07/27(水) 23:38:46.71初心者なもので…
0759754
2011/07/27(水) 23:42:31.370760デフォルトの名無しさん
2011/07/27(水) 23:45:39.16エラー表示が抜けていたので追加しました。
http://codepad.org/gZD3P4xg
0761デフォルトの名無しさん
2011/07/27(水) 23:47:37.22あせるなよ。作る人がいるにしてもある程度は時間がかかるものだ
0762デフォルトの名無しさん
2011/07/27(水) 23:48:39.03[2] 問題文
各頂点座標vertexが構造体REXに格納されている。
この構造体を頂点数に合わせて動的に確保できるように書き換えなさい。
さらに、引数として頂点数を格納した構造体を渡すことで、頂点数分のメモリーを確保して
そのアドレスを構造体のメンバー変数に格納する関数を作成しなさい。
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C++
[4] 期限:29日
[5] -
0763デフォルトの名無しさん
2011/07/27(水) 23:49:19.45期限ないんだから2〜3年待ってろよ
0764デフォルトの名無しさん
2011/07/27(水) 23:50:15.47書き換える?
元のソースがあるんじゃないの?
0767デフォルトの名無しさん
2011/07/28(木) 00:38:02.28低脳は講義にほとんどついていけないんですよ
>>762の宿題も低脳じゃ駄目。一を聞いて十を知る奴でないと駄目ね
0769デフォルトの名無しさん
2011/07/28(木) 03:00:41.34こんな感じなのだろうか?
struct vertex
{
double x,y,z;
};
struct REX
{
vertex *pVertexes;
int nCount;
};
void allocVertex( struct REX *pRex )
{
pRex->pVertexes = new struct vertex[ pRex->nCount ];
};
0770デフォルトの名無しさん
2011/07/28(木) 03:01:59.40教えてくださいって自分でやりたいのか?
低能だからここに丸投げじゃなかったのか
0771デフォルトの名無しさん
2011/07/28(木) 09:18:56.050772デフォルトの名無しさん
2011/07/28(木) 10:10:35.590000が入った時に出力画面でエラーが出てしまいます。
あと、9999が入った時にはエラーは出ませんがNGが表示されません。
http://codepad.org/gZD3P4xg
0773デフォルトの名無しさん
2011/07/28(木) 10:23:51.900774デフォルトの名無しさん
2011/07/28(木) 10:38:07.21> 731
> ()は考えない。
0775デフォルトの名無しさん
2011/07/28(木) 11:31:51.280776デフォルトの名無しさん
2011/07/28(木) 12:31:15.28これって0が入った時点でダメじゃん
0777デフォルトの名無しさん
2011/07/28(木) 14:00:57.13誤差の範囲
0778デフォルトの名無しさん
2011/07/28(木) 14:57:49.230779デフォルトの名無しさん
2011/07/28(木) 15:21:35.70/ 0 のケースは無条件NGにすれば良いのかな
0780デフォルトの名無しさん
2011/07/28(木) 16:27:26.96問題点は4521を入力した時に5*2+1/4という結果が表示されます。
計算は10.25になり、int型ですので小数点以下は切り捨てられ10になりますが、
端数を切捨てでの数式は表示させないようにといわれました。
http://codepad.org/gZD3P4xg
ご指導お願いいたします。
0781デフォルトの名無しさん
2011/07/28(木) 16:41:30.570782デフォルトの名無しさん
2011/07/28(木) 16:44:02.224つの整数を計算して、計算途中に小数を含むが最終的に10になる、っていうパターンってあるのかな?
0783デフォルトの名無しさん
2011/07/28(木) 16:55:03.755/2*4*1
割り切れない割り算があるとやめて次にいけばいいかと思ったが、そうはいかないな
0784デフォルトの名無しさん
2011/07/28(木) 16:56:15.55入力可能範囲は0〜9でお願いします。
例:0025 結果2*5+0+0
0785デフォルトの名無しさん
2011/07/28(木) 16:59:16.80その条件を満たすためには 和で整数に成る か 差で消える ってことだろうけど
和,差の被数がそれぞれ分数になるためには
a / b + c / d a / b - c / d
の組み合わせに制限されちゃう
なんとなく、その制限下では演算結果が10にはできない気配
0787デフォルトの名無しさん
2011/07/28(木) 17:06:04.91そのケースが駄目なら割り切れない時はアウトで良いんじゃないか?
5*4/2*1 はオーケーって話なんだから
0788デフォルトの名無しさん
2011/07/28(木) 17:13:09.36その組み合わせで10にできるわけはないんだがw
0789デフォルトの名無しさん
2011/07/28(木) 17:22:39.86>> 731は結果が20になる組み合わせだろ?
まあ、課題を装ってあれこれ修正させて遊んでるだけかもしれないが。
0790デフォルトの名無しさん
2011/07/28(木) 17:29:28.855/2*4*1 も表示すべきなんじゃないかと思うがどうだろ
もしそうなら面倒くさいな
割り算は項の最後に持っていくとかの処理が必要か
0791デフォルトの名無しさん
2011/07/28(木) 17:32:27.530792デフォルトの名無しさん
2011/07/28(木) 17:43:05.120793デフォルトの名無しさん
2011/07/28(木) 17:43:54.67どういうときに誤差が発生するのか自分がよく分かっていないことに気がついた
0794デフォルトの名無しさん
2011/07/28(木) 17:48:43.69この程度の数値では誤差は考慮不要と思う。
#include <stdio.h>
int
main()
{
double i, j;
for (i = 1; i < 10; i++) {
for (j = 1; j < 10; j++) {
if (i / j * j - i)
printf("%g %g¥n", i, j);
}
}
return 0;
}
0795デフォルトの名無しさん
2011/07/28(木) 17:50:17.73それをOKとするなら実数で処理すれば良いし、NGとするなら割り切れない場合をNGとすれば良い
どっちを選択するかは提出者が考える事だろう
0797デフォルトの名無しさん
2011/07/28(木) 19:08:27.09[1] 授業単元: コンピュータ言語
[2] 問題文(含コード&リンク):
ttp://uproda.2ch-library.com/408813lG9/lib408813.txt
[3] 環境
[3.1] OS: Windows 7 PRO
[3.2] コンパイラ名とバージョン:visual studio
[3.3] 言語:C言語
[4] 期限:明日まで
[5] その他の制限:リンク先に記載してあります
よろしくお願いします。
0798デフォルトの名無しさん
2011/07/28(木) 19:35:45.39それ括弧なしだと10にならんでしょ
0799デフォルトの名無しさん
2011/07/28(木) 20:31:01.01ttp://codepad.org/9P6FTNhr
0801デフォルトの名無しさん
2011/07/28(木) 22:23:02.37括弧付けたらできるの?
0802デフォルトの名無しさん
2011/07/28(木) 22:32:20.408 / (1 - 1 / 5)
0803デフォルトの名無しさん
2011/07/28(木) 22:37:43.580804デフォルトの名無しさん
2011/07/29(金) 03:34:16.98[2] 問題文(含コード&リンク):http://codepad.org/UfRWs3k5
[3] 環境
[3.1] OS: Windows 7
[3.2] コンパイラ名とバージョン:visual studio
[3.3] 言語:どちらでも可
[4] 期限:2011年 7月 30日
[5] その他の制限:何とかお願いします
0805デフォルトの名無しさん
2011/07/29(金) 09:35:39.45[2]問題文:番号、数学点数、英語点数を一組としたデータを線形リスト形式で保存
全データ一覧
入力した番号の点数のみ表示
新しいデータを入力しリストの最後に追加
番号のみを入力してデータ削除 ← 可能ならば、出来てなくても大丈夫です
プログラム終了
[3] 環境
[3.1]OS:Mac
[3.2]コンパイラ名とバージョン:gcc
[3.3]言語:C
[4] 期限: 7月31日まで
[5] その他の制限: 必ず構造体(new_nodeやpool等)を用いること
「switch」を用いて任意の順番で出来るようにして下さい
0806デフォルトの名無しさん
2011/07/29(金) 09:40:42.34番号 数学 英語
N0003 82 100
N0006 73 91
N0020 69 83
N0011 44 70
N0025 34 62
N0022 32 52
N0015 16 12
N0013 61 100
N0001 70 88
(本当はデータ数が25個程あるのですが、これだけでお願いします)
全データ一覧ではリスト通りの表示でOKです
0807デフォルトの名無しさん
2011/07/29(金) 17:16:26.16[2] 問題文(含コード&リンク): http://codepad.org/P8lye0BT
このプログラムを応用し、100以上200未満の乱数を10000回発生させ、各数値が何回乱数として発生したのかをcsv形式ファイルに出力し、結果をExcelのグラフを示しなさい。
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限:8/2まで
0808807
2011/07/29(金) 17:58:08.22#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void){
int num, loop;
int times[100] = { 0 };
srand( (unsigned)time( NULL ) );
for (loop = 0; loop < 10000; loop++){
num = rand()%100+100;
++times[num - 100];
}
for (loop = num; num < 100; num++)
printf("%d,%d\n", num+100, times[num] );
return (0);
}
あとどうすれば良いですか?
0809807
2011/07/29(金) 17:59:49.20でした
0810デフォルトの名無しさん
2011/07/29(金) 18:23:00.14あとは出力をcsvファイルにしてExcelにつっこんだらおしまい
0811デフォルトの名無しさん
2011/07/29(金) 18:35:22.19ここまでは出来たんだが、
http://codepad.org/Fj0kd1oh
>各数値が何回乱数として発生したのか
のやり方がわからん
どうすればいいんだ?
0812デフォルトの名無しさん
2011/07/29(金) 18:49:30.74例えば
1 149
2 24
3 87
.
.
.
10000 134
的な
0813デフォルトの名無しさん
2011/07/29(金) 18:54:27.00あれ?808-809でできてたのになんで違うコードなの?別人?
csvを標準出力に出せてるから、リダイレクトとかでcsvファイルとして保存して
Excelで開いてグラフにすれば終わりだよ
無理にC上でファイルに出力することも無いと思うよ
0814807
2011/07/29(金) 19:06:35.43http://codepad.org/BTOOm7o4
です。どうしましょう
0815デフォルトの名無しさん
2011/07/29(金) 19:20:19.060816デフォルトの名無しさん
2011/07/29(金) 19:23:00.940817デフォルトの名無しさん
2011/07/29(金) 19:36:38.45どうしましょうも何も完成してるじゃん
Excelで開いてグラフ作ったらおしまい
0818807
2011/07/29(金) 19:50:52.71をプログラムからしたいんですが、難しいですか?
簡単ならプログラムしたいんです
今はsystem(fname);
でExcelが起動して、csvは出るんですが
0819デフォルトの名無しさん
2011/07/29(金) 19:58:18.54やめておくことを勧める
WindowsのCOMと言うものを勉強して、COMの操作方法を覚えて、Excelを開いたときの操作方法を覚えれば可能だろうね
そんなwindows限定の狭い知識は、必要になったときに覚えればいいと思うよ
0820デフォルトの名無しさん
2011/07/29(金) 20:05:57.11プログラムからグラフ作りたいならgnuplotとか使うとそれなりにはできるね
まあこれもgnuplotの使い方を覚えんといかんけど
0821デフォルトの名無しさん
2011/07/29(金) 20:17:14.33コテ付けている人は俺と同じ大学っぽいな
http://codepad.org/Fj0kd1ohで出来ていた
>>812の意見を参考にこのプログラムをデバックしてそのファイルをもとにExcelでグラフを作った
0822デフォルトの名無しさん
2011/07/29(金) 20:36:48.06今が必要なときだっつてんの
0823デフォルトの名無しさん
2011/07/29(金) 20:41:32.60すでにある知識やその他ちょっとした知識で解決方法を探すべき
本当に必要なものを見極めて必要ないものはその時点ではあきらめることも必要
0824デフォルトの名無しさん
2011/07/29(金) 20:43:13.05なら覚えればいいと思うよ
0825デフォルトの名無しさん
2011/07/29(金) 21:05:38.10そもそも宿題は復習だろ
習ってない問題なんか出るわけない
>>821の方法でいいだろ
0826デフォルトの名無しさん
2011/07/29(金) 22:01:28.52[2] 問題文(含コード&リンク):
パーティクルを採用した、エフェクトプログラムデモを作成する。
・光の粒子が回転移動。
・爆発エフェクト(破片の物理移動)など。
例)花火
情報の洗い出し → 構造体
2.初期化 → 爆発時に初期データセット
3.実処理 → 移動、加減速、色調
4.後処理 → 情報の削除(メモリの解放)
[3] 環境
[3.1]OS:Windows7
[3.2]コンパイラ名とバージョン:VC6.0
[3.3]言語:Cのみ
[4] 期限:8月1日
[5] その他の制限:エフェクトは自由にとのことでしたが、炎や、爆発や雷で作っていただけるとありがたいです。よろしくお願いします。
DirectXは使用不可です。コンソールアプリでお願いします。3Dは使わず、"*"や、"+"などの記号で表現お願いします。お手数ですが、コメントよろしくお願いします。
0827デフォルトの名無しさん
2011/07/29(金) 22:12:38.063年前に同じ問題のレスがあるな
そのときついた解答はinfoseekだからもう見れないが
0828デフォルトの名無しさん
2011/07/29(金) 22:17:06.30コンソール画面に記号を使って炎や爆発や雷やらを表現しろってこと?
cursesでもつかってがんばってアニメーションさせるのかなあ
0829デフォルトの名無しさん
2011/07/29(金) 22:31:01.41って難しいかな>>QZさん
0830デフォルトの名無しさん
2011/07/29(金) 22:41:25.640831デフォルトの名無しさん
2011/07/29(金) 22:44:50.49がんばりたんわかゆす
0832デフォルトの名無しさん
2011/07/29(金) 23:13:54.20期限が少し延び、8月1日の12:00までとなりました。
宜しくお願いします
0833デフォルトの名無しさん
2011/07/29(金) 23:26:06.28ねぇ、ねぇMacの機種・OSは何を使っているの?
0834デフォルトの名無しさん
2011/07/29(金) 23:27:02.910835デフォルトの名無しさん
2011/07/29(金) 23:30:41.25違います。有名女子大ですよ
0836デフォルトの名無しさん
2011/07/29(金) 23:38:23.650837デフォルトの名無しさん
2011/07/29(金) 23:52:53.83>>829
とりあえず、迷路を描くところまで。今のところは、入力は二つとも奇数じゃないといけません。あと、すごくみにくいんですけど。
http://ideone.com/AU2q3
昔やったことあるなあ。http://pc11.2ch.net/test/read.cgi/tech/1199515728/659
0839デフォルトの名無しさん
2011/07/30(土) 00:10:39.53>[5] その他の制限: 必ず構造体(new_nodeやpool等)を用いること
>「switch」を用いて任意の順番で出来るようにして下さい
これどういうこと?
new_nodeやpoolって構造体?関数?どんな仕様か書かないと回答できないよ
「switch」を用いて任意の順番で処理〜って主語はなに?
0840デフォルトの名無しさん
2011/07/30(土) 00:12:28.52という怪談
0841デフォルトの名無しさん
2011/07/30(土) 00:17:36.89>正解経路は一つに決まること
これを読む限り正解でない(袋小路となる)経路も存在させる前提が見えるね
はい、リテイクできるね。楽しいね!
0842デフォルトの名無しさん
2011/07/30(土) 00:20:09.00それはごく最近の話。malloc()/free() のバグがなかなか取れなくて、とうとうラッパを作ってしまいました。
ごく最近、codegurad/borland を教えていただいた次第。プロはみんなこんなのを使うんですね。
それは曲解というもの。袋小路が存在しなければならない、とは指示されてはいません。
せいぜい「袋小路ができてもよい、解がひととおりであれば」くらいが限界でしょう。
>>842
棒倒しで十分ですよ。
0845デフォルトの名無しさん
2011/07/30(土) 00:27:57.04ttp://ideone.com/JDdaA
0846デフォルトの名無しさん
2011/07/30(土) 01:49:48.69検索したら3年前に似たような問題があったのですが回答が見れなくて書き込み
しました。*や+が画面にちらばり雷や*が広がって花火になるようなパーティクル
でエフェクトを作っていただきたいのです。説明下手ですいません。
どうかよろしくおねがいします。
>>829
>>669 にしたがって、迷路の解経路も表示するようにしました。
http://ideone.com/64tHG
>>842
思い直しました。おっしゃるとおり棒倒しはいまいちですね。
棒倒しだと 1)解が単純(ほぼ対角線上)、2)偶数サイズ指定に対応するのが面倒、だと思い至りました。
0848デフォルトの名無しさん
2011/07/30(土) 07:17:14.87パーティクルとエフェクトとは何か?
一般的な単語の理解でいいのかなんなのか
「パーティクルを採用した」ってのと
「エフェクトプログラムデモ」ってのが具体的に何をさしているのか
0849デフォルトの名無しさん
2011/07/30(土) 08:21:08.730850デフォルトの名無しさん
2011/07/30(土) 10:20:40.55Mac OS Xです
>>839
自分自身この辺を理解してないので上手く説明出来ませんが
poolなどはstructで
ポインタなども使います
switchで閲覧、入力などを選ばして欲しいと言う意味です
0851デフォルトの名無しさん
2011/07/30(土) 10:22:35.19winMEでも使えるフリーのC言語統合開発環境を教えてください
0852デフォルトの名無しさん
2011/07/30(土) 11:28:05.47エスパーしてみた。
typedef struct {
char n[6];
int suugaku;
int eigo;
struct pool*new_node;
} pool;
0853デフォルトの名無しさん
2011/07/30(土) 13:03:47.54ロード、セーブ、表示、追加、削除ができれば良いの?
セーブや全件表示の場合はソートが必要?
0854デフォルトの名無しさん
2011/07/30(土) 14:53:15.400855デフォルトの名無しさん
2011/07/30(土) 14:56:56.57質問板で聞いてくる
0856デフォルトの名無しさん
2011/07/30(土) 15:31:30.10俺のエスパーだとその説明は間違ってて↓を要求されてるんじゃないかと疑ってる
・nodeという構造体を使用
・poolというnode型のポインタで未使用nodeのリストを持つ
・new_nodeという関数でpoolからnodeをひとつ取得して使う
・del_nodeという関数で使用済みnodeをひとつpoolの末尾に返却する
0858デフォルトの名無しさん
2011/07/30(土) 16:45:06.55パーティクルを使って炎などのエフェクトを作りなさいとのことでした。
>>849コンソールAPIでお願いします。お手数かけます。
0859548
2011/07/30(土) 18:14:48.98ファイルポインタを用いたものにしていただけませんか
0860デフォルトの名無しさん
2011/07/30(土) 18:17:27.860862デフォルトの名無しさん
2011/07/30(土) 18:40:15.970863デフォルトの名無しさん
2011/07/30(土) 18:42:22.92C++じゃなくても複素計算できるよ
その先生おかしいから信じないほうがいいよ
0864805 850
2011/07/30(土) 18:52:21.71#include<stdio.h>
#include<string.h>
#defineN20
struct student{
int id;
double suugaku;
double eigo;
struct student *next;};
struct student node[N];
struct student *make_pool(int n);
struct student *new_node(struct student **p);
void back_node(struct student **p, struct student *n);
void print_list(struct student *p);
int main(){
0865548
2011/07/30(土) 18:56:58.72すみませんでした
ですが、そこをどうにかお願いできませんか
0866デフォルトの名無しさん
2011/07/30(土) 19:10:17.04ttp://codepad.org/g8xFtCOo
0868デフォルトの名無しさん
2011/07/30(土) 19:41:41.02struct student node[N];
struct student *make_pool(int n);
は何をするんだ?
0869デフォルトの名無しさん
2011/07/30(土) 20:22:40.99も十分に謎だ
0870805
2011/07/30(土) 20:48:00.46struct student node[N];
ノードプール用配列
struct student *make_pool(int n);
空ノードのプール作成。nは確保するノードの個数
ノードプールの先頭アドレス
>>869
void back_…
プールに返されたノードは最後尾にリンク
**pはプールの先頭へのポインタのアドレス
*n、返すノードへのポインタ
と、教員から頂いた資料に書いてあります
0871デフォルトの名無しさん
2011/07/30(土) 21:27:46.09とりあえず頂いた資料うpしろ
話はそれからだ
0872デフォルトの名無しさん
2011/07/30(土) 21:52:03.980873デフォルトの名無しさん
2011/07/30(土) 21:56:46.13宿題を依頼するのに、許可がいるのか?
0874デフォルトの名無しさん
2011/07/30(土) 22:16:39.80しかもNは全角だったか・・・
0875805
2011/07/30(土) 22:17:02.46頂いた資料のコピーです
これを参考にするらしいのですが
自分にはさっぱりで
0876デフォルトの名無しさん
2011/07/30(土) 22:21:50.60有名女子大生なにしとんwwwwwww
0877デフォルトの名無しさん
2011/07/30(土) 22:22:03.060878デフォルトの名無しさん
2011/07/30(土) 22:34:21.73困った問題だ、ちゅか困った講師だ
0879デフォルトの名無しさん
2011/07/30(土) 22:50:13.34http://ideone.com/CdumA
malloc()/free() は鬼門ですからね‥‥‥。java/c# を教材にすればいいのにね。
0881デフォルトの名無しさん
2011/07/30(土) 23:26:59.57盗作防止に変な問題作ったって線は無い?
malloc()/free() が無かったらC言語じゃないと思うんだけどなぁ
0882デフォルトの名無しさん
2011/07/30(土) 23:44:04.550883デフォルトの名無しさん
2011/07/30(土) 23:49:23.88組み込みはC言語じゃないと申すか
0884デフォルトの名無しさん
2011/07/31(日) 00:14:23.81組み込みだって動的確保くらいできるだろ、インターフェイスの違いは有るだろうけど
C言語の味わいって (void*) を返す大雑把な動的確保に有ると俺は信じてる(多分俺だけ?)
0885デフォルトの名無しさん
2011/07/31(日) 00:19:20.77リッチな組み込みとそうじゃない組み込みがある
後者は確保とか無くて用途ごとに使うアドレスが固定
0886デフォルトの名無しさん
2011/07/31(日) 00:45:53.79何を言ってるんだ?
malloc/freeが無い環境だろうがなんだろうが、
必要なら作るのがcプログラマだろ?
0887デフォルトの名無しさん
2011/07/31(日) 00:52:53.11これ以上はスレ違いなので、必要なら組み込みスレで。
思いはわかるんです、とっても。つい先日も私も嵌って一日うんうんいってましたし。(これで何十回目でしょうかね。)
でも「C言語じゃない」といいきってしまうと、んー、C の適用範囲が広いだけに、いろいろと異論もでてこようものでして、あはは。
0889デフォルトの名無しさん
2011/07/31(日) 01:25:37.53こういう方式はフリーリストとか読んでいました。
実際に組み込みでこの方式を採用して開発の経験があります。
ノード1つの大きさが固定で、最大数が正確に見積もれるのならば、
有効な方法です。
malloc/freeの替りにnew_node/back_nodeを使うことになります。
mallocと違い、確保できるメモリ領域サイズは固定です。
なるほど。
lisp の実装の一つに特定の固定長の領域を先に大量にプールしておくというのがあったことを記憶しています。
6809 上の処理系でした。
0891デフォルトの名無しさん
2011/07/31(日) 01:53:02.590892デフォルトの名無しさん
2011/07/31(日) 02:29:32.310893デフォルトの名無しさん
2011/07/31(日) 02:35:01.17サイズ固定のメモリ確保/解放を高速におこなうためのメモリプールは良くやる手法だと思う。
Effective C++にもplacement newで出てるのと考えは同じ。
>>891
組み込みの人なのかね?
new_node()の対がback_node()なのが頂けないなw
0894デフォルトの名無しさん
2011/07/31(日) 02:42:12.80する事を想定した授業なのかな
0895デフォルトの名無しさん
2011/07/31(日) 07:15:31.500897デフォルトの名無しさん
2011/07/31(日) 13:18:55.19>C言語の味わいって (void*) を返す大雑把な動的確保に有ると俺は信じてる(多分俺だけ?)
いや、それはC言語と関係ないだろ。
0898デフォルトの名無しさん
2011/07/31(日) 14:06:00.40そう?
それは malloc()/free() がライブラリ関数という形式で提供されているから、という理由でですか?
そういえば pascal にも new/dispose がありましたね。これは規格内だったか外だったか?
0900デフォルトの名無しさん
2011/07/31(日) 16:33:33.83[2] 問題文(含コード&リンク):
C言語の乱数発生関数を使ってサイコロ関数 int dice( void ) を作成し、以下の統計的な性質を検証せよ。
(1) 10,100,1000,1万回、10万回、100万回、1000万回、1億回の試行での 期待値(平均値)の変化
(2)前記の試行回数での各数字の出目の確率
(3)2つのサイコロを投げた時の11、22のようなぞろ目の確率
レポートのグラフはExcelを用いる。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語: C
[4] 期限: 2011年8月3日
[5] その他の制限: 特になし
お願いします
0901デフォルトの名無しさん
2011/07/31(日) 16:50:35.37結果の出力はコンソール画面でいいのかい?
csvファイルに出力するとかだったりしないか?
0902デフォルトの名無しさん
2011/07/31(日) 17:18:38.69正規授業がいまやあるのか?
0903デフォルトの名無しさん
2011/07/31(日) 18:24:47.693.11の影響で開始を遅らせた所はいくつかあったようだし
0904デフォルトの名無しさん
2011/07/31(日) 20:00:08.48コンソール画面でいいです。
0905デフォルトの名無しさん
2011/07/31(日) 20:22:48.39ttp://codepad.org/hKTQeKg8
0906デフォルトの名無しさん
2011/07/31(日) 20:24:52.85ttp://codepad.org/M40tJWkn
0907デフォルトの名無しさん
2011/07/31(日) 20:30:46.830908デフォルトの名無しさん
2011/07/31(日) 20:38:23.180909デフォルトの名無しさん
2011/07/31(日) 21:07:57.41[2] 問題文(含コード&リンク):
多角形を中心座標に対し上下反転させる関数を作成しなさい。この関数の引数は、多角形のデータが
収められた構造体のアドレスをとる。また、上下反転された座標は元の頂点座標に格納する変数に再代入される。
[3] 環境
[3.1] OS: Windows 7
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C++
[4] 期限:2011年 8月2日
[5] その他の制限:なし
おねがいしますm(__)m
0910デフォルトの名無しさん
2011/07/31(日) 21:48:25.77すげーわ
きれいだな
0911デフォルトの名無しさん
2011/07/31(日) 22:23:32.58826です。助かりました!ありがとうございます!
0912デフォルトの名無しさん
2011/07/31(日) 22:26:44.97これいいな
0913デフォルトの名無しさん
2011/07/31(日) 22:56:02.16久々に神をみた。
0914デフォルトの名無しさん
2011/07/31(日) 23:03:28.10[2] 問題文(含コード&リンク):ファイルの商品名を順に読み込んで、オーダー
の順を出力する関数を作成しなさい.
http://codepad.org/q5G3hxdB←ここまで作りましたが、"ファイルが見つかりません"と表示されます.
[3] 環境
[3.1] OS: Windows 7
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C++
[4] 期限:2011年 8月2日
[5] その他の制限:おねがいします
0915デフォルトの名無しさん
2011/07/31(日) 23:11:11.91ほんとにC++か?
C++なら自分で連結リスト作ったりしないと思うんだが
0916デフォルトの名無しさん
2011/07/31(日) 23:17:33.34最初に
if((fp=fopen(filename,"r")) == NULL){
fprintf(stderr, "Could not open file\n");
exit(1);
にぶつかっているのが直接の原因だと思いますが、"test.txt" は実行ファイルと同じフォルダに存在しているでしょうか?
vs の統合開発環境からビルドしているのであれば、たしかに "test.txt" の置き場がややこしい。(今手元にいれていないので、即答できなくてすみません。)
0917デフォルトの名無しさん
2011/07/31(日) 23:18:44.73file_read() をオーバーロードしているので、c++じゃないとコンパイルできないです。
0918デフォルトの名無しさん
2011/07/31(日) 23:19:22.000919デフォルトの名無しさん
2011/07/31(日) 23:20:46.240920デフォルトの名無しさん
2011/07/31(日) 23:30:26.800921デフォルトの名無しさん
2011/07/31(日) 23:32:34.80すごすぎワロタ
0922デフォルトの名無しさん
2011/07/31(日) 23:41:31.83激同意
>>905
パーティクルに色付けるにはどうすれば良い?
0923デフォルトの名無しさん
2011/08/01(月) 00:09:06.00はい
"test,txt"は実行ファイルと同じフォルダにあります
さっき新しくテキストを作り直したところ
「0x000a156d でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x00000100 を読み込み中に
アクセス違反が発生しました。」というエラーメッセージが出てきました
これはどういうことなのでしょうか?
0924デフォルトの名無しさん
2011/08/01(月) 00:21:03.95コンソールAPIを使う ただしデフォルトパレットの16色限定
0925デフォルトの名無しさん
2011/08/01(月) 00:54:09.59test.txt の内容を、空白も含めて codepad にあげてください。
たぶん、
if(fread(&data,1,sizeof(ORDER),fp)!=sizeof(ORDER)){
break;
の fread() の書きようがまずくて、即座に break -> return NULL
引き続いて
void file_read(ORDER *node){
が
file_read(NULL)
でコールされ、
printf("[%d] (%s, %d)\n", k++, node->name, node->price);
の
node->nameが
NULL->name
となってセグメンテーションエラー(例外)がでている
と推察します。
0926デフォルトの名無しさん
2011/08/01(月) 03:39:19.40http://codepad.org/SXWvuMeB
"test.txt"の内容を含めてあげました
判定をおねがいします
0927デフォルトの名無しさん
2011/08/01(月) 08:42:24.9025c25
< void file_read(ORDER *node)
---
> void data_print(ORDER *node)
59c59
< if(fread(&data,1,sizeof(ORDER),fp)!=sizeof(ORDER)) {
---
> if(fread(&data,1,sizeof(ORDER),fp)>sizeof(ORDER)) {
91c91
< file_read(order);
---
> data_print(order);
0928デフォルトの名無しさん
2011/08/01(月) 08:46:59.12c++なら
< if(fread(&data,1,sizeof(ORDER),fp)!=sizeof(ORDER)) {
---
> if(fread(&data,1,sizeof(ORDER),fp)>sizeof(ORDER)) {
0929デフォルトの名無しさん
2011/08/01(月) 11:11:14.65こうか?
http://ideone.com/JMCCI
0930デフォルトの名無しさん
2011/08/01(月) 13:46:08.72書いてあった通りに修正したら、無事問題文通りの動作をしました
何故今回は、上手くいったのか教えてもらえますか?
0931デフォルトの名無しさん
2011/08/01(月) 14:52:57.30自然数n > 1 と整数g, x>= 0 を入力として, g^x をn で割った余りg^x mod n を求めて表
示するプログラム
0932デフォルトの名無しさん
2011/08/01(月) 14:55:19.36[1] 情報処理演習�T
[2] http://webct6.cc.kyushu-u.ac.jp/webct/urw/lc66370999001.tp66379019001/RelativeResourceManager/sfsid/78508251001[3] 環境
[3.1] Mac
[3.2] Xcode
[3.3] C言語
[4] 今から1時間以内
[5] 特になし
よろしくお願いします
0933デフォルトの名無しさん
2011/08/01(月) 14:57:39.68[1] 授業単元:プログラム概論
[2]931に記載。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C
[4] 期限:2011年 8月2日
[5] その他の制限:おねがいします
0934デフォルトの名無しさん
2011/08/01(月) 15:03:39.26リンク先間違えました
http://webct6.cc.kyushu-u.ac.jp/webct/urw/lc66370999001.tp66379019001/RelativeResourceManager/sfsid/78508251001
正しいのは上のものです。
失礼しました。
0935デフォルトの名無しさん
2011/08/01(月) 15:04:58.28要求したページが見つかりません.
問題が解消されない場合,こちらに連絡してください: サーバ管理者.
0936デフォルトの名無しさん
2011/08/01(月) 15:12:34.30リンクを開いた際にURLが書き換えられるみたいです。
http://ime.nu/webとなっている部分のうちime.nu/を消して更新すると大丈夫みたいです。
お手数をおかけしてごめんなさい。
0937デフォルトの名無しさん
2011/08/01(月) 15:13:48.19[2] 問題文(含コード&リンク):ファイルに格納された適当な文字列を代入した
連結リストからある特定の文字列を削除し,削除後のリストをファイルに出力する関数を作成せよ.
[3] 環境
[3.1] OS: Windows 7
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C++
[4] 期限:2011年 8月2日
[5] その他の制限:おねがいします
0938デフォルトの名無しさん
2011/08/01(月) 15:14:31.02#include <stdio.h>
int main(void)
{
int n, g, x, r;
scanf("%d%d%d", &n, &g, &x);
for(r = 1; x; x--, r %= n) r *= g;
printf("%d\n", r);
return 0;
}
0939931
2011/08/01(月) 15:18:44.73ありがとうございます。
0940デフォルトの名無しさん
2011/08/01(月) 15:18:49.00ime.nu/削っても見られないぞ
ってかime.nu/は2ちゃん側が勝手に付けるもんだから関係無いと思うが
0941デフォルトの名無しさん
2011/08/01(月) 15:20:48.77936です
えっ?そうですか??
では問題を貼付けていってもいいでしょうか?
5個あるんですがお願いします。。
0942デフォルトの名無しさん
2011/08/01(月) 15:23:50.89いいんじゃね
答える奴がいるかどうかは知らんが
0943デフォルトの名無しさん
2011/08/01(月) 15:24:11.31お願いします。
入力された長さをもつ線を表示するプログラムを作成せよ.プログラムは以下を満たすものとする.
入力として受け取る長さは,1以上20以下となるようにすること.
入力された縦・横の長さをもつ長方形を表示するプログラムを作成せよ.プログラムは以下を満たすものとする.
入力として受け取る縦と横の長さは,1以上20以下となるようにすること.
横の長さは縦の長さ以上になるようにすること
.入力された縦・横の長さをもつ平行四辺形を表示するプログラムを作成せよ.プログラムは以下を満たすものとする.
入力として受け取る縦と横の長さは,1以上20以下となるようにすること.
横の長さは縦の長さ以上になるようにすること.
入力された高さをもつ数字の正三角形を表示するプログラムを作成せよ.プログラムは以下を満たすものとする.
入力として受け取る高さは,1以上20以下となるようにすること.
i段目にはiを表示する.ただし,10段目以降には一桁目の数字を表示する.
3×3行列に整数のデータを入力し,その縦・横・斜めに足した合計がすべて等しくなるかを確認するプログラムを作成せよ.プログラムは以下を満たすものとする.
整数のデータの入力では,for文を用いること.
予め3×3個の整数の要素を持つ二次元配列を準備する.
縦は3本,横は3本,斜め2本のそれぞれの合計が等しいかを確認する必要がある.
0944デフォルトの名無しさん
2011/08/01(月) 15:29:03.82[1] 情報処理演習�T
[2] 自然数n > 0 を入力として, その自明でない約数(1とその数以外の約数)を一つ出力するプログラムを作
成せよ.
[3.1] Linux
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] C言語
[4] 今から1時間以内
[5] 特になし
0945デフォルトの名無しさん
2011/08/01(月) 15:30:03.44他の人任せた
0946デフォルトの名無しさん
2011/08/01(月) 15:35:07.77*で代用みたいです。
説明不足ですいません。
0947デフォルトの名無しさん
2011/08/01(月) 15:41:10.920948デフォルトの名無しさん
2011/08/01(月) 15:57:08.64> if(fread(&data,1,sizeof(ORDER),fp)!=sizeof(ORDER)) {
これだとファイルから改行も含め、ORDERのサイズ(272バイト)だけ読み込もうとするが、test.txtは88バイトしかない。
freadは正常時は「272バイトの塊を何個読んだか」(通常は1)を返す。
読み込んだバイト数ではない。
--->1 != 272で1回目でbreakするため、mallocを1回も実行しない
--->メモリを確保出来ていないので、正常printできない。
対策:
if(fscanf(fp,"%s",s)==0) {
とすると、ファイル1行にデータ1個なので、sには1件文のデータが入る。
0949デフォルトの名無しさん
2011/08/01(月) 16:00:49.95なんだそういう事か。だったらすぐ出来たのに
もう時間過ぎちゃったけど俺ぁ知らんぞ
0950デフォルトの名無しさん
2011/08/01(月) 16:05:15.77ありがとうございます
0951デフォルトの名無しさん
2011/08/01(月) 16:07:12.43コンパイル、実行してないので動くかはしらんけど
#include <stdio.h>
int main(void) {
int n;
int i;
printf("自然数nを入力 : ");
scanf("%d", &n);
for (i = 2; i < n; i++)
if (n % i == 0) printf("%d", i), break;
return 0;
}
0952944
2011/08/01(月) 16:12:32.01ありがとうございます。
0953デフォルトの名無しさん
2011/08/01(月) 16:12:58.18時間が少し延長されました。。
あと20分ぐらい大丈夫です!
0955デフォルトの名無しさん
2011/08/01(月) 16:17:54.19[1] 授業単元:情報処理演習
[2] 問題文:2 つの整数a, b, s を入力として, ax + by = s を満たす整数x, y を一組求めてそれらを表
示するプログラムを作成せよ. ただし, 望みの整数x, y が存在しないときは, その旨を表
示するようにすること.
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:c
[4] 期限:8月2日
[5] その他の制限:特にないです。
0956デフォルトの名無しさん
2011/08/01(月) 16:27:53.61無茶言うなw
0957デフォルトの名無しさん
2011/08/01(月) 16:32:05.99後付でしかも、テンプレを使ってないから937に着手した者は954を見落とすだろうな。
修正があるなら、937の発展問題として新規にテンプレ使うべし。
0958955
2011/08/01(月) 16:32:31.90すみませんw
2つじゃなくて3つです。
申し訳ないです。
0959デフォルトの名無しさん
2011/08/01(月) 16:50:54.99指摘通り修正しました
[1] 授業単元:プログラミング問題
[2] 問題文(含コード&リンク):ファイルに格納された適当な文字列を代入した
連結リストからある特定の文字列を削除し,削除後のリストをファイルに出力する関数を作成せよ.
[3] 環境
[3.1] OS: Windows 7
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C++
[4] 期限:2011年 8月2日
[5] その他の制限:「特定の文字列のみ削除する部分」と「出力表示する部分」は同じ関数内でおねがいします
0960デフォルトの名無しさん
2011/08/01(月) 16:55:14.41ファイルに格納された適当な文字列:
ファイルにどのような形式で文字列群を格納するか
ある特定の文字列:
特定の文字列をどのようにプログラムに指示するか
などいろいろ不備な点がありますが、あとは妄想で補完してあなたがよいと思うプログラムにしてください
0961>>937
2011/08/01(月) 16:58:14.27ファイルに格納された適当な文字列:
ファイルにどのような形式で文字列群を格納するか -> 形式はテキストファイル
ある特定の文字列:
特定の文字列をどのようにプログラムに指示するか -> キーボードによる入力
あと妄想は困ります
おねがいします
0962デフォルトの名無しさん
2011/08/01(月) 17:13:31.940963デフォルトの名無しさん
2011/08/01(月) 17:14:11.19自分は
warashi wa kichigai
anata mo kichigai
のような形式が好きで、でKichigaiは気に入らないから2つあるkichigaiを消すニダなんです
漢字は苦手ですが
私は基地外
貴方も基地外
こんな形式から2つある基地外を削除するでも良いアルネ
でも、自分で色々考えて講師が気に入ると思うプログラムにしてください
お願いアルニダ
0964>>937
2011/08/01(月) 17:18:59.83文字の削除が上手くいかないので、どうすればいいのか教えて下さい
0965デフォルトの名無しさん
2011/08/01(月) 17:53:51.33なんか、>>937とは少し違うんじゃないか
int price; に関する記述は>>937のどの部分?
0966デフォルトの名無しさん
2011/08/01(月) 17:55:28.45#include <stdio.h>
int gcd(int a, int b)
{
int r;
while(r = a % b) {
a = b;
b = r;
}
return b;
}
int main(void)
{
int a, b, s, x, y;
scanf("%d%d%d", &a, &b, &s);
if(s % gcd(a, b)) printf("解なし\n");
else {
for(x = 0; ; x++) {
int temp = s - a * x;
if(temp % b == 0) {
y = temp / b;
break;
}
}
printf("x = %d, y = %d\n", x, y);
}
return 0;
}
0967デフォルトの名無しさん
2011/08/01(月) 18:04:09.41>int price; に関する記述は>>937のどの部分?
>>937は、商品の名前と金額を表示するプログラムです
>>937は余分な金額の記載部分を除いた文章なので、少し違うように見えると思います
重要なのは名前の方ですので、別になくても別に問題はありません
困っているのは「入力した商品名をリストから削除する」部分なので…
0968デフォルトの名無しさん
2011/08/01(月) 18:29:11.68http://ideone.com/p9C85
0969デフォルトの名無しさん
2011/08/01(月) 18:45:25.050971>>964
2011/08/01(月) 19:42:56.24http://codepad.org/F5yOJqWS
よろしくお願いです
0972デフォルトの名無しさん
2011/08/01(月) 19:56:13.490973デフォルトの名無しさん
2011/08/01(月) 20:19:20.72放置してたら自力で解きそうだしね
>>971
文字の削除ではなく入力された名前を持つデータの削除だろ
名前が一致したら出力しないだけの話だと思うんだけど
0974デフォルトの名無しさん
2011/08/01(月) 20:22:04.270975>>964
2011/08/01(月) 20:23:47.29http://codepad.org/9sAy6uTi
>>937
なんで、char name[1000];なのに
char *p=(char *)malloc(10*sizeof(char));では10なの?
>>973
つまりリスト削除はしないで、一致したものを飛ばして出力するだけってこと
0976デフォルトの名無しさん
2011/08/01(月) 20:50:40.83>なんで、char name[1000];なのに
>char *p=(char *)malloc(10*sizeof(char));では10なの?
name[1000]は特に意味はありません
[300]でも[800]でも構いません
*pが10なのは、10文字以上の文字は無いだろうと思ったので
10にしました
>つまりリスト削除はしないで、一致したものを飛ばして出力するだけってこと
そうです。言葉足らずで申し訳ありません
0977デフォルトの名無しさん
2011/08/01(月) 21:32:21.370978デフォルトの名無しさん
2011/08/01(月) 21:34:27.94C/C++の宿題片付けます 152代目
http://hibari.2ch.net/test/read.cgi/tech/1312201995/
0979>>964
2011/08/01(月) 23:35:00.42http://codepad.org/pOT71Afg
0980デフォルトの名無しさん
2011/08/02(火) 11:52:52.53http://ideone.com/FvHhe
0981デフォルトの名無しさん
2011/08/02(火) 13:45:03.74[2] 問題文(含コード&リンク):となりどおしの数字の差がその下の数字となるように、
1から15までの数を1回だけ使って例に従ってマスにいれなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: [2011年8月2日14:30まで]
[5] その他の制限: C言語初心者です。宜しくお願いします。
0982デフォルトの名無しさん
2011/08/02(火) 14:00:53.46「例」を具体的に。
0983デフォルトの名無しさん
2011/08/02(火) 14:13:40.8314 12 11 8 7 6 5
こんなん?
0984デフォルトの名無しさん
2011/08/02(火) 14:27:51.78説明不足ですみません。
>>981のかたのイメージです。
逆三角形になるように表示させたいです。
最終的には最後の1個まで数字が重ならないように表示させたいです。
宜しくお願いします。
0986デフォルトの名無しさん
2011/08/02(火) 14:43:24.69981 名前:デフォルトの名無しさん :2011/08/02(火) 13:45:03.74
[4] 期限: [2011年8月2日14:30まで]
期限、今日じゃないだろ
0987デフォルトの名無しさん
2011/08/02(火) 14:44:33.84逆三角形で五段なのか二段なのか、どっちなんだよ
0988デフォルトの名無しさん
2011/08/02(火) 14:50:34.02時間は16時までです。宜しくお願いします。
0989デフォルトの名無しさん
2011/08/02(火) 14:52:36.690990デフォルトの名無しさん
2011/08/02(火) 14:52:55.740991デフォルトの名無しさん
2011/08/02(火) 14:54:06.230992デフォルトの名無しさん
2011/08/02(火) 15:21:05.100993デフォルトの名無しさん
2011/08/02(火) 15:21:58.22宜しくお願いします。
0994デフォルトの名無しさん
2011/08/02(火) 15:22:02.130995デフォルトの名無しさん
2011/08/02(火) 15:23:33.301つのみしかないの?
それとも複数あるの?
0996デフォルトの名無しさん
2011/08/02(火) 15:29:57.786 14 15 3 13の並びしかないと思います。
あとは逆並びだと思います。
0997デフォルトの名無しさん
2011/08/02(火) 15:41:05.37#include <stdio.h>
int a[5][5], chk[16];
void show(void) {
int i, j;
for(i = 4; i >= 0; i--) {
for(j = 4; j > i; j--) printf(" ");
for(j = i; j >= 0; j--) printf("%2d ", a[i][j]);
putchar('\n'); } }
void f(int y, int x) {
int i;
if(y == 5) { show(); return; }
if(x > y) f(y + 1, 0);
else if(x == 0) {
for(i = 1; i <= 15; i++) {
if(chk[i] == 0) { a[y][x] = i; chk[i] = 1; f(y, x + 1); chk[i] = 0; } } }
else {
i = a[y][x - 1] + a[y - 1][x - 1];
if(i <= 15 && chk[i] == 0) { a[y][x] = i; chk[i] = 1; f(y, x + 1); chk[i] = 0; }
i = a[y][x - 1] - a[y - 1][x - 1];
if(i > 0 && chk[i] == 0) { a[y][x] = i; chk[i] = 1; f(y, x + 1); chk[i] = 0; } } }
int main(void) {
f(0, 0);
return 0; }
0998デフォルトの名無しさん
2011/08/02(火) 15:51:14.66出来ればメイン関数内だけで行えませんか?
本当に申し訳ありません。
答えはC/C++の宿題片付けます 152代目にお願いします。
宜しくお願いします。
0999デフォルトの名無しさん
2011/08/02(火) 16:09:25.69張ろうと思ったら先を越されたw
>>998
再帰を使わないのは無理じゃね?
main() だけで再帰を実現するには....
1000デフォルトの名無しさん
2011/08/02(火) 16:25:17.8710011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。