[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 10/23 13:11 / Filesize : 242 KB / Number-of Response : 1018
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門編)Part 129



1 名前:デフォルトの名無しさん [2015/05/27(水) 06:15:55.14 ID:gRxCv8ae.net]
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 127
peace.2ch.net/test/read.cgi/tech/1424244688/
★過去スレ
ttp://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
  ↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 168代目
peace.2ch.net/test/read.cgi/tech/1408962564/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
  # サイズが大きい場合はアップローダ等を利用してください。
ttp://codepad.org/
ttp://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
【重要】
当たり前の事ですが、2chではコピペ荒らしは禁止されています

2 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 06:45:54.38 ID:SouEKxUw.net]
乙だが128では?

3 名前:デフォルトの名無しさん [2015/05/27(水) 06:47:14.31 ID:BqvzOlIW.net]
>>2
前回が間

4 名前:違えてる
修正して129
[]
[ここ壊れてます]

5 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 06:51:28.30 ID:SouEKxUw.net]
なるほど了解
改めて乙

6 名前:デフォルトの名無しさん [2015/05/27(水) 16:27:21.93 ID:lomThlZd.net]
c言語で && とか || は左から評価されることが保証されている?

7 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 16:42:47.49 ID:5zOFtYYl.net]
A==B ? a+b : 0;
今更知ったんだけど、これダメなんだね

A==B ? (a+b) : 0;
こうしないとアカンらしい。括弧が必要なポイントが分からんすぎていつも嵌る

8 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 16:52:32.64 ID:nuGrXhR8.net]
>>5
左側の評価だけで即解決する場合
(or結合での正 / and結合での否)
に右側が評価されないようになってる = ショートサーキット

9 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 17:24:31.23 ID:CXVzjYKy.net]
三項演算子は使わない

10 名前:デフォルトの名無しさん [2015/05/27(水) 18:06:06.51 ID:lomThlZd.net]
>>7
おkありがとう



11 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 18:54:58.47 ID:CN4no++3.net]
>>6
(A ==B) ? a + b : 0;
と書くようにしているが、それでもハマリ防止にはならないらしい‥
peace.2ch.net/test/read.cgi/tech/1313183984/766

12 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 19:02:43.43 ID:g535aIO5.net]
>>6
ダメとかアカンとかじゃなくて、自分はコンパイラと違う解釈してましたってことだろ
まあスタイルとしては、迷いそうなところは括弧付けるのがいい。
(A == B)?(a + b):0

13 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 19:21:02.83 ID:5zOFtYYl.net]
せやな。括弧付けるんは無料だしどんどんつけてくぜ

14 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 19:29:23.14 ID:bmPyy927.net]
>>6
誰がそんなデタラメ教えたんだ?
> A==B ? a+b : 0;
> A==B ? (a+b) : 0;
このふたつの演算結果は完全に同じ

>>10-11
知ったかぶりする前に優先順位表でもみた方が良いぞ。

15 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 19:32:24.70 ID:5zOFtYYl.net]
>>13
教わった訳じゃなくて、思い通りに動かなかったのが括弧付けただけで動いたんだもん・・・

16 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 20:00:44.25 ID:bmPyy927.net]
>>14
じゃ、それは関係無い
マグレで動いてるように見えてるだけ

17 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 20:09:19.47 ID:c6bUiV8v.net]
>>10 の先のは ? の左側の順位の問題

C = D + 「三項演算子の評価値」 のつもりで
C = D + (A == B) ? a : b; とかいたが

C = 「D + (A==B) を判定し a または b を渡す三項演算子」

となった

18 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 21:56:57.44 ID:toEie+PK.net]
>>13
>このふたつの演算結果は完全に同じ

ところがどっこい

peace.2ch.net/test/read.cgi/tech/1313183984/766
>× *x_sol = x + (alpha > 0) ? alpha : -alpha;
こう書くと x + (alpha > 0) が優先されるのであった‥

>知ったかぶりする前に優先順位表でもみた方が良いぞ。
そのようだね、お互いに

19 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 22:53:38.02 ID:bmPyy927.net]
>>17
式を変形させて同じじゃ無いとかバカいってんな。死ねアホウ。

> A==B ? a+b : 0;
> A==B ? (a+b) : 0;
このふたつの演算結果は完全に同じ

20 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 22:56:15.88 ID:bmPyy927.net]
本当にQzってダメな奴だな



21 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 23:02:45.84 ID:5zOFtYYl.net]
A==B ? a+b : 0;というのは簡単に書いたんだが、ちゃんと実際のやつ書いたほうがええな・・・


phai = vco_seek(略,略,略,略,略,略,略, vco_tone[s] * ((s == mod_lavel - 1) || (3 == mod_lavel) ? mod_G*modADSR(f, 0) + 1.0 : 1.0));
これを
phai = vco_seek(略,略,略,略,略,略,略, vco_tone[s] * ((s == mod_lavel - 1) || (3 == mod_lavel) ? (mod_G*modADSR(f, 0) + 1.0) : 1.0));
に変えたら上手くいったんだわ。同じ事だと思うが

22 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 23:04:58.49 ID:bhmZkUHl.net]
珍しいコンパイラーだね

23 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 23:11:06.09 ID:bmPyy927.net]
>>20
アセンブリ出力して比べてみろよ
違ってるならコンパイラが壊れている

24 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 23:31:31.58 ID:5zOFtYYl.net]
>>22
アセンブラ比較してみたら37箇所違うところがあるみたい
xxxxxxxxxxxx.net/_/135/20150527232953-0.jpg

まぁ訛りのつよいコンパイラって事で諦める事にしとくわw

25 名前:デフォルトの名無しさん [2015/05/27(水) 23:33:10.69 ID:AoLMgYi8.net]
:より先に+が演算されるから変わらないだろ
お前のコードが間違えてるかコンパイラが変

26 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 02:48:07.72 ID:rkwpKfBz.net]
>>23
その画像の部分はラベル違うだけじゃ?

27 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 08:25:26.19 ID:7RWTzWFs.net]
このように無駄な喧嘩の原因になるので括弧をつける癖をつけよう。

28 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 08:37:24.47 ID:qBUpvu6j.net]
無駄じゃない
1 ID:5zOFtYYlのプログラムが依然としてバクが修正できていない事実が判明した
2 Qzが救いようのないバカである事が再々再度確認できた

29 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 10:10:34.56 ID:TeBgubTT.net]
文字列の終端を表す「\0」は10進数の0と共通のアスキーコードらしいですが、
これでは文字列の途中に数字の0が入っていたらそこで文字列が終わって
しまうんですが?

30 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 10:21:47.34 ID:qBUpvu6j.net]
数字の0のアスキーコードは0x30
なので問題ない



31 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 10:34:23.87 ID:TeBgubTT.net]
ありがとうございます!

32 名前:デフォルトの名無しさん [2015/05/28(木) 12:36:56.52 ID:uqfTz9n2.net]
ビット演算や16進数など速く使えるようになりません
仕事がハードよりなので恐らく使う事になると思うのですが
良い練習法などあったら教えてください。

33 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 12:37:58.78 ID:BA36VF96.net]
>>18 >>27
おう、またお前か、MASM の勉強は進んでいるかね?
人に言われないと自分が馬鹿であることを時々忘れるから、まあ、有難いことだ

さて、>>6 は三項演算子(条件演算子)の優先順位と括弧のつけ方について話題にしている
まあ >>6 の内容自体には疑問はあるが、三項演算子の優先順位の低さは話題になってもよい
そこで、議論を有用な方向に導くためにも俺のミステイクを公開してみた

しかし、お前は汗とか小さいことにこだわるんだね
視野が狭いとあちこちにぶつかって痛いだろう?大人になり給え

34 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 12:39:35.13 ID:JHgdzIBl.net]
仕事で使うなら仕事で勝手に身につくだろ
実践が早いってこと

35 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/05/28(木) 12:46:46.61 ID:BPOchcgZ.net]
二進数四桁が十六進数一桁に相当することを覚えれば進数の換算が早くできるようになる。
十進数で十倍すると右にゼロが1つ増える。
一般にX進数でX倍すると右にゼロが1つ増える。
左シフト演算はX倍の繰り返しだと覚えればいい。
右シフトはその逆。
AND演算はビットごとの論理積だから、二進数に置き換えて考える。
OR演算はビットごとの論理和だ。
最悪の場合でも、ウィンドウズ付属の電卓を使えばなんとかなるかと。

36 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/05/28(木) 13:06:49.57 ID:BPOchcgZ.net]
例えば、1001101という二進数があったら、位の低い方から四桁区切りにすると
100 1101
となる。100は十六進数で4であり、1101は十六進数でDだから、
二進数の100 1101は、十六進数の4Dである。

37 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/05/28(木) 13:11:05.27 ID:BPOchcgZ.net]
C言語やる前に基本情報くらい取っとけ

38 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 13:12:30.95 ID:qBUpvu6j.net]
>>32
やあ、ひさしぶりだな。チンカス。
まだ底辺で蠢いてるのか? 末尾再帰は理解できたか?

39 名前:デフォルトの名無しさん [2015/05/28(木) 13:17:07.50 ID:uqfTz9n2.net]
>>33
仕事で勝手に身につける、前段階の不安を和らげる緩衝剤みたいな感じです。
>>34-35
丁寧にありがとうございます!
そっくりそのままノートにとって会社もってきますw
>>35の考え方凄くわかりやすいですね。最終手段「電卓」覚えときます。

40 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 13:47:31.11 ID:7y7wQ+Hc.net]
>>38
10進数の四則演算はどうやって覚えてきたか思い出すといい。

・まずは、16進2進の相互変換を覚える。(考えるのではない)
こうするとパッと見でビットパターンが浮かんで便利。
・16進一桁の加減算くらいは覚える。
こういうことをすると、n進数が身近なものに感じられるようになるんで、
変な苦手意識がなくなるからおすすめ。



41 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/05/28(木) 13:50:16.12 ID:BPOchcgZ.net]
そもそもshiftという英単語は、ずらすという意味を含んでいるからな

42 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 14:19:20.15 ID:BPOchcgZ.net]
※未承認広告※
さあ、ユーキ●ンで基本情報を取得しよう。

43 名前:デフォルトの名無しさん [2015/05/28(木) 17:32:52.86 ID:pwrXSWWR.net]
夕貴たんですか。

44 名前:デフォルトの名無しさん [2015/05/28(木) 17:48:55.24 ID:+ywrUonY.net]
基本情報どころか、いまやITパスポートレベルの知識。

ITパスポートに基本情報の問題がどんどん入ってきてる。

45 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 17:52:41.32 ID:9BOAlIFb.net]
こういうのは大丈夫なのか

#define LED1 (0x01)
#define LED2 (0x02)

PORTD |= LED1;
PORTD &= ~LED1;
PORTD |= (LED1 | LED2);
PORTD &= ~LED2;

46 名前:デフォルトの名無しさん [2015/05/28(木) 18:47:19.12 ID:qBUpvu6j.net]
末尾再帰を知らずに墓穴を掘ったチンカスくん(>>32)の爆笑発言
tech/1352812333/の876がチンカスくん

> From: [874] デフォルトの名無しさん <>
> Date: 2013/01/29(火) 12:37:44.50
>
> バカがうるさいので書き直してやるよ。www
> void free_l(struct l * restrict p) {
> struct l *next = p->next;
> free(p);
> if (next)
> free_l(next);
> }
>
> バカのいいがかりなんて所詮この程度の事。 バカには意味わからないだろうけどな。www

> From: [876] デフォルトの名無しさん <sage>
> Date: 2013/01/29(火) 12:58:33.48
>
> ここでwwwさんに問題です
> 天才には簡単な問題ですので必ず逃げないで答えてください
>
> スタックサイズが8MBのとき、このfree_l関数で解放可能な連結リストは
> 最大何個連結可能でしょうか?
>
> アーキテクチャは好きに選んでいいですよ

47 名前:デフォルトの名無しさん [2015/05/28(木) 18:49:56.50 ID:qBUpvu6j.net]
「アセンブリ」に過剰反応する理由が↓これ

> 884 : デフォルトの名無しさん[sage] 投稿日:2013/01/29(火) 14:41:33.76
> 別にちゃんと>>867を答えてもらってもいいですよ
> 答えられるならばの話ですけど

> 885 : デフォルトの名無しさん[] 投稿日:2013/01/29(火) 14:42:41.02
> >>884
> 制限なし。www
> これでいいのか。 www

> 890 : デフォルトの名無しさん[] 投稿日:2013/01/29(火) 15:24:04.07
> バカには読めないと思うけど、>>874のアセンブリリストね。 wwww
> pastebin.com/4pBPEWBG
>
> 読めなくて良かったな。バカ。 wwwww
> 読めてたら憤死するところだぞ。 wwww

48 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 21:17:36.02 ID:uqfTz9n2.net]
C言語勉強中とはいえビット演算のみ質問はかなりスレチに近かった・・・反省。
>>39
加減算覚えるの凄くよさそうですねトレーニングに取り入れたいと思います。
本当に日常で触れてなかったものの苦手意識排除は大変、がんばります!
>>41
絶賛勉強中ですw

49 名前:デフォルトの名無しさん mailto:冥利 [2015/05/28(木) 23:09:51.22 ID:+atrdthn.net]
>>45 >>46
よっぽどツボにはまったのねw

50 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 23:43:18.09 ID:qBUpvu6j.net]
>>48
ls -l ./progと肩を並べる赤っ恥



51 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 07:13:43.33 ID:UV9YC1hI.net]
あああああああ参照カウントあああああああ

52 名前:50 [2015/05/29(金) 08:16:00.19 ID:6ABPwQuC.net]
参照カウントの実装関連で質問です
実装中のリスト処理用関数popについて
struct list {
void *car;
void *cdr;
};
struct list *pop(void **place)
{
void *p = list_car(*place);
update(place, list_cdr(*place));
/* update(**void, *void) はカウントを調整して第一引数の位置に第二引数を代入する */
return p;
}

この関数でupdate(place, list_cdr(*place));のときにpのオブジェクトが回収されてしまって
もどったときにはごみになってしまします。
うまい方法はないでしょうか?

ps移動しているのでIDかわってしまうかもです

53 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 12:14:24.83 ID:6sq7SX0R.net]
所有権の移譲なのか、単にショートカットとしての変数への代入なのか
区別できていないからうまくいかないんじゃね? 知らんけど

54 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 12:40:50.62 ID:GiRGpazT.net]
どのへんが参照カウントなのかわからんけど、
ゴミになるって言うんだからmallocしてないんじゃね?

55 名前:51 mailto:sage [2015/05/29(金) 13:36:21.56 ID:UV9YC1hI.net]
>>52
所有権の移譲ってなんですか?

56 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 13:53:52.96 ID:6sq7SX0R.net]
void *a = malloc();

case 1)
 void *p = a;
 free(a);
 ....
 *p 等を使ったコード

case 2)
 void *p = a; a = NULL;
 free(a);
 ....
 *p 等を使ったコード

の違いみたいな論理思考
後者の case 2 は a のもちものだったものを p へ移してる

57 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 14:01:20.06 ID:8st5hivm.net]
update()のコードも張らずに

エスパー募集中か?

58 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 14:03:23.10 ID:6sq7SX0R.net]
>>56 list_car() list_cdr() も欲しいねw

59 名前:51 [2015/05/29(金) 14:07:43.16 ID:UV9YC1hI.net]
もうしわけない

void *list_car(void *obj)
{
enum gc_type type = gc_type(obj);

if (type == GC_TYPE_NULL) {
return NULL;
} else if (type == GC_TYPE_LIST) {
return ((struct list *)list)->car;
} else {
fprintf(stderr, "ERROR: TYPE\n");
abort();
}
}

void *list_cdr(void *obj)
{
enum gc_type type = gc_type(obj);

if (type == GC_TYPE_NULL) {
return NULL;
} else if (type == GC_TYPE_LIST) {
return ((struct list *)list)->cdr;
} else {
fprintf(stderr, "ERROR: TYPE\n");
abort();
}
}

60 名前:51 [2015/05/29(金) 14:08:17.84 ID:UV9YC1hI.net]
void *gc_update(void **place, void *obj)
{
if (place == NULL) {
abort();
}
gc_incref(obj);
gc_decref(*place);
return *place = obj;
}



61 名前:51 [2015/05/29(金) 14:16:01.63 ID:UV9YC1hI.net]
>>55
意味は分ったかもしれない

62 名前:51 mailto:sage [2015/05/29(金) 15:37:20.35 ID:UV9YC1hI.net]
decrefのカウントが0になってもフリーリストに行かない関数があればカウントが0のオブジェクトを返せそう?

return なにか(void *);

63 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 15:39:53.38 ID:cfB2m1BQ.net]
台形則を使って2重積分の計算をするプログラムを作ってるんだが、分かる人教えてクレメンス

関数はexp(x + y)で範囲はxもyも0から1ですね…

64 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 16:54:11.41 ID:8st5hivm.net]
>>61
gc_decref(*place); で car の内容のリファレンスカウンタが減算されるようになっているのか 。

p を pop() のリターン値として返すなら、pにコピーした時点で「移譲」だろうから、
p = list_car() の後で car に NULL を入れてしまうのが良いんじゃないか?

ところで…
pop() の戻りは list なのか。car の内容は object のような気がするが void* じゃないのか。

65 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 17:48:56.38 ID:hTQPDRSd.net]
>>62
https://www.wolframalpha.com/input/?i=integrate+exp%28x%2By%29+dx+dy%2C+x%3D0..1%2C+y%3D0..1

ideone.com/tjq3jd

なんか答えが違うんだよなあ?

66 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 17:54:35.44 ID:hTQPDRSd.net]
www.wolframalpha.com/input/?i=Integrate%5BIntegrate%5Bexp%28x+%2B+y%29%2C+%7Bx%2C+0%2C+1%7D%5D%2C+%7By%2C+0%2C+1%7D%5D

こう書いても同じか

67 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 18:07:32.85 ID:6sq7SX0R.net]
参照カウンタ式のGCとリスト構造… 循環参照とか大丈夫なのかね
ttp://d.hatena.ne.jp/moriyoshi/20080528/1211955227

68 名前:51 mailto:sage [2015/05/29(金) 18:09:45.20 ID:UV9YC1hI.net]
>>63
void *移譲(void **場所)

void *オブジェクト = NULL;

if (場所 == NULL){
えらー

オブジェクト = *場所;
*場所 = NULL;
if (オブジェクト == NULL){return NULL;}
オブジェクト->カウンタ -= 1; /* 0でも何もしない */
return オブジェクト;


これどーですか?

69 名前:51 mailto:sage [2015/05/29(金) 18:11:21.80 ID:UV9YC1hI.net]
>>66
プログラマ(自分)が意識的に回避

70 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 18:11:23.33 ID:cfB2m1BQ.net]
>>64
>>65
おおサンキュ

一応手元ではxの積分とyの積分を別々に考える(y方向積分時にx積分の関数を呼び出す)方法で解決はしたが…
まぁでも方向性は同じなはず^^



71 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 18:16:19.75 ID:8st5hivm.net]
>>66
他にGCモジュールがあると考えたいところ。perl のように割り切るとか。
まあ、循環参照はだめよって制限付きで俺もよくつかうがな。

72 名前:51 mailto:sage [2015/05/29(金) 18:30:42.84 ID:UV9YC1hI.net]
>>70
スルーしないで下さいよ

73 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 18:32:16.72 ID:8st5hivm.net]
>>66
> オブジェクト->カウンタ -= 1; /* 0でも何もしない */
はいらないような。
カウンタ0の物がふらふらしているのはどうかと思うんだが。
(Multi Threadに対応するときにいろいろいやなことになったりしそう)

74 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 18:34:53.91 ID:8st5hivm.net]
>>71
単にロードしてなかっただけ。
専ブラ使えなくなったんで面倒なんだよ。

75 名前:51 mailto:sage [2015/05/29(金) 18:46:16.27 ID:UV9YC1hI.net]
>>72
update(新しい場所,移譲(古い場所));

みたいな感じですぐにupdateの第二引数として利用することを想定しています

これなら問題ないと思ったのですが

>>73
これは失礼しました

76 名前:52 mailto:sage [2015/05/29(金) 18:53:56.18 ID:7AW8/kfN.net]
移譲という言葉で混乱させたようで済まない

>>74
move(新しい場所, 古い場所) を用意したら?
用途は 古い場所にあるobj を 新しい場所に移したうえで 「古い場所」そのものも GCで整理

77 名前:51 mailto:sage [2015/05/29(金) 19:33:06.21 ID:UV9YC1hI.net]
>>75
もっともなのですがそれだとpopを実装できないのです

78 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 20:01:20.59 ID:+1oUtA3O.net]
1000000以下のスミス数を求めるプログラム…実行時間47秒ってウンチ

79 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 21:37:50.92 ID:O1LEtnxT.net]
>>64>>65
x * yじゃなくてx + yだね
それとy2の計算が間違ってたのでうpしといた
シンプソン法でも同じ結果が出たから間違いないはず

ideone.com/EQJ4AP

80 名前:デフォルトの名無しさん mailto:sage [2015/05/30(土) 13:57:58.63 ID:nOufQzbT.net]
>>77
24秒 セレロン



81 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 05:14:20.17 ID:yKjUvmXa.net]
文字列を使う場合はchar[]型とstring型のどっちを使っていくのが賢いと思いますか

82 名前:デフォルトの名無しさん [2015/05/31(日) 08:09:17.66 ID:lLGn4l2b.net]
C言語にstring型なんてないだろ
あと、char[]型ってなんだよ

83 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 15:00:25.43 ID:9ldLUKuR.net]
C++11だとinline関数のアドレスは取得出来るけど、C99でアドレスを取得しようとしたら
エラーになりました
これって普通なんですか?gcc4.9.2です

84 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 16:11:29.11 ID:456RRL4M.net]
配列の質問です


const int N =100;
double* K = new double[2 * N];

for (int n = 0; n < N; n++){
K[2 * n] = -2
K[2 * n + 1] = 1
}

Kは2行N列の配列?下のfor文でどのように数値を格納しているのかわかりません、教えてください

85 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 16:15:59.59 ID:J91fllt7.net]
添え字が
偶数 (0,2,4,8, ...) の時に -2
奇数 (1,3,5,7, ...) の時に 1

86 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 16:25:35.08 ID:456RRL4M.net]
>>84
ありがとうございます
Kの中身は具体的にどうなるんですか?最初の法だけでも教えてください…

87 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 16:26:44.42 ID:J91fllt7.net]
K[0] =-2
K[1] = 1
K[2] = -2
K[3] = 1
:
:

88 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 16:30:32.88 ID:456RRL4M.net]
>>86
じゃあKは2*N行1列の配列ってことですね、勘違いしてました
ありがとうございました

89 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 17:23:52.40 ID:JzM7CxZP.net]
行とか列とかない
メモリが確保されて
そこにデータが書き込まれただけ

90 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 20:55:30.09 ID:60WsLIt6.net]
int main(void){
....
}じゃなくて

int (*main)(void){
....
}
といった書式で関数ポインタ定数を定義することが
できますか?



91 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 21:49:19.63 ID:rd0Fn6X3.net]
main 関数でソレをやりたいのか
関数のポインタを受ける変数を用意してそれに関数のポインターを代入して呼び出すことをしたいのか

int (*funcptr)(char*) = atoi;
funcptr("1"); /* atoi("1"); と同じ */

92 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:39:06.44 ID:CikCK20O.net]
>>89
そもそも何がしたい?

93 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:39:37.29 ID:60WsLIt6.net]
typedef int (*hoge)(void);

int Hoge(void){
.....
}

hoge h=&Hoge;

を一行で

int (*h)(void){
....
}
とするととコンパイルエラー
になるものなのでしょうか?

94 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:40:50.53 ID:+exp5V/e.net]
>>90
>といった書式で関数ポインタ定数を定義することが
>できますか?
という問いに対して適切に答えなよ。

95 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:44:07.94 ID:CikCK20O.net]
>>92
そんなことはコンパイラ聞け

96 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:44:43.22 ID:60WsLIt6.net]
エラーにならないコンパイラはないのでしょうか?

97 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:47:11.26 ID:CikCK20O.net]
>>95
無い事を証明する事は不可能

98 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:48:09.70 ID:rd0Fn6X3.net]
>>93
質問の意図が見えなかった
>>92 で見えた

>>95
文法的にそういうもんだからあきらメロン

99 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:48:28.00 ID:60WsLIt6.net]
int (*h)(void){
....
}

じゃなくて

int (*h)(void){
....
};

としなければなりませんね 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


100 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:55:27.29 ID:vGbHt5ax.net]
>>92
仮にそう定義できたとして、使う時は
int n = h();
なので、

int n = hoge();
と変わらんがな。



101 名前:デフォルトの名無しさん mailto:sage [2015/06/02(火) 00:10:34.87 ID:qU33NizW.net]
h=&fork;
とかできるんじゃ?

102 名前:デフォルトの名無しさん mailto:冥利 [2015/06/02(火) 01:37:37.30 ID:33LBbjfE.net]
>>89
int main() { ... }
という定義だけで、すでに main() は関数ポインタの定数になれる
codepad.org/dxZDelmk

103 名前:デフォルトの名無しさん mailto:sage [2015/06/02(火) 12:52:42.05 ID:qU33NizW.net]
int (*h)(void){
....
}=main;

を通さなければならなくなってしまう

104 名前:デフォルトの名無しさん mailto:sage [2015/06/02(火) 20:20:09.91 ID:QnN/H06v.net]
質問です。
PLACE-XYという座標の位置を表すメッセージを送ることによってサーバーとクライアントの通信を行いたいと思ってます。
そこでPLACE-XYのXYに座標の数字をいれる関数と受け取ったときのPLACE-XYの中から数字を読み取る関数を作りたいのですがどう扱ったら良いのか思い付きません。アドバイスがあればほしいです。

105 名前:デフォルトの名無しさん mailto:sage [2015/06/02(火) 20:22:26.55 ID:zkt06s+i.net]
とりあえず送受信するデータの仕様を決めようか

106 名前:デフォルトの名無しさん mailto:sage [2015/06/02(火) 20:41:29.63 ID:QnN/H06v.net]
データの仕様?どう言うことを書けば良いのかわからない素人ですがソケット通信でchar型の文字列をやり取りしたいです

107 名前:デフォルトの名無しさん [2015/06/02(火) 21:09:19.60 ID:nAzzGm8u.net]
snprintf(buf, sizeof buf, "place-%d%d",x,y);

108 名前:デフォルトの名無しさん mailto:sage [2015/06/02(火) 21:25:23.71 ID:uyxZ0XqT.net]
俺俺プロトコルなら、書きやすいようにやりとりすれば?

109 名前:デフォルトの名無しさん mailto:sage [2015/06/02(火) 21:43:49.77 ID:QnN/H06v.net]
>>106
ありがとうございます
そのような関数があるのを勉強不足で知りませんでした

110 名前:デフォルトの名無しさん mailto:sage [2015/06/02(火) 22:11:06.68 ID:Niuehz0N.net]
>>106
それだと、x=1, y=23 と x=12, y=3 の区別がつかんぞ



111 名前:デフォルトの名無しさん mailto:sage [2015/06/02(火) 22:25:31.71 ID:3gihuyeN.net]
固定長にすればええ

112 名前:デフォルトの名無しさん [2015/06/02(火) 23:36:57.15 ID:nAzzGm8u.net]
>>110
知らんがな
PLACE-XYと言ってるんだから一桁なんだろ。

113 名前:デフォルトの名無しさん mailto:sage [2015/06/03(水) 00:47:19.72 ID:yWNxAD6Q.net]
だからわしが最初に仕様を決めろと言うたんや

114 名前:デフォルトの名無しさん [2015/06/03(水) 06:57:11.11 ID:NXHMQekm.net]
そのくらいの応用力はあるだろ

115 名前:デフォルトの名無しさん [2015/06/03(水) 13:17:17.20 ID:0YkGcL3D.net]
初 コメです よろしくお願いします。
2ch初です。
皆さんにお聞きしたいことがあります

116 名前:デフォルトの名無しさん [2015/06/03(水) 13:18:33.35 ID:beedRIsP.net]
>>114
ラウンジで登録は済まされましたか?

117 名前:デフォルトの名無しさん mailto:sage [2015/06/03(水) 13:38:45.31 ID:yWNxAD6Q.net]
>>114
10年ROMってろ

118 名前:デフォルトの名無しさん mailto:sage [2015/06/04(木) 09:45:31.05 ID:xZqg6T5q.net]
関数?引数?について質問です
Aの関数で乱数を表示したいのですが、その乱数の範囲をBから持ってきたいとき、どう書けばいいのでしょうか・・・・・?

一応現在はこんな感じで詰まってます
int A(int x, int y)
{
int a;
srand(time(0));
a= rand() % x,y;
printf("%d\n", a);
}
int B(){
int x = 10;
int y = 50;
}


最近C言語をかじり始めたので右も左も全く分からないので
出来るだけ簡単に教えてもらえたらと思います
後で来たら関数と引数についても教えてもらえたらうれしいです
今使ってる本(Cの絵本)、わかりにくくて・・・・・

119 名前:デフォルトの名無しさん mailto:sage [2015/06/04(木) 10:29:04.62 ID:5RyB+4Qy.net]
質問失礼します。
+ - * / % == != <= >= < > を解釈できる四則演算プログラムを作ろうと思っています。
(文字列を式として評価する関数を書きたいという意味です。evalのようなものです。)
参考になるサイトや検索語句を教えていただけないでしょうか?
よろしくお願いします。

120 名前:デフォルトの名無しさん mailto:sage [2015/06/04(木) 11:07:17.19 ID:cR6kwSut.net]
構文解析、再帰下降パーサ



121 名前:デフォルトの名無しさん mailto:sage [2015/06/04(木) 11:25:30.54 ID:9A+TTI8r.net]
>>117
■関数の書き方
戻り値の型 関数名(仮引数の型 仮引数名)
{
 処理
}

■関数の使い方
変数の型 変数名 = 関数名(実引数の値);

122 名前:デフォルトの名無しさん mailto:sage [2015/06/04(木) 11:48:35.24 ID:7ARVbyZw.net]
>>117
ポインタ使う
int A(){
int x,y;
B(&x,&y);
return 0;
}
void B(int *x,int *y){
*x=10;
*y=50;
return;
}

123 名前:118 mailto:sage [2015/06/04(木) 14:47:20.52 ID:5RyB+4Qy.net]
>>119
ありがとうございます。

124 名前:デフォルトの名無しさん [2015/06/05(金) 16:34:11.30 ID:d3aFH/Fh.net]
古いPGでWinMainをこんな風に書いてるソースがあるんだけど、
これってどういう書式なんでしょう?

int PASCAL WinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow)
HINSTANCE hInstance;
HINSTANCE hPrevInstance;
LPSTR lpCmdLine;
int nCmdShow;
{
(以下略)

125 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 17:07:36.35 ID:rSavfMTp.net]
K&R風
(非ANSI)
(旧式)
(古い書き方)

126 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 17:36:03.01 ID:2LDBwz+W.net]
> 古いPG
古いプログラムのことか…
一瞬古いプログラマのことかと思った。

127 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 17:42:02.11 ID:2LDBwz+W.net]
あらためて確認してみたら、
gcc -ansi -pedantic -Wall t.c でも、
VS2013 で拡張子 .c だといずれも

128 名前:普通に通るんだな。
だからなんだってきもするが再認識したよ。
[]
[ここ壊れてます]

129 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 17:42:41.75 ID:azLqt+Ly.net]
製造工程をPGといったりするな

130 名前:デフォルトの名無しさん [2015/06/05(金) 18:22:06.17 ID:5S7ZX/zN.net]
C言語で金儲けできる?

需要あるなら今度の夏休みにでも学んでみようと思うんだが



131 名前:デフォルトの名無しさん [2015/06/05(金) 18:22:44.81 ID:5S7ZX/zN.net]
C言語で金儲けできる?

需要あるなら今度の夏休みにでも学んでみようと思うんだが

132 名前:デフォルトの名無しさん [2015/06/05(金) 18:23:14.79 ID:5S7ZX/zN.net]
C言語で金儲けできる?

需要あるなら今度の夏休みにでも学んでみようと思うんだが

133 名前:デフォルトの名無しさん [2015/06/05(金) 18:24:56.87 ID:5S7ZX/zN.net]
↑すまん書きすぎた

使い方がいまいちでな

134 名前:デフォルトの名無しさん [2015/06/05(金) 18:25:12.20 ID:5S7ZX/zN.net]
↑すまん書きすぎた

使い方がいまいちでな

135 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 18:57:54.51 ID:d3aFH/Fh.net]
>>124さん、>>126さんありがとう
元々VS6.0で使われてたっぽいんですが、そのまま2010に上げたら通りませんでした
.c単体なら通ったのかな

136 名前:デフォルトの名無しさん [2015/06/05(金) 19:04:47.60 ID:S5X6xzp7.net]
>>126
-ansi -pedantic -Wall -Wextra -Werror は?

137 名前:デフォルトの名無しさん [2015/06/05(金) 19:05:08.95 ID:eCq9CBBu.net]
C言語で金儲けできる?

需要あるなら今度の夏休みにでも学んでみようと思うんだが

138 名前:デフォルトの名無しさん [2015/06/05(金) 19:05:17.48 ID:BQj/liI5.net]
C言語で金儲けできる?

需要あるなら今度の夏休みにでも学んでみようと思うんだが

139 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 19:13:37.40 ID:sjgHnZg8.net]
ない

140 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 22:54:41.28 ID:94pg9g/v.net]
需要を生んでるアンドロイドのカーネルはC言語なのに
皮肉な話



141 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 23:04:24.61 ID:zIdlcfi4.net]
>>135
>C言語で金儲けできる?
>
>需要あるなら今度の夏休みにでも学んでみようと思うんだが

根本的な疑問なんだが、既に論理レベルで無理があるよ。
・「今度の夏休みにでも学んでみよう」で間に合うくらい、のんびりした情勢
・実情が判らない程、知名度が低い
・金儲けできる
これが同時に成り立つとでも?

142 名前:デフォルトの名無しさん [2015/06/05(金) 23:37:00.11 ID:VYlCQBeJ.net]
>>135
夏休みじゃ間に合わないなら、それからもコツコツ学生の本分をない程度にがんばればいいだけの話だから問題ないんだか

143 名前:デフォルトの名無しさん [2015/06/05(金) 23:37:07.73 ID:5Ys1lSP5.net]
>>135
夏休みじゃ間に合わないなら、それからもコツコツ学生の本分をない程度にがんばればいいだけの話だから問題ないんだか

144 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 00:36:04.07 ID:aeT9N6Fg.net]
てか、今さらひとつの環境で開発できることがなんになると。
何でも出来て初めて使い物になるんじゃねーの。

そう言う視点では C を十分に使えればかなり応用は利くとは思うが。

145 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 00:55:24.80 ID:M49TyJvh.net]
夏休みもオナニーしかしてなくて中退したQZのセリフがこれよ

146 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 01:12:07.52 ID:DXSt7rl7.net]
((void(*)(void*))NULL)(NULL);
って合法?

147 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 01:24:35.00 ID:M49TyJvh.net]
QZのオナニーは違法

148 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 10:08:02.98 ID:PtEDnCef.net]
>>134
-Werror はどーでもいいが。
何か問題あったのか?

149 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 11:41:45.06 ID:BYDNcOl5.net]
QZ今更の亀自演は滑稽

150 名前:51 mailto:sage [2015/06/08(月) 12:51:54.90 ID:GgbWgDDx.net]
>>146
extraはさらに厳しいよ



151 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 12:52:26.03 ID:BYDNcOl5.net]
QZ脳の処理能力は低いよ

152 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 15:10:33.41 ID:PtEDnCef.net]
>>148
-Wextra のことはわかってるさ。
-Werror は warning を error 扱いにするってだけ。
だから、実際に自分でやってみろよと。(それであえて過去形で書いた)
で、なんか問題あったのかと。

もし問題があったら、エラーメッセージを張ってくれ。

153 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 12:01:19.29 ID:2Km67azR.net]
最近勉強を始めて、今は苦Cを終わった位なのですが、

複数部署から来る共通フォームのエクセルファイルを自動的に合成し、合成後のエクセルファイルには
特定のセルに当日の日付が自動入力されたうえで当日の日付を付加した件名で
特定のメールアドレスへ自動添付・送信する

といった事ができるアプリはどれくらいのレベルになれば作ることができますか?

154 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 12:12:23.95 ID:c263dHgV.net]
ちなみに、合成というのは
例えば総務課からきたエクセルファイルはセルA1が3、資材課からのものはA1が5だとしたら
合成後のA1は8になるといったような、そういう意味です。

155 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 14:19:17.92 ID:L1K91O/r.net]
C言語だけじゃなくてメールサーバーも必要になってくる
合成自体は簡単にできる

156 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 15:03:56.83 ID:ld51Zz1O.net]
>151
何が必要か思い浮かべられ、必要な情報を探す手段に見当がつくレベル。

157 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 15:04:32.67 ID:ld51Zz1O.net]
メール送信は外部コマンドでやった方が楽。

158 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 23:55:31.46 ID:kv4tRjkv.net]
>>153
会社みたいだからメールサーバーはすでにあるんじゃね?

>>155
俺なら普通に CDO.Message かな

159 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 00:24:04.91 ID:FdcJfrL9.net]
言語なんてしょせんシステム設計・構

160 名前:築の一部分にすぎない []
[ここ壊れてます]



161 名前:デフォルトの名無しさん [2015/06/13(土) 00:51:09.93 ID:qA+DQ73k.net]
C言語の基本制御構造って

@繰り返し
A順次実行
B条件分岐

の3つですが、それ以外に一つ加えるとしたら何ですか?
スキップ(gotoなど)は無しとします。

学校の課題です。
こういう哲学的な課題多いんですよねうちの大学…
いやになる…創造力高めるにはいいかもしれませんが…

何か面白いアイディアありますか?

162 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 00:58:37.90 ID:9xUE/oHF.net]
関数の呼び出しは?

163 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 01:04:02.46 ID:54ObALVU.net]
構造化言語と習ったんじゃないの?
なら、自動的にその3構造と関数でしょ。

164 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 09:49:59.74 ID:C2f6Oj6w.net]
「come from 制御構文」でググれ

165 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 10:00:08.21 ID:eNaPfsID.net]
構造化プログラミングかな?????

166 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 11:31:02.92 ID:FdcJfrL9.net]
>何か面白いアイディアありますか?

167 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 12:04:35.06 ID:oK+WKOcZ.net]
>158
複数言語勉強して、実装されてない機能を何とか再現してみる。

168 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 12:37:16.36 ID:FQeTzdta.net]
>>158
コルーチン かな

169 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 13:48:16.23 ID:sRRTm1aY.net]
>>158
アイデアじゃないんだけど、俺、昔習った時から、その3つの要素に疑問があるんだよねー。

反復って、分岐と順次の組み合わせじゃね?
「ダイクストラさん?(たぷたぷ)」的な。

170 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 14:42:15.59 ID:C2f6Oj6w.net]
分岐が反復と順次の組み合わせ、だろ?
構造化プログラミングの場合、分岐で後ろには戻れん。



171 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 15:22:18.42 ID:FxAuvF7G.net]
>>166
分岐って要するに if 文だよ
if 文だけでループ組める?

172 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 15:31:24.01 ID:fEOfnJ82.net]
if 〜 goto 〜

173 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 15:42:42.44 ID:FK3HwmC5.net]
同じ処理を並べればええ

174 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 10:18:10.05 ID:ocyd5wvL.net]
>>158
再帰呼び出し

175 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 15:02:01.64 ID:HbVleRJY.net]
>>169
if 文だけ (= goto 文は使っちゃダメ) って理解できてないのか?

176 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 15:58:32.79 ID:ks9BlnmQ.net]
>>158
例外処理

177 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 16:20:28.33 ID:HETOIAim.net]
Cならポインタから逃げられない。

178 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 20:53:31.76 ID:Gyw+v9nI.net]
すみません質問させてください。下のコードは入門書に書いてあるものなのですが、
「total」の存在意義がわかりません。totalって言いたいだけなのでしょうか?

#include <stdio.h>

int main(void)
{
int i, total = 0

printf(“これはfor文のテストです。\n”);

for(i = 0; i < 10; i++) {
total += i;
printf(“現在のiは%dでtotalは%dです。\n”, i, total);
}
printf(“totalは%dです。\n”, total);
return 0;
}

179 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/06/14(日) 20:56:47.08 ID:9/1vIhJD.net]
>>175
totalは0から9までの和になる。それだけ。

180 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 21:04:02.65 ID:Gyw+v9nI.net]
>>176
鈍器で殴られたような衝撃!
ご回答ありがとうございました。



181 名前:175 mailto:sage [2015/06/14(日) 21:22:03.17 ID:Gyw+v9nI.net]
すみませんもうひとつ質問を忘れておりました。>>175のコードにある

int i, total = 0

これは、変数「i」変数「total」の宣言と変数「total」の初期化をしたものと考えていいでしょうか?
別の入門書で、変数の宣言は一行にひとつが普通である、と読んだ気がしたので気になっております。

182 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 21:34:39.65 ID:HbVleRJY.net]
>>178
> 別の入門書で、変数の宣言は一行にひとつが普通である

そう、にちゃんのように行数制限があるとかでない限り
int i;
int total = 0;
って書いた方がいい

183 名前:175 mailto:sage [2015/06/14(日) 21:39:12.73 ID:Gyw+v9nI.net]
ご回答ありがとうございます。
モヤモヤしていた気持ちがすっきりしました。

184 名前:デフォルトの名無しさん [2015/06/14(日) 21:39:35.24 ID:M+qlsClk.net]
>>178
そういう宣言は書籍でしかしない。

185 名前:175 mailto:sage [2015/06/14(日) 21:52:59.77 ID:Gyw+v9nI.net]
なるほど。>>179さんが言われている紙面の都合なのでしょうかね。

186 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 00:39:41.77 ID:syb1bV3z.net]
モヤモヤさまぁーず面白い

187 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 19:23:30.15 ID:HVniWzEy.net]
疑問に思うんですが、何でバグを徹夜するまで見つけるのは大変なんでしょうか?
だってコンパイルエラーの場合、ちゃんと間違ってる箇所が表示されますよね。
C言語の場合組み込みで単純だからなおさらデバッグは簡単だと思います。
プログラマになったことないんでわかりませんが、何故大変なのか教えて下さい。

作ることが難しいのは分かります、でも何故デバッグが大変なのか?

188 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 19:32:04.86 ID:da/P1e7k.net]
>>181
for(int i = 0;....)
という書き方を許している現場ならともかく、
一時的な変数と何かの重要な結果を保持するための
変数は改行して宣言するだろう

189 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 20:05:44.08 ID:tF6rLPWO.net]
>>184
難しいバグは大抵、
1. タイミング系のバグ
2. 組み合わせ系のバグ
のどちらか

タイミング系としてよく引き合いに出される例としては、同一の口座から A/B 二人が同時に預金を引き出したらどうなるかって奴
www.ncad.co.jp/~arai/pro3seminar/java/first_java/3term/unit13/4period.html
まあ、こんなのは初歩の初歩で、実際はこれに加えて機器の故障とか、ネットワークエラーとかが絡んだりして想定外の事態になったりする
タイミング系はなかなか再現しなかったりするのでホントに地獄を見る

組み合わせ系って言うのは、色々なパターンのうち特定の場合だけおかしくなるって奴
こっちは条件さえわかれば再現も容易だし対策も大抵楽
ただ、ガチな奴はパターンの数が半端ないのでテストはひたすら体力勝負だったりする
有名どころではこんな奴とか
www.publickey1.jp/blog/12/_1040_1.html

どっちにしろお仕事にするには結構地味でキツいからよほど好きでないと勧められない

190 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 20:22:27.90 ID:HVniWzEy.net]
>>186
それは排他的ロック機能を実装してればいいだけでは?



191 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 20:31:39.75 ID:beEOQH6x.net]
仕事だと数万行〜数十万行は普通にあるからな

192 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 20:41:39.35 ID:HVniWzEy.net]
javaみたいにsynchronizedでロックすればタイミング問題はでてきようが無いのでは?

193 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 21:04:59.86 ID:tF6rLPWO.net]
>>187
もちろんそうだけど、複数の要因が絡んでくると排他とかタイマーとかを適切に掛けていくのは結構大変
前のレスにもちらっと書いたけどエラー処理とかが鬼門で、排他を解除し忘れたり、逆にリトライするから解除しちゃダメなのに解除しちゃったりとかね

普通の会社のソフト開発って別に難しいことはやってないのよ
規模が小さきゃホントに楽勝
でも、でかくなると地獄ですよ
マジで人間の管理できる範囲を越えてると思うことがよくある

194 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 22:13:38.88 ID:HVniWzEy.net]
>>190
分かりません。

Aが使ってるときはB,C,D.......n
Bが使ってるときはA,C,D.......n

という風に全部の排他条件かけばいいだけじゃないですか?

つまりn^2通りの条件をかけば解除し忘れなんて起きないと思います。

195 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 22:24:42.38 ID:O49G9Oy4.net]
まあ、人間が作るからねー
他人が作った何万行もあるソースのデバッグとか想像できないかな

196 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 22:29:41.58 ID:HVniWzEy.net]
ビルトインで排他制御するような関数ってないんですか?
処理を書かなくてもいいみたいな。ダメなんですか?

197 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 22:35:38.75 ID:HVniWzEy.net]
>>186
色々なパターンの内特定…

例えばポケモンで特定の操作したらセレクトBセレクトBだっけ?
マスターボールが増えるみたいな裏ワザありましたけど

特定の操作でバグが出るって全部調べたら無限なんじゃないですか?
どうしてるんでしょうか?
例えばAボタン2回押して、Cボタン3回押したらそのゲームのプログラムが
全て消えるみたいなバグもあり得るわけじゃないですか?
デバッガはそういった組み合わせも調べるんでしょうか?
無限にあると思いますが…

198 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 22:58:01.13 ID:O49G9Oy4.net]
>>194
試験は想定されるものはするよ
例外はそれなりの処理に落とす
ここに人的要因が入ったりするね

199 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 23:25:46.06 ID:GRyCax2n.net]
>>191
> Aが使ってるときはB,C,D.......n
> Bが使ってるときはA,C,D.......n
複数の資源の排他は同時には掛けられない(掛けられる環境もあるけど)ので、うまく掛けないとデッドロックするよ

>>194
>>186 の下側のリンク読んでないでしょ?
パターンが爆発してる場合のサボり方が書いてある

200 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 01:42:30.79 ID:AEj3cofu.net]
プロセス管理や排他的制御、割り込みがどうとかは
Linuxによる並行プログラミング入門
www.kyoritsu-pub.co.jp/bookdetail/9784320123809
などで体験できる。

そもそもOSレスでそれらをどう実装するのかというのはこの本で体験できる
12ステップで作る 組込みOS自作入門
kozos.jp/books/makeos/

やってみないと何が大変かもいまいちピンとこないしね



201 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 04:31:36.29 ID:tIKZNiHl.net]
>>189
結局メソッド synchronized は意味がないとか‥
ダミーメンバに synchronized をかけてお茶をにごしたりとか‥

202 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 09:26:59.12 ID:pine8kAl.net]
>ID:HVniWzEy
バグを100%無くすことは無理ってのが一般的な認識。

ゲームのデバックは開発者視点で想定されるプレーを確認するほか
専門の会社にお願いして色々試してもらうこともある。
同じソフトを1年以上デバックし続ける人も居たとか。

203 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 12:59:48.95 ID:LYmWlU65.net]
つーか、スレ違いだがね。

204 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 20:10:32.47 ID:YyzkFynf.net]
デバッ「ク」言うなw

205 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 21:30:45.54 ID:LUerVH9f.net]
モニターと手元をビデオ撮影しながら
ひたすらゲームを進行するデバッガー

206 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 21:58:38.16 ID:CyVJ8sZt.net]
じゃ、ディバッグ

207 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 00:16:10.01 ID:/BnSA0cx.net]
>>203
正しくはデバグ。

208 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 07:44:44.01 ID:VfvGCcW6.net]
虫取り

209 名前:マ○コデラックス mailto:sage [2015/06/18(木) 08:14:41.43 ID:/h/hM0No.net]
正しくはテスター

210 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 20:26:49.17 ID:dz4KgSgw.net]
猿楽庁みたいなもんか
サーガで評判落としたあとは順調なんかね



211 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 21:34:17.32 ID:utDPh+CX ]
[ここ壊れてます]

212 名前:.net mailto: C言語って機械語に親和性があって一番高速な言語なのに何故時代遅れなんですか?
例えばjavaだとJVMを挟むため遅くなるんですよね?
何故Webプログラミングはjavaじゃないの?javaのapiが豊富って言うんであれば
cもjavaと同じapi作ればいいだけでは?

長年の疑問です。
[]
[ここ壊れてます]

213 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 21:35:49.01 ID:utDPh+CX.net]
何故WebプログラミングはCじゃないの?
って書こうとしました。

214 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 21:36:16.60 ID:utDPh+CX.net]
ライブラリが無いなら作ればいいだけ
インクルードすればいいだけですよね?
何故それでもjavaの方が強いんですか?

215 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 21:45:05.62 ID:tQGft1o9.net]
別にcで拵えても構いませんが。
今更エスペランで論文書く奴がいないのと同じことでしょうね。

216 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 21:45:57.46 ID:utDPh+CX.net]
>>211
でも何でCがこんなに影になってるんですか?
Cの方が早いからネットだってCですればやはいやずです。

217 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 22:01:08.44 ID:6P1dVElz.net]
>>212
費用対効果

218 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 22:28:09.85 ID:utDPh+CX.net]
>>213
どういうこと?

219 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 22:47:25.39 ID:XV9e/l6B.net]
>>214
最底辺のWebプログラマは単価が安い。
従ってCでプログラム作れる能力が無い連中がやっている。

220 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 22:54:45.96 ID:gg5jKUmS.net]
Cにライブラリや文法を追加したのがJava
JavaもCみたいなもん



221 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 23:06:56.12 ID:6P1dVElz.net]
>>214
すべてに最速が必要ではないでしょ
必要十分であればよい
であれば開発速度やコストいい方選ぶ、と

222 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 23:20:28.41 ID:IwG5+EZ4.net]
なんか定期的にこういう人来るよね
ひょっとして同一人物の発作かなにかなのか?

223 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 23:31:42.53 ID:utDPh+CX.net]
>>215
Webプログラマ、この時点で優秀な印象ですが。
>>218
すいません
C言語信者なものでして…


もう一つ質問していいですか?
何故ではC言語とjavaは組み合わせられないんでしょうか?

だってC言語はDirectX関数と組み合わせられますよね?
これってC言語コンパイラがDirectX関数をコンパイルできるからですよね?
何故javaはCと一緒にコンパイルできないんですか?

#include<stdio.h>
#include<java.io〜〜〜>ないしは
import java.io〜〜〜

こうすれば呼び出す事可能じゃないんでしょうか?

224 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 23:33:22.33 ID:utDPh+CX.net]
すいませんコンパイルの意味がイマイチわかっておりません。

コンパイルってようは機械語に変換ですよね?

インタプリタ=一行ずつ実行させる、機械語に変更しなくてもいい
       C言語に変換→結局コンパイルすることになる。
コンパイル=機械語に変換

っていう理解でOKですか?

225 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 23:43:30.21 ID:6P1dVElz.net]
>>219
directXが何なのか調べてきなさいよ
Cに限った話でもないのでどっかいってください

226 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 23:53:55.21 ID:utDPh+CX.net]
>>221
directx関数が入ったコードをコンパイルできるのは何故ですか?
Cコンパイラがdirectx関数を機械語に変換してるからじゃないんですか?

227 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 00:00:19.23 ID:FniMMr/q.net]
directxは3Dグラフィック処理をするライブラリという認識でOKですか?

228 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 08:05:08.92 ID:MeGCLoar.net]
アスペ?

229 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 08:17:41.58 ID:MB4MRZfb.net]
>>218
な。

230 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 08:28:29.63 ID:FniMMr/q.net]
何故cコンパイラはdirectx関数を処理できるんでしょうか?



231 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 09:32:40.60 ID:DBid4MbY.net]
コンパイラっていうかリンカじゃね
直接directxのソースコードコンパイルしてるわけじゃないでしょ

232 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 09:35:16.93 ID:buUHCe5z.net]
COMとか関数のポインタとか 色々ラップしてるが、OS経由ドライバ任せ

233 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 09:45:13.60 ID:zZYO0iBz.net]
動的にリンクしてるだけだろが

234 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 09:55:33.78 ID:DBid4MbY.net]
まあでもdirectxを作った人はたぶんC言語+アセンブラで書いてるんだろうからCコンパイラで処理できるんだろうけど

235 名前:デフォルトの名無しさん [2015/06/20(土) 13:47:35.11 ID:KMXAV3mj.net]
JavaでもJavascriptでもネイティブ生成できるだろ。

236 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 17:26:26.75 ID:sYEsQufD.net]
何言ってんだこの馬鹿

237 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 17:53:33.40 ID:5vFhCPnH.net]
C言語の標準関数でカレントフォルダのファイル一覧を取得する関数ってある?

238 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/06/20(土) 18:01:27.86 ID:RdU0NHX6.net]
>>233
ないね。opendir
FindFirstFile

239 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 19:14:16.27 ID:5vFhCPnH.net]
>234
やっぱり無いのか。
どうもありがとう。

240 名前:デフォルトの名無しさん [2015/06/20(土) 20:09:18.79 ID:cnYcb5r+.net]
>>215
WebはCで作れる必要ないんじゃないですか?
単科が安いのは分かりますが、何故Cで作れないと否定的な見方なんでしょうか?
実はWebもCで作った方が高品質で、優良企業はCでWebプログラミング作ってるんでしょうか?



241 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 20:31:03.35 ID:gzoCELj1.net]
union Val
{
int ival;
float fval;
};

int foo(Val* v);
のようなライブラリがあるのですが、これの実装者は
渡されたものがint floatのどちらで格納されたかわからないのに
どうするつもりなんですかね?

242 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 20:49:49.27 ID:denOUvbB.net]
>>236
誰にでも出来ることは価格競争になって、性能や品質は二の次になってしまう。
そうするとハイスペックな人から離れていく。

C/C++でサーバーサイドやってるでかいところもあるけど、全体から比べればほんの一部。

243 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 21:03:36.49 ID:CvmegYmq.net]
コストだけはひたすらかかるけど
Cならではのメリットがはたらかないんじゃないか

244 名前:デフォルトの名無しさん [2015/06/20(土) 22:00:14.69 ID:St40Zxbh.net]
これってどういうことですか?
プログラム的には間違ってないはずなのですがなぜか実行できません
開発環境は「Microsoft visual studio 2010」を使ってます。
imgur.com/AQ5ZIQA.jpg
--------------------------------------------------------------------------
# include <stdio.h>

int main(void)
{
int suuti;
scanf("%d",suuti);
if (suuti - 10) printf("入力値は 10 ではありません。\n");
return 0;
}

245 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 22:06:28.53 ID:YQlfkZgo.net]
プログラム的に間違っています

246 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 22:10:29.20 ID:IMO/g3og.net]
>>240
亨くん、scanfの引数を確認するんだ

247 名前:デフォルトの名無しさん [2015/06/20(土) 22:13:30.41 ID:zZYO0iBz.net]
なんで値渡ししてるの

248 名前:デフォルトの名無しさん [2015/06/20(土) 22:28:28.37 ID:cnYcb5r+.net]
>>238
あーなるほど
でもWebプログラマなんて誰でもできるとは思えないですけどね

249 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 22:50:23.57 ID:cnYcb5r+.net]
仕事のC言語より個人の趣味でやるCのほうがレベル高いなんてケースってあるんですか?
C言語=組み込みだからどうしてもプライベートでは学べないCの奥深さっていうのを仕事で
学べると思うんですが、実際組み込みプログラミングやってる人が俺のやってる事に比べたら
はるかにレベル低いなって思ったりするんでしょうか?

250 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 23:00:03.94 ID:YQlfkZgo.net]
普通に有る
むしろ趣味で好きでやっている人の方がレベル高い傾向じゃないかな。

仕事で見るソースは、、もう一度入門書読んでみようか、なコードだらけで、
それを、単体テスト、結合テスト、評価による試験でバグを出しまくって
それを修正しまくって、ソースはぐちゃぐちゃだけど何故かw仕様通りに動くものを
作ってリリースするからなww



251 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 23:18:32.47 ID:DBid4MbY.net]
組み込みはほとんどコードを書かない
仕様書作成と会議と試験が業務の9割
しかも検査が糞やりにくい
VisualStudioで作るGUIアプリみたいにビルドボタン一発で動作確認とかできない
画面が出ないものすらある
オシロスコープで電圧が使用通りに出てるかを確認したりしないといけない
もはやソフトウェアエンジニアと言える職業ではない
メーカーの仕事は設計と実装を完全に別物と捕らえていて
完璧な設計書が作られていることを前提に実装はただの作業員として扱う
コーディング時のクリエイティビティなんか完全にスポイルして開発を進めていく
そのくせ設計書は不備だらけで面倒臭い部分は後工程に丸投げの無責任だから
完全にモチベーションをゼロにされる
それが組み込みのC言語のプログラミングの仕事だ

252 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 23:20:00.38 ID:CvmegYmq.net]
あえて難しいことを避けて避けて避けるというのも技術の内

253 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 01:05:13.50 ID:3VZnQzoZ.net]
メカトロなんか、機械(力学)・電気電子回路・コーディングの3部門が、
お互いを馬鹿にして、バグのなすりつけ合い

だから、力学・電験3種・コーディングの、
3つとも出来る人は、すごい

プルアップ・プルダウン抵抗とか、
機械系と情報系では、別電源を使うとか、
リレー(PLC)、一点アースなど、
基本がわかっているソフト屋は強い


基礎入門 ブレッドボードではじめるマイコンプログラミング
2010、青木直史

PICマイコンでC言語だが、この本を読んでみて

254 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 09:29:12.19 ID:ZcGcKAux.net]
電験2種とAP、ES持ちのブラック底辺のぼくが来ました
月給23万円です。

255 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 09:44:57.14 ID:V01ss4k7.net]
>>244
ところが、誰でも出来るんだよ。
自社のバグの存在に発見出来ず、サーバーの停止は、善良な市民の不法行為だと客に説明し、
客に刑事告訴させ、善良な市民を逮捕させた三菱のSIer。最低だと思うだろ。

こういうSIerの使いっ走りが、大部分のWebプログラマのポジション。

256 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 10:12:09.58 ID:uT2pVaOW.net]
メーカーに関わってる仕事は全部ゴミ

257 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 10:39:43.69 ID:bOKloAAb.net]
と、社会のゴミが言っております。

258 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 12:56:17.95 ID:uT2pVaOW.net]
本当に日本のメーカーはゴミだからな
家電は馬鹿チョンカメラと馬鹿にしていた韓国メーカーに完全敗北したし
Sonyはiphoneを作れなかった
自動車の自動運転技術でもGoogleが先行していて今後ソフトウェアの重要性が増すにつれ
日本の自動車メーカーも優位性を保てなくなるだろう
ソフトウェアの重要性を軽視して若者使い捨て技術蓄積放棄してきた結果
本当に日本のメーカーは世界競争に負けた責任を取って若者主導のベンチャーに投資ぐらいして当然だ

259 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 13:33:57.21 ID:ZcGcKAux.net]
でもお前無職じゃん???

260 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 13:55:45.83 ID:BPdaawwb.net]
>>254
特許を完全に無視してるよな朝鮮人って



261 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 14:24:54.63 ID:k0Gw61eH.net]
韓国も朝鮮人ですか?

262 名前:デフォルトの名無しさん [2015/06/21(日) 17:41:37.15 ID:mh4IeNEV.net]
>>246
ソースはぐちゃぐちゃだけど何故か動くって、不良品に繋がる可能性高くないんですか?
電化製品の不良品って命に関わるレベルだと思うんですが…

263 名前:デフォルトの名無しさん [2015/06/21(日) 17:44:59.68 ID:mh4IeNEV.net]
でも組み込みのオシロスコープ検査ってのはプログラマーはやらないんじゃないですか?
だってプログラマはあくまでシミュレーターで実験するだけだと思うんですが…

264 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 17:46:39.51 ID:BziqIqe8.net]
自分は世の中の全てを知っていると言う思い込みが強そうだw

265 名前:デフォルトの名無しさん [2015/06/21(日) 17:47:35.63 ID:mh4IeNEV.net]
不備だらけの設計でも最終的には商品になるってことは、結局誰かが縁の下の
力持ちになって相当な頭脳を発揮してるってイメージなんですが、それは誰なんでしょう?
設計を修正する設計者なのか、プログラムで設計の不備を補うプログラマなのか…

266 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 18:44:29.73 ID:GgfmtYLJ.net]
設計を修正し、プログラムを修正し、抜けてる試験を回す私です。ホントニ

267 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 18:51:30.89 ID:XaWI7cF/.net]
基本、人海戦術だなw
設計からプログラマから評価から、そして製品が出てからのサポート担当

268 名前:デフォルトの名無しさん [2015/06/21(日) 19:14:51.10 ID:mh4IeNEV.net]
製品が出てからサポートって
不良品の場合サポートで対応できる限界超えてるのでは?

269 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 19:26:25.44 ID:XaWI7cF/.net]
いや。対応しなくちゃならない。
何十万台のリコールとか聞いたことが無いか?
それだけの台数を全てサポートし、修理するということだ。

270 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 19:36:21.03 ID:7nlclQFw.net]
スレ違いなので



271 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 20:28:35.04 ID:5j8C2sGK.net]
相手すると余計に暴れだすぞ

272 名前:デフォルトの名無しさん [2015/06/21(日) 20:43:20.42 ID:yr9/lfvl.net]
全ての要素が1である10×10行列の要素をある条件に従って0にし、すべての要素を足し合わせた結果を表示するc言語のプログラムがうまく動きません

入力が1,1,3,2,6のときは95
2,1,3,2,6,1,3,4,7なら94
4,1,3,2,6,2,6,3,8,1,8,2,6,2,2,3,6なら82を表示すれば正しいのですが、違った値が表示されます。
プログラムのどこが間違っているのか教えてくれませんか?

コードは下のやつです
codepad.org/PuM1hFdA

273 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 22:01:06.92 ID:mh4IeNEV.net]
純粋に思った疑問なんですが、
明らかに実行されるはずなのに、実行されないケースってあるのかなと思いました。

printf("入口");
printf("hello world");・・・@
printf("出口");

この@が実行されないケースって実際のプログラミングであるんでしょうか?
こういう場合って本当どうするんでしょうか…
つまりコードとして書いてあるのに実行されないケースです。

274 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 22:09:44.53 ID:mh4IeNEV.net]
例えばprintfっていう例がわるかったですね。

printf("入口");
draw("hello world");・・・@
printf("出口");

このように実装関数の場合、明らかにdrawは実装ミスがないという根拠が
あった場合、draw自体の関数の設計は見直さない、他に原因があるんだって
いう流れになるんでしょうか?

275 名前:デフォルトの名無しさん [2015/06/21(日) 22:35:48.06 ID:DaSOQbmK.net]
>>270
drawをスタブにしてみろよ。

276 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 11:20:59.81 ID:U5ZZW/Pf.net]
>270
OS、コンパイラ、ライブラリのバグ、ハードの故障。
動きをトレースして原因を絞って各担当に連絡して直してもらう。
時間がなければ回避手段が無いか検討。
それでもダメなら土下座。

イレギュラーな懸案はその都度考える。

277 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 11:44:22.29 ID:Jxy34/JH.net]
まずはパラメータとdrawの仕様確認するだろ

278 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 12:08:17.55 ID:MaxvP/1L.net]
>>270
ユーザーの違法行為が原因だと客に説明する。

279 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 13:22:07.63 ID:aymjWIxI.net]
可能であればその draw 関数にログ出力でも追加したバージョンで実行して貰って、
・確実にその関数を呼び出していることを確認する
・呼び出されてるとして、パラメータが適切であるか確認する
・同様に内部で想定外の動作をしてないか(=バグ)を確認する

くらいのことはするかも知れない。
269 にあるように、ユーザがボケてて実は呼び出してない or 変なパラメータを入れてるってことはザラにあるし。

280 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 19:03:41.37 ID:SYQS3vBP.net]
通常自分でプログラミングしてるとコンパイルエラーがだいたい100回は出るのですが
これって多いほうですか?1000行くらいのプログラムコードです。

;の付け忘れやら、アクセスできないインデックスで配列にアクセスしたりと
色々あります。



281 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 19:14:08.90 ID:44quCRbj.net]
>アクセスできないインデックスで配列にアクセスした
これコンパイラでつかまるの?

282 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 19:56:16.28 ID:ILh0wq8G.net]
>>276
その100回エラーはいつ出るんだよ?
1000行のプログラムを書く場合、100行くらいの関数を一個作ったら取り敢えずビルドしてテストすると思うがその時に100個のエラー出るのか?
それとも1000行書き上げるまで一度もビルドせずに1000書いてから初めてビルドしたら100個のエラーなのか?よく分かるように書いてくれよ

283 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 20:01:04.01 ID:YsLRwNcZ.net]
C言語で仕事していてモチベーションがあがるときってどんな時ですか?
何かプログラミングは詳しいけど仕事に対しては文句が多い気がします。
Cで組んでいて仕事で充実したこと、自分のスキルが活かされたなって思う瞬間が
あれば教えて下さい。当方プログラマになりたいと思っております。
向いてないかもしれませんが、みなさんがどういった心理状態、将来への展望を抱いて
プログラマやってるのか不思議でなりません。

284 名前:279 mailto:sage [2015/06/22(月) 20:25:05.35 ID:YsLRwNcZ.net]
https://www.youtube.com/watch?v=oOwjKaqZFXs
皆さんは
仕事が割り込んでもそれを片付けるとかこのレベルまで行ってるの?

285 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 21:12:32.23 ID:cwbWWa9D.net]
>>276
それ知ってどうすんの
傾向わかってんだったら今後注意すりゃいいだけでしょ

286 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 21:25:05.55 ID:aymjWIxI.net]
>>279
自分の作ったプログラムが出した指令に基づいて目の前で鉄の塊(電車)が動いた時は本当に感動した。

287 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 21:27:50.49 ID:Jxy34/JH.net]
>>279
マ板行ったらいいよ

288 名前:デフォルトの名無しさん [2015/06/22(月) 22:06:39.89 ID:YsLRwNcZ.net]
>>282
それってコーディングによっては動かない可能性もあったんですか?

289 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 22:22:45.94 ID:5yWB/8R4.net]
>>279
自分の作ったプログラムがバグると地上待機してる自分に敵のミサイルが当たる時

290 名前:デフォルトの名無しさん [2015/06/22(月) 22:52:06.68 ID:n9SZmu2P.net]
でもプログラミングで一番疑問に思うのは

数学の問題なんて何時間かけても解けないなら仕方ないよって言われるのに
何故プログラミングの場合は、すぐにバグとってリリースできる状態にしろって
厳しい条件を突きつけられるんでしょうか?

問題解決が必要な分野でプログラミングだけやたらと厳しい気がしませんか?
どんな職業もゆとりってあるじゃないですか。研究で成果でなくても怒られませんよね。
企画が頓挫しても次頑張れって言われますよね。

でもプログラミングは何故殺伐とした圧力が常にあるんでしょうか?
納期とかいいますけど、それだけ大変なら納期は延びても仕方ないよって言う
人のほうが多くないんですか?



291 名前:デフォルトの名無しさん [2015/06/22(月) 22:58:37.01 ID:n9SZmu2P.net]
バグを見つけるって原因を見つける事ですよね?
それってラインみたいな単純作業じゃないじゃないですか。
常に数学の解法を思いつくような思考がずっとできない

292 名前:ニダメってことですよね?
それなのに見つけられて当然、やっと見つかったけど今度はこれ見つけてねとか
あんまりじゃないですか?

世間からプログラマーってちょっと賢い程度に思われてるじゃないですか?
俺からしたら滅茶苦茶頭きれないと無理だと思うんですよ。

人間誰しも論理的に物事考えるけど、プログラマーってそれ+頭の回転
しかも超凄いレベルの回転力が必要ですよね?
[]
[ここ壊れてます]

293 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 23:09:28.06 ID:3Y+uTrvX.net]
プログラマー板にいけ。いい加減スレ違いだ。

こういう使い分けが出来るのがプログラマーであり、一般的に多くの人が出来ることだ。

294 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 23:50:40.28 ID:HfhmwtVw.net]
多重請負構造で中抜き業者がピンはねしまくりで実作業をするプログラマーには適切な待遇が与えられないようになってる
そのせいで納期は短めに設定されるし残業代も100%出ない会社も多い

295 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 08:07:21.08 ID:PmYcJsrz.net]
そもそも大抵の職業プログラマは解法が見つからんような難しい問題はやってないし
大量にある要件をチマチマ実装/テストするお仕事です

296 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 09:58:29.46 ID:9r3RXp4j.net]
プログラマーの話は板違い

297 名前:デフォルトの名無しさん [2015/06/23(火) 15:14:18.02 ID:k5+MSvOe.net]
ダイナミックリンクとダイナミックロードの違いがわかりません。
具体的には、dlopenを使う処理とそうでない場合の違いです。
環境はlinux、gccです。プログラムのリンクの状況などが
分かるコマンドがありましたら併せて教えてください。
ご回答の程よろしくお願い致します。

298 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 16:36:25.05 ID:I0ATeeuQ.net]
ldでリンクされたshared objectはmainの実行前にランタイムローダーがロードする。
lddでランタイムローダーがロードするものの一覧がとれる。

299 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 16:50:51.89 ID:JUNHFyrA.net]
ダイナミックリンクは対象が存在しない場合
自前のコード(main() )に飛び込む前にローダーがエラーを返して終了しちゃう

ダイナミックロードは ロードとマップと呼び出しを自前のコードで行うので
リンク対象が存在しない場合に動作を分岐させたりすることが可能

300 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 16:59:26.40 ID:WxAOywus.net]
>>292
ダイナミックリンクはソースコード上のシンボルと、ライブラリのシンボルが結びつけられて、
実行時に自動的にライブラリがロードされる。

dlopen() を使う方は、実行時にライブラリ名、使用するシンボルを決定できる。
なんで、プラグインの実装はこれを使えば簡単にできたりする。

あるプログラムがあって、複数の別プログラムと通信するときなんかは、
通信部分をこんな実装にしたりする。



301 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 19:59:53.57 ID:p7ULLFoK.net]
凄い初歩的な質問するかもしれませんが、プログラムは全てポートがあるってのを
勉強して習いました。ということはhelloworldが実行されている最中もポートって
いうのは開いているんでしょうか?そのポートを調べる事は可能ですか?

302 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 20:54:10.62 ID:Yra6/pdr.net]
>>296
> プログラムは全てポートがあるってのを
> 勉強して習いました。
どこで習ったんだよ...

303 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 21:24:28.48 ID:p7ULLFoK.net]
>>297
アプリがそれぞれポートというシンボルを持ってるって聞きましたが違うんですか?
メールが開いてます→ある数値のポートが開いてる
ペイントが開いてます→ある数値のポートが開いてる
じゃぁhelloworld.exeというhelloworldを出力するアプリケーションにも
ポートがあるのではないかと思うのですが間違いでしょうか?

304 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 21:26:32.71 ID:i2r6Oae2.net]
違います

305 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 21:37:02.86 ID:tg0Hi2QC.net]
誰かが自作した非公開のOSでそういう仕様のものがあるかもね。

306 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 21:52:35.05 ID:x6cW ]
[ここ壊れてます]

307 名前:TlKo.net mailto: ポートって意味が広いから何を指してるのかね。
後"プログラムが持っている"って表現に違和感あるし。
halt
ってだけのプログラムにポートと呼べるものは含まれているのかね。
[]
[ここ壊れてます]

308 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 21:56:16.88 ID:p7ULLFoK.net]
>>301
ポートはアプリ間通信のために必要って本に書いてます。
別のパソコンとの通信に必要なもの=IPアドレス
アプリ間通信のためにそれぞれのアプリが持ってるもの=ポート番号

つまりhelloworld.exeはアプリだからポート番号を持ってると考えました。
違いますか?

309 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 21:58:15.94 ID:i2r6Oae2.net]
hello worldはアプリ間通信してねーし

310 名前:デフォルトの名無しさん [2015/06/23(火) 22:04:04.49 ID:p7ULLFoK.net]
>>303
どういうときにポートが貸与されるんでしょうか?
よくわからないんです。ちなみに基本情報の本で勉強しました。



311 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 22:07:22.01 ID:Y47RauLa.net]
構うと暴れるからな

312 名前:デフォルトの名無しさん [2015/06/23(火) 22:31:45.97 ID:HChqJ3xP.net]
2次元配列の関数受け渡しについての質問です。

動的確保により作成した2次元配列をユーザ定義関数へ受け渡す際、
関数の仮引数はどのように宣言すればよいのでしょうか?

ukewatasi(double **x)

のようにしてみたのですが、プログラムが停止してしまいました。

よろしくお願いします。

313 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 22:39:28.45 ID:fUDxTJnN.net]
>ID:p7ULLFoK
プロセス間通信のサンプルソース読んでフロチャートぐらい描いてから質問しろ。

314 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 22:41:39.07 ID:i2r6Oae2.net]
>>306
動的確保したデータの型は?

315 名前:デフォルトの名無しさん [2015/06/23(火) 22:48:15.37 ID:HChqJ3xP.net]
>>308
double型で**xを作成して、xを関数に受け渡しました。

ukewatasi(double **x)

int main(){
double **x;

ukewatasi(x);
}

のような感じです。

316 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 22:50:50.38 ID:x6cWTlKo.net]
>>309
> 動的確保により作成した2次元配列
とは、こんな感じで確保したの?
(double(*)[123])malloc(n*123*sizeof(double))
であれば
double(*a)[123]
みたいに渡せばいい。

317 名前:デフォルトの名無しさん [2015/06/23(火) 22:51:11.69 ID:HChqJ3xP.net]
何度もレス申し訳ないです。
関数の内容は渡された2次元ポインタ?に対する動的確保です。
動的確保をユーザ定義関数内で行おうとしています。

318 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 22:51:27.89 ID:qkxeTacg.net]
>>309
受け渡しはそれで問題無いんじゃないか。
その後の配列の使い方に問題有るんじゃないか?

319 名前:デフォルトの名無しさん [2015/06/23(火) 22:55:23.42 ID:HChqJ3xP.net]
>>312
プログラム内の主な部分をとりあえず消してみたので、その後の処理は

for(i=0;i<n;i++)free(x[i]);
free(x);

を使って開放しているだけにしてあります。

320 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 23:10:53.90 ID:DrRN54sL.net]
>>311
引数の書き換えによる呼び出し元への渡しじゃなく
戻り値じゃだめなの?

int を引数書き換えで戻す func(int *a) { *a = こっちで設定した値 }

型type を 引数書き換えで戻すのは func(type *a) になる
2次元配列(ポインタ配列) double** を type とみなすのなら
func(double*** a) になるんじゃないか?



321 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 23:21:43.47 ID:DrRN54sL.net]
おっと呼び出し元のほう書き忘れてた

>>314 の 型type を 引数書き換えで戻すのは func(type *a) になる
呼び出し元は 型type の変数 a を用意して func(&a) と呼び出す
⇒ double **x を用意し、func(&x) で書き換えてもらう

322 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 23:23:43.71 ID:x6cWTlKo.net]
>>309
>>313
それでいいよ。としか答えられないんだが。
自分の問題点を単純化して、
省略せずmain関数込みで晒すしかないんじゃね?

323 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 23:28:11.11 ID:DrRN54sL.net]
元質問よく読むと >>314,315 は関係なさそうだわ とりさげ

324 名前:デフォルトの名無しさん [2015/06/23(火) 23:33:51.75 ID:HChqJ3xP.net]
すみません、mainとその関数はこんな感じです。

void getm(int n,double **x)
{
int i;
x = (double**)malloc(sizeof(double*) * n);
if(x == NULL){
puts("メモリを確保できませんでした");
exit(0);
}
for(i=0;i<n;i++){
x[i] = (double*)malloc(sizeof(double) * n);
if(x[i] == NULL){
puts("メモリを確保できませんでした");
exit(0);
}
}
}
int main()
{
int i,j,col,ln,n;

double **a,**b;

getm(n,a);

for(i=0;i<n;i++)free(a[i]);
free(a);
return 0;
}

325 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 23:38:22.26 ID:Hn8bvGAp.net]
そりゃ停止するわ

326 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 23:47:19.57 ID:x6cWTlKo.net]
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
void getm(int n, double ***y) {
inti;
double**x;
x = (double**)malloc(sizeof(double*) * n);
if(x == NULL){
puts("メモリを確保できませんでした");
exit(0);
}
for(i=0;i<n;i++){
x[i] = (double*)malloc(sizeof(double) * n);
if(x[i] == NULL){
puts("メモリを確保できませんでした");
exit(0);
}
}
*y = x;
}
int main(void) {
int n,i;
double **a = NULL;
n = 5;
getm(n,&a);
for(i=0;i<n;i++) free(a[i]);
free(a);
return 0;
}

327 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 00:05:36.88 ID:e9gtZvXy.net]
(>'A`)> うわぁ

328 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 00:39:48.68 ID:edfJthnp.net]
>>320
getm() の戻り値をアドレス値(のコピー)にした方がいいんじゃない。

double **getm(int n) {
double **x;
:

return x;
}

int main(void) {
:
double **a;
:
a = getm(n);
:
}

329 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 00:49:44.96 ID:TqWBqUYf.net]
問題の本質が動的確保とか2次元うんたらじゃないね。こんな感じのまちがいか?
void func(int x) { x=5; }

330 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 01:41:06.19 ID:x8P9P79s.net]
これと同じような問題は他の関数でFILE構造体へのポインタを持って行って
openしたのに「あれっ?」というのに似てるな

void func(FILE *fp)
{
...fpをopenする処理
}

func()から戻ってもfpに代入されたFILE構造体がopenされてない
(正確にはfunc()内でopenして代入した値がどこかで遊んでいる)

正しくは

void func(FILE **fp)
{
*fp=fopen(////
}

とやるかC++なら
void func(FILE *&Fp)

まあこんなアホな書き方は普通しないけど



331 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 04:19:45.17 ID:psgmC6/v.net]
これはひどい

332 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 08:11:51.66 ID:aN9Ts3NW.net]
void getm(int n, double ***y) {

*y = (double **)malloc(sizeof(double *) * n);

if (*y == NULL) {
puts("メモリを確保できませんでした");
exit(0);
}

for (int i=0; i<n; i++) {

(*y)[i] = (double *)malloc(sizeof(double) * n);

if ((*y)[i] == NULL) {
puts("メモリを確保できませんでした");
exit(0);
}
}
}

333 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 17:58:36.34 ID:u4ZdF9De.net]
@if (strcmp(argv[1], "ch") == 0)

Aif(*argv[1] == "ch")

この書き方何が違うんですか?

334 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 18:02:18.92 ID:5nU4RVUe.net]
C言語じゃ文字列の比較は”==”ではできないよ

335 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 18:38:26.93 ID:3Hv0NUBx.net]
*argv[1] 多分char型 1バイトの数値
"ch" "ch"という文字列が格納されているアドレス 環境依存だが16/32/64bit数値

336 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 18:46:20.02 ID:FOAJx/zB.net]
C言語の定義ってあるんでしょうか?
出来上がったものをC言語として纏めたからそれをC言語と呼んでいるのか
こういう機械語への変換を約束するように設計されたのがC言語がなのかどっちなのでしょうか?
ようはコロンブスの卵みたいな問題ですが

337 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 18:49:40.49 ID:hCh+/iKv.net]
>>330
その答えが分かったとして
何か役に立つのか?

338 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 18:56:12.91 ID:e9gtZvXy.net]
(国際)規格おっかけたら?
ISO/IEC 9899:2011

339 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 19:28:44.29 ID:FOAJx/zB.net]
>>331
コンパイラの勉強してます^^

例えば
graph.hってありますよね?
C言語にはGUIが無いからライブラリとしてインポートして
使えるだけでgraph.h自体はC言語じゃないけど、何故かC言語扱いされてますよね
みんなどこまでをC言語って呼ぶか定まってないのではないかと思います。
設計者自身もそう思ってるんじゃないでしょうか?

340 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 19:32:09.49 ID:hCh+/iKv.net]
>>333
そのファイルの中にc言語のソースコードがはいっていれば.hでも何でも全部c言語だろ。



341 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 19:40:36.46 ID:wt32uzVz.net]
別言語だが、PHPのなかでHTMLのソースコードが入っていたらそれはPHPじゃなくなるのか

342 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 19:46:26.31 ID:FOAJx/zB.net]
>>335
いや関数とかはC扱いになるのかなと
drawcircleとかいう関数はCのGUI関数なのか
ライブラリから呼ぶCのものではないGUI関数なのか

343 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 19:54:20.47 ID:cFIj+m2b.net]
また思い込みの人か

344 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 20:08:54.30 ID:FOAJx/zB.net]
そこらへんそんなに気にしなくていい感じですか?

345 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 20:09:42.03 ID:3Hv0NUBx.net]
日本語に英単語が混じったら日本語ではなくなるのか。

346 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 20:18:53.14 ID:e9gtZvXy.net]
Cコンパイラの作り方の勉強? Cコンパイラの使い方の勉強?

347 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 20:25:42.13 ID:FOAJx/zB.net]
>>339
正式にC言語の関数といえるのか知りたいです。
例えばfork()はシステムコールであってC言語ではないけどCのコードによく
出てくるじゃないですか?
そういう事です。

348 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 20:26:12.07 ID:FOAJx/zB.net]
例えば識者(Cに携わった人達)がそれも標準Cに入れようってなったら
正式にC言語の関数となるんですか?

349 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 20:31:32.11 ID:e9gtZvXy.net]
ここでクダ巻かず標準化委員会にでもいっといで

350 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 20:34:00.48 ID:5/GXLIV8.net]
キミは「C言語 規格」で検索してみようという知恵は働かないのか?



351 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 21:32:22.70 ID:3Hv0NUBx.net]
規格通りに作られたC言語コンパイラでコンパイル出来て想定通りに動くならC言語だよ。

352 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 21:40:22.84 ID:3Hv0NUBx.net]
>正式にC言語の関数となるんですか?
正式な「C言語の関数」の定義は?

353 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 22:05:22.37 ID:zNYvxzaB.net]
頭でっかちバカ

354 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 22:24:01.80 ID:mSDBMbUW.net]
>>337
>>218

355 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 22:37:35.23 ID:BVqVeXIZ.net]
>>346
自分の中のC言語の定義は

・計算処理が高速(ダイレクトに機械語へ変換するから)
・グラフィック出力が出来ない(C開発環境における端末の多くは図形描画できないため(cygwinなど))
・文字入力、出力はアスキーコードの範囲内(255文字までしか対応していないコンパイラが殆ど)

つまりCは計算をして出力する、まさに計算専用の言語だという認識です。

356 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 22:41:14.75 ID:5/GXLIV8.net]
>>349
キミのその定義のC言語は、ここで話題にしてるC言語とは違うね。
とっとと出てけ、二度と来るな。

357 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 22:45:41.35 ID:BVqVeXIZ.net]
>>350
このスレは文法的な話が多いしナチュラルなC言語の話がメインじゃないですか?
後 C言語規格で検索かけました。

アメリカはANSI
日本はJISが
規格に関して管理してるってことが分かりました。

どっちの権限が強いとかあるんでしょうか?
Cって日本が開発したものじゃないからアメリカANSI
の承認がないと自由に開発できない、変更できないとかあるんでしょうか?
それとも並行して自由なCのタイプを作っていっていいとか。

358 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 23:08:27.15 ID:YYL+BoO/.net]
根本が間違ってて指摘も矯正も不可能です。

359 名前:351 mailto:sage [2015/06/24(水) 23:11:06.20 ID:BVqVeXIZ.net]
本気で気になってるので誰かCの規格や定義に詳しい人教えて下さい

360 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 23:17:53.88 ID:YYL+BoO/.net]
適当に読んどけ。
ttp://www.bohyoh.com/CandCPP/C/index.html
ttp://www.comm.info.eng.osaka-cu.ac.jp/~sugi/C_lang2/C1.html#anchor265686

これ以上は専門書探せ。もう疲れた…。



361 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 23:26:38.68 ID:zNYvxzaB.net]
読んで理解をしないんだろうな

362 名前:351 mailto:sage [2015/06/24(水) 23:27:12.64 ID:BVqVeXIZ.net]
>>354
ありがとうございます
CもANSI本筋と傍流があるんですね

363 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 23:54:49.59 ID:5DYqddEm.net]
言語仕様と標準ライブラリの関係を言ってるんでしょ?
違う意味なら知らん

364 名前:351 mailto:sage [2015/06/25(木) 00:03:15.94 ID:sP9h+oqg.net]
>>357
言語仕様の中で標準ライブラリが定義されてるんですよね?
てことは言語仕様にないfork()やdrawcircle()はC言語の関数と言っては
ダメじゃないんですか?

365 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 00:14:54.02 ID:0iBjMS7W.net]
printf()やfopen()もアセンブラや別言語で書かれてるぞ。

366 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 00:16:51.58 ID:0iBjMS7W.net]
言語のなんたるかを決めるのはお前じゃないってことだ。

367 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 04:32:18.38 ID:Li5opHJV.net]
だから関わるなと言ったのに

368 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 07:43:04.30 ID:cFsyQBWH.net]
ヲタクプログラマーだからな。

369 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 09:28:35.57 ID:KIT3ByGG.net]
ここの人間は以外とお人よしっつーか面倒見がいいよなw

370 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 09:46:28.93 ID:UIqr32+m.net]
cdecl から調べた方が速そう



371 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 11:17:24.92 ID:U+zmiSvD.net]
>>6
そんな苦労してまで、三項演算子使わなくても良いのに。

372 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 11:27:48.98 ID:U+zmiSvD.net]
>>184
どんな言語でも、
文法としては正しくても、文章としては間違ってる事はいくらでもある。

373 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 11:55:06.12 ID:3kYUeLcc.net]
そんな古い質問拾うなよ。また湧いて出てくるやん。

374 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 21:25:49.37 ID:sP9h+oqg.net]
C言語ってある程度仕事でも詳しくなってもう余裕で分かるレベルになったら
次の楽しみって何になるんですかね?イマイチできる人のモチベーションがどこにあるか
分からないです。Cは一生かけても分からないくらい深いっていいますけど、未解決問題じゃあるまいし
単なる処理規則の集合なわけであって、どこらへんに奥深さがあるんでしょうかね。

375 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 21:32:37.30 ID:wU+kaldG.net]
>>368
言語に奥深さは無い。まったくナンセンスな問題意識。

376 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 21:34:04.17 ID:gUXvHM4p.net]
>>218

377 名前:デフォルトの名無しさん [2015/06/25(木) 22:07:39.16 ID:XxFekGl2.net]
>>368
設計。

プログラミングが楽しいなんて言ってるうちは初心者。

378 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 22:15:45.28 ID:0iBjMS7W.net]
>368
全ての仕事がそうだよ。所詮誰かがやったことの後追い。
それでもやったことが無いことを体験して、作ったことの無いものを作って、
満足できなかったものが少しだけマシになるのは楽しいよ。
自己満足といえばそう。
自己満足をポジティブに捉える人が楽しめ進められ、
ネガティブに捉える人は進まない。

あなたもあれは違う、コレはダメ、それはつまらないとネガティブで雁字搦めになってないで
とりあえずやってみる、とりあえず進めてみて、経験を自分の糧にしてみなさい。

379 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 22:19:21.28 ID:Li5opHJV.net]
自分に害の及ばないものなら
他人の作ったもののテストも楽しい

380 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 22:21:02.82 ID:wU+kaldG.net]
この人の場合、実践が伴ってないからへんてこなロジックに陥るんだろうな。



381 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 23:40:03.58 ID:/iOjq/uQ.net]
スレがやたら伸びてるなーと思うと、いつもの人が暴れてると言う

382 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 23:45:44.08 ID:DMKfpdxo.net]
>>368
高いお金をもらうのがモチベーション
プログラミングはその手段の一つ
一つの言語を深くやるでも、多くの言語やるでもいいし、マネージメント、テストエンジニアリング、ドキュメンテーションでもいいし、自分の価値が上がる手段を増やせばいい
何も考えずに業務をこなすだけならやめた方がいい

383 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 00:27:42.12 ID:7ZHtA1tf.net]
複数の値を任意の数だけ入力させて結果を返すプログラムで、入力の終わりにctrl+zを押さなくても結果を表示できますか?

384 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 07:51:30.19 ID:58TwEZZ0.net]
ctrl+zがいらない仕様にすれば出来るだろう。

385 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 08:56:47.59 ID:P2ouCsE5.net]
言葉ってある程度詳しくなってもう辞書引かなくても分かるレベルになったら
次の楽しみって何になるんですかね?小説とか書く人のモチベーションがどこにあるか
分からないです。言葉は一生かけても分からないくらい深いっていいますけど、未解決問題じゃあるまいし
単なる文字記号の集合なわけであって、どこらへんに奥深さがあるんでしょうかね。

386 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 09:25:10.82 ID:gBS6mhz7.net]
>>377
空行を検出したら終了するように作るとか、任意の入力は必ずファイルから与えることにするとか、手は色々ある。

387 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 11:34:55.72 ID:P2ouCsE5.net]
>>377
ありえない値(-1とか9999とか)を終端マークとして使うのが古典的な方法
最初の入力一件をデータ数とみなすとより無難

388 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 13:01:22.36 ID:HCrYWUwt.net]
ポインタ使わず、配列の文字(ひらがな)操作出来ませんか?例 "あいう"→う だけ取り出す

389 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 13:18:07.33 ID:r1qkCt6W.net]
>>377
(平均値のように)
入力値を一度きりしか使わず、即捨て出来る式で結果を表現できるなら
入力毎に結果を書く

390 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 13:46:28.74 ID:58TwEZZ0.net]
>382
char mojiretu[]="あいう";
char kititori[4]={0};

kiritori[0]=mojiretu[4];
kiritori[1]=mojiretu[5];
printf("&s\n",kiritori);



391 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 14:48:37.18 ID:HCrYWUwt.net]
>>384
文字コードが2バイトを使ったってことですね。気づきませんでした。まだやっていませんが多分出来そうです。ありがとう

392 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 16:25:25.05 ID:58TwEZZ0.net]
>printf("&s\n",kiritori);
× &s
○ %s

何やってるんだorz

393 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 19:54:12.94 ID:oshtnfFs.net]
C言語の文法やアルゴリズム自体は得意なのに
ライブラリなどのコードがいっぱいあると途端に読めなくなるのって
どういった能力が欠如してるからですかね?僕の事です。

394 名前:デフォルトの名無しさん [2015/06/26(金) 20:02:28.58 ID:YZgXVwpx.net]
知識、経験。英語が得意なアメリカ人でもそれまで知らない英単語、ことわざはわからない。

395 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 20:11:34.53 ID:58TwEZZ0.net]
知らない関数、知らないマクロ、知らない構造体。

396 名前:デフォルトの名無しさん [2015/06/26(金) 20:12:11.42 ID:oshtnfFs.net]
>>389
調べても書いてないんですよ
そういう場合どうしたらいいですか?

397 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 20:38:50.73 ID:/lXarR0v.net]
知能が足りないんだと思うよ。

398 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 20:44:52.95 ID:oshtnfFs.net]
>>391
向いてないんですかね…
プログラマやめましょうか…

後仕事のプログラムって再帰ばっかりなんですよ
上司に聞いたら、再帰で複雑にしておいたほうが機密性が高くなるとのことです。
そんなことあるんでしょうか…
殆ど意味分からないんですよプログラムの内容が

399 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 20:56:10.89 ID:WXmHQpYf.net]
おいらは再帰好きだよ

400 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 20:56:28.21 ID:oshtnfFs.net]
しかも相互再帰…
相互再帰にしてほぼ解読不可能っていう…
趣味を仕事に持ち込むのは本当にやめてほしいです



401 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 20:57:03.78 ID:oshtnfFs.net]
>>393
相互再帰もですか?
読みにくくなるだけで何のメリットがあるのかわかりません

402 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/06/26(金) 20:59:57.34 ID:xjgOsjgG.net]
多分、リバースエンジニアリング対策だろ

403 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 21:00:41.26 ID:oshtnfFs.net]
難読以外のメリットは、プログラムの書く量が減るから
プログラムの容量が小さくなることだそうです

404 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 21:03:03.00 ID:WXmHQpYf.net]
相互再帰は結構一般的ちゃうの?

個人的な意見だけど、再帰のが簡単にキレイにかける(ときもある)

まあ、おいらはCもやるけどC専門じゃないからなぁ
Cじゃ再帰は使わないお約束、みたいな感じだったらごめんね

405 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 21:04:00.77 ID:oshtnfFs.net]
>>396
再帰は解読しにくいってことですね

406 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 21:11:35.75 ID:58TwEZZ0.net]
>390
ヘルプを見る。解説を見る。
作ったやつ、使ったことのあるやつに聞く。
でなければサンプルソースを解析。

それでもわからなら後回しにするか、解らないまま変に弄らずに使う。俗に言う「おまじない」。

407 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 22:07:05.75 ID:gBS6mhz7.net]
結局のところ、末尾再帰でもなければ効率悪いコードしか吐かないから再帰で書くのはパフォーマンス要らんところだなぁ。
うちの場合は、パフォーマンスを上げるのが主目的であることが多いから難読性なんて肥やしにもならん。

408 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 22:07:51.27 ID:gBS6mhz7.net]
>>381
げげ。

409 名前:デフォルトの名無しさん [2015/06/26(金) 23:13:37.04 ID:3MIHB1Go.net]
一昨日Cを勉強し始めたにわかなのですが
ttp://9cguide.appspot.com/13-q.html#S2
このサイトの 2-1 のプログラムについてわからないところがあります。
int i,sum = 0,avg; とありますがこれだとsumに0を代入して初期化することができてないのではないでしょうか?
あらかじめavgに入っていた謎の値がそのままsumに代入されてしまうということではないのですか?
もしそうならifの中で配列の合計を正しく求められないと思うのですが...
どうかよろしくお願いします。

410 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 23:13:49.20 ID:oshtnfFs.net]
クイックソートの再帰は末尾再帰じゃないですよね?
クイックソートの再帰は末尾再帰じゃないから分かりやすいんですが、
ハノイの塔の再帰はすごい分かりにくい



411 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/06/26(金) 23:21:05.76 ID:xjgOsjgG.net]
>>403
C言語の文法は各演算子の結合の強さを決めており、文法上のあいまいさをなくしている。
int i,sum = 0,avg;
のi,sum = 0,avgは、iとsum = 0とavgの3つに分解されて解釈される。

412 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/06/26(金) 23:31:03.25 ID:xjgOsjgG.net]
>>404
再帰はスタックをFILOのように使って処理をしている。
関数呼び出しのときに戻り先と実引数をスタックに格納し、関数から戻る頃にスタックから解放される。
FILOのデータ構造を使えば再帰は非再帰に書き換えられる。

413 名前:デフォルトの名無しさん [2015/06/26(金) 23:53:28.51 ID:3MIHB1Go.net]
>>405
なるほど、納得がいきました。ありがとうございました!

414 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 05:59:25.89 ID:svdtev72.net]
>>405
ちげーよ。
そこで現れている,はカンマ演算子じゃない。
なので演算子の優先順位は適用されない。

415 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 06:25:17.74 ID:+UMgIw/2.net]
カンマって微妙な存在だよね

416 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 07:41:18.81 ID:nRUZ97+m.net]
>408
否定だけでなくちゃんと解説しろよ。

417 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 08:59:18.05 ID:culNkOYR.net]
うっせー 俺はテスターだから間違いを見つけたらそれで終わりなんだよ

418 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 09:16:18.76 ID:KUf9kyhl.net]
なんで「俺はコンパイラより頭が(・∀・)イイ!!」とか思うような奴ばっかりが
得意顔で自演するようなスレに成り果てちゃったの?(´・ω・`)

419 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 12:27:05.83 ID:svdtev72.net]
>>410
元質問者の疑問は、,がカンマ演算子でない事で解決する。
バカにはわからなかったかな?

420 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 12:48:36.17 ID:XN+wGsW9.net]
「相手はxxxがyyyだと勘違いしてる」と思い込んでいる。



421 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 17:48:41.80 ID:svdtev72.net]
それ以外に説明がつかないと言う事がバカにはわからないらしい。

422 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 18:16:17.50 ID:8NBUCr+K.net]
意味不明なところに拘って質問してくるやつ。
質問投げっぱなしで回答への反応がないやつ。
態度のでかいヤツ。

消えて欲しいよ。

423 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 18:42:50.69 ID:wwmv ]
[ここ壊れてます]

424 名前:wXJ3.net mailto: 思ったんだけど複雑な思考してるときは脳ってそう活発になってないんですね
簡単なコミュニケーションや、簡単な計算してるとき活発になるらしい。
でもC言語のプログラム読んでて、難しいなって思って粘り強くコード見ていく事って
上達にかかせないですよね?じゃぁ頭を活発にしてC言語読むにはどうしたらいいんでしょう?
常に何かをひらめきながら読み進めるとか色々工夫あると思うんですがみなさんが心がけてることなんですか?
[]
[ここ壊れてます]

425 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:age [2015/06/27(土) 19:19:00.59 ID:JmAIGVSo.net]
明日、俺が考えた究極の画像処理ライブラリーを発表する予定。まあ見ててな

426 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 20:59:39.13 ID:K06hVkJE.net]
>>418
物凄いんですか?期待でワクワクします。

427 名前:片山博文MZ ◆T6xkBnTXz7B0 [2015/06/28(日) 12:49:26.79 ID:7OyeVowG.net]
画像処理ライブラリー「imaio」
katahiromz.web.fc2.com/imaio/

コンパイラーは、VC++ 2013、MinGW、BCC55に対応。
画像形式は、BMP, JPEG, GIF, PNG, TIFF, アニメーションGIFに対応。

よろしくね。

428 名前:デフォルトの名無しさん [2015/06/28(日) 13:50:10.46 ID:TJWf2eSN.net]
codepad.org/XjhyZ0Oa


1
2
7
4
5
-5579872
-144112812
-144135884
-142922460

Exited: ExitFailure 11

マージソートのプログラムだけど、これどこがおかしいですか?

429 名前:デフォルトの名無しさん [2015/06/28(日) 13:51:28.84 ID:TJWf2eSN.net]
全く書き換えるんじゃなくて
このコードの部分で指摘していただければ嬉しいです。

@inの取り方も正しい
A2回再帰を読んでる
B作業用配列x,yも正しいはず

何故こんなおかしな結果になるんでしょう?

430 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 14:37:03.55 ID:4PA/u/+9.net]
間違いではないが
int a[9];

for(i=0; i<=8; i++)
と書く奴のプログラムなんて見る気もしないな・・・



431 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 14:39:21.94 ID:OeLQkQMR.net]
>>423
君は素人だな。
本物のプログラマーはこう書くんだよ。
知らないのか?

432 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 14:45:18.81 ID:4PA/u/+9.net]
本物のプログラマーってドカタの人のことですよね

433 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 15:06:36.31 ID:T2p7HOxZ.net]
よくわからんけどプロの人は

for(i=0; i<sizeof(a)/sizeof(int); i++)

って書くんじゃないの?

434 名前:デフォルトの名無しさん [2015/06/28(日) 15:26:15.96 ID:O8XywhU9.net]
とりあえず

-5579872  ←
-144112812 ←
-144135884 ←
-142922460 ←

何故こういうエラーが出るんでしょう?

aからx,y(左配列、右配列)に退避させてそこから
x,yからbに敷き詰めていく

例えばx =1 3 4,y=2,5, 7なら 1,2,3,4,5,7とbに格納してるはず

それなのに何故こういうエラーが出るのでしょうか?

435 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 16:18:39.59 ID:x/T4p/ZN.net]
この手のデバッグは面倒なんでC#に直した

ideone.com/coXz7X

ソートされてないし、配列の前半にしかデータが入ってない
後半のおかしな値はゴミだな

436 名前:デフォルトの名無しさん [2015/06/28(日) 19:13:28.63 ID:O8XywhU9.net]
ideoneってc言語使えないの?
helloworldCでかいてrunかけてもエラー出るんだが…
うっとうしいな、codepad落ちてるし…
氏ねって…

437 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 19:19:09.66 ID:jQw88VwY.net]
>>429
runしない状態で、まず貼ってみて

438 名前:デフォルトの名無しさん [2015/06/28(日) 19:22:07.72 ID:O8XywhU9.net]
>>430
>>421です。でも落ちてるんですよ、本当腹立つ…時間無いって言うのに…
何で落ちるんだよこういうときにかぎって…氏ね

439 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 19:48:13.59 ID:jQw88VwY.net]
>>431
ideone.com/
一番上の帯の new code をクリック
コードを入力するテキストエリアの下の左、「Java ▲」をクリックし、 Cを選択

これでできませんか?

440 名前:デフォルトの名無しさん [2015/06/28(日) 20:05:11.93 ID:FN6ToZob.net]
ttp://i.imgur.com/HE7najM.png
コンパイルはできたのですが実行すると性別を聞いてもらえません...
どこがいけないのでしょうか?
読みづらいかと思われますがどうかよろしくお願いします。



441 名前:デフォルトの名無しさん [2015/06/28(日) 20:20:43.27 ID:a/YHn9n/.net]
ideone.com/DV39vg

ideoneの場合

そもそもStandard input is emptyが出るんですが
これ何ですか?

inputなんてしないっつの…
うっとうしいな

442 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 20:33:37.27 ID:jQw88VwY.net]
いい加減な直し方ですまない。なるべくそのままで直した。

  scanf("%s%c", data[i].name);
  scanf("%d%c", &data[i].old);
  scanf("%c%c", &data[i].sex);

443 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 20:33:48.76 ID:6vwCSsHC.net]
>>428
ああ、こういうコードだったのね。元のコードは 503 が返ってくるからもやもやしてた。
これってこんな問題?

・41, 42 行で再帰呼び出しでソートしてるのに 49, 52 行でコピーしてるのはソート前の配列の値
・57 行で比較してる配列のインデクスが、58, 60 行でインクリメントした結果、有効なデータより後の要素を示すようになる
 ※最初の呼び出しの m 関数の場合、x と y にはそれぞれ a 配列の 0-4, 5-8 番目の要素が入っているけど、
  仮に 0-4 番目にすべて 5-8 番目の要素の値よりも小さな値が入っていれば 6 回目の比較で
  C では初期化されていない、C# の場合は 0 が入っている要素と比較してしまうため正しい結果が出ない

自分は関係ないけどちょっとすっきりした。

444 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 21:02:15.98 ID:tYSRI250.net]
>>424
本物のプログラマがループカウンターに使うのはIだ。iなんて使うのはキッシュイーター。

445 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 21:34:14.33 ID:bg6lBFSS.net]
>>435
%s, %d に %c を後付けするとおかしくなるのでは?

446 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 21:43:10.93 ID:bg6lBFSS.net]
>>436
なるほど,こんな感じになおせばいいのか
https://ideone.com/fiD3Wp

>>431
もとのコードは
最初から r=0, l = 2 のタイミングで再帰コールをしたあとマージ作業ではじめて問題が出る
x[] の有効なデータを使い切ったのに,また x[] から値を取り出してしまう

447 名前:デフォルトの名無しさん [2015/06/28(日) 22:22:40.69 ID:a/YHn9n/.net]
>>439
なるほど、ってことは
x[i]のインデックスを最終地点まで覚えておいてそれ以降はx[i]の値が
-23432432とかになってるから代入しないとダメってことですね?
だからif(x[xi]<0)even if(x[xi]<y[i])b[i]=y[xi];
ってことですか?

448 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 22:47:50.95 ID:D2RtZ38K.net]
配列版のマージソート見た事はあるけど自分で作ったのはリスト版とあと外部ランのソートだけ
ぐぐればいろいろ出てくるね

449 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 22:55:02.80 ID:DfNXErlF.net]
値にタイマーを付けてタイムアウトした順に並べる

450 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 22:57:58.71 ID:6vwCSsHC.net]
てゆーか、x と y の有効なデータ数を覚えておいてそれ以降は比較なしにもう片方のをコピーすればいいやん。

そしてそれ以前にデータをグローバルな変数に入れて使い回すなよ。
再帰はそれでなくても追うのが面倒なのにこんなバグの度に余計に疲れるやろ。



451 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 23:10:33.93 ID:r22I8doO.net]
>c言語のプログラムで、「xの95乗を323で割った余りを16進数に直す」というものを作りたいです
detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11121105256
でベストアンサーになっているけど、もっとどうにかならないかな

452 名前:NAS6 ◆I4OWyGBdcY [2015/06/28(日) 23:55:57.87 ID:QnH82WnG.net]
ttp://nas6.main.jp/secret/Mathematician.zip
筆記法による数値表現
答えは12A(16)でしょ
この電卓でできるよ
ソースも全部あるからね

453 名前:NAS6 ◆I4OWyGBdcY [2015/06/28(日) 23:57:33.04 ID:QnH82WnG.net]
X=2の答えは12A(16)でしょ

454 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 00:04:36.27 ID:R4Z+rP4P.net]
>>444
https://ideone.com/QEpJ2a

>>445
それは x = 2 のときなのでは?

455 名前:NAS6 ◆I4OWyGBdcY [2015/06/29(月) 00:05:02.97 ID:6ujtYEpl.net]
X=1234(10)の答えは11C(16)

456 名前:NAS6 ◆I4OWyGBdcY [2015/06/29(月) 00:30:20.77 ID:6ujtYEpl.net]
>>445
のbinフォルダとreadme入れて再UPした

457 名前:NAS6 ◆I4OWyGBdcY [2015/06/29(月) 01:02:48.54 ID:6ujtYEpl.net]
この電卓で計算
2(10)^157(10)=182687704666362864775460604089535377456991567872(10)

458 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 01:47:30.45 ID:1CmvgFN6.net]
>>444
323=17*19 なので、法を分解して

フェルマーの小定理より
x^95 ≡(x^16)^5 * x^15 (mod 17)
   ≡x^15        (mod 17)

x^95 ≡(x^18)^5 * x^5 (mod 19)
   ≡x^5         (mod 19)

あと中国の剰余定理をつかって、再結合というのを考えたが
結局、x^15 (mod 17)、 x^5 (mod 19) も計算しなきゃいけないし、
そのとき、ベキ剰余演算をするので、この方法をプログラムに組み込んでも
あまり便利じゃないか。

普通の電卓片手に手計算ではうまくいったけど。

459 名前:NAS6 ◆I4OWyGBdcY [2015/06/29(月) 02:25:57.85 ID:6ujtYEpl.net]
3(10)^33(10)=5559060566555523(10)

460 名前:NAS6 ◆n3AmnVhjwc [2015/06/29(月) 02:30:05.17 ID:6ujtYEpl.net]
5(10)^55(10)=277555756156289135105907917022705078125(10)



461 名前:NAS6 ◆n3AmnVhjwc [2015/06/29(月) 02:40:40.71 ID:6ujtYEpl.net]
簡単な確認
>>452
5+5+5+9+0+6+0+5+6+6+5+5+5+5+2+3=72(3の倍数)
>>453
5の倍数

462 名前:NAS6 ◆n3AmnVhjwc [2015/06/29(月) 03:41:32.54 ID:6ujtYEpl.net]
どういうメモリモデルになっているかは
データを数値文字列として持って
10進数値文字列に変換して
筆記法で10進数値文字列の四則演算をして
答えのn進数数値文字列に戻しているだけ
メインメモリと計算時間があれば桁制限なしだと思う

463 名前:NAS6 ◆n3AmnVhjwc [2015/06/29(月) 03:48:30.63 ID:6ujtYEpl.net]
つまり、コンピュータに手計算を強要してるの

464 名前:NAS6 ◆n3AmnVhjwc [2015/06/29(月) 03:58:13.67 ID:Ck1XM2XL.net]
巨大な数になればなるほど
手計算の方が効率が良いし

465 名前:NAS6 ◆n3AmnVhjwc [2015/06/29(月) 04:09:40.90 ID:Ck1XM2XL.net]
だから、暗号解読にこのDLL使ったら、ヤバそう
手計算は重いっちゃ重いけど
暗号の砦は、桁数だった気がする

466 名前:NAS6 ◆n3AmnVhjwc [2015/06/29(月) 04:12:10.40 ID:Ck1XM2XL.net]
確か巨大素数が分かれば解けちゃうんじゃなかったっけ

467 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 04:32:30.56 ID:j6EGBqV6.net]
素因数分解でしょ

468 名前:NAS6 ◆n3AmnVhjwc [2015/06/29(月) 05:32:14.23 ID:6ujtYEpl.net]
>>460
その分からなさの砦が巨大素数じゃなかった?

469 名前:NAS6 ◆n3AmnVhjwc [2015/06/29(月) 05:45:37.17 ID:6ujtYEpl.net]
ttp://www.maitou.gr.jp/rsa/rsa14.php
参考HP

俺電卓で計算
349052951084765094914784961990389
8133417764638493387843990820577(10)

327691329932667095499619881908344
61413177642967992942539798288533(10)

114381625757888867669235779976146
612010218296721242362562561842935
706935245733897830597123563958705
058989075147599290026879543541(10)

470 名前:NAS6 ◆n3AmnVhjwc [2015/06/29(月) 06:01:42.90 ID:6ujtYEpl.net]
ってか、2つの素数の積って言うんなら、力技で
素数列挙してテーブルを作って
掛けた値の予測で近そうなのを
総当たりすれば良いだけじゃないの?



471 名前:デフォルトの名無しさん [2015/06/29(月) 06:08:45.81 ID:p1K+5j1b.net]
> xの95乗を323で割った余り


a * x mod 323をa<323の範囲で計算しておけばいいだけだろ?
(323*k + x) ^ n  =  x ^ n mod 323だから、
最初はx*x mod 323の値を上のaとし順に*xしていったらいいだけ。
掛け算と剰余は計算済みとしてint型配列の走査だけでできる。

472 名前:NAS6 ◆n3AmnVhjwc [2015/06/29(月) 07:18:13.78 ID:6ujtYEpl.net]
>>463
をやろうとしたら
キューのバッファ管理がint型だから
INT_MAX個の素数列挙までは結構簡単だけど
それ以上は大変なことに気が付いた

473 名前:NAS6 ◆n3AmnVhjwc [2015/06/29(月) 07:22:28.98 ID:6ujtYEpl.net]
キューに頼らずファイルアクセスのみにすると重すぎるしなぁ・・・
素数列挙って大変だね

474 名前:NAS6 ◆n3AmnVhjwc [2015/06/29(月) 07:26:04.15 ID:6ujtYEpl.net]
あー、MAX_FILE_SIZEの壁でINTより小さいや
尋常な方法では出来ないなぁ

475 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 07:32:19.32 ID:CevnLgip.net]
ウザいから出来たら書き込んで

476 名前:NAS6 ◆n3AmnVhjwc [2015/06/29(月) 07:48:51.08 ID:6ujtYEpl.net]
>>464
VB.NETコンソールアプリ
###################
Console.Write("x = ")
Dim x As Integer = Integer.Parse(Console.ReadLine())
Dim i As Integer
Dim a As Integer = (x * x) Mod 323
For i = 3 To 95
 a = (a * x) Mod 323
Next
Console.WriteLine(String.Format("Mod = {0}", a))
Console.ReadLine()
###################
x=2,Mod=298
x=1234,Mod=284

for文、iの初期値はデバッグで適当
3乗になってるのか・・・

477 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 09:09:21.08 ID:dlw1e8se.net]
素数列挙に総当り、巨大素数の積の合成数が
こんなもので現実的な時間で素因数分解されるなら
世界中でRSA暗号は破られまくり

478 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 13:47:55.43 ID:cTVGuqBX.net]
>>447がシンプルに答えてるのに延々とクソレスして、挙句にはC言語のスレでVB披露するクソコテなんなの?

479 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 14:33:14.02 ID:MBINl1TZ.net]
シフト演算で
buff[2] = (BYTE)( (0x4a40020 & 0x00ff0000) >> 16);
こういう場合にbuff[2]に入ってくる値はなにでしょうか

480 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 16:08:21.05 ID:fgyEl+jQ.net]
>472
不明。状況、環境次第で変わる。



481 名前:472 mailto:sage [2015/06/29(月) 16:20:03.90 ID:fgyEl+jQ.net]
>473
失敬。勘違いしてた。
0x4a40020 & 0x00ff0000 = 0x00a40000
0x00a40000 >> 16 = 0x000000a4
(BYTE) 0x000000a4 = 0xa4
つまり 0xa4

482 名前:473 mailto:sage [2015/06/29(月) 16:21:06.16 ID:fgyEl+jQ.net]
名前ーーー!!
× 472
○ 473

483 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 16:35:21.62 ID:ns0CsOQ5.net]
typedef unsiged short BYTE;
だったらどーすんだよ。

484 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 16:39:16.90 ID:k48kibIU.net]
うむ、自明なものをわざわざ聞いてるってことは期待通りの結果にならなかったんじゃないかと
邪推してしまうしな

485 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 17:15:49.50 ID:MBINl1TZ.net]
つまりこの処理は0xa4を抜くためのものということですね

486 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 17:18:23.17 ID:MBINl1TZ.net]
すいません同じところで0x4って表現がわからないのですがどういう意味でしょうか

487 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 17:29:07.35 ID:k48kibIU.net]
いきなりそこだけ聞かれてもわからんけど、
& でチェックしてるとかなら、
0x4 は2進数で 0000 0100 だから下から3ビット目を調べてるんじゃないの?

488 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 17:42:41.37 ID:fgyEl+jQ.net]
16進数って理解してる?>ID:MBINl1TZ

489 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 18:14:20.98 ID:ns0CsOQ5.net]
違うな。想定外の動作をさせるなら
int buff[3];
typedef char BYTE;
か。

490 名前:デフォルトの名無しさん [2015/06/29(月) 20:36:06.22 ID:w6B9cFRx.net]
codepad.org/

a[0] = 2;
a[1] = 8;
a[2] = 3;
a[3] = 9;
a[4] = 6;
a[5] = 1;
a[6] = 7;
a[7] = 4;
a[8] = 5;

1
2
3
4
5
5
4
5
5

何でですか…

なんでだぶってるんでしょうか?

www1.cts.ne.jp/~clab/hsample/Sort/Sort6.html
これは一つのtemp配列を使ってるだけで

自分はx[]とy[]にわけただけです。

何故同じ数がだぶってるんでしょうか?



491 名前:483 [2015/06/29(月) 20:37:37.98 ID:w6B9cFRx.net]
codepad.org/cyf6OZnh

お願いします。このコードを少し書き換えるだけで修正してください。
今まで間違えると全て書き直ししてたのが悪かったです。
全てリセットして書き直すとほんの少しの差異を見逃して感性が荒くなると思うので…

492 名前:483 [2015/06/29(月) 20:42:00.01 ID:w6B9cFRx.net]
抑えてる点

@ちゃんとl>=rのときreturnしている
Ax[]とy[]を比較して、小さいものからa[]につめている。
 念のため、x[]とy[]が−じゃないときも考慮してる。
 でも例えばxが0〜3、yが0〜2までのとき、ちゃんと
 lは5までの範囲になるので、xのindexが4,yのindexが3になることは
 ありえない

www1.cts.ne.jp/~clab/hsample/Sort/Sort6.html
とほとんど同じプログラムを書いたつもり

それなのに何故間違ってる…
まじで頭がおかしくなりそうです…

493 名前:483 [2015/06/29(月) 20:44:26.91 ID:w6B9cFRx.net]
lからcまでがa[]の左半分
c+1からrまでがa[]の右半分に
入ってるから

それをx[] y[]に退避させて

a[]に入れなおしてるだけ

それなのに何故おかしな結果になるんでしょう?

x[],y[]のindexも増減も間違いない、お互い0から始まって
どちらかがa[]に詰められたら詰めた方のx(y)のindexを増やす

a[]のindexはlからrまで


何故?
何故?

ここまで抑えてるのにエラーが出る理由が分からなくて死にたいです

494 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 20:56:10.12 ID:yBgp8aKq.net]
取り敢えずだ、xとyを初期化してみようか。

495 名前:デフォルトの名無しさん [2015/06/29(月) 21:07:14.47 ID:vSUkOanW.net]
>>487
え???
www1.cts.ne.jp/~clab/hsample/Sort/Sort6.html
だってtemp(作業用)は初期化してないですよ?


僕はtempの代わりにx,yの二つの配列を用意したんです。
関数が呼び出されるたびに

int x[]
int y[]

としてるんだし、これは初期化と同じでは?

496 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 21:09:29.39 ID:yBgp8aKq.net]
いいからやってみろ。いいもんだ。

497 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 21:10:53.70 ID:yBgp8aKq.net]
ついでに言うと、配列は定義しただけでは不定値だぞ。

498 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 21:48:25.09 ID:byKOSkwI.net]
>てゆーか、x と y の有効なデータ数を覚えておいてそれ以降は比較なしにもう片方のをコピーすればいいやん。

499 名前: ◆QZaw55cn4c mailto:sage [2015/06/29(月) 22:14:14.85 ID:R4Z+rP4P.net]
>>486
codepad.org/ygFP51EW

>>484
「x[] が使い尽くされて y[] にまだ残っているとき,y[] から a[] にコピーする.」
「y[] が使い尽くされて x[] にまだ残っているとき,x[] から a[] にコピーする.」
というロジックがない
それではちゃんと動かない.

printf() を要所要所に入れて値の変化を追いかければわかる.
マージソートの大局的な感じは掴んでいるようだが,それだけではプログラムは書けない
要素が1個とか2個になったときにも,想定の動きをしているか確認したか?

500 名前:デフォルトの名無しさん [2015/06/29(月) 22:28:37.75 ID:vSUkOanW.net]
>>492
神様ありがとう



501 名前:デフォルトの名無しさん [2015/06/29(月) 22:29:05.81 ID:vSUkOanW.net]
でもこっちは何故か
www1.cts.ne.jp/~clab/hsample/Sort/Sort6.html
ifを多用

502 名前:してない…

何故だ
[]
[ここ壊れてます]

503 名前:デフォルトの名無しさん [2015/06/29(月) 22:41:21.94 ID:vSUkOanW.net]
えええええええええええええ

1 2 3 4 (mid)6 3 2 1

まじかww

そういうことだったのか
tempが特殊な格納方法だったからか…


考えた人天才すぎる…
こんなカラクリよく思いついたな

504 名前:デフォルトの名無しさん [2015/06/29(月) 22:46:39.12 ID:vSUkOanW.net]
やっぱりプログラミング自分向いてない…
理屈っぽすぎる…

505 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 22:49:12.40 ID:MsD9xqBP.net]
連投うざいわ

506 名前:デフォルトの名無しさん [2015/06/30(火) 02:59:22.65 ID:cdRwV9j9.net]
年齢に-1を打ち込むとコアダンプと表示されます。
どこがいけないのでしょうか?よろしくお願いします。
ttp://i.imgur.com/zhbWIkV.png

507 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 03:59:21.23 ID:W3oST2wA.net]
>>498
そりゃそうでしょ

>>324と同じ間違いをしている

int data_input(man** data);

あとは

scanf("%s", data[i].name);

scanf("%s", data[i]->name);

以下同様

元のプログラムのdata_inputはあくまでポインタのコピーを受け取るだけで、mainのdataは変化してないからね

508 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 04:06:34.36 ID:W3oST2wA.net]
あ、それと分かると思うけど一応

data = (man*)malloc(sizeof(man));

*data = (man*)malloc(sizeof(man));

data = (man*)realloc(data, sizeof(man) * (i + 1));

*data = (man*)realloc(*data, sizeof(man) * (i + 1));

ポインタのポインタは本来こういう使い方のためのものじゃないんだけど、するとしたらこれしかないし
構造体の中に入れて持って行った方が楽だよ
使う時は勘違いしやすいんで注意

509 名前:デフォルトの名無しさん [2015/06/30(火) 04:59:46.09 ID:cdRwV9j9.net]
>>499
なるほど!と思っていくつか直したのですがだめでした...
どこか余計なところまでいじってしまったのでしょうか...
ttp://codepad.org/8Jen5KgD

510 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 10:15:21.59 ID:z66kzZiU.net]
>>501
main()でman **dataと書くからだよ
それだとポインタの領域とポインタのポインタの両方の領域を確保しないと正しく動かない
ポインタのポインタにするのはdata_input()だけでいい

都合上C++になっちゃったけどソース上げておくんで読んでほしい
ただしnewとかiostreamとかvector使ってないんで読めるはず

codepad.org/bMtuP5cY

これコア吐いてるのは一つも入力がないからだね
そういう所も本当は直さないとね



511 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 10:45:55.96 ID:5MEAi0u6.net]
>>481
0x4a40020と0x00a40020は同じでしょうか?
それとも0x04a40020でしょうか?

512 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 10:57:36.68 ID:TyU2TXj2.net]
>>503
そういう疑問に至った経緯を書いたほうが解決早いと思うよ
大体想像つくけど、違うか違わないかだけ答えても解決しないでしょ?

513 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 10:58:06.08 ID:n/kvsNLi.net]
>>501
・Cは値渡ししかできない。ポインタ渡しとはアドレス値渡しの事。
・実引数と仮引数の違いを復習。
・ポインタ変数man *のアドレス値を関数data_input()に渡すので、引数の型はman **になる。

514 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 11:04:02.41 ID:5MEAi0u6.net]
>>504
ウィキ上のとある仕様書に0x(4)a40020って書かれていて、
実際の処理で0x4a40020と書かれていて
意味がわからなくなりました。

515 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 11:14:11.03 ID:TyU2TXj2.net]
それは文の前後から判断するしか無いけど、4がある場合とない場合とあるんじゃないの
もちろん数としては違う、前ゼロとかは10進と変わらん
Cで010 とか書いたら8進数だけどね。

516 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 11:20:16.98 ID:XY9Cx3p4.net]
>>501
とりあえず、動くようにしたよ。
codepad.org/CJfhT28g

data_input()の中でも、ポインタの使い方があやふやだから復習すること。

37行目で何が違うか気づくはず。
40,43,45行目では配列方式の参照を、
47〜49は同じアドレスをポインタ演算で参照しておいたから参考にしてください。

517 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 11:21:29.33 ID:9bukWkLk.net]
cで十進数の0はどうやって書いたらいいのですか?

518 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 11:33:25.63 ID:zX+VOIct.net]
8進数の0で代用でw
(1-1)とか

519 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 11:34:34.41 ID:gmyFPynn.net]
仕様書などで 00123 と表記された十進の値と比較するCのコードを書くのなら
頭の 0 は落として 123 と書く

520 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 11:38:55.79 ID:gmyFPynn.net]
コード上 0x7b (16進) や 0173 (8進) は同じ値だけども、
仕様書との突合せで誤解を招くだろうから、そう書かない



521 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 11:54:57.93 ID:5MEAi0u6.net]
0x(4)謎ですが、とりあえず動いたから間違ってないってことにしておきます。
ありがとうございました。

522 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 11:58:54.84 ID:gmyFPynn.net]
仕様上 なんかの値は 16進で
0x4a40020 と 0xa40020 の両方がありえる ってことを
簡潔に書こうとしてるんでしょうよ

「仕様書はC言語でこのように書けという指令書ではない」ので
意図をくみとったうえでC言語でどうかくかを考えないとね (一般論)

523 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 12:31:12.87 ID:+uB1KRi8.net]
>>509
もうそれ秋田

524 名前:デフォルトの名無しさん [2015/06/30(火) 14:13:58.86 ID:cdRwV9j9.net]
>>502
>>505
>>508
ありがとうございます、ついに動かすことができました。
まだ理解が追いついてない気がするのでもう一度じっくり自分で考えて見ます。

525 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 18:34:56.46 ID:M6BHk1xU.net]
math.hを使わない絶対値の求め方を教えて下さい

526 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 18:45:53.19 ID:divopN93.net]
fabsのプロトタイプ宣言を自分で書けばmath.hは要らない

527 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 19:39:01.81 ID:9bukWkLk.net]
>>517
double absolute(double v)
{return v < 0 ? -v : v;}

528 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 20:28:37.11 ID:NJOHGXYM.net]
思ったんですがプログラミング趣味な人ほどゲームプログラミング嫌いますよね?
特にCみたいな機械語に近い言語使いの人は。

これってやっぱりゲームみたいな分かりやすいのより、インフラシステムみたいに
厳格な社会の基盤のシステム構築のためのプログラミングのほうが敷居が高いと思う
からですか?

そしてゲームプログラミングとシステムプログラミングではやっぱり
後者のほうがレベルが高いんでしょうか?

プログラマーの方いれば教えて欲しいんですが

529 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 20:45:18.85 ID:pel5ZbCo.net]
ゲームプログラミングの方がプログラミングスキルは高い

530 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 20:50:53.00 ID:uqQrfQWf.net]
          {/: :/: :/:::::::::::::::::/: : : : : / : : : : : : : : : : : : : . \:::::::::::::::/
         /: : : : : : /:::::::::::::::::::{ : : : : /: : : : : : : : : : : : : : : :\ \:::::::::!
       /: : /: : : ∧:::::::::::::::::/: : : : /:/: : : : :/ : : : /: : :i: : : :i: ヽ  \::}
     イ : : : /: : : /:::::\:::::::::/: : :|: : :/:_: : //: : :/∧ : |: : : |: : :} 、  >  ___
   ∠: :/: : :/: { : : /::::::::::| \:/: :|: :|: :イj´: :.//: : ://  }: :| ⌒iヽ : : . 丶  /     \
      /: : :/ : |: : /::::::::::::|: |: : : : !: :!// j:/  {: : //   !: :| : : !: : : : : : ! ヽ/ そ そ お 
.    /: : :/: : :|: :/::::::::::::::|y: : : : :|: :|/ ィチ云ヽ|ノ     jハノ__V : : : :}: : |\| う  う .前
    /:| : /: : : :|:/:::::::::::::::::|r |: :i : |: :l/ /iilllliii}       イill| ヾハ: :/: : :ト、  な 思 が
    {人∧: : : :|:\r-、::::::::|:(|: :| : |: :| {illlliiiill!       {ill|}  ∧/: : :|ヽ ん う
       | : : /: : : :Γ ̄`、.|: :| : |: :|  ゙==''"         弋ノ /: |::\: :.}'つ だ ん
       V |: : : :リ: : :∧: |ハ| :|:.l ヘヘヘヘヘ      ’ヘヘヘ/: /|_ イヽト:ゝ ろ な   /
            i: : :/ V  V  ヽ |: :.ト     、-―-,    / :/: : : :|    ゝ う  ら /
           |/      /^メ、: |   ー  `~ "_ , イ |: :/|∧: :/  /       く
                /:::::::::::ヽ!´"'':ー-....._ ̄ {/  V |V   V  i  で  お   |
                /:::::::r/⌒\:::::::::::::::〉                 |  は 前  |
                  {:::::/      \≧"ヽ              |  な .ん  |
                  /          \  ト、              \   中 /



531 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 20:52:39.00 ID:N7k11D6f.net]
別にゲームプログラミングをさげすんでいるとかじゃなくて、
むしろプログラミングをやっていると、ゲームプログラミングは半端じゃないスキルが必要
というのが分かってくるからね。

532 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 21:13:21.64 ID:i+Kc1vVh.net]
マ板いけっての
適切なスレ選択すらできないのかねチミ

533 名前:デフォルトの名無しさん [2015/06/30(火) 21:37:40.44 ID:ZcckwHFK.net]
>>520
逆だろw

ゲームプログラムほど難しいものはないくらいだぞ。

534 名前:デフォルトの名無しさん [2015/06/30(火) 21:39:36.79 ID:ah3rI407.net]
>>525
例えば?

535 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 21:47:47.28 ID:pel5ZbCo.net]
ゲームプログラマー上がりがシステムプログラムの仕事には移れるが
システムプログラム上がりがゲームプログラマーの仕事には移れない
つまりはそういうことです

536 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 21:49:35.29 ID:hhp9Lxaa.net]
業務プログラム 多少庶路に時間が掛かっても、答えが間違っていなければいい。間違っていては駄目。
ゲームプログラム 多少答えが違っていてもいい。ひたすら早く処理できればおk。

オレ流解釈 異論は認める。

537 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 21:49:45.67 ID:kYz06WW/.net]
ゲームを作るためにプログラム勉強したけどな。まずはベーマガから。

538 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 22:03:05.06 ID:HnzAl5vA.net]
ゲームプログラミングはかなりハードル高いな
ゲームで遊ぶだけなら池沼でもできるが

539 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 22:03:17.83 ID:5IIg4rdj.net]
>>528
賛同1

540 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 22:03:40.18 ID:5IIg4rdj.net]
てか、また暴れだすから程々にな



541 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 22:06:03.11 ID:n/kvsNLi.net]
>>528
速度を追求しつつ正確な演算を要求されるのが一番難しいって事になるな。

542 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 22:29:18.42 ID:3+NHF9fi.net]
>>526
業務プログラムでグラボ必須で萌えキャラが動いてたらやり過ぎだってなる

543 名前:492 mailto:sage [2015/06/30(火) 22:36:53.62 ID:CMabFk2P.net]
>>495
まとまった作業領域を特に割り当てなくても実はマージソートを実装できるような予感がする
>>483 に触発された,参考書をみずに書けたらいいな

544 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 00:10:15.14 ID:8CsMilrf.net]
>>530
業務プログラムは正解がある。
ゲームプログラムは正解が無い。

545 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 00:24:48.66 ID:43NAfoSR.net]
無職QZが投稿した糞オナニー質問

357 名前:オナネタ(そんなに難しくはない)[sage] 投稿日:2015/06/30(火) 15:56:31.85 ID:xNq01ZTL [1/5]
[1]省略
[2]
3^n (n=0,1,2,....1000)
を出力するプログラム
main関数しか作ってはならない。
stdio.h string.h
のライブラリ関数しか使ってはならない。
マクロ関数もNG
行数20行以内
変数は整数配列一つのみ
書式
3^0=1
3^1=3
3^2=9
....
3^82=1330279464729113309844748891857449678409
.....
[3]
[4]
[5]省略

546 名前:デフォルトの名無しさん [2015/07/01(水) 00:27:32.83 ID:4eZhXtdL.net]
#include "sub.c"
ってやってもいいの?

547 名前:デフォルトの名無しさん [2015/07/01(水) 00:52:06.71 ID:Zw/7ZO9t.net]
やってもいい

548 名前:デフォルトの名無しさん [2015/07/01(水) 00:53:36.01 ID:rcJELInO.net]
20行以内という制約条件がバカまるだしだな。

549 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 01:15:26.84 ID:tpHgdX4X.net]
>>538
そのソース名がsub.cだったりして

550 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 01:22:44.82 ID:f6kTfm9E.net]
>>538
可能だが、作法的に間違っているのでたいてい
怒られるのでやめた方がいい



551 名前:デフォルトの名無しさん [2015/07/01(水) 03:28:37.87 ID:coV3YcmE.net]
typedef struct {
int* ex;
} kouzou;

というような宣言の後で
kouzou.*ex
というような使い方がしたいのですがエラーになります。
どうやって書けばいいのでしょうか?

552 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 04:00:39.36 ID:rcJELInO.net]
*kouzou.ex

553 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 04:04:42.34 ID:98X3PxoR.net]
構造体のメンバの型 って使い方したいの?
 関数の引数で、型を示すのに int * と記述するところを kouzou.ex で代用したい
とか もちっと具体的な記述がないと

554 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 04:56:30.33 ID:s8gT99zA.net]
ポインタは めでたくもあり めでたくも無し

555 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 11:15:31.52 ID:/eEOVGmi.net]
まあ>>544のとおりじゃね
聞きたいことが違ったらなんか言ってくるっしょ

556 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 02:49:48.25 ID:IjiULNYp.net]
ttp://codepad.org/1pc6cIh1
本当は順位の計算もmainの外でしたかったのですが難しくてできませんでした...
どなたか例を書いてはくださらないでしょうか、よろしくお願いします。

557 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 07:15:33.49 ID:Y0nozqak.net]
>>548
こういう事か?
元の順位の計算の仕方がよく分からなかったので書き換えた
それと成績と順位で構造体にした

ideone.com/XDrz0b

558 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 10:46:13.94 ID:Nk1ADPQF.net]
>>548
できるだけオリジナル()のテイストを残してみた。

codepad.org/nkkaRkNp

559 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 10:49:25.68 ID:Nk1ADPQF.net]
まちがえた。こっちw

codepad.org/Sdjndzhb

560 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 20:26:42.86 ID:4tz2xAQ6.net]
ゲームプログラマーってどう難しいんだろ?
テンプレートはもうあって、グラフィックを用意するかしないかの違いじゃないの?
これは業務プログラムとも変わらない気がするけど



561 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 20:31:27.90 ID:4tz2xAQ6.net]
どっちも経験したって人いるかな
居たら教えて欲しいな

562 名前:デフォルトの名無しさん [2015/07/02(木) 21:01:41.25 ID:fR4mHX0O.net]
>>552
キミのいうテンプレートがそう簡単に理解できるかな。

563 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 21:03:42.93 ID:GLjdUG+w.net]
業務プログラムは会社がテンプレートを保存するけど
ゲームプログラマーは毎回一から作る羽目になる。
まぁ最近はエンジンを買ってやってるらしいけど。

564 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 21:16:37.09 ID:4tz2xAQ6.net]
>>>555
いちから作る理由が分からない
横スクロールだと本当に簡単に作れるんじゃないの?

565 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 21:17:40.21 ID:4tz2xAQ6.net]
だって例えばジャンプのプログラムなんて
int v 速度
int g 重力
if(buttonA)
{
int x; //位置
int y; //位置
x=x+1
}

jump(int g)
{
y=g*t*t-x
}


こんな感じじゃないの?

566 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 21:23:23.08 ID:t5xfvhty.net]
天才プログラマー現る

567 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 21:24:37.08 ID:4tz2xAQ6.net]
ジャンプは放物線を描くようなコードを書けばいいだけで
一から作る必要あるのかなと

568 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 21:34:57.98 ID:3P8p1QiE.net]
ここでああだこうだ言っても伝わらないでしょ
自分でゲーム作ってみたらよろし

569 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 21:35:52.83 ID:3rjvAgUt.net]
単純に書いたら壁をすり抜ける

570 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 21:39:36.44 ID:2QBvSmMa.net]
昔は一度ジャンプすると着地するまで操作できないゲームが大半だった。
今は空中で方向転換可能なゲームがほとんど。
その操作可能な部分も空飛んでるかって言うぐらいのものからちょっと減速する程度のもの、何かのコマンド入れないと無理なもの。
多種多様な仕様にあわせたテンプレート作るぐらいなら毎回作った方が楽。
つか会社じゃなく、個人の頭の中に少々手を加えて使うテンプレートが入ってるのが普通。それを技術と言う。



571 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 21:58:50.63 ID:f0mLUFIo.net]
>557
>だって例えばジャンプのプログラムなんて
空気抵抗は?横風や吹上、吹き降ろし、竜巻がある仕様では?
ジャンプ中に攻撃受けたときの軌道は?その攻撃は砲弾?レーザー?近くでの爆破?
そもそもジャンプしてるのは人?虫?鶏?ガーウォーク?

572 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 22:09:06.69 ID:QzIg/aEW.net]
プ「Cでテンプレート(ライブラリ)つくったぞ!!」
リーダー「スマホ用ソフト作るからJavaで開発な。」
...
プ「Java用ライブラリも用意したぞ!!」
リーダー「あー、今回はゲームエンジン買ったからそれようのスクリプト言語で開発な。」

573 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 22:51:25.59 ID:a9U+9AyR.net]
ttp://blog.livedoor.jp/nicovip2ch/archives/1913609.html
こういういい加減な世界だからと思っておけ。

574 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 07:35:08.03 ID:mrG1M549.net]
>>555
テンプレートと言うより、要件定義だな。
どんな業務でも、要件定義が最も困難。

575 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 08:00:16.45 ID:cYS66H6n.net]
業務用は大抵WindowsやUnix系でその環境が長期に続くのが予想できるので
自社ライブラリ活用の重要性が高い。
ゲーム環境は16bit以前はアセンブラが主流でCPUも多種あったのでライブラリ化が難しい。
コンシューマはハードメーカーがある程度ライブラリを用意していてくれるが、
そのハードの寿命が5年程度だから自社ライブラリが揃う頃には市場の寿命が来ている。

まぁ今はツクール的ソフトが出回ってるので変わったことしたいメーカー以外はそういうヤツの
付属ライブラリで作ってるんじゃないのかな?
あとはメーカーの社長の方針次第。

576 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 11:19:48.00 ID:UFh7Oq4r.net]
>>6
3項演算式は、分かってる人が限定的に使うのがよろし

577 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 14:06:26.84 ID:FGYvKOaI.net]
オーバーヘッドは悪
抽象化は罪
保守性はこの世の果てに置いてきた

ゲームプログラマーよ、己が牙と爪を研ぎ澄ませろ

578 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 15:00:47.57 ID:cAK/4qt5.net]
ゲームだ業務だなんてのはC言語に限った話じゃないし完全にスレ違いじゃね?

579 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 15:10:36.43 ID:tM/c9bw4.net]
区別つけれない子が定期的に湧く

580 名前:デフォルトの名無しさん [2015/07/03(金) 20:52:16.55 ID:mLifhUye.net]
#define NEXTBYTE (n--,*p++)
#define GRABBITS(j) {while(k<(j)){b|=((uLong)NEXTBYTE)<<k;k+=8;}}

このマクロってどういう動きになりますか?
zlibで実際に動いてるマクロなのですが・・・
括弧でくくった部分を左シフトするってどうなるのかわからなくて・・・。



581 名前:デフォルトの名無しさん [2015/07/03(金) 21:04:50.48 ID:Ujl9kI+Z.net]
*pをシフトする

582 名前:。そのあとpがインクリメントされる。 []
[ここ壊れてます]

583 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 21:58:42.25 ID:/GnoFs63.net]
>572
解からなかったらまず試す。
そのマクロを使ったサンプルソース作って見る。

584 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 23:33:21.10 ID:UFh7Oq4r.net]
>>572
DOS時代にC使ってたんだが、今時はこんな定義て普通なのか?

585 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/03(金) 23:51:47.82 ID:pBvJl+Tq.net]
>>572
NEXTBYTEはカンマ演算子の解釈に従って*pを返すが、
副作用としてnをデクレメントし、pをインクリメントする。
#define NEXTBYTE (n--,*p++)
恐らくpが読み込み位置を表すポインターでnが残りの長さであろう。

次にGRABBITSだが、kは8ずつ増えている。これは1バイトの
ビット数である。|=は、OR演算と代入である。k∈[0,j)に対してkビット
だけ左シフトしてORをとるを繰り返すのだから、これはバイトを
次々取得して低いバイトからbを埋めているのである。
#define GRABBITS(j) {while(k<(j)){b|=((uLong)NEXTBYTE)<<k;k+=8;}}

586 名前:NAS6 ◆n3AmnVhjwc [2015/07/04(土) 00:16:33.50 ID:+0FMM883.net]
マクロって・・・
inlineにしろよ

587 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 00:21:29.98 ID:VV3jJEnC.net]
>>572
展開結果みればいいだけじゃん

588 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 04:03:44.48 ID:Fgik/57+.net]
>>577
どたらも、良し悪しある。
関数にすると、型が限定されてしまう。
マクロだと意図しない動作する可能性ある。

589 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 04:10:40.35 ID:pRWF/8JR.net]
どたらもな

590 名前:NAS6 ◆n3AmnVhjwc [2015/07/04(土) 07:12:51.83 ID:+0FMM883.net]
>>579
(C++ならば)それなら inline template



591 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 08:18:41.39 ID:negZyq4J.net]
Cスレ

592 名前:デフォルトの名無しさん [2015/07/04(土) 08:42:52.40 ID:MQHT1P6q.net]
幾度となく死線を潜り抜けてプログラムを極めた俺様に何でもきかんかい!

593 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 08:49:33.00 ID:negZyq4J.net]
はい

594 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 09:00:08.69 ID:5JPjTv/9.net]
>>581
ここはcスレ。

595 名前:デフォルトの名無しさん [2015/07/04(土) 13:38:46.30 ID:Tzt2/bWL.net]
これは秀逸だなって思うC言語のコードってあります?
前にマージソートの質問したもんですが、左配列用、右配列用と
一時保存用の配列を二つ用意せず一つ用意して、左右の端から走査して、
本来右を走査する配列が、左を走査しても問題ない、また逆も然りっていう
仕組みは凄いなって思いました。

他にあったら教えて下さい。まぁあってもそういうのって自分だけの秘密にしたいと
思うんですかね、中々言いたくないと思いますが。

596 名前:デフォルトの名無しさん [2015/07/04(土) 13:52:01.01 ID:zkccIDTn.net]
1~100を表示させてそのなかの任意の数字の倍数の総和を求めるプログラムの書き方を教えて下さい
a%b==0は使うことは分かるんですけど、総和をどう記述すればいいか悩んでます
aを足しあげるからaを最後に出力させるように書くと1<=a<=100の制限で100以下にしかなりません


#include <stdio.h>
main()
{
int a;
for(a=1; a<=100; a++)
{
  printf("%d\n",a);
}
int b,;
printf("任意の数字=");
scanf("%d",&amp;b);
for(b=1;b<=100;b++)

597 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 13:56:18.26 ID:7qFGbGe6.net]
int t=0,a,b;
for(a=1; a<=100; a++)
{
  printf("%d\

598 名前:",a);
}
scanf("%d",&b);
for(a=b;a+=b;a<=100) t+=a;

か?
[]
[ここ壊れてます]

599 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 13:57:08.10 ID:7qFGbGe6.net]
× for(a=b;a+=b;a<=100) t+=a;
○ for(a=b;a<=100;a+=b) t+=a;

600 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 14:04:13.84 ID:XWq4mp45.net]
int tmp=100/b;
int totatl = (a+a*tmp)*tmp /2;

整数の除算は余り切り捨てだよな?



601 名前:590 mailto:sage [2015/07/04(土) 14:05:25.39 ID:XWq4mp45.net]
って変数aじゃねぇ! orz
int totatl = (b+b*tmp)*tmp /2;

602 名前:デフォルトの名無しさん [2015/07/04(土) 14:10:27.16 ID:zkccIDTn.net]
例えば10が任意の数字だとしたら
10+20+30+40+50+60+70+80+90+100=
が出力されるってわけなんですが
それが表現できなくて歯がゆい

603 名前:デフォルトの名無しさん [2015/07/04(土) 14:58:12.11 ID:zkccIDTn.net]
助けてください発狂してしまいます

604 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 15:03:03.01 ID:3dpbiA1v.net]
レスもらっといて何言ってんだ

605 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 15:08:05.74 ID:XWq4mp45.net]
>592

>588-589 ←いじれば出来るだろ。
それさえも出来ないなら辞めちまえ。

606 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 15:16:21.71 ID:IoQCkQ/X.net]
いつものかまってちゃんだろ。放置しとけよ。

607 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 15:16:53.27 ID:WvwJxr10.net]
printfの中身を一字一句理解せず呪文と思ってるとそうなる

誰だCなんか勧めたのは

608 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 17:10:44.98 ID:hWeTlHuy.net]
CountChar関数内で渡された文字が文字列中に何回出現するかを求めて返す

というのがわからない

#include <stdio.h>

char CountChar(char ss[], char dt[] );

int main(void);
{
char c[100]:

int n;

scanf("%lf", c);

scanf("%ld", n);

CountChar();

return 0;
}

char CountChar(char ss[], char dt[] )
{
int a;



}

609 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 18:10:52.85 ID:3xe091DX.net]
>598
char 配列に実数データを格納して文字列と言い張る理由がわからない

610 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 13:35:33.26 ID:TrBrpITS.net]
>>586
お付き合いした者です、刺激を沢山ありがとうございます
当初、作業領域なし/インプレイスで出来るんじゃないかと期待してたんですが、
いろいろ場合に当たった結果、やっぱり、当初与えられたデータ数程度の作業領域は必要なようですね
データ配列の「一個分位置ずらし」をコストとしてカウントしなければインプレイスにできるんですけども、
これは認めてもらえないだろうな‥

これはすごいっていうアルゴリズム‥たぶんいろいろあったんだとは思うけれども
感動する前にめんどくさいな、とか思ってしまっていたのでよくわかんない

とりあえず専用ブラウザから投稿させてほしい



611 名前:デフォルトの名無しさん [2015/07/06(月) 04:50:17.31 ID:r+1ftyuS.net]
ttp://www.nurs.or.jp/~sug/soft/tora/tora5.htm
最後の問題がさっぱりわからないです...

612 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 07:43:11.38 ID:UtQpsrfy.net]
そうですか。

613 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 04:41:15.27 ID:QhcZ6j1E.net]
QZには無理だから諦めろ才能ない無職

614 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 15:25:58.45 ID:uc2UtN37.net]
>>601
こういうことかな?
codepad.org/bE5S9dWG

ただし、手元の環境で実行すると、

int:0 float:0.000000 hex:0
int:1318926965 float:1318926976.000000 hex:4e9d3a75

となって、0x4e9d3a74→0x4e9d3a75で、floatがintを追い越すから、
intとfloatで同じビットパターンが同じ値を示すのは、0以外無いんだけど。
問題の解釈を間違えてるのかな?

615 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 21:16:09.81 ID:BL0LeVkm.net]
>>601

こんな感じかな
codepad.org/o1J0XqWR

int : 0, float : 0.000000, hex : 0
int : 1318926965, float : 1318926976.000000, hex : 4e9d3a75

616 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 21:35:40.91 ID:BL0LeVkm.net]
問題よく読んだらポインタの項だった。。。
課題1からの流れを汲み取ってあげるとこんな感じかな

float f = (float)i;
if (i == *((unsigned int *)&f)) {
printf("int : %d, float : %f, hex : %x¥n", i, (float)i, i);
}

617 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 22:32:58.19 ID:3oy//rai.net]
ホントに「intとfloatで同じビットパターンが同じ値を示す」数字って0以外にあるの?

ひょっとして、ビッグエンディアンなら0以外にもあるって事かしら?

618 名前:デフォルトの名無しさん [2015/07/07(火) 23:15:00.34 ID:QhcZ6j1E.net]
口調変えてもバレバレだろQZ
お前は低能なんだから低レベルの議論にするなよ永久無職

619 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 23:19:00.26 ID:BL0LeVkm.net]
エンディアン関係ないから

620 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 23:32:11.62 ID:3oy//rai.net]
そりゃそうだな、関係ないなw
じゃ、やっぱり問題の解釈が違うんかなぁ?



621 名前:デフォルトの名無しさん [2015/07/08(水) 00:36:50.13 ID:QLXOn1Rg.net]
QZには無理っていってんだろ

622 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 07:38:44.88 ID:IfW/Ay/U.net]
QZが何者か知らんが、お前が虐められて悔しいのは理解した。
いつまでも引きずってないで、前に進んだ方があなたのためですよ。
人生のリハビリだと思って頑張って下さいね。
ではでは。

623 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 08:44:03.79 ID:xRK5vE6u.net]
まじで、ネタで言ってたとしても「QZガ〜」は何の面白みもないからやめて欲しい。
ってか荒しだよね、スレから消えて欲しいいや板から消えて欲しい。

624 名前:デフォルトの名無しさん [2015/07/08(水) 10:36:42.18 ID:O7aPWqfj.net]
そういえばQZと片山のIDが同一だった発言を見た記憶がある

625 名前:デフォルトの名無しさん [2015/07/08(水) 10:47:21.02 ID:O7aPWqfj.net]
>509 :テスト ◆QZaw55cn4c :2015/04/29(水) 14:59:08.26 ID:z7uliay9
> テスト
>
>510 :片山博文MZ ◆T6xkBnTXz7B0 :2015/04/29(水) 15:28:32.77 ID:z7uliay9
> >>507 うまく修正できたよ。

これだったな

626 名前:デフォルトの名無しさん [2015/07/08(水) 13:36:33.08 ID:SQs9ZFsr.net]
そうなの?

627 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/08(水) 13:38:13.02 ID:73Ug3Wex.net]
Qzのトリップはバレてるからな

628 名前:テスト ◆QZaw55cn4c [2015/07/08(水) 13:39:14.38 ID:SQs9ZFsr.net]
テスト

629 名前:デフォルトの名無しさん [2015/07/08(水) 14:56:17.56 ID:O7aPWqfj.net]
いや、第三者が証明しないと意味ないから

630 名前:デフォルトの名無しさん [2015/07/08(水) 14:58:18.09 ID:O7aPWqfj.net]
せっかくだからQZのトリップを公開してもらおうか
バレてるのなら今更だろ?

#自爆乙



631 名前:デフォルトの名無しさん [2015/07/08(水) 15:06:04.19 ID:O7aPWqfj.net]
片山ってもしかしてバカなのか?

632 名前:デフォルトの名無しさん [2015/07/08(水) 15:21:02.25 ID:O7aPWqfj.net]
IDの自演も無しにしてほしいな

633 名前: ◆96Z1eVei2s mailto:sage [2015/07/08(水) 16:10:47.83 ID:PQcxNWhR.net]
すぐバレる嘘つきやがって全く

634 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/08(水) 17:43:38.36 ID:73Ug3Wex.net]
2ちゃんねるのトリップ漏洩事件によってQZのトリップは漏れてる。個人情報保護法があるから、詳しくは言えないが

635 名前:デフォルトの名無しさん [2015/07/08(水) 18:04:11.30 ID:gNgHjUOK.net]
つまり君は漏洩した情報を入手してそれを利用したというわけだね。
その時点で個人情報保護法に抵触しているよ。

漏洩した情報にはクレジットカードの番号も含まれているわけだが。
通報しますか?しませんか?

636 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 18:28:23.70 ID:gNgHjUOK.net]
::::::::::/           ヽ::::::::::::
:::::::::::|  ば  じ  き  i::::::::::::
:::::::::::.ゝ か   つ   み  ノ:::::::::::
:::::::::::/  だ  に  は イ:::::::::::::
:::::  |  な。       ゙i  ::::::
   \_         ,,-'
――--、..,ヽ__  _,,-''
:::::::,-‐、,‐、ヽ. )ノ      _,,...-
:::::_|/ 。|。ヽ|-i、      ∠_:::::::::
/. ` ' ● ' ニ 、     ,-、ヽ|:::::::::
ニ __l___ノ     |・ | |, -、::
/ ̄ _  | i     ゚r ー'  6 |::
|( ̄`'  )/ / ,..    i     '-
`ー---―' / '(__ )   ヽ 、
====( i)==::::/      ,/ニニニ
:/     ヽ:::i       /;;;;;;;;;;;;;;;;

637 名前:(株)今北産業 mailto:sage [2015/07/08(水) 18:58:50.66 ID:e1WcPcpR.net]
自分の犯罪を白状するスレはここですか?

638 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 19:21:27.57 ID:Y4/HOrqp.net]
ワロい過ぎた

639 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 20:10:15.83 ID:PAkk6Hqa.net]
すみません僕は2ch初心者なんですがQZって誰ですか?有名な人なんですか?

640 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/08(水) 20:22:50.07 ID:73Ug3Wex.net]
>>629
QZは、C/C++の宿題スレに生息している。



641 名前: ◆QZaw55cn4c mailto:sage [2015/07/08(水) 21:20:35.04 ID:dH1o5zRy.net]
>>630
最近はみかけないね‥

642 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 21:36:28.98 ID:43f6DXxl.net]
プログラム板にこの人ありって位、有名で有能なプログラマだよ。
覚えておいて損はない。

643 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 22:34:01.71 ID:P3MgPigD.net]
じっくりコードを読む事ができるが理解が遅いプログラマと
すばやくコードを読むことができるが間違いが多いプログラマなら

どっちが欲しいですか?リーダーとして

644 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 22:42:36.39 ID:m5k9DQUy.net]
有能ではないけど有名だな
プログラムの最後に /* end */ と付けるのが好きみたいだし
必要のない場所にすら二分木使ったり

645 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 22:43:52.91 ID:m5k9DQUy.net]
あ、そうだ、QZに課題出しといてやるよ
二分木探索は再帰を使わない非再帰に書き換える事が出来る
そうする事によって高速化やスタックオーバーフローを防止できる
これやってみ

646 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 22:57:48.60 ID:tSvJTLLc.net]
>>633
マ板池

647 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 23:28:30.75 ID:H34fJNZm.net]
>>633
後者のそれ読めてないじゃないですか

648 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 00:55:05.63 ID:J7b7Mxuc.net]
>>635
peace.2ch.net/test/read.cgi/tech/1313183984/793

649 名前:デフォルトの名無しさん [2015/07/09(木) 01:44:10.39 ID:1/aylVmX.net]
QZ怒りの自スレ紹介

650 名前:デフォルトの名無しさん [2015/07/09(木) 01:45:03.59 ID:1/aylVmX.net]
ほんと自演魔だなQZ
煽りまで自演かよ



651 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 18:53:17.69 ID:mde2xpnr.net]
思ったんですけどchar文字なんてあるんでしょうか?
intの-127〜127を割り当てればいいだけでは?
わざわざchar型を実装する意味がイマイチ分かりません。

652 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 18:55:57.53 ID:Elm3Zapl.net]
>>641
昔は今みたいに膨大な主記憶装置は無かったからね

653 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:00:26.47 ID:mde2xpnr.net]
>>642
??どういうことですか?

654 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:01:52.09 ID:mde2xpnr.net]
後疑問ですが
strcpy関数とかって返り値が0じゃないときは0以外の数ってなるじゃないですか?
何でずばり1って断定しないんですかねぇ…全然わかりません。
何で0のときは0(一致しないとき)、一致するときは0以外って曖昧だと思いません?

655 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:03:48.96 ID:wx8JTHvZ.net]
1と比較するアフォを排除する為

656 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:09:24.05 ID:mde2xpnr.net]
そもそも実装はどうなってるのって話ですよ
単純にreturn 1;って書けばいいのに
曖昧にするってことは

return rand()/%00;
みたいな感じなんですかね?

657 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:11:14.26 ID:B2+ONIF1.net]
charって文字コードの型ってよりは、最小単位のバイト数である、が重要だと思ってるんだけど違う?
大量のデータをとりあえずchar型の配列とかポインタで格納し、unsigned charでキャストして、unsigned charひとつ分のバイトデータに分割し、加工してまたくっつけるてlong型返すとか。

658 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:12:04.13 ID:80WFJcEW.net]
strcpyは第1引数返すだけだろ?
strcmpの事言ってるなら高速化のために単純に文字コードの引き算の結果返す実装があるから

659 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:12:44.32 ID:ntINu6aK.net]
>>644
思わない。0と比較すればいいだけ

660 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:15:24.14 ID:ntINu6aK.net]
>>647
charは文字のための型。最小かどうかは重要じゃない



661 名前:647 mailto:sage [2015/07/09(木) 19:19:34.86 ID:b3vJbeQ5.net]
>>650
でもこう書いてあるよ?
q.hatena.ne.jp/1381762366

662 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 19:19:52.03 ID:OqiP450p.net]
漢字は入らないでしょ

663 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 20:01:31.51 ID:yvZx6GXv.net]
メモリは沢山あるんだからcharなんか使わなくてint使えば良いだろ。俺は滅多にcharは使わない。

664 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 20:03:16.30 ID:mVlTl5rr.net]
>643
・バイトという単位があって、それに合った型がchar型。
・C言語はアセンブラと相性がいい言語。アセンブラで出来ることがC言語でも出来た方が都合がいいと判断した結果。
・C言語が出来た時代は搭載メモリが1Mも無いハードが主流の時代。1バイトでも使用容量を減らすのが当たり前の時代。
・専門家が必要と判断した結果。お前みたいなヒヨッコには経験不足で理解できないだけだ。黙っとけ。

665 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 20:23:52.40 ID:QKowWqJV.net]
アセンブラと相性がいいのはJavaでは?
だってjavaはメモリ操作関数Cより多いじゃん

666 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 20:27:10.54 ID:ditZL0Yg.net]
C言語出来たときにJavaが存在してたと?
C言語の他にアセンブラと相性のいい言語があったら、他に相性がいい言語は存在しちゃいけないの?

667 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 20:34:37.12 ID:Mmd8OX6L.net]
JavaはJava仮想マシン上で動くことが前提の言語。

668 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 20:55:12.40 ID:QKowWqJV.net]
C言語のコンパイラをjavaで作った場合、C言語もJVMで動くってことになるんですか?
そこらへん分かってません。
コンパイラって結局なんですか?

669 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 20:57:31.74 ID:nD2SHEs8.net]
「C言語の仕様はxxxと成ってますがxxxxの方がいいと思います。
なぜそのようになっていないのですか?」

・2chユーザーに聞くな!仕様決めたやつに聞け!
・理由が全く思いつかない?それはお前の経験不足のせいだ。もっと他人のソース読んだり、他の言語も勉強しろ!!ついでに国語を小学校からやりなおせ!
・面倒?そう思うやつはプログラマー向いてないから止めちまえ!!

670 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 20:58:56.44 ID:QKowWqJV.net]
コンパイラの意味が分からないです
だってコンパイラだって何らかの言語で作られてるわけでしょ
Cだからアセンブラと相性がいいっていうのは何故?



671 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:00:57.85 ID:deXGtrLg.net]
そもそもアセンブラが何かわかってなさげ

672 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:03:38.82 ID:i/qBMKbM.net]
>658
とりあえずコレ読んどけ
ttps://ja.wikipedia.org/wiki/コンパイラ

>C言語のコンパイラをjavaで作った場合、C言語もJVMで動くってことになるんですか?
そのコンパイラがJVMで動くコードを吐くように作られてるならそうなる。
Windows用コードを吐くように作られてるならJVMでは動かない。そういうのをクロスコンパイラという。

673 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:15:06.10 ID:QKowWqJV.net]
>>661
アセンブラは
INDEX
MAX
MIN
MOVEF
とかでしょ?分かってますよ


で疑問なのがCのコンパイラ作れ作れみたいな本って
全部CでCのコンパイラ作ってるんですよね?意味なくないですか?w
何でCのコンパイラを作らないとダメなのにCを介しているんだと…
遅くなるじゃないですか…

アセンブラで作るからCは高速なんだからアセンブラでコンパイラ作るべき
だと思うんですが、それは企業秘密なんですかね

674 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:16:48.88 ID:QKowWqJV.net]
後思うんですけ

675 名前:どjavaって遅い遅いって言われてるじゃないですか?
ならCをjava化すればいいだけでは?

java=遅いけど機能豊富
C=早いけど機能が単細胞アメーバ

なら単にCでjavaの機能実装すればいいだけでは?
単純にそう思います
[]
[ここ壊れてます]

676 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:21:43.77 ID:L3wwq7kt.net]
>>655
>アセンブラと相性がいいのはJavaでは?
下に根拠らしきものが書いてあるが、こういう知識が
どうして訂正もされずに頭の中にあるのか不思議。

677 名前:デフォルトの名無しさん [2015/07/09(木) 21:22:38.79 ID:JgLS8zBl.net]
>>664
お前が作ってくれ。
知らないが、LLVMアセンブラと、javaのアセンブラ相当の部分の橋渡しを作ったらいいのでは。

678 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:25:00.03 ID:OqiP450p.net]
Javaがネイティブに動くcpuを作れば良いのでは

679 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:25:39.32 ID:QKowWqJV.net]
もっと思うんだけど
プログラミング言語が一番高速なのはアセンブラでしょ?
ならアセンブラで開発すればいいと思います
アセンブラにもクラスみたいな機能あったはず

なのに何で組み込み系ってC言語なんですか?

組み込みってリアルタイムシステムじゃないですか?
なら

中途半端に早いC言語より超高速のアセンブラで作ればいいのではないかと
単純にそう思うんですがね

680 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:26:13.44 ID:deXGtrLg.net]
>>663
それはニーモニック

CコンパイラをC言語で書くのは
拡張性やメンテナンスをしやすくするためで意味がある



681 名前:デフォルトの名無しさん [2015/07/09(木) 21:26:33.56 ID:JgLS8zBl.net]
Javaバイトコード - Wikipedia
Javaバイトコードは、Java仮想マシンが実行する命令形式である。
命令
各バイトは潜在的な256個の値を持つが、256個の使用可能なオペコードを持つ。これらのうち、0x00から0xca、0xfe、そして0xffは割り当てられた値である。

命令は幅広い数に分類される:
?ロードおよびストア(例 aload_0,istore)
?算術および論理(例 ladd,fcmpl)
?型変換(例 i2b,d2i)
?オブジェクト作成および操作(new,putfield)
?オペランドスタック管理(例 swap,dup2)
?移動管理(例 ifeq,goto)
?メソッド呼び出しおよび復帰(例 invokespecial,areturn)




LLVM - Wikipedia
LLVM は、JavaとJava VMの関係のように、まず仮想機械をターゲットとした中間コード(ビットコード)を生成し、その仮想機械向けコードを特定のマシンの機械語に変換する。
この時言語やプラットフォームとは独立した最適化を行う。この方法によってLLVM は言語からもアーキテクチャからも独立しており、それぞれに特化した、
プログラミング言語固有のモジュールと、マシン向けコード生成部を用意することにより様々な言語アーキテクチャーに対応する。

682 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:32:17.80 ID:VxETAF0f.net]
>>668
アセンブラでクラスとかお前は一体何を言ってるんだ?

683 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:40:38.93 ID:ZBdPMQSU.net]
>>671
おい釣られるなよ

684 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:50:46.43 ID:QKowWqJV.net]
javaの参照もメモリを制御してるのに
何でCは早くて、javaは遅いの?

685 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:54:23.72 ID:syH16MxP.net]
それを説明するにはID:QKowWqJVの知識が低すぎるし、
その知識にあわせて説明すると解説本1冊作れるぐらいの情報が必要。

つまりそういう本を帰ってことだ。
とりあえずこれ読んでこい。

https://eb.store.nikkei.com/asp/ShowItemDetailStart.do?itemId=D2-00P83150B0
プログラムはなぜ動くのか

686 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 21:59:02.87 ID:QKowWqJV.net]
>>674
分厚いなぁww
何故動くかくらいは分かりますよ
機械語の組み合わせを一つの文字にまとめる
まとめたのをまとめる、結局それの繰り返しでしょ?

687 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:05:39.24 ID:AjjL7yX9.net]
>675
全くダメ!そんなイメージだからみんなの説明が全く理解できないんだよ。
読めと言ったらとにかく読め!それが出来ないなら来るな!

688 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:09:22.41 ID:QKowWqJV.net]
>>676
書店で読んでみますわ

689 名前:デフォルトの名無しさん [2015/07/09(木) 22:13:00.09 ID:JgLS8zBl.net]
CやJavaが言語として速度が遅いという根拠はない。
最適化と動作環境がマトモならアセンブラと並ぶ。

690 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:15:31.80 ID:OqiP450p.net]
メモリ使用量くらいかな、違うのは



691 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:15:41.15 ID:QRivXUtQ.net]
× 機械語の組み合わせを一つの文字にまとめる
根本的に間違ってる。どこをどう間違ってるか説明不能なぐらい間違ってる。

692 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:16:29.17 ID:QRivXUtQ.net]
>677
書店に迷惑だ!買うか図書館行け!

693 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:27:36.35 ID:G8eHbxF5.net]
またADHDの人が暴れてるのか。。。

694 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:33:51.62 ID:Elm3Zapl.net]
>>680
あながち間違いではないのでは?
視覚的に分かりやすいように機械語の命令

695 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:35:19.65 ID:Elm3Zapl.net]
>>680
あながち間違いではないのでは?
視覚的に分かりやすいように機械語の命令セットを割当いるのだし

696 名前:デフォルトの名無しさん [2015/07/09(木) 22:37:43.13 ID:1/aylVmX.net]
平日昼間から自演とは笑わせる

697 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:52:22.30 ID:B2+ONIF1.net]
はぁ、でたよ
あなたこそ、荒らすだけで何にも有益な情報だしませんよね。消えてください

698 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:53:13.19 ID:QRivXUtQ.net]
あいつはあいまいな部分を自分に都合のいいように超拡大解釈させるから
例外排除、厳密主義で説明しないとむちゃくちゃなことになる。

699 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 01:03:59.34 ID:6ULcnTjH.net]
あいつは何も創り出さないから、
パクリ屋の片山の方が少しだけマシ

しかし、あいつら重箱の隅をつついたり残飯あさりみたいなことして楽しいのかね?

700 名前:デフォルトの名無しさん [2015/07/10(金) 01:27:13.99 ID:9OV4RYzP.net]
QZ怒りの煽ってフルボッコにされるの巻き



701 名前:デフォルトの名無しさん [2015/07/10(金) 01:46:59.57 ID:BbUNOMqp.net]
ID出るようになってから本当にまともな情報出てこなくなったな。
にわかや間違った知識の初心者がただ暴れるだけのスレになってしまった。
まともな情報を提供できる人が減り、まともな情報を得られる人が減り、負のスパイラル。

このスレの存在価値って暇なときにそういう奴らをヲチれるってだけでしょ。

702 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 02:23:27.56 ID:WL3Gd+eK.net]
>>690
ID は関係ない,むしろ有益
どちらかというと専用ブラウザを排除したことの罪が重い

703 名前:デフォルトの名無しさん [2015/07/10(金) 02:30:20.46 ID:9OV4RYzP.net]
さすが公開オナニーを正当化したいQZのいうことは違う

704 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 05:31:28.35 ID:Jvm9pak2.net]
>>673
これはガベージコレクションが関係してるからじゃないんですか?
C系はRAII等でプログラマがメモリを自由に管理できるし、それも早さに繋がっているのでは?

705 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 06:35:18.95 ID:XAIUcdu4.net]
>>641
大昔は、文字コードは8bitしか無かった。
最近出来の言語ではcharは文字用になって、多バイト文字も扱える物も有る。(新たに byte型が出来てる)

706 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 07:46:38.37 ID:+KcTu61v.net]
C言語が速い(と思われる)のは引数の安全確認を省かれてる関数が多いから。
また、型が違う時のキャストも最小限にしかしないから。

707 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 07:55:52.36 ID:bM2M5Hwn.net]
クラッシュした時にデフォルトで呼び出しダンプが吐かれるのを見て
何でこんな無駄なことやってるんだ!? と呆れるのがCグラマ

708 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 12:54:35.54 ID:xr+IAg9x.net]
ある程度以上複雑な処理を、特定のCPUに特化したオプティマイザを持った
Cコンパイラが吐くようなコードをアセンブリ言語で書くなんて無理ゲーだろ。

もちろん諸般の事情で、どうしてもこの命令を使いたいなんてときには
書くこともあるがな。

709 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 13:10:49.66 ID:yh0xw8Sd.net]
Cより遅くなる要因はランタイムの有無だろ。

710 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 13:37:30.71 ID:bM2M5Hwn.net]
配列や構造体をスタックに置かない
例外やトレース情報など関数呼び出し時の無駄な処理
ライブラリの隅々にまで及ぶ徹底したオーバーヘッド撲滅の不足
みんな大好きガベージコレクション



711 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 13:41:38.65 ID:+KcTu61v.net]
ペンティアム1ぐらいの時代まではアセンブラ=>C言語だった。

712 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 14:20:51.40 ID:uxjenI25.net]
>>700
今でもアセンブラ 〉 C言語
これからもずっとアセンブラ 〉 C言語

713 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 18:41:42.06 ID:M5h7ZwqO.net]
初心者です。どなたか助けて下さい。
マイコンのROMに書き込むプログラムについてです。

ソースファイルをビルドして書き込み形式ファイルに変換したときに、
ROM上の所望のアドレスに所望の値(ビットパターン)が書き込まれるように
ソースコードで制御することはできるのでしょうか?
ポインタ(?)を使えばできるのでしょうか?

714 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 18:48:03.90 ID:ZMvCzyvK.net]
ROMライター側で (通信で)渡ってきたビットパターンを 特定のアドレスに書き込む
んだけど、なんか別の方法もあったようななkったような 忘れた

少なくとも
ROM上のプログラムが ROM上の記憶領域に対して書き込み方向のアクセスしても、書けないぞ

715 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 19:00:18.44 ID:Z2TbeI0I.net]
>>702
答えになっているか分からないが
参考になるかな
www.ertl.jp/~takayuki/readings/c/no09.html

716 名前:デフォルトの名無しさん [2015/07/10(金) 19:59:07.41 ID:9OV4RYzP.net]
初心者ながらQZの自虐無知識自慢とか意味不すぎる

717 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 20:09:33.91 ID:6ULcnTjH.net]
>>704
ていうか、その前の開発ターゲットと開発環境を質問すべきだろ
シッタカが過ぎて墓穴掘ってんじゃねーぞ

718 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 20:34:42.91 ID:86aMQ0Tc.net]
そんなの開発環境とか関係ない。
普通のROMライタならモトローラSフォーマットかインテルHEXフォーマットで書ける。
そんなのうけつけ無い、手作りのROMライタつかってるなら、こんな所に質問にこない。

719 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 21:14:28.60 ID:cETlnxs2.net]
>>680
どう間違ってるんですか?

ビット操作を文字列で置き換えたのがプログラミング言語なだけでは?

ビット操作をアセンブラにまとめて
アセンブラを言語でまとめる

それだけでは?

720 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/10(金) 21:17:42.37 ID:DCa/3nZ3.net]
>>708
条件分岐などの制御構造を持たないと、プログラム言語とは言えない



721 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 21:19:49.53 ID:9IScuLdJ.net]
アホがソースコードで制御って質問してるだろーが
ちゃんと質問読めよシッタカめ

722 名前:710 mailto:sage [2015/07/10(金) 21:21:39.03 ID:9IScuLdJ.net]
>>707

723 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 21:34:16.91 ID:BKxBIosQ.net]
>>708
マイコンキット買ってきて、機械語プログラムを体験してみたら?

724 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 21:47:49.28 ID:bM62bRJM.net]
>>702
環境が分からないから概要だけかいつまむと…

所望のアドレスでsectionを作る。
そのsectionにマッピングするように指定したコンストのグローバル変数を定義して、初期値に所望のビットパターンをセットする。
コンパイルする。
焼く。
以上。

725 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 21:54:23.17 ID:mihfK1KR.net]
>>694
> 大昔は、文字コードは8bitしか無かった。

大昔なら 7bit だろ
通信とかだと大文字限定にして 6bit もなかったっけ?

> 最近出来の言語ではcharは文字用になって、多バイト文字も扱える物も有る。(新たに byte型が出来てる)

Byte 型なんて VB6 の時代からあるし、Pascal で 0..255 範囲型定義すればバイトを扱えたと思う(こっちは処理系によるかも、もう記憶が曖昧)

726 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 21:55:41.81 ID:zONaO8sT.net]
>708 電子回路理論は別の板です。ここではありません。

727 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 22:09:15.13 ID:Q4vtffLq.net]
もしかしてコイツCPUかパソコン内にC言語ソースを解読する回路を持っていると思っているのではないかと本気で危惧。

728 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 22:35:53.64 ID:V5qL2Bce.net]
そういやぁ昔モニタにもPC同様のOSが入っててPCからモニタを制御して映像を出してると思ってたやつがいたな。
同一人物か?

729 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 23:08:56.72 ID:4ayEXXFA.net]
説明省いた所に勘違いの根源がありそうだけど…そこまで矯正してやる理由も利点も無いよなぁ。

730 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 23:23:33.71 ID:p4eBJ6uf.net]
>>702
できるよ
組み込みのファームアップで良くやるし



731 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 23:39:11.26 ID:ykzgorl/.net]
環境によってはこんなのもあったり、リンカスクリプト自分で書くとか
infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0491bj/BABGJHDC.html

732 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 00:09:42.18 ID:yb9b9uYv.net]
一方私はhexファイルを加工するスクリプトを作った。

733 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 12:59:55.02 ID:2/75tmG3.net]
>>643
昔のPCはメインメモリ16Kとかでメモリ制限多かったのと
当時8bitCPUのレジスタサイズと相性良い

今残ってるのはファーム系や通信系、その他互換性かな
まだまだ使われてるとこが多い

734 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 14:11:53.54 ID:EetLUFfU.net]
8bitハードでC言語はやりたくないなぁ・・・。オールアセンブラが王道。

735 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 16:27:10.55 ID:JsXMIkKG.net]
うちは8bitのpicでもcで書いてるけどね。

736 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 20:15:30.31 ID:N+MxSKL/.net]
グズで役立たず程ネガティブ発言が多い

737 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 21:44:07.25 ID:s2rxtCK9.net]
皆さんは標準ライブラリは覚えておく派?
それとも必要に応じて引用する派?

738 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 21:55:07.98 ID:pd57RWsF.net]
必要に応じて調べている内に覚えちゃう派

739 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 14:27:14.74 ID:o+m4gL9U.net]
ラッパー化して自分専用ライブラリに。

740 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 15:30:24.74 ID:NWI6O2xz.net]
このスレでman見ろ言われてからman見る派



741 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 15:49:19.24 ID:BKAToTl0.net]
manって女性差別だろ。
呼び方変えるベキ

742 名前:テスト ◆QZaw55cn4c [2015/07/12(日) 16:04:50.67 ID:MzVYHQ6B.net]
manがだめなら、chinがあるさ

743 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 16:19:47.96 ID:NWI6O2xz.net]
ねーよ

744 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 19:37:07.12 ID:/ikWn7Z2.net]
man

745 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 19:37:41.14 ID:/ikWn7Z2.net]
コマンド

746 名前: ◆QZaw55cn4c mailto:sage [2015/07/12(日) 20:25:06.10 ID:fGWqKhxR.net]
>>731
おもしろいと思ったのか?厨には早いから初心者スレにでも

747 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 17:33:39.59 ID:wlq5ajTC.net]
>>703,704,713,719

レス本当にありがとうございます。

ご教示頂いた情報とリンクから、おそらくリンカスクリプトのSECTIONブロックに
.rodataのLMAを指定するのではないかなと理解しました。
まだ、具体的なところが分からないのですが、例えば、ROMの0xABCDEEと0xABCDEFに、
それぞれ11111111と00000000を書き込みたい場合、.rodataのLMAの指定方法(AT属性?)と、
LMA以降のアドレスにおける定数値とのマッピングはどのように指定すれば良いのでしょうか?

>そのsectionにマッピングするように指定したコンストのグローバル変数を定義して

と、思ったのですが、そもそも.rodataではなくて、個々のグローバル変数のLMAを
SECTIONブロックで定義できるのでしょうか?

748 名前:デフォルトの名無しさん [2015/07/13(月) 22:35:42.72 ID:2DWcmP+D.net]
QZF欄時代の糞課題
i.imgur.com/hbOo1dK.jpg?1
i.imgur.com/bCG68SN.jpg?1
i.imgur.com/zf9wrJ5.jpg?1
i.imgur.com/ZGD61Ml.jpg?1
i.imgur.com/Keoih8o.jpg?1
i.imgur.com/KDVwkUn.jpg
i.imgur.com/GsOscHJ.jpg
i.imgur.com/hMCBnbN.jpg

749 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 21:43:26.21 ID:YTQkbKn/.net]
こんな感じじゃダメ?
. = 0x01ABCDEE;
.MySct1 : { BYTE(0xFF);BYTE(0x00); }

750 名前:デフォルトの名無しさん [2015/07/14(火) 22:36:42.79 ID:rB0J2LcB.net]
QZは出入り禁止



751 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 02:52:47.11 ID:4s2DsMfA.net]
初歩的な質問させてください
同じ構造体の中のメンバーの値を比較して最大値を返すプログラムを作りたく、

max=data[0].a
for(i=1;i<=n;++i){
if(max<data[i].a)
max=data[i].a
}

と書きました
本来ならiが2の時の値が最大値になるのですが、nの値が出てしまいます

プログラムの間違いや構造体の比較の上で何か注意があれば教えてくださいm(_ _)m

752 名前:デフォルトの名無しさん [2015/07/15(水) 03:09:21.85 ID:rDPbITG6.net]
n個しかないのにn+1個目を呼んでるとか

753 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 10:37:53.35 ID:D5SeDEqJ.net]
>>738
ありがとうございます!ありがとうございます!

まだ思うように動かないのですが、
教えて頂いたコードはリンカスクリプトのどの部分(.rodata?)に書けば良いのでしょうか?
それと>>713さんからsectionにグローバル定数をからめられることを教えて頂いたのですが、
「BYTE(0xFF);BYTE(0x00)」の指定をグローバル定数で指定することはできるのでしょうか?

754 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 12:13:31.73 ID:4Gs4+rfn.net]
>>740
1) 「同じ構造多の中の」を比較するのに構造体自体が配列になっててそれを比較してるのはいいの?
2) data の配列はきちんと初期化してる?
3) max と data:a の型はなに?  signed だったりしない?
4) for ループの n はどっから出てきたの?

755 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 12:22:13.28 ID:nYMDh+es.net]
配列は 宣言が type array[個数] で
array[0] 〜 array[個数-1] までしか使えない

756 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 12:29:03.53 ID:cCeHMBdr.net]
max=0;
for(i=0;i<n;++i){
if(max<data[i].a)
max=data[i].a;
}
普通こう書くな

757 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 12:44:08.91 ID:AuuzzMz2.net]
>>745
新人に書かせると、毎年結構な割合でそう書くんだが、学校で教えてるのかねえ?

758 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 12:51:04.75 ID:2t4VwR8U.net]
>>745
値が全て負の時に結果が 0 になっちゃうからダメ

759 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 13:27:43.35 ID:s74LivYF.net]
アンパサンド使えばいいじゃない!

760 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 13:46:16.64 ID:cCeHMBdr.net]
>>747
負数は条件に入ってないでしょ
そう書いてあったらlimit.hから持ってくるだけだ



761 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 13:46:50.73 ID:cCeHMBdr.net]
問題はそこじゃなくて添字の使い方

762 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 13:48:35.13 ID:j8XNr1jp.net]
初期値を[0]から持ってくるのも、0件の時使えないしな。

763 名前:デフォルトの名無しさん [2015/07/15(水) 18:11:26.12 ID:m0HrC+H+.net]
>>740
その構造体の型とデータを、ここに貼ってみて欲しい。
本当に、i=2が最大なのか?

764 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 18:50:46.02 ID:fokCzg42.net]
・data[n]の初期化忘れ。
・for(i=1;i<=n;++i){ が for(i=1;i<n;++i){ の間違い。
・dataに予定と違うデータが入っている。

さぁどれだ?

765 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 19:20:52.98 ID:ekVQGYCu.net]
>>749
え、条件に入ってないの?

766 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 20:44:13.64 ID:uItIfLXq.net]
>>742
リンカスクリプトって環境によってかなり違うからどこに書くかといわれても。
SECTIONS { }
の中のどこかとしか。
俺はMinGWでld -verboseでスクリプト吐いて、
SECTIONS { }の一番下に
. = 0x01ABCDEE;
.MySct1 : { BYTE(0xFF);BYTE(0x00); LONG(0xAA55CC33); }
↑こう書いて、gcc -T hoge.x foo.cでコンパイルリンクして、
当然実行できないから
objcopy -F ihex a.exe a.ihex
↑した後にa.ihex見たらそれっぽくできてたんで>>738と書いただけ。
後、↓見たいに一行で書かないとエラーになるリンカが昔あった。
.MySct1 0x01ABCDEE : { BYTE(0xFF);BYTE(0x00); LONG(0xAA55CC33); }

> ローバル定数で指定することはできるのでしょうか?
. = 0x01ABCDEE;
.MySct1 : { *(.MySct1) }
↑こう書いて、ソース中で↓こんな感じ。
char gHoge __attribute__ ((section (".MySct1")));

767 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 21:13:12.09 ID:2t4VwR8U.net]
>>749
> 負数は条件に入ってないでしょ
わざわざ元の奴より改悪してどうするよ w

>>751
n = 0 の時は最小値自体が存在しないからループにはいる前にテストすべき

768 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 22:49:11.41 ID:D5SeDEqJ.net]
>>755
レス本当にありがとうございます!!
ゴールに近づいてきた気がします!

頂いたレスのグローバル定数のところなのですが、
>. = 0x01ABCDEE;
>.MySct1 : { *(.MySct1) }
>↑こう書いて、ソース中で↓こんな感じ。
>char gHoge __attribute__ ((section (".MySct1")));

ソース中でconstで定義したMySct1を上(char〜)のように指定するということで合っていますでしょうか?
おそらくあまりの無知に驚かれていると思いますが何卒お導きをお願いします!

769 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 01:01:14.23 ID:RYdqwZWN.net]
>>757
const char gHoge[2] __attribute__ ((section (".MySct1"))) = {0xFF,0x00};
> ソース中でconstで定義したMySct1を上(char〜)のように指定するということで合っていますでしょうか?
ソース中でconstで定義したgHogeを.MySct1セクションに配置。

770 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 19:35:19.57 ID:/5WSEGYs.net]
>>758
できました!
758さんのおかげです!本当にありがとうございました!



771 名前:デフォルトの名無しさん [2015/07/17(金) 22:13:40.88 ID:oJCZp1Jy.net]
文字列をパターンと比較してテキスト文字からそのパターンを見つけるっていう
プログラムで

mがパターンの文字列で
T()がテキスト文字の配列
P()がパターン文字の配列

照合するためのループが
台形括弧 j>m or T(i+j-1)≠P(j)
     j=j+1

という事ですが、このループ条件って正しいでしょうか?
だってjがm以上になれば延々とループすることになりますよね

これ11年度のAP試験の問題ですが、解答見ても分かりません。
何で一致しない限りjを進めるんでしょうか?
一致しない時点でjではなくiを増やすのが普通だと思うのですが、どういう
勘違いをしてるのか自分でもわかりません。

772 名前:デフォルトの名無しさん [2015/07/17(金) 22:17:38.93 ID:oJCZp1Jy.net]
台形=C言語のfor文の()
っていう理解でいいでしょうか?

もう少しプログラムを丁寧に書きます。

i→1
穴埋め→last
0→found

始点移動ループ台形括弧内[found≠0 or i>last]
1→j

照合ループ台形括弧内[j>m or T(i+j-1)≠P(j)]
穴埋め
照合ループ台形括弧閉じる

穴埋め

この穴埋めが>なら1→found
この穴埋め≦ならi+1→i

始点移動ループかっこ閉じる

プログラム終了

773 名前:デフォルトの名無しさん [2015/07/17(金) 22:19:41.86 ID:oJCZp1Jy.net]
2番目の穴埋めでjをインクリメントしてるのです。
一致しないのにインクリメントって意味があるんでしょうか?
テキスト文字列のindexを進めるのだからiをインクリメントするのは
分かるのですが、一致しないことがわかって何故パターン文字列の
jをインクリメントするのか分かりません。まさか誤植じゃないですよね?
さすがに僕の勘違いだと思いますが、すっきりしないです。

Cのforとフローチャートのループは仕様が違うんですかね…

774 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:20:53.16 ID:hZkEqQnf.net]
すまんが C で書いてくれ

775 名前:d []
[ここ壊れてます]

776 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:22:25.76 ID:62hGZ/Zb.net]
>>761
はなはだしくスレ違い。

777 名前:デフォルトの名無しさん [2015/07/17(金) 22:41:36.43 ID:oJCZp1Jy.net]
>>763
たぶん
i=1
last=?1;
found=0;
for(found!=0 || i>?1)
j=1;
for(j>m || T(i+j-1)!=P(j))
{?2;}
?3;
if(?3)found=1;
else i=i+1;
}

です。
?2がj=j+1
ということですがこれが理解不能です。

778 名前:デフォルトの名無しさん [2015/07/17(金) 22:43:35.44 ID:oJCZp1Jy.net]
i=1
last=?1;
found=0;
for(found!=0 || i>?1)
{
j=1;
for(j>m || T(i+j-1)!=P(j))
{?2;}
?3;
if(?3)found=1;
else i=i+1;
}

こうですね、forの後の{忘れていましたので…

779 名前:デフォルトの名無しさん [2015/07/17(金) 22:45:08.30 ID:oJCZp1Jy.net]
jが一旦mを超えたら、永遠にループをしてしまうと思うのです。
自分の目がおかしいのかもしれませんが、何に躓いてるんでしょうか…
1日考えてここまで理解できないプログラムってそうないんですけどね

780 名前:デフォルトの名無しさん [2015/07/17(金) 22:52:35.42 ID:oJCZp1Jy.net]
?もちゃんと書きます、ごめんなさい。

i=1;
last=n-m+1;
found=0;
for(found!=0 || i>last)
{
j=1;
for(j>m || T(i+j-1)!=P(j))
{j=j+1;}
if(j>m)found=1;
else if(j≦m) i=i+1;
}



781 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 00:12:13.32 ID:4wSKeiNn.net]
問題は省略するな全部正確に書き写せ。
それが出来ないなら問題の写真をうpして質問しろ。

782 名前:デフォルトの名無しさん [2015/07/18(土) 00:19:26.90 ID:oprjiCWN.net]
>>769
一応全部ですが、フローチャート?ifをひし形みたいにする表記って何っていう
んでしょうか?まぁそれをCに変換したまでです。

783 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 00:35:08.49 ID:4wSKeiNn.net]
問題文を正しく書き写しているというのなら、問題がおかしい。
そもそも、n-m+1ってなに?
mがパターンの文字列なんでしょう?nからパターンの文字列を引いて1足すってどういうことだよ。

784 名前:デフォルトの名無しさん [2015/07/18(土) 01:24:25.18 ID:VyGMEck6.net]
>>768
まずは日本語から覚えよう

785 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 01:54:50.50 ID:Qj7RPCLj.net]
擬似言語わかってないだけでしょ

786 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:09:23.66 ID:zVnebLmb.net]
たぶんこう.
https://ideone.com/xSZoob

787 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:12:30.32 ID:zVnebLmb.net]
そして照合失敗時の判定し忘れたわ

788 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:29:45.91 ID:zVnebLmb.net]
ごめん,デバッグせずにおかしそうなとこだけ変えてコードはったわ.
ちゃんとデバッグしたやつ
https://ideone.com/cIsFa5

789 名前:デフォルトの名無しさん [2015/07/18(土) 08:25:27.89 ID:oprjiCWN.net]
>>771
疑似言語だと思います。配列が1始まりなんで
その関係でn-m+1っぽいそうです。

>>776
本当にありがとうございます。
未だに分かりません。何故一致しないのに、j++するんでしょうか…

790 名前:デフォルトの名無しさん [2015/07/18(土) 08:29:23.23 ID:oprjiCWN.net]
えええええ何で&&なんだ…
参考書の方は疑似言語だけどorになってました。
両方のループもorでした。疑似言語ってor=&&なんですか?



791 名前:デフォルトの名無しさん [2015/07/18(土) 08:48:06.38 ID:oprjiCWN.net]
i.imgur.com/BBHdpQN.jpg

これです。orになっています。

792 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 08:54:08.55 ID:5OYZKZ4e.net]
それループの脱出条件だろ

793 名前:デフォルトの名無しさん [2015/07/18(土) 09:01:16.48 ID:oprjiCWN.net]
>>780
Cとつまり逆ってことですか

794 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 09:16:32.55 ID:42lL/E8Y.net]
なぜiの方には疑問をいだかないのか

795 名前:デフォルトの名無しさん [2015/07/18(土) 09:23:58.90 ID:oprjiCWN.net]
これ流れ図ですか、流れ図には制御条件が、成立時条件なのか、不成立時条件なのか
明確な規定はないんですか?

796 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 09:32:28.07 ID:42lL/E8Y.net]
まずはググろうね
そもそもこういうのC言語に変換する必要ないし
スレチね、うん

797 名前:デフォルトの名無しさん [2015/07/18(土) 10:36:12.95 ID:9KsA62Ua.net]
条件式の中身を読み間違えてるんだね
j > mは 「jよりmが小さい時」じゃなくて「jがmより大きくなるまでの間」って事だね

≠ も同じで「等しくない時」じゃなくて「等しくなくなるまでの間」だね

or は && で間違いないよ うん

798 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 10:39:46.48 ID:9KsA62Ua.net]
本物のcはそんなのじゃないからややこしいよね

799 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 10:49:36.80 ID:9KsA62Ua.net]
違うね orは || 「または」だね
ごめん

800 名前:デフォルトの名無しさん [2015/07/18(土) 10:56:48.34 ID:oprjiCWN.net]
for(i=0; i<=10; i++)はiは10以下のとき処理

台形括弧内 A or Bは、AまたはBのときループを抜ける、言い換えれば、
AまたはBになったときループを抜けるですか…

書いてくれないとわかりませんよね…後味が凄い悪いです
すっきり感もないですし…



801 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 11:12:07.27 ID:5OYZKZ4e.net]
プログラムのコメントにいちいち言語仕様の解説を書けと?

802 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 11:41:12.21 ID:42lL/E8Y.net]
>>788
お前がCで置き換えて勝手に勘違いしただけでしょ

803 名前:デフォルトの名無しさん [2015/07/18(土) 12:10:59.83 ID:9KsA62Ua.net]
>>788
コードは776さんが書いてくれた奴で納得してくれないかな…
キミを混乱させたのはor…だよね
これ、条件さえ満たせばどっちでもいいんじないかな?
&&でも||でも…

ごめんね よく分かってないのに口挟んで

804 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 13:03:00.30 ID:ahU+/wSx.net]
>>760は、780が言うようにループ脱出条件をループ条件と勘違いしてただけだね
すぐ上に同じ記号の始点移動ループがあるのに、そっちは無視してたんかね

805 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 13:05:09.58 ID:nQU9MOUl.net]
歴代の困ったちゃんがもし同一人物だとしたらと考えたら…

806 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 13:16:03.17 ID:GGLH3rbf.net]
そいつさえ叩いてしまえばみんな幸せ

807 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 14:11:23.82 ID:1dCgaP/A.net]
他のスレにも>>788みたいなのいたが同じ奴か

808 名前:デフォルトの名無しさん [2015/07/18(土) 14:49:18.66 ID:oprjiCWN.net]
>>791
混乱させたのはorというより、orがあるために「この条件に至るまでは
脱出しない」ってのが読み取れなかったんですよ。

もし一つの条件だと、Cのforと仕様と違うじゃんって分かったんですけどね…

どちらか満たせばいいって事に関してはCと流れ図で変わらない、だってorは
そういう意味なんだから、ですけど、まぁそれにしてももう少し仕様くらい
描いてほしかったですね…
だって流れ図なんて規格ないじゃないですか…、うーん実際の試験では
書いてあったんですかねー、そこらへん分かりませんが、問題の
愚痴っぽくなってすいません

809 名前:デフォルトの名無しさん [2015/07/18(土) 14:50:48.31 ID:oprjiCWN.net]
>>789
試験ってそういうもんじゃないですか?
というかもしかしたら表紙に書いてあるかもしれませんね
FE受けたときは最初らへんのページに書いてありましたから

810 名前:デフォルトの名無しさん [2015/07/18(土) 14:51:50.75 ID:oprjiCWN.net]
>>791
いや脱出するための条件なら&&はダメかと…



811 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 14:53:45.90 ID:nQU9MOUl.net]
やっぱり同一人物だろこいつ。
「俺は理解してないけど間違ってない!!」ってところが毎回同じ。

812 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 14:56:38.69 ID:5OYZKZ4e.net]
情報処理試験受けたことがあるのに流れ図のJIS規格の存在知らんとか

813 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 19:06:36.82 ID:9ORWa3DX.net]
流れ図って大正だろ。昭和の頃には廃れてたぞ。

814 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 20:11:14.44 ID:kyfBrlqO.net]
>>801
お前、幾つだよ w

815 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 21:00:52.98 ID:t59zGKRm.net]
リレーとか真空管でロジック組んでた人かな?

816 名前:デフォルトの名無しさん [2015/07/18(土) 21:55:25.96 ID:SEYwYF1P.net]
日本の潜水艦はリレーやタイマーがむき出しでついてるよね。

あれは攻撃を受けたときに自力で修理して動き続ける決意の表れだと思います。
実際に乗らない上層部の決意!

817 名前:デフォルトの名無しさん [2015/07/18(土) 21:58:23.97 ID:SEYwYF1P.net]
日本同様潜水艦運用歴の長いドイツはグラスコクピットだけど、どっちが実戦で強いだろうか。

818 名前:デフォルトの名無しさん [2015/07/18(土) 22:00:06.32 ID:SEYwYF1P.net]
ちなみに電子化が進んでいるとはいえドイツも配管やバルブは剥き出しです。

819 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 22:01:53.95 ID:5OYZKZ4e.net]
リレーだったらラダー図だろう…

820 名前:デフォルトの名無しさん [2015/07/18(土) 22:14:10.73 ID:akb2I6pr.net]
windowsでstdoutで文字を表示するプログラムを作って
別のプログラムでコマンドライン引数を表示するプログラムを作ったんですが
パイプでつなぐことができません。
argcの数が1で自身のフルパスしか表示されません。
a1 | a2 ってコマンド打ちました。
a1文字表示プログラム
a2引数受け取って表示するプログラム
stdin,stdoutの考え方が間違ってる?



821 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/18(土) 22:17:47.69 ID:DL93D/kr.net]
>>808
コマンドライン引数と標準入出力は直接は関係ないよ

822 名前:デフォルトの名無しさん [2015/07/18(土) 22:29:39.72 ID:akb2I6pr.net]
>>809
windowsのコマンドのオプションはコマンドライン引数で受け取ってるっとおもってました。
関係ないものなんですね。スッキリしました。ありがとうございます。

823 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 22:46:09.77 ID:pJsO7K4C.net]
え?

824 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/18(土) 23:09:08.42 ID:DL93D/kr.net]
標準入出力は勝手に開かれ、勝手に閉じる。
リダイレクションによって標準入出力のターゲットが切り替わる。
コマンドライン引数のファイルを開くのがfopen,freopen。

825 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 23:11:38.06 ID:zUetklfC.net]
コマンドラインでのパイプってのは
プログラム a1 の標準出力(stdout) を
プログラム a2 の標準入力(stdin) に連結する操作

手入力するんじゃなく、「プログラムa1の出力結果」を入力にしちゃうわけ

826 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 23:16:07.64 ID:zUetklfC.net]
補足
パイプの動作は a1 の出力を a2 起動時の引数に並べるわけじゃないよ

827 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 23:21:54.07 ID:Oy2k4qUz.net]
本当は理解してて痛い質問者を装ってるようにしか見えんわ。

828 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 23:26:27.90 ID:oDsD2wef.net]
com1 | com2

Winは知らないけど、Linuxではパイプラインでつないだ、
コマンド1・2は別のプロセスで、
標準入出力を使って、データを受け渡しているだけ

PowerShellの関数なら、
関数名 param1 param2
のようにすれば引数となり、
シェル変数 $args[0] などで参照できる

$ary = ls -File c:\scripts\*.* -include *.txt,*.log

一方、コマンドではこのように、
特定のディレクトリ内のファイルで、特定の拡張子のもの、
のようにオプション指定をするので、引数は使わない

829 名前:デフォルトの名無しさん [2015/07/19(日) 00:12:11.51 ID:eFeTA1Y7.net]
id変わってると思いますが>>808です。
みなさん色々説明して下さってありがとうございます。
痛い質問者装ってるわけではありません。
本当に勉強中の者です。
>>814さんの補足のようにa1の出力をa2の引数にできると思ってました。
ここが根本の勘違いのようでした。
お騒がせしてすみません。

830 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 00:24:43.98 ID:5PwANh2+.net]
>>815
なにが楽しくてんなことやってんだろな
死ねばいいのに



831 名前:デフォルトの名無しさん [2015/07/19(日) 00:31:48.87 ID:5PwANh2+.net]
>>817
痛い質問者ってのは頭も性格も悪い
>>796のこと

832 名前:デフォルトの名無しさん [2015/07/19(日) 00:36:32.15 ID:eFeTA1Y7.net]
>>819
自分の質問の間に書かれてたので自分の事かと思いました。
わざわざありがとうございます。

833 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 16:54:58.11 ID:+63DwPcF.net]
C言語で配列は0から始まりますが、実際に扱うデータの番号は1からが多いので
そういう場合配列も1から始めたほうが良いんでしょうか?
ずれてしまうのはやはり厄介だと思います。それでも0から始めたほうがいいなら
そのメリットなど教えてください。

834 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 17:26:04.90 ID:egOXVksg.net]
言いたいことが分からん
a[0]を未使用のまま
1個分無駄にしてメモリ使用したいというのならそうすればいい

ただし変なおぼえ方をして「ボクはC言語使えます」とか言ってたら蹴飛ばされる
メリットがわからないなら「そもそもCを使うべきかどうか」から疑った方がいい

835 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 17:28:54.54 ID:egOXVksg.net]
おっと大事なことをいい忘れていた
Cの隠れた前提として

コンピュータに楽をさせるために人間様が苦労を厭わない

というのがある。イヤなら他を探すべき

836 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 20:19:42.77 ID:SgxJVovQ.net]
>>821
どうぞご自由に。
いずれ自分でわかるときがくると思う。

837 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 20:44:13.20 ID:wG1rbxp8.net]
データの番号(というのが何物かわからんが)と配列のインデックスは、同じ整数同士であっても
意味が違うんだということを明確にしていればどっちでもかまわんだろう。

838 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 21:17:13.15 ID:AxVShlkv.net]
CはOS(Unix)を書くために設計された言語なので、
データに(数学の慣例に従い)1で始まる序数を付けるという概念的な美しさよりも
アドレス+オフセットでデータをポイントする(もしくはアドレスそのもの=ポインタで直接ポイントする)
という計算機のアーキテクチャが透けて見えるメリットを優先したということだと思う

839 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 22:10:06.74 ID:gF+ri5Ym.net]
どうしても1から始めたい、無駄なコードやメモリは使いたくないのであれば
他の言語あたったほうがよろしいかと

840 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:47:44.97 ID:joK6s3J+.net]
自然数が0から始まらなかったら、集合論がやりにくいだろうが



841 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 03:22:51.94 ID:P/gUAIjL.net]
>>828
ちょっ集合論の公理から1+1=2を証明する人でつか

842 名前:デフォルトの名無しさん [2015/07/20(月) 03:26:56.43 ID:LmmOYuiW.net]
自然数は1から

843 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 04:30:37.33 ID:ERLwMp/J.net]
自然数を 0 からとする流儀もあるんだよ

844 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 06:11:54.78 ID:/eaXeO3L.net]
どう見ても釣りやろ...

845 名前:デフォルトの名無しさん [2015/07/20(月) 08:03:33.48 ID:DyR30667.net]
よんよんよよん。

846 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:56:33.69 ID:Vtqi9X2t.net]
ヨーロッパでは日本で2階と言ってる階を1階というらしい。

847 名前:デフォルトの名無しさん [2015/07/20(月) 20:28:02.59 ID:C1R2wVAq.net]
>>834
そんなのイギリス英語の基本だろ。

848 名前:デフォルトの名無しさん [2015/07/20(月) 20:41:14.80 ID:n95qMHkT.net]
何で二階が一階なんですか?
じゃあ一回は二階なんですか?

849 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 21:15:51.15 ID:UhiBY71r.net]
GF 地面と同じ床      −1階
1F 地面から1個上の床  −2階
2F 地面から2個上の床  −3階

850 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 21:18:21.00 ID:gdO7FQR/.net]
GroundFather



851 名前:デフォルトの名無しさん [2015/07/20(月) 21:41:43.70 ID:n95qMHkT.net]
なんだイギリス人は頭悪いのか。

852 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 21:48:49.32 ID:4CXi8vOi.net]
ガールフレンド

853 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 21:57:34.42 ID:TvySEdcJ.net]
地面が0階じゃないのはおかしいとつねづね思っていた

854 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 22:03:37.15 ID:qFejjwvs.net]
ヨーロッパのエレベータは、地上階が0とかgroud floorのGのボタン表記になってるな

855 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 22:28:54.40 ID:AGKnnOa8.net]
くおえうえーーーるえうおおお(^q^)

856 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 22:38:05.03 ID:4CXi8vOi.net]
>>842
そこはGスポットだから押しちゃダメ

857 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 08:45:12.18 ID:0FycKRkr.net]
>>841
スレが1からスタートしていることに対しても疑問を思うクチですか?

858 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 08:56:17.65 ID:F8CwWRVR.net]
そういや時刻も 0 始まりだな

859 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 12:22:44.82 ID:MswFwDh+.net]
地上1階と地下1階の間に0階と言えるものは何かありませんか?

860 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 13:10:51.08 ID:LE8EkOwN.net]
それがあるかないかわかったところで、それとcと何の関係があるの?w



861 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 13:24:18.33 ID:rxIs9lXh.net]
夏休みが始まったと思ったららこれか・・・

862 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/21(火) 17:56:41.81 ID:wZ08wKQK.net]
vec (vector for C language)
https://github.com/katahiromz/vec

アンパンマン、新しい顔ができたよ!!!

863 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 18:10:44.86 ID:rxIs9lXh.net]
まともな作品紹介もできない時点でアウト、小学生の方がまだマシだな。
夏休みに入った新入学生に尊敬してもらいたいのかな? 犯罪者君

864 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 19:53:00.02 ID:Irntfcjb.net]
配列からの流れで。
xy平面的な2次元配列の場合普通はどう?
D[x][y] or D[y][x]
という意味で。
状況によるというのが回答だと思うけど、
俺は今まで全てD[y][x]で書いてきた。

865 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 20:19:22.98 ID:Lp0T2eYV.net]
>>852
状況ってどんな状況だよ
自分ルールは自分で閉じた世界だけにしとけよ

866 名前:デフォルトの名無しさん [2015/07/21(火) 22:17:58.94 ID:lFhEB+KC.net]
昔、どこかで読んだ本に
「1から始めるのが自然なのに0から始めるのはけしからん」
的なことが書いてあって、可哀想な人だなと思ったことを思い出した。
今なら解る。
多分、「無い」を「0個」と表現するのが許せない人なんだろう。

867 名前:デフォルトの名無しさん [2015/07/21(火) 22:40:35.31 ID:ZFydeI54.net]
自然界にゼロが存在しないことを証明できたら世界が変わる。

でもゼロが無いことくらい誰でも感覚的にわかってるよね。

868 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 23:29:45.43 ID:tYidWCQl.net]
ゼロという概念は有るじゃん。

869 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 23:34:00.23 ID:ykIrCRFz.net]
>>855
無いっていう言葉使っている時点でゼロの概念を持っているだろ。

870 名前:デフォルトの名無しさん [2015/07/21(火) 23:43:07.17 ID:LWWHwaoy.net]
>>855
1と足し算で、2=1+1がつくれるが。
1と引き算でつくれる1-1が0だ。



871 名前:デフォルトの名無しさん [2015/07/22(水) 00:48:02.54 ID:1bYFtsNS.net]
いや、ちょっと待って。「自然界に」って言ってるんだよ。
いったいどういう意味かなあ。
物質とか現象としてということかなあ。
0は存在しなくても1や2は存在するのだろうか。

872 名前:デフォルトの名無しさん [2015/07/22(水) 01:03:30.69 ID:r7y5Ju2f.net]
基数交換法で再帰呼び出しを除去することがクイックソートほど重要ではないのはなぜか?

お願いします

873 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 01:11:50.52 ID:M/n0+BzS.net]
>>859
0も1も2も人間が作り出した概念。

874 名前:デフォルトの名無しさん [2015/07/22(水) 01:19:33.86 ID:1bYFtsNS.net]
>>861
そう書いても良かったんだけど当人がどういうつもりだったかを知りたい。

875 名前:デフォルトの名無しさん [2015/07/22(水) 03:46:38.65 ID:npJxtfpG.net]
0から始まるのは文字コードで0を先に持ってきたせいじゃない?

876 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 04:30:31.09 ID:Lt27C2H/.net]
なんだそりゃ

877 名前:デフォルトの名無しさん [2015/07/22(水) 04:36:42.98 ID:npJxtfpG.net]
まあ基準から+1、+2、+3だからね。

878 名前:デフォルトの名無しさん [2015/07/22(水) 05:03:01.96 ID:npJxtfpG.net]
>>864
コンパイラのこと考えたことないの?

879 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 05:13:57.35 ID:GNp+ziID.net]
またお前か

880 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 11:59:40.81 ID:kIeW59ou.net]
文字コードは関係ないだろ



881 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 17:52:32.56 ID:QdTviyYV.net]
宣言以外のa[2]は*(a+2)の別の表現ってだけだから、
配列が0から始まるって言葉自体に違和感がある。
配列の先頭アドレスがaであって、
その先頭アドレスには当然最初の

882 名前:要素が入っていて、
次のアドレスには次の要素が入っているというごく自然な表現という感覚しかない。
[]
[ここ壊れてます]

883 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 17:59:13.21 ID:yxlux+WS.net]
配列の先頭アドレスをポインタに入れた時、常に要素が1から始まるようにしてあると
ポインタも+1してから使わないとバグる
そういう目に遭いたいらしいわ

884 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 18:11:45.18 ID:8TpaOP4G.net]
まだ0、1論争かよ。
迷ってんならVbaでも使えよ。
-100でも何でも行けるぞ

885 名前:デフォルトの名無しさん [2015/07/22(水) 21:09:43.08 ID:kfPxwJJV.net]
だからさ、ソースコードと実装は違うから。

886 名前:デフォルトの名無しさん [2015/07/23(木) 01:19:55.01 ID:65Ur3bjf.net]
QZは毎日が人生の夏休み

887 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 21:33:06.04 ID:+NRG6mWL.net]
ぶっちゃけ慣れの問題
どっちでも構わん
ただperlみたいに選択できるのは勘弁

888 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 23:34:14.60 ID:168Aqn4V.net]
>>855
言葉遊びに過ぎないし、パラドックスの研究の古いテーマじゃん。
その理屈だと、1や2も「存在」はしない。

889 名前:デフォルトの名無しさん [2015/07/24(金) 00:30:41.05 ID:waPr5lt7.net]
>>874
配列とコレクションの違いが分からないようではダメ。

890 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 01:52:04.39 ID:IyIFnxBR.net]
>>876
何言ってるんだ?



891 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 06:50:29.62 ID:26mYiG3x.net]
配列は、単にメモリ上に連続で確保された変数の集まり。
配列それ自体は、自分自身の要素数の情報を持たず、アドレス(ポインタ or 添え字)を経由しないと任意の要素にアクセスできない。
ましてや、先頭番地の情報など持っているはずもない。配列名は先頭要素の別名に過ぎない。
ここまで言えば、コレクションとの違いもわかるだろ。

892 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 08:51:49.66 ID:U7biJhIK.net]
そんな事はわかってるんだが…

何を言っているのかわからないっていうのは、>>874に対して>>876と言う、的外れとしか思えないレスをしていることに対してなんだけど…

あれ?もしかして触っちゃいけない人なのかな?

893 名前:片山博文MZ ◆T6xkBnTXz7B0 [2015/07/25(土) 12:27:26.19 ID:Uks06VJa.net]
アンパンマン、新しい顔が二つできたよ!!!

lis (singly linked list for C language)
https://github.com/katahiromz/lis

lst (doubly linked list for C language)
https://github.com/katahiromz/lst

894 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 15:04:27.61 ID:wTwAcdhU.net]
配列名は先頭要素の別名って言い回しはどうかと思う
それだとまるで配列名には最初のデーターが詰まってるみたいじゃないのよさ
配列名にはアドレスしか入ってないのに

895 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 17:41:25.81 ID:GU4GIGEf.net]
片山博文MZって何者? QZと同じにおいがする

896 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 17:44:56.04 ID:bLirGUmg.net]
>>882
片山先生を知らないなんて完全に潜りだろw

897 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 18:44:06.12 ID:6zkZTkly.net]
罵倒合戦があったし,片山センセと QZ を一緒にしちゃセンセが迷惑する
ところで camellia はオリジナルのソースから手を加えたの?

898 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 21:20:02.61 ID:GU4GIGEf.net]
>>883
モグリでごめんね?
>>884
camelliaは仕様書を読んで一から自分で実装しましたよ。
手直しして今はだいぶ速くなったよ。

899 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 14:28:04.79 ID:d9clz1q1.net]
>>874
なんかバージョン5のいくつあたりかから
 local $[=1;
とかやると怒られるようになっとる
言語仕様がある日突然変わるのがスクリプト言語の醍醐味

900 名前:デフォルトの名無しさん mailto:sage [2015/07/27(月) 02:11:37.78 ID:cbxH7i7j.net]
QZただいま名無し潜伏中



901 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/28(火) 16:53:34.62 ID:QJSjRtNV.net]
アンパンマン、新しい顔ができたよ。

vec2 (fixed block vector for C language)
https://github.com/katahiromz/vec2

902 名前:デフォルトの名無しさん [2015/07/28(火) 21:07:16.02 ID:vblF84RR.net]
>>886
怒られるというか、deprecated だね。使えなくなったわけじゃないけど
そういうことをしたければ tie しなさいということだね。

903 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 23:08:06.27 ID:PqGJhZis.net]
プログラミングをするなら、Windowsとmacはどちらがいいですか?

904 名前:デフォルトの名無しさん [2015/07/31(金) 23:11:51.42 ID:aMEtXk8u.net]
Windows

905 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 23:56:20.21 ID:y5XWVYV7.net]
>>890
どっちでもいいだろ。
好きな方を選べ。

906 名前:デフォルトの名無しさん [2015/08/01(土) 21:25:51.86 ID:jIqrjnfJ.net]
mallocでメモリ確保する時はサイズの指定をするのに
freeでメモリを解放する時はサイズの指定をしなくてもいいのは何故なんでしょうか?

907 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 21:41:16.47 ID:QePJH2WN.net]
返されたポインタの前にサイズ他の管理情報を置いているメモリーアロケーターが多い。
こんな感じ
struct mem {
size_t size;
...
char data[]; <==== mallocはこのアドレスを返す
};

908 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:13:36.30 ID:AlahCyHh.net]
扱いなれてる方。

909 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:20:16.52 ID:jIqrjnfJ.net]
>>894
ありがとうございました。
参考書とかには標準関数の使い方の説明はあっても
内部の実装の仕方の説明まではなかなかないので勉強になりました。

910 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:32:59.39 ID:mMrs3R6A.net]
void free(const void *,...);

という実装で二番目の引数を見るという
こともありえる鴨。規格外になるかも
しれないし、ソースレベルでの互換性が
失われるかもしれないが。

char *p=malloc(1024);
free(p); //普通の意味での解放
free(p,256);// pの先頭から256バイト目以降1023バイト目
までを解放



911 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:35:23.69 ID:mMrs3R6A.net]
そういう場合実際には
void _free(const void*,...);
#define free(x) _free(x,0)
とかしてるんだろね

912 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:36:26.78 ID:qeAWL2lY.net]
>>897
規格外どうのこうのの前に、二番目の引数の有無をどうやって判断するんだよ...

913 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:36:50.00 ID:mMrs3R6A.net]
free(p,256)
ぢゃなくて_free(p,256)
だた。スマソ

914 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 23:25:35.49 ID:CYsajC4S.net]
例えば、mallocで、サイズを200と指定すると、
アドレス100〜300番地を確保する。
それをプログラムは覚えている

次に、free 100番地と、
先頭アドレスだけを指定しても、

プログラムはサイズも覚えているので、
自動的に、100〜300番地を解放する

915 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 23:27:05.42 ID:oGwoY1R1.net]
覚えてるならgetする方法も提供しろよ常識的に考えて

916 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 23:41:09.84 ID:oGwoY1R1.net]
C/C++はオワコン
ソフトウェアエンジニアリングの仕事ではない
Javaやれ

917 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 01:01:31.96 ID:7iVchM+h.net]
え、今更 Java やるの?

918 名前:デフォルトの名無しさん [2015/08/02(日) 02:07:49.29 ID:wwgo3D7Q.net]
>>896
実装なんて分からない。

妄想レスもあるので注意。

919 名前:デフォルトの名無しさん [2015/08/02(日) 03:28:18.62 ID:sfcp/621.net]
>>903
と言ってると、ますます日本のソフトウェア産業が土木工事になります。

920 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 08:15:52.14 ID:8TunHJN8.net]
>>906
実装屋はどこまで行っても実装屋でしかない。



921 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 09:00:03.54 ID:YdYZAVrS.net]
ユーザーの誤った書き込み操作が行われやすい
場所に重要な情報を置くのは汎用mallocでは
あまりやりたくない実装方法
隔離保護された場所にビットマップとかを
置いて(malloc領域を)管理。

922 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 09:04:25.44 ID:SLv/z ]
[ここ壊れてます]

923 名前:Rdd.net mailto: >>908
たかだかユーザーのプログラムにリンクされたライブラリの分際で
「確保保護された」領域を入手できるのか?
[]
[ここ壊れてます]

924 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 09:39:58.33 ID:8sAzrEqX.net]
>>908はそのようなライブラリを自作して使ってるんだろうな。
あの偏屈王DJBでさえ、mallocは自作してなかったのにスゲー。日本の宝。
是非公開して欲しい。

>>909
ページを書込み保護すれば出来る。きっと>>908はそうやっている。
超絶テクニックで、malloc/freeの都度発生する書き込みモードの変更による性能低下は軽く克服してるんだろう。
是非是非公開して欲しい。

925 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 09:49:40.21 ID:SLv/zRdd.net]
>>910
>ページを書込み保護すれば出来る。
たかだかユーザーモードあるいはユーザーに提供された領域を
書き込み保護をかけるとか,バンバン使われる malloc()/free()
ルーチンが重くならないかね?

926 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 09:51:52.46 ID:QpxppfHz.net]
実装はOS依存の場合も。

927 名前:デフォルトの名無しさん [2015/08/02(日) 10:08:57.20 ID:8sAzrEqX.net]
>>911,912
そこは偏屈王DJBを楽勝で凌駕する>>908の事だから、凡人には思いつかない超絶テクニックで回避してるに決まっている。

928 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 14:36:02.95 ID:4+/pksin.net]
>>896
ちょっそれK&R本に実装例の1つが詳細に書かれていた希ガス…

929 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 14:48:48.65 ID:4+/pksin.net]
ていうかネットに転がってた、
ttp://radlon.github.io/blog/2014/08/25/krmalloc/

K&R malloc!!!!!!!!!!!!!!!11!!!!!!!!1111

930 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 15:01:15.98 ID:q/ikqjRA.net]
しょっぱなからコードのスペルミスかましてたので見るのやめた



931 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 20:33:28.15 ID:q4wUyYJ7.net]
p[-1]なんかはバグでうっかり破壊しがちだが、
64ビットとアドレス空間のどこかにある
ビットマップをうっかり破壊する確率は
比較的低いって話だろ。

ってか >>894 みたいな実装は、古いシステムと組み込み系でしかもう使われていないのでは。

932 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 20:42:19.52 ID:4+/pksin.net]
>>917
VCでは現役
メモリブロックの管理情報(リンクチェーン)が実データ領域と隣接して存在するからこそ
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
とかでリンクチェーンの破壊を検出できすぐる、

ていうか>>894みたいな実装の代表例がK&R本に書いてあるやつなのであって、
マジK&R本は不磨の大典

933 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 20:44:57.53 ID:4+/pksin.net]
メモリ破壊系のバグは破壊が起きたタイミングで即検出しないとデバッグがやっかい極まりない話になるので
データ領域でメモリ破壊が起きても動いてしまうビットマップ方式はちょっと…

934 名前:918 mailto:sage [2015/08/02(日) 20:51:55.93 ID:4+/pksin.net]
スマン訂正、ヒープの整合性確認は_CrtCheckMemory()呼び出しでやるんだった;
(もしくは_CrtSetDbgFlag(_CRTDBG_CHECK_ALWAYS_DF)でmalloc()/free()毎に自動チェック)
実データ領域でのメモリ破壊がこれで高い率で検出できる

_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
というのはプログラム実行時のリークチェックのやつ

935 名前:片山博文MZ ◆T6xkBnTXz7B0 [2015/08/02(日) 21:45:05.24 ID:/jG0U/Tz.net]
C11 gccでインライン関数を分割コンパイルすると、シンボル重複エラーがでるんだが、
どうすればいいか。C++は簡単だった。

936 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/02(日) 22:01:40.19 ID:/jG0U/Tz.net]
やっぱりCでインライン化はやめた方がよかったか

937 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 22:33:38.49 ID:fK6YlTvs.net]
ヘッダファイルにインライン関数を書いて、各ソースから参照するって話ではなくて?

938 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 07:14:10.73 ID:PHSALL0j.net]
質問です。

printf("Aを入力して下さい >");
scanf("%x",&n);
printf("%d",n);

このように書いたときに、最後に10が表示されるのですが、なぜでしょうか。
Aが入力されると16進数としてnに格納されると思いますが、
最後にはそれを10進数で出力するので65になるのではないでしょうか?

939 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 07:25:47.50 ID:qre9PyEM.net]
%xなんだから、入力した文字列自体を16進とみなす
A=10, B=11, C=12,,,

例えば、1A とか入力出来るが、どう考える?

940 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 11:03:40.66 ID:PHSALL0j.net]
>>925
ありがとうございました。納得しました。
「16進数のA」と書いてあったのですがそういうことだったのですね。



941 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 21:51:45.27 ID:sGt3KLZv.net]
C/C++はオワコン
何も新しいソフトウェア技術を取り入れてない
オブジェクト指向止まりの化石言語
こんなのにしがみついてたら未来ないよ

942 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 22:26:04.26 ID:0GTb8PhE.net]
>>927
未来の有る言語を具体的に挙げてみよ

943 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 22:55:02.33 ID:sGt3KLZv.net]
javascript最強

944 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 22:56:09.34 ID:B7i1Mk8j.net]
うわぁ・・・

945 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 23:19:33.87 ID:8xO+ORV8.net]
visual basic 最強

946 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 23:31:28.33 ID:0GTb8PhE.net]
>>929
もうちょっと面白い展開を期待した。

947 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 01:51:10.39 ID:NqgUCWy0.net]
>>928
アセンブラ、
無限の可能性を秘めている。

948 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 07:15:20.34 ID:RTmVcCCe.net]
お前らDIもAOPもわかんねえだろ
完全に時代遅れなんだよ

949 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 07:17:21.98 ID:Pymojyae.net]
0000: JP 0000

950 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 07:45:43.98 ID:LuqeIwCC.net]
HALT



951 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 08:18:27.03 ID:s6JmbTZM.net]
>>931
俺も俺も>>932

952 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 13:43:24.15 ID:uyJvzdpF.net]
>>934
ああ知ってるよ
確か COBOL/2005 がいきなり名前を変えたやつだろ

953 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 21:48:55.89 ID:RTmVcCCe.net]
大学はWEB系のプログラミングを教えるべき
大学教授が古い人間しかいないから時代遅れの化石言語しか教えられない
WEB業界では新しいソフトウェア技術がどんどん出て来てるのに完全に日本は置いていかれている
C言語なんて糞言語やる前にもっと危機感を持つべき

954 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 21:54:31.44 ID:TJyjY+1J.net]
そんなことやるのは専門学校だけで十分

955 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 21:56:09.13 ID:RTmVcCCe.net]
日本のソフトウェア技術が世界と比べて劣っているのは
既得権益にしがみついている時代遅れの大学関係者のせいなのは間違いないね

956 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 01:24:04.78 ID:LsDzIRl9.net]
こんな会社ばっかだから。
ttp://www.geocities.co.jp/Playtown-Dice/3834/KAGE-OL12.jpg

957 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 06:48:13.81 ID:D0x4pWwH.net]
大学では計算機科学の一般教養としてはSICPをみっちりやればおk

958 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 06:53:47.83 ID:D0x4pWwH.net]
ていうか今ググったらSICPが何かタダで読めるようになっているっぽい
ttp://d.hatena.ne.jp/minghai/20140402/p1

あと副読本として『翻訳系構成論序論』とか、
内容もさることながら翻訳がたいへん味わい深い

959 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 07:31:28.76 ID:Ud96BClW.net]
和田先生訳の方も公開されてるし、原著も公開されてる。
あと、h抜きは素人っぽいからやめろ。

960 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 08:24:02.24 ID:cYx2D4V+.net]
>>945
> あと、h抜きは素人っぽいからやめろ。
自称玄人カッケーっす



961 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 09:11:04.96 ID:D0x4pWwH.net]
(ノーコメント)

962 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 09:31:28.19 ID:D0x4pWwH.net]
ていうか素人丸出しの質問のですが、
strtol()の第1引数はconst char*でconst付きなのに、
第2引数はchar**であってconst無しになるなのは何でですか??

963 名前:デフォルトの名無しさん [2015/08/08(土) 11:23:27.11 ID:Ud96BClW.net]
>>946
素人の補集合は玄人じゃない。
補集合は高校数学で学ぶから、中学生はROMってろ。

964 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 12:03:47.08 ID:cYx2D4V+.net]
>>949
> あと、h抜きは素人っぽいからやめろ。
上から目線でアホなこと言ってるから自称玄人って言われてるだけ
最近覚えて使いたかったんだろうけど補集合は関係ない

965 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 12:27:31.84 ID:y5hyBra1.net]
保守烏合

966 名前:デフォルトの名無しさん [2015/08/08(土) 12:44:06.05 ID:Ud96BClW.net]
>>950
hを抜くバカに対して上から目線は当然。
繰り返すが、中学生は補集合習ってから出直しなさい。

967 名前:デフォルトの名無しさん [2015/08/08(土) 12:47:15.24 ID:Ud96BClW.net]
バカとは、思考能力が欠除してる障害者の総称な。念のため。

968 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 13:27:04.14 ID:HVhVW7oy.net]
>>953
自己紹介乙

969 名前:デフォルトの名無しさん [2015/08/08(土) 13:43:02.67 ID:Ud96BClW.net]
>>954
こりゃまた、h抜きに負けるとも劣らない古参煽り。

ニワカ乙
って、返すんだっけ? 頭悪そう。

970 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 13:51:25.58 ID:cYx2D4V+.net]
かわいそうな奴...
さすが、にちゃん玄人ですね!



971 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 14:04:41.69 ID:1hj8NI9z.net]
まあなぜhを抜いてるのかを知っている時点でそれなりの年齢のはずなんだけどね
もっと大人にならなきゃいけないよね

972 名前:デフォルトの名無しさん [2015/08/08(土) 14:16:31.72 ID:Ud96BClW.net]
>>956
補集合習ってから出直せと言ったはずだぞ。中学生。

973 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 14:43:13.18 ID:cYx2D4V+.net]
>>958
で、どれとどれが補集合じゃないって言ってるんだ?
書いてみ w

974 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 14:48:59.02 ID:1hj8NI9z.net]
素人の補集合≠玄人
って書いてあるじゃん
なんか低レベルすぎる争いが楽しそうなので混ぜて

975 名前:デフォルトの名無しさん [2015/08/08(土) 14:56:08.54 ID:Ud96BClW.net]
>>959
まだ、習ってないことを無理して理解しなくても良い。

976 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 15:17:48.69 ID:cYx2D4V+.net]
>>960
h抜きしない奴は玄人って言ってるわけじゃないぞ
低レベルの話にもついてこれないなら割り込んでくるなよ...

>>961
はい、逃げた w

977 名前:デフォルトの名無しさん [2015/08/08(土) 15:34:58.60 ID:Ud96BClW.net]
>>962
補集合を知らないことを、そんなに必死でアピールしなくて良いよ。中学生。

978 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 17:48:46.64 ID:cYx2D4V+.net]
>>963
>>959 にレスできないチキン w

979 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 17:55:19.32 ID:Gxm0vaAV.net]
プログラマー目指してる大学生なんですけど、優秀な趣味プログラマーでも
長年仕事でプログラミングしてる平凡なプログラマーに負ける事っていったら
何ですか?

どんだけプログラミングしてても実務で培われるものってあるじゃないですか
そういうのが知りたいです。ちなみに僕は優秀でもなんでもない趣味プログラマですw

980 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 18:03:00.86 ID:1qUf1CZr.net]
このままいつもの人まで出てきてスレを
使いきる気かよ



981 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 18:08:16.54 ID:D0x4pWwH.net]
>>965
ようわからんが仕様と検証と納期に対してどんだけシビアになれるかの違いじゃないの

982 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 18:13:42.89 ID:D0x4pWwH.net]
>>965
併せて工数は予算内に、

ていうか>>948の回答も誰かよろしくなのデス…
パーサを作るときにstrtol()の第1、第2引数のインターフェースを真似た関数をしばしば作るのですが、
第2引数をconst付きにしなくていいのか今も悩み中、

あと>>944の結びは「翻訳もカッケーぃ☆」としとけば完璧だったorz

983 名前:デフォルトの名無しさん [2015/08/08(土) 19:04:38.81 ID:Ud96BClW.net]
>>964
心配すんな中学生。クラスの平均以上の学力あって、補集合習えばわかるようになるから。

>>968
中学生弄ってて回答した気になってたわ。第2引数がconstじゃないのは、const char **にはchar **も渡せる。
すなわちhoge(const int); 以下の意味しかないが、それでもconstつけたいならつければよい。

984 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 19:50:59.65 ID:D0x4pWwH.net]
>>969
ちょっ>>948のは、現実のstrtol()の第2引数はchar**でconst char**を「渡せない」んだけど何か理由有り?
という質問のですが…

ぶっちゃけ説明不足だったかもしれないので今から説明すると、strtol()の第2引数がchar**である結果、
次のコードの変数endをconst付きにできず、万が一[A]の行が紛れ込んでもコンパイル時にwarningにならないという、
long foo(const char* str) {
 /*const*/ char* end; /* ←左のconstのコメントアウトを外すとエラー*/
 long val = strtol(str, &end, 10);
 *(end - 1) = '*'; /* [A] 上の結果、strを書き換えるコードが合法に… */
 return val;
}
このような事故は、strtol()の第2引数がconst char**でありさえすれば防げるのですが、そうなっていないのは何故…!?という疑問

あと引数の型const char**に対し、char**型変数を渡せるというのは真実としていかがなものかと…(VCだとエラーになる

985 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 20:17:04.90 ID:Ud96BClW.net]
>>970
それをstrtolのプロトタイプで防止しようとするのが間違い。
第2引数がconstであっても、
char *endptr;
strtol("123x", &endptr);
はエラーではない。

> あと引数の型const char**に対し、char**型変数を渡せるというのは真実としていかがなものかと…(VCだとエラーになる
ここはCのスレだよ。C++ならエラーだろうね。

986 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 20:27:38.50 ID:D0x4pWwH.net]
>ここはCのスレだよ。C++ならエラーだろうね。
ほんまや(゜д゜)!Cだとconst char** end;でエラーにならない
はずかC〜(*ノノ

987 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 20:43:42.60 ID:cYx2D4V+.net]
>>969
補集合でどや顔してるけど、補集合関係ないことは理解できないんだな
関係あるならちゃんと説明できるよね? w

988 名前:デフォルトの名無しさん [2015/08/08(土) 20:45:16.30 ID:Ud96BClW.net]
>>973
高校で習うまで我慢してなさい。中学生。

989 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 20:58:55.89 ID:1hj8NI9z.net]
結局const char**じゃないのはなぜなのかは解答ないのね

990 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:05:28.11 ID:Ud96BClW.net]
constにする事に意味が無いからと答えたが。



991 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:15:13.37 ID:cYx2D4V+.net]
>>974
もう逃げきりを図ろうとしてるのはみえみえ

>> あと、h抜きしない方が玄人っぽいよ
> 自称玄人カッケーっす

ってなってたらこいつどう言うんだろうな w

992 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:21:07.53 ID:1hj8NI9z.net]
const char**にしてもchar**が渡せるから意味がないってのか
じゃあconst char*にしてもchar*が渡せるからそれも意味がないんですね
じゃあ引数につけるconstなんて全て意味がないんですねわかります

993 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:37:14.26 ID:D0x4pWwH.net]
>>978
const char*にキャスト無しでchar*を代入することはC言語でも非合法だからその噛み付き方は無いわ〜

994 名前:979 mailto:sage [2015/08/08(土) 21:39:27.65 ID:D0x4pWwH.net]
反対だったorz、
char*にconst char*を代入するのはC/C++ともにNG
char**にconst char**を代入するのはCだとOK、C++ではNG

995 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:44:06.68 ID:Ud96BClW.net]
>>977
補集合習えばそれもわかるようになるよ。

996 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 22:04:53.22 ID:Ud96BClW.net]
>>978
意味ないだろ。
void hoge(const char **p)
{
static const char s[]

997 名前: = "alb";
*p = s;
}
void hage(void)
{
char *p;
hoge(&p);
*p = 0;
}
[]
[ここ壊れてます]

998 名前:!rebuild:age mailto:sage [2015/08/08(土) 22:13:50.40 ID:9YQ92kuf.net]


999 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 22:21:53.19 ID:1hj8NI9z.net]
strtolの第2引数にconstが無いのはあってもなくても意味がないからなんかじゃなく
strtolがconstをつけるかどうかを判断する箇所ではないから制約にしていないだけ

第1引数につくconstはstrtolの内部ではポインタ先の実態を変更しないということを示す
strtolの中の操作を制限するという意味になるのでそう実装していることを使用者に示している

第2引数の先頭にconstをつけるかどうかに対応するのは
第1引数に渡される文字列自身がconstなのかどうか
そしてそれはstrtolの関与する部分ではない

>>970のようにconst文字列を渡す前提ならconstがあっても問題ないが
constじゃない文字列を渡して変換できなかった箇所を起点に文字列を変更することも考えられる
するともし第2引数にconstがついていると(やらなくてもコンパイルできるかどうかは置いておいて)constからconstなしへのキャストをすることになる

1000 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 00:33:45.74 ID:ofrSttk1.net]
次スレおね



1001 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 04:54:16.32 ID:ofrSttk1.net]
まだーー

1002 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 05:52:26.39 ID:h6XvpjyR.net]
>>978
あっても無くても意味が無いなんていう事じゃ無い。
constは呼び出し先での制約であり、呼び出し側を制約する事はできない。
ので、意味が無い。

1003 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 06:48:44.91 ID:TarQJqGz.net]
>>981
もうその返ししかできないんだな恥ずかしすぎるわ w

1004 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 07:09:46.99 ID:TarQJqGz.net]
次スレ

C言語なら俺に聞け(入門編)Part 130
peace.2ch.net/test/read.cgi/tech/1439071526/

1005 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 08:32:59.69 ID:i0YjHh3P.net]
const ついてれば、(その関数内で参照先を)書き換えするつもりはないよ とわかるけど
ついてない場合はどっちともとれるから中途半端よねぇ

1006 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 08:44:02.42 ID:uP4RKIW6.net]
>>989
乙乙乙

1007 名前:デフォルトの名無しさん [2015/08/09(日) 09:09:30.47 ID:Mf04DnbC.net]
>>988
補集合理解してれば
>> あと、h抜きしない方が玄人っぽいよ
こんな発言はしないから。キミの妄想は実現しない。
頑張って補集合勉強しろよ。

1008 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:07:05.43 ID:UBu5K04W.net]
高校レベルで学ぶ集合論は集合論のうちに入らぬ、
前提命題
 XはURLをh抜きで書く→Xは素人である ( = ¬((XはURLをh抜きで書く)∧¬(Xは素人) )
から
 XはURLをhを抜かずに書く→Xは玄人である ( = ¬(¬(XはURLをh抜きで書く)∧¬(Xは玄人) )
という命題を導くためには、
 { 素人 } ∩ { 玄人 } = φ (排中立)
が成立せねばならないぬが、{ 素人 } ∩ { 玄人 }が無限集合である以上、
演繹系を無限集合の排中律を認めるやつに固定せねば妥当な演繹にならない

1009 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:10:28.22 ID:TarQJqGz.net]
>>992
>>988
ループつまんね

1010 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:16:29.21 ID:QKRToHAT.net]
out引数の型のconstが意味ないとかいう人の設計はすごい言語に依存しまくったものになってそう



1011 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:18:03.07 ID:UBu5K04W.net]
>>995
C言語でおk

1012 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:22:58.14 ID:QKRToHAT.net]
そのうちx86では呼び出し規約が○○だから××という前提
とかアーキテクチャにまで依存し出したりするからそういう考え方は根絶やしにしたい

1013 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 11:18:15.91 ID:9Ej9Po2R.net]
>>993

>>(排中立)→「排中律」
『広辞苑』には、「排中原理」と書いてある。この方がもっと分かりやすいかも

1014 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 11:31:16.30 ID:QKRToHAT.net]
>{ 素人 } ∩ { 玄人 }が無限集合である以上
これは自明なの?

1015 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 11:41:47.48 ID:855SMF2a.net]
>>995
> out引数
ようやくそこに言及する人が出てきたか

1016 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

1017 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<242KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef