2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

C/C++の宿題片付けます 151代目

1 :デフォルトの名無しさん:2011/07/20(水) 00:33:39.96
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。 >>2以降にあります。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【回答者へ】
・◆QZaw55cn4cは書き込み禁止。トリップを隠しても書き込み禁止です。



2 :では質問どーぞ: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/

3 :デフォルトの名無しさん:2011/07/20(水) 01:10:43.76
スレたて乙。ところで、未解決問題あればよろしう。

4 :デフォルトの名無しさん:2011/07/20(水) 01:27:19.52
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):入力された特定の名前だけすべて削除する関数 void del_order(ORDER *node, char *name) を線形リストを用いて作成しなさい

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C++
[4] 期限: 今週末15:00~

おねがいします

5 : ◆QZaw55cn4c :2011/07/20(水) 02:49:28.66
>>4
http://hibari.2ch.net/test/read.cgi/tech/1308749241/992

6 :デフォルトの名無しさん:2011/07/20(水) 07:53:32.65
>>5
ローカルルールを守れ。クズ。

>>1
> 【回答者へ】
> ・◆QZaw55cn4cは書き込み禁止。トリップを隠しても書き込み禁止です。

7 :デフォルトの名無しさん:2011/07/20(水) 08:39:33.76
前スレ >>971 http://hibari.2ch.net/test/read.cgi/tech/1308749241/971
> 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はうんこが書いたバグ入りコードだから、
落第したくないなら使わない方が良い。

8 :デフォルトの名無しさん:2011/07/20(水) 09:26:52.31
前スレ >>999
> floatだけじゃなくて、doubleも使ったことが無いんだろ。ww 

技術計算を整数値だけで行う事が可能なら凄い技術だと思うよw

9 :デフォルトの名無しさん:2011/07/20(水) 09:38:21.65
前スレのどうでもいい話ひきずりすぎだろお前ら

10 :デフォルトの名無しさん:2011/07/20(水) 09:49:34.33
>>8
円の面積求めて

    技術計算10年やってる 霧

って言ってるんだね。そりゃすげー。ww

11 :デフォルトの名無しさん:2011/07/20(水) 10:48:46.48
三項だけで行う電卓を作ったのですが、文が長すぎたということで却下されました。
出来れば以下のソースを基に関数を作って簡略化したソースを作っていただけませんか?
宜しくお願いします。
http://codepad.org/qblj0aNR

12 :デフォルトの名無しさん:2011/07/20(水) 11:18:20.33
>>11
http://ideone.com/Ki9Ag
極力いじらずに、酷いコピペで処理してるswitchのとこだけ関数化しておいた

13 :デフォルトの名無しさん:2011/07/20(水) 12:07:09.72
>>10
涙拭けよ。顔真っ赤だぞw

14 :デフォルトの名無しさん:2011/07/20(水) 12:17:51.60
> 技術計算コードを10年以上書いてきたけど float を使った事は一度も無いな
floatを一度も使ったことが無い技術計算PG www
これを恥ずかしげもなく告白できる事が低レベルの証明。あー、哀れ。

15 :デフォルトの名無しさん:2011/07/20(水) 12:21:24.17
すみません。本当に助かりました。
http://ideone.com/Ki9Ag
を基に2以上10以下の項の四則演算の出来るプログラムを教えていただけますか?
ずうずうしくて本当に申し訳ありません。

16 :デフォルトの名無しさん:2011/07/20(水) 15:05:14.34
>>14
技術計算で float を使わない理由は算術関数のインターフェイスが double であるって事が大きいんだ
一部の処理系では tanf() の様な float系関数も用意されているけど、可搬性を考えると使うべきではない

もし、float を使うなら以下の二つの理由が考えられるだろう
・ファーム等で算術関数が float 系しか用意されていない環境での開発
 そんな環境には double は存在しないかも知れないけどね
・メモリ消費を意識しなければならないくらい膨大なデータを扱う処理または貧弱な環境

私はEWSやPC上での開発経験しかないし、膨大なデータを扱うような業務(地球シミュレータとか?)の
開発に携わった事がないから float を使った事はない
君がもし float を使った開発経験を持つなら、どういう業務か教えて欲しい

17 :16:2011/07/20(水) 15:10:20.16
書き忘れたけど、算術関数を用いる時に float を使わない理由は

float a, b;
a = (float)tan( (double)b );

と書くと『有効精度が失われます』みたいな warning が出るから
warning が出るだけなら問題は無いんだけど、大量に出る問題が無い warning の中に
問題がある warning (整数の型によるオーバーフロー等)が埋もれるのが怖いんだよね

18 :デフォルトの名無しさん:2011/07/20(水) 15:49:53.24
[2] 問題文(含コード&リンク):
http://codepad.org/JJE3ZWnw

[3] 環境 OS:Windows gcc
[4] 期限:7月21日
[5] その他の制限: 特になし

19 :デフォルトの名無しさん:2011/07/20(水) 15:52:14.36
>>18です
リスト構造体のやり方がまるで分からないので説明してくださると嬉しいです

20 :デフォルトの名無しさん:2011/07/20(水) 16:22:50.16
[2] 問題文(含コード&リンク): 2項以上10項以下の計算が可能な電卓を作成せよ。
演算子は(+,-,*,/)だけとする。
例:式を入力してください
式: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でお願いします。宜しくお願いします。

21 :デフォルトの名無しさん:2011/07/20(水) 16:26:17.01
参考用
>>20
>>11,12,15



22 :デフォルトの名無しさん:2011/07/20(水) 16:45:07.32
>>20
>>11,12,15
上記は同じ投稿者です。皆様のお力添えを宜しくお願いします。


23 :デフォルトの名無しさん:2011/07/20(水) 17:05:45.61
>>19
リスト構造体のnextに次のデータのポインタ突っ込め
ってお前自分で書いてるんじゃん

いきなり5-1からはじめてるけどほかになんか前提があるんじゃないのか?

24 :デフォルトの名無しさん:2011/07/20(水) 17:17:52.51
>>23
前提は他にありません。このまま課題がでました

25 :デフォルトの名無しさん:2011/07/20(水) 17:40:37.25
テンプレ埋めないの流行りなん?

26 : ◆QZaw55cn4c :2011/07/20(水) 18:34:36.57
>>20
http://hibari.2ch.net/test/read.cgi/tech/1308749241/892
http://codepad.org/Qeismfmq

27 :デフォルトの名無しさん:2011/07/20(水) 19:15:05.43
>>20
http://codepad.org/1Qg8DRVA

28 :デフォルトの名無しさん:2011/07/20(水) 19:45:13.39
(1)c言語(2)問題:日数計算プログラムをベースに基ずいて「ここに処理が入る」というところに入力をお願いします
実行結果:数え始める西暦を入力してください   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;
}

29 :デフォルトの名無しさん:2011/07/20(水) 20:51:49.79
[2] 問題文(含コード&リンク):
http://codepad.org/ENQhWHkB

[3] 環境 OS:Windows
       gcc
      C言語
[4] 期限:7月21日
[5] その他の制限: 特になし

訂正させていただきました。それぞれの問題で/***プログラムをここに書くとする***/
の部分に複数行いれて問題に合ったプログラムにします。
リンク先のプログラムは25〜39行目で図の通りに動くと仮定してます。

30 :デフォルトの名無しさん:2011/07/20(水) 20:51:52.42
前スレのfloat厨に吹いた

31 :デフォルトの名無しさん:2011/07/20(水) 21:07:13.64
>>7がバグ入りなら、誰かバグ無しソート作ってやれよ
批判するだけしてプログラム作らないとかウ●コと同じだぞ

32 :デフォルトの名無しさん:2011/07/20(水) 21:07:59.24
QZのフォローするぐらいならスカトロプレイする方がましだよ

33 :デフォルトの名無しさん:2011/07/20(水) 21:26:05.49
>>26
ローカルルールを守れ。クズ。
>>1
> 【回答者へ】
> ・◆QZaw55cn4cは書き込み禁止。トリップを隠しても書き込み禁止です。

>>31
>>7に質問者の要望通りのインターフェースで、正しく動くの張っただろ。
http://codepad.org/vcf5pd5h

34 :デフォルトの名無しさん:2011/07/20(水) 21:56:33.01
>>16
C99ではfloat, double, long doubleな関数が三つ組で用意されてるけど、そうかC99は可搬性ないのか。
使うべきじゃないのか。

それじゃ、使うべきは、C90とかですか(float関数が無い事は知らないけど)? 20年以上前の規格ですな。
いやー、さすが数値計算歴10年のベテラン。www

>>17
> a = (float)tan( (double)b );
うわー、ヘボPGが得意なキャストfloodingにそっくりなのは気のせいでしょうか?
まさかね、数値計算歴10年のベテランがキャストfloodingなんか… まさかね。

35 :デフォルトの名無しさん:2011/07/20(水) 22:11:41.45
技術計算技術計算言う割りに精度の低いfloat使うとは

36 :"":2011/07/20(水) 22:28:07.66
[1] 授業単元:構造体の配列利用
[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;
};


37 :"":2011/07/20(水) 22:28:28.04
int main(void)
{
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] 期限:金曜日まで

38 :デフォルトの名無しさん:2011/07/20(水) 22:30:55.81
>>35
それ昨晩から気付いてたけど敢えて突っ込まないでおいた

39 :デフォルトの名無しさん:2011/07/20(水) 22:30:58.03
>>35
ほっといてやれよ、どうみても引っ込みつかなくなってるだけだろ。

40 :デフォルトの名無しさん:2011/07/20(水) 22:33:51.89
>>35, >>38-39
低レベル過ぎる。10年修行してきなさい。

41 :デフォルトの名無しさん:2011/07/20(水) 22:58:12.75
>>40
はい、ご指導ありがとうございました。

42 :デフォルトの名無しさん:2011/07/20(水) 22:59:56.99
こういう系は14歳の負けず嫌いの女の子プログラマが一人で騒いでると思うことにしてる。

43 :デフォルトの名無しさん:2011/07/20(水) 23:02:31.72
>>34
> C99ではfloat, double, long doubleな関数が三つ組で用意されてるけど....

規格について始めると面倒な人が出てきそうだから触れないけど、float系が無い処理系は有るよ
規格うんぬん以前に必ず存在する double系を使うのが普通の考えだよ(先に書いた様に特殊な環境なら別)

キャストしなかったらどうやって書くの?
そもそも double 系の関数を float で処理するっていう『ヘボ』な書き方を示しただけなんだけど

44 : ◆QZaw55cn4c :2011/07/20(水) 23:02:58.01
>>18
5-1〜5-4
http://codepad.org/eQKEuAlc

45 :デフォルトの名無しさん:2011/07/20(水) 23:14:54.96
>>44
ごめんなさい、まるで分からないです。
自分では
http://codepad.org/lNU2hw2m
みたいに考えていたので,下手な書き方だとは思いますが、解説していただいてると嬉しいです

46 :デフォルトの名無しさん:2011/07/20(水) 23:23:59.11
>>28
http://codepad.org/7UVONvby

次は>>1のテンプレ使ってね。
期日が書いてないと誰もしないかも


47 :デフォルトの名無しさん:2011/07/20(水) 23:24:01.19
main関数に引数の型書かない記法は先生から教わったの?
どこの学校?

48 :デフォルトの名無しさん:2011/07/20(水) 23:24:31.32
x引数の型
o戻り値の型

49 :デフォルトの名無しさん:2011/07/20(水) 23:32:15.57
>>47
先生と学校はいえませんが、大学1年生です。最初はint main~return 0 をつかったり
戻り値をつかったりしてたのですが、リスト構造体の項目に入ってからは一切使わなくなりました。
ですが、課題の性質上、戻り値無しのやり方でやらないと点数はもらえなかったりします。
加えてその先生が課題と資料を出すだけ出して授業を終わる人です

50 :デフォルトの名無しさん:2011/07/20(水) 23:42:23.49
>>43
> 規格について始めると面倒な人が出てきそうだから触れないけど、float系が無い処理系は有るよ
具体的にどれだよ。w

> 規格うんぬん以前に必ず存在する double系を使うのが普通の考えだよ(先に書いた様に特殊な環境なら別)
それはお前が経験した狭い世界の「普通の考え」。

> キャストしなかったらどうやって書くの?
普通はfloat使うから
a = tanf(b);
どうしてもdoubleな関数使う場合でも
a = tan(b);

キャストは不要。

51 :デフォルトの名無しさん:2011/07/20(水) 23:42:28.88
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):片方向リストの最後に要素を追加するプログラムをさくせいしなさい。
ただし連結リストの最後の要素をさすポインタを持っている時と持ってないときについて作成すること。
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 明日まで
[5] その他の制限:http://codepad.org/EhgsNjq1
一応つくってみたですが、問題自体の意味がイマイチわかりません。
これはどちらのプログラムになるのでしょうか。
また、このプログラムの計算量と実行効率について比較するにはどのようにすればいいか教えていただければありがたいです。
よろしくお願いします。

52 :デフォルトの名無しさん:2011/07/21(木) 00:00:05.84
>>51
前者の 最後の要素をさすポインタを持っている時 に該当

後者は head のみを保持した前提で末尾追加を記述するのを期待してるっぽい

リスト追加の際、毎回末尾を探す
 p=head p->next が NULL になるまで p を送っていく
ってことをやって見つけた末尾 p から追加分を連結すると

53 :デフォルトの名無しさん:2011/07/21(木) 00:01:04.75
>>50
> 具体的にどれだよ
手元に有った bcc++ Ver.5.5 (私の回答専用コンパイラ)には無いみたいだよ


54 :デフォルトの名無しさん:2011/07/21(木) 00:03:50.73
>>50
それより君が float を使わざる得なかったプロジェクトについて教えてはくれないか?

資源が乏しかった大昔なら『敢えて double を使う理由』をレビューで説明する必要が有ったと思うんだけど、
メモリもディスクも大容量の現在では『敢えて float を使い理由』を説明する必要が有ると思うんだ

55 : ◆QZaw55cn4c :2011/07/21(木) 00:08:47.06
>>51 = http://hibari.2ch.net/test/read.cgi/tech/1308749241/476 すでに秀逸な回答が上がっています。
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を使うのは癖だ。
馬鹿としかいいようがない。

56 :デフォルトの名無しさん:2011/07/21(木) 00:13:58.24
>>18

割と愚直なコードにしてみた。

ttp://codepad.org/rvgcNi3K

>>44
宿題スレでもありますし、少し丁寧にコメントをいれたほうが
良いと思います。一行の箇条書きで構わないので、
関数のヘッダコメント位はあった方がありがたいです。

57 :56:2011/07/21(木) 00:22:26.62
>>49
>課題の性質上、戻り値無しのやり方でやらないと点数はもらえなかったりします。
戻り値の型を省略したら暗黙にintになるけど、褒められたコーディングスタイルとは思えない。
課題に関しては無関係な部分と思うけど。int mainにしたら点数もらえないっていうのなら、焦点がぼやけている。

>>56は割と愚直なコードです。
もし説明が欲しいなら、その点を具体的に言ってください。
一応先に説明しておくと、
リストのノード連結操作が主題になっていると思いましたので、
ノードは静的に確保しています。
「静的に確保」っていうのは、mallocを使わないで,
staticでノードを宣言している事です。

58 :デフォルトの名無しさん:2011/07/21(木) 00:23:37.66
>>56
お前の臭いコメントなんていらねーよ
ばっかじゃないの

59 :デフォルトの名無しさん:2011/07/21(木) 00:27:34.35
>>56
俺もそう思います
>>44は馬鹿過ぎると思います
自分のテクに酔っていてこんなの提出したらまず質問攻めに遭って
答えられなくて単位を落とす事になりかねません

60 :デフォルトの名無しさん:2011/07/21(木) 00:31:23.18
>>55
うわぁ、教授「こいつら回答一緒だな・・・」フラグ・・・
まぁありがとうございます...

61 :デフォルトの名無しさん:2011/07/21(木) 00:33:07.48
>>59
うぜー
善意でやってるつもりかよ


62 :デフォルトの名無しさん:2011/07/21(木) 00:36:28.78
出さないよりまし

63 :デフォルトの名無しさん:2011/07/21(木) 00:44:11.97
>>61
これはQ本人か、はたまたQ化して人生終わっちゃった奴か・・・

64 :デフォルトの名無しさん:2011/07/21(木) 00:48:17.11
>>63
また宣伝してるつもりかクズ

65 :デフォルトの名無しさん:2011/07/21(木) 05:38:42.96
[1] 授業単元:遺伝的アルゴリズム
[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] その他の制限: プログラムに詳しく書かれているので遺伝アルゴリズムに知識がなくてもできると思います。

前板で回答がなかったのでもう一度投稿しました。
よろしくお願いします。

66 :デフォルトの名無しさん:2011/07/21(木) 10:28:51.85
>>54
お前がdoubleを使うべきとしている根拠は「float系のライブラリが無い」の一点だけなんだから、先に
> float系が無い処理系は有るよ
これを明示しろよ。お前が>>53で10年間やってる技術計算が2ch宿題スレでの回答者というのなら説明不要だが。

67 :デフォルトの名無しさん:2011/07/21(木) 12:22:19.48
>>66
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.4.4.html

68 :デフォルトの名無しさん:2011/07/21(木) 13:42:28.26
>>66
> float系が無い処理系は有るよ
これを問うてるんだが。池沼?

69 :68:2011/07/21(木) 13:43:13.01
アンカー間違い。

>>67
> float系が無い処理系は有るよ
これを問うてるんだが。池沼?

70 :デフォルトの名無しさん:2011/07/21(木) 14:22:46.87
[1] 授業単元:アルゴリズム
[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] その他の制限: 再帰かループどちらかの方法で解くこと


71 :デフォルトの名無しさん:2011/07/21(木) 14:25:22.50
>>67
ところで、自虐ネタ? w

> 第4章 キャストが好き
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.4.2.html
> リスト4个ア1に元のプログラム(に近いもの)を示します。とにかく「キャスト」が異常に多い のが目立ちますね。

72 :デフォルトの名無しさん:2011/07/21(木) 15:45:37.55
>>66
意味がよく判らないな
少なくとも『手元に有った bcc には float 系は無いよ』っていうのを読んだでしょ、示した事にならないのかな?
私が使ってきた処理系は主に Solaris 系だけど業務で float 系なんて使った事が無いから、
そこにそれが存在したか否かは知らないよ


73 :デフォルトの名無しさん:2011/07/21(木) 16:01:07.54
http://codepad.org/n47BkpXa
上記のプログラムを実行すると8/3*3=6となります。
このソースを正常に8/3*3=8となるようにif文で前の演算子に'÷'次の演算子に'*'が来た時に
乗算を優先的に行うようにプログラムを付け加えていただけますか?
あえてint型で型を宣言していますので、そこは変更しないで下さい。
宜しくお願いします。


74 :デフォルトの名無しさん:2011/07/21(木) 16:04:44.87
>>72
> 少なくとも『手元に有った bcc には float 系は無いよ』っていうのを読んだでしょ、示した事にならないのかな?
おまえは、10年間やっている技術計算での仕事でfloatを使わない理由として、
floatな関数は可搬性が悪いという事をあげたんだろ。

そして、その処理系を問うと2chの宿題スレ専用のbcc32だと答える。
おまえの「技術計算経験10年」とは2chの宿題スレで回答の事か? ww

> 私が使ってきた処理系は主に Solaris 系だけど業務で float 系なんて使った事が無いから、
Solarisの純正コンパイラにはある。

75 :デフォルトの名無しさん:2011/07/21(木) 16:08:32.08
>>73
int型で8/3*3を計算したら6になるのが「正常」でしょうよ。

76 :デフォルトの名無しさん:2011/07/21(木) 16:13:55.52
>>75
8*3/3に並べ替えして計算したいってことだろ
テンプレ無視だし俺はやらんけど

77 :デフォルトの名無しさん:2011/07/21(木) 16:16:02.66
[1] 授業単元: プログラミング論
[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分まで
問題が多くて申し訳ありません。どうかよろしくお願いいたします。

78 :デフォルトの名無しさん:2011/07/21(木) 16:46:42.37
>>74
まず、bcc が業務では使えないコンパイラであるという認識をしているので有ればそれは失礼だろう
あくまで私の手元に有る float 系を持たないコンパイラとして例示したに過ぎないから

現在の Solaris には有ってもおかしくない、C99の規格に float 系が定義されているなら当然だろう
しかし、BSD4.3あたりでは?
これは私が最初に Sun の業務を行った頃のOSだが今となっては確認するのは困難だろう

私は可搬性に関して触れたが float 系が無い処理系を業務で扱ったと断言した覚えは無い
だって float を使わないんだから、そんな事はどうでも良い話だ
float 系が無い処理系で業務を行う可能性が有るか否かは可搬性を考慮する際には関係ないんだよ
絶対に存在する double 系で構築すればどんな環境にでも対応できる(先に書いた様に例外は有るかもしれないが)
敢えて float を使うメリットが何も無いのだから double で統一すべきと教育されたし、それを遵守してきた

君にどんな業務で float を使ったかを問うたのは float を使うメリット、又は double を使えない制約に
どんなモノが有るのか知りたかったからだ
どうやら君は脳内プログラマらしいからこれ以上の追及は無意味だろう

79 :デフォルトの名無しさん:2011/07/21(木) 16:55:12.35
ゲームとかGPU使うようなプログラムはfloat使うよ

80 :デフォルトの名無しさん: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] その他の制限: 変数は変えない。関数は出来れば増やさない。

81 :デフォルトの名無しさん:2011/07/21(木) 17:09:53.80
>>78
> 敢えて 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が速いは時代遅れ。

82 :デフォルトの名無しさん:2011/07/21(木) 17:53:17.49
>>79
大昔に DreamCast を弄った経験が有るんだけど、普通の算術関数が float 系だった様な気もする
先に述べた通り、特殊な環境ならありえるだろうね

>>81
藤原本が何かは知らない
最初にこの教育を受けたのは大学の研究室

float が速いってのは一般的に認知されてるの?環境依存ならありそうだけど
省メモリに関しては前から言っている様に現在ではメリットとならないよ

一度だけ省メモリの観点で float を使った事を思い出した
但し、環境が MS-DOS でしかも言語は N88-BASIC だ
大きな表計算みたいなプログラムだったんだけど、double を使うと行が稼げないから敢えて float を使った
EWSやWindows環境で省メモリなんて考慮しなければならない業務に当たった経験は無い
君は省メモリの観点で float を使うような仕事をしてるの?

83 :デフォルトの名無しさん:2011/07/21(木) 18:24:15.95
GPUを使う環境が特殊とか言われちゃうと、
どんな用途でも「特殊」の一言で切り捨てられる気がする

84 :デフォルトの名無しさん:2011/07/21(木) 18:24:45.82
>>81
floatって今時C#の座標系位にしか使わなくないか?
doubleと比べると有効桁数が少なすぎて積み残し誤差がハンパないぞ

85 :デフォルトの名無しさん:2011/07/21(木) 18:28:03.33
>>82
> 先に述べた通り、特殊な環境ならありえるだろうね
SSEを特殊な環境と主張するつもりかい? floatならdoubleの倍突っ込める。

>藤原本が何かは知らない
>>67は別人? 別人格?

> float が速いってのは一般的に認知されてるの?環境依存ならありそうだけど
さあね、でも、10年前?にsparcが抜き去られた時からは「doubleが速い」は迷信。

> 省メモリに関しては前から言っている様に現在ではメリットとならないよ
それはキミがそういう領域しか扱ってないから。無尽蔵なメモリ使えるなら疎行列扱うテクニックとかいらないだろ。
技術計算やってると言ってて「疎行列」聞いたことないとかいうなよ。

> 君は省メモリの観点で float を使うような仕事をしてるの?
1000万×1000万のマトリックスが相手だよ。

86 :デフォルトの名無しさん:2011/07/21(木) 18:28:59.57
>>83
GPUを使って計算する方法が、
汎用的かつ一般的で、
環境に依存せずに動くなら、
特殊でないと言ってもいいんじゃない?

87 :デフォルトの名無しさん:2011/07/21(木) 18:35:01.60
Intelは次のCPUをクアッドチャンネルメモリにしないと目玉がないよな

88 :デフォルトの名無しさん:2011/07/21(木) 18:36:05.75
>>85
疎行列くらい知っとるわアホ

89 :デフォルトの名無しさん:2011/07/21(木) 18:40:08.37
ここ何のスレだっけ?

90 :デフォルトの名無しさん:2011/07/21(木) 18:40:32.29
>>88
なら、↓こんな意味不明な反論すんなよ。
> 省メモリに関しては前から言っている様に現在ではメリットとならないよ

91 :デフォルトの名無しさん:2011/07/21(木) 18:43:45.79
>>82
おまえSSEとか使わんのか
あとキャッシュメモリ考えたことないだろ
で、なんで宿題と関係ないことでスレ荒らすん?

92 :デフォルトの名無しさん:2011/07/21(木) 18:45:22.72
>>86
一般的ならそりゃ特殊じゃないだろ
言葉くらいちゃんと使おうぜ

(何の話題か知らんけど)

93 :デフォルトの名無しさん:2011/07/21(木) 18:47:23.12
>>81
そのリンク先は、あきらかに SSE/CUDA/GPGPU 等の float をターゲットにしたハードウェア相手にコードを記述する場合の話。
CPU/FPU 相手にプログラムを組むのであれば float/double に差はない。

で、発端となった、http://hibari.2ch.net/test/read.cgi/tech/1308749241/906 は float をターゲットにしたハードウェア相手のコードなのか?
float の演算が多量に存在するのか?現状のコンパイラははこのコードに対して SSE命令を生成するのか?

このコードを float で書くメリットはなにか?

94 :デフォルトの名無しさん:2011/07/21(木) 18:47:49.55
>>83
私の認識が古いのかもしれないね、コンピュータグラフィックスはほとんどやった事が無いので
先に書いた DreamCast はバイトだ

>>85
> SSEを特殊な環境と主張するつもりかい? floatならdoubleの倍突っ込める
上と同じレベルの話だよ、認識の違いだ

標準的な算術関数が double 系であるという事に間違いは無いだろう
float 系が主体である処理系はこの考えに基づくと『特殊』と考えても良いんじゃないのか?
将来は逆転するかも知れないが、私の世代を含めたプログラマ全体の平均を取れば誤った認識とは思わない

>別人? 別人格? 
>「doubleが速い」は迷信。 
別人だよ、私は double が速いなんて主張はしていない
敢えて float を使うのに速さを主張するのはいかがなものかと言っている

>それはキミがそういう領域しか扱ってないから
1000万x1000万のマトリックス?具体的な対象については教えてくれないのw

95 :デフォルトの名無しさん:2011/07/21(木) 18:51:12.40
バグ無の回答作れないうんこが、完璧な回答に言いがかりつけようとfloatに突っ込んだのが発端だから。

おい、うんこ。バグなおせよ。www
http://codepad.org/imsXD8tD

96 :デフォルトの名無しさん:2011/07/21(木) 18:51:16.12
>>86
そりゃGPUを搭載しててDirectXやOpenGLなどが動くとかある程度環境に依存するけど
わりと一般的な構成じゃね?

97 :デフォルトの名無しさん:2011/07/21(木) 18:54:44.16
>>93
> そのリンク先は、あきらかに SSE/CUDA/GPGPU 等の float をターゲットにしたハードウェア相手にコードを記述する場合の話。
実数計算の世界では今はこれがスタンダード。

> このコードを float で書くメリットはなにか?
doubleにするメリットは何もないな。

98 :デフォルトの名無しさん:2011/07/21(木) 18:57:44.49
>>94
> 別人だよ、私は double が速いなんて主張はしていない
それではデフォルトがdoubleであるべきとする根拠はなんだよ。
「先輩に教えられたから?」www

ライブラリ説→否定された
メモリ使用量→完全に負け
速度→負け

99 :デフォルトの名無しさん:2011/07/21(木) 18:58:04.57
SSEなんて10年前のPCですら使えるし
なんで特殊なマシン扱いするのか分からない

100 :デフォルトの名無しさん:2011/07/21(木) 18:59:52.72
>>86
gpgpu は汎用的でもなければ一般的でもない。
cuda は nvidia の提供する拡張されたコンパイラしか対応しない(ライブラリをリンクする程度の拡張ではない)。
ati stream も c/c++ベースの拡張言語 brook+ を使う。
C で GPGPU アプリケーションは記述できないゆえ、少なくともこのスレ的には、汎用的でも一般的でもない。

101 :デフォルトの名無しさん:2011/07/21(木) 19:00:08.47
>>94
> 標準的な算術関数が double 系であるという事に間違いは無いだろう
根拠も示せず盲信するジジイ。もしくはそういうジジイに洗脳されているメクラ。

102 :デフォルトの名無しさん:2011/07/21(木) 19:02:48.18
>>100
ISO/IEC 9899:1999でも読んでろカス

103 :デフォルトの名無しさん:2011/07/21(木) 19:04:09.19
>>100
GPUを表示に使うだけのソフトウェアでも普通はfloat使うんだけど

104 :デフォルトの名無しさん:2011/07/21(木) 19:08:35.64
>>98
ライブラリ説が否定されたとは思って無いのだけどw
当たり前すぎて書く気も無かったんだけど精度の問題は有るよ
特に姿勢制御なんかをやってる時に角度を float で扱うと落ちる誤差が馬鹿にならないんだ
『敢えて float を使う』メリットが無ければ double を使うのはごく当たり前の選択だと思う

105 :デフォルトの名無しさん:2011/07/21(木) 19:08:59.14
>>99
コンパイラが sse を吐く場面は限られてますよ。
本当に mmx/sse を効果的に使いたいのなら、直に mmx/sse を記述するのが一般的。それか、mmx/sse を使って書かれたライブラリをリンクするか。

106 :デフォルトの名無しさん:2011/07/21(木) 19:11:04.85
おい、うんこ。オレのコード勝手に貼り付けたな。
http://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は邪魔だから回答しない事

107 :デフォルトの名無しさん:2011/07/21(木) 19:13:23.09
>>104
C99の標準ライブラリに可搬性に問題があると言いがかりをつけ続けるって事だな。

108 :デフォルトの名無しさん:2011/07/21(木) 19:17:18.54
>>77
参考にされたし。
http://codepad.org/jk2wAWxM

109 :デフォルトの名無しさん:2011/07/21(木) 19:20:59.50
>>108
>>77 じゃなくて >>80 でした。

110 :デフォルトの名無しさん:2011/07/21(木) 19:24:38.42
>>93
てめー、うんこ本人だろ。必死だな。クズ。

> そのリンク先は、あきらかに SSE/CUDA/GPGPU 等の float をターゲットにしたハードウェア相手にコードを記述する場合の話。

http://www.softek.co.jp/SPG/Pgi/TIPS/public/general/multicore-para.html
どう見ても最大で-fastsseですが。www

おい、うんこ。バグなおせよ。www
http://codepad.org/imsXD8tD

111 :デフォルトの名無しさん:2011/07/21(木) 19:29:55.94
>>107
そうだよ、C99はまだ新しいから対応していない環境が有ってもおかしくないんだ

君がどんな記事を読んで float の方が技術向きと考えたかは知らないけれど、
現場では圧倒的に double が幅を利かせているのは事実なんだ
本当に速度を要求される処理で並列化まで考えたら float を選択するケースも有るだろうけど、
それは一部の『特殊』な業務であって、大多数の技術コードを書くプログラマ達には考える場面は無いと思う
勿論、先の事は判らないから10年後には『敢えて double を使う』理由を問われる時代が来るかも知れない
でも、現場を知らない人が誤った認識を学生に与えるのは良くないと思うから、お付き合いさせてもらった

まぁ、この辺で止めようよ、荒らしって言われるのは心外だからね


112 :デフォルトの名無しさん:2011/07/21(木) 19:39:40.66
sparcを使う現場ではdoubleが幅を利かせてる
sseを使う現場ではfloatが幅を利かせてる

とか現場によって違うでいいじゃないか。無理にまとめんなよ

113 :デフォルトの名無しさん:2011/07/21(木) 19:39:52.39
言いたいことだけ言って止めようっていうのはクズのすること

114 :デフォルトの名無しさん:2011/07/21(木) 19:43:09.37
>>111
> そうだよ、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 が幅を利かせているのは事実なんだ
根拠も示せず盲信するジジイ。もしくはそういうジジイに洗脳されているメクラが作り出した妄想。

115 :デフォルトの名無しさん:2011/07/21(木) 19:45:58.55
>>112
sseがどの程度一般的に用いられてるかが重要だろう
double が幅を利かせるのは sparc に限らずほとんどのEWSだ(もうEWSって言葉も古いかな?)
マルチコア上のプログラムでも sse を意識して書いてる人は一部だろう

>>113
そういう事を言われると続けざる得なくなるじゃないか、で続けると荒らすなって言うんだろw

116 :デフォルトの名無しさん:2011/07/21(木) 19:53:33.89
>>114
別に bcc だけを根拠にしてる訳じゃないよ
確実に対応していない例としてあげただけだ
技術計算コードを書く上で long long も snprintf も必要とは思わないよ
C++は使うから // 禁止なんて話にはならないけどね
C++も昔は方言が有ったから使い方には制約を受けた記憶が有るけど、最近は気にしないのが普通だね

現場で double が幅を利かせている根拠を問われても困るな
実際に見て貰うしかないだろう
ほとんどの技術系プログラマがやってる仕事は最先端なんかじゃなくてもっと泥臭い仕事だよ
だから大昔からの『基本は double』って伝統が残ってる
先にも書いたけど10年後は違うかも知れないけど、今はまだそんな時代だよ

117 :デフォルトの名無しさん:2011/07/21(木) 19:55:34.55
>>115
どれくらい使われてるかは俺は調べたことないから知らないけど、
環境だけみたらEWSよりSSE使える環境の方が多いだろ

使う現場の数を調べた上で言ってるなら納得するけど調べたりしてないでしょ?
現場ごとに変わるから先輩に黙って従えとか言っておけばいいのに

118 :デフォルトの名無しさん:2011/07/21(木) 20:01:35.10
[1] 授業単元:構造体の配列利用
[2] 問題文(含コード&リンク):http://codepad.org/FcoiN1sk
表示を行う際に、年齢順に表示するようにしたい。配列の並び替えを行なって表示するようにプログラムを拡張しなさい
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限:明日の9時まで



119 :デフォルトの名無しさん:2011/07/21(木) 20:56:12.31
>>116
無職のクズが何を一丁前に現場の話に口を出してんだ?
仕事してから言えアホ

120 :デフォルトの名無しさん:2011/07/21(木) 21:03:59.74
ここは現場の宿題スレなんですね!

121 :デフォルトの名無しさん:2011/07/21(木) 21:10:10.35
まぁ、PGIコンパイラはデフォルトでfloatからdoubleに変換してコード吐くんですけどね

122 : ◆QZaw55cn4c :2011/07/21(木) 21:47:35.77
なんだか盛況ですが。
>>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 が出力されるんですけど、本当に大丈夫なんですかね?

123 :デフォルトの名無しさん:2011/07/21(木) 21:55:30.82
>>116
> 技術計算コードを書く上で long long も snprintf も必要とは思わないよ
2G超えるファイルサイズはどうすんだよ。まさか使わない? w

> 現場で double が幅を利かせている根拠を問われても困るな
つまり、根拠なしに盲信されてるだけって事ね。

124 :デフォルトの名無しさん:2011/07/21(木) 22:06:54.76
http://codepad.org/imsXD8tDにバグはない。
ル ー プ は 仕 様 で す。 き り り っ
ル ー プ は 仕 様 で す。 き り り っ
ル ー プ は 仕 様 で す。 き り り っ
ル ー プ は 仕 様 で す。 き り り っ
って言っていながらループしてたのもう忘れたか? www
バグバグだよ。バカ。

> float を使うのも阿呆。このコードに sse を吐かせる余地はない。
doubleを選択する理由はない。自称技術計算歴10年選手も根拠示せずにいるぞ。w

> int main() なら return を書け。
C99前提だから問題ない。

> あなたの、>>7 を、教えていただいた codegurad にかけると、http://codepad.org/DPu2ivH8 とか Error が出力されるんですけど、本当に大丈夫なんですかね?
英語が読めれば問題無い事がわかる。

125 :デフォルトの名無しさん:2011/07/21(木) 22:09:54.12
>>118
http://codepad.org/IL1K9Pql

126 : ◆QZaw55cn4c :2011/07/21(木) 22:12:41.35
>>118
http://codepad.org/T2ygG9yL
データを配列のサイズいっぱい(この場合は 10 個)入れると、表示で破綻する。.age に -1 を入れているが無意味。
その点を修正しておきました。

127 :デフォルトの名無しさん:2011/07/21(木) 22:20:51.66
>>65
http://codepad.org/JgbH58j8

crossoverとtwo_crossoverの説明がよく分からなかった。
適当に解釈したから、違ってたら直してくれ。


128 :デフォルトの名無しさん:2011/07/21(木) 22:25:57.40
>>126

おお、できた
ありがとう!

アドバイスもありがとうございます!

129 :デフォルトの名無しさん:2011/07/21(木) 22:38:34.25
◆QZaw55cn4cさん

http://codepad.org/X1C7kONsのコードなんですが、どうすればバグが消えるんですか?

130 : ◆QZaw55cn4c :2011/07/21(木) 22:40:26.12
>>124
>ループしてたのもう忘れたか?
ループするのはエラー時に再入力を促す仕様。ループ自体に問題はありません。
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 だったら破綻しますよ。はやく修正してください。

131 : ◆QZaw55cn4c :2011/07/21(木) 22:41:52.90
>>129
データを入力した個数を、なんらかの方法で数えて記録しておくのがいいと思います。手段はいろいろあるでしょう。

132 :デフォルトの名無しさん:2011/07/21(木) 22:49:10.19
>>118

ttp://codepad.org/KzPxgBmq

>[4] 期限:明日の9時まで
って綱渡り過ぎ。

133 :デフォルトの名無しさん:2011/07/21(木) 22:52:02.94
>>124
私を引き合いに出さないでくれるかな
君は精度に関して何の反論もしていない
都合の悪い部分には触れずに議論を進める輩とは関わりたくないんだよ

134 :デフォルトの名無しさん:2011/07/21(木) 22:52:47.69
>>130
> とはいえ、自力でバグを発見するのは簡単ではないもの。どんなバグかご教授願ください。ループをバグだと言っているようではちと不安ですが。
コードをざっくりと見るだけでわかる。

> float を選択する理由も同じくらいに示せていませんが?
doubleを選択する理由が無いんだから、floatを選択することに言いがかりをつけられる理由はない。

> 入力したデータの最小値が 10001 だったら破綻しますよ。はやく修正してください。
身長10000メートルの人間はいないのだから問題ない。

135 :デフォルトの名無しさん:2011/07/21(木) 22:54:20.33
トリップ付けないとだれなんだか。。。

136 :デフォルトの名無しさん:2011/07/21(木) 22:58:01.33
>>133
うんこの尻馬に乗って言いがかりをつけてきたのはお前だ。

精度とメモリ使用量、速度はトレードオフ。無条件にdoubleを
デフォルトとする根拠にはならない。

137 :デフォルトの名無しさん:2011/07/21(木) 23:00:44.92
メモリー使用量を気にする人は、shortも多用するんだろうな

138 :デフォルトの名無しさん:2011/07/21(木) 23:01:17.36
>>123
関わりたくないと書いたけど、都合の悪いところには触れないと返されたら嫌だから...

> 2G超えるファイルサイズはどうすんだよ。まさか使わない?

基本的は使わない
連続性をもった巨大データを1ファイルで扱わなければならない理由は無い
データファイルが巨大になるとデバッグの為にダンプを取るのも困難になるから、
小さなファイルに連番を振って管理した方が合理的だ
君は経験が浅そうだ

139 : ◆QZaw55cn4c :2011/07/21(木) 23:02:32.93
>>134
>コードをざっくりと見るだけでわかる。
どうですかね。http://hibari.2ch.net/test/read.cgi/tech/1308749241/846 のバグの本質をご理解いただけていないようでは疑問ですね。

>身長10000メートルの人間はいないのだから問題ない。
単位がメートルだとはどこにも書いていませんが?
はやく修正してください。

140 :デフォルトの名無しさん:2011/07/21(木) 23:03:28.81
単位がoでもいないから問題ない。

141 :デフォルトの名無しさん:2011/07/21(木) 23:03:58.83
>>138

>君は経験が浅そうだ

この部分はどう考えても余計だと思いますが?

142 :デフォルトの名無しさん:2011/07/21(木) 23:04:44.15
ある意味Qよりひどい奴が現れたというべきか、それとも全てはQの壮大な自演なのか・・・・

143 :デフォルトの名無しさん:2011/07/21(木) 23:05:22.21
>>136
単に自分の経験を語っただけだよ、それに対して君が突っかかってきたと思うが?

速度に関しては環境依存なのを認めたんじゃなかったっけ?
メモリ使用量が半分になるから精度を落とすなんてトレードオフが現在成立するとは思えないと思うぞ

144 :デフォルトの名無しさん:2011/07/21(木) 23:06:37.64
>>141
そうかも知れないけど、Gバイトオーダーのファイルを作るなんて現場を知らない人の発言だよ

145 :デフォルトの名無しさん:2011/07/21(木) 23:07:54.88
>>144
それはあんたの考えでしょ?データベースを作るとあっという間に2G超えするんだが何か?

146 :デフォルトの名無しさん:2011/07/21(木) 23:09:39.55
ビデオファイルも結構でかい^^ギガバイト単位だ

147 :デフォルトの名無しさん:2011/07/21(木) 23:09:53.87
>>145
RDBと計測データを一緒にされても困るよw

148 :デフォルトの名無しさん:2011/07/21(木) 23:11:41.48
>>147
どっから計測データなんか沸いて出たんだ?話を自分の都合の良いように
勝手にねじ曲げないでもらえないかな?

>>146
だよな
ビデオカメラの映像をリアルタイムで記録するプログラムを作ると分割して
記録するなどの工夫が必要な場面がある

149 : ◆QZaw55cn4c :2011/07/21(木) 23:12:39.61
>>142
本職のマってすごいんだなあ、と感心しました。
最大値/最小値を求めるロジックに本質的なバグがあっても頑として修正をかけないんですね。
修正すると負け、の世界なんでしょうか。とても私には勤まりません。
マじゃなくて良かった、と思いました。以上。

150 :デフォルトの名無しさん:2011/07/21(木) 23:13:29.22
double, floatの議論が上がっていますが、
>doubleが速いは時代遅れ
というのはいくつかWebでベンチをみて、へーっと思ったことがあります。

しかーし、それは特定のCPUとコンパイラで成り立つ話です。
標準Cの範囲で言えば、特に理由がなければ
浮動小数点型はdouble、
整数型はint
をとりあえず選択しておくべきでしょう。

>doubleが速いは時代遅れ
と同じ理由でいつでもfloatが良いわけでは無いです。

このスレに持ち込まれるケースでは何も考えないでdoubleで
ほぼ間違いないです。

念のため、QZとか言うコテハンの肩を持つわけじゃないです。
私のスタンスは「バグを憎んで、プログラマ憎まず」
QZを腐すために、言いがかり付けてるだけにみえるけど。

151 :デフォルトの名無しさん:2011/07/21(木) 23:13:52.12
>>138
> 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

152 :デフォルトの名無しさん:2011/07/21(木) 23:17:38.06
>>143
> 速度に関しては環境依存なのを認めたんじゃなかったっけ?
そんな事、オレは言ってないし、誰もいってないぞ。現在のスタンダードはSSEアリ。

> メモリ使用量が半分になるから精度を落とすなんてトレードオフが現在成立するとは思えないと思うぞ
15ケタの精度が不要な場合もたくさんある。たとえばヒトの身長を扱う場合など。w

153 :デフォルトの名無しさん:2011/07/21(木) 23:21:13.56
>>150
学校の宿題だけを考えたらdoubleの前にfloatを教えてる可能性が高いから
とりあえずfloatにしておくという選択肢もありかと
整数はintで間違いないけど

154 :デフォルトの名無しさん:2011/07/21(木) 23:24:26.49
>>150
> しかーし、それは特定のCPUとコンパイラで成り立つ話です。
doubleの方が早いというのも特定のCPUとコンパイラで成り立つ話だよな。
とすると↓こうする根拠は全くない。

> 標準Cの範囲で言えば、特に理由がなければ
> 浮動小数点型はdouble、
> をとりあえず選択しておくべきでしょう。

これはある。
> 整数型はint

155 :デフォルトの名無しさん:2011/07/21(木) 23:25:18.28
>>148
我々が扱うデータと言えば普通は計測データだよ
画像処理で動画データを扱う事も有るけど、結局はフレーム単位で切り出して処理する

> ビデオカメラの映像をリアルタイムで記録するプログラムを作ると分割して 
> 記録するなどの工夫が必要な場面がある 

これって巨大ファイルを扱う事は無いって認めてるように読めるんだけどw

>>151
知らん関数がほとんどだな、仕様を確認するなら自作した方が早いって話はよくあるよ
そもそも、C99以前から仕事してるからね

何故にインライン関数や例外の話が出てくるの?

156 :デフォルトの名無しさん:2011/07/21(木) 23:26:47.09
>>130
そういえば、maxが-1だったら破たんするとか言いがかりをつけていたが、
ここまで来てやっと気づいたのか? ww

157 : ◆QZaw55cn4c :2011/07/21(木) 23:27:57.67
>>150
>QZを腐すために、言いがかり付けてるだけにみえるけど。
いいんです、それで。具体的なバグ・不具合・仕様のまずさを指摘いただけるのなら、ニート、自己愛なんちゃら、バグ量産マシン呼ばわりされても。ついでにいろいろお話が聞けますし。

「バグを憎んで人を憎まず」というスタンスです、て同じですね。
でもなかなか、バグ、減りませんね。

158 :デフォルトの名無しさん:2011/07/21(木) 23:28:23.69
>巨大ファイル

この表現も主観的

159 : ◆QZaw55cn4c :2011/07/21(木) 23:31:26.35
>>156
>「最大値/最小値を求めるロジックに本質的なバグがあ」
るよね、というスタンスですよ、最初から。
まあ、max の初期値が -1 でも問題ないことは認めますから、はやく最小値を求めるロジックを修正してください。

160 :デフォルトの名無しさん:2011/07/21(木) 23:31:47.23
>>155
> 何故にインライン関数や例外の話が出てくるの?
インライン関数や浮動小数点例外のハンドリングはC99で規格化されたんだが、
C99は可搬性が悪いから禁止なんだろ。

161 :デフォルトの名無しさん:2011/07/21(木) 23:38:31.91
>>159
ロジックには全く問題が無い。極めてよく使われるロジック。
質問者のレベルに合わせて10000を使ったに過ぎない。

ところで、http://codepad.org/imsXD8tDはまだバグ見つけられないのか? www
他人に言いがかりつけるのは100年はえーぞ。
これくらいcodepadに貼る前にわかるようになってからにしろ。

162 :デフォルトの名無しさん:2011/07/21(木) 23:51:11.30
>>155
そんな個人的主観的な話をされても返答に困るな

>これって巨大ファイルを扱う事は無いって認めてるように読めるんだけどw

だって2GBを超えると扱えない処理系があるからね

163 : ◆QZaw55cn4c :2011/07/21(木) 23:52:42.21
>>161
あるある詐欺ですか。
まあ。http://hibari.2ch.net/test/read.cgi/tech/1308749241/846 のバグの本質をご理解いただけていないようでは、バグをご指摘いただけるとは期待していませんが。

>ロジックには全く問題が無い。
本当ですか?

>極めてよく使われるロジック。
よく使うのは馬鹿が、ではないですか?

164 :デフォルトの名無しさん:2011/07/21(木) 23:58:54.17
>>163
やっぱり、バカにはわからない。www

> バグの本質をご理解いただけていないようでは
バグの本質 wwww

> while (!peek('\n'))
> nextc = getchar();
ループしてるじゃねーか。これを「ループしている」以外になんていうんだ? www

165 : ◆QZaw55cn4c :2011/07/22(金) 00:11:46.22
>>164
>> 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() をあえてマクロに仕立てました。
鋭いご指摘を受けたのでこの辺の事情は釈迦に説法だと考えていたのですがね。

166 :デフォルトの名無しさん:2011/07/22(金) 00:13:01.53
>>163
> >極めてよく使われるロジック。
> よく使うのは馬鹿が、ではないですか?
値が不適切という事にだけ粘着すべきだったね。ロジックにケチ付けて自爆。

http://www.pc.uec.ac.jp/sp/hshrkw/edu/program/b1/Prob2-3.htm

167 :デフォルトの名無しさん:2011/07/22(金) 00:17:05.66
>>165
> 標準入力から一行読む限りは末尾に '\n' がありますから

救いようの無いバカだな。全部書いてやらないとわからないのか。w
> while (!peek('\n'))
> nextc = getchar();
\nが現れる前にファイルエンドに達したらループしてるじゃねーか。これを「ループしている」以外になんていうんだ? www

168 : ◆QZaw55cn4c :2011/07/22(金) 00:17:13.86
>>166
ん、電通か‥‥‥。

169 :デフォルトの名無しさん:2011/07/22(金) 00:19:51.81
>>153>>154

あなたもしつこいですね。

>doubleの方が早いというのも特定のCPUとコンパイラで成り立つ話だよな。
他の人もそうですが、早いからdoubleにしろ、ではないです。
C言語の仕様そのものが浮動小数点型は、doubleが基本になっているのです。
整数型の基本がintに鳴っていることと同じです。

>doubleの前にfloatを教えてる可能性が高いから
通常はdoubleを教えてfloatは教えさえもしない場合の方が
多いような気がしますよ。敢えてshortを教えない場合がめずらしくないのと、
同じ理由です。
「doubleが速いは時代遅れ」というからには、かつてはdoubleが速いのは常識だったのです。
歴史的な経緯もあり、標準math関数がdoubleを扱っていることもあり、
浮動小数点型はdoubleを使え、は常識だと思うけど。



170 :デフォルトの名無しさん:2011/07/22(金) 00:20:54.52
>>168
ほれ、ここでも使ってるロジックだ。
http://katahiromz.web.fc2.com/c/array.html

171 :デフォルトの名無しさん:2011/07/22(金) 00:29:46.35
>>167
代数式が解析不能状態は再入力を促す、という仕様は、もともとコンソールからの入力を想定しているということ。
コンソールから入力する限りは '\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 もよろしく。

172 : ◆QZaw55cn4c :2011/07/22(金) 00:30:58.87
>>170
>片山博文MZ
(爆笑)

173 :デフォルトの名無しさん:2011/07/22(金) 00:31:26.23
>>169
> >doubleの方が早いというのも特定のCPUとコンパイラで成り立つ話だよな。
> 他の人もそうですが、早いからdoubleにしろ、ではないです。
ライブラリの可搬性が悪いとか、精度が不十分とか、藤原本(doubleの方が高速)を
引用してdoubleデフォルトの根拠にしようと必死だったろ。

> C言語の仕様そのものが浮動小数点型は、doubleが基本になっているのです。
ようやく、本質に辿り着いたな。
doubleを基本としたのは関数プロトタイプがなかったK&R時代の名残。
floatを引数に渡すdoubleに格上げされた。この一点。

今は、プロトタイプ書かないクズは死ね。つーかエラー。なのでdoubleを基本とする根拠がない。

174 :デフォルトの名無しさん:2011/07/22(金) 00:32:57.16
>>171
UNIX(Linux)だったらENTER押すまえにctrl-Dでその状態になるが、まさか知らない。www

175 :デフォルトの名無しさん:2011/07/22(金) 00:33:44.24
[1] 授業単元:情報工学
[2]
2次正方行列AとBの各成分の値をキーボードから読み込み
AとBの積、各行列式の値を求めるプログラムを作成せよ。
[3] 環境
 [3.1] window7
 [3.2] MinGW gcc
 [3.3] 言語: C言語
[4] 期限:あと8時間

よろしくお願いします

176 :デフォルトの名無しさん:2011/07/22(金) 00:40:10.01
余りに笑撃的だったので、疑問符付け間違えちまったぜ。ww

>>171
UNIX(Linux)だったらENTER押すまえにctrl-Dでその状態になるが、まさか知らない? www

177 :デフォルトの名無しさん:2011/07/22(金) 00:41:56.45
>>170
下も見たけど、minを10000で初期化ってダサいと思うよ。
ttp://hibari.2ch.net/test/read.cgi/tech/1308749241/906

FLT_MAXで初期化するほうが良くないかい?
これなら入力がfloatの全範囲で、まったく問題が起きない。




178 :デフォルトの名無しさん:2011/07/22(金) 00:44:08.60
>>177
それは前に書いた。FLT_MAXは質問者は確実に習ってないからあえて10000にした。

179 :デフォルトの名無しさん:2011/07/22(金) 00:45:15.13
>>174
その場合も問題ありません。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 が入力されるまで狂ってしまいますが‥‥‥。まあそういうことです。


180 :デフォルトの名無しさん:2011/07/22(金) 00:47:24.66
>>169
>通常はdoubleを教えてfloatは教えさえもしない場合の方が多いような気がしますよ。
符号部、指数部、仮数部を教える際は普通単精度から教える。なぜなら短いから。
単精度をすっ飛ばして倍精度から教える学校なんて存在しないと思うけど?

10年以上前は事情が違ったんだろうか

181 : ◆QZaw55cn4c :2011/07/22(金) 00:48:07.78
>>176
>>179

182 :デフォルトの名無しさん: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] その他の制限: 変数は変えない。関数は出来れば増やさない。

183 :181 ◆QZaw55cn4c :2011/07/22(金) 00:51:28.90
さらに付記しますと
1+3=
とか
1+3X
1+3)
1+3EOF
でも 4 を返してしまうのが、この文法の弱点なわけです。これも A->epsilon, B->epsilon のせいで、仕方ありません。

184 :デフォルトの名無しさん:2011/07/22(金) 00:53:29.10
>>173
私も最後に言いたいこと言って止めます。乗り遅れて入った分、
他の人より呆れるまで時間がかかったようです。識者の方々すみません。

>ようやく、本質に辿り着いたな。
>doubleを基本としたのは関数プロトタイプがなかったK&R時代の名残。
>floatを引数に渡すdoubleに格上げされた。この一点。

そうですよ。そしてこれがdoubleを基本とせよ、との理由です。
多くのプログラマはこれが理由でfloatではなく、doubleを選択するのです。

ですからfloatが推奨されるような環境では、その点が明示されます。
doubleのペナルティが顕著な環境でも、やはりその点が明示されます。

もし、コードレビューで、doubleではなくfloatが使用されていれば、
必ずその根拠を確認されます。プロトタイプ宣言をしていてもです。
なぜ、floatで宣言したか、確認されます。逆は無いです。

どうぞ、floatが推奨されるような環境ではfloatを使用してください。

185 :デフォルトの名無しさん:2011/07/22(金) 00:56:08.37
>>179
これでループるけど。ww
$ echo -n '(1+2+' | ./a.out

まさか、echo -n '(1+2+'と等価な入力はキーボードからはやってこないとか言うなよ。w

186 :デフォルトの名無しさん:2011/07/22(金) 00:58:58.97
>>184
都合の良いところだけ抜き出すな。著作権者として下記のように全部引用しなおす事を要求する。

> ようやく、本質に辿り着いたな。
> doubleを基本としたのは関数プロトタイプがなかったK&R時代の名残。
> floatを引数に渡すdoubleに格上げされた。この一点。
>
> 今は、プロトタイプ書かないクズは死ね。つーかエラー。なのでdoubleを基本とする根拠がない。

187 : ◆QZaw55cn4c :2011/07/22(金) 01:06:47.82
>>185
ふむ。リダイレクトするとだめか。コンソールは EOF を受け取ったあとでも、さらに入力があれば getchar() できる、という点にかかっているわけですかね。
ちなみに、echo -n '1+2' | ./a.out は OK ですね。
まあ、ファイルからの読み込みには対応していない、ということですかね。

仕様です霧

188 : ◆QZaw55cn4c :2011/07/22(金) 01:12:26.16
>>186
>doubleを基本としたのは関数プロトタイプがなかったK&R時代の名残。
>floatを引数に渡すdoubleに格上げされた。この一点。
申し訳ありませんが、http://hibari.2ch.net/test/read.cgi/tech/1308749241/946 でISO/IEC 9899:1999 6.5.2.2.6 まで引っ張って述べられ済み。著作権/先取権は私にあります。

>今は、プロトタイプ書かないクズは死ね。
可変長引数は?

189 :デフォルトの名無しさん:2011/07/22(金) 01:13:29.78
>>127
交叉の例
単純交叉(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
こうなっています。
そこの解釈間違って作ってくださっていたら教えてください。
作ってくださり、ありがとうございました。

190 :デフォルトの名無しさん:2011/07/22(金) 01:15:19.77
>187
> ふむ。リダイレクトするとだめか。コンソールは EOF を受け取ったあとでも、さらに入力があれば getchar() できる、という点にかかっているわけですかね。
死ねクズ。一度エンドオブファイルになったらgetcharはずーっとEOFだ。

> まさか、echo -n '(1+2+'と等価な入力はキーボードからはやってこないとか言うなよ。w
まさか、これとおなじデータ列をキーボードから入力する方法を知らない? www

$ ./a.out
(1+2+CTRL-DCTRL-D

CTRL-Dを二度押し

191 :181 ◆QZaw55cn4c :2011/07/22(金) 01:19:04.01
>>190
やってみてください。私の環境では EOF の後も読み込んでくれます。

ともかく、
仕様です霧

192 :デフォルトの名無しさん:2011/07/22(金) 01:29:27.00
>>191
EOFの後読み込むか規格票にはどう書いてある?

193 :デフォルトの名無しさん:2011/07/22(金) 01:48:19.44
>>173
まだやってたのw

嘘はいけないよ、誰も速度の話なんてしてない
誰かがその藤原本だかの引用(>>67)を入れたが、直後に君はそんな話はしていないと >>68 で言ったじゃないか

皆が呆れたようだから私も呆れる事にしよう

194 :デフォルトの名無しさん:2011/07/22(金) 01:50:32.08
>>188
だから何?

K&R: 関数の引数はdoubleでしか受けられないのでデフォルトもdoubleで良いだろ。どーせ、本格的な数値演算はFORTRANでやるし。
C99: 可変個引数関数だけがdoubleでしか受けられない。

全然違うね。

195 :デフォルトの名無しさん:2011/07/22(金) 01:56:31.61
>>193
誰か(>>67)が藤原本引用して速度の話を出しただろ。
トリップついて無いんだから敵(doubleデフォルト説支持者)の認識しかしてないよ。

196 :デフォルトの名無しさん:2011/07/22(金) 02:00:13.72
>>191
仕様は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.

197 :デフォルトの名無しさん:2011/07/22(金) 02:11:27.85
[1] 授業単元:プログラミング及び演習
[2] 問題文(含コード&リンク):http://codepad.org/qstTADEC
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ: gcc
 [3.3] 言語: C
[4] 期限: 2011/07/23
[5] その他の制限:特に無し

198 :デフォルトの名無しさん:2011/07/22(金) 02:31:47.34
>>191
つまりQの使ってる処理系は規格に合致してない糞環境って事か
そんなもんで「やってみてください」もクソもねーだろと思う

199 : ◆QZaw55cn4c :2011/07/22(金) 02:32:50.11
>>192
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 にしとけばええやん、という話になりませんかね。無駄に変換をかける必然性はあるのかなあ?
もともと私はそこを問題視しているんですけれどもね。

200 :デフォルトの名無しさん:2011/07/22(金) 02:38:34.87
>>189
>gene[1]とgene[2], gene[3]とgene[4] ... のように親にする
こうあるんだけど、この1と2,3と4の組合せ、個体の決め方はどうするの?
書いたソースでは、1番目と2番目、3番目と4番目の個体を、
固定で交換するようにしてるけど、ランダムに変えなくてもいいのかな?


201 : ◆QZaw55cn4c :2011/07/22(金) 02:39:31.94
>>198
Linux(Vine 5.2)/bash も FreeBSD(8.2)/bash も Windows 上の cygwin/bash も挙動は同じですね。たぶんあなたの環境でもそうでしょうよ。

>>196
端末ディシプリンは ^D をストリームの終了とはしないようですね。そもそも、カノニカルモードでは端末は ^D をプロセスに渡さないだけで、普通にデータをバッファリングし、NL/EOL で吐き出す。
ただ、これは C の話からはだいぶ外れますが、典拠がみつからない。

202 : ◆QZaw55cn4c :2011/07/22(金) 02:52:03.17
そもそも、http://codepad.org/imsXD8tD のバグを見つけてください、という話なのに、
>>124 では http://hibari.2ch.net/test/read.cgi/tech/1308749241/846 のバグの話にもどすとは性悪ですね。
しかも端末の仕様なんて、c の規格書みてもわかるわけがあらへん。

マってみんなこんな性格なんですか?

203 :デフォルトの名無しさん:2011/07/22(金) 02:57:23.08
>>201
VC10ではちゃんと動くんだがgccが糞だという事だろ

204 :デフォルトの名無しさん:2011/07/22(金) 02:58:48.95
>>202
お前自分の性格の糞さを棚に上げて人様の事を非難できる立場にあるとでも思ってるのか?
どれだけ自分が嫌われてるのか他の人の書き込みから類推も出来ないんだとしたらクズだよお前

205 :デフォルトの名無しさん:2011/07/22(金) 03:04:21.90
>>189
嫌う人(たち)もトリップ付けてよ

206 : ◆QZaw55cn4c :2011/07/22(金) 03:06:26.37
>>204
ほう。で、http://codepad.org/imsXD8tD のバグは見つかりましたか?

>>203
bcc32(一番あたらしい奴ね、この前試用版いれた)でも vc と同じでした。となると、gcc は別なんでしょうね。
ただ、vcもbcc も ^Z+リターン、で EOF なんですね。これって端末制御文字のつもりか、と思ってしまう。

207 :デフォルトの名無しさん:2011/07/22(金) 03:08:29.49
お前らこんな夜遅くまで元気だな

208 :205:2011/07/22(金) 03:09:05.22
189じゃなく、>>204
嫌ってるという人も、トリップを付けてよ。

209 :デフォルトの名無しさん:2011/07/22(金) 03:27:39.41
>>206
何で俺が人のプログラムのバグを見つけてやる義理があるんだよ?馬鹿か?

210 :181 ◆QZaw55cn4c :2011/07/22(金) 03:35:26.11
>>209
>>7 でバグ入り危険とのたまうのなら、じゃあ、そのバグはなんですか?と聞いているだけですよ。それともあるある詐欺ですかね。
>>7>>209 が別人だったら、それは >>209 のおっしゃるとおり。私にも異存はありませんが。

211 :デフォルトの名無しさん:2011/07/22(金) 03:53:57.99
>>7は俺じゃないが?
相当人に突っかかりたいストレスを溜めてますね
だからクズって言われるんですよ

行っておきますが人に突っかかってもストレスは晴れませんよ
自分の中のゴミを掃除するまではね

212 :デフォルトの名無しさん:2011/07/22(金) 04:36:33.33
今北産業

>210
先に言っとくが>7じゃないからな
まぁ、バグって程でもないけどmain()の変数pは危険だよね
サイズ指定していないので脆弱性があります
別にデーモンとかじゃないからいいけどね

213 :デフォルトの名無しさん:2011/07/22(金) 05:22:48.47
どなたかいらっしゃいませんか?

214 :デフォルトの名無しさん:2011/07/22(金) 05:24:07.84
いらっしゃいますよ

215 :デフォルトの名無しさん:2011/07/22(金) 05:28:06.97
課題を丸投げしたいのですがよろしいですかね?
数十個あるうちのいくつかをおねがいしたいのです。

216 :デフォルトの名無しさん:2011/07/22(金) 05:30:35.86
誠に申し訳ございませんが、そのような案件をお引き受けすることは出来ません

217 :デフォルトの名無しさん:2011/07/22(金) 05:34:26.84
それはそうですよねー。
とりあえず自分で頑張ってみます。ご丁寧にありがとうございます。

218 :デフォルトの名無しさん:2011/07/22(金) 05:35:18.92
>>215
面白い問題なら誰かが解く

219 :デフォルトの名無しさん:2011/07/22(金) 05:37:20.53
全部別人を装って投下すればバレようはずも無いのに
なんて素直な人なんだろう

220 :デフォルトの名無しさん:2011/07/22(金) 05:49:54.95
探索系でなるべく高速に動作するように
って問題だと俺が釣られる

221 :デフォルトの名無しさん:2011/07/22(金) 06:09:42.13
doubleはfloatの倍の情報量を持つと規格されているの?

222 :デフォルトの名無しさん: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] その他の制限: 変数は変えない。関数は出来れば増やさない。

223 :デフォルトの名無しさん:2011/07/22(金) 07:09:47.76
>>222
ん〜。実に実践的な課題だな。
ある意味感動した。

根本的な設計の問題を抱えたソースを
過剰な規則で縛り上げつつ
修正という名の再設計を
末端のプログラマに丸投げする。
おまけに「時間がありません」ときたもんだ。
まさに「殺し文句」。

職業プログラマの現実って、大体こんな感じ。
こういう課題を易々と乗り越えられる奴は、
職業プログラマに向いていると思う。

あと、>>222 は上流工程の仕事に適性があるね。


224 :デフォルトの名無しさん:2011/07/22(金) 07:28:36.38
>>199
> 端末を非カノニカルモード(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の宗教戦争で充分にわかったからな。クズに相応しい対応をしてるだけだ。
お前は、たかだか数十行の学生の課題のバグフリーな回答を作成する能力が無い。
その上、他人に指摘されるまでその単純なバグの存在に気づく能力が無い。
このスレから出ていけ。

225 :デフォルトの名無しさん:2011/07/22(金) 07:42:47.43
>>222
> 上記のプログラムを実行すると8/3*3=6となります。
> このソースを正常に8/3*3=8となるようにif文で前の演算子に'÷'次の演算子に'*'が来た時に
> 乗算を優先的に行うようにプログラムを付け加えていただけますか?
この仕様は「プログラミングの世界では左結合」という原則に反するんだよ。
原則に反する仕様が必要な理由を説明できればやる奴もいるかもしれない。
ギャラ次第では原則を曲げた仕様も受け入れるけど。ここは無料スレだしな。

226 :181 ◆QZaw55cn4c :2011/07/22(金) 07:50:34.87
>>224
> ^D をプロセスに渡さないだけで、普通にデータをバッファリングし、
とは書きましたが
>CTRL-Dをバッファリングする。
とは書いていませんね。頭おかしいんじゃない?

>ヒトの身長を表現するには単精度で充分だからだよ。
なるほど。十分に納得しました。

>このスレから出ていけ。
気が向いたら。


227 :デフォルトの名無しさん:2011/07/22(金) 07:52:32.77
>>222
その通りにやったら8/3/3*3*3とかが正しく計算されないと思うんだが

228 :デフォルトの名無しさん:2011/07/22(金) 07:52:41.23
>>222 のソースコードが気持ち悪い

無意味に型が違って気持ち悪い
中置記法の計算にはポピュラーな方法を使って欲しい
整数型だけでどうにかしたいなら(既約)分数の型を使うべき

229 :デフォルトの名無しさん:2011/07/22(金) 07:53:18.42
お前自分のスレでトリップはずすって言ったのに、なんでまだつけてんの?
自分で言ったことも守れないクズの分際で他人にどうこう言うとか人間として恥ずかしくないの?

230 :デフォルトの名無しさん:2011/07/22(金) 07:59:41.18
> この仕様は「プログラミングの世界では左結合」という原則に反するんだよ

面倒だから嫌だって言えば良いじゃん、俺はそう言うよ

231 :181 ◆QZaw55cn4c :2011/07/22(金) 08:05:31.51
>>229
別に。

232 :デフォルトの名無しさん:2011/07/22(金) 08:08:13.89
恥というものを知っていれば、わざわざトリ付けて醜態晒すなんてことはハナからしない

233 :デフォルトの名無しさん:2011/07/22(金) 08:11:45.88
>>226
理解してない検索結果を継ぎはぎしてるから、↓が意味不明なんだよ。

> 端末ディシプリンは ^D をストリームの終了とはしないようですね。
するよ。
$ stty
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
                      ^^^^^^^^^
> そもそも、カノニカルモードでは端末は ^D をプロセスに渡さないだけで、普通にデータをバッファリングし、NL/EOL で吐き出す。
「だけ」とはなんの「だけ」か? ここいらへんの概念まるっきり理解してないだろ。

> >「もしあるなら、このスレには二度とこない」というのなら教えてやるよ。www

> 絶対にありません。それでいいです。霧
って言わないのか? www

234 :デフォルトの名無しさん:2011/07/22(金) 08:17:59.28
なんかみんな必死だな
どんなに正しい事を言ってても、相手にバカとかクズとか頭おかしいとか言ってると必死に見えてしまう
俺なら、ただ事実のみを言うことで相手をねじ伏せる
本当に自分が正しいならば、それで勝てる
そして、常に冷静な自分vs必死な相手という構図を作り出す。これだね
これが上手く出来たときの快感は何事にもかえがたい

235 : ◆QZaw55cn4c :2011/07/22(金) 08:20:07.21
>>140
μm や nm では問題ですねえ。

236 :デフォルトの名無しさん:2011/07/22(金) 08:27:58.07
>>232
名無しで醜態を晒すよりは、トリ付けて醜態を晒す方が正々堂々としていて良いが。

237 : ◆QZaw55cn4c :2011/07/22(金) 08:30:23.18
>>212
提供されたもとのソースの内容を放置してましたね。ご指摘感謝。
でもそれは >>7 も一緒。


238 :デフォルトの名無しさん:2011/07/22(金) 08:30:53.97
>>85
>> 君は省メモリの観点で float を使うような仕事をしてるの?
>1000万×1000万のマトリックスが相手だよ。

それ、1400万×1400万になったらどうする?

239 :デフォルトの名無しさん:2011/07/22(金) 08:30:54.09
>>235
ヒトの身長をμmやnmの精度で計測可能な測定器は存在しないので問題ない。

> >「もしあるなら、このスレには二度とこない」というのなら教えてやるよ。www
> 絶対にありません。それでいいです。霧
って言わないのか? www

240 :デフォルトの名無しさん:2011/07/22(金) 08:33:18.28
>>236
正々堂々としているかどうかと、その行為が恥であるかどうかは別問題。
自宅で全裸になるのと屋外で全裸になるのとでは、明らかに後者の方が正々堂々としているが、
恥であるのもまた明らかに後者。

241 :デフォルトの名無しさん:2011/07/22(金) 08:35:24.22
>>238
1000万以上の二乗とかくのが面倒だったからそう書いた。

1000万超 × 1000万超
とでも書けばわかるか?

242 : ◆QZaw55cn4c :2011/07/22(金) 08:36:18.81
>>232

>>224
>たかだか数十行の学生の課題のバグフリーな回答を作成する能力が無い。
>その上、他人に指摘されるまでその単純なバグの存在に気づく能力が無い。
に自覚的なので、恥と引き換えに指摘をいただけるのならそれでよし、としているだけですね。

もっとも
 http://hibari.2ch.net/test/read.cgi/tech/1308749241/906 
はさすがに恥だとおもうし、
 http://hibari.2ch.net/test/read.cgi/tech/1308749241/906 
にはバグはない、と言い張るほど恥知らずではないと思っていますけれどもね。

243 :デフォルトの名無しさん:2011/07/22(金) 08:37:15.59
>>240
同じ場所に書き込みをしているのだから、屋外なのはどちらも同じだろ。
トリを付けているか名無しかというのは、
素顔を晒して全裸になるか仮面で顔を隠して全裸になるかの違いだけ。


244 :デフォルトの名無しさん:2011/07/22(金) 08:37:56.87
>>234
それは相手がある程度物事を理解できるっていう前提が必要で、
Qみたいな頭の悪すぎるクズには通用しない

245 :デフォルトの名無しさん:2011/07/22(金) 08:40:45.48
>>241
数値計算の分野で、
doubleとfloatの選択をメモリ節約なんていう観点で決めないだろう・・・
という突っ込み。

逆に、700万×700万ならdoubleでも足りるからdoubleでやるの?そうじゃないでしょ。


246 :デフォルトの名無しさん:2011/07/22(金) 08:43:08.02
>>243
私が挙げた例えは、あくまで「正々堂々としているかどうかと、その行為が恥であるかどうかは別問題」ということを示すための(極端な)例えであって、
このスレにおける一連の流れとは独立したものであると考えて欲しい。

今の状況は、「無理数同士の積は無理数とは限らない」ということを示すために、私が√2×√2という例を挙げたところに、
あなたが「でも√2×πは無理数だ」と指摘したようなものである。

247 :デフォルトの名無しさん:2011/07/22(金) 08:45:37.44
分かっているとは思うけど、
1000万でdoubleがNG、floatならOKというなら

1400万なら(充填率が一定の前提なら)1.96倍になるのでfloatでもほぼNG
700万なら0.49倍になるのでdoubleでもOK

という意味の数字。


248 :デフォルトの名無しさん:2011/07/22(金) 08:53:52.51
>>244
確かに、どうしても自分の間違いを認めようとしないような人を相手取るとちょっと困るね
それでも、自分が暴言を使わなければ少なくともその点では相手より勝ることになるから
俺はこういう場であえて暴言を使うことはほとんどない

249 :デフォルトの名無しさん:2011/07/22(金) 08:59:01.51
大人はNGワードを設定しているので問題ない。

250 :デフォルトの名無しさん:2011/07/22(金) 09:01:34.43
>>245
> doubleとfloatの選択をメモリ節約なんていう観点で決めないだろう・・・
精度に関しては当然だから言及していない。

> 逆に、700万×700万ならdoubleでも足りるからdoubleでやるの?そうじゃないでしょ。
そう(メモリ無尽蔵にあるからdoubleで良いじゃん)と言ってたのがdoubleデフォルト派。

251 :デフォルトの名無しさん:2011/07/22(金) 09:19:17.04
>>242
> に自覚的なので、恥と引き換えに指摘をいただけるのならそれでよし、としているだけですね。
恥知らずのお前に引き換える恥はない。

http://hibari.2ch.net/test/read.cgi/tech/1308749241/906 は
↓で決着済み。ロジックに問題はない。
>>159
> まあ、max の初期値が -1 でも問題ないことは認めますから、はやく最小値を求めるロジックを修正してください。

> >「もしあるなら、このスレには二度とこない」というのなら教えてやるよ。www
> 絶対にありません。それでいいです。霧
って言わないのか? www

252 :デフォルトの名無しさん:2011/07/22(金) 10:45:18.16
案件による。
で終わる話題なのにいつまでQZで遊んでるん?

253 :デフォルトの名無しさん:2011/07/22(金) 10:50:35.08
ここも夏休みに入るから思う存分やれよ

254 :デフォルトの名無しさん:2011/07/22(金) 11:08:11.49
>>252
案件によるでは終わらんだろ
ディフォルトが double か float かって話なんだから

255 :デフォルトの名無しさん:2011/07/22(金) 11:53:12.29
>> べつに
なら書き込まなくていい、と私は思う。

256 : ◆QZaw55cn4c :2011/07/22(金) 12:40:22.14
>>251
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 の欠陥ロジックを修正してください。

257 :デフォルトの名無しさん:2011/07/22(金) 12:47:32.22
>>254
宿題スレでやることじゃないし

258 :デフォルトの名無しさん:2011/07/22(金) 13:13:30.68
>>256
任意単位の入力を仮定しなければいけないというのならば、doubleでもlong doubleでも
表現範囲が不十分なので、無限精度浮動小数点を使わなきゃいけないな。

まず、これまでのてめーの回答を任意単位の入力を受けられるようになおしてから
修正を要求しろ。てめーが回答したもの全部だ。
他人に要求するんだから、当然自分もするんだよな。wwww

バカの言いがかりは底が浅すぎる。ブーメランのようにてめーに帰る。ww

259 :デフォルトの名無しさん:2011/07/22(金) 13:34:52.50
>>257

926 名前: デフォルトの名無しさん 投稿日: 2011/07/19(火) 22:15:14.88 
> あと、float をあえて使う場面はそうそうない。浮動小数点は double がデフォと学校で習いませんでしたか? 
キミみたいな底辺PGは使う機会そうそう無いだろうけど、数値演算やってると不要な処でdoubleは使わないんだよ。 

話の発端はこれなんだが、こんな非常識な事を書いて後に引けなくなった馬鹿が強弁してる
学生が見てるスレだから白黒は付けた方が良いと思うよ

260 :70:2011/07/22(金) 13:38:34.25
>>122
返事が遅れましたが、有難うございました、非常に参考になりました。

261 :デフォルトの名無しさん:2011/07/22(金) 13:54:45.91
>>259
死ねよ。QZ。

floatを選択する場合は普通にある。QZが学校で習ったという(浮動小数点は double がデフォ)はウソ。

2011年時点のスタンダードハードウエアではdoubleよりfloatの方が速い、メモリ消費量は言わずもがな。

速度なんかどうでもいい場合は、doubleにしとけば精度や表現範囲に関する考慮を省ける。
速度を気にするならば、doubleの精度が必要な場合以外はfloatを使った方が良い。

262 :デフォルトの名無しさん:2011/07/22(金) 14:09:11.24
結局doubleを教えてfloatを教えない学校ってあんの?
専門学校とかがそんな感じなの?

263 :デフォルトの名無しさん:2011/07/22(金) 14:18:50.86
>>261
俺はQZじゃないよ
QZはアレな部分もあるけど基本的にはトリを付けるじゃん、そこだけは認めてる

float の方が速い環境で速度を優先するならって前提が付くだろ
『基本は double だけど理由が有れば float を使う場合も有る』で良いと思うぞ

> 数値演算やってると不要な処でdoubleは使わないんだよ
これを撤回するつもりは無いの?

264 :デフォルトの名無しさん:2011/07/22(金) 14:45:59.97
>>263
> > 数値演算やってると不要な処でdoubleは使わないんだよ
> これを撤回するつもりは無いの?
無いよ。常に精度や値域考えて(floatで充分なところはfloat)選択するから。
数値演算やってると言いながら、無神経に「double選んどけ」っていう方が信じがたいわ。

265 :デフォルトの名無しさん:2011/07/22(金) 14:59:59.19
>>264
まぁ頑張りなよw
常に必要精度を考えて float と double が混在したコード書くほうが俺には信じがたいけどね
職業プログラマが 
ttp://hibari.2ch.net/test/read.cgi/tech/1308749241/906
みたいな学生に任せとけば良いような問題に解答するのと同じくらい信じがたいw 

266 :デフォルトの名無しさん:2011/07/22(金) 15:09:41.12
>>265
そういえば、あんた、技術計算歴10年の人だよね。撤退すると言いながらノコノコでてきて白黒つけろ? www

捨て台詞もキュートです。
> まぁ頑張りなよw
> 常に必要精度を考えて float と double が混在したコード書くほうが俺には信じがたいけどね
> 職業プログラマが
> ttp://hibari.2ch.net/test/read.cgi/tech/1308749241/906
> みたいな学生に任せとけば良いような問題に解答するのと同じくらい信じがたいw 

267 :デフォルトの名無しさん:2011/07/22(金) 15:45:11.58
>>266
キュートだろ

職業プログラマだったら100%こんな問題には手を付けないもんなぁ
考えなくても書けるコードなんて暇つぶしにならん、Qzあたりも回答しないレベルだ
積み残されて時間切れになりそうなら仕方ないから書いてやろうかなって思うけど、
前スレをチェックしたら出題から回答まで20分くらいかw
嬉々として回答したらQzにケチ付けられて強弁に強弁を重ねてる脳内プログラマにしか見えないんだよw


268 :デフォルトの名無しさん:2011/07/22(金) 15:48:10.78
floatが4byteであるって規格されてるの?
doubleがその2倍の情報量だって規格されてるの?
floatが16byteでdoubleが8バイトって違法?

269 :デフォルトの名無しさん:2011/07/22(金) 15:52:17.39
>>268
されてない
されてない
規格違反

270 :デフォルトの名無しさん:2011/07/22(金) 15:54:52.20
>>267
> 積み残されて時間切れになりそうなら仕方ないから書いてやろうかなって思うけど、
はあ? すでに期限切れだったから回答したんだか。元の依頼は
http://hibari.2ch.net/test/read.cgi/tech/1308749241/720

引っ込むと言って粘着してるし、的外れな言いがかり付けるし、お前やっぱQZだろ。

271 :デフォルトの名無しさん:2011/07/22(金) 15:54:53.26
floatが4バイトとしても、1000万x1000万のマトリクスだと
その必要情報量は360Tを超えてる。これをまともに扱う
処理系と環境を教えて下さい。(スパースマトリクスだとかは
理屈になりませんので)

272 :デフォルトの名無しさん:2011/07/22(金) 16:00:02.28
doubleのほうがfloatより常に情報量(≒精度)が多いことは
法律で決まってる?

273 :デフォルトの名無しさん:2011/07/22(金) 16:03:26.56
>>272
いいえ

274 :デフォルトの名無しさん:2011/07/22(金) 16:03:46.74
疎行列とか言ってなかったか?

275 :デフォルトの名無しさん:2011/07/22(金) 16:11:18.08
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク):
 パーティクルを採用した、エフェクトプログラムデモを作成する。


276 :デフォルトの名無しさん:2011/07/22(金) 16:12:14.06
>>267
ところで、前回はとぼけられちゃったけど、C99禁止で浮動小数点例外の
ハンドリングどうやってんの?

277 :デフォルトの名無しさん:2011/07/22(金) 16:13:21.32
>>275
・光の粒子が回転移動。
 ・爆発エフェクト(破片の物理移動) など。
 例)花火

278 :デフォルトの名無しさん:2011/07/22(金) 16:13:41.95
>>275
なにかしらのライブラリが必須を思われるので
何使ってるのか教えろハゲ

279 :デフォルトの名無しさん:2011/07/22(金) 16:15:37.49
>>276
1.情報の洗い出し → 構造体
   2.初期化 → 爆発時に初期データセット
   3.実処理 → 移動、加減速、色調
   4.後処理 → 情報の削除(メモリの解放)


280 :デフォルトの名無しさん:2011/07/22(金) 16:18:43.88
>>276
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: VC6.0
 [3.3] 言語: Cのみ
[4] 期限: 8月1日

281 :デフォルトの名無しさん:2011/07/22(金) 16:24:23.64
>>278なれてなくてすいません。
[5] その他の制限:エフェクトは自由にとのことでしたが、炎や、爆発や雷で作っていただけるとありがたいです。よろしくお願いします。
DirectXは使用不可です。コンソールアプリでお願いします。3Dは使わず、"*"や、"+"などの記号で表現お願いします。


282 :デフォルトの名無しさん:2011/07/22(金) 16:26:50.04
>>281
お手数ですが、コメントよろしくお願いします。

283 :デフォルトの名無しさん:2011/07/22(金) 16:28:26.23
printfとwhileかsleepあたりでそれっぽく作ればいいってことか

284 :デフォルトの名無しさん:2011/07/22(金) 16:44:29.52
bool load(const char *pData) {
unsingned long num_ = *( reinterpret_cast<const unsigned long *>(pData) );
pData += sizeof( unsigned long );
//etc
}
この関数で移動したpDataのアドレスを返すにはどうするのがスマートですかね?
引数を2重ポインタ使って返す?
返値で返す?

一般的な解法がわからん

285 :デフォルトの名無しさん:2011/07/22(金) 16:47:11.12
>>284 宿題ではない

286 :デフォルトの名無しさん:2011/07/22(金) 16:48:05.33
今のDOS窓ってエスケープシーケンスが使えないんじゃなかったっけ?
printf と sleep でそれっぽく作れるのか?

287 :デフォルトの名無しさん:2011/07/22(金) 16:55:28.79
>>285
すれ違いすいませんでした。
違うところで聞いてきます。

288 :デフォルトの名無しさん:2011/07/22(金) 16:55:31.19
>>276
お前の相手するのもう嫌なんだけど技術的な話だから答えるよ

まず、例外処理を使わないなんて言った覚えは無いよ
可搬性を重視するといっても程度問題だ、C++も使うって書いたよな
構造的例外処理がまだ一般的ではない時代は例外ハンドリングの概念は無かった
よって、ゼロ割や溢れが起きないように演算の前後に数値チェックを入れるのが必須だった
現在でもゼロ割で例外に引っかかる様なコードを書くと馬鹿にされるよ
ちゃんとチェックすれば例外なんて生じないからね

289 :デフォルトの名無しさん:2011/07/22(金) 17:09:01.24
>>286
DOS窓はMSDOSとは全然考え方が違う

http://www.asahi-net.or.jp/~qb3k-kwsk/rpg/program/tutorial/game1/m100.html

この当たりを参照

290 :デフォルトの名無しさん:2011/07/22(金) 17:23:30.77
>>289
curses みたいなもんか、MSって知らんうちに変なモンを作ってるなぁ
宿題以外で需要有るんだろうか?

291 :デフォルトの名無しさん:2011/07/22(金) 17:24:18.27
ANSI.SYSを導入して解決

292 :デフォルトの名無しさん:2011/07/22(金) 17:36:10.76
これか

http://homepage2.nifty.com/LM/kurogam/w2k-ansi.htm

これ使ってもいいのなら簡単だよな

293 :デフォルトの名無しさん:2011/07/22(金) 17:44:25.59
何でディフォルトから ansi.sys を外したんだろうな?
入れとけば昔のDOSプログラムもリコンパイルして動かせるのに....こっちも需要は無いかw

294 :デフォルトの名無しさん:2011/07/22(金) 17:57:37.69
>>290
超小規模だけど、1文字を文字色と背景色を上手く変えて1画素として扱えるようにして、
ファミコンクオリティゲームをコマンドプロンプトで動かそうってのがある

295 :デフォルトの名無しさん:2011/07/22(金) 18:08:45.35
>>288
> お前の相手するのもう嫌なんだけど技術的な話だから答えるよ
撤退宣言したくせにノコノコでてきたのはお前だぞ。しかも呼んでないのに。

> まず、例外処理を使わないなんて言った覚えは無いよ
C99のライブラリダメでFP例外はアリかよ。ずいぶん都合の良いルールだな。
そんな曖昧なルールを根拠にdouble強要すんなよ。

> よって、ゼロ割や溢れが起きないように演算の前後に数値チェックを入れるのが必須だった
> 現在でもゼロ割で例外に引っかかる様なコードを書くと馬鹿にされるよ
それ古くねーか。
うちのスタンダードは、いちいち数値チェックなんか、(速度的に)入れてらんねーから、
とりあえず計算する→例外発生したら条件替えてやり直しだな。
稀にしか発生しないから*例外*な。

296 :デフォルトの名無しさん:2011/07/22(金) 18:20:02.12
>>295
> C99のライブラリダメでFP例外はアリかよ。ずいぶん都合の良いルールだな。 
程度問題って言葉が理解できないからお前の相手は嫌なんだよ

> それ古くねーか
> うちのスタンダードは、いちいち数値チェックなんか、(速度的に)入れてらんねーから、 
> とりあえず計算する→例外発生したら条件替えてやり直しだな。
やり直しが可能なら落ちたってかまわないよ
でも例えば、NC加工中に落ちたり止まったりしたら材料が無駄になるだろ
素人に使わせるコードが例外出してダイアログ出したら電話がかかってくる
だいたい関数の引数チェック程度だったらたいしたオーバーヘッドでもねぇだろ
まぁお前さんの脳内でどんな凄いプロジェクトが進行中なのかは知らんけどねw
 


297 :デフォルトの名無しさん:2011/07/22(金) 18:34:31.43
[1] 授業単元:C言語
[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まで

298 :デフォルトの名無しさん:2011/07/22(金) 18:38:54.87
>>296
> 程度問題って言葉が理解できないからお前の相手は嫌なんだよ
そういうあいまいな*程度問題*とやらで、デフォルトdoubleを強要すんな。
floatな関数の可搬性を根拠にしてみたけど、引っ込みつかなくなって強弁してるのお前だろ。w

> でも例えば、NC加工中に落ちたり止まったりしたら材料が無駄になるだろ
> 素人に使わせるコードが例外出してダイアログ出したら電話がかかってくる
誰がプログラム止めるって言ったよ。例外をプログラム中で捕捉するための例外処理だぞ。
例外が発生したことなんて利用者は気づかねーよ。

299 :デフォルトの名無しさん:2011/07/22(金) 18:49:05.95
>>298
まだ続けるつもりかよ、素人がw
float の可搬性なんて話を俺が本気で根拠にしてると思うのか?
だからお前は素人なんだよ
ある一文を書けば俺はグウの音も出なくなるんだが、お前はそれについて気が付かない
だから俺はお前を素人だと断定してからかってるんだよ
悔しかったらある一文を書いてみなよw

でもなぁ『数値演算やってると不要な処でdoubleは使わないんだよ』これは撤回しろよ
あまりに認識が現実離れしすぎてる
理由はfloat 使うと面倒だからなんだよ
レビューじゃ絶対突っつかれるし、後で精度不足に気が付いたら書き直しになる
普通の現場じゃ double と float が混在した不気味なコードは使わないからなw
後の面倒を考えたら全部 double にした方が楽なんだよ
まぁお前さんも現場に入ればすぐ判るよ

300 :デフォルトの名無しさん:2011/07/22(金) 18:52:54.15
お前らここは宿題スレだぞ。ちゃんと問題聞いてくる人いるんだから無駄なスレ消費は別でやれ。

それと>>297
http://codepad.org/V1e2k3bc

301 :デフォルトの名無しさん:2011/07/22(金) 19:11:15.15
>>299
そうか? 逆にオレは
> 数値演算やってると不要な処でdoubleは使わないんだよ
これを撤回しろというお前の素性を疑っている。

> a = (float)tan( (double)b );
このキャストでもヘボPGと認定したが。w

> 理由はfloat 使うと面倒だからなんだよ
また新しい根拠を捏造しだしたのか? 墓穴掘ってるぞ。
面倒でもやらなきゃいけないのがお仕事なんだよ。
特別に教えてやろう。SSEにfloatはdoubleの倍突っ込めるんだよ。

302 :デフォルトの名無しさん:2011/07/22(金) 19:23:42.24
何度も申し訳ありません。
少し流れてしまったのですがどなたか>>77をお願いいたします。

303 :デフォルトの名無しさん:2011/07/22(金) 19:24:49.98
>>301
俺の質問の答えは判らんのか?
まぁ素人は知らんかもな

別に捏造でもなんでもないぞ、どっちかというと可搬性が捏造だw
double にしといた方が楽だからって理由はカッコ悪いだろ、だから隠してたw
そろそろ終わりにしたいから本音を書いただけだ

敢えて double と float の混在ソースなんて面倒を買う必要はないだろ
勿論、何らかの必然性が有れば別だけどな、SSEもその一つとなりうるだろう


304 :デフォルトの名無しさん:2011/07/22(金) 19:25:50.53
>>302
その問題は前スレで見たよ、回答も有ったと思う
誰も回答しないのはそういう理由じゃないかな

305 :デフォルトの名無しさん:2011/07/22(金) 20:07:57.81
>>303
> ある一文を書けば俺はグウの音も出なくなるんだが、お前はそれについて気が付かない
それを書けばグウの音でなくさせて終了させられるんじゃないのか? ww
うーん、何故それをせず、可搬性とか適当な事言ってたのを認めたんだろう? www

> SSEもその一つとなりうるだろう
SSEはスタンダードっていってるじゃん。
逆に、いまどきSSE使えない環境で数値計算やってますって方が嘘くさいぞ。

306 :デフォルトの名無しさん:2011/07/22(金) 20:18:03.15
http://codepad.org/uqDwTIHX
のプログラムがエラーになってしまい困っています
何が原因でどうすればいいのか教えてください!

307 :デフォルトの名無しさん:2011/07/22(金) 20:21:46.10
>>306
typo
エラーメッセージ嫁

308 :デフォルトの名無しさん:2011/07/22(金) 20:23:35.19
それだけじゃないけどな

309 :デフォルトの名無しさん:2011/07/22(金) 21:08:57.08
>>307-308
エラーを修正しましたが、またエラーがでます

http://codepad.org/kl31FANo

何が原因なんでしょうか?

310 :デフォルトの名無しさん:2011/07/22(金) 21:30:59.25
>>302
あまり褒められたソースじゃない、間に合わせで書いてる。
@
http://codepad.org/DvGtxGG5
A
http://codepad.org/AOcw0k4Q
B
http://codepad.org/EZTv4FfQ

311 :デフォルトの名無しさん:2011/07/22(金) 22:03:51.21
>>305
素人な上に読解力も無いのか?
可搬性に関して俺が書いた時にC99の仕様なんて持ち出さずに『ある一文』を書けば俺はグウの音も出なかった、
その一文とは何かと聞いてるんだよ
素人には判らないと思うけど可搬性について考慮した事が有る奴なら誰でもわかる話だ
お前は素人なんだよ

312 :デフォルトの名無しさん:2011/07/22(金) 22:23:29.08
>>309

memcpy(p2,p1,2); → p2 = p1;
memcpy(p2,&p1,10); → p2 = p1;

全体的にコードの意図が不明だが、
第3引数の2とか10はどういう意図?

313 :デフォルトの名無しさん:2011/07/22(金) 22:34:38.06
>>302
@だけ書いてみた
http://codepad.org/GzASmpap

314 :デフォルトの名無しさん:2011/07/22(金) 22:36:15.36
>>312
2と10はコピーするためのバイト数を表わしたつもりです...

315 :デフォルトの名無しさん:2011/07/22(金) 22:41:11.07
>>314
自分の中で
何やる(やりたい)のか
わかってる

316 :デフォルトの名無しさん:2011/07/22(金) 22:49:53.26
>>77,302
@
http://codepad.org/LukVMIny

317 :デフォルトの名無しさん:2011/07/22(金) 23:00:40.18
>>314
何をコピーしたいの?
とりあえずmemcpyの第一引数、第二引数にはポインタを渡さなければ
ならないが、それも間違っている。
2,10はなんのサイズ?わざと半端なサイズコピーして、メモリの中を
見ようとしているの?その割にはprintfのなかで%sで受けると、
まずいことになるのだけれど。

318 :デフォルトの名無しさん:2011/07/22(金) 23:00:55.53
>>315
メモリーの内容をコピーすることですが

319 :デフォルトの名無しさん:2011/07/22(金) 23:29:15.97
>>317
>とりあえずmemcpyの第一引数、第二引数にはポインタを渡さなければ
ならないが、それも間違っている。

ご指摘の通り下記のようにしましたが、これで合ってますか?
http://codepad.org/90TBENdS

320 :B:2011/07/22(金) 23:33:45.45
#include <stdio.h>
typedef 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]);
}

321 :デフォルトの名無しさん:2011/07/22(金) 23:35:13.68
>>319

やっぱり2,10の意図が不明。

memcpy(&p2,&p1,2); → memcpy(&p2,&p1,sizeof(p2));
memcpy(c,&p1,10); → strcpy(c,p1.name);

なら、まぁいいかと思うけど。

322 :デフォルトの名無しさん:2011/07/22(金) 23:37:38.43
>>320
ありがとうございます!
>>321
実を言うと、そこは適当な容量ってことだったので特にこだわってません

323 :デフォルトの名無しさん:2011/07/22(金) 23:40:05.29
>>320

p1, p2の型が違うっていうのは、バグになり易い。
PROFILE prof1, *pProf2;
とかの方がいい。

後、
printf("%s;%d\n", c, c[8]);
これは何を期待している?エンディアン次第で結果が変わるし、
%dは%hhdにすべきかな。

324 :デフォルトの名無しさん:2011/07/23(土) 00:02:32.56
>>323
#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]);
}

325 :デフォルトの名無しさん:2011/07/23(土) 00:05:12.72
>>323

%hhdって何ですか?

326 :デフォルトの名無しさん:2011/07/23(土) 00:16:52.02
>>320
>memcpy(&p2, &&p1, 4);

&&p1だと出力できない気がする

327 :デフォルトの名無しさん:2011/07/23(土) 00:34:30.83
[1] 授業単元:C言語
[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まで
よろしくお願いします。

328 :デフォルトの名無しさん:2011/07/23(土) 01:08:54.56
>>323のリンクの所気にしないでください。
ミスです。

329 :デフォルトの名無しさん:2011/07/23(土) 01:19:42.19
>>327
http://codepad.org/5pupoPGW

330 :329:2011/07/23(土) 01:21:24.65
DNUMを20に変え忘れた orz
直しておいてください

331 : ◆QZaw55cn4c :2011/07/23(土) 01:22:32.14
>>222 期限切れ
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 を使うことについては疑問視とします。

332 :デフォルトの名無しさん:2011/07/23(土) 01:37:49.59
>>327
>>329
http://codepad.org/BskPKOxm

333 :デフォルトの名無しさん:2011/07/23(土) 01:43:19.38
>>329
>>332
ありがとうございます。

334 :デフォルトの名無しさん:2011/07/23(土) 07:34:24.01
doubleが共通規約から廃止(=処理系毎の拡張扱い)されても、floatは残るだろうね
ただし相互互換性は原則的に保証されない
処理系のfloatはA type of floatとなり処理系が異なれば精度も違ってくるだろうし
(勿論最小限の制約は残るだろうけど)
それこそSSEを前提とするようなものも出現するかもしれない。

これに対してdoubleはIEEEかどっかが決定するThe type of doubleって感じで
ま、業界標準の浮動小数点実数型で、多くの言語もこれと互換のものを用意する
ことが多くなるって感じ(つまり事実上すべての言語処理系が言語的には非公式に実装)

そもそもsingleが無いからdoubleは形容詞じゃなく名詞として扱われてるし

335 :デフォルトの名無しさん:2011/07/23(土) 08:21:28.19
>>311
お前がしつこく聞いていた「どんなプロジェクト」か?
狭い業界なんだから身バレの可能性が高くなるわ。こんなクソスレで書けるかバカ。
結局言いがかりの根拠は押し付けられた古いしきたりだったようだな。

> a = (float)tan( (double)b );
ヘボなハケンがよくこういうの書くんだよな。やっぱり直感は正しかったようだ。

>>331 うんこ:
> 教育的配慮から、私の「float をあえて使う場面はそうそうない」という発言は撤回します。
ほら、梯子外されちゃったぞ。w

336 :デフォルトの名無しさん:2011/07/23(土) 08:23:58.00
お前らもっと面白い話をしろよ

337 :デフォルトの名無しさん:2011/07/23(土) 08:25:32.82
>>331
メモリの時もそうだったが、てめーが勝手に設定したルールを押し付けるから、
オレも勝手にルールを設定しててめーに押し付ける。
てめーがオレのルールに従うなら、オレもてめーのルールを受け入れてやる。

過去のうんこコードを任意単位と任意値域に対応できるようになおせ。

338 :デフォルトの名無しさん:2011/07/23(土) 08:26:16.59
>>325
longの十進法表示に対応するのが%ld
intの十進法表示に対応するのが%d
shortの十進法表示に対応するのが%hd
chrの十進法表示に対応するのが%hhd

339 :デフォルトの名無しさん:2011/07/23(土) 08:56:47.86
floatってゲームだと使うよね?
だって三次元データを扱おうとすると、3つセットだし、
4x4の行列を用意すると16個。
オブジェクトを生成するにしろ、リプレイデータを保存するにしろ、
doubleじゃあ息苦しくなってくる。

340 :デフォルトの名無しさん:2011/07/23(土) 09:07:57.34
.>>335
解らないなら解らないって言えよw
別にお前の脳内プロジェクトなんて知りたくもないわw

『可搬性を考えたら float を使うべきではない』これは誤りではない
しかし、『可搬性を考えたら double を使うべきだ』これは誤りだ
お前にこの違いが解るか?

341 :デフォルトの名無しさん:2011/07/23(土) 09:14:06.01
>>340
> 『可搬性を考えたら float を使うべきではない』これは誤りではない
これは捏造だと認めただろ。アルツハイマーが進行しているようだな。

>>303
> 別に捏造でもなんでもないぞ、どっちかというと可搬性が捏造だw

342 :デフォルトの名無しさん:2011/07/23(土) 09:32:35.59
>>341
お前は本当に頭が悪いな
『可搬性を考えたら double を使うべきだ』は誤りだって書いてるだろ
こんな良いヒントに無意味な突っ込み入れるなよw

343 :デフォルトの名無しさん:2011/07/23(土) 09:49:16.90
>>342
QZの尻馬にのってノコノコでてきて、完膚なきまでに叩きのめされ、その上にQZに梯子外されて。
何度も撤退表明しときながらまだ粘着するのか。惨めすぎる。ww

344 :デフォルトの名無しさん:2011/07/23(土) 09:56:08.12
>>343
お前よりはマシだ

345 : ◆QZaw55cn4c :2011/07/23(土) 09:56:40.29
>>337
>任意値域に対応できるよう
実は面白い。整数に関していえば実は今インプリメント中だったりします。遠くない未来にこのスレでお見せできるかと思います。

346 :デフォルトの名無しさん:2011/07/23(土) 09:57:28.33
いい加減に収集つけろよ。個人の信条云々はわかったからさ、反応しなきゃいいだけじゃん。
質問者こんなんじゃ質問し辛いだろ。現に荒れてから質問一気に減ったじゃん。

日々の仕事からの現実逃避娯楽を奪わんでくれw

347 :デフォルトの名無しさん:2011/07/23(土) 09:59:46.97
>>345
そんなうんこコードで回答されてもお前以外は誰も得しない。隔離スレで勝手にやってろ。

>>346
夏休みに入ったからだよ。

348 :デフォルトの名無しさん:2011/07/23(土) 10:03:31.69
俺も収集つけたいんだけどね
俺の質問に float 馬鹿が答えるか降参してくれるのを待ってる

349 :デフォルトの名無しさん:2011/07/23(土) 10:17:52.11
> a = (float)tan( (double)b );
こういうクソコードかく底辺派遣はストレス溜めてるねえ。
主張に欠陥があることを認めながら粘着つづける。ああ、惨めすぎる。w

350 :デフォルトの名無しさん:2011/07/23(土) 10:31:11.62
>>349
降参ならさっさと降参しろよw
そもそも、そんなコードを書くことは無い、だって double しか使わないんだもんw

どこまで見苦しいんだよw

351 :デフォルトの名無しさん:2011/07/23(土) 10:31:21.94
>>349
うんこ◆QZaw55cn4cでさえもすでに収拾をつける方向というのに、
うんこ以下が粘着しつづける。

>>349 はうんこに絡まれた float 馬鹿のほうかね。
ttp://hibari.2ch.net/test/read.cgi/tech/1308749241/906 を
>>267 >嬉々として回答したらQzにケチ付けられて強弁に強弁を重ねてる脳内プログラマ


352 :デフォルトの名無しさん:2011/07/23(土) 10:42:32.71
> a = (float)tan( (double)b );
普段は書かないとか言い訳してる。wwww
つい、底辺派遣の地がでちゃったんだろうね。一発で底辺派遣と見分けられるクソコード。ww

きっかけ作ったうんこも撤退したのに粘着し続ける底辺派遣惨めすぎる。
学生さんは底辺派遣にならないように、自分で課題こなしてしっかり勉強しようね。

353 :デフォルトの名無しさん:2011/07/23(土) 10:45:37.68
敢えて言おう

夏ですね^^

354 :デフォルトの名無しさん:2011/07/23(土) 10:46:04.90
>>352
お前は本当に終わってるな
部分抜粋じゃなくて全部を引用しろよ
それは『こういうコードを書くハメになるから駄目でしょ』って意味で書いただろ

答えも解らん、降参するのも悔しい、つまりは頭が悪い上に潔さも無いって事か
もう回答か降参以外にはレスしないからね

355 :デフォルトの名無しさん:2011/07/23(土) 10:50:11.89
> a = (float)tan( (double)b );
今度はダメな例とか言い訳してる。www 底辺派遣惨め。www

356 :デフォルトの名無しさん:2011/07/23(土) 10:54:24.77
>>355
うんこ◆QZaw55cn4cでさえもすでに収拾をつける方向というのに、
うんこ以下が粘着しつづける。

>>355 はうんこに絡まれた float 馬鹿のほうかね。
ttp://hibari.2ch.net/test/read.cgi/tech/1308749241/906 を
>>267 >嬉々として回答したらQzにケチ付けられて強弁に強弁を重ねてる脳内プログラマ



357 :デフォルトの名無しさん:2011/07/23(土) 11:02:52.65
>>355
しつこいわ、俺もだけどw
>>17 を見て駄目な例じゃないと読むならお前は何処の国の人間だ?
まぁ >>17 は嘘なんだけどな、float を使うにしてもこんな実装にはならん
最後に大ヒントだ『生と裸は駄目だよ』
解るかなぁ、解んないだろうなぁ


358 : ◆DC0o8lv/Lrr5 :2011/07/23(土) 11:11:12.51
大学のプログラミングの課題です
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;
}

359 : ◆QZaw55cn4c :2011/07/23(土) 11:13:41.01
>>358
×num=getchar();
○scanf("%d", &num);

360 :デフォルトの名無しさん:2011/07/23(土) 11:17:57.42
>>359
書き換えましたが、何を入力しても「入力ミスです」と表示されてしまいます

361 :デフォルトの名無しさん:2011/07/23(土) 11:20:26.47
>>360
×case '0':
○case 0


362 :デフォルトの名無しさん:2011/07/23(土) 11:22:55.78
>>361
ありがとうごさいます出来ました

363 :デフォルトの名無しさん:2011/07/23(土) 11:24:23.34
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):http://codepad.org/vPJorQaD
はじめに操作メニューを表示し、データの新規入力か閲覧かを選択させる。
新規入力は、上記のリンク先のプログラムの仕様に沿ったものとし、閲覧はdata.txtの内容を読み込み、読み込んだ人数分を表のように各項目が上下に揃って表示されるように設計しなさい。
詳細設定は、各自で行って良い。各自で決めた設計は、プログラムの先頭にコメントで記述すること
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限:7/29まで

364 :デフォルトの名無しさん:2011/07/23(土) 11:39:47.02
> a = (float)tan( (double)b );
見れば見るほど底辺派遣コード。

>>357
>>17はダメな例じゃなくてwarinigを避けるための例

底辺派遣らしく真偽を間違えて
> と書くと『有効精度が失われます』みたいな warning が出るから
とかいてるけど、
> と書かないと『有効精度が失われます』みたいな warning が出るから
が正しい。

つまり、warningを避けるために本気で書いた底辺派遣コード。www 底辺派遣惨め過ぎる。

365 :デフォルトの名無しさん:2011/07/23(土) 11:51:18.20
>>364
うんこ◆QZaw55cn4cでさえもすでに収拾をつける方向というのに、
うんこ以下が粘着しつづける。

>>364 はうんこに絡まれた float 馬鹿のほうかね。
ttp://hibari.2ch.net/test/read.cgi/tech/1308749241/906 を
>>267 >嬉々として回答したらQzにケチ付けられて強弁に強弁を重ねてる脳内プログラマ



366 :デフォルトの名無しさん:2011/07/23(土) 11:57:39.61
同じことを繰り返し書くのも荒らしだろw

367 :デフォルトの名無しさん:2011/07/23(土) 12:02:22.70
> a = (float)tan( (double)b );
言い訳も突き崩されて涙目でコピペを続ける底辺派遣。www 惨めすぎる www

学生諸君はこういうコード書いたら一発でバカにされるという事を良く覚えておこう。
「デフォルトはdouble」は憶えちゃだめだぞ。ウソだから。

368 :デフォルトの名無しさん:2011/07/23(土) 12:03:28.14
しつこい奴は嫌われる

369 :デフォルトの名無しさん:2011/07/23(土) 12:12:05.88
>>367
うんこ◆QZaw55cn4cでさえもすでに収拾をつける方向というのに、
うんこ以下が粘着しつづける。

>>367 はうんこに絡まれた float 馬鹿のほうかね。
ttp://hibari.2ch.net/test/read.cgi/tech/1308749241/906 を
>>267 >嬉々として回答したらQzにケチ付けられて強弁に強弁を重ねてる脳内プログラマ


370 :デフォルトの名無しさん:2011/07/23(土) 12:56:29.61
>>369
> 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が定義されてるからバカにされる対象となることを忘れてはいけない。

371 :デフォルトの名無しさん:2011/07/23(土) 16:25:22.27
[1] 授業単元:C言語演習
[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] その他の制限:特になし
前板で回答がなかったのでもう一度投稿させてもらいました。
お手数ですが、どなたかよろしくお願いします。

372 :デフォルトの名無しさん:2011/07/23(土) 16:48:25.87
『(1990年代の意味での)可搬性を考えたらCではfloatを使うべきではない』○
『(1990年代の意味での)可搬性を考えたらCではdoubleを使うべきだ』○

『(長いタイムスパンでの)可搬性を考えたらCではfloatを使うべきある』○
『(長いタイムスパンでの)可搬性を考えたらCではdoubleを使うべきだ』△


373 :デフォルトの名無しさん:2011/07/23(土) 17:14:30.01
>>371
returnしてないけど題意的にこれでいいのかなと
http://ideone.com/TvDnJ

374 :デフォルトの名無しさん:2011/07/23(土) 17:27:32.66
>>373 を改造

構造体1個だけ入力し戻す関数
構造体(配列)を引数にとる関数
に分離

http://ideone.com/gyFR3

375 :デフォルトの名無しさん:2011/07/23(土) 18:26:47.17
>>363
http://codepad.org/WIFtlyRf

376 :デフォルトの名無しさん:2011/07/23(土) 18:46:27.42
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):http://codepad.org/WIFtlyRf
管理できる生徒数を最大20人とし、入力を途中で中断する機能、追加入力する機能を追加しなさい。
各自で詳細設定を行い、プログラムの先頭にコメントで記述すること
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限:7/29まで



377 :デフォルトの名無しさん:2011/07/23(土) 19:40:43.05
>>304そうだったんですか...すみません、確認してみます。

>>310
ありがとうございます。過去ログにあったようですが、助かりました。

>>313
ありがとうございます、いろんな書き方があって勉強になります。

>>316
ありがとうございます。大勢のかたに解答していただいて申し訳ありません。

378 :デフォルトの名無しさん: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


379 :デフォルトの名無しさん:2011/07/23(土) 20:56:02.41
>これを利用して多項でも入力可能な電卓を作成させなさい。

誰かに丸投げしろっていう課題なのか?

380 :デフォルトの名無しさん:2011/07/23(土) 21:36:06.57
いや、ここはそういうスレでしょww

381 : ◆QZaw55cn4c :2011/07/23(土) 21:38:26.54
>>378
>>222 と同じ趣旨ですか?
10 項までならば >>222

問題があったら書き直しますので試してください。

382 :381 ◆QZaw55cn4c :2011/07/23(土) 21:39:39.47
失礼。
>>378
10項まで可能でよければ >>331

383 :デフォルトの名無しさん:2011/07/23(土) 21:47:55.30
>>378
途中の値は有理数で保持
出力時に除算

384 :デフォルトの名無しさん:2011/07/23(土) 21:52:08.89
2/3+1/3

こういう時はどうするのかな?

385 :デフォルトの名無しさん:2011/07/23(土) 21:57:37.77
[1] 授業単元:C言語プログラミング [2] 問題文(含コード&リンク):
http://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


386 :デフォルトの名無しさん:2011/07/23(土) 22:00:28.70
>>385
何度もすみません。書き直しました。
http://codepad.org/n47BkpXa
上記でも、可能ですが上記の制限に記したように結果が生じてしまいます。

387 : ◆QZaw55cn4c :2011/07/23(土) 22:09:22.83
>>378
>講師の方がアルゴリズムが好きな方なので
ならば、こちらをプレゼントしてみて、反応を教えてください。
http://codepad.org/Hf0IP3LK

388 : ◆QZaw55cn4c :2011/07/23(土) 22:23:45.67
>>378
>>385
バグがありましたので訂正します。減算のオペランドが入れ替わっていました。
http://ideone.com/61ALt

389 :デフォルトの名無しさん:2011/07/23(土) 22:29:04.53
>>387
早速の回答ありがとうございます。
問題に記したソースを基に作成して頂ければ幸いです。
たぶん、計算の優先順位をどう作るかだと思います。ご指導お願いいたします。

390 : ◆QZaw55cn4c :2011/07/23(土) 22:34:19.88
>>389
では >>331 をチェックしてみてください。
この問題はすでに、>>221 で依頼があり、そのときは与えられたプログラムに沿うようにして >>331 を書きました。
なお、当時は期限切れであったので、>>331 は隔離スレに飛ばしていますが、このスレはネタスレで、当然無料です。:-)

391 :デフォルトの名無しさん:2011/07/23(土) 22:44:32.90
>>376
>入力を途中で中断する機能、
データを入力するところで中断要求(例えばctrl+D)が来たらメニューに戻るってことでOK?

>追加入力する機能
現状でも追加入力できてね?
追加入力のイメージが湧かないんだけど・・・

392 :デフォルトの名無しさん:2011/07/23(土) 23:00:10.18
>>387
まともなもん作れよ。うんこ。

$ ./unko < X
Bus error (core dumped)

393 :デフォルトの名無しさん:2011/07/23(土) 23:10:15.06
>>390
実は>>221でやってる方法を提示したら結果が違うと指摘されました。
たぶん、分子と分母で分けて計算する考えだと思います。
例8/3*4*9/4+5
8×4×9
------------ + 5というイメージだと思います。ご指導お願いします。
3×4
出来ればmain関数の中だけで行えませんか?まだ関数をつくる所まで習っていないので。

394 : ◆QZaw55cn4c :2011/07/23(土) 23:12:52.54
>>392
Vine Linux 5.2 でも FreeBSD 8.2 でも Windows/cygwin (すべて x86) でも現象が確認できませんね。
bus error ということは、アラインメントの厳しいアーキテクチャかな?
よろしければ実行環境の詳細を教えてください。

395 :デフォルトの名無しさん:2011/07/23(土) 23:17:07.63
>>394
自分で考えろ。クズ。

396 : ◆QZaw55cn4c :2011/07/23(土) 23:23:44.82
>>393
演算順序を入れ替える方法(実は難しい)でも、>>331 で採用している「途中経過を有理数(分子分母)でキープする」方法でも、
8/3*4*9/4 と 8*4*9/(3*4) とで結果は一緒なのに、
「結果が違う」という返答は極めて不正確ですね。
「やり方が違う」なら異論があるにせよ意思疎通が図れる可能性があるのですが。

値はあっているはずですので、プログラムの内容をしっかり把握したうえで、もう一度アタックしてみてください。
それでも反応が同じならば、日本語を正確に扱えない馬鹿講師みたいですから、あきらめたほうがいいと思います。弟子は師匠のいうことをきかなければいけませんが、師匠を選択する権利と自由だけはあります。
あと、main() にまとめるのはしんどいですね。

>>392
「./unko < X」の X ってなんですか?
あとコンパイラとコンパイルオプションも教えてください。

397 :デフォルトの名無しさん:2011/07/23(土) 23:28:13.18
>>373,>>374
ありがとうこざいます。
すごく助かりました!

398 : ◆QZaw55cn4c :2011/07/23(土) 23:29:43.23
>>395
そんなバグレポートには客観的にみてバグの存在を主張する能力はありませんね。

いつぞや、どなたかから
http://hibari.2ch.net/test/read.cgi/tech/1304410950/728
のようなバグレポートをいただきましたが、結局
http://hibari.2ch.net/test/read.cgi/tech/1304410950/827
でツールが馬鹿だったし再現性もない、という結論になりました。

今回も、チェックの仕方がわるいんじゃないですか?多分。

399 :デフォルトの名無しさん:2011/07/23(土) 23:37:43.51
>>398
ソースを一回眺めれば、すぐにわかるバグだが。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

400 : ◆QZaw55cn4c :2011/07/24(日) 00:10:09.89
>>399
なぜ、
int a;
printf("%d\n", a) / unko.c 82 で bus error が出るのかちょっと想像がつきません。
よろしければ リダイレクトで与えた X の内容を教えてください。

401 :デフォルトの名無しさん:2011/07/24(日) 00:13:13.30
if( (a<0) ^(b<0) )とかキザなことやってる割に
コアダンプしてるしWWW
必死でウケ狙ってるわけだな

402 :デフォルトの名無しさん:2011/07/24(日) 01:10:57.67
>>396
http://codepad.org/n47BkpXa
上記のソースを提出しました。これだと8/3*3=6になってしまい、
8/3*3=8になりません。
問題点を教えて 頂けませんか?
宜しくお願いします。

403 :デフォルトの名無しさん:2011/07/24(日) 01:13:44.73
>>391
>データを入力するところで中断要求(例えばctrl+D)が来たらメニューに戻るってことでOK?
それでいいです

>追加入力する機能について
データ入力するところで中断要求したあと、そのデータ入力を再開できるようにする機能のこと

404 :デフォルトの名無しさん:2011/07/24(日) 01:25:12.70
>>400
判ってて言ってると思うけど、Xの内容は出してこないよ。
うちの環境を幾つか試したけどBus errorにはならない。
イチャモン付けたいだけで、検証可能な証拠は絶対にみせないから。
というより、他のスレに移動してやってくれ。

405 :デフォルトの名無しさん:2011/07/24(日) 01:37:26.31
>>402
演算の優先順位を変えずにintでやってるから、
8/3*3 -> 2*3 -> 6 になる。

406 :デフォルトの名無しさん:2011/07/24(日) 01:45:07.69
[1] 授業単元:C言語演習
[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] その他の制限:特になし
お手数ですが、よろしくお願いします。

407 :デフォルトの名無しさん:2011/07/24(日) 01:45:19.81
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク):
パーティクルを採用した、エフェクトプログラムデモを作成する。
・光の粒子が回転移動。
・爆発エフェクト(破片の物理移動)など。
例)花火
情報の洗い出し → 構造体
2.初期化 → 爆発時に初期データセット
3.実処理 → 移動、加減速、色調
4.後処理 → 情報の削除(メモリの解放)
[3] 環境
[3.1]OS:Windows7
[3.2]コンパイラ名とバージョン:VC6.0
[3.3]言語:Cのみ
[4] 期限:8月1日
[5] その他の制限:エフェクトは自由にとのことでしたが、炎や、爆発や雷で作っていただけるとありがたいです。よろしくお願いします。
DirectXは使用不可です。コンソールアプリでお願いします。3Dは使わず、"*"や、"+"などの記号で表現お願いします。お手数ですが、コメントよろしくお願いします。

408 :デフォルトの名無しさん:2011/07/24(日) 02:00:09.62
[1]C言語課題
[2]あたりくじ付き自動販売機のシミュレーターを作りなさい。
入力インターフェースはコンソール入力とします。
お釣りに帯する対応(例えば10円玉不足の場合は、ボタンを
押しても釣り銭切れで、商品が出ないようにするとか)が
必要になることでしょう。
商品種数、在庫、表示方法、状態出力方法は自由としますが、
わかりやすさ、面白さの作り込みの工夫は高い評価ポイントに
なります。
あたりくじは、商品購入時点で777が出たら当選で、
単価が一定金額以下のもう一本好きな商品の選択が出来るように
するというものを想定していますが、他に良いアイデアが
あればそれを採用しても構いません。
[3] Linux/gcc4.6/C言語
[4] 7/31迄

409 :デフォルトの名無しさん:2011/07/24(日) 04:07:13.93
>>406

#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;
}

410 :デフォルトの名無しさん:2011/07/24(日) 04:36:15.15
>>402
>>331 はその問題をクリアしています。
8/3*3 enter
と入力すると
8
と返ってくるはず。これは、最後の出力まで、途中経過を分数(分子分母)で記憶しているからです。


411 : ◆QZaw55cn4c :2011/07/24(日) 05:10:08.51
>>404
サイズ固定(1024バイト)の配列を内部にもっており、これがあふれれば場合によっては printf() の第一引数を壊すこともないではない。
elf ではなく coff とか a.out とかにして、セクションの順番を変えているのか?
しかし bus error はどうやっても引き起こせそうもない‥‥‥。

ともあれご要望にしたがい、再現可能な情報を出してくるまでは一切応答いたしません。

412 :デフォルトの名無しさん:2011/07/24(日) 06:31:44.65
[1] 授業単元:Cプログラミング
[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

よろしくお願いします

413 :デフォルトの名無しさん:2011/07/24(日) 08:18:11.63
>>400
うんこ、てめーは敵を作りすぎた。
> 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

414 :デフォルトの名無しさん:2011/07/24(日) 08:25:50.18
>>410
しつこく粘着していた↓と同じ「欠陥ロジック」もってんじゃねーか。wwww
> とにかく、http://hibari.2ch.net/test/read.cgi/tech/1308749241/906 の欠陥ロジックを修正してください。

オレは欠陥ロジックと思ってないが、お前は欠陥ロジックと確信してるんだよな。
どうするんだ? なおすのか? 教えてやろうか? 再現データ。 www
たった160行にバスエラー1、「欠陥ロジック」1 www

415 :デフォルトの名無しさん:2011/07/24(日) 08:45:18.57
>>404
>>413はコピペミス。↓が正しい。 ツツシンデオワビシマス。

てめーもバスエラーがどういう場合に発生するかわかってねー。自称技術計算10年の底辺派遣か? w
: 0x8008cb403 <malloc_usable_size+24787>: cmp %rbp,0x130(%r12)
: r12 0x3131313131314031 3544668469065760817
こういう状況でバスエラーが発生するんだ。憶えとけ。

416 :デフォルトの名無しさん:2011/07/24(日) 09:46:20.42
>>412
ノード削除の条件を具体的に。
例えば、指定単語に前方一致とか。

417 :デフォルトの名無しさん:2011/07/24(日) 10:45:11.48
>>376
>>403
http://codepad.org/jd2TiJfa

418 :デフォルトの名無しさん:2011/07/24(日) 12:28:54.63
>>416
問題ではノードの削除について具体的な指定はないで、
その条件で大丈夫だと思います。それから、後付けになってしまい申し訳ないのですが、
線形リストは単方向線形リストを使って頂くとありがたいです

419 :デフォルトの名無しさん:2011/07/24(日) 13:17:59.69
必死にQたんのバグ探しする>>413たんかわいいお*´Д`*

420 :デフォルトの名無しさん:2011/07/24(日) 13:23:09.88
>>419
悔しいなら、自分で見つけろよ。

仕様未達一件追加 www
たった160行にバスエラー1、「欠陥ロジック」1、仕様未達1 www

421 :デフォルトの名無しさん:2011/07/24(日) 13:32:14.74
>>418
問題にノードの削除関数は必要無いから使われない関数を作れって事?
ノードの開放関数なら解るけど

422 :デフォルトの名無しさん:2011/07/24(日) 13:43:07.83
>>421
すみません。問題をきちんと把握してませんでした
この問題の参考資料に、ノードの削除関数は今回は使わないかもしれないが、一般的には必要である。と書いてあるので
削除関数は作らなくても大丈夫だということだと思います

423 : ◆QZaw55cn4c :2011/07/24(日) 14:08:38.32
>>420
バグ調査の労、重ね重ね感謝いたします。以下の点修正いたします。
・バッファオーバーランの可能性を排除しました。
・プログラム内にて 0 割り自体は発生しませんが、1/0 という分母が 0 の形で出力していました。今回演算処理中に 0 割りが発生した場合は、その旨表示するようにしました。
・仕様上、内部表現の分数表現の分子・分母それぞれに上限があります。(int 型 4 バイトに 2 つの整数を押し込んでいる以上仕方ありません。)
ただし、式評価の最中にその上限を超える可能性が発生した場合にエラー表示を出力しておりませんでしたので、今回エラーを出力するようにいたしました。
なお、その上限とは 16782 です。

http://codepad.org/9MSpIXlt

なお、本プログラムは再帰呼び出しにて記述しておりますので、以上の対策をとっていても入力によっては暴走等異常が発生する可能性があります。
プログラムのバグを報告していただく際には、プログラムに与えた入力と実行ファイル生成時に設定したスタックサイズをあわせてご連絡いただければ幸いです。
よろしくお願いいたします。

424 :423 ◆QZaw55cn4c :2011/07/24(日) 14:10:30.85
>>423
失礼、誤記を訂正します。上限は 16382 です。
プログラム中の #define LIMIT 32767 の1/2 (端数は切り捨て)にあたります。

425 :デフォルトの名無しさん:2011/07/24(日) 14:29:06.70
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):http://codepad.org/jd2TiJfa
同じ名前の学生はいないものとして考える。入力データの修正と削除の機能を関数を作成して追加しなさい。
各自で詳細設定を行い、プログラムの先頭にコメントで記述すること
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限:7/29まで



426 :デフォルトの名無しさん:2011/07/24(日) 15:14:01.90
>>412
申し訳ありません
問題文を修正します
・ノード作成、ノード挿入、ノード探索のそれぞれを関数として独立すること
ノード削除関数は必要ありません
よろしくお願いします

427 :デフォルトの名無しさん:2011/07/24(日) 15:47:34.09
>>412 >>426
ttp://ideone.com/BPsD5

428 :デフォルトの名無しさん:2011/07/24(日) 16:24:08.81
>>427
ありがとうございます!
とても助かりました!

429 : ◆QZaw55cn4c :2011/07/24(日) 16:45:45.92
>>427
>p = (Word*)malloc( sizeof( Word ) );
>assert( p );
nice におもったけれども、assert() はりリース時には消えてしまう前提、とすれば、めんどくさいけれども if() ではじくしかないのかなあ。

430 :デフォルトの名無しさん:2011/07/24(日) 16:50:37.29
先頭に_は……

431 :デフォルトの名無しさん:2011/07/24(日) 17:12:42.18
>>429
malloc() エラーなんて滅多に起きるもんじゃないからね(引数異常は除く)
起きるとしたらスワップ使い果たしてOSがハング寸前の時だろうか
ワンオフなら業務でも許されるんじゃないかな

432 : ◆QZaw55cn4c :2011/07/24(日) 17:25:07.56
>>431
たしかにそんなときには、スラッシング状態(いやその前に切り捨てられるか)・なにをやっても無駄・打つ手なしでしょうからね。assert() で意思表明する程度でいいのでしょう。
そういう意味でも >>427 は nice な表現ですね。

433 :デフォルトの名無しさん:2011/07/24(日) 17:37:16.40
C++のnew なら例外だから放置もありだろうが
NULLアクセスにするのはなぁ

434 :デフォルトの名無しさん:2011/07/24(日) 17:49:08.74
>>432
nice っていうより普通に使われる便利なマクロ(だったかな?)

>>433
assert() は引数が false なら exit() するよ


435 :デフォルトの名無しさん:2011/07/24(日) 17:52:54.70
>>434
リリースビルドの話に決まってんだろ
あとexit()じゃねーし

436 :デフォルトの名無しさん:2011/07/24(日) 18:22:42.16
>>435
abort() だっけ、どうでも良いことは忘れるタイプなんでね

だからワンオフなら許されるかもと書いた、普通はリリース前に assert() を消すか妥当なエラー処理に直すかするよ
ミッションクリティカルな業務においても実装開始時にエラー処理系の方針が固まっていない事も有る
そういう場合に assert() を用いた実装でテストを行い、エラー処理の実装を待って正規の処理に書き換える
てのはよくある話だ
そも assert() はデバッグツールの一種だから

437 :デフォルトの名無しさん:2011/07/24(日) 18:37:43.09
>>436
assertがリリースのとき消えるのすら知らない人かと思ったもんで
あと俺が死ねといってるのは、ナイスな表現とか言ってるQZの方だ
ワンオフの話は別にいい

438 :デフォルトの名無しさん:2011/07/24(日) 18:50:26.17
>>437
程度が低い奴って相手も程度が低いと決め付ける事が多いから仕方ないよねw

439 :デフォルトの名無しさん:2011/07/24(日) 18:53:31.50
なんでお互いにassertの仕様説明しあってるもんな

440 :デフォルトの名無しさん:2011/07/24(日) 18:56:24.29
完全なC言語初心者なのですが、
先日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] その他の制限:配列までは習いました。

441 :デフォルトの名無しさん:2011/07/24(日) 19:05:47.48
>>440
ネストが変だけどコピペミスしてないか?

442 :デフォルトの名無しさん:2011/07/24(日) 19:07:48.00
>>441
本当にお聞きし辛いのですが、ネスト、とはなんでしょうか、
直ぐに訂正いたしますので教えていただけると幸いです…

443 :デフォルトの名無しさん:2011/07/24(日) 19:12:46.58
>>440
>尚、自宅のパソコンのスペックがとても低く、
>JAVAの再生環境がない状況で打ち込みましたので
ideoneにJavaがあるだろ

444 :デフォルトの名無しさん:2011/07/24(日) 19:15:27.15
>>442
括弧の対応の事
これが変だからコピペミスしてソースの一部が欠損してるんじゃないかなって話

445 :デフォルトの名無しさん:2011/07/24(日) 19:16:21.07
>>409
ありがとうございます!!
すごく助かりました。

446 :デフォルトの名無しさん:2011/07/24(日) 19:17:43.30
>>443
こんなサイトがあったのですね、ソフトを導入する余地が無かったので
うちのパソコンではもうJAVAは出来ないだろうなと思ってました。
ありがとうございます。

447 :デフォルトの名無しさん:2011/07/24(日) 19:28:24.04
[1] 授業単元:C++プログラム
[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日まで

よろしくお願いします

448 :デフォルトの名無しさん:2011/07/24(日) 19:30:05.16
>>410
385 386,388: デフォルトの名無しさん [] 2011/07/23(土) 21:57:37.77
http://codepad.org/Iks8CtjT
まだ、define定義ななど習ってないので計算をしている関数とmain関数内の二つ程でやってるように教えて頂けますか?
上記の方法にプログラムは数値、演算子を取り出すだけのプログラムです。それに付け加えて頂けますでしょうか?
あと、説明もしなければならないのでコメントを入れて頂ければ助かります。宜しくお願いします。


449 :デフォルトの名無しさん:2011/07/24(日) 19:32:05.61
>>444
ネストって入れ子のことじゃないの?

450 :デフォルトの名無しさん:2011/07/24(日) 19:47:37.16
>>444
メモ帳の通りコピペは出来てるんですが、
打ち込みをどこか間違っているのかもしれません。
一応{}の対応を見ていったのですが、
私ではミスを見つけきれません…色付きで表示がせめてあれば…

451 :デフォルトの名無しさん:2011/07/24(日) 19:50:42.04
>>447
scanf() と set_price() には実体ではなくアドレスを渡すべき

452 :デフォルトの名無しさん:2011/07/24(日) 19:56:48.92
>>450
一番最初の { と return 直前の } が対応してるよ
メモ帳以外のエディター持ってないの?
最近のエディターなら『対応する括弧へジャンプ』の機能は付いてるよ
打ち込み間違いなら確認は困難かな?
推測して書いてみるけど期待はするな

453 :デフォルトの名無しさん:2011/07/24(日) 19:57:04.93
>>450
http://codepad.org/mEqlSVQeの59行目から変じゃん。
73行目return 0;も(mainはvoidだからreturn 0はおかしい)

454 :デフォルトの名無しさん:2011/07/24(日) 20:10:30.15
>>452
丁寧にお返事いただいて本当にありがとうございます。
実はメモ帳以外のエディターはDLが上手く進まず
途中で全て中断されてしまうorフリーズしてしまう為(恐らく容量不足です)
仕方なしにメモ帳で打ち込んだ次第です…。

455 :デフォルトの名無しさん:2011/07/24(日) 20:16:45.61
>>453
見ていただいたようで有難うございます。
C言語に変換したり色々しているうちにファイルが
ちょっとおかしくなっていたらしく、
存在しないはずのprintf等が入った状態になっていました

書き直してみたのですがどうでしょうか…
http://codepad.org/Ye2XkWLd

456 :デフォルトの名無しさん:2011/07/24(日) 20:32:03.92
>>455
ttp://codepad.org/G604AWOL

修正後のコードを見る前に書いた
色々、バグと見られる部分も有ったのでオリジナルとロジックが異なる
又、マインスイーパーなら白地(周りに地雷が無い)を踏んだ場合、数字が出るエリアまで自動的に開くはずだが、
そのロジックは見当たらないから組んでない
はっきりいってクリアは非常に困難だし面白くないよw

457 :455:2011/07/24(日) 20:40:34.21
度々来てすみません。
先ほど教えていただいたサイトでミスを修正してみました。
これでどうでしょうか…
(4行目だけは何が違うのかよく解らないのですが…)
http://ideone.com/vGu9R

458 :デフォルトの名無しさん:2011/07/24(日) 20:42:02.52
>>447
他のソースとか問題全部無視してエラー箇所だけつっこむと

scanf("%d",&data.burger);
set_price(&data);
の様にアドレスを渡すこと。

あと関数はポインタ渡してるからアロー演算子使わないとね。

459 :455:2011/07/24(日) 20:50:52.59
>>456
わざわざ打っていただいたようで本当にありがとうございます!!
初心者丸出しで本当にお恥ずかしい限りです…申し訳ない…。
言われてみれば元のソースが確かにゲームとして破綻してますね…
もし>>456様の仰る部分を組んだらどのようになるのでしょうか?

460 :デフォルトの名無しさん:2011/07/24(日) 20:53:08.77
>>457
多分、Main.javaというファイル名になるので、クラス名をMainにしなければいけない。

461 :デフォルトの名無しさん:2011/07/24(日) 21:01:36.18
>>457
pbulic で Jirai2 というクラスを宣言するならソースファイル名は Jirai2.jave でなくてはいけないって書いてるね
だとすると ideone では public class を含むソースはコンパイル不可能って事になっちゃうのかな?
ネストは直ってるけどロジック的な問題は残ってるし白地を踏んだ時の自動処理は無いね
そのプログラムだと最初に踏んだ場所が白地か1だったら後は同じマスを踏んでればクリアになっちゃうよw

462 :455:2011/07/24(日) 21:02:23.37
>>456
すみません追記になるのですが、
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

これが3つ並んでいるのを初めて見たのですが
1つにする事は出来ないのでしょうか?
授業で使うことがないもので、本当にすみません…

463 :デフォルトの名無しさん:2011/07/24(日) 21:05:08.61
>>462
それは無理

464 :デフォルトの名無しさん:2011/07/24(日) 21:11:23.39
>>462
ヘッダ関連はその程度の規模なら無視してかまわない

465 :455:2011/07/24(日) 21:13:00.50
>>461
すみません、ロジック的な問題とはなんでしょうか…
プログラムとしてねじれている、という解釈でもよいですか?

>>464
無視ということは削除しても構わないという事でしょうか?

466 :デフォルトの名無しさん:2011/07/24(日) 21:16:31.52
あーごめん言い方悪かったね。無視して良いって言ったのは省略できないけどこの程度の行追加は必要なことだから気にしなくて良いって言いたかった。

467 :455:2011/07/24(日) 21:17:37.93
>>466
いえ、私こそ本当に知識がなくて申し訳ないです。
そういう意味だったんですね、ありがとうございます。

468 :デフォルトの名無しさん:2011/07/24(日) 21:20:10.46
>>459
ttp://codepad.org/0paulLGQ

469 : ◆QZaw55cn4c :2011/07/24(日) 21:23:12.68
>>413
>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
深く同意し感謝いたします。

470 :デフォルトの名無しさん:2011/07/24(日) 21:23:21.44
[1] 授業単元:C++プログラム
[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日まで


471 :デフォルトの名無しさん:2011/07/24(日) 21:26:12.06
>>465
ねじれてるというか誤ってる
>>457 の42, 44行目の nokori--; は有ってはいけない
開いたマスを踏み続けても nokori--; が実行されるとゲームはクリアされてしまう
jimen[fumi]  が 2, 3 の場合は、1 と同様に既に踏んでいますのメッセージを出すべきだろう

472 :455:2011/07/24(日) 21:33:39.73
>>468
>>471
ありがとうございます!
色々な方からのコメントを見る限りプログラム自体がかなり破綻していたのに
色々と手を加えていただいたり根気強くコメントを頂き本当に嬉しい限りです…
実はこの課題がJAVAで出たのは1年前で、当時のデータ(教科書含め)を持っておらず
課題の趣旨が把握仕切れて居なかったので色々指摘していただけて助かりました。
一応明日課題の出題内容をもう一度見直して
もう1度ギリギリまでプログラムと向き合ってみます!
また明日も来るかもしれませんがそのときは宜しくお願いします…


473 :デフォルトの名無しさん:2011/07/24(日) 21:35:07.77
>>451>>458
ありがとうございました
アロー演算子はどこに使えば良いのでしょうか?

474 :デフォルトの名無しさん:2011/07/24(日) 21:40:05.95
>>469
1Gも食わせる必要有るのか?
バッファサイズを越える数字の連続が有ればオーバーフローが生じそうだけど、
オーバーフローでスタックが破壊されたらリターンアドレスが変わって変な挙動をするんじゃないか?

475 :デフォルトの名無しさん:2011/07/24(日) 21:45:18.54
>>469
> で、メモリ空間の最初の方の静的配列が書き様がまずいせいであふれて、とうとう、もう端っこのほうにあるスタックエリアまで到達してしまった。
ちげーよ低能。64ビットの端っこのスタックまで到達するわきゃねーだろ。wwww
これまでの情報から、そうじゃないことも推測できる。

476 :デフォルトの名無しさん:2011/07/24(日) 22:19:57.48
>>423
おいこら。
「欠陥ロジック」の修正もちゃんと書けよ。www

・前スレから他人に対してしつこく粘着していたのと同等の「欠陥ロジック」が自分のコードにありました。それを修正しました。

477 :デフォルトの名無しさん:2011/07/24(日) 22:38:39.05
Qの人気に嫉妬

478 : ◆QZaw55cn4c :2011/07/24(日) 23:14:56.47
>>475, >>476
>ちげーよ低能。64ビットの端っこのスタックまで到達するわきゃねーだろ。
発端は、printf() の第一引数が 0x31313131313131.... で書きつぶされた、と踏んでいます。が、どのように書きつぶされたのかが見当がつきません。

main() が 0x40,0000 スタート
shared lib が 0x8.0000,0000 スタート
bp が 0x1000?
スタックが頭?
スタック, bss, const data, text/lib の順?

479 : ◆QZaw55cn4c :2011/07/24(日) 23:21:50.30
>>476
バッファオーバーラン=前スレから他人に対してしつこく粘着していたのと同等の「糞味噌欠陥ロジック」

で勘弁してください。

480 :デフォルトの名無しさん:2011/07/24(日) 23:23:55.56
>>478
だからさ、
スタックが破壊されてリターンアドレスが腐ったら printf をコールする直前にジャンプするかもしれないでしょ
その時に引数として用意されるスタックの内容に何が入ってるか判ったもんじゃないんだからw
スタックが破壊されたらデバッガの出す情報はあんまり役に立たないんだよ

481 :デフォルトの名無しさん:2011/07/24(日) 23:30:46.25
[1] 授業単元:配列
[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;
}

482 :デフォルトの名無しさん:2011/07/24(日) 23:32:34.76
>>481
その書き方だと期限がわからないように見える

483 :デフォルトの名無しさん:2011/07/24(日) 23:53:27.28
要するにスタックオーバーフロー(再帰呼び出しの設計ミス)なんじゃん。
とんでもないものプレゼントされた依頼者が可哀想
これってリアルな世界じゃ完全に損害賠償訴訟モノだね
事故を伴った場合はへたすりゃ業務上過失致死傷に
問われかねないね。

484 :デフォルトの名無しさん:2011/07/24(日) 23:56:30.63
481です。期限は7/26です、宜しくお願いします。

485 :デフォルトの名無しさん:2011/07/24(日) 23:58:23.30
>>483
>リアルな世界じゃ完全に損害賠償訴訟モノだね

事例があるのか?



486 :デフォルトの名無しさん:2011/07/25(月) 00:06:50.93
>>485
荒らしはもう放置しなよ。
宿題スレという入門レベルに一日中粘着する奴が業務にかかわれるわけ無いじゃん。

487 :デフォルトの名無しさん:2011/07/25(月) 00:07:14.60
>>483
数式処理プログラムに1000桁越える数字を入力する馬鹿なユーザーが損害賠償裁判起こしても負けるよ
運用が常識を逸脱してるって理由で

488 :デフォルトの名無しさん:2011/07/25(月) 00:10:13.25
>>478
> 発端は、printf() の第一引数が 0x31313131313131.... で書きつぶされた、と踏んでいます。
ちげーよ、低能。

>>479
ちげーよ、低能。
> 入力値の妥当性チェックを手抜きした=前スレから他人に対してしつこく粘着していたのと同等の「糞味噌欠陥ロジック」

>>480
ちげーよ、もう一匹の低能。>>399のバックトレースは完璧。スタックは壊れてない。

489 :デフォルトの名無しさん:2011/07/25(月) 00:14:02.39
「ちげーよ」をNG推奨

490 :デフォルトの名無しさん:2011/07/25(月) 00:16:05.11
>>488
バッファオーバーランしてスタックが壊れていないとはこれ如何に?
そりゃまぁ printf() 以降のトレースは完璧だろうけどw

491 :デフォルトの名無しさん:2011/07/25(月) 00:16:20.89
>>488
なんか見てるとよほどQZにかまって欲しいみたいだね。
スレがガシガシ流れちゃうから、ツイッターのIDとか教えあってやれば。
ズバリ不具合ある箇所と、改善案出せばいいのに
コードの隅々まで見てますよアッピールがすごすぎて、引くわ。

>>480
お邪魔らしいよ。二人の間に割り込まないようにしようよ。


492 :デフォルトの名無しさん:2011/07/25(月) 00:16:25.07
>>481
http://codepad.org/OamkBIRT

493 : ◆QZaw55cn4c :2011/07/25(月) 00:19:43.32
>>483
今回は再帰呼び出しが深くなりすぎた、ということはなく、単に "111111111111111111111111111...." のようなデータに対応していなかった、ということになります。
>>413 r12 = 0x31313131,3131xx31 がいかにも。(いや、"00000000..." じゃなくてよかった。)

でも再帰呼び出しのリスクにも対処しないといけないでしょうね。
http://codepad.org/CVZ0npDo
ある程度の深さに到達すると(1024レベル、おおよそ項数が 1024 個くらい)そこで打ち切ってエラーを表示して終わります。

494 :デフォルトの名無しさん:2011/07/25(月) 00:23:06.28
>>490
バッファオーバーランでスタック壊れるって誰が決めたんだよ。低能
普通はスタックこわれるが、うんこが書いたうんこコードだからスタック壊れない。www

495 :デフォルトの名無しさん:2011/07/25(月) 00:36:33.83
[3.3] 言語:C [4] 期限:2011/7/27 問題:「ここに処理が入る」というところの入力をお願いします。
#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

496 :デフォルトの名無しさん:2011/07/25(月) 00:37:05.86
>>491
底辺派遣クンなら混ぜてあげるよ。w

497 :デフォルトの名無しさん:2011/07/25(月) 00:38:35.72
ありがとうございます、助かりました!!!>492

498 :デフォルトの名無しさん:2011/07/25(月) 00:40:27.73
>>494
厳密に言うと壊れない場合も有る
スタックが詰まれる方向によってはオーバーランした分が後から積まれたスタックに上書きする処理系も
有り得るからだ、当然、後ろに何も積まれて居なければ破壊されたとは呼ばないだろう
また、1〜3バイト程度のオーバーランならパディングの隙間に入って壊さない場合も有るだろう
しかしQzのケースはスタックを破壊してリターンアドレスが腐ったと断言して良いだろう

しかし千桁以上の数字を食わせてまでして人のコードにケチつけて楽しいのか?
虚しくならんか?
お邪魔みたいだからお暇するけどねw

499 : ◆QZaw55cn4c :2011/07/25(月) 00:42:42.53
>>494
>うんこが書いたうんこコード
static char buf[1024];
としたから。


500 :デフォルトの名無しさん:2011/07/25(月) 00:43:38.88
>>498
バカ。うんこ同等のバカ。そのバカさは底辺派遣だろ。www
> バッファオーバーランでスタック壊れるって誰が決めたんだよ。低能

501 :デフォルトの名無しさん:2011/07/25(月) 00:45:34.18
>>498
うんこはスタックが壊れないって気付いたようだぞ。www
理解し出来てねーのは底辺派遣。お前だけだ。www

502 :デフォルトの名無しさん:2011/07/25(月) 00:53:19.22
>>499
良く見て無かったわ、スマン
それでヒープ側から押しよせてきたとか言ってたのね
ちょっと吊ってくる

503 :デフォルトの名無しさん:2011/07/25(月) 00:57:58.59
プログラムスタックとリターンスタックが別々のアーキテクチャなんて
普通に存在している事もしらないQ

さすが無職

504 : ◆QZaw55cn4c :2011/07/25(月) 01:15:05.93
>>503
6809? 68000?
最近の事情はしりませんが、x86 もセグメントレジスタ増えましたし、ありうることだと思います。

505 :デフォルトの名無しさん:2011/07/25(月) 01:23:29.96
>6809 68000
>最近の事情

お前どれだけオッサンなんだよ

506 : ◆QZaw55cn4c :2011/07/25(月) 01:25:56.31
失礼、68000 はちゃいました。

507 :デフォルトの名無しさん:2011/07/25(月) 01:27:27.27
>>506
68000にSSPとUSPがあった事もしらないバカ

508 :デフォルトの名無しさん:2011/07/25(月) 01:29:37.72
>>507
USPはシステムコールが掛かると使われる
本当はこんなの必要ない物だったけどな
それに仮想記憶が使えないとか致命的だったろ

509 :デフォルトの名無しさん:2011/07/25(月) 01:35:47.51
逆だ逆
SSPがスーパバイザモード、つまり特権モード用、USPが通常モード用だった
あの時代にスタックだけでも保護モードがあったのは先進的だったが、残念ながら
ユーザー領域にはセグメントの考え方がなく保護もされなかった

510 :デフォルトの名無しさん:2011/07/25(月) 01:38:33.88
>>495
呼び出し側が 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;

なんか美しくないな



511 :デフォルトの名無しさん:2011/07/25(月) 01:55:42.13
[1] 授業単元:C言語演習
[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] その他の制限:特になし
お手数ですが、どなたかよろしくお願いします!

512 :奈緒:2011/07/25(月) 02:31:43.68
[1] 授業単元:ポインタ&配列
[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です。

513 : ◆QZaw55cn4c :2011/07/25(月) 02:57:34.45
>>511
http://ideone.com/bxtlR

514 : ◆QZaw55cn4c :2011/07/25(月) 03:10:41.17
>>512
http://codepad.org/CGPKW98H

515 :デフォルトの名無しさん:2011/07/25(月) 03:28:49.59
>>512
http://codepad.org/Bkwvsj4t

回答既に出てたか

516 :デフォルトの名無しさん:2011/07/25(月) 03:35:33.59
>>511
http://codepad.org/v0lfo7gJ

517 :デフォルトの名無しさん:2011/07/25(月) 03:43:37.28
>>514
こんな時間に起きてて今日は仕事は遅刻するのか?

518 : ◆QZaw55cn4c :2011/07/25(月) 04:41:24.33
>>488
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 環境はよくわかりませんが。

519 : ◆QZaw55cn4c :2011/07/25(月) 04:42:38.67
>>517
歩いて 3 分だから‥‥‥ 2 時間くらいは寝れるでしょう。おやすみなさい。

520 :デフォルトの名無しさん:2011/07/25(月) 05:34:40.64
>>447
http://ideone.com/F7EdB

ポインタと構造体勉強したほうがいいねー

521 :デフォルトの名無しさん:2011/07/25(月) 05:50:57.41
>>470
作ろうと思ったけど与えられるデータ10*10個どう扱えば良いか(例えばファイルから読み込み?)
わからんからその辺ちゃんとしないと誰もやってくれないかと。言わんとしてることは構造体ネストして作るんだろうけどねー

2分検索はググればわかると思うんだけどまずデータをソートしてその中央値を見つける。
探したいデータが中央値より大きいなら中央値より小さい数は探さなくていい。逆も然りで検索量を減らす事ができる。
って考えの検索法。

522 :デフォルトの名無しさん:2011/07/25(月) 06:46:24.65
>>521
同一身長者がいる場合などは厄介だな。

523 :デフォルトの名無しさん:2011/07/25(月) 06:58:34.38
データが10*10個とか、構造体とか、どっから出てくるんだろう

524 :デフォルトの名無しさん:2011/07/25(月) 08:20:46.22
QZは今熟睡中なんだろな

525 :デフォルトの名無しさん:2011/07/25(月) 08:30:49.94
>>523
>どちらも10個の要素を持つ配列であり、それぞれは10人の身長と氏名のデータとして持つ。

ここじゃね?
問題文がおかしい気がする

526 :デフォルトの名無しさん:2011/07/25(月) 08:48:56.07
身長をデータとして持つ10個の要素からなる配列Nr[10]
氏名をデータとして持つ10個の要素からなる配列*Na[10]

527 :デフォルトの名無しさん:2011/07/25(月) 08:50:33.21
int Nr[10];
char Na[10][64]; // or char *Na[10];

このように読み取れないなら、日本語の勉強しなおせ。

528 :デフォルトの名無しさん:2011/07/25(月) 09:00:42.68
>>511
例えば、x=5,y=3のとき、x=(00000101),y=(00000011)だと、
ハミング距離はd=7にならないかな。

529 :528:2011/07/25(月) 09:06:08.43
ごめん、論理的排他和か。2です。すみません。


530 :デフォルトの名無しさん:2011/07/25(月) 09:08:55.74
いいえ、排他的論理和です。

531 :デフォルトの名無しさん:2011/07/25(月) 09:09:14.77
>>200
遅くなりました。
問題文その他から判断してみましたがはっきりと明示されてはいませんでした。
ですが、おそらくランダムに変える必要はないと思います。
ありがとうございました!

532 :528:2011/07/25(月) 09:28:03.45
>>530
そうでした。端。

533 :デフォルトの名無しさん:2011/07/25(月) 09:45:26.20
>>470
http://ideone.com/u4TUp

534 :デフォルトの名無しさん:2011/07/25(月) 10:03:40.43
>>200
プログラムコンパイルは通ったんですが、実行できませんでした。
コンソールから引数指定する必要はないですよね?

535 :デフォルトの名無しさん:2011/07/25(月) 10:12:42.72
>>509
>あの時代にスタックだけでも保護モードがあったのは先進的だったが、残念ながら
>ユーザー領域にはセグメントの考え方がなく保護もされなかった

ユーザーモードとスーパーバイザモードではメモリーアクセス時のファンクション
コードが違うから、適切な外部回路があれば、保護することができる。

逆に、スタックも通常のメモリーアクセスだから適切な外部回路がないと保護もさ
れない。

よく理解もせずに、適当なこと書くなよ。

536 :デフォルトの名無しさん:2011/07/25(月) 10:18:11.87
>>534
/*** この部分を自分で書く ***/
この記述があるところだけ書き加えました。

コンソールから引数指定する場合は
mainを手直しすると良いのではないかな?

537 :デフォルトの名無しさん:2011/07/25(月) 10:41:23.01
>>536
引数指定はする必要はないはずなんですが文字化けエラーが起こってしまい
result.datが生成できていない感じです。

538 :デフォルトの名無しさん:2011/07/25(月) 10:57:09.15
>>537
実行したときに、

><< 世代数 : 1 >>
>平均適応度 : 4.400000
>最大適応度 : 7.000000

このような表示が出てきていませんか?
それと同じ内容がファイルに出力されるはずですが。

出ていない場合、表示内容を教えて下さい。

539 :奈緒:2011/07/25(月) 13:22:39.57
ほんとにありがとうございます!>514・515

540 :455:2011/07/25(月) 15:03:45.70
昨日こちらでお世話になった>>440です。
正しい課題のソースが手に入ったのでまたこちらに来ました。
以下が正しいソースコードになります。
(おそらくこちらなら皆さんが指摘してくださったロジック的な問題などは無いかと思います)
http://ideone.com/0M3Vi

これをC言語に変換しろというのが課題です。
何卒宜しくお願いいたします。

541 :デフォルトの名無しさん:2011/07/25(月) 15:12:11.56
>>540
[3.2] 学習用C言語開発環境
これ何使ってる?

542 :455:2011/07/25(月) 15:23:36.53
>>541
いつも使っているエディタ+コンパイラのことでいいんですよね?
そのままの名前のものを使っています…
Verが0.0.9.0です。

543 :デフォルトの名無しさん:2011/07/25(月) 15:33:40.91
>>540
http://ideone.com/Vglan

544 :455:2011/07/25(月) 15:44:22.30
>>543
ありがとうございます!助かりました!
少しお尋ねしたいのですが
・ #define RAND(n) (rand() / (RAND_MAX / (n) + 1)) はどういう意味なのでしょうか?
この課題の提出の際に口頭で問題が出されるので
念のために教えていただけると幸いです

545 :デフォルトの名無しさん:2011/07/25(月) 16:31:55.12
>>544
> #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))
としてもよい。

546 :デフォルトの名無しさん:2011/07/25(月) 16:33:03.62
>>544 括弧が抜けた
> 15 n = rand() / (RAND_MAX / 11);

547 :デフォルトの名無しさん:2011/07/25(月) 16:35:59.03
すまん >>545-546は、ウソだ。

13 int n = rand() / (RAND_MAX / 10 + 1);
15 n = rand() / (RAND_MAX / 10 + 1);
が正しい。

548 :デフォルトの名無しさん:2011/07/25(月) 17:51:41.95
[1] 授業単元:計算機プログラミングU
[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をお願いします

お願いします


549 :470:2011/07/25(月) 18:25:34.04
>>470です 変な誤解を与えるような書き方をしてすみまません
例として以下のような
Nr  Na
0 120 taro
1 145 tinta
2 以下略 以下略
3
4
5
6
7
8
9
とソートして二分検索で求めたいです


550 :470:2011/07/25(月) 18:26:36.81
  Nr Na
0 120 taro
1 145 tinta
2 以下略 以下略
3
4
5
6
7
8
9
ずれましたすみません

551 :455:2011/07/25(月) 18:28:27.43
>>547
お返事が遅くなってすみません、回答ありがとうございました
この課題に対して口頭で問題が出されるのでその対策をしたいと思います。
もしまたコードについて解ら無くなった時はこちらに訪れますので
ご迷惑かもしれませんが何卒宜しくお願いいたします。

552 :>>447:2011/07/25(月) 19:00:17.23
>>520
ありがとうございます!
私の勉強不足です
もっと勉強して理解できるようになります

553 :デフォルトの名無しさん:2011/07/25(月) 19:15:57.18
>>540
俺が昨日の最初に書いたコードと大きな違いは無いよ
・メッセージが少し違う
・隣に地雷が有るマスを踏んだら『オットット危ない』のメッセージが出る
なので俺はパス


554 :デフォルトの名無しさん:2011/07/25(月) 19:25:25.78
[1] ネットワークシステム(TCP)
[2] 問題文(含コード&リンク): チャットシステムサンプルを用いてパスワード設定(初めて入室したクライアントに4文字でパスワードを設定させ、
以降に入るクライアントにパス入力を求める。パスが正しければ接続。パスが正しくなければ接続せずに終了)と自身の発言時にecho。
また、発言時にIPアドレスを標準出力させる。
ex.
211.9.36.148:こんな感じで
211.9.36.148:こんな感じで
172.31.10.96:出力されます




555 :554:2011/07/25(月) 19:30:27.99
3] 環境
[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
よろしくお願いします


556 :554:2011/07/25(月) 19:35:39.07
直リンがダメみたいなのでこちらに上げました。
よろしくお願いします。
http://codepad.org/1AQxUk1g

557 :デフォルトの名無しさん:2011/07/25(月) 19:52:17.92
[1] 授業単元:プログラミング基礎
[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);

よろしくお願いします

558 :デフォルトの名無しさん:2011/07/25(月) 19:56:23.63
>>470,549,550
>> 533 に回答してる人が居るよ。

559 :デフォルトの名無しさん:2011/07/25(月) 20:04:34.37
>>557
>4つの頂点座標の引数

点が4つあるんじゃなくて、例えばx1,y1,x2,y2みたいに、
2点の座標値が4つ渡されるということだよね?

560 :デフォルトの名無しさん:2011/07/25(月) 20:10:09.29
じゃないとできないよね。んでxとy取って3平方の定理やらなんやら使うと。

561 :470:2011/07/25(月) 20:10:50.91
>>558さんありがとうございます 気付きませんでした
>>533さん回答ありがとうございます 

562 :496:2011/07/25(月) 20:28:09.35
[1] 授業単元:アルゴリズムとデータ構造
[2] 問題文(含コード&リンク):選択ソートの交換、比較回数を表示するプログラム
[3] 言語:C
[4] 期限:7/26

http://ideone.com/CDOGT
エラーが何を指しているのかわからず困っています

563 :デフォルトの名無しさん:2011/07/25(月) 20:29:50.49
>>577

http://ideone.com/FzOxP

564 :デフォルトの名無しさん:2011/07/25(月) 20:31:20.09
>>562
selection_sortのプロトタイプ宣言がない

565 :デフォルトの名無しさん:2011/07/25(月) 20:33:42.06
失礼。>>563>>557

>>562
とりあえずselection_sortをプロトタイプ宣言してないね

566 :デフォルトの名無しさん:2011/07/25(月) 20:38:44.24
>>565
>4つの頂点座標の引数を与えると線の長さを返す関数を作成して下さい。
>計算された長さはdouble型で返されるものとする。

だから、関数にしてあげないと

567 :デフォルトの名無しさん:2011/07/25(月) 20:47:21.18
>>565

>[3.3] 言語:C++

568 :デフォルトの名無しさん:2011/07/25(月) 20:54:26.86
>>559-560
その通りです
誤解を招いてしまい申し訳ない

569 :デフォルトの名無しさん:2011/07/25(月) 20:57:27.33
>>566
ごめん俺も今気づいた。

>>557
http://ideone.com/w0ZSP

570 :デフォルトの名無しさん:2011/07/25(月) 20:58:35.30
[2] 問題文(含コード&リンク): 以下の性能を持つ名簿プログラムを作成せよ
氏名、年齢、住所、電話番号、メールアドレス、郵便番号を持つ構造体を使用する
一覧を表示可能である
作成したデータはファイルとして保存、読み込みができる
構造体の追加、削除が可能である
任意の項目を修正可能である
任意の項目をキーとして検索、ソート(昇順・降順)が可能である

[3] 環境
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 7/28

お手数ですがよろしくお願いします

571 :デフォルトの名無しさん:2011/07/25(月) 21:02:27.27
>>569
ありがとうございます

572 :デフォルトの名無しさん:2011/07/25(月) 21:03:23.83
二乗するんだからabsいらんだろ
っていうか、double型の変数をdoubleにキャストするってなんの冗談?

573 :デフォルトの名無しさん:2011/07/25(月) 21:09:07.09
absいらないね。すまん・・
>>563見てもらえばわかるけど最初diff〜はintで作ってて後からdoubleにしたから消し忘れた(´Д`)

574 :デフォルトの名無しさん:2011/07/25(月) 21:12:36.54
馬鹿なんだろ

575 :デフォルトの名無しさん:2011/07/25(月) 21:18:10.60
>>538
なぜかさっきはできなくて改めてやったらresult.datが自動生成されるようになりました。
しかしコンソール上では文字化けが起こってしまい、こんな感じに表示されます。
�‘̐� : 5
���`�� : 10 bit
�ˑR�ψٗ� : 0.100000





576 :デフォルトの名無しさん:2011/07/25(月) 21:22:19.78
> pow((double)diff_x, 2)
プロトタイプあるからdoubleに変換されるのに。キャスト大好き底辺派遣だな。
第2引数の2はなんでキャストしないんだ? www

577 :デフォルトの名無しさん:2011/07/25(月) 21:22:41.77
>>575
実行環境の漢字コードを調べて、
それにソースを変換してから、
コンパイル・実行してみて

578 :デフォルトの名無しさん:2011/07/25(月) 21:30:56.15
>>557
http://codepad.org/KRyTZEQX

579 :455:2011/07/25(月) 21:33:03.21
度々訪れてすみません。
http://ideone.com/Vglan で書いていただいたコードの
srand(time(NULL)); を学校で扱ったことがまだないのですが
何か違うものに置き換える事などは可能なのでしょうか?…

580 :デフォルトの名無しさん:2011/07/25(月) 21:51:34.75
モンテカルロ法を使って円周率を求めるものなんですが指定されたプログラム(下に載せました)に
(1)全試行回数と結果を表示する間隔をscanf()で読みそれにしたがって処理が進むようにする。
(2)各途中経過で求めたπの近似値のうち最もπの真値(=3.14159)に近い値とその時の試行回数を最後に表示させる。
という2つの点を加えて改良しなければならないのですがどなたか教えていただけませんか?



581 :デフォルトの名無しさん:2011/07/25(月) 21:53:52.91
#include<stdio.h>
#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言語初心者で全く分かりません。
なのでココに載せたものを利用して
ソースプログラムを書いていただけると幸いです。



582 :デフォルトの名無しさん:2011/07/25(月) 21:55:05.29
質問用のテンプレ使えよ

583 :デフォルトの名無しさん:2011/07/25(月) 21:55:53.29
>>581
>>2

584 :デフォルトの名無しさん:2011/07/25(月) 21:59:57.19
>>579
srandは乱数のタネ(初期値)を設定する、randと組みだからそれを使わないという方法は無い。
実行の度に異なるタネを与えないと、毎回同じ場所に地雷が配置されてしまう。
タネとしてtimeで現在時刻を取得している。

選択肢:
0 そのままtimeを使う
1 キーボードからタネを入力させる。(入力したタネで配置が決まってしまうのでゲームにならない)
2 プログラムの起動時刻から最初の入力までの時間をタネにする。多分習っていない
3 プロセス番号(getpid())。多分習っていない。
4 /dev/urandomを読む。多分習っていない。

585 :デフォルトの名無しさん:2011/07/25(月) 22:02:53.60
>>584
5 初期化していない変数から rand seed を作る

586 :デフォルトの名無しさん:2011/07/25(月) 22:03:46.69
>>585
多分習っていない。

587 :デフォルトの名無しさん:2011/07/25(月) 22:04:49.44
>>585
大抵同じ値になる。

588 :デフォルトの名無しさん:2011/07/25(月) 22:05:51.25
初期化していない変数のランダム性って、どの程度期待していいの?w

589 :デフォルトの名無しさん:2011/07/25(月) 22:07:03.02
バッファオーバーフローを応用してseedを設定してやればいいんじゃね

590 :デフォルトの名無しさん:2011/07/25(月) 22:08:41.67
>>587
同じになる?
#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;
}


591 :455:2011/07/25(月) 22:09:12.89
>>584

ありがとうございます、>>584さんの仰るとおり
見事にどれも習ってないですね、このまま使う方が良さそうです。
いかに自分が初歩しか習ってないかを今ひしひしと実感しています…
RANDと組であるとの事なのですが、は何を意味する関数(?)なのでしょうか。

592 :デフォルトの名無しさん:2011/07/25(月) 22:09:19.15
>>564-565 
ありがとうございます
ちゃんとできました

593 :デフォルトの名無しさん:2011/07/25(月) 22:13:51.58
>>590
VCのデバッグビルドならフフフが入ってるから seed は 0 になる気がする

594 :デフォルトの名無しさん:2011/07/25(月) 22:19:23.65
更新が頻繁な2chの掲示板の書き込みバイト数を種にする

595 :デフォルトの名無しさん:2011/07/25(月) 22:28:21.92
>>554
プログラムの動作確認した時に -s で動かしたホストと -c で動かしたホストは同じはずだよ

main() の中で -c の場合、gethostbyname( "localhost" ); で得たIPを用いて接続してるから、
サーバーIP = クライアントIPが前提となっている
つまりこのプログラムにおいては『すべてサーバーのIPが出力されてしまいます』は正常な動作だ

596 :デフォルトの名無しさん: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にはなりませんよね
恐らく自分の解釈が間違っているのだと思うのですが
教科書にはそれ以上の記述がないのでわかりません。
誰か噛み砕いて教えてください。

597 :デフォルトの名無しさん:2011/07/25(月) 22:38:50.51
>>596

total=1+2+3+4+5+6+7+8+9+10;
iの値はforのループ一回回る毎に1増えている。

598 :デフォルトの名無しさん:2011/07/25(月) 22:44:02.04
i++がミソ。インクリメントでググれ

599 :デフォルトの名無しさん:2011/07/25(月) 23:04:57.28
[3.3] 言語:C [4] 期限:2011/7/27 問題:「ここに処理が入る」というところの入力をお願いします。void型の関数としてleft_rotate2の入力お願いします
#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

600 :デフォルトの名無しさん:2011/07/25(月) 23:05:45.53
教科書にfor(a;b;c)のa, b, cのそれぞれの意味について書いてないとは考えにくい
>>596がアホなだけでは?

601 :デフォルトの名無しさん:2011/07/25(月) 23:07:38.81
>>591
randは疑似乱数を発生する。疑似乱数とは乱数のように見えるけれど、
実際は特定のアルゴリズムで計算される数列。
それの初期値を設定するのがsrand

602 :デフォルトの名無しさん:2011/07/25(月) 23:17:01.13
>>599
>>510 で書いたぞ
その例題の『ここに処理が入る』だけを書いても動かないぞ
void 型の left_rotate2() の戻り値を print_bit() の引数として渡してるから
出題者の程度が知れる問題だなぁ

603 :デフォルトの名無しさん:2011/07/25(月) 23:24:29.74
[1] 授業単元:C言語プログラミング
[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文だけで行えますか?宜しくお願いします。

604 : ◆QZaw55cn4c :2011/07/25(月) 23:28:42.01
>>448
http://ideone.com/ly4Ru

>>423, >>493
0割りがありましたので修正しました。
http://ideone.com/2sY2Y

605 : ◆QZaw55cn4c :2011/07/25(月) 23:29:21.99
>>603
>>604

606 :デフォルトの名無しさん:2011/07/25(月) 23:31:01.51
電卓問題多いな

607 :デフォルトの名無しさん:2011/07/25(月) 23:32:01.78
電車問題に見えてドキッとした

608 :デフォルトの名無しさん:2011/07/25(月) 23:33:28.11
同じ人じゃないの?

609 :デフォルトの名無しさん:2011/07/25(月) 23:42:28.99
>>608
度々すみません。
同じ人です。今日の講習で出された宿題です。
たぶん、今回で電卓の宿題は終わると思います。宜しくお願いします。

610 : ◆QZaw55cn4c :2011/07/25(月) 23:45:13.10
>>603
失礼。私ができなかった「÷が×より前にあれば、数値を移動する処理」はすでに作ってくださっていたのですね。感謝。
http://ideone.com/vRxYn

611 : ◆QZaw55cn4c :2011/07/25(月) 23:47:02.21
>>609
次の日なればヒントをくれるんですね。あはは。
今回 >>610 はかなり題意に沿ったものとなっているはず、です。

612 :デフォルトの名無しさん:2011/07/26(火) 00:03:33.81
>>610
作って頂いて申し訳ないんですが、下記のプログラムをいじらずに計算と計算結果を表示するプログラムを追加して頂けますか?宜しくお願いします。
http://codepad.org/DSBxwIe8
出来ればif文、for文で追加して頂けますか?ポイントと関数を作るところは習っていないので



613 :デフォルトの名無しさん:2011/07/26(火) 00:13:31.20
>>577
nkfコマンドでunicode(UTF-8)にしてみましたが改善されませんでした。
一応プログラム敵には何の問題もないのですがもやもやしています。
調べて見ましたが他の問題候補がありませんでした。
どうしたもんでしょう?

614 :デフォルトの名無しさん:2011/07/26(火) 00:20:45.17
eucじゃなくて?

615 :デフォルトの名無しさん:2011/07/26(火) 00:20:47.36
>>613
telnetでホストに接続してるんだよね?
まさかと思うけど、使っているtelnetソフトの
漢字コードの設定はできてる?

616 :デフォルトの名無しさん:2011/07/26(火) 00:25:59.38
÷が×より前にあれば、数値を移動するってどういう意味があるの

617 :デフォルトの名無しさん:2011/07/26(火) 00:30:59.68
>>616
あえてint型で宣言してますので最初に割り算を行うと、割りきれない値がくると結果がおかしくなる。
8/3*3=8だが、わり算を先に行うと6になってしまう。
ですので割り算を最後に行わなければならない。

618 :デフォルトの名無しさん:2011/07/26(火) 00:36:39.74
>>617
1,2行目と3行目がつながらない

619 :デフォルトの名無しさん:2011/07/26(火) 00:38:37.05
逆にすればつながる

620 :デフォルトの名無しさん:2011/07/26(火) 00:42:48.53
>>618
すみません。8/3*3を並び変えないで行うと8/3=2.6666で端数が切られ、2*3=6になりますので、8*3/3に並び変えて24/3=8で行うイメージらしいです。

621 : ◆QZaw55cn4c :2011/07/26(火) 00:49:21.29
>>612
こんな感じでどうですか?
http://codepad.org/dNEJ0TvJ

622 :デフォルトの名無しさん:2011/07/26(火) 00:49:32.44
>>620
以下の結果はどうすれば良い?
1/2
1/2+1/2
1/2+1/3

623 :デフォルトの名無しさん:2011/07/26(火) 00:54:42.26
[1] 授業単元:C言語演習
[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] その他の制限:特になし
どなたか、よろしくお願いします。

624 : ◆QZaw55cn4c :2011/07/26(火) 01:09:50.08
>>623
http://ideone.com/8S6yH

無論、最初は先生にしたがって学ぶべきですが、int をわざわざ T に置き換えている(typedef int T;) は、私は意味がある、と思っています。参考までに。

625 :デフォルトの名無しさん:2011/07/26(火) 01:28:22.67
>>621
> >>612
> こんな感じでどうですか?
> http://codepad.org/dNEJ0TvJ
本当に何度もすみません。
scanfでは出来ませんか?
本当に面倒かけて申し訳ありません。

626 :デフォルトの名無しさん:2011/07/26(火) 02:07:28.95
>>623
ああ、かわいそうに。

QZっていうのはここに巣食ってるクズだから、そんなクズが作ったの
提出したら再提出になっちまうのもあたりまえ。
>>624もカスだから、そのまま提出したらダメ食らうよ。

でも、クズのコードなおす気はないので、悪いのに引っかかったと思って、
自分でなおす事を考えた方が良い。

627 :デフォルトの名無しさん:2011/07/26(火) 02:27:45.85
[1] 授業単元:プログラミング演習 1
[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日
よろしくお願いします。

628 : ◆QZaw55cn4c :2011/07/26(火) 03:13:52.07
>>627
http://ideone.com/5TCYX

629 : ◆QZaw55cn4c :2011/07/26(火) 03:19:44.51
>>625
http://ideone.com/onugT

630 : ◆QZaw55cn4c :2011/07/26(火) 03:21:41.22
>>626
そうですか。すみません。
よろしければ、>>623 のために直してやっていただけませんか?

631 :デフォルトの名無しさん:2011/07/26(火) 03:31:58.30
↑スレ違い

632 :デフォルトの名無しさん:2011/07/26(火) 04:33:24.00
>>615
いえ、WinとLinuxデュアルブートにしてるのでtelnet接続ではないです。
ここはCの宿題坂なのでこれ以上はあきらめときます。


633 :デフォルトの名無しさん:2011/07/26(火) 04:38:05.07
>>627
unsigned 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; }

634 :デフォルトの名無しさん:2011/07/26(火) 05:18:43.40
>>615
いえ、WinとLinuxデュアルブートにしてるのでtelnet接続ではないです。
ここはCの宿題坂なのでこれ以上はあきらめときます。


635 :デフォルトの名無しさん:2011/07/26(火) 05:20:57.57
>>615
void show_gene(int t, int gene[POP_SIZE][G_LENGTH],double fitness[POP_SIZE],FILE *fp)
関数で個体の値・遺伝子の表示はしなくても問題ないのでしょうか?


636 :デフォルトの名無しさん:2011/07/26(火) 07:27:42.80
>>622
1/2 = (int)0.5 = 0
1/2+1/2 = 2/2 = 1
1/2+1/3 = (3+2)/6 = (int)0.833 = 0
でいいんでない?

637 :デフォルトの名無しさん:2011/07/26(火) 08:12:03.83
分数を読み取って分母を合わせろというのか
ここで質問するような人には確実にできない宿題だな

638 :デフォルトの名無しさん:2011/07/26(火) 08:41:30.09
[1] 授業単元:C言語プログラミング
[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でお願いします。
宜しくお願いします。

639 :ディ:2011/07/26(火) 08:54:30.01
>>622
1/2 = 0
1/2+1/2 = 0 + 0 = 0
1/2+1/3 = 0 + 0 = 0
でいいんでない?
8/3 が 2 だということなら。

640 :デフォルトの名無しさん:2011/07/26(火) 09:23:29.84
因子の単位で / の演算優先順位を下げるのか (>>639)
項の単位で / の演算法を変えるのか (>>636)

641 :デフォルトの名無しさん:2011/07/26(火) 09:25:44.85
>>639
つまり
1/2+1/2=0
1/2*2=1
ということか

642 :デフォルトの名無しさん:2011/07/26(火) 09:33:36.19
>>624
その意味には興味が有るので教えて欲しい

643 :デフォルトの名無しさん:2011/07/26(火) 09:45:50.78
>>638
http://codepad.org/EGE8MIba

644 :デフォルトの名無しさん:2011/07/26(火) 09:50:18.57
>>638
1199や1158もできるようにすんの?

645 :ディ:2011/07/26(火) 09:57:53.19
分数の足し算なら小学生で習ったし、8÷3=2.666 と習ったが、
<int>(8÷3)=2 は大学レベル。 こうゆう時学歴が物を言うと。

646 :デフォルトの名無しさん:2011/07/26(火) 10:13:30.81
>>644
できないのはNG表示で良いです。
説明も出来なければならないので考え方も教えて頂けますか?
宜しくお願いします。

647 :デフォルトの名無しさん:2011/07/26(火) 11:09:08.13
scanfで1234と数字を入れてエンターキーを押したら配列num[0]からnum[3]までに
num[0]=1 num[1]=2 num[2]=3 num[3]=4と入るプログラムを教えて頂けますか?

648 :千夏:2011/07/26(火) 11:59:12.15
[1]C言語課題(夏休み期間中)
[2]M,Nを与えられた自然数(キーボードから読み込む)とする。MxNのサイズの迷路を作り表示する。
ただし壁は*、道は+であらわすこと

表示例:M=12 N=5
*+**********
*+**+++++++*
*+****+***+*
*++++++***++
************
[3]Windows Vista・Visual studio 2008・C言語
[4] 8/31まで
[5]当然だが、正解経路は一つに決まること

お願いします

649 :デフォルトの名無しさん:2011/07/26(火) 12:17:31.49
すみませんどなたか>>548をお願いします

650 :デフォルトの名無しさん:2011/07/26(火) 12:25:07.39
>>649
頻繁な催促はよしなさい

651 :デフォルトの名無しさん:2011/07/26(火) 12:29:09.34
>>650
申し訳ありませんでした

652 :デフォルトの名無しさん:2011/07/26(火) 15:09:11.44
>>649
電気回路の問題なんて専門的(高校物理程度かな)過ぎてここのドカタじゃ解けない
じゃないか

653 :デフォルトの名無しさん:2011/07/26(火) 15:44:30.18
>>652
拒否反応起こして問題読んでないだろ

654 :デフォルトの名無しさん:2011/07/26(火) 18:03:36.21
問題の解法自体はぐぐればでてくるけどレポートはめどいな
まあ、単位落とそうが知ったこっちゃ無いし

655 :デフォルトの名無しさん:2011/07/26(火) 18:04:47.72
>>648
そのサイズで作り得る全ての迷路をあげる問題?

656 :デフォルトの名無しさん: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関数内だけに追加お願いします


657 :デフォルトの名無しさん:2011/07/26(火) 18:32:36.62
>>656
本当に何度もすみません。皆さんの力を借りないと解けないような問題です。宜しくお願いします。

658 :デフォルトの名無しさん:2011/07/26(火) 19:30:20.89
助けてください。5つあります。
明日提出期限です。

入力した数の階乗を計算するプログラムを作れ。
nの階乗とは、n!と書いて、次のような計算をするものである。
n! = n × (n – 1) × (n – 2) × … × 2 × 1

ヒント)関数 fact(n)を n!を計算するプログラムとする。
この時、
n! = n × (n – 1)!
だから、fact(n) を計算するには、fact(n-1)を計算してから、nをかければ良い。



659 :ディ:2011/07/26(火) 19:52:09.80
>>658 コンパイラは何を使うのか? C++ か?

660 :デフォルトの名無しさん:2011/07/26(火) 19:54:50.89
>>659 cです。 すいません。点プレ通りじゃなくて 明日提出なので焦って舞うs。

661 :デフォルトの名無しさん:2011/07/26(火) 19:55:24.59
入力された数を16進数で表示するプログラムを作れ。但し、文字(数字やアルファベット)を表示するのに関数 putchar()を使うこと。

(例)hexという名前のプログラムを作り、217を入力した場合に以下のようになる。
Q:\hello> hex
Input? 217
Kotae = D9 (注) 217 == 13*16 + 9
Q:\hello>


(注意)この例でInput? や Kotae = の部分は入力したものではなく、プログラムが表示した部分である。これらは、出来るだけ分かりやすいものにすることが望ましい。

cでお願いします。


662 :デフォルトの名無しさん:2011/07/26(火) 19:57:46.00
次の式を計算するプログラムを作れ。
Sum = 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になる。


663 :デフォルトの名無しさん:2011/07/26(火) 20:02:25.88
[1]C言語単位認定課題
[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]今夜まで

お願いします、

664 :デフォルトの名無しさん:2011/07/26(火) 20:02:41.97
どういう計算したら385になるんだろう

665 :デフォルトの名無しさん:2011/07/26(火) 20:05:06.05
>>658

http://ideone.com/BUpP3

666 :デフォルトの名無しさん:2011/07/26(火) 20:17:06.27
>>663
http://ideone.com/rtOOM

667 :デフォルトの名無しさん:2011/07/26(火) 20:18:52.51
>>656
お願いします。本当に切羽詰まってます。

668 :デフォルトの名無しさん:2011/07/26(火) 20:26:14.87
>>664
多分n^2という書き方が分からなくてn2とか書いちゃったんだろ

669 :デフォルトの名無しさん:2011/07/26(火) 20:37:51.41
>>655
与えられた迷路を脱出する問題じゃないかな。


670 :デフォルトの名無しさん:2011/07/26(火) 20:45:38.27
> Sum is 385 12 + 22 + 32 + 42 + 52 + 62 + 72 + 82 + 92 + 102 を計算すると385になる。

杏仁豆腐 杏仁豆腐
この白く甘いスイーツが
豆腐だと
今の僕には理解できない

671 :デフォルトの名無しさん:2011/07/26(火) 20:48:50.69
次の式を計算するプログラムを作れ。
Sum = 12 + 22 + ... + N2 (注意) Nの値は、キーボードから入力できるようにすること。
すいません 385計算ミスでした。
相変わらずjk巷のかわいいハァハァ

672 :デフォルトの名無しさん:2011/07/26(火) 21:05:02.83
初期値がわからん

初期値2でNまで10ずつ足せば良いの?

673 :デフォルトの名無しさん:2011/07/26(火) 21:13:56.93
>>661
http://ideone.com/4U6lp
こんなんでいいのかな

674 :デフォルトの名無しさん:2011/07/26(火) 21:14:30.53
Σ(i*10+2) | i=1〜N
というふに読めるが… はて

675 :デフォルトの名無しさん:2011/07/26(火) 21:15:40.81
>>673>>662だった

676 :デフォルトの名無しさん:2011/07/26(火) 21:22:29.56
デフォルトの名無しさん殿 誠にかたじけない。
できればかわいい女の子のm字開脚の写真を貼りたいのだが、拙者持ってない。
本当にありがとう。

677 :デフォルトの名無しさん:2011/07/26(火) 21:25:53.56
>>661
http://ideone.com/SzxVh
ネット流用

678 :デフォルトの名無しさん:2011/07/26(火) 21:46:44.65
>>656
>> 638向けに作ってたやつです。
好きに加工して下さい。

679 :デフォルトの名無しさん:2011/07/26(火) 21:47:39.35
>>678
http://codepad.org/SaPkBvDJ

680 :デフォルトの名無しさん:2011/07/26(火) 21:56:00.79
>>661

ttp://codepad.org/1qweX3Gx

681 :デフォルトの名無しさん:2011/07/26(火) 21:58:14.95
>>679
作成して頂いて誠に申し訳ありませんが、ポインタと別の関数を作るのは習っておりませんのでmain関数内だけで行う事は可能でしょうか?
本当に申し訳ありません。

682 :デフォルトの名無しさん:2011/07/26(火) 22:03:31.98
[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 10:00まで
[5] 特になし

683 :デフォルトの名無しさん:2011/07/26(火) 22:20:06.42
>>676 先ほどの者です。 課題は通年なので夏開けでした。 急いで作ってくれた方申し訳ないです。
本当にありがとうございました。 

684 :デフォルトの名無しさん:2011/07/26(火) 22:31:00.83
>>682
http://codepad.org/z459eTS5

685 :デフォルトの名無しさん:2011/07/26(火) 22:36:50.03
>>684
わざわざありがとうございます。
せっかくコーディングしていただいて申し訳ないですが、
もし可能であればビット演算を利用していただけないでしょうか?

686 :デフォルトの名無しさん:2011/07/26(火) 22:36:55.83
>>658
GMPやNTLが多いのでたまには別のライブラリで、と言うことで書いてみた
ttp://codepad.org/NSKHzAat

次回からはテンプレ使うように

687 :デフォルトの名無しさん:2011/07/26(火) 22:49:22.66
すいません

typedef struct{
R:符号なし整数8ビット
G:〃
B:〃
}COLOR;

の構造体の作ってください
おねがいします

688 :デフォルトの名無しさん:2011/07/26(火) 22:54:43.86
ごめんなさい
>>687は誤爆でした

689 :デフォルトの名無しさん:2011/07/26(火) 22:57:45.63
>>688
誤爆じゃないです

690 :デフォルトの名無しさん:2011/07/26(火) 23:01:19.41
ごめんなさい
>>687はスレチでした

691 :デフォルトの名無しさん:2011/07/26(火) 23:05:02.92
ここまで俺の自演。

692 :デフォルトの名無しさん:2011/07/26(火) 23:05:57.42
>>687をどなたか本当にお願いします!!

693 :デフォルトの名無しさん:2011/07/26(火) 23:06:36.32
>>692
>>2

694 :>>687:2011/07/26(火) 23:11:10.45
>>693ありがとうございます

[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]その他制限:なし

おねがいします!!

695 :デフォルトの名無しさん:2011/07/26(火) 23:15:06.43
typedef struct {unsigned short int R, G, B;} COLOR;

696 :デフォルトの名無しさん:2011/07/26(火) 23:15:59.11
>>695
それでできるんですか?

697 :デフォルトの名無しさん:2011/07/26(火) 23:19:01.37
>>695
><

698 :デフォルトの名無しさん:2011/07/26(火) 23:21:48.16
>>696
><

699 :デフォルトの名無しさん:2011/07/26(火) 23:22:54.17
>>682について内容が不足していたので再投稿します。
[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] フラグ・判定にビット演算を使用してください。

700 :>>696:2011/07/26(火) 23:25:20.15
すいません
コンパイルしたら
できないんですが…

701 :デフォルトの名無しさん:2011/07/26(火) 23:27:46.22
>>700
typedef struct {unsigned int R:8;
unsigned int G:8;
unsigned int B8;} COLOR;

702 :デフォルトの名無しさん:2011/07/26(火) 23:30:04.07
>>701
×B8
○B:8

703 :デフォルトの名無しさん:2011/07/26(火) 23:39:31.27
>>701-702
ありがとうございました!

704 :デフォルトの名無しさん:2011/07/26(火) 23:58:43.85
>>699
http://ideone.com/213KD

705 :デフォルトの名無しさん:2011/07/27(水) 00:04:16.24
>>704
日本語が読めない人は回答しないでいいです。

706 :デフォルトの名無しさん:2011/07/27(水) 00:10:56.22
>>699 URL間違った
http://ideone.com/9uYLL

>>705
無能に生まれたせいでネットで叩くしかできない人はさっさと死んだほうがいいです。



707 :デフォルトの名無しさん:2011/07/27(水) 00:17:43.73
言うことももっともだが、>>704の時点では00:05くらいに生成されたURLを貼ることはできないぜ
嘘つくと信用なくすよ


708 :デフォルトの名無しさん:2011/07/27(水) 00:21:48.35
[1] 授業単元:プログラミング
[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

709 :デフォルトの名無しさん:2011/07/27(水) 00:22:33.01
>>707
テスト用にcloneで作って修正した新しい方を閉じて古い方を間違って貼ったから再度cloneして作り直した
>>705はビット演算してないと勘違いしてんだろ その部分は>>704の時点から変わってない
「貼り間違えた」のどこに矛盾があるんだ

710 :デフォルトの名無しさん: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つの方法が思いつきました。
要素の数が増えた場合も考慮して、
さらに速い方法があれば教えてください。

711 :デフォルトの名無しさん:2011/07/27(水) 00:38:49.46
>>707
だってドカタのプだもん
嘘吐きや日本語が読めないはドカタのプには当たり前です

712 :デフォルトの名無しさん:2011/07/27(水) 00:39:47.82
>>656
mainだけで、forとifで作ったよw

入力値に0があるとおかしいけど、
>このmain関数内だけに追加お願いします
こうあるので、そのままにした。
もともとのソースを直してね

http://codepad.org/uKQUfUmO

713 :デフォルトの名無しさん:2011/07/27(水) 01:32:08.95
>>710
N個のカウンタcnt[50]を用意し、Aにある数字の位置に1をセット。
Bにある数字の位置を2倍する。
http://codepad.org/rusbiYKs

714 :デフォルトの名無しさん:2011/07/27(水) 01:38:36.13
>>710
A,Bがそれぞれの中で重複無しなら、cnt[A[i]]++;cnt[B[i]]++;

715 :デフォルトの名無しさん:2011/07/27(水) 10:45:34.37
[1] 授業単元:C言語
[2] 問題文:1358をを並び替えた数字を24通り表示させるプログラムを完成させない。
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:07/27 11:30まで
[5] sacnfで入れた4文字を並び替えるようにお願いします。

716 :デフォルトの名無しさん:2011/07/27(水) 10:51:08.99
>>715

>投稿日:2011/07/27(水) 10:45:34.37
>[4] 期限:07/27 11:30まで

717 :デフォルトの名無しさん:2011/07/27(水) 11:05:44.82
>>715
#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のように入力させる仕様がいいならそうする


718 :デフォルトの名無しさん:2011/07/27(水) 11:20:56.59
>>715
ttp://codepad.org/s59XILmv
美しくないな

719 :デフォルトの名無しさん:2011/07/27(水) 11:26:01.03
無駄多すぎだろw

720 :718:2011/07/27(水) 11:44:49.74
>>719
俺もそんな気がするがどうすれば良いのか判らん
美しいコードを見せてくれ

721 :710:2011/07/27(水) 11:49:26.04
>>713-714 ありがとうございます!

722 :デフォルトの名無しさん:2011/07/27(水) 12:43:20.85
>>720
美しいかどうかはさておき自分はこんな風になった
期限すぎてる時点で駄目だけど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;
}

723 :デフォルトの名無しさん:2011/07/27(水) 13:17:42.02
>>715
力任せ。
http://codepad.org/h8sAnXoo

724 :718:2011/07/27(水) 15:38:34.19
ttp://codepad.org/epttqnbP
すこし美しくなったが....もっとなんとかなりそうな気がする

725 :デフォルトの名無しさん:2011/07/27(水) 15:46:22.22
i!=jは外のループで処理したほうがいいだろ

726 :デフォルトの名無しさん:2011/07/27(水) 15:52:38.71
[1] 授業単元:プログラミング演習
[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ヶ月ですので、上記のソースに近いイメージでお願いします。

727 :デフォルトの名無しさん:2011/07/27(水) 15:57:48.86
2時間でって、宿題じゃなく、今日の居残り課題だろ

728 :デフォルトの名無しさん:2011/07/27(水) 16:10:33.50
>>725
処理的にはそうだが美しさ的にはネストが一つ深くなるから嫌だ

729 :デフォルトの名無しさん:2011/07/27(水) 16:31:27.14
>>728
ネストなんて飾りですよ
ttp://codepad.org/Z5LalDTU

730 :デフォルトの名無しさん:2011/07/27(水) 16:39:33.56
>>729
美しくないです

731 :デフォルトの名無しさん:2011/07/27(水) 16:41:34.80
>>726
すみません。提出することが出来ました。
明日に行う課題を出されました。
出来れば教えていただけますか?
[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
上記を今日、習ったのでコレを使って行いたいです。宜しくお願いします。

732 :デフォルトの名無しさん:2011/07/27(水) 16:45:17.23
小町算最近このスレで出たと思うんだけど

733 :デフォルトの名無しさん:2011/07/27(水) 16:45:43.04
>>715
再帰で7桁まで対応。
http://ideone.com/vA5mq

734 :デフォルトの名無しさん:2011/07/27(水) 16:50:46.45
>>731
>> 712 は合計10。

735 :デフォルトの名無しさん:2011/07/27(水) 16:57:56.73
>>734
>>712でも構いませんが、習った内容を生かさないとコピペだと思われるので評価に響くので宜しくお願いします。本当に申し訳ありません。


736 :デフォルトの名無しさん:2011/07/27(水) 17:09:37.15
大丈夫
採点する人はたいていここ見てるから


737 :デフォルトの名無しさん:2011/07/27(水) 17:13:38.50
>>735
>コピペだと思われるので
コピペなのになに言ってんだか

738 :デフォルトの名無しさん:2011/07/27(水) 17:17:45.46
>>737
コピペがばれるって意味じゃね?

739 :デフォルトの名無しさん:2011/07/27(水) 17:36:45.84
なんでばれるんだ?

740 :デフォルトの名無しさん:2011/07/27(水) 17:47:46.43
>>739
教えてるのを生かして作成しないと疑われるからです。

741 :デフォルトの名無しさん:2011/07/27(水) 17:49:42.97
出題者がここを見てる?ならここで聞いたら意味無いような

742 :デフォルトの名無しさん:2011/07/27(水) 17:55:11.55
>>740
糞コードの書き方を教えられても困ります。

743 :デフォルトの名無しさん:2011/07/27(水) 18:23:27.92
ここの人たちはC#の宿題片付けますの方にもいるの?
http://hibari.2ch.net/test/read.cgi/tech/1197620454/

744 :デフォルトの名無しさん:2011/07/27(水) 19:02:48.19
>>731
http://codepad.org/CRzlU5au

745 :デフォルトの名無しさん:2011/07/27(水) 19:20:44.58
[1] 授業単元:情報処理概論
[2] 問題文(含コード&リンク):0 が入力されるまで正整数を読み込み、最大値、(最後の0 を除いた)最小値、全入力数値の平均(最
後の0 を含めず) を出力するプログラムを作りなさい。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 7 /28 13:30まで
[5] その他の制限: forあるいはwhileを使用すると思われます
よろしくお願いします。

746 :デフォルトの名無しさん:2011/07/27(水) 19:23:00.08
>>744
>組み合わせがない場合はエラー表示とする。

これ入れてあげて


747 :デフォルトの名無しさん:2011/07/27(水) 19:27:07.28
>>570ですが
http://pastebin.com/SETZzwz0
調べたりしてデータをファイルとして保存、読込以外はできました
保存、読込の部分で詰まったのでよければこの部分をお願いします

748 :デフォルトの名無しさん:2011/07/27(水) 20:00:29.98
>>745

http://ideone.com/QM5JB

749 :デフォルトの名無しさん:2011/07/27(水) 20:03:47.58
>>745
http://codepad.org/sDcg753n

750 :デフォルトの名無しさん:2011/07/27(水) 20:41:06.70
>>548
問題6-1
ttp://ideone.com/2FWbP

問題6-2
ttp://ideone.com/VmEli

問題6-3
ttp://ideone.com/2biBT


751 :デフォルトの名無しさん:2011/07/27(水) 20:45:13.98
お前らってブサイクだなぁ

752 :デフォルトの名無しさん:2011/07/27(水) 20:59:27.13
褒めるなよ

753 :デフォルトの名無しさん:2011/07/27(水) 22:24:14.12
てれるなよ

754 :デフォルトの名無しさん:2011/07/27(水) 23:13:36.92
[1] 授業単元: プログラム
[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] なし

お願いします

755 :デフォルトの名無しさん:2011/07/27(水) 23:16:37.00
>>754
それ宿題じゃないだろ

756 :デフォルトの名無しさん:2011/07/27(水) 23:19:03.40
>>754
単純な字句置換もできないのか

757 :548:2011/07/27(水) 23:28:41.03
>>750
感謝します

758 :デフォルトの名無しさん:2011/07/27(水) 23:38:46.71
>>755-756
初心者なもので…

759 :754:2011/07/27(水) 23:42:31.37
いいからはやく

760 :デフォルトの名無しさん:2011/07/27(水) 23:45:39.16
>>731,746
エラー表示が抜けていたので追加しました。
http://codepad.org/gZD3P4xg

761 :デフォルトの名無しさん:2011/07/27(水) 23:47:37.22
>>759
あせるなよ。作る人がいるにしてもある程度は時間がかかるものだ

762 :デフォルトの名無しさん:2011/07/27(水) 23:48:39.03
[1] 授業単元: プログラミング基礎
[2] 問題文
各頂点座標vertexが構造体REXに格納されている。
この構造体を頂点数に合わせて動的に確保できるように書き換えなさい。
さらに、引数として頂点数を格納した構造体を渡すことで、頂点数分のメモリーを確保して
そのアドレスを構造体のメンバー変数に格納する関数を作成しなさい。
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語:C++
[4] 期限:29日
[5] -

763 :デフォルトの名無しさん:2011/07/27(水) 23:49:19.45
>>759
期限ないんだから2〜3年待ってろよ

764 :デフォルトの名無しさん:2011/07/27(水) 23:50:15.47
>>762
書き換える?
元のソースがあるんじゃないの?

765 :762:2011/07/28(木) 00:01:33.72
>>764
ありません
あるという前提で作成しなさいという意味らしいです

766 : 忍法帖【Lv=37,xxxPT】 :2011/07/28(木) 00:27:07.85
なんだかハイレベルな問題の出し方する学校だなw

767 :デフォルトの名無しさん:2011/07/28(木) 00:38:02.28
>>766
低脳は講義にほとんどついていけないんですよ
>>762の宿題も低脳じゃ駄目。一を聞いて十を知る奴でないと駄目ね

768 :762:2011/07/28(木) 02:11:05.81
>>767
その低能に教えてください
おねがいします

769 :デフォルトの名無しさん:2011/07/28(木) 03:00:41.34
>>762
こんな感じなのだろうか?

struct vertex
{
double x,y,z;
};
struct REX
{
vertex *pVertexes;
int nCount;
};
void allocVertex( struct REX *pRex )
{
pRex->pVertexes = new struct vertex[ pRex->nCount ];
};

770 :デフォルトの名無しさん:2011/07/28(木) 03:01:59.40
>>768
教えてくださいって自分でやりたいのか?
低能だからここに丸投げじゃなかったのか

771 :デフォルトの名無しさん:2011/07/28(木) 09:18:56.05
>>768は動的に確保、静的に確保の違いとやり方すら知らんと思われ

772 :デフォルトの名無しさん:2011/07/28(木) 10:10:35.59
>>760
0000が入った時に出力画面でエラーが出てしまいます。
あと、9999が入った時にはエラーは出ませんがNGが表示されません。
http://codepad.org/gZD3P4xg

773 :デフォルトの名無しさん:2011/07/28(木) 10:23:51.90
(9 * 9 + 9) / 9 = 10

774 :デフォルトの名無しさん:2011/07/28(木) 10:38:07.21
>>773
> 731
> ()は考えない。

775 :デフォルトの名無しさん:2011/07/28(木) 11:31:51.28
そこより10のほうを突っ込めよw

776 :デフォルトの名無しさん:2011/07/28(木) 12:31:15.28
>>760
これって0が入った時点でダメじゃん

777 :デフォルトの名無しさん:2011/07/28(木) 14:00:57.13
>>775
誤差の範囲

778 :デフォルトの名無しさん:2011/07/28(木) 14:57:49.23
最近は電車に乗るとき定期範囲外もカードだから、切符の4桁の数字を使って10にするとかやんなくなったなぁ

779 :デフォルトの名無しさん:2011/07/28(木) 15:21:35.70
9999 はNGになったよ
/ 0 のケースは無条件NGにすれば良いのかな

780 :デフォルトの名無しさん:2011/07/28(木) 16:27:26.96
再提出になってしまいました。
問題点は4521を入力した時に5*2+1/4という結果が表示されます。
計算は10.25になり、int型ですので小数点以下は切り捨てられ10になりますが、
端数を切捨てでの数式は表示させないようにといわれました。
http://codepad.org/gZD3P4xg
ご指導お願いいたします。

781 :デフォルトの名無しさん:2011/07/28(木) 16:41:30.57
実数で演算したら不都合が生じる組み合わせは有るんだろうか?

782 :デフォルトの名無しさん:2011/07/28(木) 16:44:02.22
>>780をみてふと疑問に思ったんだが
4つの整数を計算して、計算途中に小数を含むが最終的に10になる、っていうパターンってあるのかな?

783 :デフォルトの名無しさん:2011/07/28(木) 16:55:03.75
あ、あった
5/2*4*1

割り切れない割り算があるとやめて次にいけばいいかと思ったが、そうはいかないな

784 :デフォルトの名無しさん:2011/07/28(木) 16:56:15.55
>>779
入力可能範囲は0〜9でお願いします。
例:0025 結果2*5+0+0

785 :デフォルトの名無しさん:2011/07/28(木) 16:59:16.80
>>782
その条件を満たすためには 和で整数に成る か 差で消える ってことだろうけど

和,差の被数がそれぞれ分数になるためには
 a / b + c / d  a / b - c / d
の組み合わせに制限されちゃう

なんとなく、その制限下では演算結果が10にはできない気配

786 :785:2011/07/28(木) 17:00:57.15
>>783 orz
因子の演算で消えるのとは別の話かと思ってた

787 :デフォルトの名無しさん:2011/07/28(木) 17:06:04.91
>>783
そのケースが駄目なら割り切れない時はアウトで良いんじゃないか?
5*4/2*1 はオーケーって話なんだから

788 :デフォルトの名無しさん:2011/07/28(木) 17:13:09.36
>>785
その組み合わせで10にできるわけはないんだがw

789 :デフォルトの名無しさん:2011/07/28(木) 17:22:39.86
>>780
>> 731は結果が20になる組み合わせだろ?
まあ、課題を装ってあれこれ修正させて遊んでるだけかもしれないが。

790 :デフォルトの名無しさん:2011/07/28(木) 17:29:28.85
>>780の再提出理由をみると小数の場合も考えろっていってるように見えるから
5/2*4*1 も表示すべきなんじゃないかと思うがどうだろ

もしそうなら面倒くさいな
割り算は項の最後に持っていくとかの処理が必要か

791 :デフォルトの名無しさん:2011/07/28(木) 17:32:27.53
double v[4],vx[4] でOK

792 :デフォルトの名無しさん:2011/07/28(木) 17:43:05.12
最近の依頼人は、習ってない割りに面倒な処理が必要な宿題が多いな

793 :デフォルトの名無しさん:2011/07/28(木) 17:43:54.67
誤差はどうするの?と聞こうと思ったが
どういうときに誤差が発生するのか自分がよく分かっていないことに気がついた

794 :デフォルトの名無しさん:2011/07/28(木) 17:48:43.69
>>793
この程度の数値では誤差は考慮不要と思う。
#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;
}


795 :デフォルトの名無しさん:2011/07/28(木) 17:50:17.73
>>790
それをOKとするなら実数で処理すれば良いし、NGとするなら割り切れない場合をNGとすれば良い
どっちを選択するかは提出者が考える事だろう

796 : ◆QZaw55cn4c :2011/07/28(木) 18:55:16.55
>>782
>>644

797 :デフォルトの名無しさん: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] その他の制限:リンク先に記載してあります
よろしくお願いします。

798 :デフォルトの名無しさん:2011/07/28(木) 19:35:45.39
>>796
それ括弧なしだと10にならんでしょ

799 :デフォルトの名無しさん:2011/07/28(木) 20:31:01.01
>>797
ttp://codepad.org/9P6FTNhr

800 :797:2011/07/28(木) 21:41:21.77
>>799
ありがとうございます!

801 :デフォルトの名無しさん:2011/07/28(木) 22:23:02.37
>>798
括弧付けたらできるの?

802 :デフォルトの名無しさん:2011/07/28(木) 22:32:20.40
(1 + 1 / 9) * 9
8 / (1 - 1 / 5)

803 :デフォルトの名無しさん:2011/07/28(木) 22:37:43.58
なるほど

804 :デフォルトの名無しさん:2011/07/29(金) 03:34:16.98
[1] 授業単元:並列計算
[2] 問題文(含コード&リンク):http://codepad.org/UfRWs3k5
[3] 環境
 [3.1] OS: Windows 7
 [3.2] コンパイラ名とバージョン:visual studio
 [3.3] 言語:どちらでも可
[4] 期限:2011年 7月 30日
[5] その他の制限:何とかお願いします

805 :デフォルトの名無しさん:2011/07/29(金) 09:35:39.45
[1]授業単元:プログラミングU
[2]問題文:番号、数学点数、英語点数を一組としたデータを線形リスト形式で保存
全データ一覧
入力した番号の点数のみ表示
新しいデータを入力しリストの最後に追加
番号のみを入力してデータ削除 ← 可能ならば、出来てなくても大丈夫です
プログラム終了
[3] 環境
 [3.1]OS:Mac
 [3.2]コンパイラ名とバージョン:gcc
 [3.3]言語:C
[4] 期限: 7月31日まで
[5] その他の制限: 必ず構造体(new_nodeやpool等)を用いること
「switch」を用いて任意の順番で出来るようにして下さい

806 :デフォルトの名無しさん: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です

807 :デフォルトの名無しさん:2011/07/29(金) 17:16:26.16
[1] 授業単元:C言語
[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まで



808 :807: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);
}
あとどうすれば良いですか?

809 :807:2011/07/29(金) 17:59:49.20
for (num = 0; num < 100; num++)
でした


810 :デフォルトの名無しさん:2011/07/29(金) 18:23:00.14
C言語の部分はそれで完成でしょ
あとは出力をcsvファイルにしてExcelにつっこんだらおしまい

811 :デフォルトの名無しさん:2011/07/29(金) 18:35:22.19
>>810
ここまでは出来たんだが、
http://codepad.org/Fj0kd1oh
>各数値が何回乱数として発生したのか
のやり方がわからん

どうすればいいんだ?


812 :デフォルトの名無しさん:2011/07/29(金) 18:49:30.74
要は1から10000までの回数に合わせてその乱数も保存しろって事でしょ。あとからエクセルで処理しやすい様にする配慮かと

例えば

1 149
2 24
3 87
.
.
.
10000 134

的な

813 :デフォルトの名無しさん:2011/07/29(金) 18:54:27.00
>>811
あれ?808-809でできてたのになんで違うコードなの?別人?
csvを標準出力に出せてるから、リダイレクトとかでcsvファイルとして保存して
Excelで開いてグラフにすれば終わりだよ

無理にC上でファイルに出力することも無いと思うよ

814 :807:2011/07/29(金) 19:06:35.43
現在は
http://codepad.org/BTOOm7o4
です。どうしましょう

815 :デフォルトの名無しさん:2011/07/29(金) 19:20:19.06
リダイレクトでいけるって

816 :デフォルトの名無しさん:2011/07/29(金) 19:23:00.94
csvで出せって言ってるんだからその辺は省略しちゃダメだろ

817 :デフォルトの名無しさん:2011/07/29(金) 19:36:38.45
>>814
どうしましょうも何も完成してるじゃん
Excelで開いてグラフ作ったらおしまい

818 :807:2011/07/29(金) 19:50:52.71
>Excelで開いてグラフ作ったらおしまい
をプログラムからしたいんですが、難しいですか?
簡単ならプログラムしたいんです
今はsystem(fname);
でExcelが起動して、csvは出るんですが

819 :デフォルトの名無しさん:2011/07/29(金) 19:58:18.54
相当ハードルは高い
やめておくことを勧める

WindowsのCOMと言うものを勉強して、COMの操作方法を覚えて、Excelを開いたときの操作方法を覚えれば可能だろうね
そんなwindows限定の狭い知識は、必要になったときに覚えればいいと思うよ

820 :デフォルトの名無しさん:2011/07/29(金) 20:05:57.11
グラフがExcelで作るように指定されてるから駄目だけど
プログラムからグラフ作りたいならgnuplotとか使うとそれなりにはできるね
まあこれもgnuplotの使い方を覚えんといかんけど

821 :デフォルトの名無しさん:2011/07/29(金) 20:17:14.33
>>807を質問したものだが…
コテ付けている人は俺と同じ大学っぽいな

http://codepad.org/Fj0kd1ohで出来ていた
>>812の意見を参考にこのプログラムをデバックしてそのファイルをもとにExcelでグラフを作った



822 :デフォルトの名無しさん:2011/07/29(金) 20:36:48.06
>>819
今が必要なときだっつてんの

823 :デフォルトの名無しさん:2011/07/29(金) 20:41:32.60
何でもかんでも必要だと思って覚えようとすると確実に破綻する
すでにある知識やその他ちょっとした知識で解決方法を探すべき
本当に必要なものを見極めて必要ないものはその時点ではあきらめることも必要

824 :デフォルトの名無しさん:2011/07/29(金) 20:43:13.05
>>822
なら覚えればいいと思うよ

825 :デフォルトの名無しさん:2011/07/29(金) 21:05:38.10
>>822
そもそも宿題は復習だろ
習ってない問題なんか出るわけない
>>821の方法でいいだろ

826 :デフォルトの名無しさん:2011/07/29(金) 22:01:28.52
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク):
パーティクルを採用した、エフェクトプログラムデモを作成する。
・光の粒子が回転移動。
・爆発エフェクト(破片の物理移動)など。
例)花火
情報の洗い出し → 構造体
2.初期化 → 爆発時に初期データセット
3.実処理 → 移動、加減速、色調
4.後処理 → 情報の削除(メモリの解放)
[3] 環境
[3.1]OS:Windows7
[3.2]コンパイラ名とバージョン:VC6.0
[3.3]言語:Cのみ
[4] 期限:8月1日
[5] その他の制限:エフェクトは自由にとのことでしたが、炎や、爆発や雷で作っていただけるとありがたいです。よろしくお願いします。
DirectXは使用不可です。コンソールアプリでお願いします。3Dは使わず、"*"や、"+"などの記号で表現お願いします。お手数ですが、コメントよろしくお願いします。

827 :デフォルトの名無しさん:2011/07/29(金) 22:12:38.06
http://hibari.2ch.net/test/read.cgi/tech/1217741118/86
3年前に同じ問題のレスがあるな
そのときついた解答はinfoseekだからもう見れないが

828 :デフォルトの名無しさん:2011/07/29(金) 22:17:06.30
正直どんなプログラムなのかほとんどイメージできない
コンソール画面に記号を使って炎や爆発や雷やらを表現しろってこと?

cursesでもつかってがんばってアニメーションさせるのかなあ

829 :デフォルトの名無しさん:2011/07/29(金) 22:31:01.41
千夏タンの>>648
って難しいかな>>QZさん

830 :デフォルトの名無しさん:2011/07/29(金) 22:41:25.64
動くAAって感じ?

831 :デフォルトの名無しさん:2011/07/29(金) 22:44:50.49
>>808
がんばりたんわかゆす

832 :デフォルトの名無しさん:2011/07/29(金) 23:13:54.20
>>805-806の者ですが
期限が少し延び、8月1日の12:00までとなりました。
宜しくお願いします


833 :デフォルトの名無しさん:2011/07/29(金) 23:26:06.28
>>832
ねぇ、ねぇMacの機種・OSは何を使っているの?

834 :デフォルトの名無しさん:2011/07/29(金) 23:27:02.91
Macでプログラミングを教える学校ってFラン?

835 :デフォルトの名無しさん:2011/07/29(金) 23:30:41.25
>>834
違います。有名女子大ですよ

836 :デフォルトの名無しさん:2011/07/29(金) 23:38:23.65
有名女子大って1つしか無くね

837 :デフォルトの名無しさん:2011/07/29(金) 23:52:53.83
有名女子大ってMacでプログラミング教えるようなFランだったんだ

838 : ◆QZaw55cn4c :2011/07/30(土) 00:08:01.26
>>648
>>829
とりあえず、迷路を描くところまで。今のところは、入力は二つとも奇数じゃないといけません。あと、すごくみにくいんですけど。
http://ideone.com/AU2q3

昔やったことあるなあ。http://pc11.2ch.net/test/read.cgi/tech/1199515728/659

839 :デフォルトの名無しさん:2011/07/30(土) 00:10:39.53
>>805
>[5] その他の制限: 必ず構造体(new_nodeやpool等)を用いること
>「switch」を用いて任意の順番で出来るようにして下さい

これどういうこと?
new_nodeやpoolって構造体?関数?どんな仕様か書かないと回答できないよ
「switch」を用いて任意の順番で処理〜って主語はなに?

840 :デフォルトの名無しさん:2011/07/30(土) 00:12:28.52
ソース中にxmallocという文字列が見つかった場合、それはQ製かもしれません・・

という怪談

841 :デフォルトの名無しさん:2011/07/30(土) 00:17:36.89
>>838
>正解経路は一つに決まること
これを読む限り正解でない(袋小路となる)経路も存在させる前提が見えるね
はい、リテイクできるね。楽しいね!

842 :デフォルトの名無しさん:2011/07/30(土) 00:20:09.00
この形式の迷路は棒倒しじゃなくて壁を延ばすアルゴリズム使わないとあれじゃない?

843 : ◆QZaw55cn4c :2011/07/30(土) 00:21:26.08
>>840
それはごく最近の話。malloc()/free() のバグがなかなか取れなくて、とうとうラッパを作ってしまいました。
ごく最近、codegurad/borland を教えていただいた次第。プロはみんなこんなのを使うんですね。

844 : ◆QZaw55cn4c :2011/07/30(土) 00:23:41.83
>>841
それは曲解というもの。袋小路が存在しなければならない、とは指示されてはいません。
せいぜい「袋小路ができてもよい、解がひととおりであれば」くらいが限界でしょう。

>>842
棒倒しで十分ですよ。

845 :デフォルトの名無しさん:2011/07/30(土) 00:27:57.04
>>805
ttp://ideone.com/JDdaA

846 :デフォルトの名無しさん:2011/07/30(土) 01:49:48.69
>>827>>828>>830
検索したら3年前に似たような問題があったのですが回答が見れなくて書き込み
しました。*や+が画面にちらばり雷や*が広がって花火になるようなパーティクル
でエフェクトを作っていただきたいのです。説明下手ですいません。
どうかよろしくおねがいします。

847 : ◆QZaw55cn4c :2011/07/30(土) 01:59:19.75
>>648
>>829
>>669 にしたがって、迷路の解経路も表示するようにしました。
http://ideone.com/64tHG

>>842
思い直しました。おっしゃるとおり棒倒しはいまいちですね。
棒倒しだと 1)解が単純(ほぼ対角線上)、2)偶数サイズ指定に対応するのが面倒、だと思い至りました。

848 :デフォルトの名無しさん:2011/07/30(土) 07:17:14.87
>>846
パーティクルとエフェクトとは何か?
一般的な単語の理解でいいのかなんなのか
「パーティクルを採用した」ってのと
「エフェクトプログラムデモ」ってのが具体的に何をさしているのか

849 :デフォルトの名無しさん:2011/07/30(土) 08:21:08.73
Windows7だとコンソールAPIで制御しないとだめじゃないかめんどいな

850 :デフォルトの名無しさん:2011/07/30(土) 10:20:40.55
>>833
Mac OS Xです
>>839
自分自身この辺を理解してないので上手く説明出来ませんが
poolなどはstructで
ポインタなども使います
switchで閲覧、入力などを選ばして欲しいと言う意味です

851 :デフォルトの名無しさん:2011/07/30(土) 10:22:35.19
アフォな質問ですまんが
winMEでも使えるフリーのC言語統合開発環境を教えてください



852 :デフォルトの名無しさん:2011/07/30(土) 11:28:05.47
>> 839,850
エスパーしてみた。
typedef struct {
char n[6];
int suugaku;
int eigo;
struct pool*new_node;
} pool;


853 :デフォルトの名無しさん:2011/07/30(土) 13:03:47.54
>>805
ロード、セーブ、表示、追加、削除ができれば良いの?
セーブや全件表示の場合はソートが必要?


854 :デフォルトの名無しさん:2011/07/30(土) 14:53:15.40
誰か>>804無理ですか?

855 :デフォルトの名無しさん:2011/07/30(土) 14:56:56.57
変なこと言ってすいません
質問板で聞いてくる

856 :デフォルトの名無しさん:2011/07/30(土) 15:31:30.10
>>850
俺のエスパーだとその説明は間違ってて↓を要求されてるんじゃないかと疑ってる

・nodeという構造体を使用
・poolというnode型のポインタで未使用nodeのリストを持つ
・new_nodeという関数でpoolからnodeをひとつ取得して使う
・del_nodeという関数で使用済みnodeをひとつpoolの末尾に返却する

857 :デフォルトの名無しさん:2011/07/30(土) 16:41:03.38
>>848>>849


858 :デフォルトの名無しさん:2011/07/30(土) 16:45:06.55
>>848説明へたくそですいません。一般的な単語の理解でいいです。
パーティクルを使って炎などのエフェクトを作りなさいとのことでした。
>>849コンソールAPIでお願いします。お手数かけます。

859 :548:2011/07/30(土) 18:14:48.98
何度も申し訳ありませんが、750の問題6-2のプログラムを
ファイルポインタを用いたものにしていただけませんか

860 :デフォルトの名無しさん:2011/07/30(土) 18:17:27.86
ならなぜC++とか抜かしたんだ

861 :548:2011/07/30(土) 18:24:21.95
>>860
複素計算を行うためにはC++でなければいけないと習いましたもので

862 :デフォルトの名無しさん:2011/07/30(土) 18:40:15.97
ベターCの癖にC++とか指定するの死んだほうがいいのに

863 :デフォルトの名無しさん:2011/07/30(土) 18:42:22.92
>>861
C++じゃなくても複素計算できるよ
その先生おかしいから信じないほうがいいよ

864 :805 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(){

865 :548:2011/07/30(土) 18:56:58.72
CとC++についての理解力が足りずご迷惑をかけてしまったことについてはお詫びいたします
すみませんでした

ですが、そこをどうにかお願いできませんか

866 :デフォルトの名無しさん:2011/07/30(土) 19:10:17.04
>>859
ttp://codepad.org/g8xFtCOo

867 :548:2011/07/30(土) 19:13:37.66
>>866
ありがとうございます
今後はCとC++についてよく考えるようにします

868 :デフォルトの名無しさん:2011/07/30(土) 19:41:41.02
>>864
struct student node[N];
struct student *make_pool(int n);
は何をするんだ?

869 :デフォルトの名無しさん:2011/07/30(土) 20:22:40.99
void  back_node(struct student **p, struct student *n); 
も十分に謎だ

870 :805:2011/07/30(土) 20:48:00.46
>>868
struct student node[N];
ノードプール用配列
struct student *make_pool(int n);
空ノードのプール作成。nは確保するノードの個数
ノードプールの先頭アドレス
>>869
void back_…
プールに返されたノードは最後尾にリンク
**pはプールの先頭へのポインタのアドレス
*n、返すノードへのポインタ
と、教員から頂いた資料に書いてあります

871 :デフォルトの名無しさん:2011/07/30(土) 21:27:46.09
>>870
とりあえず頂いた資料うpしろ
話はそれからだ

872 :デフォルトの名無しさん:2011/07/30(土) 21:52:03.98
先生から許可貰ってないのにうpしたら駄目だろ

873 :デフォルトの名無しさん:2011/07/30(土) 21:56:46.13
>先生から許可貰ってないのに

宿題を依頼するのに、許可がいるのか?

874 :デフォルトの名無しさん:2011/07/30(土) 22:16:39.80
入出力する番号は"N0003"形式なのにint?
しかもNは全角だったか・・・

875 :805:2011/07/30(土) 22:17:02.46
http://ideone.com/OmSnQ
頂いた資料のコピーです
これを参考にするらしいのですが
自分にはさっぱりで

876 :デフォルトの名無しさん:2011/07/30(土) 22:21:50.60
これ最初から出しとかないと先生の指定したものと全然違うものが出来て0点だっただろwwwww
有名女子大生なにしとんwwwwwww

877 :デフォルトの名無しさん:2011/07/30(土) 22:22:03.06
これを公開せずしてやらせようとしてたとは・・・

878 :デフォルトの名無しさん:2011/07/30(土) 22:34:21.73
malloc() を使わないで線形リストを実現したいのかなぁ....
困った問題だ、ちゅか困った講師だ

879 :デフォルトの名無しさん:2011/07/30(土) 22:50:13.34
>>805
http://ideone.com/CdumA

880 : ◆QZaw55cn4c :2011/07/30(土) 23:07:28.39
>>878
malloc()/free() は鬼門ですからね‥‥‥。java/c# を教材にすればいいのにね。

881 :デフォルトの名無しさん:2011/07/30(土) 23:26:59.57
>>880
盗作防止に変な問題作ったって線は無い?

malloc()/free() が無かったらC言語じゃないと思うんだけどなぁ

882 :デフォルトの名無しさん:2011/07/30(土) 23:44:04.55
それはhello world!はC言語じゃないってディスってるの?

883 :デフォルトの名無しさん:2011/07/30(土) 23:49:23.88
>>881
組み込みはC言語じゃないと申すか

884 :デフォルトの名無しさん:2011/07/31(日) 00:14:23.81
>>883
組み込みだって動的確保くらいできるだろ、インターフェイスの違いは有るだろうけど
C言語の味わいって (void*) を返す大雑把な動的確保に有ると俺は信じてる(多分俺だけ?)

885 :デフォルトの名無しさん:2011/07/31(日) 00:19:20.77
>>884
リッチな組み込みとそうじゃない組み込みがある
後者は確保とか無くて用途ごとに使うアドレスが固定

886 :デフォルトの名無しさん:2011/07/31(日) 00:45:53.79
>>885
何を言ってるんだ?
malloc/freeが無い環境だろうがなんだろうが、
必要なら作るのがcプログラマだろ?


887 :デフォルトの名無しさん:2011/07/31(日) 00:52:53.11
以前より少なくなったが旧製品のメンテだと、たまにバイト単位の節約が必要な事があるな。
これ以上はスレ違いなので、必要なら組み込みスレで。

888 : ◆QZaw55cn4c :2011/07/31(日) 01:15:18.41
>>884
思いはわかるんです、とっても。つい先日も私も嵌って一日うんうんいってましたし。(これで何十回目でしょうかね。)
でも「C言語じゃない」といいきってしまうと、んー、C の適用範囲が広いだけに、いろいろと異論もでてこようものでして、あはは。

889 :デフォルトの名無しさん:2011/07/31(日) 01:25:37.53
>>875>>878>>886

こういう方式はフリーリストとか読んでいました。
実際に組み込みでこの方式を採用して開発の経験があります。

ノード1つの大きさが固定で、最大数が正確に見積もれるのならば、
有効な方法です。

malloc/freeの替りにnew_node/back_nodeを使うことになります。
mallocと違い、確保できるメモリ領域サイズは固定です。

890 : ◆QZaw55cn4c :2011/07/31(日) 01:29:44.97
>>889
なるほど。
lisp の実装の一つに特定の固定長の領域を先に大量にプールしておくというのがあったことを記憶しています。
6809 上の処理系でした。

891 :デフォルトの名無しさん:2011/07/31(日) 01:53:02.59
貴様らの意見をまとめると>>>805の講師は組み込み系のプログラマだったってこと?

892 :デフォルトの名無しさん:2011/07/31(日) 02:29:32.31
ゼビウスで使われたタスクシステムがこんな感じだね

893 :デフォルトの名無しさん:2011/07/31(日) 02:35:01.17
>>889
サイズ固定のメモリ確保/解放を高速におこなうためのメモリプールは良くやる手法だと思う。
Effective C++にもplacement newで出てるのと考えは同じ。

>>891
組み込みの人なのかね?
new_node()の対がback_node()なのが頂けないなw

894 :デフォルトの名無しさん:2011/07/31(日) 02:42:12.80
仮想メモリのページングを自分で実装したり、仮想マシンのメモリ管理に BIBOP を使ったり
する事を想定した授業なのかな

895 :デフォルトの名無しさん:2011/07/31(日) 07:15:31.50
uITRONにある固定長メモリプールはまさしくこんな機能だよ

896 :805:2011/07/31(日) 12:03:13.46
>>879
ありがとうございます

897 :デフォルトの名無しさん:2011/07/31(日) 13:18:55.19
>>884
>C言語の味わいって (void*) を返す大雑把な動的確保に有ると俺は信じてる(多分俺だけ?)

いや、それはC言語と関係ないだろ。


898 :デフォルトの名無しさん:2011/07/31(日) 14:06:00.40
むしろI/O叩きだろ

899 : ◆QZaw55cn4c :2011/07/31(日) 14:11:44.71
>>897
そう?
それは malloc()/free() がライブラリ関数という形式で提供されているから、という理由でですか?
そういえば pascal にも new/dispose がありましたね。これは規格内だったか外だったか?

900 :デフォルトの名無しさん:2011/07/31(日) 16:33:33.83
[1] 授業単元:プログラミング
[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] その他の制限: 特になし

お願いします

901 :デフォルトの名無しさん:2011/07/31(日) 16:50:35.37
>>900
結果の出力はコンソール画面でいいのかい?
csvファイルに出力するとかだったりしないか?

902 :デフォルトの名無しさん:2011/07/31(日) 17:18:38.69
宿題とは関係ないけど、8月になっても大学・高専・専門は
正規授業がいまやあるのか?

903 :デフォルトの名無しさん:2011/07/31(日) 18:24:47.69
今年の場合は例外もいろいろあるんでないの?
3.11の影響で開始を遅らせた所はいくつかあったようだし

904 :デフォルトの名無しさん:2011/07/31(日) 20:00:08.48
>901
コンソール画面でいいです。

905 :デフォルトの名無しさん:2011/07/31(日) 20:22:48.39
>>826
ttp://codepad.org/hKTQeKg8

906 :デフォルトの名無しさん:2011/07/31(日) 20:24:52.85
>>900
ttp://codepad.org/M40tJWkn

907 :デフォルトの名無しさん:2011/07/31(日) 20:30:46.83
ありがとうございます!

908 :デフォルトの名無しさん:2011/07/31(日) 20:38:23.18
一億回呼ぶ関数の中で初期化の分岐とかw

909 :デフォルトの名無しさん:2011/07/31(日) 21:07:57.41
[1] 授業単元:プログラム概論
[2] 問題文(含コード&リンク):
  多角形を中心座標に対し上下反転させる関数を作成しなさい。この関数の引数は、多角形のデータが
  収められた構造体のアドレスをとる。また、上下反転された座標は元の頂点座標に格納する変数に再代入される。
[3] 環境
 [3.1] OS: Windows 7
 [3.2] コンパイラ名とバージョン:visual studio 2008
 [3.3] 言語:C++
[4] 期限:2011年 8月2日
[5] その他の制限:なし

おねがいしますm(__)m

910 :デフォルトの名無しさん:2011/07/31(日) 21:48:25.77
>>905
すげーわ
きれいだな

911 :デフォルトの名無しさん:2011/07/31(日) 22:23:32.58
>>905
826です。助かりました!ありがとうございます!

912 :デフォルトの名無しさん:2011/07/31(日) 22:26:44.97
>>905
これいいな

913 :デフォルトの名無しさん:2011/07/31(日) 22:56:02.16
>>905
久々に神をみた。

914 :デフォルトの名無しさん:2011/07/31(日) 23:03:28.10
[1] 授業単元:プログラム概論
[2] 問題文(含コード&リンク):ファイルの商品名を順に読み込んで、オーダー
                  の順を出力する関数を作成しなさい.
http://codepad.org/q5G3hxdB←ここまで作りましたが、"ファイルが見つかりません"と表示されます.

[3] 環境
 [3.1] OS: Windows 7
 [3.2] コンパイラ名とバージョン:visual studio 2008
 [3.3] 言語:C++
[4] 期限:2011年 8月2日
[5] その他の制限:おねがいします

915 :デフォルトの名無しさん:2011/07/31(日) 23:11:11.91
>>914
ほんとにC++か?
C++なら自分で連結リスト作ったりしないと思うんだが

916 :デフォルトの名無しさん:2011/07/31(日) 23:17:33.34
>>914
最初に
if((fp=fopen(filename,"r")) == NULL){
fprintf(stderr, "Could not open file\n");
exit(1);
にぶつかっているのが直接の原因だと思いますが、"test.txt" は実行ファイルと同じフォルダに存在しているでしょうか?
vs の統合開発環境からビルドしているのであれば、たしかに "test.txt" の置き場がややこしい。(今手元にいれていないので、即答できなくてすみません。)

917 :デフォルトの名無しさん:2011/07/31(日) 23:18:44.73
>>915
file_read() をオーバーロードしているので、c++じゃないとコンパイルできないです。

918 :デフォルトの名無しさん:2011/07/31(日) 23:19:22.00
自分がやってる授業がCなのかC++なのか分かってないやつなんなの・・・

919 :デフォルトの名無しさん:2011/07/31(日) 23:20:46.24
C++はCのスーパーセット

920 :デフォルトの名無しさん:2011/07/31(日) 23:30:26.80
CはC++の片手落ち言語

921 :デフォルトの名無しさん:2011/07/31(日) 23:32:34.80
>>905
すごすぎワロタ

922 :デフォルトの名無しさん:2011/07/31(日) 23:41:31.83
>>921
激同意

>>905
パーティクルに色付けるにはどうすれば良い?

923 :デフォルトの名無しさん:2011/08/01(月) 00:09:06.00
>>916
はい
"test,txt"は実行ファイルと同じフォルダにあります
さっき新しくテキストを作り直したところ
「0x000a156d でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x00000100 を読み込み中に
アクセス違反が発生しました。」というエラーメッセージが出てきました
これはどういうことなのでしょうか?

924 :デフォルトの名無しさん:2011/08/01(月) 00:21:03.95
>>922
コンソールAPIを使う ただしデフォルトパレットの16色限定

925 :デフォルトの名無しさん:2011/08/01(月) 00:54:09.59
>>923
test.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
となってセグメンテーションエラー(例外)がでている

と推察します。


926 :デフォルトの名無しさん:2011/08/01(月) 03:39:19.40
>>925

http://codepad.org/SXWvuMeB
"test.txt"の内容を含めてあげました
判定をおねがいします

927 :デフォルトの名無しさん:2011/08/01(月) 08:42:24.90
>>914,926

25c25
< 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);

928 :デフォルトの名無しさん:2011/08/01(月) 08:46:59.12
>>914,926,927
c++なら

< if(fread(&data,1,sizeof(ORDER),fp)!=sizeof(ORDER)) {
---
> if(fread(&data,1,sizeof(ORDER),fp)>sizeof(ORDER)) {

929 :デフォルトの名無しさん:2011/08/01(月) 11:11:14.65
>> 914
こうか?
http://ideone.com/JMCCI

930 :デフォルトの名無しさん:2011/08/01(月) 13:46:08.72
>>927-929
書いてあった通りに修正したら、無事問題文通りの動作をしました
何故今回は、上手くいったのか教えてもらえますか?

931 :デフォルトの名無しさん:2011/08/01(月) 14:52:57.30
どなたかよろしくお願いします。
自然数n > 1 と整数g, x>= 0 を入力として, g^x をn で割った余りg^x mod n を求めて表
示するプログラム


932 :デフォルトの名無しさん: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] 特になし

よろしくお願いします

933 :デフォルトの名無しさん: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] その他の制限:おねがいします

934 :デフォルトの名無しさん:2011/08/01(月) 15:03:39.26
932です。

リンク先間違えました

http://webct6.cc.kyushu-u.ac.jp/webct/urw/lc66370999001.tp66379019001/RelativeResourceManager/sfsid/78508251001

正しいのは上のものです。
失礼しました。

935 :デフォルトの名無しさん:2011/08/01(月) 15:04:58.28
>>934
要求したページが見つかりません.
問題が解消されない場合,こちらに連絡してください: サーバ管理者.

936 :デフォルトの名無しさん:2011/08/01(月) 15:12:34.30
>>935

リンクを開いた際にURLが書き換えられるみたいです。

http://ime.nu/webとなっている部分のうちime.nu/を消して更新すると大丈夫みたいです。

お手数をおかけしてごめんなさい。

937 :デフォルトの名無しさん:2011/08/01(月) 15:13:48.19
[1] 授業単元:プログラミング問題
[2] 問題文(含コード&リンク):ファイルに格納された適当な文字列を代入した
連結リストからある特定の文字列を削除し,削除後のリストをファイルに出力する関数を作成せよ.

[3] 環境
 [3.1] OS: Windows 7
 [3.2] コンパイラ名とバージョン:visual studio 2008
 [3.3] 言語:C++
[4] 期限:2011年 8月2日
[5] その他の制限:おねがいします

938 :デフォルトの名無しさん:2011/08/01(月) 15:14:31.02
>>931
#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;
}

939 :931:2011/08/01(月) 15:18:44.73
>>938
ありがとうございます。

940 :デフォルトの名無しさん:2011/08/01(月) 15:18:49.00
>>936
ime.nu/削っても見られないぞ
ってかime.nu/は2ちゃん側が勝手に付けるもんだから関係無いと思うが

941 :デフォルトの名無しさん:2011/08/01(月) 15:20:48.77
>>940

936です
えっ?そうですか??
では問題を貼付けていってもいいでしょうか?

5個あるんですがお願いします。。

942 :デフォルトの名無しさん:2011/08/01(月) 15:23:50.89
>>941
いいんじゃね
答える奴がいるかどうかは知らんが

943 :デフォルトの名無しさん:2011/08/01(月) 15:24:11.31
これらが5個の課題です。
お願いします。

入力された長さをもつ線を表示するプログラムを作成せよ.プログラムは以下を満たすものとする.
 入力として受け取る長さは,1以上20以下となるようにすること.

入力された縦・横の長さをもつ長方形を表示するプログラムを作成せよ.プログラムは以下を満たすものとする.
 入力として受け取る縦と横の長さは,1以上20以下となるようにすること.
 横の長さは縦の長さ以上になるようにすること

.入力された縦・横の長さをもつ平行四辺形を表示するプログラムを作成せよ.プログラムは以下を満たすものとする.
 入力として受け取る縦と横の長さは,1以上20以下となるようにすること.
 横の長さは縦の長さ以上になるようにすること.

入力された高さをもつ数字の正三角形を表示するプログラムを作成せよ.プログラムは以下を満たすものとする.
 入力として受け取る高さは,1以上20以下となるようにすること.
 i段目にはiを表示する.ただし,10段目以降には一桁目の数字を表示する.

3×3行列に整数のデータを入力し,その縦・横・斜めに足した合計がすべて等しくなるかを確認するプログラムを作成せよ.プログラムは以下を満たすものとする.
 整数のデータの入力では,for文を用いること.
 予め3×3個の整数の要素を持つ二次元配列を準備する.
 縦は3本,横は3本,斜め2本のそれぞれの合計が等しいかを確認する必要がある.

944 :デフォルトの名無しさん: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] 特になし


945 :デフォルトの名無しさん:2011/08/01(月) 15:30:03.44
Mac使ってないから線を表示ってどうやるのか知らんな
他の人任せた

946 :デフォルトの名無しさん:2011/08/01(月) 15:35:07.77
>>945

*で代用みたいです。
説明不足ですいません。

947 :デフォルトの名無しさん:2011/08/01(月) 15:41:10.92
********** こうやってアスタリスクを並べたものを線というそうです。

948 :デフォルトの名無しさん:2011/08/01(月) 15:57:08.64
>>930
> 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件文のデータが入る。

949 :デフォルトの名無しさん:2011/08/01(月) 16:00:49.95
>>947
なんだそういう事か。だったらすぐ出来たのに
もう時間過ぎちゃったけど俺ぁ知らんぞ

950 :デフォルトの名無しさん:2011/08/01(月) 16:05:15.77
>>948
ありがとうございます

951 :デフォルトの名無しさん:2011/08/01(月) 16:07:12.43
>>944
コンパイル、実行してないので動くかはしらんけど

#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;
}


952 :944:2011/08/01(月) 16:12:32.01
>>951
ありがとうございます。

953 :デフォルトの名無しさん:2011/08/01(月) 16:12:58.18
>>949

時間が少し延長されました。。

あと20分ぐらい大丈夫です!

954 :>>937:2011/08/01(月) 16:17:13.75
>>937ですが、補足します
「特定の文字列のみ削除する部分」と「出力表示する部分」は同じ関数内でおねがいします

955 :デフォルトの名無しさん: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] その他の制限:特にないです。

956 :デフォルトの名無しさん:2011/08/01(月) 16:27:53.61
>2 つの整数a, b, s を入力として
無茶言うなw

957 :デフォルトの名無しさん:2011/08/01(月) 16:32:05.99
>>954
後付でしかも、テンプレを使ってないから937に着手した者は954を見落とすだろうな。
修正があるなら、937の発展問題として新規にテンプレ使うべし。

958 :955:2011/08/01(月) 16:32:31.90
>>956
すみませんw
2つじゃなくて3つです。
申し訳ないです。

959 :デフォルトの名無しさん:2011/08/01(月) 16:50:54.99
>>957
指摘通り修正しました

[1] 授業単元:プログラミング問題
[2] 問題文(含コード&リンク):ファイルに格納された適当な文字列を代入した
連結リストからある特定の文字列を削除し,削除後のリストをファイルに出力する関数を作成せよ.

[3] 環境
 [3.1] OS: Windows 7
 [3.2] コンパイラ名とバージョン:visual studio 2008
 [3.3] 言語:C++
[4] 期限:2011年 8月2日
[5] その他の制限:「特定の文字列のみ削除する部分」と「出力表示する部分」は同じ関数内でおねがいします

960 :デフォルトの名無しさん:2011/08/01(月) 16:55:14.41
>>959 追記
ファイルに格納された適当な文字列:
ファイルにどのような形式で文字列群を格納するか

ある特定の文字列:
特定の文字列をどのようにプログラムに指示するか

などいろいろ不備な点がありますが、あとは妄想で補完してあなたがよいと思うプログラムにしてください

961 :>>937:2011/08/01(月) 16:58:14.27
>>960
ファイルに格納された適当な文字列:
ファイルにどのような形式で文字列群を格納するか -> 形式はテキストファイル

ある特定の文字列:
特定の文字列をどのようにプログラムに指示するか ->  キーボードによる入力

あと妄想は困ります
おねがいします

962 :デフォルトの名無しさん:2011/08/01(月) 17:13:31.94
適当な文字列たんと特定の文字列たんの濃厚な絡みを妄想してしまいまつた

963 :デフォルトの名無しさん:2011/08/01(月) 17:14:11.19
>>961 追記
自分は
warashi wa kichigai
anata mo kichigai
のような形式が好きで、でKichigaiは気に入らないから2つあるkichigaiを消すニダなんです

漢字は苦手ですが
私は基地外
貴方も基地外
こんな形式から2つある基地外を削除するでも良いアルネ

でも、自分で色々考えて講師が気に入ると思うプログラムにしてください
お願いアルニダ

964 :>>937:2011/08/01(月) 17:18:59.83
http://codepad.org/Z90lWIkx#line-8までは一応作りました
文字の削除が上手くいかないので、どうすればいいのか教えて下さい

965 :デフォルトの名無しさん:2011/08/01(月) 17:53:51.33
>>964>>937の課題を自分で作ったらそうなったのか?
なんか、>>937とは少し違うんじゃないか
int price; に関する記述は>>937のどの部分?

966 :デフォルトの名無しさん:2011/08/01(月) 17:55:28.45
>>955
#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;
}

967 :デフォルトの名無しさん:2011/08/01(月) 18:04:09.41
>>965
>int price; に関する記述は>>937のどの部分?

>>937は、商品の名前と金額を表示するプログラムです
>>937は余分な金額の記載部分を除いた文章なので、少し違うように見えると思います
重要なのは名前の方ですので、別になくても別に問題はありません

困っているのは「入力した商品名をリストから削除する」部分なので…

968 :デフォルトの名無しさん:2011/08/01(月) 18:29:11.68
>>955
http://ideone.com/p9C85

969 :デフォルトの名無しさん:2011/08/01(月) 18:45:25.05
http://live.nicovideo.jp/watch/lv58622687

970 :955:2011/08/01(月) 18:52:43.23
>>966
>>968
ありがとうございます。

971 :>>964:2011/08/01(月) 19:42:56.24
いまだにここなんです、orz
http://codepad.org/F5yOJqWS
よろしくお願いです

972 :デフォルトの名無しさん:2011/08/01(月) 19:56:13.49
937をやってみようかと思ったけど、up主が次々にニューバージョンを出して来るので、ペースが落ち着くまで静観。

973 :デフォルトの名無しさん:2011/08/01(月) 20:19:20.72
>>972
放置してたら自力で解きそうだしね

>>971
文字の削除ではなく入力された名前を持つデータの削除だろ
名前が一致したら出力しないだけの話だと思うんだけど

974 :デフォルトの名無しさん:2011/08/01(月) 20:22:04.27
課題を解いて欲しいなら、ちゃんと投げろ

975 :>>964:2011/08/01(月) 20:23:47.29
いまここ
http://codepad.org/9sAy6uTi
>>937
なんで、char name[1000];なのに
char *p=(char *)malloc(10*sizeof(char));では10なの?

>>973
つまりリスト削除はしないで、一致したものを飛ばして出力するだけってこと

976 :デフォルトの名無しさん:2011/08/01(月) 20:50:40.83
>>975
>なんで、char name[1000];なのに
>char *p=(char *)malloc(10*sizeof(char));では10なの?

name[1000]は特に意味はありません
[300]でも[800]でも構いません
*pが10なのは、10文字以上の文字は無いだろうと思ったので
10にしました

>つまりリスト削除はしないで、一致したものを飛ばして出力するだけってこと

そうです。言葉足らずで申し訳ありません

977 :デフォルトの名無しさん:2011/08/01(月) 21:32:21.37
次スレ立てます

978 :デフォルトの名無しさん:2011/08/01(月) 21:34:27.94
次スレ立てました
C/C++の宿題片付けます 152代目
http://hibari.2ch.net/test/read.cgi/tech/1312201995/

979 :>>964:2011/08/01(月) 23:35:00.42
リストはいじらないで、名前が一致したものを飛ばして出力するだけ
http://codepad.org/pOT71Afg

980 :デフォルトの名無しさん:2011/08/02(火) 11:52:52.53
>>933,943
http://ideone.com/FvHhe

981 :デフォルトの名無しさん:2011/08/02(火) 13:45:03.74
[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク):となりどおしの数字の差がその下の数字となるように、
1から15までの数を1回だけ使って例に従ってマスにいれなさい。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: [2011年8月2日14:30まで]
[5] その他の制限: C言語初心者です。宜しくお願いします。

982 :デフォルトの名無しさん:2011/08/02(火) 14:00:53.46
>>981
「例」を具体的に。

983 :デフォルトの名無しさん:2011/08/02(火) 14:13:40.83
15 1 13 2 10 3 9 4
 14 12 11 8 7 6 5

こんなん?

984 :デフォルトの名無しさん:2011/08/02(火) 14:27:51.78
>>981
説明不足ですみません。
>>981のかたのイメージです。
逆三角形になるように表示させたいです。
最終的には最後の1個まで数字が重ならないように表示させたいです。
宜しくお願いします。

985 :デフォルトの名無しさん:2011/08/02(火) 14:30:14.92
>>982
何度もすみません。
>>983のイメージです。

986 :デフォルトの名無しさん:2011/08/02(火) 14:43:24.69
>>981
981 名前:デフォルトの名無しさん :2011/08/02(火) 13:45:03.74
[4] 期限: [2011年8月2日14:30まで]
期限、今日じゃないだろ



987 :デフォルトの名無しさん:2011/08/02(火) 14:44:33.84
>>984-985
逆三角形で五段なのか二段なのか、どっちなんだよ

988 :デフォルトの名無しさん:2011/08/02(火) 14:50:34.02
期限は今日ですが時間を間違えました。
時間は16時までです。宜しくお願いします。

989 :デフォルトの名無しさん:2011/08/02(火) 14:52:36.69
差は>>984の形だけど表示は五段って意味じゃないかな

990 :デフォルトの名無しさん:2011/08/02(火) 14:52:55.74
>>983だった

991 :デフォルトの名無しさん:2011/08/02(火) 14:54:06.23
五段です。お願いします。

992 :デフォルトの名無しさん:2011/08/02(火) 15:21:05.10
答え二通りしかないのか

993 :デフォルトの名無しさん:2011/08/02(火) 15:21:58.22
多分、そうだと思います。
宜しくお願いします。

994 :デフォルトの名無しさん:2011/08/02(火) 15:22:02.13
と思ったら、左右反転してるだけだったw

995 :デフォルトの名無しさん:2011/08/02(火) 15:23:33.30
逆三角形で五段を実現する並びって
1つのみしかないの?
それとも複数あるの?

996 :デフォルトの名無しさん:2011/08/02(火) 15:29:57.78
多分
6 14 15 3 13の並びしかないと思います。
あとは逆並びだと思います。

997 :デフォルトの名無しさん:2011/08/02(火) 15:41:05.37
>>981
#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; }

998 :デフォルトの名無しさん:2011/08/02(火) 15:51:14.66
>>997
出来ればメイン関数内だけで行えませんか?
本当に申し訳ありません。
答えはC/C++の宿題片付けます 152代目にお願いします。
宜しくお願いします。

999 :デフォルトの名無しさん:2011/08/02(火) 16:09:25.69
>>997
張ろうと思ったら先を越されたw

>>998
再帰を使わないのは無理じゃね?
main() だけで再帰を実現するには....

1000 :デフォルトの名無しさん:2011/08/02(火) 16:25:17.87
IOOO

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

331 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)