プログラミング超初心者の質問

■ このスレッドは過去ログ倉庫に格納されています
1名無しさん
垢版 |
2021/03/26(金) 19:47:53.89ID:UdurcVDt
class Idiot:
__init__(self,x,y,z):
self.name = x
self.sex = y
self.why = z

printing_idiots(self):
print('{} is so idiot.'.format(self.name))
print('{0} is {1}.'.format(self.name,self.sex))
print('Why is he idiot,{}'.format(self.why))

setting_idiots_data(self):
print("What is idiot's name?")
self.name = input()
print("What is idiot's sex?")
self.sex = input()
if (self.sex = men):
print('Why is he idiot?')
self.why = input()
elif (self.sex = woman):
print('Why is she idiot?')
else:
print('you are a bullsit guy!')

idiot = Idiot()
idiot.setting_idiots_data()
idiot.printing_idiots()
このソースコードのイニシャライザの部分でエラーが出ている。
2021/11/07(日) 02:40:54.90ID:09TThTqW
data.aにしないとダメだったみたいで出来るようになりました
ありがとうございました
2021/11/07(日) 03:26:54.30ID:09TThTqW
例えば{"a":1}と書かれたa.jsonファイルを
をjavascriptで{"a":2}に書き換える場合どうやったら良いですか?
2021/11/07(日) 04:04:08.33ID:nhZF9/LT
ブラウザ側では無理
だってファイルは遠く離れたサーバー側にあるんでしょ?
サーバー側(node.js)で機能を作れとしか
2021/11/07(日) 04:09:51.47ID:09TThTqW
jsonのとなりにあるjsからでも無理ですか?
2021/11/07(日) 06:46:32.00ID:0IMrdMn2
Ruby なら、これで、
in.json から、{"a":1,"b":"bb"} を読み込んで、
out.json へ、{"a":2,"b":"bb"} を書き込む

require 'json'

json_str = File.read( "in.json" ) # UTF-8 ファイル

p json_obj = JSON.parse( json_str ) #=> {"a"=>1, "b"=>"bb"}
p json_obj[ "a" ] #=> 1

json_obj[ "a" ] = 2
p json_obj #=> {"a"=>2, "b"=>"bb"}

File.write "out.json", JSON.dump( json_obj ) # 上書き

JavaScript(JS)は、すべて非同期だから、
初心者がバックエンド(サーバー側)に、Node.js を使うのは、非常に難しい

だから、多くのウェブ系の会社は、Ruby on Rail が基本。
キャリアパスも、Ruby → Go しかない

それと、JSの質問は、この板ではなく、web制作管理板の方へ書き込んでください
2021/11/07(日) 06:48:50.94ID:ucPe7/ei
C#のWinFORMSの入門書買ったんですけど、
中上級者はこういう本に載ってるクラスやプロパティなど
全て丸暗記して使いこなせるんでしょうか?(´・ω・`)
469デフォルトの名無しさん
垢版 |
2021/11/07(日) 09:19:18.85ID:76dN71nZ
>>468
IDEで表示されるから丸暗記の必要は無いよ
2021/11/07(日) 09:48:38.47ID:HEEU40GQ
>>468
普段よく使う機能は大体覚えてるが、そうでないものはこんな機能が確かあったはず、というくらいに大まかに存在を知っておく程度。必要になってから探して見つけられれば大丈夫。
471デフォルトの名無しさん
垢版 |
2021/11/07(日) 11:46:12.41ID:XJB+ymj6
0120
2021/11/07(日) 18:23:08.59ID:ucPe7/ei
>>470
中上級者の方たちもそうなのですね
全部覚えようとして中々進めなかったので安心しました・・・
ありがとうございます(´・ω・`)
2021/11/09(火) 07:42:28.04ID:RTTrqb1f
>>472
何か作ろうと思ったときに、誰かが作ってるはず、と考えてね
2021/11/09(火) 09:53:39.04ID:cbbOFy6t
作りながら「これ絶対誰か作ってるやろ」って思うようになるよね
475Mb
垢版 |
2021/11/09(火) 13:45:18.76ID:wQDfaqIT
>>474
それはまだいい。インターネットが普及している現在だったら、
まだしも似たようなコードをネット上で拾えるから。
プログラマも三十歳を超すと、書いているうちに
「これ、どっかで見たような気がするなぁ?」と思って
古いコードを漁ってみたら、「自分で書いてた orz」と
いうのを何度か経験している (T_T)。
2021/11/10(水) 00:46:03.21ID:tM2i43lX
うわ、またキチガイ出た
477Mb
垢版 |
2021/11/10(水) 14:13:25.51ID:Wl5lGLAU
>>476
> うわ、またキチガイ出た
よくもまぁこのスレを荒らそうと思ったもんだなぁ……
あんた、後生は浮かばれないし、
来世はろくな生まれかわりをしないぞ?
電算業界というのはかなり狭いので、このスレの
コアな住民は「知合いの知合いの知合い」程度の関係に
ありそうに思う。
面白半分にチョッカイを出すと、本当に後悔するから
やめとけ。
478Mb
垢版 |
2021/11/10(水) 14:24:04.22ID:Wl5lGLAU
>>472
プログラマには「教えたがり」が多い
(「守秘義務契約」に縛られているので、
なかなか同業者との交流の機会がない)のと、
「昨今は若手が入ってこないので、業務がキツい」
という事情があるので、「向上心のある若者」に
対しては、行きすぎなくらい熱心だったりするのだ。
どんどん訊いたほうがいい。
先人の屍を踏み越えて、うちらの頭を踏んづけて
上に上がってくれ。で、うちらを蹴落として
引導を渡してくれ。それが師匠と弟子の正しい関係だ。
レオナルド・ダ・ヴィンチ「師を乗り越えない弟子は
役立たずだ」。それでミケランジェロがいる。
479デフォルトの名無しさん
垢版 |
2021/11/11(木) 09:32:08.93ID:YFINcqzS
スレの趣旨とは違うと思いますが、
20代後半がプログラミングの勉強して実務で使えるレベルになるまでにはどれくらいかかるでしょうか?
またネットでよくみるスクールに通うのは有効でしょうか?
ご教示よろしくお願いします。
2021/11/11(木) 09:49:35.45ID:SpIFedoW
本人の能力次第でピンキリ
スクールもピンキリ
一般論で語るな
481デフォルトの名無しさん
垢版 |
2021/11/11(木) 09:53:47.62ID:YFINcqzS
>>480
自分次第ということですね。ありがとうございます。
2021/11/11(木) 10:18:00.47ID:PJ74p5vj
最初は本を写経してなんとなく勉強して、
この板でトンチンカンな質問をして叩かれまくっても心が折れなかったら実務レベルになった
483デフォルトの名無しさん
垢版 |
2021/11/11(木) 10:32:35.71ID:YFINcqzS
>>482
参考にしたいのですがどれくらいかかりました?
2021/11/11(木) 10:48:03.12ID:S4jvUEpe
>>479
https://gendai.ismedia.jp/articles/-/83690
485デフォルトの名無しさん
垢版 |
2021/11/11(木) 10:55:26.78ID:YFINcqzS
>>484
あ?
486Maria
垢版 |
2021/11/11(木) 14:53:02.22ID:mg/XYTeD
>>483
私は >>482 じゃないんだけれど、せいぜい二年かなぁ。
「I/O」とか読んでる先輩もいて、東京在住で
秋葉原や神保町は中学生のころから遊び場だったし。
「プログラマ脳」って、たぶん人間の脳のなかに基本的に
備わっているような気がするんだよね。
「それが覚醒するまでにどれだけかかるか?」というのは
人それぞれ。
「偽金(にせがね)の問題」「八人の女王(エイト・クィーン)」
「ハノイの塔」「ニム」とかいった、IT 系のシステムエンジニア講習
とかでよくやらされる課題があるので、そこから始めるのも
悪くないかと思う。「円周率を千桁」とか「メルセンヌ素数の
ルーカス・テスト」とか「Make 10」とか「魔円陣」とか、
「プログラムが書けないとアプローチできない」問題は、
たぶん(プログラミングを習得したあとの課題として)
後回しでいいと思う。
487デフォルトの名無しさん
垢版 |
2021/11/11(木) 18:09:27.21ID:YFINcqzS
>>486
こういうのが聞きたかったです。ありがとうございます!
488デフォルトの名無しさん
垢版 |
2021/11/11(木) 18:20:58.06ID:J6sKotQS
自演乙
https://asahi.5ch.net/test/read.cgi/newsplus/1636585519/
489Mb
垢版 |
2021/11/11(木) 19:05:27.01ID:mg/XYTeD
>>488
あ、それ誰に言ってんのかわかんないけど、
少なくとも俺らじゃねーわ。

ついでながら、「贋金の問題」は、モンティ・パイソンの
「殺人ジョーク」の元ネタだとされている。その発展形が、
「『テトリス』は、西側のソフトウェア開発の生産性を
落とすために開発された、東側のソフトウェア兵器だ!」
という話。
490デフォルトの名無しさん
垢版 |
2021/11/11(木) 19:44:06.71ID:Id5NNZhF
メルセンヌツイスターみんなで実装したよね。
懐かしいなあ。
2021/11/12(金) 00:28:10.60ID:M7lyd7nj
>>479
YouTube で有名な、雑食系エンジニア・KENTA の月千円のサロンの、
Ruby on Rails 初心者用コースには、日本6位の3千人が入っている。
多分ここが、世界一のRailsの虎の穴

Rails, Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap
VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース

今までは、Docker Compose までが初心者用コースだったが、
最近は誰でも、Docker出来るから、
AWS Fargate, Terraform, React, Vue.js, TypeScript も必要

だから、AWSのくろかわこうへいのサロンにも、入る必要がある。
今では、1年の未経験者が、10年以上のプロよりも技術力が上になってる!

KENTAの動画

2021年のWeb系エンジニア転職を成功させる3つの技術要素、2021/4
https://www.youtube.com/watch?v=70VrB7LTe9g

Web系エンジニアを目指す人のためのプログラミング学習ロードマップ、2021/2
https://www.youtube.com/watch?v=0TABrlhci5M

他には、Udemy の山浦清透の動画・サロンも参照
492デフォルトの名無しさん
垢版 |
2021/11/12(金) 00:35:11.33ID:4fWazNbK
KENYAとうbyはNG
493デフォルトの名無しさん
垢版 |
2021/11/12(金) 01:42:51.18ID:UPmYghVn
>>491
ありがとうございます!プログラミングやってる人って社会不適合者ばかりだと思ってたのでご教示してくださる方には感謝しかないです!メモしました!
2021/11/12(金) 03:09:16.22ID:2ZeS58S8
こうしてカモが一匹
2021/11/12(金) 06:12:25.16ID:M7lyd7nj
Ruby の疑似乱数は、修正メルセンヌ・ツイスタで、

mruby は、xorshift だったかな?
2021/11/12(金) 09:30:17.54ID:QL8A+AK9
>>493
この板で最高レベルの社会不適合者のレスを真に受けちゃダメよ
497デフォルトの名無しさん
垢版 |
2021/11/12(金) 16:39:07.22ID:V9d7Tdwn
>>496
本当会話が成立しなくてびっくりしたよ。
母数が多いから変な奴もいるんだろうな。
あなた方のような丁寧な方はきっとスキルのレベルも高くて仕事が出来るんだろうね。
498Mb
垢版 |
2021/11/12(金) 20:14:59.94ID:L/WBjYxE
>>497
言いたいことは解るが、
このスレを荒しにきている輩(やから)には、
そのテの皮肉は通じにくいと思うぞ?
2021/11/13(土) 03:31:51.05ID:dR8PZQJF
>>498
それまさにお前のことだぞ いい加減自覚しろ老害
2021/11/14(日) 14:04:03.30ID:E00roTgy
500
501デフォルトの名無しさん
垢版 |
2021/11/14(日) 17:16:33.08ID:zC7iNWuS
すいません、わかるかたいたら教えて下さい。
javaの環境構築の為にOracleのHPからJDKをインストールしたいのですがダウンロードページが空白になるのですが今は公開していないのでしょうか?
2021/11/14(日) 17:42:00.28ID:tkHjD9h1
ブラウザを変えてみる
ソースを表示してみる
2021/11/14(日) 17:46:08.35ID:tkHjD9h1
https://jdk.java.net/17/
2021/11/14(日) 17:49:43.05ID:zC7iNWuS
>>502
変えてみましたがダウンロードのページが空白になります。
ソースも空白です。
2021/11/14(日) 17:51:19.93ID:zC7iNWuS
>>503
ありがとうございます。表示されました。
2021/11/17(水) 11:20:41.49ID:4tNSHn/X
https://msgpack.org/
ここも前は各言語毎のパッケージダウンロード出来てたんだが
今は真っ白
なぜだろう
2021/11/17(水) 15:32:08.96ID:fpCU2YNN
別に真っ白じゃないよ
そちらのネットワークの問題では?
2021/12/25(土) 21:54:29.75ID:VRU1TgnK
プログラマーに必要な資質ってなんでしょうか?
50969
垢版 |
2022/04/18(月) 18:37:49.89ID:shu1dXxl
プログラム初心者だけどUIの部分から想像してアプリを作ってみたいんだが、どういうツールが良いのかな?
UIデザインツールというのでいいのかな?
QiitaみるとFigmaというのが無料っぽいけど
2022/04/18(月) 20:36:15.85ID:1UTDJFzi
そういうのは分かっている人が使うものであって
HTMLが分かってないレベルなら自分で簡単なものでも手書きで作った方が良いのでは?
とにかく色んなものをパスしてツール使うのはどうかと思う
2022/04/19(火) 05:05:18.24ID:9Dl9Y9kk
>>510
単なる好奇心なんだけど、「これやってみよう」ってモチベーションあるときは割と新しいツールも学習できたりするので、挑戦してみようと思った
どういうツールが有るのか、界隈の全体像がわからないから詳しい人がいたら教えてほしかったんだ

pythonはちょっと勉強したけどswiftはまだ触ったこと無くて
人に聞くときに「こんなかんじにするのどうやるの」って聞けたほうが早いかと思ったんだ
2022/05/02(月) 07:21:51.51ID:z6XFxtHF
超初歩的な質問ですが、よろしくお願いします
よくプログラムは「上から下へ読んでいく」といいますけれど、
では、このプログラム(ソースコード)を上から下へ読んでいるのは誰なんでしょうか?
ハードウェアとして物理的実体が存在するCPU?メモリ?
それともソフトウェアとしてのOS?
それともそれらすべてをひっくるめたコンピューターでしょうか?
2022/05/02(月) 09:37:46.75ID:dFUVjt0w
「読む」って言ってるけど実行のこと?
それとも「ソースコード」って言ってるから実行のことじゃないのかな?

コンパイル言語は、コンパイラがソースコードを実行コードに変換してそれを実行する
インタープリート言語は、インタープリタがソースコードを実行する
コンパイラもインタープリタも(コンパイル後の実行コードも)CPUが実行しているので、CPUが読んでいるとも言える
その意味で「コンピュータが」とも言えるが、「コンピュータが」って言っちゃったら全部そうだからあまり意味がない
ソースコードを「メモリが読む」「OSが読む」とは普通言わない
2022/05/04(水) 09:30:11.36ID:UI6uqcV4
>>513
ご回答ありがとうございます。

コンパイラとインタープリターについて調べてみましたが、
この二つとも『ソフトウェア』なんですね。

人間が書いているプログラムを実行しているのもまたプログラム、
「じゃあ、そのプログラムを実行しているプログラムを実行しているのは何なのか?」
というところにきて、ここでCPUが登場してくるんですね。

とても参考になるお答えをいただき、誠にありがとうございました。
2022/05/04(水) 22:02:16.84ID:hD+7qMI5
>>514
ついでにコンパイラとインタープリターをどうやって作るかも
勉強してくれ
516デフォルトの名無しさん
垢版 |
2022/05/09(月) 17:42:24.04ID:jMMHaAaZ
アルゴリズムを学ぶのに良い言語ってやっぱりcとかc++ですかね?
特に目的はなくて単純に脳を養いたいだけなんですが…
2022/05/09(月) 21:50:48.23ID:Y9cmTEXw
>>516
普通にPython学んでAtcoderやろうぜ
518デフォルトの名無しさん
垢版 |
2022/05/10(火) 04:18:11.96ID:MmGGIrEf
>>517
atcoderってc++人口が多いだけで別にどの言語でも良いんですね
調べ不足でした
pythonやjavascriptは多少使ったことがあるのでとっつきやすそうです
ありがとうございます
2022/05/10(火) 09:43:26.21ID:aI8FHZ+3
アルゴリズムなら、Ruby。
パズル・コードゴルフの本は、たいていRuby

コンテナ.map{ 処理 }
みたいにメソッドチェーンで関数型っぽく、
次々とデータを変化させていけるので、可読性が高い。
Shell Script や関数型のElixir のパイプラインみたいな感じ

同様に、最近のJavaScript も、Ruby化してきた

3人の東大生が書いた、
「プログラミングコンテスト・チャレンジブック 第2版」みたいな、
動的計画法・グラフ理論とか、本格的なアルゴリズムは、C++

でも、パズル程度で、C++は難易度が高すぎる。
C/C++ など、ポインターのある言語は、面倒くささが半端ない

この板にある、プログラミングのお題スレを参照
2022/05/10(火) 20:55:32.15ID:g4Iw4Q7y
とある会社で物品購入したら、銀行振込・現金書留・切手は払いと言われました。
使ってない切手が多数あるのでそれを利用しようとしてふと思ったのですが
84円とか62円とか51円とか100円とか様々な金額が数十枚あり、その組み合わせで891円丁度とかにする
プログラムは皆様でしたらどんな言語、思考で作成されますか?
切手の枚数と金額はリスト化してます
2022/05/10(火) 22:07:09.62ID:keCf+vVN
>>520
線形計画ソルバーを使う
python+pulpかexcel
2022/05/10(火) 23:06:55.52ID:g4Iw4Q7y
>>521
レスありがとうございます。
エクセルの線形計画ソルバーは知らなかったけど調べたら面白そうですね、難しそうですが。
とりあえずググったらPythonで似たようなのは出てきました。
import itertools

a = 0
stamps = [80, 60, 50, 62, 90, 94, 92, 100]
for n in range (1, 10):
for combi in itertools.combinations_with_replacement(stamps, n):
if sum(combi) == 892
print (combi)
a += 1
print (a)
523519
垢版 |
2022/05/11(水) 00:23:02.31ID:ZxQ/H1/P
「プログラミングコンテスト・チャレンジブック 第2版」の動的計画法、
P.62 の個数制限付き部分和では、

n種類の数aiが、各mi個ずつある場合に、
これらの中から幾つかを選び、その総和をKとする。
i は順番

制約
1 <= n <= 100
1 <= ai, mi <= 100,000
1 <= K <= 100,000

入力
n = 3
a = { 3, 5, 8 }
m = { 3, 2, 2 }
K = 17

解答、3 * 3 + 8 = 17
計算量はO(nK)

他には、湊真一の超高速グラフ列挙アルゴリズム、BDD/ZDD, Graphillion とかは?
2022/05/12(木) 16:18:14.89ID:54gwUvbe
iframe内のjsからページをリロードする方法ありますか?
window.location.reload(true);
を実行してもページは更新されなくてiframeだけ更新されてしまう
2022/05/13(金) 01:13:58.48ID:gLzV6wtS
python簡単ってマジですか
今までarduinoしかプログラムに触れたことなかったからライブラリに押しつぶされそうなんですけど…
2022/05/13(金) 04:22:17.75ID:NE9V9IQG
自分で書く必要がなく
ライブラリを探すだけ
という意味では簡単では?
527デフォルトの名無しさん
垢版 |
2022/05/13(金) 11:46:23.51ID:4oSFn1tA
教えてください。
一年発起して、以前いちど挫折したLaravelを勉強しようと本を買ってきました。
最新のver9について勉強しようとはじめたのですが、その本では、xamppではなく
Dockerというものをインストールしてその環境の上で開発するのが今のスタンダードだと書いてあります。
進めてもなんのことかわからなかったので、Dockerの本を何冊か買ってきました。
しかしこれもわかりません。Dockerというのが、何か大きな業務システムの最深部を司るサーバーの役割を
するものみたいなんです。
自分のPCの中でLaravelシステムを作ってレンタルサーバーにアップロードして自分や友だちだけいじる、という
程度のことなのにそんな大袈裟な仕組み(Docker)のことなんて本当に必須なんでしょうか?

というか、本当にLaravelとDockerは切っても切れないものなんですか?
2022/05/13(金) 15:39:39.50ID:KuPnkgWz
>>519
でも数値解析系の本でRubyが使われていることがまずないですね。
統計分析、機械学習などの分野でもRubyはいまいち。どうして?
2022/05/13(金) 16:43:55.05ID:oA5QmAfW
>>527
別に開発環境ならDocker使う必要ないよ
正直メンドクサイのでLaravelではLaravel Homesteadと呼ばれる
virtualbox+vagrantで環境構築出来るものが用意されている
https://readouble.com/laravel/9.x/ja/homestead.html
ググればいくらでも情報が出てくるからこれ見て構築出来ないレベルなら流石に厳しいw
2022/05/13(金) 16:48:18.59ID:NE9V9IQG
Dockerを使うとWindows, Mac, Linux など
どの環境でも簡単にインストール、保守、運用できる
と Docker は主張している。
ただ Docker のインストールは結構めんどくさい。
531デフォルトの名無しさん
垢版 |
2022/05/13(金) 22:07:54.88ID:4oSFn1tA
>>529-530
ありがとうございます。
たいへんありがたいのですが、もうひとつ、どうしてxamppではダメなのかということも教えていただけないでしょうか?
2022/05/13(金) 23:35:52.37ID:AHgjjazd
いや別にxamppでも何の問題もない
ただ古いものを嫌がる企業がある
それだけの話
社長の気まぐれかもしれない
2022/05/14(土) 00:16:24.55ID:wWn65oR4
>>526
確かにそうですね…
ドキュメンテーションも豊富だし慣れるまでの辛抱ですかね
2022/05/14(土) 03:09:06.47ID:w3nGfWbw
>>532
ありがとうございます。
やはりxamppでも問題ないんですね。
2022/05/17(火) 06:23:04.56ID:MGvVViKD
ちんちんシュッ!シュッ!シュッ!
536デフォルトの名無しさん
垢版 |
2022/05/24(火) 10:40:46.73ID:7zq5Zl9C
>>1
の書式?って力技で覚えていくのですか?
アルファベットを初めて見た人が、力技で英単語や文法を覚えるみたいに。
2022/06/04(土) 17:32:57.60ID:0fqYZiKb
ズブな素人ですが、楽しそうというか、とっつきやすいプログラミング言語の種類を教えて下さい
ちょっとメンヘラ拗らせちゃって、生き甲斐を欲しているのです
2022/06/04(土) 21:29:20.55ID:nMsdyPPO
pythonで興味を持った本を買う
2022/06/04(土) 22:24:13.12ID:rW5WPwrd
そこにブラウザとメモ帳があるじゃろ?
それでJavaScriptを書くんじゃよ( ^ω^)
2022/06/05(日) 00:28:59.19ID:HnEUj7hl
ブラウザとGASで遊べるjavascriptは中々
2022/06/05(日) 09:43:54.57ID:gnMPlpWE
C#(Unity)でif文ですが、
通常は i f (条件) {処理} って書くと思いますが、

#if 条件
  処理
#else
  処理
#endif

こういう書き方をしてるサイトがあってちゃんと動くし意味自体は見れば大体わかりますが、
こういう書き方は本には載っていなかったので、なんて言うんでしょうか
2022/06/05(日) 16:50:01.58ID:JwrRgSuJ
#ifや#elseは処理じゃなくて
コンパイル時にその条件に満たした場合のみコンパイルするという意味で
if (条件) { } else { }とはそもそも別物だぞw
なので
#if _DEBUG
なんからの処理
#endif
とかいて_DEBUGが定義されていなかった場合は、なんらかの処理はそもそもコンパイルされず
プログラムとしては残らないからプログラムの条件分岐とは全く考えが違う
こういうのは良くあるのはデバッグ時のみコンパイルしてリリース時はコンパイルしない
(デバッグログの出力など)みたいな用途に使う
2022/06/06(月) 17:33:02.53ID:5r8Kkugz
pythonの3Dグラフライブラリもっと充実して欲しい…
Line3DCollectionとaxes3d.plotを組み合わせた時の重ね順を自由に扱いたい
2022/06/06(月) 18:05:05.04ID:ZjrdzwnJ
質問スレだぞクソガキ
2022/06/08(水) 12:09:07.04ID:OxVFpI1x
JavaScriptやPHPの入門書のたぐいを読んでいると必ず「オブジェクト指向」というのが出てくるけど
自分はたぶん逆に
「オブジェクト指向じゃないプログラミング言語」に触れたことがないからだと思うのだけど
これが実感としてよくわからない
他のどんなプログラム言語と比べてオブジェクト指向は
「画期的」だったり「便利」だったりするのかなあと
「オブジェクト指向」についての説明文を読むたびにいつも想像します
もしわかる人がいたら教えてください
2022/06/08(水) 13:18:51.02ID:Ylodbyzl
巨大なプログラムを書くときに
オブジェクト指向で書かないとひどい目に合う
2022/06/08(水) 14:13:03.86ID:OxVFpI1x
レスありがとう
逆に「オブジェクト指向ではない」ってのはどういう感じなんですかね
きっと従来の何かと比較しての「オブジェクト指向」だと思うんですが
プログラム言語の変遷みたいなのを分かっていれば
そのへんきっと感覚としてよく分かるのかなとか想像してみます
2022/06/08(水) 14:57:50.34ID:CrXvLp4C
単に言語的にクラスをサポートしているかどうかだろうけど
C言語の場合、構造体はあるけどその構造体にメソッドを付けたり出来ないあくまでデータの塊
C++ではclassが追加され実態は構造体にメソッドが付けられるみたいな感じで
(勿論継承やら仮想関数などもあるが)あくまで塊のデータにメソッドが付いているのが
クラスというイメージで良いかと思う
結局オブジェクト指向で無くてもC言語でも構造体を使わないという事は無いので
クラスを使わない場合は、何かする関数で引数に構造体のポインタみたいなのが付いてくるという感じか
2022/06/08(水) 16:10:41.12ID:Ylodbyzl
大昔というか計算機の最初の時代では
全部、今でいうところの main の中に書いていた
同じことを何度も書くのは無駄じゃないかということで
現在のメソッドに当たるサブルーチンが作られた
2022/06/08(水) 16:46:04.78ID:OxVFpI1x
>>548
>言語的にクラスをサポートしているかどうか

見た目的にはそういう分かれなんですね

>>548さんの言うC言語や>>549さんの計算機の時代の話から想像するに
オブジェクト指向でない、というのは
一つのパーツを構成するメソッドやらプロパティやらを
たとえば「クラス」に紐づけて扱えない感じですか

自力でクラスやその継承が必要となるようなプログラムで
何かを作ったことがないのであいかわらず漠然とした理解ですが
クラスやそのインスタンスが使えないとなると
とりあえず文字数が膨大になりそうというのは想像つきます
ありがとうです
2022/06/14(火) 15:47:22.07ID:VClrxCMr
>>545
オブジェクト指向は単なる考え方
C言語みたいな非オブジェクト指向だと関数とデータは別の存在
それをまとめてオブジェクトとする
そのオブジェクトに「君、この書類を提出しておいてね」的な命令(メッセージング)として関数を呼び出して処理してもらうだけ


>>548
クラスは必須ではない
現にJavaScriptは割と最近までクラスはなくて、その代わりにプロトタイプがあった
クラスは上の考え方を表現するための方法でしかない
2022/06/14(火) 18:32:16.30ID:xSIj0wEb
>>551
なるほどー
JavaScriptだと
たしかクラスのインスタンス名に「.」(ドット)をつけて
クラス内の関数やデータを呼び出すんでしたっけ
C言語を触ったことがないので
「関数とデータが別」というのがうまくイメージできないけれど
ただそうやってクラスなり、プロトタイプなりの名前で
個々の関数やデータといった情報をひとまとめにして紐づけて、扱うことができないとなると、
おそらく必要になるたびに都度、関数や値を設定するということかと想像されるので
やはりきっとオブジェクトというコンセプトを使わない言語では
手間が増えるんだろうなあと思う次第
ありがとうです
2022/06/14(火) 18:47:30.43ID:PLP2M16r
そもそも関数とデータは本来何の結びつきも無い訳で
結局クラスと言っても、クラスのメソッドはC++ならインスタンスのポインタからのアクセスなら
instance->method()
インスタンスが実体なら
instance.method()となるだけで
C言語ならそれが
method(&instance)
みたいにインスタンスが引数になるだけ
この辺を分かっていれば別に難しくも何とも無いのだけど
Javaなどからいきなり始めると理解が追い付かないのだろうなとは思う
2022/06/14(火) 23:21:34.04ID:xSIj0wEb
>>553
C++やC言語の文法はよく分からないけれど
その辺りの言語でも
クラスに似たような、つまり
既存のメソッドやプロパティを使いまわす、参照する方法はあるんですね
2022/06/15(水) 14:49:27.62ID:BDCOotLS
555
556デフォルトの名無しさん
垢版 |
2022/06/16(木) 11:14:15.45ID:EySfd51Z
c言語のwhile(条件)てあるやん?
条件に合わないと(割り込み時を除いて)延々CPUパワーつかんでるの?
557デフォルトの名無しさん
垢版 |
2022/06/16(木) 12:48:57.04ID:uKxWv5Aj
大抵は
while(1){
waitなりpollingなりsleepなり
}
558デフォルトの名無しさん
垢版 |
2022/06/16(木) 12:50:58.01ID:uKxWv5Aj
whileの中に何も描かないでやったらCPU100%になるかも知れんし
最適化されて消されるかも知れんし
OSのプロセスやスレッド管理の中でしか動いていないならやっぱり
CPU100%にはならんかも試練
2022/06/16(木) 14:59:13.26ID:TulzdQgt
while(寿命){
うんち
}
2022/06/16(木) 16:09:42.16ID:f7CI5BIw
>>552
あまり好きな例ではないけど、車を操作するという処理をする場合、「車」という構造体(クラスのメソッドがないやつ)に燃料の残量や馬力等の情報を持ってるとする
非oop(C言語のような)だとこれを関数に渡して、関数がこの残量をいじくる
でも現実だと残量とかは外部からいじるんじゃなくて車が操作している感じだよね(ちょっと違うけどイメージね)
これを車クラスを作ってさっきの残量等のデータと「前進する」等の処理をまとめてオブジェクトにする
そしてoopでは「車よ、動きなさい!」と命じることで車が前進して内部で残量も適切に減らす

つまりオブジェクトに任せるのがメインだと思うよ
561デフォルトの名無しさん
垢版 |
2022/06/17(金) 16:17:08.07ID:G79h5Zer
変なたとえ話を始めると余計判らなくなる例
2022/06/21(火) 09:17:23.02ID:6rwjsve1
30.0fから80.0fの範囲で、数字が増えたり減ったりを繰り返しさせたいと思ってて
まず30.0fから増やしていって80.0fになったら今度は数字が減っていくようになって
30.0fまで下がったら今度はまた増えていくみたいな数字の動きをさせたいのですが
これを条件式を使わずに計算で出す方法はないでしょうか
2022/06/21(火) 09:27:02.55ID:Hl56Cdhu
>>562
sin関数
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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