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

■ このスレッドは過去ログ倉庫に格納されています
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/03/28(日) 00:58:02.60ID:A0lj2cxG
>>29
ガイジ
31デフォルトの名無しさん
垢版 |
2021/03/28(日) 01:41:23.39ID:yHCir1no
基本をおろそかにするのは雑魚。
2021/03/28(日) 02:01:01.94ID:lWZDWNHi
まあでもdefっていらんよな
python4ではなくしていいよ
2021/03/28(日) 02:24:44.16ID:vGc2bGxh
インデントのブロックも無くせ
34デフォルトの名無しさん
垢版 |
2021/03/28(日) 02:34:08.84ID:3SrdHcoA
viでそんなに困らなくね
35デフォルトの名無しさん
垢版 |
2021/03/28(日) 02:46:59.61ID:yHCir1no
viで思考が加速する。
2021/03/28(日) 03:08:06.63ID:hlUl2OfF
>>35
毎度毎度あわしろ氏が〜って思考停止してる奴が言っても説得力がないぞw
37デフォルトの名無しさん
垢版 |
2021/03/28(日) 03:17:47.68ID:yHCir1no
>>28
Ubuntuは単なるOSではなく世界とも言える。
2021/03/28(日) 10:26:41.21ID:W2vCV6FV
>>36
相手すんなよ…
39デフォルトの名無しさん
垢版 |
2021/03/28(日) 11:10:47.71ID:lwKbaVtN
Ubuntuがダウンロードできない
もうわけわからん
2021/03/28(日) 12:59:18.55ID:4HRS4SBE
昔ながらのISOを直接ダウンロードできるデストリを探せばいい
41デフォルトの名無しさん
垢版 |
2021/03/28(日) 15:50:44.45ID:yHCir1no
Sorry! Japanese only!!!
42デフォルトの名無しさん
垢版 |
2021/03/29(月) 00:36:02.70ID:dpfUPtTC
Visual studioというものを入れたのだ
43デフォルトの名無しさん
垢版 |
2021/03/29(月) 03:05:24.01ID:1yKvh1aU
viのほうが良いのでは?
44名無しさん
垢版 |
2021/03/29(月) 07:22:18.56ID:C5Nd8+Vh
viとemacsって同じ人が作ったらしい。そしてその人はcshも作ったらしい。Bill Joyってすごいですね。
2021/03/29(月) 09:40:52.10ID:oXzzUuVm
>>44
そうだったの?
emacsはwikiみたらガイスティールJrって書いてあったけどあれ嘘なのか
2021/03/29(月) 09:51:47.52ID:Y73W+Pzk
UNIX 1/4世紀に本当のことが書いてある
47デフォルトの名無しさん
垢版 |
2021/03/29(月) 16:43:35.49ID:afk2oIF9
C言語とC++ C#は何が違うんですか?
48デフォルトの名無しさん
垢版 |
2021/03/29(月) 18:53:54.10ID:1yKvh1aU
あわしろ氏は絶賛vi派らしいね。
49デフォルトの名無しさん
垢版 |
2021/03/29(月) 19:01:49.89ID:Udan+rq5
c言語やってからPythonとかやろうとおもってんだけどこれでいいのかな?
ネット調べたらc言語理解してると他の言語を理解しやすいみたいなのかいてあったけど
2021/03/29(月) 20:21:18.41ID:E8Vxdp4r
一言で言えばCとはseaつまり海なんじゃよ。
海をうまく旅するには羅針盤が必要じゃろ?
羅針盤の役割をするのはお主の設計哲学とか思想とか、
何らかの方針であってルールを作り出す力じゃ。
いきなり飛び込むのは無謀じゃがすでにお主が持つべきものを持っているなら可能やもしれぬ。
おすすめはせぬが、自信があるならやって見るのも手じゃの。
2021/03/29(月) 22:41:43.25ID:64Cowzta
ここに書いておいた

ぶっちゃけ始めるのにいい言語て何 part4
https://mevius.5ch.net/test/read.cgi/tech/1615612545/96-139

結論としては、Ruby から始めます

C から始めると、まず挫折する。
極めて挫折確率が高い
52デフォルトの名無しさん
垢版 |
2021/03/29(月) 22:42:00.42ID:wUhO1QN7
無難にCからやるお
53デフォルトの名無しさん
垢版 |
2021/03/29(月) 22:42:34.40ID:wUhO1QN7
あらら
54デフォルトの名無しさん
垢版 |
2021/03/30(火) 13:48:36.78ID:rMZjDh6L
>>47
まずC言語が基本で、C++はすっごく乱暴に言うとC言語にクラスみたいな機能を
追加したオブジェクト指向言語
ベースはC言語なので、C++のファイルである「.cpp」とかのソースでも中身を見ると
クラスとか使ってなくて、ただのC言語で書かれていたりすることもある

C#はC言語っぽい文法でVisualBasicの機能を実装したMicrosoftの開発言語
文法がC言語っぽいのでC言語が分かる人には敷居が低いとか、コンパイラで
なくインタプリタでVBとC#のAPIが等価に動作するのでVB経験者ならすぐ使えるって
言ってたけど、使ってみると癖が強いのであまり評判が良くなかったりしたこともある

一応C言語が読み書き出来る人ならばC++とC#は眺めると読めるような気がするけど、
実際に書こうと思うとそれぞれ勉強しないと何もできないかも

>>49
C言語をやったからといってPythonhとか他の言語が理解しやすいってことはあまり
ないと思うよ
ただ、プログラミングの基本はワークフローの作成能力(例えば典型的なのはフロー
チャートとか)と基本的な論理演算の理解で、C言語のテキストは最初にそういうことに
言及しているものが多いので良いって話はあるかも

ぶっちゃけ昨今はお金もらってコーディングしている人でもネットのコピペだけで乗り
切っている人も多いので、動けばよくてトラブルが発生しなければ、いきなり目的の
言語のサンプルをコピペで使ってみるのでも良いのかも

コピペで動かないとフローの理解とか論理演算とか出来ないと詰むのでちゃんと
勉強したほうが良いとは思うけど
55デフォルトの名無しさん
垢版 |
2021/03/31(水) 00:31:35.67ID:bvWdAAXY
>>54
ありがとなのだ
56デフォルトの名無しさん
垢版 |
2021/03/31(水) 11:25:22.14ID:qcdfttW3
Visual C++ 2008 Express Edition
でc言語も使えるみたいな記事読んで動かしてみたんだけど、intは規定地としてサポートしてないというエラー出たんだが、使えないってこと?
2021/03/31(水) 18:53:36.83ID:+Payym2G
まあ釣りなんだろうけど素直にVisual Studio 2019 Community Edition入れとけ
2021/03/31(水) 20:40:37.29ID:Dmfl5kzC
VisualStudioならいつの時代も拡張子CにすればC扱いになった筈
C++と混合も出来るけど、C++側からCの関数呼ぶ場合はextern Cとか書いてたな
最近VisualStudioで開発とかしてないから懐かしいわw
59デフォルトの名無しさん
垢版 |
2021/03/31(水) 23:25:09.97ID:qcdfttW3
始めたてで右も左も分からないから助かりました。ありがとうございます。

オススメのコンパイラ?教えて貰えたら嬉しいです。( ◜ᴗ◝)
2021/04/06(火) 20:51:30.86ID:5Y0Ir7kF
皆さん参考書を使っての学習はどのように行われていますか?
記載されているコードを写経しながら進めているのですが1冊終えるのに数ヶ月当たり前のようにかかってしまいます
正しい勉強方法なんてのはなくて人それぞれだと思いますが皆さんの勉強方法を参考したいです
2021/04/06(火) 21:03:56.05ID:RTS/XrJR
>>60
写経って表現してるけど単に書き写してるだけじゃないよね?

自分で面白いと思うコードだけでいいから、動かしながらあーでもないこーでもないっていじくり回してみないと身に付かんのではない?
2021/04/06(火) 21:17:45.73ID:5Y0Ir7kF
>>61
動きを意識しながら書くようにしていますが結局書くことが目的になってて無意識で写してる時もあり無駄な時間の使い方をしてると実感してます…
2021/04/06(火) 21:56:17.05ID:wES9tagM
実際に読者が手を動かして入力することを前提に書いてる本とそうじゃない本がある
写経するのは前者のうち、知識だけでなく擬似的な実地訓練を通してスキルを身に付けたいものが基本的な対象
章末の演習問題等を試すだけで十分な訓練ができるものもある

写経が時間の無駄だと感じるなら一旦止めてみて
身につき方の違いと所要時間の違いを比較するといいかもしれない
64デフォルトの名無しさん
垢版 |
2021/04/07(水) 08:07:42.97ID:nkaFkhSP
>>60
昔は参考書買ってたけど
ある程度の基本さえ分かってしまえば
後は何やりたいか決めて
ググって調べて要点だけ
取り入れるようにしているな

だから最初はそれこそ〜の絵本みたいな
基本中の基本が書いてあるような本を
買ってきて読んで実際に動かして大体理解したら
後は買っても逆引き辞書みたいなものくらい。
たまに本屋で「あ、この本いい」と思ったら
買うけど。

少し自分が理解したと自覚してきたら
5chの該当スレで喧々轟々とやれば
ムキになって色々情報くれる人もいるから
その辺で勝手に勉強になったりもする
2021/04/07(水) 12:18:30.45ID:/VvrJao6
写経は、Progate、ドットインストールなどで、1週間ぐらいやるもの

本の目的は、理解すること。
写経などしなくてよい。読むだけ

開発過程の流れ・構造・デザインパターンなどを理解すること

なぜ、こういう事をするのか?
という事を学ぶ
2021/04/07(水) 12:35:30.03ID:dqbIzElb
俺も最初から読まなきゃと思って非効率なことしてるなあ
コードが多く載ってる本とかも説明文以外は読み飛ばしてるの?
6765
垢版 |
2021/04/07(水) 13:14:47.29ID:/VvrJao6
YouTube を見るのと同じ

細かいソースコードなど読まない。
基本、解説を理解するもの

興味がある所だけ見る

例えば、Ruby on Rails なら、Presenter とは、どういうデザインパターンか?
HTML を生成するファイルを、別のファイルにまとめたようなリファクタリングパターン
6865
垢版 |
2021/04/07(水) 13:16:52.45ID:/VvrJao6
>>67
修正

>HTML を生成するファイルを、別のファイルにまとめたようなリファクタリングパターン
HTML を生成するコードを、別のファイルに抜き出したようなリファクタリングパターン
69デフォルトの名無しさん
垢版 |
2021/04/26(月) 22:49:19.75ID:QCH21zh8
インデックスとかリストとかで
mojiretu ="12345"
mojiretu[0]
[0]が1番目なのって間違えたりしないの?
1が1番目のほうがわかりやすくね?
2021/04/26(月) 23:57:31.14ID:bKymRrTG
>>69
スタート地点がゼロでなくイチの場合、年号変換と同様の計算上の複雑さが発生する。まあ、イチを足したり引いたりする必要が出てくるわけだよ。
これはプログラム言語の哲学的な要件で、どちらが間違っているという訳ではない。
2021/04/27(火) 07:11:35.97ID:a+tf24Y+
>>69
間違えることはない
むしろ「1番目」などと言うことが間違い
添字が0なんだから先頭の要素は0番目と言わないと混乱する
2021/04/27(火) 07:33:34.54ID:tjxIRyEc
>>69
先頭、先頭の1つ後、先頭の2つ後、...、先頭のN-1個後、って考えるから0始まりは都合がいい
2021/04/27(火) 11:29:57.77ID:icYtvr7r
言語によっては添え字が0からではなく、1から始まるのもあるんだよな・・・
2021/04/27(火) 15:30:36.39ID:3uQze5Gq
pythonやってるんだけど、メソッドと関数の違いがよくわからんな
.sort() と sorted()とかどっちがどっちだか分からなくなりそうだし
2021/04/27(火) 17:59:26.58ID:U2+PAgrF
>>73
Julia「マジで?」
2021/04/27(火) 18:27:12.20ID:TZd2hubY
>>69
そう思っている人も多かったので添字が「1」から始まる言語も結構存在するw
元々メモリのアドレスが0から始まって、直接ドレスを指定する代わりに配列って
仕組みで見易くしたときに、アドレス指定の代わりなので「0」から始めるみたいな
考えで「0」から始まってるって感じかな
そしてロジックを組むときに、配列要素が10個だったら良くありがちな
for(int i=0; i<10; i++)
とかだと要素10個だって分かり易いけど
for(int i=1; i<11; i++)
だと要素は10個って分かり難いとかって・・・まぁなれと感覚なんだけど
色々な言語を使うと最初に調べることの一つが配列は0オリジンか1オリジンかって
こともあるくらい一貫性がない話なので、使っている言語の決め事と割り切って
使うしかないかなw

>>74
python普段使いしてないから微妙だけど
昔々のその昔に機能の集合を一つにしたものをサブルーチンって読んでいて、
C言語ではそのサブリーチンに「()」付けて引数という概念を入れたので関数
(Function)って呼ぶように
さらにオブジェクト指向言語になって機能(関数)ではなくて手順/手法なんじゃ
ないって考えの下メソッドって呼ぶように

pythonの関数/メソッドもこの考えに従っているみたいで、クラスを定義して
クラスの中で作られた関数をメソッド、クラスの外で定義されているものを
関数て呼ぶみたいね

ただ面倒くさいのはモジュールはクラス定義がしてないので関数だけど、関数の
呼び出しに「モジュール名.関数名」っていう感じでメソッドと同じ構文使うので
混乱するのかな
77デフォルトの名無しさん
垢版 |
2021/04/28(水) 01:24:06.13ID:fg+Ry4R4
オフセットといってね
先頭の位置からの
2021/04/28(水) 12:55:46.40ID:gIRa6k7G
>>73
下限を指定できる言語もあるし
VBAとかPascal系の言語とか
7969
垢版 |
2021/04/28(水) 17:07:56.77ID:LpyO2APn
>>76
>色々な言語を使うと最初に調べることの一つが配列は0オリジンか1オリジンかってこともあるくらい一貫性がない話

へー
じゃあプロのプログラマ?でもミスることも割と多いのかな
80デフォルトの名無しさん
垢版 |
2021/04/28(水) 18:07:12.07ID:pIa4dbMw
>>78
慣れてくると、列挙型を定義し添え字が列挙型の配列を使う。
2021/04/29(木) 17:30:03.96ID:0I4TwBUN
>>79
多分ちゃんとしたプロなら事前に調査するから0オリジンか1オリジンかで
ミスることはないんじゃないかなぁw
ただ、分かっていてもミスするのが人間ってものだからww
2021/04/29(木) 17:44:58.65ID:Lkl71hrm
プログラミングに出て来る、「演算する側・される側」がよくわかりません
下の画像だと、(1)と(2)のどっちの考えが合ってますか?
https://imgur.com/a/iDyuVPu
多分、どっちかは当たってると思うんですが。。
2021/04/29(木) 18:04:55.29ID:vDvwo/qz
>>82
演算する側、される側というのは見たことがないが、演算子、非演算子を初心者向けの本でそう呼んでるのかな?
そうだとしたら(2)が正しい。
wikipediaで演算子、非演算子を調べてみるといいかも。
84デフォルトの名無しさん
垢版 |
2021/04/29(木) 19:29:37.80ID:zbxYJnFg
>>82
オペレータを演算する側、オペランドを演算される側といっているみたいですね。
オペレータは演算子、オペランドは演算対象といったほうがわかりやすいと思います。
$ が出てくるので Perlと仮定して
$a = = $b
の場合 = = が(比較)演算子で $a、$b が オペランドです。
= = は
  $aと$bを比較して、両者が等しいとき論理値:真を等しくないとき論理値:偽を結果とする
 演算子です。
2021/04/29(木) 19:31:40.61ID:219RAfCB
比較演算子でどっちかに定義しなきゃならない言語があるのか。めんどくせぇな
2021/04/29(木) 19:33:42.53ID:CnnShXoG
オペレーターは日本語にもなっていますね
操作する人、すなわち操作する側です
87デフォルトの名無しさん
垢版 |
2021/04/30(金) 20:52:08.18ID:M1JbY/Lc
cかc++とオープンGLを使ってゲーム作りに挑戦しようと思うのですが
オープンGLの書籍を本やでみてるとバージョンが2.xと4.xみたいにあるのですが
使うならどれが良いでしょうか?
おすすめの書籍かサイトもあればありがたいです。
2021/04/30(金) 21:06:48.17ID:A8ZwvtkY
今時ゲームで生のOpenGLやDirectX叩くのは商用ゲームエンジンのメーカーだけ
Unityとかでいい
89デフォルトの名無しさん
垢版 |
2021/04/30(金) 21:23:59.10ID:M1JbY/Lc
>>88
ゲーム作るのも目的ですが勉強的な目的もありますので
それなりの大きさのプログラムを書く工夫や
完成させた後に軽量、高速化の練習に良いかなと
90デフォルトの名無しさん
垢版 |
2021/04/30(金) 21:45:29.20ID:lUzIA11U
>>89
まず、Wikiじゃない?
https://nipponkaigi.net/wiki/OpenGL#Version_history

バージョンはこれから自分が作るなら
最新の突っ込んでおけばいいんじゃないかな
よく分からんけど

余談で大きなお世話かも知れないけど
ゲームは今後クロスプラットフォームで
扱えるものが主流になって行く気がする。

確かどっかにPS -VITAのSDKが落ちてた
気がしたけど、あれは確かC#で
ポインタがデリゲートになって
直接アドレスを触れなくなってしまったけど
PS-VITAとAndroidのエクスペリアと
クロスプラットフォーム開発だったはず。

今はC++で色々こねくり回して速く小さく
作るのが流行りみたいになってる感はあるけど
長い目で見たらそういう選択肢も
あるような気がするよ。
2021/04/30(金) 22:32:52.08ID:FVXE5M81
>>89
このスレタイを見てやってきた初心者が勉強で取り組むには無謀な規模に思えるが、まあやる気が続く限り頑張れ。
もし挫折しても、不思議はないくらいの難易度なんで諦めずにもっと軽い課題から頑張れ
とやる前から言いたくなるくらい大変だと思うぞw
92デフォルトの名無しさん
垢版 |
2021/04/30(金) 23:07:31.39ID:M1JbY/Lc
>>90
>>91
書き方がわるいため誤解させている、ごめんなさい。
目標がゲーム製作だと思われてることに気がつかなった>>88のコメントで気づくべきだった

kritaというお絵かきソフトの改良に参加をするのが一応目標

cとwinapi32で1度小さいゲーム製作したから
c++とオープンGL使う練習にもゲーム製作がよいかなと思って

ほんとは、QTの練習したかったけどこれでゲーム製作した人みつけられなかったし
商業利用のとこがよくわからなかったからゲーム販売の可能性を考えQTは後まわしに

DirectXがバージョン上がるたびに難易度が高くなるとあったのでオープンGL
もそんな感じなのかなと思ってとりあえず、wiki読んでみるよありがとう
2021/05/01(土) 08:23:43.84ID:eI0UlALM
数学脳ならCからはじめた方がいいけど
頭からつま先まで文系の人にはあんまりオススメできない
2021/05/01(土) 15:34:18.34ID:qPtffzbe
文系理系あまり関係ないような気がするが…
文系に向かないってのは、
代入は文ではなく式だから値を持つ、
とかそんなところかしらん?
2021/05/01(土) 15:55:22.20ID:Wy10j4TD
グラフィックスはめちゃくちゃ数学使うぞ
サインコサインで脱落した奴には普通に無理
96デフォルトの名無しさん
垢版 |
2021/05/01(土) 16:17:19.36ID:1Jh+iQ5V
あわしろ氏は、プログラミングは英文学と同じと言ってたよ。
マシンに正しく意図を伝えることが出来れば十分なので、最終的に文系の学問になるって。
2021/05/01(土) 16:19:23.00ID:yAbQnBUk
文系なプログラミングと
理系なプログラミングとが
それぞれあるんだと思う
2021/05/01(土) 16:38:14.70ID:qPtffzbe
いや、Cは文系にはおすすめできないってあるから、
書こうとするプログラムが理系的なものか文系的なものは関係ないんじゃないかと
思ったんだけど。
99デフォルトの名無しさん
垢版 |
2021/05/01(土) 21:37:50.53ID:HeWILf2Q
java+OpenGLで作れ
2021/05/01(土) 22:09:12.63ID:cYiBiBFu
文系にはループ変数をループの中で使うのが難しいらしい
101デフォルトの名無しさん
垢版 |
2021/05/02(日) 02:17:03.01ID:e4/12/44
>>96
文系が本を買ってくれないからね。
102デフォルトの名無しさん
垢版 |
2021/05/08(土) 21:12:25.19ID:0PNwSL0W
クラスより構造体を使うべき場面というのがよく理解できません
2021/05/08(土) 22:50:20.87ID:coBHIhPM
>>102
すべてがpublicのCの構造体と同じものを使いたい時だけど
新規に作る場合はそんなのあんまり無いよな
2021/05/09(日) 00:29:41.95ID:KmUW1giW
俺はなんで構造体じゃだめなのかわからない
105デフォルトの名無しさん
垢版 |
2021/05/09(日) 13:28:46.46ID:WMytKT+1
コンストラクタがいらないとき
2021/05/09(日) 15:32:51.48ID:Kg5tmvat
>>102
構造体を使うべきっていうより、構造体を使った方が簡単に行える処理はあるよ

C#の場合だけど、通信のデータや映像データみたいに内部構造の決まっている
一定サイズのバイトストーリームを処理するとき、読み込んだバイトストリームを
バイトオーダーやサイズを整えた構造体に、特定の手順を使ってメモリtoメモリで
複写すると簡単に扱えるようになるとか

クラスだとバイトストリームを項目ごとに一つ一つプロパティに写し取るとかするので
面倒くさいけど、構造体ならまとめて処理できる
107デフォルトの名無しさん
垢版 |
2021/05/09(日) 16:33:06.62ID:WMytKT+1
C#の構造体は使いにくい
2021/05/09(日) 18:08:58.83ID:OU2BPvjo
単純なDTOのsetterやgetterに変な処理入れたら
必ずどうしようもないバグや混乱の原因になった

制約のある構造体のほうがまだましじゃないかとおもった
2021/05/09(日) 18:17:42.40ID:OU2BPvjo
DTOの結合度は異常に低い
値として整合性がとれている必要があることはほとんどないし
その整合性も最初に値を作るときにValidationすればよく
ずっとオブジェクトとして整合性を保つような処理を入れるのは無駄な処理が走りすぎてナンセンスだ

つまり人間にとってたまたま一緒に扱いたいだけで
コンピューター上で一つのオブジェクトとして扱う理由がまったくない
これは一つ一つ別のデータをたまたま値としてまとめているのだとわかるように
構造体であるべきだとおもう
2021/05/11(火) 12:21:05.65ID:9u97i/pE
あの。しょうがくせいです
4ねんせい、
ぱいそん?xをだしたいです
2021/05/19(水) 17:00:27.27ID:j7cCaUeW
>>110
どんな感じでxを出したいか教えてくれるとありがたい。
xの中身のを表示したいのなら、

print(x)

で表示されると思う。
112デフォルトの名無しさん
垢版 |
2021/05/25(火) 01:19:14.34ID:SViyLBx8
cssについて分からない事があるので質問させて下さい。
text-alignプロパティが適用されません。
初心者なので、どこが間違っているのか分からず
困っています。
一応こんな感じです。
(htmlファイル)http://up-img.net/img.php?mode=png&;id=20994
(cssファイル)http://up-img.net/img.php?mode=png&;id=20995
宜しくお願いします。
2021/05/25(火) 01:41:18.53ID:BklC19C4
その前にコード晒すなら、jsfiddleでもcodepenでも使えよ
2021/05/25(火) 06:07:46.82ID:8oRzwhWr
HTML, CSS の質問は、web制作管理板の方へ書き込んでください!

この板では、ありません
2021/05/25(火) 08:14:11.20ID:8TZ12tez
こんにちは。92歳の初学者ババアです。phpで変数のスコープをif文などの中だけにするこた出来ますでしょうか。学歴は高等女学校卒です。よろしくお願いします
116デフォルトの名無しさん
垢版 |
2021/05/25(火) 10:41:34.01ID:jhBeOJMS
>>115
僕は高卒の40歳のおっさんです。PHPで変数のスコープをif文の中だけにすることはできません。
ローカル変数のスコープは関数単位です。
2021/05/25(火) 12:16:43.78ID:8TZ12tez
>>116
ありがとうございます。
118デフォルトの名無しさん
垢版 |
2021/05/25(火) 17:29:10.58ID:i29/ofqM
どうかよろしくお願いします
https://rextester.com/ZMKMV9710
119デフォルトの名無しさん
垢版 |
2021/05/26(水) 11:02:10.68ID:2/BE6bBS
editText.cancel();
120デフォルトの名無しさん
垢版 |
2021/06/02(水) 10:43:35.98ID:qtmfAhQ7
同和ンゴ
2021/06/03(木) 22:14:14.65ID:5dXEclOp
入門未満なんですが
2進数の補数と正負の表現について分かりやすく教えてほしいです
分かりやすく載ってるサイト誘導でも有り難いです
最上位ビットが1だとマイナスを表現するとか足し算で引き算を表現するとかイマイチわからないでっす
2021/06/03(木) 22:51:11.26ID:pwK5sftK
Wikipediaの符号付数値表現の項を見たらいいんじゃないかな
2021/06/03(木) 23:29:45.24ID:jx+ISKqI
>>121
入門未満でなんでそんなことを?Cでも書こうと?
つか、Cで書いても、デバッガで変数のメモリを確認するとかでもないと
そんな知識必要にならないが…

サイトって…補数表現とかで検索して出てくる解説、どれでもいい、と思うけど
そもそも難しい話ではないので。
124デフォルトの名無しさん
垢版 |
2021/06/04(金) 10:50:17.05ID:UUHTR6cx
>>121
自分で探せ
2021/06/04(金) 18:07:07.71ID:aBiHmFjq
>>121
雑だけど
まず今のCPUは便利なんで引き算も掛け算も割り算もコマンドで実施できるけど、
H/W的な仕組みで言うと本来足し算しか出来なくて、数値の表現も+とか-とか
存在しないんよ
なので一定のビットの塊、例えばshort型ならば16birtで数値を表現する場合、
16ビットで65535って数値まで表現できるけど、人間が-数値と認識できる表現と
して最上位ビットが立っていたら-、立っていなかったら+って決めることで
-1から-32768と0から32767を表すって決めたんだいな
決め事なんでなんでって言われても困るんだけど

で、足し算しか出来ない環境でどう引き算をするかっていうと、3から5を引くと
答えは-2なわけだけど
話を簡単にするために4ビット表現で0111が7、1111が-1、符号なしだと1111で
15ってシステムで考えると
3から5を引かずに、15から3引いて1足して5を足すと数値的には5ビット分に
なるので下4ビットだけ取り出す
桁があふれたら-、あふれなかったら+の値ってなる(分からないねw)

15は1111で3を引くと1100、これは3(0011)をビット反転させるのと同じこと
この操作を補数表現といって、理屈はともかく元の数をビット反転すれば良い
15から3引いて5を足すと17(10001)ってなるけど、数値は4ビットでは15まで
しか表現できないので17から15を引くと余りが2になり余分なビットがあるので-2
あふれたビットを引く行為は16を引くことになり1多く引かなければならないので、
最初に補数に1足しておく
この補数に1足したものを2の補数というだいな

まとめると3-5が0011(3)->1100(3を補数化)+0001(2の補数にする)+0011(5)で
10010になって、下4ビットを取り出して0010、あふれた桁を最上位ビットに入れると
1010で-2になると
かえって分かりにくいか?
2021/06/05(土) 01:44:06.37ID:MUSr8GWf
最上位ビットが±を表すのを決めたわけではなく、2の補数を使うのを決めたからそうなってるだけでは
127デフォルトの名無しさん
垢版 |
2021/06/05(土) 13:53:06.28ID:L4Bl9jnp
>>121
4ビットで考ます。4ビットでは 2の4乗=16で16とおりの表現が可能です。
正の数のみ(UINT)を扱う場合は、0〜15の数値を通常 0000を数値0、0001を数値1、....
、1111を数値15 に割り当てます(以降連続する4文字の0、1は計算機上の値、それ以外は論理上
の数値)。
正と負の数(INT)を考える場合は-8〜7(-7〜7)を0000〜1111に割り当てるわけですがUINTとの
整合性をとるため0000〜0111は0〜7に割り当てます。残りの 1000〜1111を負の数に割り当てる
ことになりますが、これには1000〜1111をそれぞれ -0〜-7(絶対値)、-7〜-0(1の補数)、
-8〜-1(2の補数) に割り当てる3とおりの表現方法があります。
いずれも最上位ビットが負数を意味します。また絶対値と1の補数には-0が存在します。
1の補数は数値を符号反転(正->負、負->正)するときおのおののビットを反転(0->1、1->0)
すればよく、2の補数はおのおののビットを反転し1を加えればよい という性質があります。
人間的には絶対値表現がわかりやすのでしょうが、下記のように演算のハードウエアが簡単で
すむという理由で計算機では2の補数が用いられます(1の補数は-0の処理がやっかい)。

減算を実行する場合、計算機に限らず、減数を符号反転して被減数に加えても結果は同じです。
2の補数ではA−BをA+(Bの符号反転+1)として演算します。
計算機の中の加算器はC+D+Cary を実行するように構成されます。Caryは桁上げビットであり、
最下位ビットだけ 3ビットの加算ができるわけです。桁上げのない加算を行うときは Cary入力を0に
して演算します。減算するときはDの入力値を反転して1を加えるわけですが、反転は各ビット毎に
XORゲートで行います(減算だけなら反転ゲートでよいが加算も減算も行うので通常はXORを使う)。
1を加える処理は別の加算器を用いなくともCary入力を1にすることで達成できます。
減算を実行するためにXORゲートの追加が必要になりますが加算器に比べれば規模は1/3程度です。

注. 計算機の中の 0000〜1111の値を論理上どう考えるかは自由。0000〜1111を2進数と考え
そのまま対応する数値0〜15を割り当てる場合ばかりではない。 --->グレイコード
128デフォルトの名無しさん
垢版 |
2021/06/05(土) 14:10:54.82ID:L4Bl9jnp
>>127
間違い
(Bの符号反転+1)             --> (Bの ビット反転+1)
 減算するときはDの入力値を反転して --> 減算するときはDの入力値をビット反転して
2021/06/05(土) 20:01:57.31ID:CJl2tIqC
>>121
そうですね、例えば十進法で 3 桁しか書く場所がない変てこな状況を考えます
十進法で 3 桁しかなかったら、そういう変てこでは 000〜999 の 1000 とおりを表現できます

ここで、500 とか  600 とかは表現しなくてもいいけど、 -1, -10, -100 をこの変てこで表現したいと思ったとします

そこで、変てこでは以下のように「読み替え」することに決めました
変てこ「003」 → 3 と読み替えます
変てこ「002」 → 2 と読み替えます
変てこ「001」 → 1 と読み替えます
変てこ「000」 → 0 と読み替えます
変てこ「999」 → -1 と読み替えます
変てこ「998」 → -2 と読み替えます
変てこ「997」 → -3 と読み替えます
………
変てこ「501」 → -499 と読み替えます
変てこ「500」 → -500 と読み替えます
変てこ「499」 → 499 と読み替えます
変てこ「498」 → 498 と読み替えます

つまり、変てこでは、数字をそのまま読むという方法のほかに、変てこでの読み替え規則を勝手に決めて、この例では -500〜499 の同じく 1000 を表現することに決めた!としてもいいわけです。
これが補数表現というやつです、今日はここまで
>>121 が私のここまでの解説を理解した、と表明してくれたのなら、この続きを書きます
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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