C言語なら俺に聞け 143

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ b375-rVGZ)
垢版 |
2017/10/27(金) 21:28:08.20ID:pAogLeJi0
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/

前スレ
C言語なら俺に聞け 142
http://mevius.2ch.net/test/read.cgi/tech/1502364083/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2017/11/30(木) 10:41:32.87ID:5xc99BMT0
arrは&arr[0]の糖衣構文なので型は同じint*だろ
2017/11/30(木) 10:46:30.46ID:Rc2VGt53a
糖衣構文なのになんでわかりづらくなってるんすかね
2017/11/30(木) 10:48:13.06ID:I+JVe+Ukp
まあ、sizeofしたら分かるよ。
2017/11/30(木) 10:53:47.57ID:5xc99BMT0
arr=&arr[0]≠&arr
2017/11/30(木) 10:56:17.41ID:CwUb7XwN0
代入左辺の int* に渡す右辺
関数引数の int* に渡す引数
ここに渡す際に先頭要素へのポインタを与えてるだけで

変数そのものはポインタにはなっていなくて配列のまま
2017/11/30(木) 11:01:32.20ID:I+JVe+Ukp
arrは要素10持つ配列の先頭アドレスを返す、サイズはint 10個分
&arr[0]は、配列要素0番目のアドレスを返す、サイズはint 1個分
先頭アドレスが欲しいだけなら型キャストして使えばいい。
代入に使うならサイズが違うから上手く行かない。
2017/11/30(木) 11:10:18.71ID:5xc99BMT0
arr = &arr[0] ≠ &arr
sizeof(&arr) = sizeof(&arr[0]) ≠ sizeof(arr)
570デフォルトの名無しさん (ワッチョイ a66e-hJGX)
垢版 |
2017/11/30(木) 12:23:05.77ID:/QNJXUpA0
>>563
いーや違う
§6.3.2 Other operands
Except when it is the operand of the sizeof operator, or the unary & operator, or is a string literal used to initialize an array, an expression that has type ‘‘array of type'' is
converted to an expression with type ‘‘pointer to type ' that points to the initial element of the array object and is not an lvalue.
あくまで配列からポインタへconvertedつまり元の型int[10]とは違う型int*への変換だ
2017/11/30(木) 12:39:07.57ID:wmrrhfKqM
C言語は覚えることが少ないので初心者にお勧めです👈
572デフォルトの名無しさん (アウアウカー Sa55-iHXH)
垢版 |
2017/11/30(木) 12:58:49.70ID:7wMQk3WFa
そ、そうかあ?
2017/11/30(木) 13:08:48.69ID:CNBdn6EpM
まあ他の言語よりはね
2017/11/30(木) 15:43:07.77ID:AraxvjGC0
氏名、生年月日を入力させて、年齢を出力する。(ここまではいい)
再度起動時に、同一氏名入力時は生年月日と年齢を出力する(これがわからん)

方向性がさっぱり見えない、どうすりゃいいの?
http://codepad.org/BVM0iMi4
2017/11/30(木) 15:49:01.37ID:CwUb7XwN0
入力された氏名のファイルを探す
 無い→ファイル作って 入力した生年月日を書き出すとともに変数に覚えておく
 有る→ファイルから生年月日を変数に読み込む
↑の処理で変数で覚えている生年月日から年齢を求め表示する
2017/11/30(木) 15:50:35.20ID:CwUb7XwN0
異なる氏名の分だけファイルを作っちまうけどお手軽
2017/11/30(木) 15:58:14.77ID:AraxvjGC0
if文&fread,fwriteでなんとかなります?
あと出来ればリンク先のソースコードにダメだし貰えると嬉しい
2017/11/30(木) 17:12:52.14ID:hDUXhrlWM
ファイルが一個しか使えないんなら、
その中に何の情報をどんなフォーマットで入れるか先に設計しろ。
2017/11/30(木) 17:54:17.29ID:VGvsvH1F0
>>562 言葉は悪いけど言う通りだね。
俺が書いたのは arr て名前が演算の対象として単独に現れたときに
自動的にポインタの値に変換される場合の値と型のことだった。

arr 自体はあくまで配列だから int[10]
この名前が関数の引数とかで使われた場合 &arr[0] と同じになる。
配列名は隙あらば「先頭要素へのポインタ」になりたがる。
こんな感じでよろしいか? (我ながらぎごちないけど)
580デフォルトの名無しさん (アウアウカー Sa55-iHXH)
垢版 |
2017/11/30(木) 18:07:14.42ID:rYNpG8Zla
>>577
fprintf()で一行にカンマ区切りで名前と生年月日出した方が扱いやすいのでは?

で、処理の順序としてはこうだ。

1. 名前入力。

2. 入力された名前がファイルの中にあったら一緒に入っている生年月日を出して終了。

3. 生年月日入力。

4. 名前と生年月日をファイルに追加。

5. 終了。

ファイルアクセスは2では読み出ししかせず開きっぱなしにしないでクローズする。
4では追加書き込みだけしてクローズだ。
2017/11/30(木) 18:07:34.67ID:kZZqjgS10
OLE複合ファイルで保存すればよろし
2017/11/30(木) 18:30:11.56ID:RwvI386YM
構造体配列をバイナリでrw
583デフォルトの名無しさん (ワッチョイ a66e-hJGX)
垢版 |
2017/11/30(木) 21:02:57.60ID:/QNJXUpA0
>>579
演算の対象ではなく、特定の演算子の対象な
どの演算子で&arr[0]に変換されるのか、
列挙できる知識が必要ということだ
584デフォルトの名無しさん (アウアウカー Sa55-iHXH)
垢版 |
2017/11/30(木) 21:56:39.93ID:xcZwpJOTa
XMLで

なんていうと余計にややこしくなって大変な事になるなw
2017/11/30(木) 22:05:39.04ID:ewUYSdOO0
>>583
左辺値が変換されるのであって、特定の演算子のオペランドのとき変換されるなんて仕様はないよ?
特定の演算子のオペランドのときに変換されないって仕様はあるけどさ
586デフォルトの名無しさん (ワッチョイ a66e-hJGX)
垢版 |
2017/12/01(金) 06:29:54.45ID:jGNBP26P0
>>585
Cの演算子は「特定の演算子」の集合で、
そこから、ある特定の演算子を除いた残りもまた
特定の演算子だろうがよ
2017/12/01(金) 06:50:45.43ID:NXDNhmZv0
宣言とか、演算子出てこないことぐらいあるだろ
初期化子つきの宣言に出てくる=が代入演算子だとでも思ってんのか?
2017/12/01(金) 07:18:53.95ID:NIbF5rwZM
>>584
C# とか C++ ならまだしも C言語だとちょっと辛いわな
>>574 程度なら .ini ファイルみたいな奴でいいかと
2017/12/01(金) 09:10:23.44ID:IMGPh1jC0
>>587
ちなみに、初期化子つきの宣言に出てくる=が代入演算子でないとすると、
その=は何と呼ばれるものです?
590デフォルトの名無しさん (ワッチョイ a66e-hJGX)
垢版 |
2017/12/01(金) 09:50:32.00ID:jGNBP26P0
>>587
宣言? おまえさん、int arr[10];がint *arr;に変換されるとでも思っているのか?
仮引数にint arr[10]と書くとint arr[]に読み替えられたりはするが、
そのことを言っているのなら>>562で指摘したとおりになるな
ただし>>560にはセミコロンが付いていてそういう逃げ道は封鎖されているわけだが
2017/12/01(金) 10:53:53.03ID:j3o2JE0u0
int arr[10];
int *p = arr; /* このときの arr の解釈 */
を指してるのだと思うの。
ここで出てくる = は代入演算子じゃないぜ って
2017/12/01(金) 11:01:39.32ID:y1pVtdhXM
我輩は宣言子と初期化子の間の=である。名前はまだ無い。
593デフォルトの名無しさん (ワッチョイ a66e-hJGX)
垢版 |
2017/12/01(金) 11:08:59.34ID:jGNBP26P0
>>589
初期化宣言子 init-declarator
2017/12/01(金) 12:08:20.94ID:IMGPh1jC0
>>593
なるほど、情報サンクスです。
C++だと、同じものが代入演算子と称されていて。コンストラクタ内で代入演算子をオーバーロードすべし、
のような言い方をよく見かけますので。Cでも同じ呼び方をするのかと思ってました。
2017/12/01(金) 12:17:22.80ID:y1pVtdhXM
いやまて init-declarator は、"宣言子"か"宣言子=初期化子"のことだぞ
2017/12/01(金) 12:22:41.61ID:IMGPh1jC0
>>594
あー、よく見たらC++ではコピーコンストラクタと代入で明確な区別があるんですね。
もっと勉強しなきゃですわ
597デフォルトの名無しさん (ワッチョイ a66e-hJGX)
垢版 |
2017/12/01(金) 13:24:35.76ID:jGNBP26P0
>>595
s/"宣言子"か//
2017/12/01(金) 14:30:51.38ID:HUofIpvH0
貞子とか初子とか
2017/12/01(金) 15:44:26.68ID:0Iysip4/d
プログラミング初心者です
車のタコメーターをフルカラーのディスプレイを使って作りたいのですが、どうすれば良いのかが全く分かりません
C言語は計算機内で式の答えを演算する程度なら使えますが、ハードを制御したりはできないです(Arduinoなら少し弄りました)
C言語で作れるのかも分からないので、簡単なところから教えてください
エンジン回転数のパルス信号は取れてます
2017/12/01(金) 15:55:36.34ID:HUofIpvH0
ターゲット環境は?
601デフォルトの名無しさん (ワッチョイ a66e-hJGX)
垢版 |
2017/12/01(金) 15:56:55.06ID:jGNBP26P0
Ardudinoを弄ったことがあってハード制御ができない?
パルス信号を取れるっていうのは、オシロスコープか何かで確認できたってことか?

・・・もしかして、こういうことか?
その信号をプログラムで読み取るには、どこの端子に繋ぐのかとか、
信号のレベルの合わせ方とか、そういうことがわからんのか?
2017/12/01(金) 16:01:06.60ID:j3o2JE0u0
マイコンに表示装置とかをくっつけて
デジタコを0から自作したいってことなのかな?

言語外の相談のほうが重要度高いような気もする
2017/12/01(金) 16:13:56.45ID:0Iysip4/d
信号→マイコン→処理
は分かります
その処理を今までPC上に表示させていた物をディスプレイに↓のようにカッコよく表示させるにはどうすれば良いのかを教えてほしいのです
https://i.imgur.com/S3sahkU.jpg
2017/12/01(金) 16:15:42.98ID:0Iysip4/d
何から調べていいのかも分からない状態です
ど素人ですみません…
2017/12/01(金) 16:54:04.97ID:kRZ1SJ+P0
そのディスプレイとやら仕様書見せてくれなきゃ
なんとも答えようがなくない?
606デフォルトの名無しさん (アウアウカー Sa55-iHXH)
垢版 |
2017/12/01(金) 16:56:05.30ID:y5AhnBkya
>>603
ターゲットのマシンは?
Windows? Linux?

ていうか、C言語でやると何で動かすにしても大変面倒だと思うので何か他の言語使った方が良いと思う。
2017/12/01(金) 16:56:22.84ID:0Iysip4/d
言語もバードも指定は無いです
寧ろ何を使えば良いのかを教えて欲しいです
2017/12/01(金) 16:59:45.04ID:0Iysip4/d
ターゲットがよく分からないのですが、コードはUNIX系のOSのemacsで書いてます
Windows上で作ったプログラムを動かしたことはあまりないですね
609デフォルトの名無しさん (ワッチョイ a66e-hJGX)
垢版 |
2017/12/01(金) 17:09:00.66ID:jGNBP26P0
ディスプレイのつなぎ方がわからんのか?
つないであるディスプレイへのコマンドの送り方がわからんのか?
2017/12/01(金) 17:42:29.56ID:jA0BeSqZ0
>>599
PCのウィンドウ環境上でウィンドウを開いてグラフィック表示って問題なら、
環境次第でここでも分かると思うけど…。

部品としての液晶やLEDのパネルのハードウェア制御ってことになると、
まずはどの部品を使うのか、って話になるな。
2017/12/01(金) 18:11:29.04ID:5uJXNlV4M
なにがベストかと聞かれても答えにくい質問だな。
自分ならデータを無線で飛ばしてタブレットでみれるwebシステムを検討したい案件だが。
2017/12/01(金) 18:28:55.76ID:LYbXDWPHH
そもそもの目的は?勉強とかお遊び?
2017/12/01(金) 18:35:32.61ID:6HJgPekDM
消費電力、サイズ制限、予算諸々考えてどの程度のハードが用意出来るかって所から

linuxやwinが動くようなリッチな環境が用意出来るなら
GUI部はCじゃなくても良くねってのが正直な感想
2017/12/01(金) 18:39:21.60ID:kbDZQVhk0
BT接続できるOBD2アダプタ(点検器具端子)買ってアンドロ端末に表示するのがお手軽かも
2017/12/01(金) 19:09:42.97ID:qQWTYDNZM
>>597
おれも少し変だとは思うけど、企画書には、宣言子単独が init-declarator に含まれてるんだよ
2017/12/01(金) 19:38:44.88ID:quTLstwT0
>>608
> ターゲットがよく分からないのですが、コードはUNIX系のOSのemacsで書いてます
根本的に分かってないようだが、「ターゲット」ってのはお前が決めるんだよ。
そして既にコードを書いていて、そこにLCDを接続したいだけなら、その環境を言えよ。
2017/12/01(金) 20:25:33.69ID:01uXYhT3d
LCD付ARMのlinuxキットでやれ
2017/12/01(金) 20:27:16.42ID:NXDNhmZv0
>>615
初期化子なしは、不定値で初期化するって意味だと納得することにしてるわ
一応、初期化の説明に含まれてるし。。。

つーことで、>>586とかには演算子のオペランドでないこともあるって理解してもらえたかな
良かった良かった
2017/12/01(金) 20:54:03.81ID:HgVhW4BC0
>>603
>信号→マイコン→処理
>は分かります
で、信号は取れたとか言ってるんだから対象の物理的扱いはわかっているんだろ。
それをどんなマイコンにどう繋ぐかだ。出来合いのマイコン基板を買ってきて
それに繋げるのか、基板から自作するのか
620デフォルトの名無しさん (ワッチョイ a66e-hJGX)
垢版 |
2017/12/01(金) 21:25:55.70ID:jGNBP26P0
>>618
586だが、だから何だ?
演算子に限らずとも、Cは明確に列挙された機能の集合だ
そこから特定の演算子を除いた残りは、
おまえが言うような曖昧な集合ではない
2017/12/01(金) 21:37:37.37ID:kbDZQVhk0
>>583 へのカウンターじゃないの?
583では 変換が走るのは 特定の演算子の対象 としてるけど

初期化においても変換が走ってる
この記述中では演算子はなくて、該当変数は演算子のオペランドになっていない って
2017/12/01(金) 21:39:28.94ID:NXDNhmZv0
>>620
ん?
配列型を持つ左辺値は特定のケースを除いてポインタ型に変換されるという
規格に明記してある話を理解してもらえればそれで十分だよ?

初期化子には演算子が含まれないこともあるって理解できたんだよね
なら、それで良いよ
623デフォルトの名無しさん (ワッチョイ a66e-hJGX)
垢版 |
2017/12/01(金) 21:43:38.60ID:jGNBP26P0
>>621 >>622
>>560からの流れ読んでね
やつはint arr[10];と定義されたオブジェクトに対する
arrというアクセスがint*だと言っているんだ
おまえら2人とも変換と言っているよな
変換てそもそも何だ?
2017/12/01(金) 21:46:07.65ID:kbDZQVhk0
>>623 俺の認識は >>570 の converted であり
arr は int[10] のまま
2017/12/01(金) 22:00:29.26ID:NXDNhmZv0
>>623
そりゃ、>>570のconvertedだろ

sizeof、&、配列の初期化に用いられる文字列リテラルを除いて、配列型をポインタ型に変換する。それはもはや左辺値ではない。
の変換
2017/12/01(金) 22:05:59.37ID:NXDNhmZv0
もしかしてarr自体がint*型を持つというアホな解釈を擁護してるとでも思われてたの?
それは>>560自身も、>>579で式中に現れた場合のことでしたって弁明してるでしょ

それとも
arr;
という識別子名だけの単文があったとき、arrがポインタ型に変換されないと思ってる?
左辺値なんだから、当然変換されるよ
2017/12/01(金) 22:11:15.92ID:kbDZQVhk0
>>625
> 配列の初期化に用いられる文字列リテラル
(その通りに動作すると期待して)普通に使ってるけど、
逆の観点の、配列のまま取り扱ってる例として挙げようとすると、見落とすわ これ
628デフォルトの名無しさん (ワッチョイ a66e-hJGX)
垢版 |
2017/12/01(金) 22:19:35.93ID:jGNBP26P0
>>626
うん、そう思っている

おまえ、なぜ
arr;
がポインタ型に変換されると思っている?

なんだか残念な答えが返ってきそうな予感がするが
2017/12/01(金) 22:49:05.07ID:NXDNhmZv0
6.3.2.1 Lvalues, arrays, and function designators
An lvalue is an expression with an object type or an incomplete type other than void

6.8.3 Expression and null statements
expression-statement: expressionopt ;

arr;は式文、arrは式(左辺値)
よって、>>570の規則に従って変換される
630デフォルトの名無しさん (ワッチョイ a66e-hJGX)
垢版 |
2017/12/01(金) 22:57:47.71ID:jGNBP26P0
>>629
それはおかしいぞ
arrという部分式を評価中に、それがどんな文脈の作用対象となるかは
予見しないのがCのポリシーで、だからこそ式arrはlvalueを生じる
その後lvalueからvalue of an expressionへの変換を要請する文脈を経ずに
シーケンスポイントとなっているそのプログラム片のどこに
アドレス計算が生じうるんだよ
2017/12/01(金) 22:59:25.50ID:UqjXH8z4d
>>608です

>>616
コードをどう書けばいいかも、どれを使えば実現できるのか分からないです
コストや部品点数は抑えたいと思ってます

>>619
どういうマイコンをどうすればアニメーションでディスプレイ出力ができるのかを知りたいんです
おおまかな道筋を教えて欲しいです
ARMマイコンとかどうなんですかね…
632デフォルトの名無しさん (ワッチョイ a66e-hJGX)
垢版 |
2017/12/01(金) 23:03:12.88ID:jGNBP26P0
PIOのディレクションレジスタを出力に設定してマスクパターンを指定しておき、
それからコマンドを書き込んでストローブのパルスを作って。。。
2017/12/01(金) 23:07:47.82ID:NXDNhmZv0
>>630
ポリシーとかじゃなくて規格の話をしてくれない?

配列型の左辺値は特定の場所以外で現れた場合に、変換されるという規格なの
演算子を伴わない場合は変換されないというのなら、その規格を明示して

左辺値ですらないというのであれば、その根拠となる規格を示して

人に説明求める割に、自分の論拠が想像ってのはどうかと思うよ
2017/12/01(金) 23:12:55.57ID:quTLstwT0
>>631
ググレカス
Arduinoと液晶でいくらでもヒットするだろ
ゆとりはマジで殺処分すべきだな
2017/12/01(金) 23:20:03.85ID:UqjXH8z4d
>>634
ありがとうございました
2017/12/01(金) 23:49:36.73ID:P20tw7a40
>>633
> 配列型の左辺値は特定の場所以外で現れた場合に、変換されるという規格なの

630 じゃないけど、そっちこそ規格のどこ見て言ってるの?
N1570 6. Conversion で演算子オペランドになったときの変換は確認できるけど、
式文を含めて「現れた」だけで変換されるという記述は見つけられない。
2017/12/01(金) 23:50:50.61ID:P20tw7a40
あ、ごめん。 6. Conversion じゃなくて 6.3 Conversions ね。
638デフォルトの名無しさん (ワッチョイ a66e-hJGX)
垢版 |
2017/12/02(土) 00:14:21.15ID:mWFcFWTj0
>>633
質問に質問で返さないでくれない?

arr;というプログラム片のどこにアドレス計算が生じうるの?
全く無用と思える操作を強制する根拠法令を示しなさいよ

全く無用と思わない、あんたの思考回路でもいいよ
こちとら規格しか聞く耳持たないとか言わないから
つーか自分なりの思想を持っているやつと話すほうが実りがあるし
2017/12/02(土) 00:17:19.87ID:2ymk6h8v0
>>636
>>570
an expression that has type ‘‘array of type'' is converted to an expression with type ‘‘pointer to type ' that points to the initial element of the array object and is not an lvalue.

確かに、6.3の頭には演算子オペランドの暗黙的な型変換について規定するとは書いてあるけど、
あくまでもsuch an implicit conversionであって、それだけを規定するわけではないでしょ
expressionが変換されると書いてあるんだから、式が変換されると読むのが素直じゃない?

そう解釈しないと、例えば
return arr;
とか、どういう理屈でポインタを返すと考えれば良いの?
640デフォルトの名無しさん (ワッチョイ a66e-hJGX)
垢版 |
2017/12/02(土) 00:23:30.95ID:mWFcFWTj0
>>639
おまえさんが言っているのはこういうことだ
int aho() [10]
{
int arr[10];
return arr;
}
コンパイル通るかどうかやってみな
で、どういう理屈でそうなるのか
おまえさん自身が言ってみな
2017/12/02(土) 00:29:15.26ID:2ymk6h8v0
>>640
自分は一貫してreturn arr;でint*を返すという主張なんだけど?

あなたこそ、演算子を伴わないと変換が行われないと主張してたんだよね?
そういう解釈だと、どうやって
return arr;
でint*返せるのって質問だよ
642デフォルトの名無しさん (ワッチョイ a66e-hJGX)
垢版 |
2017/12/02(土) 00:32:10.46ID:mWFcFWTj0
>>641
演算子って言質がおまえさんの命綱のようだな
別にそんなの撤回してもこっちは痛くも痒くもない
それをもって勝利宣言したければすればいい
win-winだね
2017/12/02(土) 00:36:49.22ID:+GJuKLXc0
>>639
return についての規定で代入と同じ変換が行われることになってる。
規格見てるんなら return について疑問に思った時点で該当箇所読んでから聞こうな。
「自分の論拠が想像」は許さない立場なんだからさ。
2017/12/02(土) 00:45:15.02ID:2ymk6h8v0
>>643
おお、ほんとだ
ありがとう、見落としてたわ
ついでに初期化宣言子も見返したけど、単純代入と同じ型変換後の値が初期値って書いてあるな
ごめん、ごめん

規格解釈は間違ってたけど、結果は合ってたって感じかな
こういう指摘くれたら1発で済んだのに。。。
645デフォルトの名無しさん (ワッチョイ a66e-hJGX)
垢版 |
2017/12/02(土) 00:52:58.64ID:mWFcFWTj0
>>644
おまえは間違っていた
人のせいにしてんじゃねえよ
646デフォルトの名無しさん (ワッチョイ 3dab-bpph)
垢版 |
2017/12/02(土) 15:52:09.87ID:KedYgmHp0
文系で一から使えるようになるまでにどれくらいかかりますか?
2017/12/02(土) 16:07:39.94ID:fU6v9rJN0
桃クリ3年柿8年ゆずの大馬鹿13年。
2017/12/02(土) 16:16:16.79ID:34/Kk+++0
>>646
文系かどうかはあまり関係ないと思う。論理的な思考が苦手でなければok。
使えるようになるのレベルに幅がありすぎるからなんとも言えない。
プログラミング初めてで、どうしてもCでなければならない理由がないなら、他の言語から入った方が実用的なことをするのには早いと思うよ。
2017/12/02(土) 16:25:40.62ID:WQRORJsZ0
>>647
ゆずの大馬鹿は18年だったんだが、最近のゆずは発育がいいのか?
2017/12/02(土) 17:01:24.21ID:dQxrNdHKM
接ぎ木するんだろ
2017/12/02(土) 17:10:18.36ID:4pmjT1Fk0
>>646
Java がいいんじゃないかな?書籍も多い
2017/12/02(土) 18:49:23.92ID:WQRORJsZ0
>>646
数学/物理が出来なくて文系に行った口なら諦めろ。一生無理だ。
頑張ったところで、若い奴らに簡単に追い越され、一生惨めな思いをするだけだ。
他に適性のある分野を探した方がいい。

現実的には、理系/文系のどちらの知識も必要なく、抽象/論理思考が出来るかどうかが全てだ。
だから高々高校2年間程度のラベルの結果である文系/理系自体には大した意味がない。
しかし、そもそも抽象/論理思考が得意なら、当然、
不得手な奴が混ざっている環境(つまり文理分けていない状況)においては無双できる。
結果、「得意だから」≒「好きだから」という理由で文理を選んだのなら、文系を選んでる時点で向いてない。
そして大学4年間で理系の連中は周りが抽象/論理思考出来る奴らばかりという環境で鍛えられることになるから、
決定的な差がついてしまう。

そうではなく、俺は数学も得意な文系だ!というのなら行けるかもしれん。
最近は経済学部が理系化しつつあるという話だし。

いずれにしても個人差の方が大きい。学生なら、やってみて面白くなければ諦める、でいいと思うが。
面白いと思えて続かないようなら向いてない。
2017/12/02(土) 18:53:01.98ID:WQRORJsZ0
ちなみに、論理的思考は、出来る奴は最初から出来る、というか思考ベースがそっちだ。
もちろん頑張って対応することも出来るが、
最初から出来る連中がデフォの環境で頑張り続けるのは辛いと思うよ。
http://buzz-netnews.com/wp-content/uploads/2016/04/2ee1df837c0dd36abd3ad9d095c4acf8.jpg
http://buzz-netnews.com/wp-content/uploads/2016/04/teo.jpg
2017/12/02(土) 18:57:05.09ID:4pmjT1Fk0
>>652
化学・生物じゃだめですか?
2017/12/02(土) 18:58:43.14ID:hLt+ALOn0
>>653
なんやこの画像w
一般化能力高いなw
2017/12/02(土) 19:17:30.71ID:PL6F8Ywp0
>>654
むしろ向いてる気がする
数学とか論理によりすぎだと変なこだわりがあったり
現実のあいまいさに適応できなかったりするから
現実的な手続きや広範な知識が必要な化学が得意だったら適正ばっちりじゃないか
2017/12/02(土) 19:33:33.78ID:WQRORJsZ0
>>654
高校生物=ほぼ暗記
高校化学=暗記7割、理論3割
高校物理=ほぼ理論
高校数学=8割理論、2割パターン暗記
(高校国語/英語/社会=ほぼ暗記)
じゃね?
だから高校化学/生物が得意だからといって、抽象/論理思考の能力は分からない。
(無いとは言わないが、得意とは判断できない)

逆に暗記が得意なら自然と文系教科で無双することになる。
この理由で文系を選んだのなら、暗記能力>抽象/論理思考能力、ということになり、向いてない。
今時のプログラミングってWebを参照しながらやるもんだし、暗記能力自体はほぼ要らなくなってる。
ただしドキュメントを大量に読むようになってきてるから、国語/英語の能力は重要になってきてるが。
とはいえ、高校英語=ほぼ単語を覚えているかどうか、であり、
現実はポップアップ辞書も使えるし、google翻訳も読めないほどでもないし、そもそも技術英語は簡単だしで、
テストでの英語の能力よりも、何を書いてあるか読み解く方が重要で、
いわゆるTOEIC等とは違う尺度だから、高校英語の点なんて全く当てにならないが。

ただまあ、学生なら、グダグダ言わずにやってみて、面白いと思えなければ向いてない、でいいと思うよ。
ただ、ド初心者なら、>>648の言うとおり、他言語の方がいいと思うが。
658デフォルトの名無しさん (ワッチョイ f1c8-wAwf)
垢版 |
2017/12/02(土) 21:10:49.78ID:i2vG1ua/0
>>657
まあ、国語は暗記でも行けるかもだけど、読解系の問題は論理思考でいけばかなり楽できるんだぞ。
2017/12/02(土) 21:23:09.14ID:4pmjT1Fk0
>>658
現国はあてもんだろう?
660デフォルトの名無しさん (ワッチョイ f1c8-wAwf)
垢版 |
2017/12/02(土) 23:09:43.44ID:i2vG1ua/0
>>659
勉強しなくても、論理思考さえできれば、ほとんど正解できるってこと。
2017/12/02(土) 23:24:12.70ID:WQRORJsZ0
つかな、多分、解く過程が数学と同じなんだよ。
ただし数学自体ではないから、数学の成績自体はあまり関係ないけど、
数学めいたものが嫌いな場合には向いてない。
そして大体の場合は好き=得意科目になるから、
集団から選抜するのなら数学の試験を課すなり、面倒なら一律文系お断りってのも当たっている。
(もちろんプログラミング課題を課せるのであればそれが一番いいが)

よくある初心者向けのプログラミング課題、
・ソース○○に対して、出力△△を得たい、どうすればいいか、
に対して、実際は適切なメソッドや典型的な手法を組み合わせて対応するわけだろ。
これが、公式やお約束的解法を組み合わせて問題を解く「高校数学」と似てる。
そして実際のプログラミングなんて、
上記単発のお題が階層跨いでフラクタルになっているようなものだから、
ある意味数学パズルをずっと解き続けるようなもので、数学が嫌いだと持たんだろ。

ただし本来はその先の、
「こうすればこんなに簡単に実装できるのか」という構造を思いつける奴が「センスがある」となるわけだが、
これについては選抜の仕方(適正判断の仕方)は分からんなぁ。
ただ、いわゆる「エレガントな解法」というのが存在するのも数学だけだし、
プログラミングと数学はかなり構造が似ているのだと思うよ。
2017/12/03(日) 00:12:42.31ID:lZQcP+Ql0
>>660
論理思考、最強!みたいな勢いだけれども、
その論理思考の中身というのが常識を外れているような気がする

命題A: 「1 + 1 = 3」 ならば「2 * 3 = 6」である

とするとき、命題Aは正しいか間違っているか、また、その理由は?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況