C言語なら俺に聞け(入門編)Part 129 [転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2015/05/27(水) 06:15:55.14ID:gRxCv8ae★前スレ
C言語なら俺に聞け(入門編)Part 127
http://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代目
http://peace.2ch.net/test/read.cgi/tech/1408962564/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
# サイズが大きい場合はアップローダ等を利用してください。
ttp://codepad.org/
ttp://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
【重要】
当たり前の事ですが、2chではコピペ荒らしは禁止されています
0002デフォルトの名無しさん
2015/05/27(水) 06:45:54.38ID:SouEKxUw0003デフォルトの名無しさん
2015/05/27(水) 06:47:14.31ID:BqvzOlIW前回が間違えてる
修正して129
0004デフォルトの名無しさん
2015/05/27(水) 06:51:28.30ID:SouEKxUw改めて乙
0005デフォルトの名無しさん
2015/05/27(水) 16:27:21.93ID:lomThlZd0006デフォルトの名無しさん
2015/05/27(水) 16:42:47.49ID:5zOFtYYl今更知ったんだけど、これダメなんだね
A==B ? (a+b) : 0;
こうしないとアカンらしい。括弧が必要なポイントが分からんすぎていつも嵌る
0007デフォルトの名無しさん
2015/05/27(水) 16:52:32.64ID:nuGrXhR8左側の評価だけで即解決する場合
(or結合での正 / and結合での否)
に右側が評価されないようになってる = ショートサーキット
0008デフォルトの名無しさん
2015/05/27(水) 17:24:31.23ID:CXVzjYKy0009デフォルトの名無しさん
2015/05/27(水) 18:06:06.51ID:lomThlZdおkありがとう
0010デフォルトの名無しさん
2015/05/27(水) 18:54:58.47ID:CN4no++3(A ==B) ? a + b : 0;
と書くようにしているが、それでもハマリ防止にはならないらしい‥
http://peace.2ch.net/test/read.cgi/tech/1313183984/766
0011デフォルトの名無しさん
2015/05/27(水) 19:02:43.43ID:g535aIO5ダメとかアカンとかじゃなくて、自分はコンパイラと違う解釈してましたってことだろ
まあスタイルとしては、迷いそうなところは括弧付けるのがいい。
(A == B)?(a + b):0
0012デフォルトの名無しさん
2015/05/27(水) 19:21:02.83ID:5zOFtYYl0013デフォルトの名無しさん
2015/05/27(水) 19:29:23.14ID:bmPyy927誰がそんなデタラメ教えたんだ?
> A==B ? a+b : 0;
> A==B ? (a+b) : 0;
このふたつの演算結果は完全に同じ
>>10-11
知ったかぶりする前に優先順位表でもみた方が良いぞ。
0014デフォルトの名無しさん
2015/05/27(水) 19:32:24.70ID:5zOFtYYl教わった訳じゃなくて、思い通りに動かなかったのが括弧付けただけで動いたんだもん・・・
0015デフォルトの名無しさん
2015/05/27(水) 20:00:44.25ID:bmPyy927じゃ、それは関係無い
マグレで動いてるように見えてるだけ
0016デフォルトの名無しさん
2015/05/27(水) 20:09:19.47ID:c6bUiV8vC = D + 「三項演算子の評価値」 のつもりで
C = D + (A == B) ? a : b; とかいたが
C = 「D + (A==B) を判定し a または b を渡す三項演算子」
となった
0017デフォルトの名無しさん
2015/05/27(水) 21:56:57.44ID:toEie+PK>このふたつの演算結果は完全に同じ
ところがどっこい
http://peace.2ch.net/test/read.cgi/tech/1313183984/766
>× *x_sol = x + (alpha > 0) ? alpha : -alpha;
こう書くと x + (alpha > 0) が優先されるのであった‥
>知ったかぶりする前に優先順位表でもみた方が良いぞ。
そのようだね、お互いに
0018デフォルトの名無しさん
2015/05/27(水) 22:53:38.02ID:bmPyy927式を変形させて同じじゃ無いとかバカいってんな。死ねアホウ。
> A==B ? a+b : 0;
> A==B ? (a+b) : 0;
このふたつの演算結果は完全に同じ
0019デフォルトの名無しさん
2015/05/27(水) 22:56:15.88ID:bmPyy9270020デフォルトの名無しさん
2015/05/27(水) 23:02:45.84ID:5zOFtYYlphai = 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));
に変えたら上手くいったんだわ。同じ事だと思うが
0021デフォルトの名無しさん
2015/05/27(水) 23:04:58.49ID:bhmZkUHl0022デフォルトの名無しさん
2015/05/27(水) 23:11:06.09ID:bmPyy927アセンブリ出力して比べてみろよ
違ってるならコンパイラが壊れている
0023デフォルトの名無しさん
2015/05/27(水) 23:31:31.58ID:5zOFtYYlアセンブラ比較してみたら37箇所違うところがあるみたい
http://xxxxxxxxxxxx.net/_/135/20150527232953-0.jpg
まぁ訛りのつよいコンパイラって事で諦める事にしとくわw
0024デフォルトの名無しさん
2015/05/27(水) 23:33:10.69ID:AoLMgYi8お前のコードが間違えてるかコンパイラが変
0025デフォルトの名無しさん
2015/05/28(木) 02:48:07.72ID:rkwpKfBzその画像の部分はラベル違うだけじゃ?
0026デフォルトの名無しさん
2015/05/28(木) 08:25:26.19ID:7RWTzWFs0027デフォルトの名無しさん
2015/05/28(木) 08:37:24.47ID:qBUpvu6j1 ID:5zOFtYYlのプログラムが依然としてバクが修正できていない事実が判明した
2 Qzが救いようのないバカである事が再々再度確認できた
0028デフォルトの名無しさん
2015/05/28(木) 10:10:34.56ID:TeBgubTTこれでは文字列の途中に数字の0が入っていたらそこで文字列が終わって
しまうんですが?
0029デフォルトの名無しさん
2015/05/28(木) 10:21:47.34ID:qBUpvu6jなので問題ない
0030デフォルトの名無しさん
2015/05/28(木) 10:34:23.87ID:TeBgubTT0031デフォルトの名無しさん
2015/05/28(木) 12:36:56.52ID:uqfTz9n2仕事がハードよりなので恐らく使う事になると思うのですが
良い練習法などあったら教えてください。
0032デフォルトの名無しさん
2015/05/28(木) 12:37:58.78ID:BA36VF96おう、またお前か、MASM の勉強は進んでいるかね?
人に言われないと自分が馬鹿であることを時々忘れるから、まあ、有難いことだ
さて、>>6 は三項演算子(条件演算子)の優先順位と括弧のつけ方について話題にしている
まあ >>6 の内容自体には疑問はあるが、三項演算子の優先順位の低さは話題になってもよい
そこで、議論を有用な方向に導くためにも俺のミステイクを公開してみた
しかし、お前は汗とか小さいことにこだわるんだね
視野が狭いとあちこちにぶつかって痛いだろう?大人になり給え
0033デフォルトの名無しさん
2015/05/28(木) 12:39:35.13ID:JHgdzIBl実践が早いってこと
0034片山博文MZ ◆T6xkBnTXz7B0
2015/05/28(木) 12:46:46.61ID:BPOchcgZ十進数で十倍すると右にゼロが1つ増える。
一般にX進数でX倍すると右にゼロが1つ増える。
左シフト演算はX倍の繰り返しだと覚えればいい。
右シフトはその逆。
AND演算はビットごとの論理積だから、二進数に置き換えて考える。
OR演算はビットごとの論理和だ。
最悪の場合でも、ウィンドウズ付属の電卓を使えばなんとかなるかと。
0035片山博文MZ ◆T6xkBnTXz7B0
2015/05/28(木) 13:06:49.57ID:BPOchcgZ100 1101
となる。100は十六進数で4であり、1101は十六進数でDだから、
二進数の100 1101は、十六進数の4Dである。
0036片山博文MZ ◆T6xkBnTXz7B0
2015/05/28(木) 13:11:05.27ID:BPOchcgZ0037デフォルトの名無しさん
2015/05/28(木) 13:12:30.95ID:qBUpvu6jやあ、ひさしぶりだな。チンカス。
まだ底辺で蠢いてるのか? 末尾再帰は理解できたか?
0038デフォルトの名無しさん
2015/05/28(木) 13:17:07.50ID:uqfTz9n2仕事で勝手に身につける、前段階の不安を和らげる緩衝剤みたいな感じです。
>>34-35
丁寧にありがとうございます!
そっくりそのままノートにとって会社もってきますw
>>35の考え方凄くわかりやすいですね。最終手段「電卓」覚えときます。
0039デフォルトの名無しさん
2015/05/28(木) 13:47:31.11ID:7y7wQ+Hc10進数の四則演算はどうやって覚えてきたか思い出すといい。
・まずは、16進2進の相互変換を覚える。(考えるのではない)
こうするとパッと見でビットパターンが浮かんで便利。
・16進一桁の加減算くらいは覚える。
こういうことをすると、n進数が身近なものに感じられるようになるんで、
変な苦手意識がなくなるからおすすめ。
0040片山博文MZ ◆T6xkBnTXz7B0
2015/05/28(木) 13:50:16.12ID:BPOchcgZ0041デフォルトの名無しさん
2015/05/28(木) 14:19:20.15ID:BPOchcgZさあ、ユーキ●ンで基本情報を取得しよう。
0042デフォルトの名無しさん
2015/05/28(木) 17:32:52.86ID:pwrXSWWR0043デフォルトの名無しさん
2015/05/28(木) 17:48:55.24ID:+ywrUonYITパスポートに基本情報の問題がどんどん入ってきてる。
0044デフォルトの名無しさん
2015/05/28(木) 17:52:41.32ID:9BOAlIFb#define LED1 (0x01)
#define LED2 (0x02)
PORTD |= LED1;
PORTD &= ~LED1;
PORTD |= (LED1 | LED2);
PORTD &= ~LED2;
0045デフォルトの名無しさん
2015/05/28(木) 18:47:19.12ID:qBUpvu6jtech/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関数で解放可能な連結リストは
> 最大何個連結可能でしょうか?
>
> アーキテクチャは好きに選んでいいですよ
0046デフォルトの名無しさん
2015/05/28(木) 18:49:56.50ID:qBUpvu6j> 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
> http://pastebin.com/4pBPEWBG
>
> 読めなくて良かったな。バカ。 wwwww
> 読めてたら憤死するところだぞ。 wwww
0047デフォルトの名無しさん
2015/05/28(木) 21:17:36.02ID:uqfTz9n2>>39
加減算覚えるの凄くよさそうですねトレーニングに取り入れたいと思います。
本当に日常で触れてなかったものの苦手意識排除は大変、がんばります!
>>41
絶賛勉強中ですw
0048デフォルトの名無しさん
2015/05/28(木) 23:09:51.22ID:+atrdthnよっぽどツボにはまったのねw
0049デフォルトの名無しさん
2015/05/28(木) 23:43:18.09ID:qBUpvu6jls -l ./progと肩を並べる赤っ恥
0050デフォルトの名無しさん
2015/05/29(金) 07:13:43.33ID:UV9YC1hI005150
2015/05/29(金) 08:16:00.19ID:6ABPwQuC実装中のリスト処理用関数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かわってしまうかもです
0052デフォルトの名無しさん
2015/05/29(金) 12:14:24.83ID:6sq7SX0R区別できていないからうまくいかないんじゃね? 知らんけど
0053デフォルトの名無しさん
2015/05/29(金) 12:40:50.62ID:GiRGpazTゴミになるって言うんだからmallocしてないんじゃね?
0055デフォルトの名無しさん
2015/05/29(金) 13:53:52.96ID:6sq7SX0Rcase 1)
void *p = a;
free(a);
....
*p 等を使ったコード
case 2)
void *p = a; a = NULL;
free(a);
....
*p 等を使ったコード
の違いみたいな論理思考
後者の case 2 は a のもちものだったものを p へ移してる
0056デフォルトの名無しさん
2015/05/29(金) 14:01:20.06ID:8st5hivmエスパー募集中か?
0057デフォルトの名無しさん
2015/05/29(金) 14:03:23.10ID:6sq7SX0R005851
2015/05/29(金) 14:07:43.16ID:UV9YC1hIvoid *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();
}
}
005951
2015/05/29(金) 14:08:17.84ID:UV9YC1hI{
if (place == NULL) {
abort();
}
gc_incref(obj);
gc_decref(*place);
return *place = obj;
}
006051
2015/05/29(金) 14:16:01.63ID:UV9YC1hI意味は分ったかもしれない
006151
2015/05/29(金) 15:37:20.35ID:UV9YC1hIreturn なにか(void *);
0062デフォルトの名無しさん
2015/05/29(金) 15:39:53.38ID:cfB2m1BQ関数はexp(x + y)で範囲はxもyも0から1ですね…
0063デフォルトの名無しさん
2015/05/29(金) 16:54:11.41ID:8st5hivmgc_decref(*place); で car の内容のリファレンスカウンタが減算されるようになっているのか 。
p を pop() のリターン値として返すなら、pにコピーした時点で「移譲」だろうから、
p = list_car() の後で car に NULL を入れてしまうのが良いんじゃないか?
ところで…
pop() の戻りは list なのか。car の内容は object のような気がするが void* じゃないのか。
0064デフォルトの名無しさん
2015/05/29(金) 17:48:56.38ID:hTQPDRSdhttps://www.wolframalpha.com/input/?i=integrate+exp%28x%2By%29+dx+dy%2C+x%3D0..1%2C+y%3D0..1
http://ideone.com/tjq3jd
なんか答えが違うんだよなあ?
0065デフォルトの名無しさん
2015/05/29(金) 17:54:35.44ID:hTQPDRSdこう書いても同じか
0066デフォルトの名無しさん
2015/05/29(金) 18:07:32.85ID:6sq7SX0Rttp://d.hatena.ne.jp/moriyoshi/20080528/1211955227
006751
2015/05/29(金) 18:09:45.20ID:UV9YC1hIvoid *移譲(void **場所)
{
void *オブジェクト = NULL;
if (場所 == NULL){
えらー
}
オブジェクト = *場所;
*場所 = NULL;
if (オブジェクト == NULL){return NULL;}
オブジェクト->カウンタ -= 1; /* 0でも何もしない */
return オブジェクト;
}
これどーですか?
0069デフォルトの名無しさん
2015/05/29(金) 18:11:23.33ID:cfB2m1BQ>>65
おおサンキュ
一応手元ではxの積分とyの積分を別々に考える(y方向積分時にx積分の関数を呼び出す)方法で解決はしたが…
まぁでも方向性は同じなはず^^
0070デフォルトの名無しさん
2015/05/29(金) 18:16:19.75ID:8st5hivm他にGCモジュールがあると考えたいところ。perl のように割り切るとか。
まあ、循環参照はだめよって制限付きで俺もよくつかうがな。
0072デフォルトの名無しさん
2015/05/29(金) 18:32:16.72ID:8st5hivm> オブジェクト->カウンタ -= 1; /* 0でも何もしない */
はいらないような。
カウンタ0の物がふらふらしているのはどうかと思うんだが。
(Multi Threadに対応するときにいろいろいやなことになったりしそう)
0073デフォルトの名無しさん
2015/05/29(金) 18:34:53.91ID:8st5hivm単にロードしてなかっただけ。
専ブラ使えなくなったんで面倒なんだよ。
007451
2015/05/29(金) 18:46:16.27ID:UV9YC1hIupdate(新しい場所,移譲(古い場所));
みたいな感じですぐにupdateの第二引数として利用することを想定しています
これなら問題ないと思ったのですが
>>73
これは失礼しました
007552
2015/05/29(金) 18:53:56.18ID:7AW8/kfN>>74
move(新しい場所, 古い場所) を用意したら?
用途は 古い場所にあるobj を 新しい場所に移したうえで 「古い場所」そのものも GCで整理
0077デフォルトの名無しさん
2015/05/29(金) 20:01:20.59ID:+1oUtA3O0078デフォルトの名無しさん
2015/05/29(金) 21:37:50.92ID:O1LEtnxTx * yじゃなくてx + yだね
それとy2の計算が間違ってたのでうpしといた
シンプソン法でも同じ結果が出たから間違いないはず
http://ideone.com/EQJ4AP
0079デフォルトの名無しさん
2015/05/30(土) 13:57:58.63ID:nOufQzbT24秒 セレロン
0080デフォルトの名無しさん
2015/05/31(日) 05:14:20.17ID:yKjUvmXa0081デフォルトの名無しさん
2015/05/31(日) 08:09:17.66ID:lLGn4l2bあと、char[]型ってなんだよ
0082デフォルトの名無しさん
2015/05/31(日) 15:00:25.43ID:9ldLUKuRエラーになりました
これって普通なんですか?gcc4.9.2です
0083デフォルトの名無しさん
2015/05/31(日) 16:11:29.11ID:456RRL4Mconst 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文でどのように数値を格納しているのかわかりません、教えてください
0084デフォルトの名無しさん
2015/05/31(日) 16:15:59.59ID:J91fllt7偶数 (0,2,4,8, ...) の時に -2
奇数 (1,3,5,7, ...) の時に 1
0085デフォルトの名無しさん
2015/05/31(日) 16:25:35.08ID:456RRL4Mありがとうございます
Kの中身は具体的にどうなるんですか?最初の法だけでも教えてください…
0086デフォルトの名無しさん
2015/05/31(日) 16:26:44.42ID:J91fllt7K[1] = 1
K[2] = -2
K[3] = 1
:
:
0087デフォルトの名無しさん
2015/05/31(日) 16:30:32.88ID:456RRL4MじゃあKは2*N行1列の配列ってことですね、勘違いしてました
ありがとうございました
0088デフォルトの名無しさん
2015/05/31(日) 17:23:52.40ID:JzM7CxZPメモリが確保されて
そこにデータが書き込まれただけ
0089デフォルトの名無しさん
2015/06/01(月) 20:55:30.09ID:60WsLIt6....
}じゃなくて
int (*main)(void){
....
}
といった書式で関数ポインタ定数を定義することが
できますか?
0090デフォルトの名無しさん
2015/06/01(月) 21:49:19.63ID:rd0Fn6X3関数のポインタを受ける変数を用意してそれに関数のポインターを代入して呼び出すことをしたいのか
int (*funcptr)(char*) = atoi;
funcptr("1"); /* atoi("1"); と同じ */
0091デフォルトの名無しさん
2015/06/01(月) 22:39:06.44ID:CikCK20Oそもそも何がしたい?
0092デフォルトの名無しさん
2015/06/01(月) 22:39:37.29ID:60WsLIt6int Hoge(void){
.....
}
hoge h=&Hoge;
を一行で
int (*h)(void){
....
}
とするととコンパイルエラー
になるものなのでしょうか?
0093デフォルトの名無しさん
2015/06/01(月) 22:40:50.53ID:+exp5V/e>といった書式で関数ポインタ定数を定義することが
>できますか?
という問いに対して適切に答えなよ。
0094デフォルトの名無しさん
2015/06/01(月) 22:44:07.94ID:CikCK20Oそんなことはコンパイラ聞け
0095デフォルトの名無しさん
2015/06/01(月) 22:44:43.22ID:60WsLIt60096デフォルトの名無しさん
2015/06/01(月) 22:47:11.26ID:CikCK20O無い事を証明する事は不可能
0097デフォルトの名無しさん
2015/06/01(月) 22:48:09.70ID:rd0Fn6X3質問の意図が見えなかった
が >>92 で見えた
>>95
文法的にそういうもんだからあきらメロン
0098デフォルトの名無しさん
2015/06/01(月) 22:48:28.00ID:60WsLIt6....
}
じゃなくて
int (*h)(void){
....
};
としなければなりませんね 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0099デフォルトの名無しさん
2015/06/01(月) 22:55:27.29ID:vGbHt5ax仮にそう定義できたとして、使う時は
int n = h();
なので、
int n = hoge();
と変わらんがな。
0100デフォルトの名無しさん
2015/06/02(火) 00:10:34.87ID:qU33NizWとかできるんじゃ?
0101デフォルトの名無しさん
2015/06/02(火) 01:37:37.30ID:33LBbjfEint main() { ... }
という定義だけで、すでに main() は関数ポインタの定数になれる
http://codepad.org/dxZDelmk
0102デフォルトの名無しさん
2015/06/02(火) 12:52:42.05ID:qU33NizW....
}=main;
を通さなければならなくなってしまう
0103デフォルトの名無しさん
2015/06/02(火) 20:20:09.91ID:QnN/H06vPLACE-XYという座標の位置を表すメッセージを送ることによってサーバーとクライアントの通信を行いたいと思ってます。
そこでPLACE-XYのXYに座標の数字をいれる関数と受け取ったときのPLACE-XYの中から数字を読み取る関数を作りたいのですがどう扱ったら良いのか思い付きません。アドバイスがあればほしいです。
0104デフォルトの名無しさん
2015/06/02(火) 20:22:26.55ID:zkt06s+i0105デフォルトの名無しさん
2015/06/02(火) 20:41:29.63ID:QnN/H06v0106デフォルトの名無しさん
2015/06/02(火) 21:09:19.60ID:nAzzGm8u0107デフォルトの名無しさん
2015/06/02(火) 21:25:23.71ID:uyxZ0XqT0108デフォルトの名無しさん
2015/06/02(火) 21:43:49.77ID:QnN/H06vありがとうございます
そのような関数があるのを勉強不足で知りませんでした
0109デフォルトの名無しさん
2015/06/02(火) 22:11:06.68ID:Niuehz0Nそれだと、x=1, y=23 と x=12, y=3 の区別がつかんぞ
0110デフォルトの名無しさん
2015/06/02(火) 22:25:31.71ID:3gihuyeN0111デフォルトの名無しさん
2015/06/02(火) 23:36:57.15ID:nAzzGm8u知らんがな
PLACE-XYと言ってるんだから一桁なんだろ。
0112デフォルトの名無しさん
2015/06/03(水) 00:47:19.72ID:yWNxAD6Q0113デフォルトの名無しさん
2015/06/03(水) 06:57:11.11ID:NXHMQekm0114デフォルトの名無しさん
2015/06/03(水) 13:17:17.20ID:0YkGcL3D2ch初です。
皆さんにお聞きしたいことがあります
0115デフォルトの名無しさん
2015/06/03(水) 13:18:33.35ID:beedRIsPラウンジで登録は済まされましたか?
0116デフォルトの名無しさん
2015/06/03(水) 13:38:45.31ID:yWNxAD6Q10年ROMってろ
0117デフォルトの名無しさん
2015/06/04(木) 09:45:31.05ID:xZqg6T5qAの関数で乱数を表示したいのですが、その乱数の範囲を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の絵本)、わかりにくくて・・・・・
0118デフォルトの名無しさん
2015/06/04(木) 10:29:04.62ID:5RyB+4Qy+ - * / % == != <= >= < > を解釈できる四則演算プログラムを作ろうと思っています。
(文字列を式として評価する関数を書きたいという意味です。evalのようなものです。)
参考になるサイトや検索語句を教えていただけないでしょうか?
よろしくお願いします。
0119デフォルトの名無しさん
2015/06/04(木) 11:07:17.19ID:cR6kwSut0120デフォルトの名無しさん
2015/06/04(木) 11:25:30.54ID:9A+TTI8r■関数の書き方
戻り値の型 関数名(仮引数の型 仮引数名)
{
処理
}
■関数の使い方
変数の型 変数名 = 関数名(実引数の値);
0121デフォルトの名無しさん
2015/06/04(木) 11:48:35.24ID:7ARVbyZwポインタ使う
int A(){
int x,y;
B(&x,&y);
return 0;
}
void B(int *x,int *y){
*x=10;
*y=50;
return;
}
0123デフォルトの名無しさん
2015/06/05(金) 16:34:11.30ID:d3aFH/Fhこれってどういう書式なんでしょう?
int PASCAL WinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow)
HINSTANCE hInstance;
HINSTANCE hPrevInstance;
LPSTR lpCmdLine;
int nCmdShow;
{
(以下略)
0124デフォルトの名無しさん
2015/06/05(金) 17:07:36.35ID:rSavfMTp(非ANSI)
(旧式)
(古い書き方)
0125デフォルトの名無しさん
2015/06/05(金) 17:36:03.01ID:2LDBwz+W古いプログラムのことか…
一瞬古いプログラマのことかと思った。
0126デフォルトの名無しさん
2015/06/05(金) 17:42:02.11ID:2LDBwz+Wgcc -ansi -pedantic -Wall t.c でも、
VS2013 で拡張子 .c だといずれも普通に通るんだな。
だからなんだってきもするが再認識したよ。
0127デフォルトの名無しさん
2015/06/05(金) 17:42:41.75ID:azLqt+Ly0128デフォルトの名無しさん
2015/06/05(金) 18:22:06.17ID:5S7ZX/zN需要あるなら今度の夏休みにでも学んでみようと思うんだが
0129デフォルトの名無しさん
2015/06/05(金) 18:22:44.81ID:5S7ZX/zN需要あるなら今度の夏休みにでも学んでみようと思うんだが
0130デフォルトの名無しさん
2015/06/05(金) 18:23:14.79ID:5S7ZX/zN需要あるなら今度の夏休みにでも学んでみようと思うんだが
0131デフォルトの名無しさん
2015/06/05(金) 18:24:56.87ID:5S7ZX/zN使い方がいまいちでな
0132デフォルトの名無しさん
2015/06/05(金) 18:25:12.20ID:5S7ZX/zN使い方がいまいちでな
0133デフォルトの名無しさん
2015/06/05(金) 18:57:54.51ID:d3aFH/Fh元々VS6.0で使われてたっぽいんですが、そのまま2010に上げたら通りませんでした
.c単体なら通ったのかな
0134デフォルトの名無しさん
2015/06/05(金) 19:04:47.60ID:S5X6xzp7-ansi -pedantic -Wall -Wextra -Werror は?
0135デフォルトの名無しさん
2015/06/05(金) 19:05:08.95ID:eCq9CBBu需要あるなら今度の夏休みにでも学んでみようと思うんだが
0136デフォルトの名無しさん
2015/06/05(金) 19:05:17.48ID:BQj/liI5需要あるなら今度の夏休みにでも学んでみようと思うんだが
0137デフォルトの名無しさん
2015/06/05(金) 19:13:37.40ID:sjgHnZg80138デフォルトの名無しさん
2015/06/05(金) 22:54:41.28ID:94pg9g/v皮肉な話
0139デフォルトの名無しさん
2015/06/05(金) 23:04:24.61ID:zIdlcfi4>C言語で金儲けできる?
>
>需要あるなら今度の夏休みにでも学んでみようと思うんだが
根本的な疑問なんだが、既に論理レベルで無理があるよ。
・「今度の夏休みにでも学んでみよう」で間に合うくらい、のんびりした情勢
・実情が判らない程、知名度が低い
・金儲けできる
これが同時に成り立つとでも?
0140デフォルトの名無しさん
2015/06/05(金) 23:37:00.11ID:VYlCQBeJ夏休みじゃ間に合わないなら、それからもコツコツ学生の本分をない程度にがんばればいいだけの話だから問題ないんだか
0141デフォルトの名無しさん
2015/06/05(金) 23:37:07.73ID:5Ys1lSP5夏休みじゃ間に合わないなら、それからもコツコツ学生の本分をない程度にがんばればいいだけの話だから問題ないんだか
0142デフォルトの名無しさん
2015/06/06(土) 00:36:04.07ID:aeT9N6Fg何でも出来て初めて使い物になるんじゃねーの。
そう言う視点では C を十分に使えればかなり応用は利くとは思うが。
0143デフォルトの名無しさん
2015/06/06(土) 00:55:24.80ID:M49TyJvh0144デフォルトの名無しさん
2015/06/06(土) 01:12:07.52ID:DXSt7rl7って合法?
0145デフォルトの名無しさん
2015/06/06(土) 01:24:35.00ID:M49TyJvh0146デフォルトの名無しさん
2015/06/08(月) 10:08:02.98ID:PtEDnCef-Werror はどーでもいいが。
何か問題あったのか?
0147デフォルトの名無しさん
2015/06/08(月) 11:41:45.06ID:BYDNcOl50149デフォルトの名無しさん
2015/06/08(月) 12:52:26.03ID:BYDNcOl50150デフォルトの名無しさん
2015/06/08(月) 15:10:33.41ID:PtEDnCef-Wextra のことはわかってるさ。
-Werror は warning を error 扱いにするってだけ。
だから、実際に自分でやってみろよと。(それであえて過去形で書いた)
で、なんか問題あったのかと。
もし問題があったら、エラーメッセージを張ってくれ。
0151デフォルトの名無しさん
2015/06/12(金) 12:01:19.29ID:2Km67azR複数部署から来る共通フォームのエクセルファイルを自動的に合成し、合成後のエクセルファイルには
特定のセルに当日の日付が自動入力されたうえで当日の日付を付加した件名で
特定のメールアドレスへ自動添付・送信する
といった事ができるアプリはどれくらいのレベルになれば作ることができますか?
0152デフォルトの名無しさん
2015/06/12(金) 12:12:23.95ID:c263dHgV例えば総務課からきたエクセルファイルはセルA1が3、資材課からのものはA1が5だとしたら
合成後のA1は8になるといったような、そういう意味です。
0153デフォルトの名無しさん
2015/06/12(金) 14:19:17.92ID:L1K91O/r合成自体は簡単にできる
0154デフォルトの名無しさん
2015/06/12(金) 15:03:56.83ID:ld51Zz1O何が必要か思い浮かべられ、必要な情報を探す手段に見当がつくレベル。
0155デフォルトの名無しさん
2015/06/12(金) 15:04:32.67ID:ld51Zz1O0156デフォルトの名無しさん
2015/06/12(金) 23:55:31.46ID:kv4tRjkv会社みたいだからメールサーバーはすでにあるんじゃね?
>>155
俺なら普通に CDO.Message かな
0157デフォルトの名無しさん
2015/06/13(土) 00:24:04.91ID:FdcJfrL90158デフォルトの名無しさん
2015/06/13(土) 00:51:09.93ID:qA+DQ73k�@繰り返し
�A順次実行
�B条件分岐
の3つですが、それ以外に一つ加えるとしたら何ですか?
スキップ(gotoなど)は無しとします。
学校の課題です。
こういう哲学的な課題多いんですよねうちの大学…
いやになる…創造力高めるにはいいかもしれませんが…
何か面白いアイディアありますか?
0159デフォルトの名無しさん
2015/06/13(土) 00:58:37.90ID:9xUE/oHF0160デフォルトの名無しさん
2015/06/13(土) 01:04:02.46ID:54ObALVUなら、自動的にその3構造と関数でしょ。
0161デフォルトの名無しさん
2015/06/13(土) 09:49:59.74ID:C2f6Oj6w0162デフォルトの名無しさん
2015/06/13(土) 10:00:08.21ID:eNaPfsID0163デフォルトの名無しさん
2015/06/13(土) 11:31:02.92ID:FdcJfrL90164デフォルトの名無しさん
2015/06/13(土) 12:04:35.06ID:oK+WKOcZ複数言語勉強して、実装されてない機能を何とか再現してみる。
0165デフォルトの名無しさん
2015/06/13(土) 12:37:16.36ID:FQeTzdtaコルーチン かな
0166デフォルトの名無しさん
2015/06/13(土) 13:48:16.23ID:sRRTm1aYアイデアじゃないんだけど、俺、昔習った時から、その3つの要素に疑問があるんだよねー。
反復って、分岐と順次の組み合わせじゃね?
「ダイクストラさん?(たぷたぷ)」的な。
0167デフォルトの名無しさん
2015/06/13(土) 14:42:15.59ID:C2f6Oj6w構造化プログラミングの場合、分岐で後ろには戻れん。
0168デフォルトの名無しさん
2015/06/13(土) 15:22:18.42ID:FxAuvF7G分岐って要するに if 文だよ
if 文だけでループ組める?
0169デフォルトの名無しさん
2015/06/13(土) 15:31:24.01ID:fEOfnJ820170デフォルトの名無しさん
2015/06/13(土) 15:42:42.44ID:FK3HwmC50171デフォルトの名無しさん
2015/06/14(日) 10:18:10.05ID:ocyd5wvL再帰呼び出し
0172デフォルトの名無しさん
2015/06/14(日) 15:02:01.64ID:HbVleRJYif 文だけ (= goto 文は使っちゃダメ) って理解できてないのか?
0173デフォルトの名無しさん
2015/06/14(日) 15:58:32.79ID:ks9BlnmQ例外処理
0174デフォルトの名無しさん
2015/06/14(日) 16:20:28.33ID:HETOIAim0175デフォルトの名無しさん
2015/06/14(日) 20:53:31.76ID:Gyw+v9nI「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;
}
0177デフォルトの名無しさん
2015/06/14(日) 21:04:02.65ID:Gyw+v9nI鈍器で殴られたような衝撃!
ご回答ありがとうございました。
0178175
2015/06/14(日) 21:22:03.17ID:Gyw+v9nIint i, total = 0
これは、変数「i」変数「total」の宣言と変数「total」の初期化をしたものと考えていいでしょうか?
別の入門書で、変数の宣言は一行にひとつが普通である、と読んだ気がしたので気になっております。
0179デフォルトの名無しさん
2015/06/14(日) 21:34:39.65ID:HbVleRJY> 別の入門書で、変数の宣言は一行にひとつが普通である
そう、にちゃんのように行数制限があるとかでない限り
int i;
int total = 0;
って書いた方がいい
0180175
2015/06/14(日) 21:39:12.73ID:Gyw+v9nIモヤモヤしていた気持ちがすっきりしました。
0181デフォルトの名無しさん
2015/06/14(日) 21:39:35.24ID:M+qlsClkそういう宣言は書籍でしかしない。
0183デフォルトの名無しさん
2015/06/15(月) 00:39:41.77ID:syb1bV3z0184デフォルトの名無しさん
2015/06/16(火) 19:23:30.15ID:HVniWzEyだってコンパイルエラーの場合、ちゃんと間違ってる箇所が表示されますよね。
C言語の場合組み込みで単純だからなおさらデバッグは簡単だと思います。
プログラマになったことないんでわかりませんが、何故大変なのか教えて下さい。
作ることが難しいのは分かります、でも何故デバッグが大変なのか?
0185デフォルトの名無しさん
2015/06/16(火) 19:32:04.86ID:da/P1e7kfor(int i = 0;....)
という書き方を許している現場ならともかく、
一時的な変数と何かの重要な結果を保持するための
変数は改行して宣言するだろう
0186デフォルトの名無しさん
2015/06/16(火) 20:05:44.08ID:tF6rLPWO難しいバグは大抵、
1. タイミング系のバグ
2. 組み合わせ系のバグ
のどちらか
タイミング系としてよく引き合いに出される例としては、同一の口座から A/B 二人が同時に預金を引き出したらどうなるかって奴
http://www.ncad.co.jp/~arai/pro3seminar/java/first_java/3term/unit13/4period.html
まあ、こんなのは初歩の初歩で、実際はこれに加えて機器の故障とか、ネットワークエラーとかが絡んだりして想定外の事態になったりする
タイミング系はなかなか再現しなかったりするのでホントに地獄を見る
組み合わせ系って言うのは、色々なパターンのうち特定の場合だけおかしくなるって奴
こっちは条件さえわかれば再現も容易だし対策も大抵楽
ただ、ガチな奴はパターンの数が半端ないのでテストはひたすら体力勝負だったりする
有名どころではこんな奴とか
http://www.publickey1.jp/blog/12/_1040_1.html
どっちにしろお仕事にするには結構地味でキツいからよほど好きでないと勧められない
0187デフォルトの名無しさん
2015/06/16(火) 20:22:27.90ID:HVniWzEyそれは排他的ロック機能を実装してればいいだけでは?
0188デフォルトの名無しさん
2015/06/16(火) 20:31:39.75ID:beEOQH6x0189デフォルトの名無しさん
2015/06/16(火) 20:41:39.35ID:HVniWzEy0190デフォルトの名無しさん
2015/06/16(火) 21:04:59.86ID:tF6rLPWOもちろんそうだけど、複数の要因が絡んでくると排他とかタイマーとかを適切に掛けていくのは結構大変
前のレスにもちらっと書いたけどエラー処理とかが鬼門で、排他を解除し忘れたり、逆にリトライするから解除しちゃダメなのに解除しちゃったりとかね
普通の会社のソフト開発って別に難しいことはやってないのよ
規模が小さきゃホントに楽勝
でも、でかくなると地獄ですよ
マジで人間の管理できる範囲を越えてると思うことがよくある
0191デフォルトの名無しさん
2015/06/16(火) 22:13:38.88ID:HVniWzEy分かりません。
Aが使ってるときはB,C,D.......n
Bが使ってるときはA,C,D.......n
という風に全部の排他条件かけばいいだけじゃないですか?
つまりn^2通りの条件をかけば解除し忘れなんて起きないと思います。
0192デフォルトの名無しさん
2015/06/16(火) 22:24:42.38ID:O49G9Oy4他人が作った何万行もあるソースのデバッグとか想像できないかな
0193デフォルトの名無しさん
2015/06/16(火) 22:29:41.58ID:HVniWzEy処理を書かなくてもいいみたいな。ダメなんですか?
0194デフォルトの名無しさん
2015/06/16(火) 22:35:38.75ID:HVniWzEy色々なパターンの内特定…
例えばポケモンで特定の操作したらセレクトBセレクトBだっけ?
マスターボールが増えるみたいな裏ワザありましたけど
特定の操作でバグが出るって全部調べたら無限なんじゃないですか?
どうしてるんでしょうか?
例えばAボタン2回押して、Cボタン3回押したらそのゲームのプログラムが
全て消えるみたいなバグもあり得るわけじゃないですか?
デバッガはそういった組み合わせも調べるんでしょうか?
無限にあると思いますが…
0195デフォルトの名無しさん
2015/06/16(火) 22:58:01.13ID:O49G9Oy4試験は想定されるものはするよ
例外はそれなりの処理に落とす
ここに人的要因が入ったりするね
0196デフォルトの名無しさん
2015/06/16(火) 23:25:46.06ID:GRyCax2n> Aが使ってるときはB,C,D.......n
> Bが使ってるときはA,C,D.......n
複数の資源の排他は同時には掛けられない(掛けられる環境もあるけど)ので、うまく掛けないとデッドロックするよ
>>194
>>186 の下側のリンク読んでないでしょ?
パターンが爆発してる場合のサボり方が書いてある
0197デフォルトの名無しさん
2015/06/17(水) 01:42:30.79ID:AEj3cofuLinuxによる並行プログラミング入門
http://www.kyoritsu-pub.co.jp/bookdetail/9784320123809
などで体験できる。
そもそもOSレスでそれらをどう実装するのかというのはこの本で体験できる
12ステップで作る 組込みOS自作入門
http://kozos.jp/books/makeos/
やってみないと何が大変かもいまいちピンとこないしね
0198デフォルトの名無しさん
2015/06/17(水) 04:31:36.29ID:tIKZNiHl結局メソッド synchronized は意味がないとか‥
ダミーメンバに synchronized をかけてお茶をにごしたりとか‥
0199デフォルトの名無しさん
2015/06/17(水) 09:26:59.12ID:pine8kAlバグを100%無くすことは無理ってのが一般的な認識。
ゲームのデバックは開発者視点で想定されるプレーを確認するほか
専門の会社にお願いして色々試してもらうこともある。
同じソフトを1年以上デバックし続ける人も居たとか。
0200デフォルトの名無しさん
2015/06/17(水) 12:59:48.95ID:LYmWlU650201デフォルトの名無しさん
2015/06/17(水) 20:10:32.47ID:YyzkFynf0202デフォルトの名無しさん
2015/06/17(水) 21:30:45.54ID:LUerVH9fひたすらゲームを進行するデバッガー
0203デフォルトの名無しさん
2015/06/17(水) 21:58:38.16ID:CyVJ8sZt0204デフォルトの名無しさん
2015/06/18(木) 00:16:10.01ID:/BnSA0cx正しくはデバグ。
0205デフォルトの名無しさん
2015/06/18(木) 07:44:44.01ID:VfvGCcW60206マ○コデラックス
2015/06/18(木) 08:14:41.43ID:/h/hM0No0207デフォルトの名無しさん
2015/06/18(木) 20:26:49.17ID:dz4KgSgwサーガで評判落としたあとは順調なんかね
0208デフォルトの名無しさん
2015/06/19(金) 21:34:17.32ID:utDPh+CX例えばjavaだとJVMを挟むため遅くなるんですよね?
何故Webプログラミングはjavaじゃないの?javaのapiが豊富って言うんであれば
cもjavaと同じapi作ればいいだけでは?
長年の疑問です。
0209デフォルトの名無しさん
2015/06/19(金) 21:35:49.01ID:utDPh+CXって書こうとしました。
0210デフォルトの名無しさん
2015/06/19(金) 21:36:16.60ID:utDPh+CXインクルードすればいいだけですよね?
何故それでもjavaの方が強いんですか?
0211デフォルトの名無しさん
2015/06/19(金) 21:45:05.62ID:tQGft1o9今更エスペランで論文書く奴がいないのと同じことでしょうね。
0212デフォルトの名無しさん
2015/06/19(金) 21:45:57.46ID:utDPh+CXでも何でCがこんなに影になってるんですか?
Cの方が早いからネットだってCですればやはいやずです。
0213デフォルトの名無しさん
2015/06/19(金) 22:01:08.44ID:6P1dVElz費用対効果
0214デフォルトの名無しさん
2015/06/19(金) 22:28:09.85ID:utDPh+CXどういうこと?
0215デフォルトの名無しさん
2015/06/19(金) 22:47:25.39ID:XV9e/l6B最底辺のWebプログラマは単価が安い。
従ってCでプログラム作れる能力が無い連中がやっている。
0216デフォルトの名無しさん
2015/06/19(金) 22:54:45.96ID:gg5jKUmSJavaもCみたいなもん
0217デフォルトの名無しさん
2015/06/19(金) 23:06:56.12ID:6P1dVElzすべてに最速が必要ではないでしょ
必要十分であればよい
であれば開発速度やコストいい方選ぶ、と
0218デフォルトの名無しさん
2015/06/19(金) 23:20:28.41ID:IwG5+EZ4ひょっとして同一人物の発作かなにかなのか?
0219デフォルトの名無しさん
2015/06/19(金) 23:31:42.53ID:utDPh+CXWebプログラマ、この時点で優秀な印象ですが。
>>218
すいません
C言語信者なものでして…
もう一つ質問していいですか?
何故ではC言語とjavaは組み合わせられないんでしょうか?
だってC言語はDirectX関数と組み合わせられますよね?
これってC言語コンパイラがDirectX関数をコンパイルできるからですよね?
何故javaはCと一緒にコンパイルできないんですか?
#include<stdio.h>
#include<java.io〜〜〜>ないしは
import java.io〜〜〜
こうすれば呼び出す事可能じゃないんでしょうか?
0220デフォルトの名無しさん
2015/06/19(金) 23:33:22.33ID:utDPh+CXコンパイルってようは機械語に変換ですよね?
インタプリタ=一行ずつ実行させる、機械語に変更しなくてもいい
C言語に変換→結局コンパイルすることになる。
コンパイル=機械語に変換
っていう理解でOKですか?
0221デフォルトの名無しさん
2015/06/19(金) 23:43:30.21ID:6P1dVElzdirectXが何なのか調べてきなさいよ
Cに限った話でもないのでどっかいってください
0222デフォルトの名無しさん
2015/06/19(金) 23:53:55.21ID:utDPh+CXdirectx関数が入ったコードをコンパイルできるのは何故ですか?
Cコンパイラがdirectx関数を機械語に変換してるからじゃないんですか?
0223デフォルトの名無しさん
2015/06/20(土) 00:00:19.23ID:FniMMr/q0224デフォルトの名無しさん
2015/06/20(土) 08:05:08.92ID:MeGCLoar0225デフォルトの名無しさん
2015/06/20(土) 08:17:41.58ID:MB4MRZfbな。
0226デフォルトの名無しさん
2015/06/20(土) 08:28:29.63ID:FniMMr/q0227デフォルトの名無しさん
2015/06/20(土) 09:32:40.60ID:DBid4MbY直接directxのソースコードコンパイルしてるわけじゃないでしょ
0228デフォルトの名無しさん
2015/06/20(土) 09:35:16.93ID:buUHCe5z0229デフォルトの名無しさん
2015/06/20(土) 09:45:13.60ID:zZYO0iBz0230デフォルトの名無しさん
2015/06/20(土) 09:55:33.78ID:DBid4MbY0231デフォルトの名無しさん
2015/06/20(土) 13:47:35.11ID:KMXAV3mj0232デフォルトの名無しさん
2015/06/20(土) 17:26:26.75ID:sYEsQufD0233デフォルトの名無しさん
2015/06/20(土) 17:53:33.40ID:5vFhCPnH0235デフォルトの名無しさん
2015/06/20(土) 19:14:16.27ID:5vFhCPnHやっぱり無いのか。
どうもありがとう。
0236デフォルトの名無しさん
2015/06/20(土) 20:09:18.79ID:cnYcb5r+WebはCで作れる必要ないんじゃないですか?
単科が安いのは分かりますが、何故Cで作れないと否定的な見方なんでしょうか?
実はWebもCで作った方が高品質で、優良企業はCでWebプログラミング作ってるんでしょうか?
0237デフォルトの名無しさん
2015/06/20(土) 20:31:03.35ID:gzoCELj1{
int ival;
float fval;
};
int foo(Val* v);
のようなライブラリがあるのですが、これの実装者は
渡されたものがint floatのどちらで格納されたかわからないのに
どうするつもりなんですかね?
0238デフォルトの名無しさん
2015/06/20(土) 20:49:49.27ID:denOUvbB誰にでも出来ることは価格競争になって、性能や品質は二の次になってしまう。
そうするとハイスペックな人から離れていく。
C/C++でサーバーサイドやってるでかいところもあるけど、全体から比べればほんの一部。
0239デフォルトの名無しさん
2015/06/20(土) 21:03:36.49ID:CvmegYmqCならではのメリットがはたらかないんじゃないか
0240デフォルトの名無しさん
2015/06/20(土) 22:00:14.69ID:St40Zxbhプログラム的には間違ってないはずなのですがなぜか実行できません
開発環境は「Microsoft visual studio 2010」を使ってます。
http://imgur.com/AQ5ZIQA.jpg
--------------------------------------------------------------------------
# include <stdio.h>
int main(void)
{
int suuti;
scanf("%d",suuti);
if (suuti - 10) printf("入力値は 10 ではありません。\n");
return 0;
}
0241デフォルトの名無しさん
2015/06/20(土) 22:06:28.53ID:YQlfkZgo0242デフォルトの名無しさん
2015/06/20(土) 22:10:29.20ID:IMO/g3og亨くん、scanfの引数を確認するんだ
0243デフォルトの名無しさん
2015/06/20(土) 22:13:30.41ID:zZYO0iBz0244デフォルトの名無しさん
2015/06/20(土) 22:28:28.37ID:cnYcb5r+あーなるほど
でもWebプログラマなんて誰でもできるとは思えないですけどね
0245デフォルトの名無しさん
2015/06/20(土) 22:50:23.57ID:cnYcb5r+C言語=組み込みだからどうしてもプライベートでは学べないCの奥深さっていうのを仕事で
学べると思うんですが、実際組み込みプログラミングやってる人が俺のやってる事に比べたら
はるかにレベル低いなって思ったりするんでしょうか?
0246デフォルトの名無しさん
2015/06/20(土) 23:00:03.94ID:YQlfkZgoむしろ趣味で好きでやっている人の方がレベル高い傾向じゃないかな。
仕事で見るソースは、、もう一度入門書読んでみようか、なコードだらけで、
それを、単体テスト、結合テスト、評価による試験でバグを出しまくって
それを修正しまくって、ソースはぐちゃぐちゃだけど何故かw仕様通りに動くものを
作ってリリースするからなww
0247デフォルトの名無しさん
2015/06/20(土) 23:18:32.47ID:DBid4MbY仕様書作成と会議と試験が業務の9割
しかも検査が糞やりにくい
VisualStudioで作るGUIアプリみたいにビルドボタン一発で動作確認とかできない
画面が出ないものすらある
オシロスコープで電圧が使用通りに出てるかを確認したりしないといけない
もはやソフトウェアエンジニアと言える職業ではない
メーカーの仕事は設計と実装を完全に別物と捕らえていて
完璧な設計書が作られていることを前提に実装はただの作業員として扱う
コーディング時のクリエイティビティなんか完全にスポイルして開発を進めていく
そのくせ設計書は不備だらけで面倒臭い部分は後工程に丸投げの無責任だから
完全にモチベーションをゼロにされる
それが組み込みのC言語のプログラミングの仕事だ
0248デフォルトの名無しさん
2015/06/20(土) 23:20:00.38ID:CvmegYmq0249デフォルトの名無しさん
2015/06/21(日) 01:05:13.50ID:3VZnQzoZお互いを馬鹿にして、バグのなすりつけ合い
だから、力学・電験3種・コーディングの、
3つとも出来る人は、すごい
プルアップ・プルダウン抵抗とか、
機械系と情報系では、別電源を使うとか、
リレー(PLC)、一点アースなど、
基本がわかっているソフト屋は強い
基礎入門 ブレッドボードではじめるマイコンプログラミング
2010、青木直史
PICマイコンでC言語だが、この本を読んでみて
0250デフォルトの名無しさん
2015/06/21(日) 09:29:12.19ID:ZcGcKAux月給23万円です。
0251デフォルトの名無しさん
2015/06/21(日) 09:44:57.14ID:V01ss4k7ところが、誰でも出来るんだよ。
自社のバグの存在に発見出来ず、サーバーの停止は、善良な市民の不法行為だと客に説明し、
客に刑事告訴させ、善良な市民を逮捕させた三菱のSIer。最低だと思うだろ。
こういうSIerの使いっ走りが、大部分のWebプログラマのポジション。
0252デフォルトの名無しさん
2015/06/21(日) 10:12:09.58ID:uT2pVaOW0253デフォルトの名無しさん
2015/06/21(日) 10:39:43.69ID:bOKloAAb0254デフォルトの名無しさん
2015/06/21(日) 12:56:17.95ID:uT2pVaOW家電は馬鹿チョンカメラと馬鹿にしていた韓国メーカーに完全敗北したし
Sonyはiphoneを作れなかった
自動車の自動運転技術でもGoogleが先行していて今後ソフトウェアの重要性が増すにつれ
日本の自動車メーカーも優位性を保てなくなるだろう
ソフトウェアの重要性を軽視して若者使い捨て技術蓄積放棄してきた結果
本当に日本のメーカーは世界競争に負けた責任を取って若者主導のベンチャーに投資ぐらいして当然だ
0255デフォルトの名無しさん
2015/06/21(日) 13:33:57.21ID:ZcGcKAux0256デフォルトの名無しさん
2015/06/21(日) 13:55:45.83ID:BPdaawwb特許を完全に無視してるよな朝鮮人って
0257デフォルトの名無しさん
2015/06/21(日) 14:24:54.63ID:k0Gw61eH0258デフォルトの名無しさん
2015/06/21(日) 17:41:37.15ID:mh4IeNEVソースはぐちゃぐちゃだけど何故か動くって、不良品に繋がる可能性高くないんですか?
電化製品の不良品って命に関わるレベルだと思うんですが…
0259デフォルトの名無しさん
2015/06/21(日) 17:44:59.68ID:mh4IeNEVだってプログラマはあくまでシミュレーターで実験するだけだと思うんですが…
0260デフォルトの名無しさん
2015/06/21(日) 17:46:39.51ID:BziqIqe80261デフォルトの名無しさん
2015/06/21(日) 17:47:35.63ID:mh4IeNEV力持ちになって相当な頭脳を発揮してるってイメージなんですが、それは誰なんでしょう?
設計を修正する設計者なのか、プログラムで設計の不備を補うプログラマなのか…
0262デフォルトの名無しさん
2015/06/21(日) 18:44:29.73ID:GgfmtYLJ0263デフォルトの名無しさん
2015/06/21(日) 18:51:30.89ID:XaWI7cF/設計からプログラマから評価から、そして製品が出てからのサポート担当
0264デフォルトの名無しさん
2015/06/21(日) 19:14:51.10ID:mh4IeNEV不良品の場合サポートで対応できる限界超えてるのでは?
0265デフォルトの名無しさん
2015/06/21(日) 19:26:25.44ID:XaWI7cF/何十万台のリコールとか聞いたことが無いか?
それだけの台数を全てサポートし、修理するということだ。
0266デフォルトの名無しさん
2015/06/21(日) 19:36:21.03ID:7nlclQFw0267デフォルトの名無しさん
2015/06/21(日) 20:28:35.04ID:5j8C2sGK0268デフォルトの名無しさん
2015/06/21(日) 20:43:20.42ID:yr9/lfvl入力が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を表示すれば正しいのですが、違った値が表示されます。
プログラムのどこが間違っているのか教えてくれませんか?
コードは下のやつです
http://codepad.org/PuM1hFdA
0269デフォルトの名無しさん
2015/06/21(日) 22:01:06.92ID:mh4IeNEV明らかに実行されるはずなのに、実行されないケースってあるのかなと思いました。
printf("入口");
printf("hello world");・・・�@
printf("出口");
この�@が実行されないケースって実際のプログラミングであるんでしょうか?
こういう場合って本当どうするんでしょうか…
つまりコードとして書いてあるのに実行されないケースです。
0270デフォルトの名無しさん
2015/06/21(日) 22:09:44.53ID:mh4IeNEVprintf("入口");
draw("hello world");・・・�@
printf("出口");
このように実装関数の場合、明らかにdrawは実装ミスがないという根拠が
あった場合、draw自体の関数の設計は見直さない、他に原因があるんだって
いう流れになるんでしょうか?
0271デフォルトの名無しさん
2015/06/21(日) 22:35:48.06ID:DaSOQbmKdrawをスタブにしてみろよ。
0272デフォルトの名無しさん
2015/06/22(月) 11:20:59.81ID:U5ZZW/PfOS、コンパイラ、ライブラリのバグ、ハードの故障。
動きをトレースして原因を絞って各担当に連絡して直してもらう。
時間がなければ回避手段が無いか検討。
それでもダメなら土下座。
イレギュラーな懸案はその都度考える。
0273デフォルトの名無しさん
2015/06/22(月) 11:44:22.29ID:Jxy34/JH0274デフォルトの名無しさん
2015/06/22(月) 12:08:17.55ID:MaxvP/1Lユーザーの違法行為が原因だと客に説明する。
0275デフォルトの名無しさん
2015/06/22(月) 13:22:07.63ID:aymjWIxI・確実にその関数を呼び出していることを確認する
・呼び出されてるとして、パラメータが適切であるか確認する
・同様に内部で想定外の動作をしてないか(=バグ)を確認する
くらいのことはするかも知れない。
269 にあるように、ユーザがボケてて実は呼び出してない or 変なパラメータを入れてるってことはザラにあるし。
0276デフォルトの名無しさん
2015/06/22(月) 19:03:41.37ID:SYQS3vBPこれって多いほうですか?1000行くらいのプログラムコードです。
;の付け忘れやら、アクセスできないインデックスで配列にアクセスしたりと
色々あります。
0277デフォルトの名無しさん
2015/06/22(月) 19:14:08.90ID:44quCRbjこれコンパイラでつかまるの?
0278デフォルトの名無しさん
2015/06/22(月) 19:56:16.28ID:ILh0wq8Gその100回エラーはいつ出るんだよ?
1000行のプログラムを書く場合、100行くらいの関数を一個作ったら取り敢えずビルドしてテストすると思うがその時に100個のエラー出るのか?
それとも1000行書き上げるまで一度もビルドせずに1000書いてから初めてビルドしたら100個のエラーなのか?よく分かるように書いてくれよ
0279デフォルトの名無しさん
2015/06/22(月) 20:01:04.01ID:YsLRwNcZ何かプログラミングは詳しいけど仕事に対しては文句が多い気がします。
Cで組んでいて仕事で充実したこと、自分のスキルが活かされたなって思う瞬間が
あれば教えて下さい。当方プログラマになりたいと思っております。
向いてないかもしれませんが、みなさんがどういった心理状態、将来への展望を抱いて
プログラマやってるのか不思議でなりません。
0280279
2015/06/22(月) 20:25:05.35ID:YsLRwNcZ皆さんは
仕事が割り込んでもそれを片付けるとかこのレベルまで行ってるの?
0281デフォルトの名無しさん
2015/06/22(月) 21:12:32.23ID:cwbWWa9Dそれ知ってどうすんの
傾向わかってんだったら今後注意すりゃいいだけでしょ
0282デフォルトの名無しさん
2015/06/22(月) 21:25:05.55ID:aymjWIxI自分の作ったプログラムが出した指令に基づいて目の前で鉄の塊(電車)が動いた時は本当に感動した。
0283デフォルトの名無しさん
2015/06/22(月) 21:27:50.49ID:Jxy34/JHマ板行ったらいいよ
0284デフォルトの名無しさん
2015/06/22(月) 22:06:39.89ID:YsLRwNcZそれってコーディングによっては動かない可能性もあったんですか?
0285デフォルトの名無しさん
2015/06/22(月) 22:22:45.94ID:5yWB/8R4自分の作ったプログラムがバグると地上待機してる自分に敵のミサイルが当たる時
0286デフォルトの名無しさん
2015/06/22(月) 22:52:06.68ID:n9SZmu2P数学の問題なんて何時間かけても解けないなら仕方ないよって言われるのに
何故プログラミングの場合は、すぐにバグとってリリースできる状態にしろって
厳しい条件を突きつけられるんでしょうか?
問題解決が必要な分野でプログラミングだけやたらと厳しい気がしませんか?
どんな職業もゆとりってあるじゃないですか。研究で成果でなくても怒られませんよね。
企画が頓挫しても次頑張れって言われますよね。
でもプログラミングは何故殺伐とした圧力が常にあるんでしょうか?
納期とかいいますけど、それだけ大変なら納期は延びても仕方ないよって言う
人のほうが多くないんですか?
0287デフォルトの名無しさん
2015/06/22(月) 22:58:37.01ID:n9SZmu2Pそれってラインみたいな単純作業じゃないじゃないですか。
常に数学の解法を思いつくような思考がずっとできないとダメってことですよね?
それなのに見つけられて当然、やっと見つかったけど今度はこれ見つけてねとか
あんまりじゃないですか?
世間からプログラマーってちょっと賢い程度に思われてるじゃないですか?
俺からしたら滅茶苦茶頭きれないと無理だと思うんですよ。
人間誰しも論理的に物事考えるけど、プログラマーってそれ+頭の回転
しかも超凄いレベルの回転力が必要ですよね?
0288デフォルトの名無しさん
2015/06/22(月) 23:09:28.06ID:3Y+uTrvXこういう使い分けが出来るのがプログラマーであり、一般的に多くの人が出来ることだ。
0289デフォルトの名無しさん
2015/06/22(月) 23:50:40.28ID:HfhmwtVwそのせいで納期は短めに設定されるし残業代も100%出ない会社も多い
0290デフォルトの名無しさん
2015/06/23(火) 08:07:21.08ID:PmYcJsrz大量にある要件をチマチマ実装/テストするお仕事です
0291デフォルトの名無しさん
2015/06/23(火) 09:58:29.46ID:9r3RXp4j0292デフォルトの名無しさん
2015/06/23(火) 15:14:18.02ID:k5+MSvOe具体的には、dlopenを使う処理とそうでない場合の違いです。
環境はlinux、gccです。プログラムのリンクの状況などが
分かるコマンドがありましたら併せて教えてください。
ご回答の程よろしくお願い致します。
0293デフォルトの名無しさん
2015/06/23(火) 16:36:25.05ID:I0ATeeuQlddでランタイムローダーがロードするものの一覧がとれる。
0294デフォルトの名無しさん
2015/06/23(火) 16:50:51.89ID:JUNHFyrA自前のコード(main() )に飛び込む前にローダーがエラーを返して終了しちゃう
ダイナミックロードは ロードとマップと呼び出しを自前のコードで行うので
リンク対象が存在しない場合に動作を分岐させたりすることが可能
0295デフォルトの名無しさん
2015/06/23(火) 16:59:26.40ID:WxAOywusダイナミックリンクはソースコード上のシンボルと、ライブラリのシンボルが結びつけられて、
実行時に自動的にライブラリがロードされる。
dlopen() を使う方は、実行時にライブラリ名、使用するシンボルを決定できる。
なんで、プラグインの実装はこれを使えば簡単にできたりする。
あるプログラムがあって、複数の別プログラムと通信するときなんかは、
通信部分をこんな実装にしたりする。
0296デフォルトの名無しさん
2015/06/23(火) 19:59:53.57ID:p7ULLFoK勉強して習いました。ということはhelloworldが実行されている最中もポートって
いうのは開いているんでしょうか?そのポートを調べる事は可能ですか?
0297デフォルトの名無しさん
2015/06/23(火) 20:54:10.62ID:Yra6/pdr> プログラムは全てポートがあるってのを
> 勉強して習いました。
どこで習ったんだよ...
0298デフォルトの名無しさん
2015/06/23(火) 21:24:28.48ID:p7ULLFoKアプリがそれぞれポートというシンボルを持ってるって聞きましたが違うんですか?
メールが開いてます→ある数値のポートが開いてる
ペイントが開いてます→ある数値のポートが開いてる
じゃぁhelloworld.exeというhelloworldを出力するアプリケーションにも
ポートがあるのではないかと思うのですが間違いでしょうか?
0299デフォルトの名無しさん
2015/06/23(火) 21:26:32.71ID:i2r6Oae20300デフォルトの名無しさん
2015/06/23(火) 21:37:02.86ID:tg0Hi2QC0301デフォルトの名無しさん
2015/06/23(火) 21:52:35.05ID:x6cWTlKo後"プログラムが持っている"って表現に違和感あるし。
halt
ってだけのプログラムにポートと呼べるものは含まれているのかね。
0302デフォルトの名無しさん
2015/06/23(火) 21:56:16.88ID:p7ULLFoKポートはアプリ間通信のために必要って本に書いてます。
別のパソコンとの通信に必要なもの=IPアドレス
アプリ間通信のためにそれぞれのアプリが持ってるもの=ポート番号
つまりhelloworld.exeはアプリだからポート番号を持ってると考えました。
違いますか?
0303デフォルトの名無しさん
2015/06/23(火) 21:58:15.94ID:i2r6Oae20304デフォルトの名無しさん
2015/06/23(火) 22:04:04.49ID:p7ULLFoKどういうときにポートが貸与されるんでしょうか?
よくわからないんです。ちなみに基本情報の本で勉強しました。
0305デフォルトの名無しさん
2015/06/23(火) 22:07:22.01ID:Y47RauLa0306デフォルトの名無しさん
2015/06/23(火) 22:31:45.97ID:HChqJ3xP動的確保により作成した2次元配列をユーザ定義関数へ受け渡す際、
関数の仮引数はどのように宣言すればよいのでしょうか?
ukewatasi(double **x)
のようにしてみたのですが、プログラムが停止してしまいました。
よろしくお願いします。
0307デフォルトの名無しさん
2015/06/23(火) 22:39:28.45ID:fUDxTJnNプロセス間通信のサンプルソース読んでフロチャートぐらい描いてから質問しろ。
0308デフォルトの名無しさん
2015/06/23(火) 22:41:39.07ID:i2r6Oae2動的確保したデータの型は?
0309デフォルトの名無しさん
2015/06/23(火) 22:48:15.37ID:HChqJ3xPdouble型で**xを作成して、xを関数に受け渡しました。
ukewatasi(double **x)
int main(){
double **x;
ukewatasi(x);
}
のような感じです。
0310デフォルトの名無しさん
2015/06/23(火) 22:50:50.38ID:x6cWTlKo> 動的確保により作成した2次元配列
とは、こんな感じで確保したの?
(double(*)[123])malloc(n*123*sizeof(double))
であれば
double(*a)[123]
みたいに渡せばいい。
0311デフォルトの名無しさん
2015/06/23(火) 22:51:11.69ID:HChqJ3xP関数の内容は渡された2次元ポインタ?に対する動的確保です。
動的確保をユーザ定義関数内で行おうとしています。
0312デフォルトの名無しさん
2015/06/23(火) 22:51:27.89ID:qkxeTacg受け渡しはそれで問題無いんじゃないか。
その後の配列の使い方に問題有るんじゃないか?
0313デフォルトの名無しさん
2015/06/23(火) 22:55:23.42ID:HChqJ3xPプログラム内の主な部分をとりあえず消してみたので、その後の処理は
for(i=0;i<n;i++)free(x[i]);
free(x);
を使って開放しているだけにしてあります。
0314デフォルトの名無しさん
2015/06/23(火) 23:10:53.90ID:DrRN54sL引数の書き換えによる呼び出し元への渡しじゃなく
戻り値じゃだめなの?
int を引数書き換えで戻す func(int *a) { *a = こっちで設定した値 }
型type を 引数書き換えで戻すのは func(type *a) になる
2次元配列(ポインタ配列) double** を type とみなすのなら
func(double*** a) になるんじゃないか?
0315デフォルトの名無しさん
2015/06/23(火) 23:21:43.47ID:DrRN54sL>>314 の 型type を 引数書き換えで戻すのは func(type *a) になる
呼び出し元は 型type の変数 a を用意して func(&a) と呼び出す
⇒ double **x を用意し、func(&x) で書き換えてもらう
0316デフォルトの名無しさん
2015/06/23(火) 23:23:43.71ID:x6cWTlKo>>313
それでいいよ。としか答えられないんだが。
自分の問題点を単純化して、
省略せずmain関数込みで晒すしかないんじゃね?
0317デフォルトの名無しさん
2015/06/23(火) 23:28:11.11ID:DrRN54sL0318デフォルトの名無しさん
2015/06/23(火) 23:33:51.75ID:HChqJ3xPvoid 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;
}
0319デフォルトの名無しさん
2015/06/23(火) 23:38:22.26ID:Hn8bvGAp0320デフォルトの名無しさん
2015/06/23(火) 23:47:19.57ID:x6cWTlKo#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;
}
0321デフォルトの名無しさん
2015/06/24(水) 00:05:36.88ID:e9gtZvXy0322デフォルトの名無しさん
2015/06/24(水) 00:39:48.68ID:edfJthnpgetm() の戻り値をアドレス値(のコピー)にした方がいいんじゃない。
double **getm(int n) {
double **x;
:
return x;
}
int main(void) {
:
double **a;
:
a = getm(n);
:
}
0323デフォルトの名無しさん
2015/06/24(水) 00:49:44.96ID:TqWBqUYfvoid func(int x) { x=5; }
0324デフォルトの名無しさん
2015/06/24(水) 01:41:06.19ID:x8P9P79sopenしたのに「あれっ?」というのに似てるな
void func(FILE *fp)
{
...fpをopenする処理
}
func()から戻ってもfpに代入されたFILE構造体がopenされてない
(正確にはfunc()内でopenして代入した値がどこかで遊んでいる)
正しくは
void func(FILE **fp)
{
*fp=fopen(////
}
とやるかC++なら
void func(FILE *&Fp)
まあこんなアホな書き方は普通しないけど
0325デフォルトの名無しさん
2015/06/24(水) 04:19:45.17ID:psgmC6/v0326デフォルトの名無しさん
2015/06/24(水) 08:11:51.66ID:aN9Ts3NW*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);
}
}
}
0327デフォルトの名無しさん
2015/06/24(水) 17:58:36.34ID:u4ZdF9De�Aif(*argv[1] == "ch")
この書き方何が違うんですか?
0328デフォルトの名無しさん
2015/06/24(水) 18:02:18.92ID:5nU4RVUe0329デフォルトの名無しさん
2015/06/24(水) 18:38:26.93ID:3Hv0NUBx"ch" "ch"という文字列が格納されているアドレス 環境依存だが16/32/64bit数値
0330デフォルトの名無しさん
2015/06/24(水) 18:46:20.02ID:FOAJx/zB出来上がったものをC言語として纏めたからそれをC言語と呼んでいるのか
こういう機械語への変換を約束するように設計されたのがC言語がなのかどっちなのでしょうか?
ようはコロンブスの卵みたいな問題ですが
0331デフォルトの名無しさん
2015/06/24(水) 18:49:40.49ID:hCh+/iKvその答えが分かったとして
何か役に立つのか?
0332デフォルトの名無しさん
2015/06/24(水) 18:56:12.91ID:e9gtZvXyISO/IEC 9899:2011
0333デフォルトの名無しさん
2015/06/24(水) 19:28:44.29ID:FOAJx/zBコンパイラの勉強してます^^
例えば
graph.hってありますよね?
C言語にはGUIが無いからライブラリとしてインポートして
使えるだけでgraph.h自体はC言語じゃないけど、何故かC言語扱いされてますよね
みんなどこまでをC言語って呼ぶか定まってないのではないかと思います。
設計者自身もそう思ってるんじゃないでしょうか?
0334デフォルトの名無しさん
2015/06/24(水) 19:32:09.49ID:hCh+/iKvそのファイルの中にc言語のソースコードがはいっていれば.hでも何でも全部c言語だろ。
0335デフォルトの名無しさん
2015/06/24(水) 19:40:36.46ID:wt32uzVz0336デフォルトの名無しさん
2015/06/24(水) 19:46:26.31ID:FOAJx/zBいや関数とかはC扱いになるのかなと
drawcircleとかいう関数はCのGUI関数なのか
ライブラリから呼ぶCのものではないGUI関数なのか
0337デフォルトの名無しさん
2015/06/24(水) 19:54:20.47ID:cFIj+m2b0338デフォルトの名無しさん
2015/06/24(水) 20:08:54.30ID:FOAJx/zB0339デフォルトの名無しさん
2015/06/24(水) 20:09:42.03ID:3Hv0NUBx0340デフォルトの名無しさん
2015/06/24(水) 20:18:53.14ID:e9gtZvXy0341デフォルトの名無しさん
2015/06/24(水) 20:25:42.13ID:FOAJx/zB正式にC言語の関数といえるのか知りたいです。
例えばfork()はシステムコールであってC言語ではないけどCのコードによく
出てくるじゃないですか?
そういう事です。
0342デフォルトの名無しさん
2015/06/24(水) 20:26:12.07ID:FOAJx/zB正式にC言語の関数となるんですか?
0343デフォルトの名無しさん
2015/06/24(水) 20:31:32.11ID:e9gtZvXy0344デフォルトの名無しさん
2015/06/24(水) 20:34:00.48ID:5/GXLIV80345デフォルトの名無しさん
2015/06/24(水) 21:32:22.70ID:3Hv0NUBx0346デフォルトの名無しさん
2015/06/24(水) 21:40:22.84ID:3Hv0NUBx正式な「C言語の関数」の定義は?
0347デフォルトの名無しさん
2015/06/24(水) 22:05:22.37ID:zNYvxzaB0348デフォルトの名無しさん
2015/06/24(水) 22:24:01.80ID:mSDBMbUW>>218
0349デフォルトの名無しさん
2015/06/24(水) 22:37:35.23ID:BVqVeXIZ自分の中のC言語の定義は
・計算処理が高速(ダイレクトに機械語へ変換するから)
・グラフィック出力が出来ない(C開発環境における端末の多くは図形描画できないため(cygwinなど))
・文字入力、出力はアスキーコードの範囲内(255文字までしか対応していないコンパイラが殆ど)
つまりCは計算をして出力する、まさに計算専用の言語だという認識です。
0350デフォルトの名無しさん
2015/06/24(水) 22:41:14.75ID:5/GXLIV8キミのその定義のC言語は、ここで話題にしてるC言語とは違うね。
とっとと出てけ、二度と来るな。
0351デフォルトの名無しさん
2015/06/24(水) 22:45:41.35ID:BVqVeXIZこのスレは文法的な話が多いしナチュラルなC言語の話がメインじゃないですか?
後 C言語規格で検索かけました。
アメリカはANSI
日本はJISが
規格に関して管理してるってことが分かりました。
どっちの権限が強いとかあるんでしょうか?
Cって日本が開発したものじゃないからアメリカANSI
の承認がないと自由に開発できない、変更できないとかあるんでしょうか?
それとも並行して自由なCのタイプを作っていっていいとか。
0352デフォルトの名無しさん
2015/06/24(水) 23:08:27.15ID:YYL+BoO/0353351
2015/06/24(水) 23:11:06.20ID:BVqVeXIZ0354デフォルトの名無しさん
2015/06/24(水) 23:17:53.88ID:YYL+BoO/ttp://www.bohyoh.com/CandCPP/C/index.html
ttp://www.comm.info.eng.osaka-cu.ac.jp/~sugi/C_lang2/C1.html#anchor265686
これ以上は専門書探せ。もう疲れた…。
0355デフォルトの名無しさん
2015/06/24(水) 23:26:38.68ID:zNYvxzaB0357デフォルトの名無しさん
2015/06/24(水) 23:54:49.59ID:5DYqddEm違う意味なら知らん
0358351
2015/06/25(木) 00:03:15.94ID:sP9h+oqg言語仕様の中で標準ライブラリが定義されてるんですよね?
てことは言語仕様にないfork()やdrawcircle()はC言語の関数と言っては
ダメじゃないんですか?
0359デフォルトの名無しさん
2015/06/25(木) 00:14:54.02ID:0iBjMS7W0360デフォルトの名無しさん
2015/06/25(木) 00:16:51.58ID:0iBjMS7W0361デフォルトの名無しさん
2015/06/25(木) 04:32:18.38ID:Li5opHJV0362デフォルトの名無しさん
2015/06/25(木) 07:43:04.30ID:cFsyQBWH0363デフォルトの名無しさん
2015/06/25(木) 09:28:35.57ID:KIT3ByGG0364デフォルトの名無しさん
2015/06/25(木) 09:46:28.93ID:UIqr32+m0365デフォルトの名無しさん
2015/06/25(木) 11:17:24.92ID:U+zmiSvDそんな苦労してまで、三項演算子使わなくても良いのに。
0366デフォルトの名無しさん
2015/06/25(木) 11:27:48.98ID:U+zmiSvDどんな言語でも、
文法としては正しくても、文章としては間違ってる事はいくらでもある。
0367デフォルトの名無しさん
2015/06/25(木) 11:55:06.12ID:3kYUeLcc0368デフォルトの名無しさん
2015/06/25(木) 21:25:49.37ID:sP9h+oqg次の楽しみって何になるんですかね?イマイチできる人のモチベーションがどこにあるか
分からないです。Cは一生かけても分からないくらい深いっていいますけど、未解決問題じゃあるまいし
単なる処理規則の集合なわけであって、どこらへんに奥深さがあるんでしょうかね。
0369デフォルトの名無しさん
2015/06/25(木) 21:32:37.30ID:wU+kaldG言語に奥深さは無い。まったくナンセンスな問題意識。
0370デフォルトの名無しさん
2015/06/25(木) 21:34:04.17ID:gUXvHM4p0371デフォルトの名無しさん
2015/06/25(木) 22:07:39.16ID:XxFekGl2設計。
プログラミングが楽しいなんて言ってるうちは初心者。
0372デフォルトの名無しさん
2015/06/25(木) 22:15:45.28ID:0iBjMS7W全ての仕事がそうだよ。所詮誰かがやったことの後追い。
それでもやったことが無いことを体験して、作ったことの無いものを作って、
満足できなかったものが少しだけマシになるのは楽しいよ。
自己満足といえばそう。
自己満足をポジティブに捉える人が楽しめ進められ、
ネガティブに捉える人は進まない。
あなたもあれは違う、コレはダメ、それはつまらないとネガティブで雁字搦めになってないで
とりあえずやってみる、とりあえず進めてみて、経験を自分の糧にしてみなさい。
0373デフォルトの名無しさん
2015/06/25(木) 22:19:21.28ID:Li5opHJV他人の作ったもののテストも楽しい
0374デフォルトの名無しさん
2015/06/25(木) 22:21:02.82ID:wU+kaldG0375デフォルトの名無しさん
2015/06/25(木) 23:40:03.58ID:/iOjq/uQ0376デフォルトの名無しさん
2015/06/25(木) 23:45:44.08ID:DMKfpdxo高いお金をもらうのがモチベーション
プログラミングはその手段の一つ
一つの言語を深くやるでも、多くの言語やるでもいいし、マネージメント、テストエンジニアリング、ドキュメンテーションでもいいし、自分の価値が上がる手段を増やせばいい
何も考えずに業務をこなすだけならやめた方がいい
0377デフォルトの名無しさん
2015/06/26(金) 00:27:42.12ID:7ZHtA1tf0378デフォルトの名無しさん
2015/06/26(金) 07:51:30.19ID:58TwEZZ00379デフォルトの名無しさん
2015/06/26(金) 08:56:47.59ID:P2ouCsE5次の楽しみって何になるんですかね?小説とか書く人のモチベーションがどこにあるか
分からないです。言葉は一生かけても分からないくらい深いっていいますけど、未解決問題じゃあるまいし
単なる文字記号の集合なわけであって、どこらへんに奥深さがあるんでしょうかね。
0380デフォルトの名無しさん
2015/06/26(金) 09:25:10.82ID:gBS6mhz7空行を検出したら終了するように作るとか、任意の入力は必ずファイルから与えることにするとか、手は色々ある。
0381デフォルトの名無しさん
2015/06/26(金) 11:34:55.72ID:P2ouCsE5ありえない値(-1とか9999とか)を終端マークとして使うのが古典的な方法
最初の入力一件をデータ数とみなすとより無難
0382デフォルトの名無しさん
2015/06/26(金) 13:01:22.36ID:HCrYWUwt0383デフォルトの名無しさん
2015/06/26(金) 13:18:07.33ID:r1qkCt6W(平均値のように)
入力値を一度きりしか使わず、即捨て出来る式で結果を表現できるなら
入力毎に結果を書く
0384デフォルトの名無しさん
2015/06/26(金) 13:46:28.74ID:58TwEZZ0char mojiretu[]="あいう";
char kititori[4]={0};
kiritori[0]=mojiretu[4];
kiritori[1]=mojiretu[5];
printf("&s\n",kiritori);
0385デフォルトの名無しさん
2015/06/26(金) 14:48:37.18ID:HCrYWUwt文字コードが2バイトを使ったってことですね。気づきませんでした。まだやっていませんが多分出来そうです。ありがとう
0386デフォルトの名無しさん
2015/06/26(金) 16:25:25.05ID:58TwEZZ0× &s
○ %s
何やってるんだorz
0387デフォルトの名無しさん
2015/06/26(金) 19:54:12.94ID:oshtnfFsライブラリなどのコードがいっぱいあると途端に読めなくなるのって
どういった能力が欠如してるからですかね?僕の事です。
0388デフォルトの名無しさん
2015/06/26(金) 20:02:28.58ID:YZgXVwpx0389デフォルトの名無しさん
2015/06/26(金) 20:11:34.53ID:58TwEZZ00390デフォルトの名無しさん
2015/06/26(金) 20:12:11.42ID:oshtnfFs調べても書いてないんですよ
そういう場合どうしたらいいですか?
0391デフォルトの名無しさん
2015/06/26(金) 20:38:50.73ID:/lXarR0v0392デフォルトの名無しさん
2015/06/26(金) 20:44:52.95ID:oshtnfFs向いてないんですかね…
プログラマやめましょうか…
後仕事のプログラムって再帰ばっかりなんですよ
上司に聞いたら、再帰で複雑にしておいたほうが機密性が高くなるとのことです。
そんなことあるんでしょうか…
殆ど意味分からないんですよプログラムの内容が
0393デフォルトの名無しさん
2015/06/26(金) 20:56:10.89ID:WXmHQpYf0394デフォルトの名無しさん
2015/06/26(金) 20:56:28.21ID:oshtnfFs相互再帰にしてほぼ解読不可能っていう…
趣味を仕事に持ち込むのは本当にやめてほしいです
0395デフォルトの名無しさん
2015/06/26(金) 20:57:03.78ID:oshtnfFs相互再帰もですか?
読みにくくなるだけで何のメリットがあるのかわかりません
0396片山博文MZ ◆T6xkBnTXz7B0
2015/06/26(金) 20:59:57.34ID:xjgOsjgG0397デフォルトの名無しさん
2015/06/26(金) 21:00:41.26ID:oshtnfFsプログラムの容量が小さくなることだそうです
0398デフォルトの名無しさん
2015/06/26(金) 21:03:03.00ID:WXmHQpYf個人的な意見だけど、再帰のが簡単にキレイにかける(ときもある)
まあ、おいらはCもやるけどC専門じゃないからなぁ
Cじゃ再帰は使わないお約束、みたいな感じだったらごめんね
0399デフォルトの名無しさん
2015/06/26(金) 21:04:00.77ID:oshtnfFs再帰は解読しにくいってことですね
0400デフォルトの名無しさん
2015/06/26(金) 21:11:35.75ID:58TwEZZ0ヘルプを見る。解説を見る。
作ったやつ、使ったことのあるやつに聞く。
でなければサンプルソースを解析。
それでもわからなら後回しにするか、解らないまま変に弄らずに使う。俗に言う「おまじない」。
0401デフォルトの名無しさん
2015/06/26(金) 22:07:05.75ID:gBS6mhz7うちの場合は、パフォーマンスを上げるのが主目的であることが多いから難読性なんて肥やしにもならん。
0402デフォルトの名無しさん
2015/06/26(金) 22:07:51.27ID:gBS6mhz7げげ。
0403デフォルトの名無しさん
2015/06/26(金) 23:13:37.04ID:3MIHB1Gottp://9cguide.appspot.com/13-q.html#S2
このサイトの 2-1 のプログラムについてわからないところがあります。
int i,sum = 0,avg; とありますがこれだとsumに0を代入して初期化することができてないのではないでしょうか?
あらかじめavgに入っていた謎の値がそのままsumに代入されてしまうということではないのですか?
もしそうならifの中で配列の合計を正しく求められないと思うのですが...
どうかよろしくお願いします。
0404デフォルトの名無しさん
2015/06/26(金) 23:13:49.20ID:oshtnfFsクイックソートの再帰は末尾再帰じゃないから分かりやすいんですが、
ハノイの塔の再帰はすごい分かりにくい
0405片山博文MZ ◆T6xkBnTXz7B0
2015/06/26(金) 23:21:05.76ID:xjgOsjgGC言語の文法は各演算子の結合の強さを決めており、文法上のあいまいさをなくしている。
int i,sum = 0,avg;
のi,sum = 0,avgは、iとsum = 0とavgの3つに分解されて解釈される。
0406片山博文MZ ◆T6xkBnTXz7B0
2015/06/26(金) 23:31:03.25ID:xjgOsjgG再帰はスタックをFILOのように使って処理をしている。
関数呼び出しのときに戻り先と実引数をスタックに格納し、関数から戻る頃にスタックから解放される。
FILOのデータ構造を使えば再帰は非再帰に書き換えられる。
0407デフォルトの名無しさん
2015/06/26(金) 23:53:28.51ID:3MIHB1Goなるほど、納得がいきました。ありがとうございました!
0408デフォルトの名無しさん
2015/06/27(土) 05:59:25.89ID:svdtev72ちげーよ。
そこで現れている,はカンマ演算子じゃない。
なので演算子の優先順位は適用されない。
0409デフォルトの名無しさん
2015/06/27(土) 06:25:17.74ID:+UMgIw/20410デフォルトの名無しさん
2015/06/27(土) 07:41:18.81ID:nRUZ97+m否定だけでなくちゃんと解説しろよ。
0411デフォルトの名無しさん
2015/06/27(土) 08:59:18.05ID:culNkOYR0412デフォルトの名無しさん
2015/06/27(土) 09:16:18.76ID:KUf9kyhl得意顔で自演するようなスレに成り果てちゃったの?(´・ω・`)
0413デフォルトの名無しさん
2015/06/27(土) 12:27:05.83ID:svdtev72元質問者の疑問は、,がカンマ演算子でない事で解決する。
バカにはわからなかったかな?
0414デフォルトの名無しさん
2015/06/27(土) 12:48:36.17ID:XN+wGsW90415デフォルトの名無しさん
2015/06/27(土) 17:48:41.80ID:svdtev720416デフォルトの名無しさん
2015/06/27(土) 18:16:17.50ID:8NBUCr+K質問投げっぱなしで回答への反応がないやつ。
態度のでかいヤツ。
消えて欲しいよ。
0417デフォルトの名無しさん
2015/06/27(土) 18:42:50.69ID:wwmvwXJ3簡単なコミュニケーションや、簡単な計算してるとき活発になるらしい。
でもC言語のプログラム読んでて、難しいなって思って粘り強くコード見ていく事って
上達にかかせないですよね?じゃぁ頭を活発にしてC言語読むにはどうしたらいいんでしょう?
常に何かをひらめきながら読み進めるとか色々工夫あると思うんですがみなさんが心がけてることなんですか?
0418片山博文MZ ◆T6xkBnTXz7B0
2015/06/27(土) 19:19:00.59ID:JmAIGVSo0419デフォルトの名無しさん
2015/06/27(土) 20:59:39.13ID:K06hVkJE物凄いんですか?期待でワクワクします。
0420片山博文MZ ◆T6xkBnTXz7B0
2015/06/28(日) 12:49:26.79ID:7OyeVowGhttp://katahiromz.web.fc2.com/imaio/
コンパイラーは、VC++ 2013、MinGW、BCC55に対応。
画像形式は、BMP, JPEG, GIF, PNG, TIFF, アニメーションGIFに対応。
よろしくね。
0421デフォルトの名無しさん
2015/06/28(日) 13:50:10.46ID:TJWf2eSN1
2
7
4
5
-5579872
-144112812
-144135884
-142922460
Exited: ExitFailure 11
マージソートのプログラムだけど、これどこがおかしいですか?
0422デフォルトの名無しさん
2015/06/28(日) 13:51:28.84ID:TJWf2eSNこのコードの部分で指摘していただければ嬉しいです。
�@inの取り方も正しい
�A2回再帰を読んでる
�B作業用配列x,yも正しいはず
何故こんなおかしな結果になるんでしょう?
0423デフォルトの名無しさん
2015/06/28(日) 14:37:03.55ID:4PA/u/+9int a[9];
で
for(i=0; i<=8; i++)
と書く奴のプログラムなんて見る気もしないな・・・
0424デフォルトの名無しさん
2015/06/28(日) 14:39:21.94ID:OeLQkQMR君は素人だな。
本物のプログラマーはこう書くんだよ。
知らないのか?
0425デフォルトの名無しさん
2015/06/28(日) 14:45:18.81ID:4PA/u/+90426デフォルトの名無しさん
2015/06/28(日) 15:06:36.31ID:T2p7HOxZfor(i=0; i<sizeof(a)/sizeof(int); i++)
って書くんじゃないの?
0427デフォルトの名無しさん
2015/06/28(日) 15:26:15.96ID:O8XywhU9-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に格納してるはず
それなのに何故こういうエラーが出るのでしょうか?
0428デフォルトの名無しさん
2015/06/28(日) 16:18:39.59ID:x/T4p/ZNhttp://ideone.com/coXz7X
ソートされてないし、配列の前半にしかデータが入ってない
後半のおかしな値はゴミだな
0429デフォルトの名無しさん
2015/06/28(日) 19:13:28.63ID:O8XywhU9helloworldCでかいてrunかけてもエラー出るんだが…
うっとうしいな、codepad落ちてるし…
氏ねって…
0430デフォルトの名無しさん
2015/06/28(日) 19:19:09.66ID:jQw88VwYrunしない状態で、まず貼ってみて
0431デフォルトの名無しさん
2015/06/28(日) 19:22:07.72ID:O8XywhU9>>421です。でも落ちてるんですよ、本当腹立つ…時間無いって言うのに…
何で落ちるんだよこういうときにかぎって…氏ね
0432デフォルトの名無しさん
2015/06/28(日) 19:48:13.59ID:jQw88VwYhttp://ideone.com/
一番上の帯の new code をクリック
コードを入力するテキストエリアの下の左、「Java ▲」をクリックし、 Cを選択
これでできませんか?
0433デフォルトの名無しさん
2015/06/28(日) 20:05:11.93ID:FN6ToZobコンパイルはできたのですが実行すると性別を聞いてもらえません...
どこがいけないのでしょうか?
読みづらいかと思われますがどうかよろしくお願いします。
0434デフォルトの名無しさん
2015/06/28(日) 20:20:43.27ID:a/YHn9n/ideoneの場合
そもそもStandard input is emptyが出るんですが
これ何ですか?
inputなんてしないっつの…
うっとうしいな
0435デフォルトの名無しさん
2015/06/28(日) 20:33:37.27ID:jQw88VwYscanf("%s%c", data[i].name);
scanf("%d%c", &data[i].old);
scanf("%c%c", &data[i].sex);
0436デフォルトの名無しさん
2015/06/28(日) 20:33:48.76ID:6vwCSsHCああ、こういうコードだったのね。元のコードは 503 が返ってくるからもやもやしてた。
これってこんな問題?
・41, 42 行で再帰呼び出しでソートしてるのに 49, 52 行でコピーしてるのはソート前の配列の値
・57 行で比較してる配列のインデクスが、58, 60 行でインクリメントした結果、有効なデータより後の要素を示すようになる
※最初の呼び出しの m 関数の場合、x と y にはそれぞれ a 配列の 0-4, 5-8 番目の要素が入っているけど、
仮に 0-4 番目にすべて 5-8 番目の要素の値よりも小さな値が入っていれば 6 回目の比較で
C では初期化されていない、C# の場合は 0 が入っている要素と比較してしまうため正しい結果が出ない
自分は関係ないけどちょっとすっきりした。
0437デフォルトの名無しさん
2015/06/28(日) 21:02:15.98ID:tYSRI250本物のプログラマがループカウンターに使うのはIだ。iなんて使うのはキッシュイーター。
0438デフォルトの名無しさん
2015/06/28(日) 21:34:14.33ID:bg6lBFSS%s, %d に %c を後付けするとおかしくなるのでは?
0439デフォルトの名無しさん
2015/06/28(日) 21:43:10.93ID:bg6lBFSSなるほど,こんな感じになおせばいいのか
https://ideone.com/fiD3Wp
>>431
もとのコードは
最初から r=0, l = 2 のタイミングで再帰コールをしたあとマージ作業ではじめて問題が出る
x[] の有効なデータを使い切ったのに,また x[] から値を取り出してしまう
0440デフォルトの名無しさん
2015/06/28(日) 22:22:40.69ID:a/YHn9n/なるほど、ってことは
x[i]のインデックスを最終地点まで覚えておいてそれ以降はx[i]の値が
-23432432とかになってるから代入しないとダメってことですね?
だからif(x[xi]<0)even if(x[xi]<y[i])b[i]=y[xi];
ってことですか?
0441デフォルトの名無しさん
2015/06/28(日) 22:47:50.95ID:D2RtZ38Kぐぐればいろいろ出てくるね
0442デフォルトの名無しさん
2015/06/28(日) 22:55:02.80ID:DfNXErlF0443デフォルトの名無しさん
2015/06/28(日) 22:57:58.71ID:6vwCSsHCそしてそれ以前にデータをグローバルな変数に入れて使い回すなよ。
再帰はそれでなくても追うのが面倒なのにこんなバグの度に余計に疲れるやろ。
0444デフォルトの名無しさん
2015/06/28(日) 23:10:33.93ID:r22I8doOhttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11121105256d
でベストアンサーになっているけど、もっとどうにかならないかな
0445NAS6 ◆I4OWyGBdcY
2015/06/28(日) 23:55:57.87ID:QnH82WnG筆記法による数値表現
答えは12A(16)でしょ
この電卓でできるよ
ソースも全部あるからね
0446NAS6 ◆I4OWyGBdcY
2015/06/28(日) 23:57:33.04ID:QnH82WnG0447デフォルトの名無しさん
2015/06/29(月) 00:04:36.27ID:R4Z+rP4Phttps://ideone.com/QEpJ2a
>>445
それは x = 2 のときなのでは?
0448NAS6 ◆I4OWyGBdcY
2015/06/29(月) 00:05:02.97ID:6ujtYEpl0449NAS6 ◆I4OWyGBdcY
2015/06/29(月) 00:30:20.77ID:6ujtYEplのbinフォルダとreadme入れて再UPした
0450NAS6 ◆I4OWyGBdcY
2015/06/29(月) 01:02:48.54ID:6ujtYEpl2(10)^157(10)=182687704666362864775460604089535377456991567872(10)
0451デフォルトの名無しさん
2015/06/29(月) 01:47:30.45ID:1CmvgFN6323=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) も計算しなきゃいけないし、
そのとき、ベキ剰余演算をするので、この方法をプログラムに組み込んでも
あまり便利じゃないか。
普通の電卓片手に手計算ではうまくいったけど。
0452NAS6 ◆I4OWyGBdcY
2015/06/29(月) 02:25:57.85ID:6ujtYEpl0453NAS6 ◆n3AmnVhjwc
2015/06/29(月) 02:30:05.17ID:6ujtYEpl0454NAS6 ◆n3AmnVhjwc
2015/06/29(月) 02:40:40.71ID:6ujtYEpl>>452
5+5+5+9+0+6+0+5+6+6+5+5+5+5+2+3=72(3の倍数)
>>453
5の倍数
0455NAS6 ◆n3AmnVhjwc
2015/06/29(月) 03:41:32.54ID:6ujtYEplデータを数値文字列として持って
10進数値文字列に変換して
筆記法で10進数値文字列の四則演算をして
答えのn進数数値文字列に戻しているだけ
メインメモリと計算時間があれば桁制限なしだと思う
0456NAS6 ◆n3AmnVhjwc
2015/06/29(月) 03:48:30.63ID:6ujtYEpl0457NAS6 ◆n3AmnVhjwc
2015/06/29(月) 03:58:13.67ID:Ck1XM2XL手計算の方が効率が良いし
0458NAS6 ◆n3AmnVhjwc
2015/06/29(月) 04:09:40.90ID:Ck1XM2XL手計算は重いっちゃ重いけど
暗号の砦は、桁数だった気がする
0459NAS6 ◆n3AmnVhjwc
2015/06/29(月) 04:12:10.40ID:Ck1XM2XL0460デフォルトの名無しさん
2015/06/29(月) 04:32:30.56ID:j6EGBqV60461NAS6 ◆n3AmnVhjwc
2015/06/29(月) 05:32:14.23ID:6ujtYEplその分からなさの砦が巨大素数じゃなかった?
0462NAS6 ◆n3AmnVhjwc
2015/06/29(月) 05:45:37.17ID:6ujtYEpl参考HP
俺電卓で計算
349052951084765094914784961990389
8133417764638493387843990820577(10)
*
327691329932667095499619881908344
61413177642967992942539798288533(10)
=
114381625757888867669235779976146
612010218296721242362562561842935
706935245733897830597123563958705
058989075147599290026879543541(10)
0463NAS6 ◆n3AmnVhjwc
2015/06/29(月) 06:01:42.90ID:6ujtYEpl素数列挙してテーブルを作って
掛けた値の予測で近そうなのを
総当たりすれば良いだけじゃないの?
0464デフォルトの名無しさん
2015/06/29(月) 06:08:45.81ID:p1K+5j1ba * x mod 323をa<323の範囲で計算しておけばいいだけだろ?
(323*k + x) ^ n = x ^ n mod 323だから、
最初はx*x mod 323の値を上のaとし順に*xしていったらいいだけ。
掛け算と剰余は計算済みとしてint型配列の走査だけでできる。
0465NAS6 ◆n3AmnVhjwc
2015/06/29(月) 07:18:13.78ID:6ujtYEplをやろうとしたら
キューのバッファ管理がint型だから
INT_MAX個の素数列挙までは結構簡単だけど
それ以上は大変なことに気が付いた
0466NAS6 ◆n3AmnVhjwc
2015/06/29(月) 07:22:28.98ID:6ujtYEpl素数列挙って大変だね
0467NAS6 ◆n3AmnVhjwc
2015/06/29(月) 07:26:04.15ID:6ujtYEpl尋常な方法では出来ないなぁ
0468デフォルトの名無しさん
2015/06/29(月) 07:32:19.32ID:CevnLgip0469NAS6 ◆n3AmnVhjwc
2015/06/29(月) 07:48:51.08ID:6ujtYEplVB.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乗になってるのか・・・
0470デフォルトの名無しさん
2015/06/29(月) 09:09:21.08ID:dlw1e8seこんなもので現実的な時間で素因数分解されるなら
世界中でRSA暗号は破られまくり
0471デフォルトの名無しさん
2015/06/29(月) 13:47:55.43ID:cTVGuqBX0472デフォルトの名無しさん
2015/06/29(月) 14:33:14.02ID:MBINl1TZbuff[2] = (BYTE)( (0x4a40020 & 0x00ff0000) >> 16);
こういう場合にbuff[2]に入ってくる値はなにでしょうか
0473デフォルトの名無しさん
2015/06/29(月) 16:08:21.05ID:fgyEl+jQ不明。状況、環境次第で変わる。
0474472
2015/06/29(月) 16:20:03.90ID:fgyEl+jQ失敬。勘違いしてた。
0x4a40020 & 0x00ff0000 = 0x00a40000
0x00a40000 >> 16 = 0x000000a4
(BYTE) 0x000000a4 = 0xa4
つまり 0xa4
0475473
2015/06/29(月) 16:21:06.16ID:fgyEl+jQ× 472
○ 473
0476デフォルトの名無しさん
2015/06/29(月) 16:35:21.62ID:ns0CsOQ5だったらどーすんだよ。
0477デフォルトの名無しさん
2015/06/29(月) 16:39:16.90ID:k48kibIU邪推してしまうしな
0478デフォルトの名無しさん
2015/06/29(月) 17:15:49.50ID:MBINl1TZ0479デフォルトの名無しさん
2015/06/29(月) 17:18:23.17ID:MBINl1TZ0480デフォルトの名無しさん
2015/06/29(月) 17:29:07.35ID:k48kibIU& でチェックしてるとかなら、
0x4 は2進数で 0000 0100 だから下から3ビット目を調べてるんじゃないの?
0481デフォルトの名無しさん
2015/06/29(月) 17:42:41.37ID:fgyEl+jQ0482デフォルトの名無しさん
2015/06/29(月) 18:14:20.98ID:ns0CsOQ5int buff[3];
typedef char BYTE;
か。
0483デフォルトの名無しさん
2015/06/29(月) 20:36:06.22ID:w6B9cFRxa[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
何でですか…
なんでだぶってるんでしょうか?
http://www1.cts.ne.jp/~clab/hsample/Sort/Sort6.html
これは一つのtemp配列を使ってるだけで
自分はx[]とy[]にわけただけです。
何故同じ数がだぶってるんでしょうか?
0484483
2015/06/29(月) 20:37:37.98ID:w6B9cFRxお願いします。このコードを少し書き換えるだけで修正してください。
今まで間違えると全て書き直ししてたのが悪かったです。
全てリセットして書き直すとほんの少しの差異を見逃して感性が荒くなると思うので…
0485483
2015/06/29(月) 20:42:00.01ID:w6B9cFRx�@ちゃんとl>=rのときreturnしている
�Ax[]とy[]を比較して、小さいものからa[]につめている。
念のため、x[]とy[]が−じゃないときも考慮してる。
でも例えばxが0〜3、yが0〜2までのとき、ちゃんと
lは5までの範囲になるので、xのindexが4,yのindexが3になることは
ありえない
http://www1.cts.ne.jp/~clab/hsample/Sort/Sort6.html
とほとんど同じプログラムを書いたつもり
それなのに何故間違ってる…
まじで頭がおかしくなりそうです…
0486483
2015/06/29(月) 20:44:26.91ID:w6B9cFRxc+1からrまでがa[]の右半分に
入ってるから
それをx[] y[]に退避させて
a[]に入れなおしてるだけ
それなのに何故おかしな結果になるんでしょう?
x[],y[]のindexも増減も間違いない、お互い0から始まって
どちらかがa[]に詰められたら詰めた方のx(y)のindexを増やす
a[]のindexはlからrまで
何故?
何故?
ここまで抑えてるのにエラーが出る理由が分からなくて死にたいです
0487デフォルトの名無しさん
2015/06/29(月) 20:56:10.12ID:yBgp8aKq0488デフォルトの名無しさん
2015/06/29(月) 21:07:14.47ID:vSUkOanWえ???
http://www1.cts.ne.jp/~clab/hsample/Sort/Sort6.html
だってtemp(作業用)は初期化してないですよ?
僕はtempの代わりにx,yの二つの配列を用意したんです。
関数が呼び出されるたびに
int x[]
int y[]
としてるんだし、これは初期化と同じでは?
0489デフォルトの名無しさん
2015/06/29(月) 21:09:29.39ID:yBgp8aKq0490デフォルトの名無しさん
2015/06/29(月) 21:10:53.70ID:yBgp8aKq0491デフォルトの名無しさん
2015/06/29(月) 21:48:25.09ID:byKOSkwIhttp://codepad.org/ygFP51EW
>>484 は
「x[] が使い尽くされて y[] にまだ残っているとき,y[] から a[] にコピーする.」
「y[] が使い尽くされて x[] にまだ残っているとき,x[] から a[] にコピーする.」
というロジックがない
それではちゃんと動かない.
printf() を要所要所に入れて値の変化を追いかければわかる.
マージソートの大局的な感じは掴んでいるようだが,それだけではプログラムは書けない
要素が1個とか2個になったときにも,想定の動きをしているか確認したか?
0493デフォルトの名無しさん
2015/06/29(月) 22:28:37.75ID:vSUkOanW神様ありがとう
0494デフォルトの名無しさん
2015/06/29(月) 22:29:05.81ID:vSUkOanWhttp://www1.cts.ne.jp/~clab/hsample/Sort/Sort6.html
ifを多用してない…
何故だ
0495デフォルトの名無しさん
2015/06/29(月) 22:41:21.94ID:vSUkOanW1 2 3 4 (mid)6 3 2 1
まじかww
そういうことだったのか
tempが特殊な格納方法だったからか…
考えた人天才すぎる…
こんなカラクリよく思いついたな
0496デフォルトの名無しさん
2015/06/29(月) 22:46:39.12ID:vSUkOanW理屈っぽすぎる…
0497デフォルトの名無しさん
2015/06/29(月) 22:49:12.40ID:MsD9xqBP0498デフォルトの名無しさん
2015/06/30(火) 02:59:22.65ID:cdRwV9j9どこがいけないのでしょうか?よろしくお願いします。
ttp://i.imgur.com/zhbWIkV.png
0499デフォルトの名無しさん
2015/06/30(火) 03:59:21.23ID:W3oST2wAそりゃそうでしょ
>>324と同じ間違いをしている
int data_input(man** data);
あとは
scanf("%s", data[i].name);
を
scanf("%s", data[i]->name);
以下同様
元のプログラムのdata_inputはあくまでポインタのコピーを受け取るだけで、mainのdataは変化してないからね
0500デフォルトの名無しさん
2015/06/30(火) 04:06:34.36ID:W3oST2wAdata = (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));
ポインタのポインタは本来こういう使い方のためのものじゃないんだけど、するとしたらこれしかないし
構造体の中に入れて持って行った方が楽だよ
使う時は勘違いしやすいんで注意
0501デフォルトの名無しさん
2015/06/30(火) 04:59:46.09ID:cdRwV9j9なるほど!と思っていくつか直したのですがだめでした...
どこか余計なところまでいじってしまったのでしょうか...
ttp://codepad.org/8Jen5KgD
0502デフォルトの名無しさん
2015/06/30(火) 10:15:21.59ID:z66kzZiUmain()でman **dataと書くからだよ
それだとポインタの領域とポインタのポインタの両方の領域を確保しないと正しく動かない
ポインタのポインタにするのはdata_input()だけでいい
都合上C++になっちゃったけどソース上げておくんで読んでほしい
ただしnewとかiostreamとかvector使ってないんで読めるはず
http://codepad.org/bMtuP5cY
これコア吐いてるのは一つも入力がないからだね
そういう所も本当は直さないとね
0503デフォルトの名無しさん
2015/06/30(火) 10:45:55.96ID:5MEAi0u60x4a40020と0x00a40020は同じでしょうか?
それとも0x04a40020でしょうか?
0504デフォルトの名無しさん
2015/06/30(火) 10:57:36.68ID:TyU2TXj2そういう疑問に至った経緯を書いたほうが解決早いと思うよ
大体想像つくけど、違うか違わないかだけ答えても解決しないでしょ?
0505デフォルトの名無しさん
2015/06/30(火) 10:58:06.08ID:n/kvsNLi・Cは値渡ししかできない。ポインタ渡しとはアドレス値渡しの事。
・実引数と仮引数の違いを復習。
・ポインタ変数man *のアドレス値を関数data_input()に渡すので、引数の型はman **になる。
0506デフォルトの名無しさん
2015/06/30(火) 11:04:02.41ID:5MEAi0u6ウィキ上のとある仕様書に0x(4)a40020って書かれていて、
実際の処理で0x4a40020と書かれていて
意味がわからなくなりました。
0507デフォルトの名無しさん
2015/06/30(火) 11:14:11.03ID:TyU2TXj2もちろん数としては違う、前ゼロとかは10進と変わらん
Cで010 とか書いたら8進数だけどね。
0508デフォルトの名無しさん
2015/06/30(火) 11:20:16.98ID:XY9Cx3p4とりあえず、動くようにしたよ。
http://codepad.org/CJfhT28g
data_input()の中でも、ポインタの使い方があやふやだから復習すること。
37行目で何が違うか気づくはず。
40,43,45行目では配列方式の参照を、
47〜49は同じアドレスをポインタ演算で参照しておいたから参考にしてください。
0509デフォルトの名無しさん
2015/06/30(火) 11:21:29.33ID:9bukWkLk0510デフォルトの名無しさん
2015/06/30(火) 11:33:25.63ID:zX+VOIct(1-1)とか
0511デフォルトの名無しさん
2015/06/30(火) 11:34:34.41ID:gmyFPynn頭の 0 は落として 123 と書く
0512デフォルトの名無しさん
2015/06/30(火) 11:38:55.79ID:gmyFPynn仕様書との突合せで誤解を招くだろうから、そう書かない
0513デフォルトの名無しさん
2015/06/30(火) 11:54:57.93ID:5MEAi0u6ありがとうございました。
0514デフォルトの名無しさん
2015/06/30(火) 11:58:54.84ID:gmyFPynn0x4a40020 と 0xa40020 の両方がありえる ってことを
簡潔に書こうとしてるんでしょうよ
「仕様書はC言語でこのように書けという指令書ではない」ので
意図をくみとったうえでC言語でどうかくかを考えないとね (一般論)
0515デフォルトの名無しさん
2015/06/30(火) 12:31:12.87ID:+uB1KRi8もうそれ秋田
0516デフォルトの名無しさん
2015/06/30(火) 14:13:58.86ID:cdRwV9j9>>505
>>508
ありがとうございます、ついに動かすことができました。
まだ理解が追いついてない気がするのでもう一度じっくり自分で考えて見ます。
0517デフォルトの名無しさん
2015/06/30(火) 18:34:56.46ID:M6BHk1xU0518デフォルトの名無しさん
2015/06/30(火) 18:45:53.19ID:divopN930519デフォルトの名無しさん
2015/06/30(火) 19:39:01.81ID:9bukWkLkdouble absolute(double v)
{return v < 0 ? -v : v;}
0520デフォルトの名無しさん
2015/06/30(火) 20:28:37.11ID:NJOHGXYM特にCみたいな機械語に近い言語使いの人は。
これってやっぱりゲームみたいな分かりやすいのより、インフラシステムみたいに
厳格な社会の基盤のシステム構築のためのプログラミングのほうが敷居が高いと思う
からですか?
そしてゲームプログラミングとシステムプログラミングではやっぱり
後者のほうがレベルが高いんでしょうか?
プログラマーの方いれば教えて欲しいんですが
0521デフォルトの名無しさん
2015/06/30(火) 20:45:18.85ID:pel5ZbCo0522デフォルトの名無しさん
2015/06/30(火) 20:50:53.00ID:uqQrfQWf/: : : : : : /:::::::::::::::::::{ : : : : /: : : : : : : : : : : : : : : :\ \:::::::::!
/: : /: : : ∧:::::::::::::::::/: : : : /:/: : : : :/ : : : /: : :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/⌒\:::::::::::::::〉 | は 前 |
{:::::/ \≧"ヽ | な .ん |
/ \ ト、 \ 中 /
0523デフォルトの名無しさん
2015/06/30(火) 20:52:39.00ID:N7k11D6fむしろプログラミングをやっていると、ゲームプログラミングは半端じゃないスキルが必要
というのが分かってくるからね。
0524デフォルトの名無しさん
2015/06/30(火) 21:13:21.64ID:i+Kc1vVh適切なスレ選択すらできないのかねチミ
0525デフォルトの名無しさん
2015/06/30(火) 21:37:40.44ID:ZcckwHFK逆だろw
ゲームプログラムほど難しいものはないくらいだぞ。
0526デフォルトの名無しさん
2015/06/30(火) 21:39:36.79ID:ah3rI407例えば?
0527デフォルトの名無しさん
2015/06/30(火) 21:47:47.28ID:pel5ZbCoシステムプログラム上がりがゲームプログラマーの仕事には移れない
つまりはそういうことです
0528デフォルトの名無しさん
2015/06/30(火) 21:49:35.29ID:hhp9Lxaaゲームプログラム 多少答えが違っていてもいい。ひたすら早く処理できればおk。
オレ流解釈 異論は認める。
0529デフォルトの名無しさん
2015/06/30(火) 21:49:45.67ID:kYz06WW/0530デフォルトの名無しさん
2015/06/30(火) 22:03:05.06ID:HnzAl5vAゲームで遊ぶだけなら池沼でもできるが
0531デフォルトの名無しさん
2015/06/30(火) 22:03:17.83ID:5IIg4rdj賛同1
0532デフォルトの名無しさん
2015/06/30(火) 22:03:40.18ID:5IIg4rdj0533デフォルトの名無しさん
2015/06/30(火) 22:06:03.11ID:n/kvsNLi速度を追求しつつ正確な演算を要求されるのが一番難しいって事になるな。
0534デフォルトの名無しさん
2015/06/30(火) 22:29:18.42ID:3+NHF9fi業務プログラムでグラボ必須で萌えキャラが動いてたらやり過ぎだってなる
0535492
2015/06/30(火) 22:36:53.62ID:CMabFk2Pまとまった作業領域を特に割り当てなくても実はマージソートを実装できるような予感がする
>>483 に触発された,参考書をみずに書けたらいいな
0536デフォルトの名無しさん
2015/07/01(水) 00:10:15.14ID:8CsMilrf業務プログラムは正解がある。
ゲームプログラムは正解が無い。
0537デフォルトの名無しさん
2015/07/01(水) 00:24:48.66ID:43NAfoSR357 名前:オナネタ(そんなに難しくはない)[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]省略
0538デフォルトの名無しさん
2015/07/01(水) 00:27:32.83ID:4eZhXtdLってやってもいいの?
0539デフォルトの名無しさん
2015/07/01(水) 00:52:06.71ID:Zw/7ZO9t0540デフォルトの名無しさん
2015/07/01(水) 00:53:36.01ID:rcJELInO0541デフォルトの名無しさん
2015/07/01(水) 01:15:26.84ID:tpHgdX4Xそのソース名がsub.cだったりして
0542デフォルトの名無しさん
2015/07/01(水) 01:22:44.82ID:f6kTfm9E可能だが、作法的に間違っているのでたいてい
怒られるのでやめた方がいい
0543デフォルトの名無しさん
2015/07/01(水) 03:28:37.87ID:coV3YcmEint* ex;
} kouzou;
というような宣言の後で
kouzou.*ex
というような使い方がしたいのですがエラーになります。
どうやって書けばいいのでしょうか?
0544デフォルトの名無しさん
2015/07/01(水) 04:00:39.36ID:rcJELInO0545デフォルトの名無しさん
2015/07/01(水) 04:04:42.34ID:98X3PxoR関数の引数で、型を示すのに int * と記述するところを kouzou.ex で代用したい
とか もちっと具体的な記述がないと
0546デフォルトの名無しさん
2015/07/01(水) 04:56:30.33ID:s8gT99zA0547デフォルトの名無しさん
2015/07/01(水) 11:15:31.52ID:/eEOVGmi聞きたいことが違ったらなんか言ってくるっしょ
0548デフォルトの名無しさん
2015/07/02(木) 02:49:48.25ID:IjiULNYp本当は順位の計算もmainの外でしたかったのですが難しくてできませんでした...
どなたか例を書いてはくださらないでしょうか、よろしくお願いします。
0549デフォルトの名無しさん
2015/07/02(木) 07:15:33.49ID:Y0nozqakこういう事か?
元の順位の計算の仕方がよく分からなかったので書き換えた
それと成績と順位で構造体にした
http://ideone.com/XDrz0b
0550デフォルトの名無しさん
2015/07/02(木) 10:46:13.94ID:Nk1ADPQFできるだけオリジナル()のテイストを残してみた。
http://codepad.org/nkkaRkNp
0551デフォルトの名無しさん
2015/07/02(木) 10:49:25.68ID:Nk1ADPQFhttp://codepad.org/Sdjndzhb
0552デフォルトの名無しさん
2015/07/02(木) 20:26:42.86ID:4tz2xAQ6テンプレートはもうあって、グラフィックを用意するかしないかの違いじゃないの?
これは業務プログラムとも変わらない気がするけど
0553デフォルトの名無しさん
2015/07/02(木) 20:31:27.90ID:4tz2xAQ6居たら教えて欲しいな
0554デフォルトの名無しさん
2015/07/02(木) 21:01:41.25ID:fR4mHX0Oキミのいうテンプレートがそう簡単に理解できるかな。
0555デフォルトの名無しさん
2015/07/02(木) 21:03:42.93ID:GLjdUG+wゲームプログラマーは毎回一から作る羽目になる。
まぁ最近はエンジンを買ってやってるらしいけど。
0556デフォルトの名無しさん
2015/07/02(木) 21:16:37.09ID:4tz2xAQ6いちから作る理由が分からない
横スクロールだと本当に簡単に作れるんじゃないの?
0557デフォルトの名無しさん
2015/07/02(木) 21:17:40.21ID:4tz2xAQ6int v 速度
int g 重力
if(buttonA)
{
int x; //位置
int y; //位置
x=x+1
}
jump(int g)
{
y=g*t*t-x
}
こんな感じじゃないの?
0558デフォルトの名無しさん
2015/07/02(木) 21:23:23.08ID:t5xfvhty0559デフォルトの名無しさん
2015/07/02(木) 21:24:37.08ID:4tz2xAQ6一から作る必要あるのかなと
0560デフォルトの名無しさん
2015/07/02(木) 21:34:57.98ID:3P8p1QiE自分でゲーム作ってみたらよろし
0561デフォルトの名無しさん
2015/07/02(木) 21:35:52.83ID:3rjvAgUt0562デフォルトの名無しさん
2015/07/02(木) 21:39:36.44ID:2QBvSmMa今は空中で方向転換可能なゲームがほとんど。
その操作可能な部分も空飛んでるかって言うぐらいのものからちょっと減速する程度のもの、何かのコマンド入れないと無理なもの。
多種多様な仕様にあわせたテンプレート作るぐらいなら毎回作った方が楽。
つか会社じゃなく、個人の頭の中に少々手を加えて使うテンプレートが入ってるのが普通。それを技術と言う。
0563デフォルトの名無しさん
2015/07/02(木) 21:58:50.63ID:f0mLUFIo>だって例えばジャンプのプログラムなんて
空気抵抗は?横風や吹上、吹き降ろし、竜巻がある仕様では?
ジャンプ中に攻撃受けたときの軌道は?その攻撃は砲弾?レーザー?近くでの爆破?
そもそもジャンプしてるのは人?虫?鶏?ガーウォーク?
0564デフォルトの名無しさん
2015/07/02(木) 22:09:06.69ID:QzIg/aEWリーダー「スマホ用ソフト作るからJavaで開発な。」
...
プ「Java用ライブラリも用意したぞ!!」
リーダー「あー、今回はゲームエンジン買ったからそれようのスクリプト言語で開発な。」
0565デフォルトの名無しさん
2015/07/02(木) 22:51:25.59ID:a9U+9AyRこういういい加減な世界だからと思っておけ。
0566デフォルトの名無しさん
2015/07/03(金) 07:35:08.03ID:mrG1M549テンプレートと言うより、要件定義だな。
どんな業務でも、要件定義が最も困難。
0567デフォルトの名無しさん
2015/07/03(金) 08:00:16.45ID:cYS66H6n自社ライブラリ活用の重要性が高い。
ゲーム環境は16bit以前はアセンブラが主流でCPUも多種あったのでライブラリ化が難しい。
コンシューマはハードメーカーがある程度ライブラリを用意していてくれるが、
そのハードの寿命が5年程度だから自社ライブラリが揃う頃には市場の寿命が来ている。
まぁ今はツクール的ソフトが出回ってるので変わったことしたいメーカー以外はそういうヤツの
付属ライブラリで作ってるんじゃないのかな?
あとはメーカーの社長の方針次第。
0568デフォルトの名無しさん
2015/07/03(金) 11:19:48.00ID:UFh7Oq4r3項演算式は、分かってる人が限定的に使うのがよろし
0569デフォルトの名無しさん
2015/07/03(金) 14:06:26.84ID:FGYvKOaI抽象化は罪
保守性はこの世の果てに置いてきた
ゲームプログラマーよ、己が牙と爪を研ぎ澄ませろ
0570デフォルトの名無しさん
2015/07/03(金) 15:00:47.57ID:cAK/4qt50571デフォルトの名無しさん
2015/07/03(金) 15:10:36.43ID:tM/c9bw40572デフォルトの名無しさん
2015/07/03(金) 20:52:16.55ID:mLifhUye#define GRABBITS(j) {while(k<(j)){b|=((uLong)NEXTBYTE)<<k;k+=8;}}
このマクロってどういう動きになりますか?
zlibで実際に動いてるマクロなのですが・・・
括弧でくくった部分を左シフトするってどうなるのかわからなくて・・・。
0573デフォルトの名無しさん
2015/07/03(金) 21:04:50.48ID:Ujl9kI+Z0574デフォルトの名無しさん
2015/07/03(金) 21:58:42.25ID:/GnoFs63解からなかったらまず試す。
そのマクロを使ったサンプルソース作って見る。
0575デフォルトの名無しさん
2015/07/03(金) 23:33:21.10ID:UFh7Oq4rDOS時代にC使ってたんだが、今時はこんな定義て普通なのか?
0576片山博文MZ ◆T6xkBnTXz7B0
2015/07/03(金) 23:51:47.82ID:pBvJl+TqNEXTBYTEはカンマ演算子の解釈に従って*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;}}
0577NAS6 ◆n3AmnVhjwc
2015/07/04(土) 00:16:33.50ID:+0FMM883inlineにしろよ
0578デフォルトの名無しさん
2015/07/04(土) 00:21:29.98ID:VV3jJEnC展開結果みればいいだけじゃん
0579デフォルトの名無しさん
2015/07/04(土) 04:03:44.48ID:Fgik/57+どたらも、良し悪しある。
関数にすると、型が限定されてしまう。
マクロだと意図しない動作する可能性ある。
0580デフォルトの名無しさん
2015/07/04(土) 04:10:40.35ID:pRWF/8JR0581NAS6 ◆n3AmnVhjwc
2015/07/04(土) 07:12:51.83ID:+0FMM883(C++ならば)それなら inline template
0582デフォルトの名無しさん
2015/07/04(土) 08:18:41.39ID:negZyq4J0583デフォルトの名無しさん
2015/07/04(土) 08:42:52.40ID:MQHT1P6q0584デフォルトの名無しさん
2015/07/04(土) 08:49:33.00ID:negZyq4J0585デフォルトの名無しさん
2015/07/04(土) 09:00:08.69ID:5JPjTv/9ここはcスレ。
0586デフォルトの名無しさん
2015/07/04(土) 13:38:46.30ID:Tzt2/bWL前にマージソートの質問したもんですが、左配列用、右配列用と
一時保存用の配列を二つ用意せず一つ用意して、左右の端から走査して、
本来右を走査する配列が、左を走査しても問題ない、また逆も然りっていう
仕組みは凄いなって思いました。
他にあったら教えて下さい。まぁあってもそういうのって自分だけの秘密にしたいと
思うんですかね、中々言いたくないと思いますが。
0587デフォルトの名無しさん
2015/07/04(土) 13:52:01.01ID:zkccIDTna%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",&b);
for(b=1;b<=100;b++)
0588デフォルトの名無しさん
2015/07/04(土) 13:56:18.26ID:7qFGbGe6for(a=1; a<=100; a++)
{
printf("%d\t",a);
}
scanf("%d",&b);
for(a=b;a+=b;a<=100) t+=a;
か?
0589デフォルトの名無しさん
2015/07/04(土) 13:57:08.10ID:7qFGbGe6○ for(a=b;a<=100;a+=b) t+=a;
0590デフォルトの名無しさん
2015/07/04(土) 14:04:13.84ID:XWq4mp45int totatl = (a+a*tmp)*tmp /2;
整数の除算は余り切り捨てだよな?
0591590
2015/07/04(土) 14:05:25.39ID:XWq4mp45int totatl = (b+b*tmp)*tmp /2;
0592デフォルトの名無しさん
2015/07/04(土) 14:10:27.16ID:zkccIDTn10+20+30+40+50+60+70+80+90+100=
が出力されるってわけなんですが
それが表現できなくて歯がゆい
0593デフォルトの名無しさん
2015/07/04(土) 14:58:12.11ID:zkccIDTn0594デフォルトの名無しさん
2015/07/04(土) 15:03:03.01ID:3dpbiA1v0595デフォルトの名無しさん
2015/07/04(土) 15:08:05.74ID:XWq4mp45>588-589 ←いじれば出来るだろ。
それさえも出来ないなら辞めちまえ。
0596デフォルトの名無しさん
2015/07/04(土) 15:16:21.71ID:IoQCkQ/X0597デフォルトの名無しさん
2015/07/04(土) 15:16:53.27ID:WvwJxr10誰だCなんか勧めたのは
0598デフォルトの名無しさん
2015/07/04(土) 17:10:44.98ID:hWeTlHuyというのがわからない
#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;
}
0599デフォルトの名無しさん
2015/07/04(土) 18:10:52.85ID:3xe091DXchar 配列に実数データを格納して文字列と言い張る理由がわからない
0600デフォルトの名無しさん
2015/07/05(日) 13:35:33.26ID:TrBrpITSお付き合いした者です、刺激を沢山ありがとうございます
当初、作業領域なし/インプレイスで出来るんじゃないかと期待してたんですが、
いろいろ場合に当たった結果、やっぱり、当初与えられたデータ数程度の作業領域は必要なようですね
データ配列の「一個分位置ずらし」をコストとしてカウントしなければインプレイスにできるんですけども、
これは認めてもらえないだろうな‥
これはすごいっていうアルゴリズム‥たぶんいろいろあったんだとは思うけれども
感動する前にめんどくさいな、とか思ってしまっていたのでよくわかんない
とりあえず専用ブラウザから投稿させてほしい
0601デフォルトの名無しさん
2015/07/06(月) 04:50:17.31ID:r+1ftyuS最後の問題がさっぱりわからないです...
0602デフォルトの名無しさん
2015/07/06(月) 07:43:11.38ID:UtQpsrfy0603デフォルトの名無しさん
2015/07/07(火) 04:41:15.27ID:QhcZ6j1E0604デフォルトの名無しさん
2015/07/07(火) 15:25:58.45ID:uc2UtN37こういうことかな?
http://codepad.org/bE5S9dWG
ただし、手元の環境で実行すると、
int:0 float:0.000000 hex:0
int:1318926965 float:1318926976.000000 hex:4e9d3a75
となって、0x4e9d3a74→0x4e9d3a75で、floatがintを追い越すから、
intとfloatで同じビットパターンが同じ値を示すのは、0以外無いんだけど。
問題の解釈を間違えてるのかな?
0605デフォルトの名無しさん
2015/07/07(火) 21:16:09.81ID:BL0LeVkmこんな感じかな
http://codepad.org/o1J0XqWR
int : 0, float : 0.000000, hex : 0
int : 1318926965, float : 1318926976.000000, hex : 4e9d3a75
0606デフォルトの名無しさん
2015/07/07(火) 21:35:40.91ID:BL0LeVkm課題1からの流れを汲み取ってあげるとこんな感じかな
float f = (float)i;
if (i == *((unsigned int *)&f)) {
printf("int : %d, float : %f, hex : %x¥n", i, (float)i, i);
}
0607デフォルトの名無しさん
2015/07/07(火) 22:32:58.19ID:3oy//raiひょっとして、ビッグエンディアンなら0以外にもあるって事かしら?
0608デフォルトの名無しさん
2015/07/07(火) 23:15:00.34ID:QhcZ6j1Eお前は低能なんだから低レベルの議論にするなよ永久無職
0609デフォルトの名無しさん
2015/07/07(火) 23:19:00.26ID:BL0LeVkm0610デフォルトの名無しさん
2015/07/07(火) 23:32:11.62ID:3oy//raiじゃ、やっぱり問題の解釈が違うんかなぁ?
0611デフォルトの名無しさん
2015/07/08(水) 00:36:50.13ID:QLXOn1Rg0612デフォルトの名無しさん
2015/07/08(水) 07:38:44.88ID:IfW/Ay/Uいつまでも引きずってないで、前に進んだ方があなたのためですよ。
人生のリハビリだと思って頑張って下さいね。
ではでは。
0613デフォルトの名無しさん
2015/07/08(水) 08:44:03.79ID:xRK5vE6uってか荒しだよね、スレから消えて欲しいいや板から消えて欲しい。
0614デフォルトの名無しさん
2015/07/08(水) 10:36:42.18ID:O7aPWqfj0615デフォルトの名無しさん
2015/07/08(水) 10:47:21.02ID:O7aPWqfj> テスト
>
>510 :片山博文MZ ◆T6xkBnTXz7B0 :2015/04/29(水) 15:28:32.77 ID:z7uliay9
> >>507 うまく修正できたよ。
これだったな
0616デフォルトの名無しさん
2015/07/08(水) 13:36:33.08ID:SQs9ZFsr0617片山博文MZ ◆T6xkBnTXz7B0
2015/07/08(水) 13:38:13.02ID:73Ug3Wex0618テスト ◆QZaw55cn4c
2015/07/08(水) 13:39:14.38ID:SQs9ZFsr0619デフォルトの名無しさん
2015/07/08(水) 14:56:17.56ID:O7aPWqfj0620デフォルトの名無しさん
2015/07/08(水) 14:58:18.09ID:O7aPWqfjバレてるのなら今更だろ?
#自爆乙
0621デフォルトの名無しさん
2015/07/08(水) 15:06:04.19ID:O7aPWqfj0622デフォルトの名無しさん
2015/07/08(水) 15:21:02.25ID:O7aPWqfj0624片山博文MZ ◆T6xkBnTXz7B0
2015/07/08(水) 17:43:38.36ID:73Ug3Wex0625デフォルトの名無しさん
2015/07/08(水) 18:04:11.30ID:gNgHjUOKその時点で個人情報保護法に抵触しているよ。
漏洩した情報にはクレジットカードの番号も含まれているわけだが。
通報しますか?しませんか?
0626デフォルトの名無しさん
2015/07/08(水) 18:28:23.70ID:gNgHjUOK:::::::::::| ば じ き i::::::::::::
:::::::::::.ゝ か つ み ノ:::::::::::
:::::::::::/ だ に は イ:::::::::::::
::::: | な。 ゙i ::::::
\_ ,,-'
――--、..,ヽ__ _,,-''
:::::::,-‐、,‐、ヽ. )ノ _,,...-
:::::_|/ 。|。ヽ|-i、 ∠_:::::::::
/. ` ' ● ' ニ 、 ,-、ヽ|:::::::::
ニ __l___ノ |・ | |, -、::
/ ̄ _ | i ゚r ー' 6 |::
|( ̄`' )/ / ,.. i '-
`ー---―' / '(__ ) ヽ 、
====( i)==::::/ ,/ニニニ
:/ ヽ:::i /;;;;;;;;;;;;;;;;
0627(株)今北産業
2015/07/08(水) 18:58:50.66ID:e1WcPcpR0628デフォルトの名無しさん
2015/07/08(水) 19:21:27.57ID:Y4/HOrqp0629デフォルトの名無しさん
2015/07/08(水) 20:10:15.83ID:PAkk6Hqa最近はみかけないね‥
0632デフォルトの名無しさん
2015/07/08(水) 21:36:28.98ID:43f6DXxl覚えておいて損はない。
0633デフォルトの名無しさん
2015/07/08(水) 22:34:01.71ID:P3MgPigDすばやくコードを読むことができるが間違いが多いプログラマなら
どっちが欲しいですか?リーダーとして
0634デフォルトの名無しさん
2015/07/08(水) 22:42:36.39ID:m5k9DQUyプログラムの最後に /* end */ と付けるのが好きみたいだし
必要のない場所にすら二分木使ったり
0635デフォルトの名無しさん
2015/07/08(水) 22:43:52.91ID:m5k9DQUy二分木探索は再帰を使わない非再帰に書き換える事が出来る
そうする事によって高速化やスタックオーバーフローを防止できる
これやってみ
0636デフォルトの名無しさん
2015/07/08(水) 22:57:48.60ID:tSvJTLLcマ板池
0637デフォルトの名無しさん
2015/07/08(水) 23:28:30.75ID:H34fJNZm後者のそれ読めてないじゃないですか
0638デフォルトの名無しさん
2015/07/09(木) 00:55:05.63ID:J7b7Mxuchttp://peace.2ch.net/test/read.cgi/tech/1313183984/793
0639デフォルトの名無しさん
2015/07/09(木) 01:44:10.39ID:1/aylVmX0640デフォルトの名無しさん
2015/07/09(木) 01:45:03.59ID:1/aylVmX煽りまで自演かよ
0641デフォルトの名無しさん
2015/07/09(木) 18:53:17.69ID:mde2xpnrintの-127〜127を割り当てればいいだけでは?
わざわざchar型を実装する意味がイマイチ分かりません。
0642デフォルトの名無しさん
2015/07/09(木) 18:55:57.53ID:Elm3Zapl昔は今みたいに膨大な主記憶装置は無かったからね
0643デフォルトの名無しさん
2015/07/09(木) 19:00:26.47ID:mde2xpnr??どういうことですか?
0644デフォルトの名無しさん
2015/07/09(木) 19:01:52.09ID:mde2xpnrstrcpy関数とかって返り値が0じゃないときは0以外の数ってなるじゃないですか?
何でずばり1って断定しないんですかねぇ…全然わかりません。
何で0のときは0(一致しないとき)、一致するときは0以外って曖昧だと思いません?
0645デフォルトの名無しさん
2015/07/09(木) 19:03:48.96ID:wx8JTHvZ0646デフォルトの名無しさん
2015/07/09(木) 19:09:24.05ID:mde2xpnr単純にreturn 1;って書けばいいのに
曖昧にするってことは
return rand()/%00;
みたいな感じなんですかね?
0647デフォルトの名無しさん
2015/07/09(木) 19:11:14.26ID:B2+ONIF1大量のデータをとりあえずchar型の配列とかポインタで格納し、unsigned charでキャストして、unsigned charひとつ分のバイトデータに分割し、加工してまたくっつけるてlong型返すとか。
0648デフォルトの名無しさん
2015/07/09(木) 19:12:04.13ID:80WFJcEWstrcmpの事言ってるなら高速化のために単純に文字コードの引き算の結果返す実装があるから
0649デフォルトの名無しさん
2015/07/09(木) 19:12:44.32ID:ntINu6aK思わない。0と比較すればいいだけ
0650デフォルトの名無しさん
2015/07/09(木) 19:15:24.14ID:ntINu6aKcharは文字のための型。最小かどうかは重要じゃない
0651647
2015/07/09(木) 19:19:34.86ID:b3vJbeQ5でもこう書いてあるよ?
http://q.hatena.ne.jp/1381762366
0652デフォルトの名無しさん
2015/07/09(木) 19:19:52.03ID:OqiP450p0653デフォルトの名無しさん
2015/07/09(木) 20:01:31.51ID:yvZx6GXv0654デフォルトの名無しさん
2015/07/09(木) 20:03:16.30ID:mVlTl5rr・バイトという単位があって、それに合った型がchar型。
・C言語はアセンブラと相性がいい言語。アセンブラで出来ることがC言語でも出来た方が都合がいいと判断した結果。
・C言語が出来た時代は搭載メモリが1Mも無いハードが主流の時代。1バイトでも使用容量を減らすのが当たり前の時代。
・専門家が必要と判断した結果。お前みたいなヒヨッコには経験不足で理解できないだけだ。黙っとけ。
0655デフォルトの名無しさん
2015/07/09(木) 20:23:52.40ID:QKowWqJVだってjavaはメモリ操作関数Cより多いじゃん
0656デフォルトの名無しさん
2015/07/09(木) 20:27:10.54ID:ditZL0YgC言語の他にアセンブラと相性のいい言語があったら、他に相性がいい言語は存在しちゃいけないの?
0657デフォルトの名無しさん
2015/07/09(木) 20:34:37.12ID:Mmd8OX6L0658デフォルトの名無しさん
2015/07/09(木) 20:55:12.40ID:QKowWqJVそこらへん分かってません。
コンパイラって結局なんですか?
0659デフォルトの名無しさん
2015/07/09(木) 20:57:31.74ID:nD2SHEs8なぜそのようになっていないのですか?」
・2chユーザーに聞くな!仕様決めたやつに聞け!
・理由が全く思いつかない?それはお前の経験不足のせいだ。もっと他人のソース読んだり、他の言語も勉強しろ!!ついでに国語を小学校からやりなおせ!
・面倒?そう思うやつはプログラマー向いてないから止めちまえ!!
0660デフォルトの名無しさん
2015/07/09(木) 20:58:56.44ID:QKowWqJVだってコンパイラだって何らかの言語で作られてるわけでしょ
Cだからアセンブラと相性がいいっていうのは何故?
0661デフォルトの名無しさん
2015/07/09(木) 21:00:57.85ID:deXGtrLg0662デフォルトの名無しさん
2015/07/09(木) 21:03:38.82ID:i/qBMKbMとりあえずコレ読んどけ
ttps://ja.wikipedia.org/wiki/コンパイラ
>C言語のコンパイラをjavaで作った場合、C言語もJVMで動くってことになるんですか?
そのコンパイラがJVMで動くコードを吐くように作られてるならそうなる。
Windows用コードを吐くように作られてるならJVMでは動かない。そういうのをクロスコンパイラという。
0663デフォルトの名無しさん
2015/07/09(木) 21:15:06.10ID:QKowWqJVアセンブラは
INDEX
MAX
MIN
MOVEF
とかでしょ?分かってますよ
で疑問なのがCのコンパイラ作れ作れみたいな本って
全部CでCのコンパイラ作ってるんですよね?意味なくないですか?w
何でCのコンパイラを作らないとダメなのにCを介しているんだと…
遅くなるじゃないですか…
アセンブラで作るからCは高速なんだからアセンブラでコンパイラ作るべき
だと思うんですが、それは企業秘密なんですかね
0664デフォルトの名無しさん
2015/07/09(木) 21:16:48.88ID:QKowWqJVならCをjava化すればいいだけでは?
java=遅いけど機能豊富
C=早いけど機能が単細胞アメーバ
なら単にCでjavaの機能実装すればいいだけでは?
単純にそう思います
0665デフォルトの名無しさん
2015/07/09(木) 21:21:43.77ID:L3wwq7kt>アセンブラと相性がいいのはJavaでは?
下に根拠らしきものが書いてあるが、こういう知識が
どうして訂正もされずに頭の中にあるのか不思議。
0666デフォルトの名無しさん
2015/07/09(木) 21:22:38.79ID:JgLS8zBlお前が作ってくれ。
知らないが、LLVMアセンブラと、javaのアセンブラ相当の部分の橋渡しを作ったらいいのでは。
0667デフォルトの名無しさん
2015/07/09(木) 21:25:00.03ID:OqiP450p0668デフォルトの名無しさん
2015/07/09(木) 21:25:39.32ID:QKowWqJVプログラミング言語が一番高速なのはアセンブラでしょ?
ならアセンブラで開発すればいいと思います
アセンブラにもクラスみたいな機能あったはず
なのに何で組み込み系ってC言語なんですか?
組み込みってリアルタイムシステムじゃないですか?
なら
中途半端に早いC言語より超高速のアセンブラで作ればいいのではないかと
単純にそう思うんですがね
0669デフォルトの名無しさん
2015/07/09(木) 21:26:13.44ID:deXGtrLgそれはニーモニック
CコンパイラをC言語で書くのは
拡張性やメンテナンスをしやすくするためで意味がある
0670デフォルトの名無しさん
2015/07/09(木) 21:26:33.56ID:JgLS8zBlJavaバイトコードは、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 は言語からもアーキテクチャからも独立しており、それぞれに特化した、
プログラミング言語固有のモジュールと、マシン向けコード生成部を用意することにより様々な言語アーキテクチャーに対応する。
0671デフォルトの名無しさん
2015/07/09(木) 21:32:17.80ID:VxETAF0fアセンブラでクラスとかお前は一体何を言ってるんだ?
0672デフォルトの名無しさん
2015/07/09(木) 21:40:38.93ID:ZBdPMQSUおい釣られるなよ
0673デフォルトの名無しさん
2015/07/09(木) 21:50:46.43ID:QKowWqJV何でCは早くて、javaは遅いの?
0674デフォルトの名無しさん
2015/07/09(木) 21:54:23.72ID:syH16MxPその知識にあわせて説明すると解説本1冊作れるぐらいの情報が必要。
つまりそういう本を帰ってことだ。
とりあえずこれ読んでこい。
https://eb.store.nikkei.com/asp/ShowItemDetailStart.do?itemId=D2-00P83150B0
プログラムはなぜ動くのか
0675デフォルトの名無しさん
2015/07/09(木) 21:59:02.87ID:QKowWqJV分厚いなぁww
何故動くかくらいは分かりますよ
機械語の組み合わせを一つの文字にまとめる
まとめたのをまとめる、結局それの繰り返しでしょ?
0676デフォルトの名無しさん
2015/07/09(木) 22:05:39.24ID:AjjL7yX9全くダメ!そんなイメージだからみんなの説明が全く理解できないんだよ。
読めと言ったらとにかく読め!それが出来ないなら来るな!
0677デフォルトの名無しさん
2015/07/09(木) 22:09:22.41ID:QKowWqJV書店で読んでみますわ
0678デフォルトの名無しさん
2015/07/09(木) 22:13:00.09ID:JgLS8zBl最適化と動作環境がマトモならアセンブラと並ぶ。
0679デフォルトの名無しさん
2015/07/09(木) 22:15:31.80ID:OqiP450p0680デフォルトの名無しさん
2015/07/09(木) 22:15:41.15ID:QRivXUtQ根本的に間違ってる。どこをどう間違ってるか説明不能なぐらい間違ってる。
0681デフォルトの名無しさん
2015/07/09(木) 22:16:29.17ID:QRivXUtQ書店に迷惑だ!買うか図書館行け!
0682デフォルトの名無しさん
2015/07/09(木) 22:27:36.35ID:G8eHbxF50683デフォルトの名無しさん
2015/07/09(木) 22:33:51.62ID:Elm3Zaplあながち間違いではないのでは?
視覚的に分かりやすいように機械語の命令
0684デフォルトの名無しさん
2015/07/09(木) 22:35:19.65ID:Elm3Zaplあながち間違いではないのでは?
視覚的に分かりやすいように機械語の命令セットを割当いるのだし
0685デフォルトの名無しさん
2015/07/09(木) 22:37:43.13ID:1/aylVmX0686デフォルトの名無しさん
2015/07/09(木) 22:52:22.30ID:B2+ONIF1あなたこそ、荒らすだけで何にも有益な情報だしませんよね。消えてください
0687デフォルトの名無しさん
2015/07/09(木) 22:53:13.19ID:QRivXUtQ例外排除、厳密主義で説明しないとむちゃくちゃなことになる。
0688デフォルトの名無しさん
2015/07/10(金) 01:03:59.34ID:6ULcnTjHパクリ屋の片山の方が少しだけマシ
しかし、あいつら重箱の隅をつついたり残飯あさりみたいなことして楽しいのかね?
0689デフォルトの名無しさん
2015/07/10(金) 01:27:13.99ID:9OV4RYzP0690デフォルトの名無しさん
2015/07/10(金) 01:46:59.57ID:BbUNOMqpにわかや間違った知識の初心者がただ暴れるだけのスレになってしまった。
まともな情報を提供できる人が減り、まともな情報を得られる人が減り、負のスパイラル。
このスレの存在価値って暇なときにそういう奴らをヲチれるってだけでしょ。
0691デフォルトの名無しさん
2015/07/10(金) 02:23:27.56ID:WL3Gd+eKID は関係ない,むしろ有益
どちらかというと専用ブラウザを排除したことの罪が重い
0692デフォルトの名無しさん
2015/07/10(金) 02:30:20.46ID:9OV4RYzP0693デフォルトの名無しさん
2015/07/10(金) 05:31:28.35ID:Jvm9pak2これはガベージコレクションが関係してるからじゃないんですか?
C系はRAII等でプログラマがメモリを自由に管理できるし、それも早さに繋がっているのでは?
0694デフォルトの名無しさん
2015/07/10(金) 06:35:18.95ID:XAIUcdu4大昔は、文字コードは8bitしか無かった。
最近出来の言語ではcharは文字用になって、多バイト文字も扱える物も有る。(新たに byte型が出来てる)
0695デフォルトの名無しさん
2015/07/10(金) 07:46:38.37ID:+KcTu61vまた、型が違う時のキャストも最小限にしかしないから。
0696デフォルトの名無しさん
2015/07/10(金) 07:55:52.36ID:bM2M5Hwn何でこんな無駄なことやってるんだ!? と呆れるのがCグラマ
0697デフォルトの名無しさん
2015/07/10(金) 12:54:35.54ID:xr+IAg9xCコンパイラが吐くようなコードをアセンブリ言語で書くなんて無理ゲーだろ。
もちろん諸般の事情で、どうしてもこの命令を使いたいなんてときには
書くこともあるがな。
0698デフォルトの名無しさん
2015/07/10(金) 13:10:49.66ID:yh0xw8Sd0699デフォルトの名無しさん
2015/07/10(金) 13:37:30.71ID:bM2M5Hwn例外やトレース情報など関数呼び出し時の無駄な処理
ライブラリの隅々にまで及ぶ徹底したオーバーヘッド撲滅の不足
みんな大好きガベージコレクション
0700デフォルトの名無しさん
2015/07/10(金) 13:41:38.65ID:+KcTu61v0701デフォルトの名無しさん
2015/07/10(金) 14:20:51.40ID:uxjenI25今でもアセンブラ 〉 C言語
これからもずっとアセンブラ 〉 C言語
0702デフォルトの名無しさん
2015/07/10(金) 18:41:42.06ID:M5h7ZwqOマイコンのROMに書き込むプログラムについてです。
ソースファイルをビルドして書き込み形式ファイルに変換したときに、
ROM上の所望のアドレスに所望の値(ビットパターン)が書き込まれるように
ソースコードで制御することはできるのでしょうか?
ポインタ(?)を使えばできるのでしょうか?
0703デフォルトの名無しさん
2015/07/10(金) 18:48:03.90ID:ZMvCzyvKんだけど、なんか別の方法もあったようななkったような 忘れた
少なくとも
ROM上のプログラムが ROM上の記憶領域に対して書き込み方向のアクセスしても、書けないぞ
0704デフォルトの名無しさん
2015/07/10(金) 19:00:18.44ID:Z2TbeI0I答えになっているか分からないが
参考になるかな
http://www.ertl.jp/~takayuki/readings/c/no09.html
0705デフォルトの名無しさん
2015/07/10(金) 19:59:07.41ID:9OV4RYzP0706デフォルトの名無しさん
2015/07/10(金) 20:09:33.91ID:6ULcnTjHていうか、その前の開発ターゲットと開発環境を質問すべきだろ
シッタカが過ぎて墓穴掘ってんじゃねーぞ
0707デフォルトの名無しさん
2015/07/10(金) 20:34:42.91ID:86aMQ0Tc普通のROMライタならモトローラSフォーマットかインテルHEXフォーマットで書ける。
そんなのうけつけ無い、手作りのROMライタつかってるなら、こんな所に質問にこない。
0708デフォルトの名無しさん
2015/07/10(金) 21:14:28.60ID:cETlnxs2どう間違ってるんですか?
ビット操作を文字列で置き換えたのがプログラミング言語なだけでは?
ビット操作をアセンブラにまとめて
アセンブラを言語でまとめる
それだけでは?
0710デフォルトの名無しさん
2015/07/10(金) 21:19:49.53ID:9IScuLdJちゃんと質問読めよシッタカめ
0712デフォルトの名無しさん
2015/07/10(金) 21:34:16.91ID:BKxBIosQマイコンキット買ってきて、機械語プログラムを体験してみたら?
0713デフォルトの名無しさん
2015/07/10(金) 21:47:49.28ID:bM62bRJM環境が分からないから概要だけかいつまむと…
所望のアドレスでsectionを作る。
そのsectionにマッピングするように指定したコンストのグローバル変数を定義して、初期値に所望のビットパターンをセットする。
コンパイルする。
焼く。
以上。
0714デフォルトの名無しさん
2015/07/10(金) 21:54:23.17ID:mihfK1KR> 大昔は、文字コードは8bitしか無かった。
大昔なら 7bit だろ
通信とかだと大文字限定にして 6bit もなかったっけ?
> 最近出来の言語ではcharは文字用になって、多バイト文字も扱える物も有る。(新たに byte型が出来てる)
Byte 型なんて VB6 の時代からあるし、Pascal で 0..255 範囲型定義すればバイトを扱えたと思う(こっちは処理系によるかも、もう記憶が曖昧)
0715デフォルトの名無しさん
2015/07/10(金) 21:55:41.81ID:zONaO8sT0716デフォルトの名無しさん
2015/07/10(金) 22:09:15.13ID:Q4vtffLq0717デフォルトの名無しさん
2015/07/10(金) 22:35:53.64ID:V5qL2Bce同一人物か?
0718デフォルトの名無しさん
2015/07/10(金) 23:08:56.72ID:4ayEXXFA0719デフォルトの名無しさん
2015/07/10(金) 23:23:33.71ID:p4eBJ6ufできるよ
組み込みのファームアップで良くやるし
0720デフォルトの名無しさん
2015/07/10(金) 23:39:11.26ID:ykzgorl/http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0491bj/BABGJHDC.html
0721デフォルトの名無しさん
2015/07/11(土) 00:09:42.18ID:yb9b9uYv0722デフォルトの名無しさん
2015/07/11(土) 12:59:55.02ID:2/75tmG3昔のPCはメインメモリ16Kとかでメモリ制限多かったのと
当時8bitCPUのレジスタサイズと相性良い
今残ってるのはファーム系や通信系、その他互換性かな
まだまだ使われてるとこが多い
0723デフォルトの名無しさん
2015/07/11(土) 14:11:53.54ID:EetLUFfU0724デフォルトの名無しさん
2015/07/11(土) 16:27:10.55ID:JsXMIkKG0725デフォルトの名無しさん
2015/07/11(土) 20:15:30.31ID:N+MxSKL/0726デフォルトの名無しさん
2015/07/11(土) 21:44:07.25ID:s2rxtCK9それとも必要に応じて引用する派?
0727デフォルトの名無しさん
2015/07/11(土) 21:55:07.98ID:pd57RWsF0728デフォルトの名無しさん
2015/07/12(日) 14:27:14.74ID:o+m4gL9U0729デフォルトの名無しさん
2015/07/12(日) 15:30:24.74ID:NWI6O2xz0730デフォルトの名無しさん
2015/07/12(日) 15:49:19.24ID:BKAToTl0呼び方変えるベキ
0731テスト ◆QZaw55cn4c
2015/07/12(日) 16:04:50.67ID:MzVYHQ6B0732デフォルトの名無しさん
2015/07/12(日) 16:19:47.96ID:NWI6O2xz0733デフォルトの名無しさん
2015/07/12(日) 19:37:07.12ID:/ikWn7Z20734デフォルトの名無しさん
2015/07/12(日) 19:37:41.14ID:/ikWn7Z2おもしろいと思ったのか?厨には早いから初心者スレにでも
0736デフォルトの名無しさん
2015/07/13(月) 17:33:39.59ID:wlq5ajTCレス本当にありがとうございます。
ご教示頂いた情報とリンクから、おそらくリンカスクリプトのSECTIONブロックに
.rodataのLMAを指定するのではないかなと理解しました。
まだ、具体的なところが分からないのですが、例えば、ROMの0xABCDEEと0xABCDEFに、
それぞれ11111111と00000000を書き込みたい場合、.rodataのLMAの指定方法(AT属性?)と、
LMA以降のアドレスにおける定数値とのマッピングはどのように指定すれば良いのでしょうか?
>そのsectionにマッピングするように指定したコンストのグローバル変数を定義して
と、思ったのですが、そもそも.rodataではなくて、個々のグローバル変数のLMAを
SECTIONブロックで定義できるのでしょうか?
0737デフォルトの名無しさん
2015/07/13(月) 22:35:42.72ID:2DWcmP+Dhttp://i.imgur.com/hbOo1dK.jpg?1
http://i.imgur.com/bCG68SN.jpg?1
http://i.imgur.com/zf9wrJ5.jpg?1
http://i.imgur.com/ZGD61Ml.jpg?1
http://i.imgur.com/Keoih8o.jpg?1
http://i.imgur.com/KDVwkUn.jpg
http://i.imgur.com/GsOscHJ.jpg
http://i.imgur.com/hMCBnbN.jpg
0738デフォルトの名無しさん
2015/07/14(火) 21:43:26.21ID:YTQkbKn/. = 0x01ABCDEE;
.MySct1 : { BYTE(0xFF);BYTE(0x00); }
0739デフォルトの名無しさん
2015/07/14(火) 22:36:42.79ID:rB0J2LcB0740デフォルトの名無しさん
2015/07/15(水) 02:52:47.11ID:4s2DsMfA同じ構造体の中のメンバーの値を比較して最大値を返すプログラムを作りたく、
max=data[0].a
for(i=1;i<=n;++i){
if(max<data[i].a)
max=data[i].a
}
と書きました
本来ならiが2の時の値が最大値になるのですが、nの値が出てしまいます
プログラムの間違いや構造体の比較の上で何か注意があれば教えてくださいm(_ _)m
0741デフォルトの名無しさん
2015/07/15(水) 03:09:21.85ID:rDPbITG60742デフォルトの名無しさん
2015/07/15(水) 10:37:53.35ID:D5SeDEqJありがとうございます!ありがとうございます!
まだ思うように動かないのですが、
教えて頂いたコードはリンカスクリプトのどの部分(.rodata?)に書けば良いのでしょうか?
それと>>713さんからsectionにグローバル定数をからめられることを教えて頂いたのですが、
「BYTE(0xFF);BYTE(0x00)」の指定をグローバル定数で指定することはできるのでしょうか?
0743デフォルトの名無しさん
2015/07/15(水) 12:13:31.73ID:4Gs4+rfn1) 「同じ構造多の中の」を比較するのに構造体自体が配列になっててそれを比較してるのはいいの?
2) data の配列はきちんと初期化してる?
3) max と data:a の型はなに? signed だったりしない?
4) for ループの n はどっから出てきたの?
0744デフォルトの名無しさん
2015/07/15(水) 12:22:13.28ID:nYMDh+esarray[0] 〜 array[個数-1] までしか使えない
0745デフォルトの名無しさん
2015/07/15(水) 12:29:03.53ID:cCeHMBdrfor(i=0;i<n;++i){
if(max<data[i].a)
max=data[i].a;
}
普通こう書くな
0746デフォルトの名無しさん
2015/07/15(水) 12:44:08.91ID:AuuzzMz2新人に書かせると、毎年結構な割合でそう書くんだが、学校で教えてるのかねえ?
0747デフォルトの名無しさん
2015/07/15(水) 12:51:04.75ID:2t4VwR8U値が全て負の時に結果が 0 になっちゃうからダメ
0748デフォルトの名無しさん
2015/07/15(水) 13:27:43.35ID:s74LivYF0749デフォルトの名無しさん
2015/07/15(水) 13:46:16.64ID:cCeHMBdr負数は条件に入ってないでしょ
そう書いてあったらlimit.hから持ってくるだけだ
0750デフォルトの名無しさん
2015/07/15(水) 13:46:50.73ID:cCeHMBdr0751デフォルトの名無しさん
2015/07/15(水) 13:48:35.13ID:j8XNr1jp0752デフォルトの名無しさん
2015/07/15(水) 18:11:26.12ID:m0HrC+H+その構造体の型とデータを、ここに貼ってみて欲しい。
本当に、i=2が最大なのか?
0753デフォルトの名無しさん
2015/07/15(水) 18:50:46.02ID:fokCzg42・for(i=1;i<=n;++i){ が for(i=1;i<n;++i){ の間違い。
・dataに予定と違うデータが入っている。
さぁどれだ?
0754デフォルトの名無しさん
2015/07/15(水) 19:20:52.98ID:ekVQGYCuえ、条件に入ってないの?
0755デフォルトの名無しさん
2015/07/15(水) 20:44:13.64ID:uItIfLXqリンカスクリプトって環境によってかなり違うからどこに書くかといわれても。
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")));
0756デフォルトの名無しさん
2015/07/15(水) 21:13:12.09ID:2t4VwR8U> 負数は条件に入ってないでしょ
わざわざ元の奴より改悪してどうするよ w
>>751
n = 0 の時は最小値自体が存在しないからループにはいる前にテストすべき
0757デフォルトの名無しさん
2015/07/15(水) 22:49:11.41ID:D5SeDEqJレス本当にありがとうございます!!
ゴールに近づいてきた気がします!
頂いたレスのグローバル定数のところなのですが、
>. = 0x01ABCDEE;
>.MySct1 : { *(.MySct1) }
>↑こう書いて、ソース中で↓こんな感じ。
>char gHoge __attribute__ ((section (".MySct1")));
ソース中でconstで定義したMySct1を上(char〜)のように指定するということで合っていますでしょうか?
おそらくあまりの無知に驚かれていると思いますが何卒お導きをお願いします!
0758デフォルトの名無しさん
2015/07/16(木) 01:01:14.23ID:RYdqwZWNconst char gHoge[2] __attribute__ ((section (".MySct1"))) = {0xFF,0x00};
> ソース中でconstで定義したMySct1を上(char〜)のように指定するということで合っていますでしょうか?
ソース中でconstで定義したgHogeを.MySct1セクションに配置。
0759デフォルトの名無しさん
2015/07/16(木) 19:35:19.57ID:/5WSEGYsできました!
758さんのおかげです!本当にありがとうございました!
0760デフォルトの名無しさん
2015/07/17(金) 22:13:40.88ID:oJCZp1Jyプログラムで
mがパターンの文字列で
T()がテキスト文字の配列
P()がパターン文字の配列
照合するためのループが
台形括弧 j>m or T(i+j-1)≠P(j)
j=j+1
という事ですが、このループ条件って正しいでしょうか?
だってjがm以上になれば延々とループすることになりますよね
これ11年度のAP試験の問題ですが、解答見ても分かりません。
何で一致しない限りjを進めるんでしょうか?
一致しない時点でjではなくiを増やすのが普通だと思うのですが、どういう
勘違いをしてるのか自分でもわかりません。
0761デフォルトの名無しさん
2015/07/17(金) 22:17:38.93ID:oJCZp1Jyっていう理解でいいでしょうか?
もう少しプログラムを丁寧に書きます。
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
始点移動ループかっこ閉じる
プログラム終了
0762デフォルトの名無しさん
2015/07/17(金) 22:19:41.86ID:oJCZp1Jy一致しないのにインクリメントって意味があるんでしょうか?
テキスト文字列のindexを進めるのだからiをインクリメントするのは
分かるのですが、一致しないことがわかって何故パターン文字列の
jをインクリメントするのか分かりません。まさか誤植じゃないですよね?
さすがに僕の勘違いだと思いますが、すっきりしないです。
Cのforとフローチャートのループは仕様が違うんですかね…
0763デフォルトの名無しさん
2015/07/17(金) 22:20:53.16ID:hZkEqQnf0764デフォルトの名無しさん
2015/07/17(金) 22:22:25.76ID:62hGZ/Zbはなはだしくスレ違い。
0765デフォルトの名無しさん
2015/07/17(金) 22:41:36.43ID:oJCZp1Jyたぶん
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
ということですがこれが理解不能です。
0766デフォルトの名無しさん
2015/07/17(金) 22:43:35.44ID:oJCZp1Jylast=?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の後の{忘れていましたので…
0767デフォルトの名無しさん
2015/07/17(金) 22:45:08.30ID:oJCZp1Jy自分の目がおかしいのかもしれませんが、何に躓いてるんでしょうか…
1日考えてここまで理解できないプログラムってそうないんですけどね
0768デフォルトの名無しさん
2015/07/17(金) 22:52:35.42ID:oJCZp1Jyi=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;
}
0769デフォルトの名無しさん
2015/07/18(土) 00:12:13.32ID:4wSKeiNnそれが出来ないなら問題の写真をうpして質問しろ。
0770デフォルトの名無しさん
2015/07/18(土) 00:19:26.90ID:oprjiCWN一応全部ですが、フローチャート?ifをひし形みたいにする表記って何っていう
んでしょうか?まぁそれをCに変換したまでです。
0771デフォルトの名無しさん
2015/07/18(土) 00:35:08.49ID:4wSKeiNnそもそも、n-m+1ってなに?
mがパターンの文字列なんでしょう?nからパターンの文字列を引いて1足すってどういうことだよ。
0772デフォルトの名無しさん
2015/07/18(土) 01:24:25.18ID:VyGMEck6まずは日本語から覚えよう
0773デフォルトの名無しさん
2015/07/18(土) 01:54:50.50ID:Qj7RPCLj0774デフォルトの名無しさん
2015/07/18(土) 02:09:23.66ID:zVnebLmbhttps://ideone.com/xSZoob
0775デフォルトの名無しさん
2015/07/18(土) 02:12:30.32ID:zVnebLmb0776デフォルトの名無しさん
2015/07/18(土) 02:29:45.91ID:zVnebLmbちゃんとデバッグしたやつ
https://ideone.com/cIsFa5
0777デフォルトの名無しさん
2015/07/18(土) 08:25:27.89ID:oprjiCWN疑似言語だと思います。配列が1始まりなんで
その関係でn-m+1っぽいそうです。
>>776
本当にありがとうございます。
未だに分かりません。何故一致しないのに、j++するんでしょうか…
0778デフォルトの名無しさん
2015/07/18(土) 08:29:23.23ID:oprjiCWN参考書の方は疑似言語だけどorになってました。
両方のループもorでした。疑似言語ってor=&&なんですか?
0779デフォルトの名無しさん
2015/07/18(土) 08:48:06.38ID:oprjiCWNこれです。orになっています。
0780デフォルトの名無しさん
2015/07/18(土) 08:54:08.55ID:5OYZKZ4e0781デフォルトの名無しさん
2015/07/18(土) 09:01:16.48ID:oprjiCWNCとつまり逆ってことですか
0782デフォルトの名無しさん
2015/07/18(土) 09:16:32.55ID:42lL/E8Y0783デフォルトの名無しさん
2015/07/18(土) 09:23:58.90ID:oprjiCWN明確な規定はないんですか?
0784デフォルトの名無しさん
2015/07/18(土) 09:32:28.07ID:42lL/E8YそもそもこういうのC言語に変換する必要ないし
スレチね、うん
0785デフォルトの名無しさん
2015/07/18(土) 10:36:12.95ID:9KsA62Uaj > mは 「jよりmが小さい時」じゃなくて「jがmより大きくなるまでの間」って事だね
≠ も同じで「等しくない時」じゃなくて「等しくなくなるまでの間」だね
or は && で間違いないよ うん
0786デフォルトの名無しさん
2015/07/18(土) 10:39:46.48ID:9KsA62Ua0787デフォルトの名無しさん
2015/07/18(土) 10:49:36.80ID:9KsA62Uaごめん
0788デフォルトの名無しさん
2015/07/18(土) 10:56:48.34ID:oprjiCWN台形括弧内 A or Bは、AまたはBのときループを抜ける、言い換えれば、
AまたはBになったときループを抜けるですか…
書いてくれないとわかりませんよね…後味が凄い悪いです
すっきり感もないですし…
0789デフォルトの名無しさん
2015/07/18(土) 11:12:07.27ID:5OYZKZ4e0790デフォルトの名無しさん
2015/07/18(土) 11:41:12.21ID:42lL/E8Yお前がCで置き換えて勝手に勘違いしただけでしょ
0791デフォルトの名無しさん
2015/07/18(土) 12:10:59.83ID:9KsA62Uaコードは776さんが書いてくれた奴で納得してくれないかな…
キミを混乱させたのはor…だよね
これ、条件さえ満たせばどっちでもいいんじないかな?
&&でも||でも…
ごめんね よく分かってないのに口挟んで
0792デフォルトの名無しさん
2015/07/18(土) 13:03:00.30ID:ahU+/wSxすぐ上に同じ記号の始点移動ループがあるのに、そっちは無視してたんかね
0793デフォルトの名無しさん
2015/07/18(土) 13:05:09.58ID:nQU9MOUl0794デフォルトの名無しさん
2015/07/18(土) 13:16:03.17ID:GGLH3rbf0795デフォルトの名無しさん
2015/07/18(土) 14:11:23.82ID:1dCgaP/A0796デフォルトの名無しさん
2015/07/18(土) 14:49:18.66ID:oprjiCWN混乱させたのはorというより、orがあるために「この条件に至るまでは
脱出しない」ってのが読み取れなかったんですよ。
もし一つの条件だと、Cのforと仕様と違うじゃんって分かったんですけどね…
どちらか満たせばいいって事に関してはCと流れ図で変わらない、だってorは
そういう意味なんだから、ですけど、まぁそれにしてももう少し仕様くらい
描いてほしかったですね…
だって流れ図なんて規格ないじゃないですか…、うーん実際の試験では
書いてあったんですかねー、そこらへん分かりませんが、問題の
愚痴っぽくなってすいません
0797デフォルトの名無しさん
2015/07/18(土) 14:50:48.31ID:oprjiCWN試験ってそういうもんじゃないですか?
というかもしかしたら表紙に書いてあるかもしれませんね
FE受けたときは最初らへんのページに書いてありましたから
0798デフォルトの名無しさん
2015/07/18(土) 14:51:50.75ID:oprjiCWNいや脱出するための条件なら&&はダメかと…
0799デフォルトの名無しさん
2015/07/18(土) 14:53:45.90ID:nQU9MOUl「俺は理解してないけど間違ってない!!」ってところが毎回同じ。
0800デフォルトの名無しさん
2015/07/18(土) 14:56:38.69ID:5OYZKZ4e0801デフォルトの名無しさん
2015/07/18(土) 19:06:36.82ID:9ORWa3DX0802デフォルトの名無しさん
2015/07/18(土) 20:11:14.44ID:kyfBrlqOお前、幾つだよ w
0803デフォルトの名無しさん
2015/07/18(土) 21:00:52.98ID:t59zGKRm0804デフォルトの名無しさん
2015/07/18(土) 21:55:25.96ID:SEYwYF1Pあれは攻撃を受けたときに自力で修理して動き続ける決意の表れだと思います。
実際に乗らない上層部の決意!
0805デフォルトの名無しさん
2015/07/18(土) 21:58:23.97ID:SEYwYF1P0806デフォルトの名無しさん
2015/07/18(土) 22:00:06.32ID:SEYwYF1P0807デフォルトの名無しさん
2015/07/18(土) 22:01:53.95ID:5OYZKZ4e0808デフォルトの名無しさん
2015/07/18(土) 22:14:10.73ID:akb2I6pr別のプログラムでコマンドライン引数を表示するプログラムを作ったんですが
パイプでつなぐことができません。
argcの数が1で自身のフルパスしか表示されません。
a1 | a2 ってコマンド打ちました。
a1文字表示プログラム
a2引数受け取って表示するプログラム
stdin,stdoutの考え方が間違ってる?
0810デフォルトの名無しさん
2015/07/18(土) 22:29:39.72ID:akb2I6prwindowsのコマンドのオプションはコマンドライン引数で受け取ってるっとおもってました。
関係ないものなんですね。スッキリしました。ありがとうございます。
0811デフォルトの名無しさん
2015/07/18(土) 22:46:09.77ID:pJsO7K4C0812片山博文MZ ◆T6xkBnTXz7B0
2015/07/18(土) 23:09:08.42ID:DL93D/krリダイレクションによって標準入出力のターゲットが切り替わる。
コマンドライン引数のファイルを開くのがfopen,freopen。
0813デフォルトの名無しさん
2015/07/18(土) 23:11:38.06ID:zUetklfCプログラム a1 の標準出力(stdout) を
プログラム a2 の標準入力(stdin) に連結する操作
手入力するんじゃなく、「プログラムa1の出力結果」を入力にしちゃうわけ
0814デフォルトの名無しさん
2015/07/18(土) 23:16:07.64ID:zUetklfCパイプの動作は a1 の出力を a2 起動時の引数に並べるわけじゃないよ
0815デフォルトの名無しさん
2015/07/18(土) 23:21:54.07ID:Oy2k4qUz0816デフォルトの名無しさん
2015/07/18(土) 23:26:27.90ID:oDsD2wefWinは知らないけど、Linuxではパイプラインでつないだ、
コマンド1・2は別のプロセスで、
標準入出力を使って、データを受け渡しているだけ
PowerShellの関数なら、
関数名 param1 param2
のようにすれば引数となり、
シェル変数 $args[0] などで参照できる
$ary = ls -File c:\scripts\*.* -include *.txt,*.log
一方、コマンドではこのように、
特定のディレクトリ内のファイルで、特定の拡張子のもの、
のようにオプション指定をするので、引数は使わない
0817デフォルトの名無しさん
2015/07/19(日) 00:12:11.51ID:eFeTA1Y7みなさん色々説明して下さってありがとうございます。
痛い質問者装ってるわけではありません。
本当に勉強中の者です。
>>814さんの補足のようにa1の出力をa2の引数にできると思ってました。
ここが根本の勘違いのようでした。
お騒がせしてすみません。
0818デフォルトの名無しさん
2015/07/19(日) 00:24:43.98ID:5PwANh2+なにが楽しくてんなことやってんだろな
死ねばいいのに
0820デフォルトの名無しさん
2015/07/19(日) 00:36:32.15ID:eFeTA1Y7自分の質問の間に書かれてたので自分の事かと思いました。
わざわざありがとうございます。
0821デフォルトの名無しさん
2015/07/19(日) 16:54:58.11ID:+63DwPcFそういう場合配列も1から始めたほうが良いんでしょうか?
ずれてしまうのはやはり厄介だと思います。それでも0から始めたほうがいいなら
そのメリットなど教えてください。
0822デフォルトの名無しさん
2015/07/19(日) 17:26:04.90ID:egOXVksga[0]を未使用のまま
1個分無駄にしてメモリ使用したいというのならそうすればいい
ただし変なおぼえ方をして「ボクはC言語使えます」とか言ってたら蹴飛ばされる
メリットがわからないなら「そもそもCを使うべきかどうか」から疑った方がいい
0823デフォルトの名無しさん
2015/07/19(日) 17:28:54.54ID:egOXVksgCの隠れた前提として
コンピュータに楽をさせるために人間様が苦労を厭わない
というのがある。イヤなら他を探すべき
0824デフォルトの名無しさん
2015/07/19(日) 20:19:42.77ID:SgxJVovQどうぞご自由に。
いずれ自分でわかるときがくると思う。
0825デフォルトの名無しさん
2015/07/19(日) 20:44:13.20ID:wG1rbxp8意味が違うんだということを明確にしていればどっちでもかまわんだろう。
0826デフォルトの名無しさん
2015/07/19(日) 21:17:13.15ID:AxVShlkvデータに(数学の慣例に従い)1で始まる序数を付けるという概念的な美しさよりも
アドレス+オフセットでデータをポイントする(もしくはアドレスそのもの=ポインタで直接ポイントする)
という計算機のアーキテクチャが透けて見えるメリットを優先したということだと思う
0827デフォルトの名無しさん
2015/07/19(日) 22:10:06.74ID:gF+ri5Ym他の言語あたったほうがよろしいかと
0828デフォルトの名無しさん
2015/07/20(月) 01:47:44.97ID:joK6s3J+0829デフォルトの名無しさん
2015/07/20(月) 03:22:51.94ID:P/gUAIjLちょっ集合論の公理から1+1=2を証明する人でつか
0830デフォルトの名無しさん
2015/07/20(月) 03:26:56.43ID:LmmOYuiW0831デフォルトの名無しさん
2015/07/20(月) 04:30:37.33ID:ERLwMp/J0832デフォルトの名無しさん
2015/07/20(月) 06:11:54.78ID:/eaXeO3L0833デフォルトの名無しさん
2015/07/20(月) 08:03:33.48ID:DyR306670834デフォルトの名無しさん
2015/07/20(月) 10:56:33.69ID:Vtqi9X2t0835デフォルトの名無しさん
2015/07/20(月) 20:28:02.59ID:C1R2wVAqそんなのイギリス英語の基本だろ。
0836デフォルトの名無しさん
2015/07/20(月) 20:41:14.80ID:n95qMHkTじゃあ一回は二階なんですか?
0837デフォルトの名無しさん
2015/07/20(月) 21:15:51.15ID:UhiBY71r1F 地面から1個上の床 −2階
2F 地面から2個上の床 −3階
0838デフォルトの名無しさん
2015/07/20(月) 21:18:21.00ID:gdO7FQR/0839デフォルトの名無しさん
2015/07/20(月) 21:41:43.70ID:n95qMHkT0840デフォルトの名無しさん
2015/07/20(月) 21:48:49.32ID:4CXi8vOi0841デフォルトの名無しさん
2015/07/20(月) 21:57:34.42ID:TvySEdcJ0842デフォルトの名無しさん
2015/07/20(月) 22:03:37.15ID:qFejjwvs0843デフォルトの名無しさん
2015/07/20(月) 22:28:54.40ID:AGKnnOa80844デフォルトの名無しさん
2015/07/20(月) 22:38:05.03ID:4CXi8vOiそこはGスポットだから押しちゃダメ
0845デフォルトの名無しさん
2015/07/21(火) 08:45:12.18ID:0FycKRkrスレが1からスタートしていることに対しても疑問を思うクチですか?
0846デフォルトの名無しさん
2015/07/21(火) 08:56:17.65ID:F8CwWRVR0847デフォルトの名無しさん
2015/07/21(火) 12:22:44.82ID:MswFwDh+0848デフォルトの名無しさん
2015/07/21(火) 13:10:51.08ID:LE8EkOwN0849デフォルトの名無しさん
2015/07/21(火) 13:24:18.33ID:rxIs9lXh0850片山博文MZ ◆T6xkBnTXz7B0
2015/07/21(火) 17:56:41.81ID:wZ08wKQKhttps://github.com/katahiromz/vec
アンパンマン、新しい顔ができたよ!!!
0851デフォルトの名無しさん
2015/07/21(火) 18:10:44.86ID:rxIs9lXh夏休みに入った新入学生に尊敬してもらいたいのかな? 犯罪者君
0852デフォルトの名無しさん
2015/07/21(火) 19:53:00.02ID:Irntfcjbxy平面的な2次元配列の場合普通はどう?
D[x][y] or D[y][x]
という意味で。
状況によるというのが回答だと思うけど、
俺は今まで全てD[y][x]で書いてきた。
0853デフォルトの名無しさん
2015/07/21(火) 20:19:22.98ID:Lp0T2eYV状況ってどんな状況だよ
自分ルールは自分で閉じた世界だけにしとけよ
0854デフォルトの名無しさん
2015/07/21(火) 22:17:58.94ID:lFhEB+KC「1から始めるのが自然なのに0から始めるのはけしからん」
的なことが書いてあって、可哀想な人だなと思ったことを思い出した。
今なら解る。
多分、「無い」を「0個」と表現するのが許せない人なんだろう。
0855デフォルトの名無しさん
2015/07/21(火) 22:40:35.31ID:ZFydeI54でもゼロが無いことくらい誰でも感覚的にわかってるよね。
0856デフォルトの名無しさん
2015/07/21(火) 23:29:45.43ID:tYidWCQl0857デフォルトの名無しさん
2015/07/21(火) 23:34:00.23ID:ykIrCRFz無いっていう言葉使っている時点でゼロの概念を持っているだろ。
0858デフォルトの名無しさん
2015/07/21(火) 23:43:07.17ID:LWWHwaoy1と足し算で、2=1+1がつくれるが。
1と引き算でつくれる1-1が0だ。
0859デフォルトの名無しさん
2015/07/22(水) 00:48:02.54ID:1bYFtsNSいったいどういう意味かなあ。
物質とか現象としてということかなあ。
0は存在しなくても1や2は存在するのだろうか。
0860デフォルトの名無しさん
2015/07/22(水) 01:03:30.69ID:r7y5Ju2fお願いします
0861デフォルトの名無しさん
2015/07/22(水) 01:11:50.52ID:M/n0+BzS0も1も2も人間が作り出した概念。
0862デフォルトの名無しさん
2015/07/22(水) 01:19:33.86ID:1bYFtsNSそう書いても良かったんだけど当人がどういうつもりだったかを知りたい。
0863デフォルトの名無しさん
2015/07/22(水) 03:46:38.65ID:npJxtfpG0864デフォルトの名無しさん
2015/07/22(水) 04:30:31.09ID:Lt27C2H/0865デフォルトの名無しさん
2015/07/22(水) 04:36:42.98ID:npJxtfpG0866デフォルトの名無しさん
2015/07/22(水) 05:03:01.96ID:npJxtfpGコンパイラのこと考えたことないの?
0867デフォルトの名無しさん
2015/07/22(水) 05:13:57.35ID:GNp+ziID0868デフォルトの名無しさん
2015/07/22(水) 11:59:40.81ID:kIeW59ou0869デフォルトの名無しさん
2015/07/22(水) 17:52:32.56ID:QdTviyYV配列が0から始まるって言葉自体に違和感がある。
配列の先頭アドレスがaであって、
その先頭アドレスには当然最初の要素が入っていて、
次のアドレスには次の要素が入っているというごく自然な表現という感覚しかない。
0870デフォルトの名無しさん
2015/07/22(水) 17:59:13.21ID:yxlux+WSポインタも+1してから使わないとバグる
そういう目に遭いたいらしいわ
0871デフォルトの名無しさん
2015/07/22(水) 18:11:45.18ID:8TpaOP4G迷ってんならVbaでも使えよ。
-100でも何でも行けるぞ
0872デフォルトの名無しさん
2015/07/22(水) 21:09:43.08ID:kfPxwJJV0873デフォルトの名無しさん
2015/07/23(木) 01:19:55.01ID:65Ur3bjf0874デフォルトの名無しさん
2015/07/23(木) 21:33:06.04ID:+NRG6mWLどっちでも構わん
ただperlみたいに選択できるのは勘弁
0875デフォルトの名無しさん
2015/07/23(木) 23:34:14.60ID:168Aqn4V言葉遊びに過ぎないし、パラドックスの研究の古いテーマじゃん。
その理屈だと、1や2も「存在」はしない。
0876デフォルトの名無しさん
2015/07/24(金) 00:30:41.05ID:waPr5lt7配列とコレクションの違いが分からないようではダメ。
0877デフォルトの名無しさん
2015/07/24(金) 01:52:04.39ID:IyIFnxBR何言ってるんだ?
0878デフォルトの名無しさん
2015/07/24(金) 06:50:29.62ID:26mYiG3x配列それ自体は、自分自身の要素数の情報を持たず、アドレス(ポインタ or 添え字)を経由しないと任意の要素にアクセスできない。
ましてや、先頭番地の情報など持っているはずもない。配列名は先頭要素の別名に過ぎない。
ここまで言えば、コレクションとの違いもわかるだろ。
0879デフォルトの名無しさん
2015/07/24(金) 08:51:49.66ID:U7biJhIK何を言っているのかわからないっていうのは、>>874に対して>>876と言う、的外れとしか思えないレスをしていることに対してなんだけど…
あれ?もしかして触っちゃいけない人なのかな?
0880片山博文MZ ◆T6xkBnTXz7B0
2015/07/25(土) 12:27:26.19ID:Uks06VJalis (singly linked list for C language)
https://github.com/katahiromz/lis
lst (doubly linked list for C language)
https://github.com/katahiromz/lst
0881デフォルトの名無しさん
2015/07/25(土) 15:04:27.61ID:wTwAcdhUそれだとまるで配列名には最初のデーターが詰まってるみたいじゃないのよさ
配列名にはアドレスしか入ってないのに
0882デフォルトの名無しさん
2015/07/25(土) 17:41:25.81ID:GU4GIGEf0883デフォルトの名無しさん
2015/07/25(土) 17:44:56.04ID:bLirGUmg片山先生を知らないなんて完全に潜りだろw
0884デフォルトの名無しさん
2015/07/25(土) 18:44:06.12ID:6zkZTklyところで camellia はオリジナルのソースから手を加えたの?
0885デフォルトの名無しさん
2015/07/25(土) 21:20:02.61ID:GU4GIGEfモグリでごめんね?
>>884
camelliaは仕様書を読んで一から自分で実装しましたよ。
手直しして今はだいぶ速くなったよ。
0886デフォルトの名無しさん
2015/07/26(日) 14:28:04.79ID:d9clz1q1なんかバージョン5のいくつあたりかから
local $[=1;
とかやると怒られるようになっとる
言語仕様がある日突然変わるのがスクリプト言語の醍醐味
0887デフォルトの名無しさん
2015/07/27(月) 02:11:37.78ID:cbxH7i7j0888片山博文MZ ◆T6xkBnTXz7B0
2015/07/28(火) 16:53:34.62ID:QJSjRtNVvec2 (fixed block vector for C language)
https://github.com/katahiromz/vec2
0889デフォルトの名無しさん
2015/07/28(火) 21:07:16.02ID:vblF84RR怒られるというか、deprecated だね。使えなくなったわけじゃないけど
そういうことをしたければ tie しなさいということだね。
0890デフォルトの名無しさん
2015/07/31(金) 23:08:06.27ID:PqGJhZis0891デフォルトの名無しさん
2015/07/31(金) 23:11:51.42ID:aMEtXk8u0892デフォルトの名無しさん
2015/07/31(金) 23:56:20.21ID:y5XWVYV7どっちでもいいだろ。
好きな方を選べ。
0893デフォルトの名無しさん
2015/08/01(土) 21:25:51.86ID:jIqrjnfJfreeでメモリを解放する時はサイズの指定をしなくてもいいのは何故なんでしょうか?
0894デフォルトの名無しさん
2015/08/01(土) 21:41:16.47ID:QePJH2WNこんな感じ
struct mem {
size_t size;
...
char data[]; <==== mallocはこのアドレスを返す
};
0895デフォルトの名無しさん
2015/08/01(土) 22:13:36.30ID:AlahCyHh0896デフォルトの名無しさん
2015/08/01(土) 22:20:16.52ID:jIqrjnfJありがとうございました。
参考書とかには標準関数の使い方の説明はあっても
内部の実装の仕方の説明まではなかなかないので勉強になりました。
0897デフォルトの名無しさん
2015/08/01(土) 22:32:59.39ID:mMrs3R6Aという実装で二番目の引数を見るという
こともありえる鴨。規格外になるかも
しれないし、ソースレベルでの互換性が
失われるかもしれないが。
char *p=malloc(1024);
free(p); //普通の意味での解放
free(p,256);// pの先頭から256バイト目以降1023バイト目
までを解放
0898デフォルトの名無しさん
2015/08/01(土) 22:35:23.69ID:mMrs3R6Avoid _free(const void*,...);
#define free(x) _free(x,0)
とかしてるんだろね
0899デフォルトの名無しさん
2015/08/01(土) 22:36:26.78ID:qeAWL2lY規格外どうのこうのの前に、二番目の引数の有無をどうやって判断するんだよ...
0900デフォルトの名無しさん
2015/08/01(土) 22:36:50.00ID:mMrs3R6Aぢゃなくて_free(p,256)
だた。スマソ
0901デフォルトの名無しさん
2015/08/01(土) 23:25:35.49ID:CYsajC4Sアドレス100〜300番地を確保する。
それをプログラムは覚えている
次に、free 100番地と、
先頭アドレスだけを指定しても、
プログラムはサイズも覚えているので、
自動的に、100〜300番地を解放する
0902デフォルトの名無しさん
2015/08/01(土) 23:27:05.42ID:oGwoY1R10903デフォルトの名無しさん
2015/08/01(土) 23:41:09.84ID:oGwoY1R1ソフトウェアエンジニアリングの仕事ではない
Javaやれ
0904デフォルトの名無しさん
2015/08/02(日) 01:01:31.96ID:7iVchM+h0905デフォルトの名無しさん
2015/08/02(日) 02:07:49.29ID:wwgo3D7Q実装なんて分からない。
妄想レスもあるので注意。
0906デフォルトの名無しさん
2015/08/02(日) 03:28:18.62ID:sfcp/621と言ってると、ますます日本のソフトウェア産業が土木工事になります。
0907デフォルトの名無しさん
2015/08/02(日) 08:15:52.14ID:8TunHJN8実装屋はどこまで行っても実装屋でしかない。
0908デフォルトの名無しさん
2015/08/02(日) 09:00:03.54ID:YdYZAVrS場所に重要な情報を置くのは汎用mallocでは
あまりやりたくない実装方法
隔離保護された場所にビットマップとかを
置いて(malloc領域を)管理。
0909デフォルトの名無しさん
2015/08/02(日) 09:04:25.44ID:SLv/zRddたかだかユーザーのプログラムにリンクされたライブラリの分際で
「確保保護された」領域を入手できるのか?
0910デフォルトの名無しさん
2015/08/02(日) 09:39:58.33ID:8sAzrEqXあの偏屈王DJBでさえ、mallocは自作してなかったのにスゲー。日本の宝。
是非公開して欲しい。
>>909
ページを書込み保護すれば出来る。きっと>>908はそうやっている。
超絶テクニックで、malloc/freeの都度発生する書き込みモードの変更による性能低下は軽く克服してるんだろう。
是非是非公開して欲しい。
0911デフォルトの名無しさん
2015/08/02(日) 09:49:40.21ID:SLv/zRdd>ページを書込み保護すれば出来る。
たかだかユーザーモードあるいはユーザーに提供された領域を
書き込み保護をかけるとか,バンバン使われる malloc()/free()
ルーチンが重くならないかね?
0912デフォルトの名無しさん
2015/08/02(日) 09:51:52.46ID:QpxppfHz0913デフォルトの名無しさん
2015/08/02(日) 10:08:57.20ID:8sAzrEqXそこは偏屈王DJBを楽勝で凌駕する>>908の事だから、凡人には思いつかない超絶テクニックで回避してるに決まっている。
0914デフォルトの名無しさん
2015/08/02(日) 14:36:02.95ID:4+/pksinちょっそれK&R本に実装例の1つが詳細に書かれていた希ガス…
0915デフォルトの名無しさん
2015/08/02(日) 14:48:48.65ID:4+/pksinttp://radlon.github.io/blog/2014/08/25/krmalloc/
K&R malloc!!!!!!!!!!!!!!!11!!!!!!!!1111
0916デフォルトの名無しさん
2015/08/02(日) 15:01:15.98ID:q/ikqjRA0917デフォルトの名無しさん
2015/08/02(日) 20:33:28.15ID:q4wUyYJ764ビットとアドレス空間のどこかにある
ビットマップをうっかり破壊する確率は
比較的低いって話だろ。
ってか >>894 みたいな実装は、古いシステムと組み込み系でしかもう使われていないのでは。
0918デフォルトの名無しさん
2015/08/02(日) 20:42:19.52ID:4+/pksinVCでは現役
メモリブロックの管理情報(リンクチェーン)が実データ領域と隣接して存在するからこそ
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
とかでリンクチェーンの破壊を検出できすぐる、
ていうか>>894みたいな実装の代表例がK&R本に書いてあるやつなのであって、
マジK&R本は不磨の大典
0919デフォルトの名無しさん
2015/08/02(日) 20:44:57.53ID:4+/pksinデータ領域でメモリ破壊が起きても動いてしまうビットマップ方式はちょっと…
0920918
2015/08/02(日) 20:51:55.93ID:4+/pksin(もしくは_CrtSetDbgFlag(_CRTDBG_CHECK_ALWAYS_DF)でmalloc()/free()毎に自動チェック)
実データ領域でのメモリ破壊がこれで高い率で検出できる
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
というのはプログラム実行時のリークチェックのやつ
0921片山博文MZ ◆T6xkBnTXz7B0
2015/08/02(日) 21:45:05.24ID:/jG0U/Tzどうすればいいか。C++は簡単だった。
0922片山博文MZ ◆T6xkBnTXz7B0
2015/08/02(日) 22:01:40.19ID:/jG0U/Tz0923デフォルトの名無しさん
2015/08/02(日) 22:33:38.49ID:fK6YlTvs0924デフォルトの名無しさん
2015/08/03(月) 07:14:10.73ID:PHSALL0jprintf("Aを入力して下さい >");
scanf("%x",&n);
printf("%d",n);
このように書いたときに、最後に10が表示されるのですが、なぜでしょうか。
Aが入力されると16進数としてnに格納されると思いますが、
最後にはそれを10進数で出力するので65になるのではないでしょうか?
0925デフォルトの名無しさん
2015/08/03(月) 07:25:47.50ID:qre9PyEMA=10, B=11, C=12,,,
例えば、1A とか入力出来るが、どう考える?
0926デフォルトの名無しさん
2015/08/03(月) 11:03:40.66ID:PHSALL0jありがとうございました。納得しました。
「16進数のA」と書いてあったのですがそういうことだったのですね。
0927デフォルトの名無しさん
2015/08/06(木) 21:51:45.27ID:sGt3KLZv何も新しいソフトウェア技術を取り入れてない
オブジェクト指向止まりの化石言語
こんなのにしがみついてたら未来ないよ
0928デフォルトの名無しさん
2015/08/06(木) 22:26:04.26ID:0GTb8PhE未来の有る言語を具体的に挙げてみよ
0929デフォルトの名無しさん
2015/08/06(木) 22:55:02.33ID:sGt3KLZv0930デフォルトの名無しさん
2015/08/06(木) 22:56:09.34ID:B7i1Mk8j0931デフォルトの名無しさん
2015/08/06(木) 23:19:33.87ID:8xO+ORV80932デフォルトの名無しさん
2015/08/06(木) 23:31:28.33ID:0GTb8PhEもうちょっと面白い展開を期待した。
0933デフォルトの名無しさん
2015/08/07(金) 01:51:10.39ID:NqgUCWy0アセンブラ、
無限の可能性を秘めている。
0934デフォルトの名無しさん
2015/08/07(金) 07:15:20.34ID:RTmVcCCe完全に時代遅れなんだよ
0935デフォルトの名無しさん
2015/08/07(金) 07:17:21.98ID:Pymojyae0936デフォルトの名無しさん
2015/08/07(金) 07:45:43.98ID:LuqeIwCC0937デフォルトの名無しさん
2015/08/07(金) 08:18:27.03ID:s6JmbTZM俺も俺も>>932
0938デフォルトの名無しさん
2015/08/07(金) 13:43:24.15ID:uyJvzdpFああ知ってるよ
確か COBOL/2005 がいきなり名前を変えたやつだろ
0939デフォルトの名無しさん
2015/08/07(金) 21:48:55.89ID:RTmVcCCe大学教授が古い人間しかいないから時代遅れの化石言語しか教えられない
WEB業界では新しいソフトウェア技術がどんどん出て来てるのに完全に日本は置いていかれている
C言語なんて糞言語やる前にもっと危機感を持つべき
0940デフォルトの名無しさん
2015/08/07(金) 21:54:31.44ID:TJyjY+1J0941デフォルトの名無しさん
2015/08/07(金) 21:56:09.13ID:RTmVcCCe既得権益にしがみついている時代遅れの大学関係者のせいなのは間違いないね
0942デフォルトの名無しさん
2015/08/08(土) 01:24:04.78ID:LsDzIRl9ttp://www.geocities.co.jp/Playtown-Dice/3834/KAGE-OL12.jpg
0943デフォルトの名無しさん
2015/08/08(土) 06:48:13.81ID:D0x4pWwH0944デフォルトの名無しさん
2015/08/08(土) 06:53:47.83ID:D0x4pWwHttp://d.hatena.ne.jp/minghai/20140402/p1
あと副読本として『翻訳系構成論序論』とか、
内容もさることながら翻訳がたいへん味わい深い
0945デフォルトの名無しさん
2015/08/08(土) 07:31:28.76ID:Ud96BClWあと、h抜きは素人っぽいからやめろ。
0946デフォルトの名無しさん
2015/08/08(土) 08:24:02.24ID:cYx2D4V+> あと、h抜きは素人っぽいからやめろ。
自称玄人カッケーっす
0947デフォルトの名無しさん
2015/08/08(土) 09:11:04.96ID:D0x4pWwH0948デフォルトの名無しさん
2015/08/08(土) 09:31:28.19ID:D0x4pWwHstrtol()の第1引数はconst char*でconst付きなのに、
第2引数はchar**であってconst無しになるなのは何でですか??
0949デフォルトの名無しさん
2015/08/08(土) 11:23:27.11ID:Ud96BClW素人の補集合は玄人じゃない。
補集合は高校数学で学ぶから、中学生はROMってろ。
0950デフォルトの名無しさん
2015/08/08(土) 12:03:47.08ID:cYx2D4V+> あと、h抜きは素人っぽいからやめろ。
上から目線でアホなこと言ってるから自称玄人って言われてるだけ
最近覚えて使いたかったんだろうけど補集合は関係ない
0951デフォルトの名無しさん
2015/08/08(土) 12:27:31.84ID:y5hyBra10952デフォルトの名無しさん
2015/08/08(土) 12:44:06.05ID:Ud96BClWhを抜くバカに対して上から目線は当然。
繰り返すが、中学生は補集合習ってから出直しなさい。
0953デフォルトの名無しさん
2015/08/08(土) 12:47:15.24ID:Ud96BClW0954デフォルトの名無しさん
2015/08/08(土) 13:27:04.14ID:HVhVW7oy自己紹介乙
0955デフォルトの名無しさん
2015/08/08(土) 13:43:02.67ID:Ud96BClWこりゃまた、h抜きに負けるとも劣らない古参煽り。
ニワカ乙
って、返すんだっけ? 頭悪そう。
0956デフォルトの名無しさん
2015/08/08(土) 13:51:25.58ID:cYx2D4V+さすが、にちゃん玄人ですね!
0957デフォルトの名無しさん
2015/08/08(土) 14:04:41.69ID:1hj8NI9zもっと大人にならなきゃいけないよね
0958デフォルトの名無しさん
2015/08/08(土) 14:16:31.72ID:Ud96BClW補集合習ってから出直せと言ったはずだぞ。中学生。
0959デフォルトの名無しさん
2015/08/08(土) 14:43:13.18ID:cYx2D4V+で、どれとどれが補集合じゃないって言ってるんだ?
書いてみ w
0960デフォルトの名無しさん
2015/08/08(土) 14:48:59.02ID:1hj8NI9zって書いてあるじゃん
なんか低レベルすぎる争いが楽しそうなので混ぜて
0961デフォルトの名無しさん
2015/08/08(土) 14:56:08.54ID:Ud96BClWまだ、習ってないことを無理して理解しなくても良い。
0962デフォルトの名無しさん
2015/08/08(土) 15:17:48.69ID:cYx2D4V+h抜きしない奴は玄人って言ってるわけじゃないぞ
低レベルの話にもついてこれないなら割り込んでくるなよ...
>>961
はい、逃げた w
0963デフォルトの名無しさん
2015/08/08(土) 15:34:58.60ID:Ud96BClW補集合を知らないことを、そんなに必死でアピールしなくて良いよ。中学生。
0964デフォルトの名無しさん
2015/08/08(土) 17:48:46.64ID:cYx2D4V+>>959 にレスできないチキン w
0965デフォルトの名無しさん
2015/08/08(土) 17:55:19.32ID:Gxm0vaAV長年仕事でプログラミングしてる平凡なプログラマーに負ける事っていったら
何ですか?
どんだけプログラミングしてても実務で培われるものってあるじゃないですか
そういうのが知りたいです。ちなみに僕は優秀でもなんでもない趣味プログラマですw
0966デフォルトの名無しさん
2015/08/08(土) 18:03:00.86ID:1qUf1CZr使いきる気かよ
0967デフォルトの名無しさん
2015/08/08(土) 18:08:16.54ID:D0x4pWwHようわからんが仕様と検証と納期に対してどんだけシビアになれるかの違いじゃないの
0968デフォルトの名無しさん
2015/08/08(土) 18:13:42.89ID:D0x4pWwH併せて工数は予算内に、
ていうか>>948の回答も誰かよろしくなのデス…
パーサを作るときにstrtol()の第1、第2引数のインターフェースを真似た関数をしばしば作るのですが、
第2引数をconst付きにしなくていいのか今も悩み中、
あと>>944の結びは「翻訳もカッケーぃ☆」としとけば完璧だったorz
0969デフォルトの名無しさん
2015/08/08(土) 19:04:38.81ID:Ud96BClW心配すんな中学生。クラスの平均以上の学力あって、補集合習えばわかるようになるから。
>>968
中学生弄ってて回答した気になってたわ。第2引数がconstじゃないのは、const char **にはchar **も渡せる。
すなわちhoge(const int); 以下の意味しかないが、それでもconstつけたいならつければよい。
0970デフォルトの名無しさん
2015/08/08(土) 19:50:59.65ID:D0x4pWwHちょっ>>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だとエラーになる
0971デフォルトの名無しさん
2015/08/08(土) 20:17:04.90ID:Ud96BClWそれをstrtolのプロトタイプで防止しようとするのが間違い。
第2引数がconstであっても、
char *endptr;
strtol("123x", &endptr);
はエラーではない。
> あと引数の型const char**に対し、char**型変数を渡せるというのは真実としていかがなものかと…(VCだとエラーになる
ここはCのスレだよ。C++ならエラーだろうね。
0972デフォルトの名無しさん
2015/08/08(土) 20:27:38.50ID:D0x4pWwHほんまや(゜д゜)!Cだとconst char** end;でエラーにならない
はずかC〜(*ノノ
0973デフォルトの名無しさん
2015/08/08(土) 20:43:42.60ID:cYx2D4V+補集合でどや顔してるけど、補集合関係ないことは理解できないんだな
関係あるならちゃんと説明できるよね? w
0974デフォルトの名無しさん
2015/08/08(土) 20:45:16.30ID:Ud96BClW高校で習うまで我慢してなさい。中学生。
0975デフォルトの名無しさん
2015/08/08(土) 20:58:55.89ID:1hj8NI9z0976デフォルトの名無しさん
2015/08/08(土) 21:05:28.11ID:Ud96BClW0977デフォルトの名無しさん
2015/08/08(土) 21:15:13.37ID:cYx2D4V+もう逃げきりを図ろうとしてるのはみえみえ
>> あと、h抜きしない方が玄人っぽいよ
> 自称玄人カッケーっす
ってなってたらこいつどう言うんだろうな w
0978デフォルトの名無しさん
2015/08/08(土) 21:21:07.53ID:1hj8NI9zじゃあconst char*にしてもchar*が渡せるからそれも意味がないんですね
じゃあ引数につけるconstなんて全て意味がないんですねわかります
0979デフォルトの名無しさん
2015/08/08(土) 21:37:14.26ID:D0x4pWwHconst char*にキャスト無しでchar*を代入することはC言語でも非合法だからその噛み付き方は無いわ〜
0980979
2015/08/08(土) 21:39:27.65ID:D0x4pWwHchar*にconst char*を代入するのはC/C++ともにNG
char**にconst char**を代入するのはCだとOK、C++ではNG
0981デフォルトの名無しさん
2015/08/08(土) 21:44:06.68ID:Ud96BClW補集合習えばそれもわかるようになるよ。
0982デフォルトの名無しさん
2015/08/08(土) 22:04:53.22ID:Ud96BClW意味ないだろ。
void hoge(const char **p)
{
static const char s[] = "alb";
*p = s;
}
void hage(void)
{
char *p;
hoge(&p);
*p = 0;
}
0983!rebuild:age
2015/08/08(土) 22:13:50.40ID:9YQ92kuf0984デフォルトの名無しさん
2015/08/08(土) 22:21:53.19ID:1hj8NI9zstrtolがconstをつけるかどうかを判断する箇所ではないから制約にしていないだけ
第1引数につくconstはstrtolの内部ではポインタ先の実態を変更しないということを示す
strtolの中の操作を制限するという意味になるのでそう実装していることを使用者に示している
第2引数の先頭にconstをつけるかどうかに対応するのは
第1引数に渡される文字列自身がconstなのかどうか
そしてそれはstrtolの関与する部分ではない
>>970のようにconst文字列を渡す前提ならconstがあっても問題ないが
constじゃない文字列を渡して変換できなかった箇所を起点に文字列を変更することも考えられる
するともし第2引数にconstがついていると(やらなくてもコンパイルできるかどうかは置いておいて)constからconstなしへのキャストをすることになる
0985デフォルトの名無しさん
2015/08/09(日) 00:33:45.74ID:ofrSttk10986デフォルトの名無しさん
2015/08/09(日) 04:54:16.32ID:ofrSttk10987デフォルトの名無しさん
2015/08/09(日) 05:52:26.39ID:h6XvpjyRあっても無くても意味が無いなんていう事じゃ無い。
constは呼び出し先での制約であり、呼び出し側を制約する事はできない。
ので、意味が無い。
0988デフォルトの名無しさん
2015/08/09(日) 06:48:44.91ID:TarQJqGzもうその返ししかできないんだな恥ずかしすぎるわ w
0989デフォルトの名無しさん
2015/08/09(日) 07:09:46.99ID:TarQJqGzC言語なら俺に聞け(入門編)Part 130
http://peace.2ch.net/test/read.cgi/tech/1439071526/
0990デフォルトの名無しさん
2015/08/09(日) 08:32:59.69ID:i0YjHh3Pついてない場合はどっちともとれるから中途半端よねぇ
0991デフォルトの名無しさん
2015/08/09(日) 08:44:02.42ID:uP4RKIW6乙乙乙
0992デフォルトの名無しさん
2015/08/09(日) 09:09:30.47ID:Mf04DnbC補集合理解してれば
>> あと、h抜きしない方が玄人っぽいよ
こんな発言はしないから。キミの妄想は実現しない。
頑張って補集合勉強しろよ。
0993デフォルトの名無しさん
2015/08/09(日) 10:07:05.43ID:UBu5K04W前提命題
XはURLをh抜きで書く→Xは素人である ( = ¬((XはURLをh抜きで書く)∧¬(Xは素人) )
から
XはURLをhを抜かずに書く→Xは玄人である ( = ¬(¬(XはURLをh抜きで書く)∧¬(Xは玄人) )
という命題を導くためには、
{ 素人 } ∩ { 玄人 } = φ (排中立)
が成立せねばならないぬが、{ 素人 } ∩ { 玄人 }が無限集合である以上、
演繹系を無限集合の排中律を認めるやつに固定せねば妥当な演繹にならない
0994デフォルトの名無しさん
2015/08/09(日) 10:10:28.22ID:TarQJqGz>>988
ループつまんね
0995デフォルトの名無しさん
2015/08/09(日) 10:16:29.21ID:QKRToHAT0996デフォルトの名無しさん
2015/08/09(日) 10:18:03.07ID:UBu5K04WC言語でおk
0997デフォルトの名無しさん
2015/08/09(日) 10:22:58.14ID:QKRToHATとかアーキテクチャにまで依存し出したりするからそういう考え方は根絶やしにしたい
0998デフォルトの名無しさん
2015/08/09(日) 11:18:15.91ID:9Ej9Po2R>>(排中立)→「排中律」
『広辞苑』には、「排中原理」と書いてある。この方がもっと分かりやすいかも
0999デフォルトの名無しさん
2015/08/09(日) 11:31:16.30ID:QKRToHATこれは自明なの?
1000デフォルトの名無しさん
2015/08/09(日) 11:41:47.48ID:855SMF2a> out引数
ようやくそこに言及する人が出てきたか
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。