プログラミング超初心者の質問
■ このスレッドは過去ログ倉庫に格納されています
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() このソースコードのイニシャライザの部分でエラーが出ている。 プログラム初心者だけどUIの部分から想像してアプリを作ってみたいんだが、どういうツールが良いのかな? UIデザインツールというのでいいのかな? QiitaみるとFigmaというのが無料っぽいけど そういうのは分かっている人が使うものであって HTMLが分かってないレベルなら自分で簡単なものでも手書きで作った方が良いのでは? とにかく色んなものをパスしてツール使うのはどうかと思う >>510 単なる好奇心なんだけど、「これやってみよう」ってモチベーションあるときは割と新しいツールも学習できたりするので、挑戦してみようと思った どういうツールが有るのか、界隈の全体像がわからないから詳しい人がいたら教えてほしかったんだ pythonはちょっと勉強したけどswiftはまだ触ったこと無くて 人に聞くときに「こんなかんじにするのどうやるの」って聞けたほうが早いかと思ったんだ 超初歩的な質問ですが、よろしくお願いします よくプログラムは「上から下へ読んでいく」といいますけれど、 では、このプログラム(ソースコード)を上から下へ読んでいるのは誰なんでしょうか? ハードウェアとして物理的実体が存在するCPU?メモリ? それともソフトウェアとしてのOS? それともそれらすべてをひっくるめたコンピューターでしょうか? 「読む」って言ってるけど実行のこと? それとも「ソースコード」って言ってるから実行のことじゃないのかな? コンパイル言語は、コンパイラがソースコードを実行コードに変換してそれを実行する インタープリート言語は、インタープリタがソースコードを実行する コンパイラもインタープリタも(コンパイル後の実行コードも)CPUが実行しているので、CPUが読んでいるとも言える その意味で「コンピュータが」とも言えるが、「コンピュータが」って言っちゃったら全部そうだからあまり意味がない ソースコードを「メモリが読む」「OSが読む」とは普通言わない >>513 ご回答ありがとうございます。 コンパイラとインタープリターについて調べてみましたが、 この二つとも『ソフトウェア』なんですね。 人間が書いているプログラムを実行しているのもまたプログラム、 「じゃあ、そのプログラムを実行しているプログラムを実行しているのは何なのか?」 というところにきて、ここでCPUが登場してくるんですね。 とても参考になるお答えをいただき、誠にありがとうございました。 >>514 ついでにコンパイラとインタープリターをどうやって作るかも 勉強してくれ アルゴリズムを学ぶのに良い言語ってやっぱりcとかc++ですかね? 特に目的はなくて単純に脳を養いたいだけなんですが… >>516 普通にPython学んでAtcoderやろうぜ >>517 atcoderってc++人口が多いだけで別にどの言語でも良いんですね 調べ不足でした pythonやjavascriptは多少使ったことがあるのでとっつきやすそうです ありがとうございます アルゴリズムなら、Ruby。 パズル・コードゴルフの本は、たいていRuby コンテナ.map{ 処理 } みたいにメソッドチェーンで関数型っぽく、 次々とデータを変化させていけるので、可読性が高い。 Shell Script や関数型のElixir のパイプラインみたいな感じ 同様に、最近のJavaScript も、Ruby化してきた 3人の東大生が書いた、 「プログラミングコンテスト・チャレンジブック 第2版」みたいな、 動的計画法・グラフ理論とか、本格的なアルゴリズムは、C++ でも、パズル程度で、C++は難易度が高すぎる。 C/C++ など、ポインターのある言語は、面倒くささが半端ない この板にある、プログラミングのお題スレを参照 とある会社で物品購入したら、銀行振込・現金書留・切手は払いと言われました。 使ってない切手が多数あるのでそれを利用しようとしてふと思ったのですが 84円とか62円とか51円とか100円とか様々な金額が数十枚あり、その組み合わせで891円丁度とかにする プログラムは皆様でしたらどんな言語、思考で作成されますか? 切手の枚数と金額はリスト化してます >>520 線形計画ソルバーを使う python+pulpかexcel >>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) 「プログラミングコンテスト・チャレンジブック 第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 とかは? iframe内のjsからページをリロードする方法ありますか? window.location.reload(true); を実行してもページは更新されなくてiframeだけ更新されてしまう python簡単ってマジですか 今までarduinoしかプログラムに触れたことなかったからライブラリに押しつぶされそうなんですけど… 自分で書く必要がなく ライブラリを探すだけ という意味では簡単では? 教えてください。 一年発起して、以前いちど挫折したLaravelを勉強しようと本を買ってきました。 最新のver9について勉強しようとはじめたのですが、その本では、xamppではなく Dockerというものをインストールしてその環境の上で開発するのが今のスタンダードだと書いてあります。 進めてもなんのことかわからなかったので、Dockerの本を何冊か買ってきました。 しかしこれもわかりません。Dockerというのが、何か大きな業務システムの最深部を司るサーバーの役割を するものみたいなんです。 自分のPCの中でLaravelシステムを作ってレンタルサーバーにアップロードして自分や友だちだけいじる、という 程度のことなのにそんな大袈裟な仕組み(Docker)のことなんて本当に必須なんでしょうか? というか、本当にLaravelとDockerは切っても切れないものなんですか? >>519 でも数値解析系の本でRubyが使われていることがまずないですね。 統計分析、機械学習などの分野でもRubyはいまいち。どうして? >>527 別に開発環境ならDocker使う必要ないよ 正直メンドクサイのでLaravelではLaravel Homesteadと呼ばれる virtualbox+vagrantで環境構築出来るものが用意されている https://readouble.com/laravel/9.x/ja/homestead.html ググればいくらでも情報が出てくるからこれ見て構築出来ないレベルなら流石に厳しいw Dockerを使うとWindows, Mac, Linux など どの環境でも簡単にインストール、保守、運用できる と Docker は主張している。 ただ Docker のインストールは結構めんどくさい。 >>529-530 ありがとうございます。 たいへんありがたいのですが、もうひとつ、どうしてxamppではダメなのかということも教えていただけないでしょうか? いや別にxamppでも何の問題もない ただ古いものを嫌がる企業がある それだけの話 社長の気まぐれかもしれない >>526 確かにそうですね… ドキュメンテーションも豊富だし慣れるまでの辛抱ですかね >>532 ありがとうございます。 やはりxamppでも問題ないんですね。 >>1 の書式?って力技で覚えていくのですか? アルファベットを初めて見た人が、力技で英単語や文法を覚えるみたいに。 ズブな素人ですが、楽しそうというか、とっつきやすいプログラミング言語の種類を教えて下さい ちょっとメンヘラ拗らせちゃって、生き甲斐を欲しているのです そこにブラウザとメモ帳があるじゃろ? それでJavaScriptを書くんじゃよ( ^ω^) ブラウザとGASで遊べるjavascriptは中々 C#(Unity)でif文ですが、 通常は i f (条件) {処理} って書くと思いますが、 #if 条件 処理 #else 処理 #endif こういう書き方をしてるサイトがあってちゃんと動くし意味自体は見れば大体わかりますが、 こういう書き方は本には載っていなかったので、なんて言うんでしょうか #ifや#elseは処理じゃなくて コンパイル時にその条件に満たした場合のみコンパイルするという意味で if (条件) { } else { }とはそもそも別物だぞw なので #if _DEBUG なんからの処理 #endif とかいて_DEBUGが定義されていなかった場合は、なんらかの処理はそもそもコンパイルされず プログラムとしては残らないからプログラムの条件分岐とは全く考えが違う こういうのは良くあるのはデバッグ時のみコンパイルしてリリース時はコンパイルしない (デバッグログの出力など)みたいな用途に使う pythonの3Dグラフライブラリもっと充実して欲しい… Line3DCollectionとaxes3d.plotを組み合わせた時の重ね順を自由に扱いたい JavaScriptやPHPの入門書のたぐいを読んでいると必ず「オブジェクト指向」というのが出てくるけど 自分はたぶん逆に 「オブジェクト指向じゃないプログラミング言語」に触れたことがないからだと思うのだけど これが実感としてよくわからない 他のどんなプログラム言語と比べてオブジェクト指向は 「画期的」だったり「便利」だったりするのかなあと 「オブジェクト指向」についての説明文を読むたびにいつも想像します もしわかる人がいたら教えてください 巨大なプログラムを書くときに オブジェクト指向で書かないとひどい目に合う レスありがとう 逆に「オブジェクト指向ではない」ってのはどういう感じなんですかね きっと従来の何かと比較しての「オブジェクト指向」だと思うんですが プログラム言語の変遷みたいなのを分かっていれば そのへんきっと感覚としてよく分かるのかなとか想像してみます 単に言語的にクラスをサポートしているかどうかだろうけど C言語の場合、構造体はあるけどその構造体にメソッドを付けたり出来ないあくまでデータの塊 C++ではclassが追加され実態は構造体にメソッドが付けられるみたいな感じで (勿論継承やら仮想関数などもあるが)あくまで塊のデータにメソッドが付いているのが クラスというイメージで良いかと思う 結局オブジェクト指向で無くてもC言語でも構造体を使わないという事は無いので クラスを使わない場合は、何かする関数で引数に構造体のポインタみたいなのが付いてくるという感じか 大昔というか計算機の最初の時代では 全部、今でいうところの main の中に書いていた 同じことを何度も書くのは無駄じゃないかということで 現在のメソッドに当たるサブルーチンが作られた >>548 >言語的にクラスをサポートしているかどうか 見た目的にはそういう分かれなんですね >>548 さんの言うC言語や>>549 さんの計算機の時代の話から想像するに オブジェクト指向でない、というのは 一つのパーツを構成するメソッドやらプロパティやらを たとえば「クラス」に紐づけて扱えない感じですか 自力でクラスやその継承が必要となるようなプログラムで 何かを作ったことがないのであいかわらず漠然とした理解ですが クラスやそのインスタンスが使えないとなると とりあえず文字数が膨大になりそうというのは想像つきます ありがとうです >>545 オブジェクト指向は単なる考え方 C言語みたいな非オブジェクト指向だと関数とデータは別の存在 それをまとめてオブジェクトとする そのオブジェクトに「君、この書類を提出しておいてね」的な命令(メッセージング)として関数を呼び出して処理してもらうだけ >>548 クラスは必須ではない 現にJavaScriptは割と最近までクラスはなくて、その代わりにプロトタイプがあった クラスは上の考え方を表現するための方法でしかない >>551 なるほどー JavaScriptだと たしかクラスのインスタンス名に「.」(ドット)をつけて クラス内の関数やデータを呼び出すんでしたっけ C言語を触ったことがないので 「関数とデータが別」というのがうまくイメージできないけれど ただそうやってクラスなり、プロトタイプなりの名前で 個々の関数やデータといった情報をひとまとめにして紐づけて、扱うことができないとなると、 おそらく必要になるたびに都度、関数や値を設定するということかと想像されるので やはりきっとオブジェクトというコンセプトを使わない言語では 手間が増えるんだろうなあと思う次第 ありがとうです そもそも関数とデータは本来何の結びつきも無い訳で 結局クラスと言っても、クラスのメソッドはC++ならインスタンスのポインタからのアクセスなら instance->method() インスタンスが実体なら instance.method()となるだけで C言語ならそれが method(&instance) みたいにインスタンスが引数になるだけ この辺を分かっていれば別に難しくも何とも無いのだけど Javaなどからいきなり始めると理解が追い付かないのだろうなとは思う >>553 C++やC言語の文法はよく分からないけれど その辺りの言語でも クラスに似たような、つまり 既存のメソッドやプロパティを使いまわす、参照する方法はあるんですね c言語のwhile(条件)てあるやん? 条件に合わないと(割り込み時を除いて)延々CPUパワーつかんでるの? 大抵は while(1){ waitなりpollingなりsleepなり } whileの中に何も描かないでやったらCPU100%になるかも知れんし 最適化されて消されるかも知れんし OSのプロセスやスレッド管理の中でしか動いていないならやっぱり CPU100%にはならんかも試練 >>552 あまり好きな例ではないけど、車を操作するという処理をする場合、「車」という構造体(クラスのメソッドがないやつ)に燃料の残量や馬力等の情報を持ってるとする 非oop(C言語のような)だとこれを関数に渡して、関数がこの残量をいじくる でも現実だと残量とかは外部からいじるんじゃなくて車が操作している感じだよね(ちょっと違うけどイメージね) これを車クラスを作ってさっきの残量等のデータと「前進する」等の処理をまとめてオブジェクトにする そしてoopでは「車よ、動きなさい!」と命じることで車が前進して内部で残量も適切に減らす つまりオブジェクトに任せるのがメインだと思うよ 30.0fから80.0fの範囲で、数字が増えたり減ったりを繰り返しさせたいと思ってて まず30.0fから増やしていって80.0fになったら今度は数字が減っていくようになって 30.0fまで下がったら今度はまた増えていくみたいな数字の動きをさせたいのですが これを条件式を使わずに計算で出す方法はないでしょうか サインカーブみたいなのならsinでいいけどどういう動きをするか次第じゃね? 初心者&数学がロクに分からなかったらsinの使い方も分から無さそうだけどw >>563 90で1.0f 180で0.0f 270で-1.0f 360で0.0f これを当てはめれば良いのですね ありがとうございます ちなみに任意の繰り返し関数は sin関数の組み合わせ(荒っぽく言うと足し算)で 計算可能だからな いわゆるフーリエ展開 e^πi + 1 = 0 なんて描く香具師は素人 e^πi = -1 と描く 台帳と銀行口座のリンクまでされてるって証明されてしまったな しないって言ってたのに exp(iθ)=cos(θ)+isin(θ) これが1番美しい >>572 交流理論は純粋に微積分で記述できるものであり、直接には複素平面、つまり代数的記述はなんら関係ない 交流理論において微積分で記述するものと代数的に記述するものとが等価であることを証明せずに、安直に結果だけ利用するその思考は、 知的誠実さを決定的に欠いている と強く非難します >>574 ある前提をもとにした場合、代数的記述と解析的記述とが等価であることを証明しない限り無意味な動画ですね プログラミング超初心者がプログラミングを覚えるためには、何から始めればいいですか? ジャニーズはハードルが高いです デニーズとかチャイニーズで探してみたいと思います Visual Studio Community 2022をインストールして ドキュメント見ながら、コンソール電卓を作っているところなのですが、 こういう「○○を作りましょう」みたいな課題をくれるサイトって他にもありませんか? 英語のサイトでも大丈夫です 【根拠あり】フリーランスエンジニアは年収862万円取れて普通という話【高収入】 【こんな僕が】フリーランスエンジニアで月収100万円を達成した5つの方法 ITフリーランスエンジニアの年収|会社員との違いや独立後の案件の取り方 月収90万のITフリーランスプログラマー・SEが選んでる在宅案件はこんな案件です フリーランスの年収は平均いくら?年収1000万円以上の割合とは 2021年最新版 エンジニアの平均年収はいくら?全体平均と比べて○○円も高い! 【高すぎると不利】もっともコスパの良い年収は?「最適年収」3パターンについて解説 オリコ、ITフリーランス専用ゴールドカード「techcareer EX GOLD for Biz Card」を発行 ライセンスに関する質問なのですが GPLのソースって中の仕組みを参考にして自分のソースに反映した場合 自分のソースもGPL扱いとして強制公開になりますか? 組み込むんじゃなくて動きを参考にしただけなのですが・・・ 商用利用の場合は法務部とかそっちに問い合わせた方が良いのでは? 小さな会社ならあんまりやらない方が良いかも知れない 個人的な利用なら問題無いかと思う >>585 ありがとう 個人利用なんですが無圧縮のインタプリタ言語なので 無償公開したあとでなんか言われるのもやだなーと思って聞いてみました とりあえず別のアプローチでなんとかなりそうなので今回は避けときます すみません Wikiのような不特定多数が書き込みをできるウェブサイトを作ろうとしているのですが 何かユーザーがコメントやページを追加したときHTMLを書き換えるだけで良いのでしょうか? それともDBを作ってそのDBを読みに行く形が良いのでしょうか? 簡単に実装しようとするとHTMLを書き換えればいいだけのように思えますが次回訪問したときあるいは他の誰かが編集したときなどその変更したものが残るのかっていうのを知りたいです HTMLを直接書き換えるという考えはかなり少数派で基本的には DBにデータを保存しておいて動的に生成する方が主流かと HTMLを書き換える場合はどこに挿入されるか予めルールを決めておかないと その書き換え処理が結構大変になりそう >>588 なるほどありがとうございます DB管理でやってみます db->htmlを毎回処理すると重くなるから dbが変化したときだけhtml出力してキャッシュ readアクセスだけのときはキャッシュしたhtmlをそのまま返す dreamboothを使いたくてコラボでデモ版を使っているのですが、何度もトレーニングさせる羽目になります。まず何から始めるべきでしょうか。 学校の副教科として、pythonで文字を出したりループとか勉強しました。Rは統計学の勉強も兼ねて時々使います。 将来的にアンドロイドアプリ開発 目下一応規約違反(実際は横行中)サイトのスクレイピング。 Kotorinとjavaでいいっすか? >>592 つけたし、VBA+IEからの移行で考えてます c++で if(a && (b == 1 || b == 5 || b ==12 || b == 14 ) ) {} をスマートに書く方法ってないですか JavaScriptで let i = 0; if(90 != i || 180 != i || 270 != i || 360 != i || 450 != i ||...ずっと続く){ 文; }else{ 文; } みたいなコードを書きたいのですが、適切な表現を思いつきません。 let array = [90,180,270,360,.............ずっと続く]; if(array.indexOf(i) == -1){ 文; }else{ 文; } のようにもしてみましたが、これでもダメです。 式を使って配列を形成したいのですが、便利な方法はありますか? 90の倍数なら90の余りで判定すればいいのでは・・・ それだな とおるかしらんが、こんなのだろ m=90; if (i%m !=0) echo(m +"で割り切れない"); else echo(m +"で割り切れる"); enum class CardMark { spade, club, diamond, heart, }; std::string get_mark_string(CardMark card_mark) { 〜〜〜 } int main() { } というコードの(CardMark card_mark)は変数の宣言を兼ねてるんでしょうか 引数の中でも変数って宣言できる? 単に関数の引数 CardMark型の引数を要求しているだけ get_mark_string(CardMark::spade) みたいに使う(勿論、戻り値を何かに利用しないと全く意味のないコードになるが) まぁ仮引数もローカル変数ではあるから、変数の宣言だというのも間違いではない 仮引数っていうのがあるんですね どこにも宣言のない変数のようなもの突然出てきたので混乱してました ありがとうございます bat処理でPIDを調べて優先度変更をしたいのですが、 以下で取得しようとするとcmdを開いた状態では問題ないのですが bat実行で取得しようとするとpauseをかましてもすぐ閉じてしまいます。 for /F "tokens=2" %i in ('tasklist /FI "WINDOWTITLE eq MyTitle*" /NH') do set MyPid=%i batからもPIDを取得出来る様にするにはどうしたら良いでしょうか? >>602 自己解決しました。 for /F "tokens=2" %%i in ('tasklist /FI "WINDOWTITLE eq MyTitle*" /NH') do set MyPid=%%i で行けました C++とかでさ、 char* s = "あいうえお; if( ){ s="かきく"; } とかに書き換えてもいいの? 良いけど、”あいうえお”のデータは存在するのに場所情報は永遠に失われる。 それが文字列リテラルのポインタだと理解しているなら別にいいけどね C言語の勉強中ですが、わからないことがあったので教えてください。 int main() { char Test[50] = "Test1"; char *pTest = &(Test[0]); char **ppTest = &pTest; FuncPP(ppTest); printf("Main : %p\n", pTest); printf("Main : %s\n", pTest); return 0; } int FuncPP(char** p) { char Test[50] = "Test2"; *p = &(Test[0]); //printf("Func2: %p\n", *p);★ return 0; } Visual Stuioで、これをコンパイルして実行すると、 Main : 000000200A34F838 Main : になり、最後のMainの値が表示されませんでした。しかし、★のコメントアウトを外すと、 Func2: 000000705757F7C0 Main : 000000705757F7C0 Main : Test2 となり、最後のMainの値が表示されるようになりましたが、なぜ★の部分が無いと最後の値が表示されないのか、わかりませんので教えてください。 FuncPP()内のTest[50]が生きてるのはFuncPP()内だけ ローカル変数へのポインタを返しちゃダメ やっちゃダメなことをしてるプログラムはどんな動作になっても文句言えない ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる