プログラミング初心者だけど論理エラーの解決がムズすぎて泣きそう

1 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:11:15.894 ID:J0h3KxBd0
でも頑張りたいので解決方法や予防方法を教えてください
2 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:12:10.053 ID:J0h3KxBd0
ちなみに言語はCです
3 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:12:42.661 ID:ITIdh0bm0
論理エラーって何?
5 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:13:48.095 ID:J0h3KxBd0
>>3
プログラムの文法は合ってるけど製作者の意図した機能とは別の機能を持ってしまってるプログラムのエラー
って感じだと思う
7 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:16:21.178 ID:DTwAgSEZd
>>3
プログラムが複雑すぎるせい
関数等に分割するなどし、個々のパーツを絶対に間違いないようにしろ
14 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:18:22.394 ID:J0h3KxBd0
>>7
関数はなるべく多い方がいい?
21 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:22:46.173 ID:DTwAgSEZd
>>14
別に多い=良いというわけではないけど、
大雑把にたとえば「○○して△△して□□する」と説明できるプログラムなら、
最低でも「○○」と「△△」と「□□」に分かれているのが妥当
もちろん、「○○」とか「△△」とか「□□」とかも同様
4 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:12:52.028 ID:1xZ2tp2Dd
Iでもちっちゃくてちょっと動かすと乳首出ちゃうとか言ってるからJカップ以上ってことなんだよなやばすぎる
6 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:14:42.085 ID:ITIdh0bm0
コーナーケース的な問題か
13 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:17:16.987 ID:J0h3KxBd0
>>6
ググったけどそれも論理エラーの一種っぽいね
間違ってたら申し訳無いけど
8 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:16:26.945 ID:xIrT/zyl0
お前で無理なら俺も無理
16 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:19:14.733 ID:J0h3KxBd0
>>8
ありがとう
10 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:16:58.467 ID:R2pipIcZ0
カルノー図かけよ
20 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:21:02.990 ID:J0h3KxBd0
>>10
ググったけど論理演算に役立ちそう
ありがとう
11 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:17:14.764 ID:fkqgi6sP0
簡単なプログラムを作るならPPP
複雑なプログラムを作るならTDDやBDD的に作っていってみるとか

前者は模擬コードで何をしたいのか決めてから実際のコーティングを行う技法
後者はテストプログラムや仕様ありきでコーティングを進めていく技法

22 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:26:52.922 ID:J0h3KxBd0
>>11
ごめんなさい
ググったけど難しくてわかんなかった
模擬コードってのはコメントの文でコードを表すやつ?
12 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:17:14.719 ID:O9mou+JY0
頭使いすぎるなよ程々にしとけじゃないと死ぬよ?
23 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:28:00.390 ID:J0h3KxBd0
>>12
ありがとう
死なない程度に頑張る
>>15
main関数にぶっこみまくってた………
改めます
15 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:18:54.524 ID:O9mou+JY0
多いほうがいいっていうか単機能にすべきとはよく言うよね
17 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:19:20.159 ID:kUkFVkDJ0
とりあえずリーダブルコードよめ
25 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:28:33.052 ID:ITIdh0bm0
>>17
その本いいのか
結構気になってたんだよ
31 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:33:51.041 ID:kUkFVkDJ0
>>25
読みやすいコードを書くことは論理エラーを減らすことに繋がるからな
とにかく細分化と出来れば抽象化を心がけてエラーの特定を容易にしような
27 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:30:10.352 ID:J0h3KxBd0
>>17
きれいなコードの書き方本?
すごく良さそうなので買って読んでみようと思います
そういえば自分の書き方は我流で乱雑だったかも………
35 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:38:12.164 ID:kUkFVkDJ0
>>27
別に最初はC言語の本とか一切買わんでいいからリーダブルコードだけ読んどこうな
プログラム言語の仕様はネットで調べてどうしても行き詰まったり限界を感じたら専門性の高い本も買えばいい
41 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:45:03.115 ID:J0h3KxBd0
>>35
わかりました
まずはきれいな書き方を身に着けます
>>36
クロスコンパイルってそういうことだったんですか
たしかに色んなシステムで問題無く動くコードを書けるように慣れてないと後々困りそうですね
18 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:19:28.653 ID:hzVhAv+BM
単一責務
29 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:32:30.838 ID:J0h3KxBd0
>>18
関数の機能のことですか?
頭に叩き込みます
>>19
質問サイトですか
ありがとう御座います
困ったら使わせてもらいます
>>21
適度に細分化するということですか
わかるました
気をつけます
19 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:19:36.850 ID:n7flCzp00
テラテイルで質問する
24 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:28:21.524 ID:OW5R1+Gm0
クロスコンパイル を目指してコード書いておけば汎用性や拡張性があるんやないかな?(´・ω・`)
32 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:35:33.215 ID:J0h3KxBd0
>>24
クロスコンパイルですか
ゆくゆくは目指してみるかもしれないです
>>26
実装ってのはコンパイルして実行することですか?
36 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:38:25.255 ID:OW5R1+Gm0
>>32
そう(´・ω・`)
このシステムではちゃんと動いても他のシステムじゃ動かないなんてこともある(´・ω・`)
26 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:29:45.997 ID:OW5R1+Gm0
あとコードって読んだだけだと 挙動を実際に理解できない(´・ω・`)

だから実装してみるのが一番いい(´・ω・`)

28 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:31:17.469 ID:OW5R1+Gm0
スレッド を実装しても隠蔽化して動きが 始めたばかりの人に追えないとか

だと速度追求できないとかエトセトラ (´・ω・`)

34 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:37:48.146 ID:J0h3KxBd0
>>28
スレッドと隠蔽化って何ですか?
>>30
そういうものなんですか
予防も大事だけど解決に慣れることも大事かもしれないですね
40 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:42:51.784 ID:OW5R1+Gm0
>>34
隠蔽化というか 関数になっててその実態がスレッドとかになってることとかない?(´・ω・`)
30 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:32:49.280 ID:Dt7wFTvq0
論理エラーって起こるのがふつうじゃね?
起こってから対処していけばよくね
トライアンドエラーやろ
37 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:39:26.211 ID:cYQrE9Ud0
どういう方法で勉強してんの?
本を買う+ネット?
43 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:46:21.025 ID:J0h3KxBd0
>>37
今のところはネットだけで勉強してました
今後は必要に応じて本も買っていこうと思います
38 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:39:56.960 ID:U6j5rBQD0
デバッガーがバグってたホラー話すき
44 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:50:39.285 ID:J0h3KxBd0
>>38
詳しくはわからないですけどなんとなくヤバそうですね
>>40
スレッドってのがわからないんですけど関数の細分化の話ですか?
たしかに関数がスレッド?みたいになってるかもしれないです
46 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:54:09.110 ID:OW5R1+Gm0
>>44
スレッドは 並列処理(´・ω・`)

スレッドにある処理任せていろいろやってる間に メインで他のことできるから速度があがる(´・ω・`)

49 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 14:03:38.045 ID:J0h3KxBd0
>>46
調べてみたら大体わかりました
並列処理は難しそうなのでもっと自分の腕が上がったら取り組んでみます
42 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:45:28.881 ID:W5Jbi+kW0
論理エラーは自分が書いたコードは絶対正しいと思い込んでるから起きる
一晩寝て見直すか、他人に見て貰えば見つかるよ
45 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:51:05.464 ID:J0h3KxBd0
>>42
たしかにそういう解決方法も良さそうです
ありがとうございます
47 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:57:45.302 ID:OW5R1+Gm0
スレッドセーフとかで調べればでてくる(´・ω・`)
48 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 13:58:49.720 ID:OW5R1+Gm0
いまや数百円のマイコンですらマルチコア(´・ω・`)
50 名前:一般よりも上級の名無しさん 投稿日時:2020/04/08(水) 14:03:59.980 ID:OW5R1+Gm0
それにマイコンだと割り込みの種類が莫大で

実質てきに並列処理も色々できる(´・ω・`)

コメント一覧

タイトルとURLをコピーしました