新しいアカウントで始めました。

身の回りの出来事や写真が中心です。

cametan_42さんの練習問題nineteenをRubyで書いてみる。

2021-10-13 14:19:06 | Ruby

cametan_42さんがPythonのリスト内包表記の練習問題の回答含みで書いてます。今回は19回目。

 上の図のコードは、cametan_42さんのブログをコピペしたものですが、意外な落とし穴がありました。一番最後のnimeteen()は上のコードを実行するもので、自分が付け加えました。更にその上の2行が問題でした。本来であれば、nineteen()に含まれるもので、一番左から始まるものではないのですが、やってしましました。Nineteen()にエラーのアンダーラインが付いてました。でも、実際は上のようでありました。Pythonは終わりを表す、endが無いので、こんなとこ注意ですかね。

 def nineteen内でclass Nineteenを宣言してますが、ローカル関数というものがある例えばKotlin、Scalaなど、これはローカルクラスですかね?関数def以外では使われないクラスがNineteenとうことですかね?

コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

cametan_42さんの練習問題eighteenをRubyで書いてみる。

2021-10-12 09:56:55 | Ruby

cametan_42さんがPythonのリスト内包表記の練習問題の回答含みで書いてます。今回は18回目。

一般的に書く場合、基本の二重ループです。

上の結果を見ると、例えば2の段と言えば、2x1=2 ,2x2=4…ですが、後ろの方を固定で、頭のほうが変わってます。ループの仕方なんでしょうか?

コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

cametan_42さんの練習問題seventeenをRubyで書いてみる。

2021-10-12 08:16:16 | Ruby

cametan_42さんがPythonのリスト内包表記の練習問題の回答含みで書いてます。今回は17回目。

 素因数分解するというのは、素数の列で割り算していって、答えが1でそれ以上割ることは出来ないので、終了です。なので素数のジェネレータが使えそうです。cametan_42さんのリスト内包表記では、sqrtを使って終了を判断してるようですsqrt(num) < wknum かな?で判断できそうです。但しans << wknumをしないといけないかもしれません。

 重箱の隅をつつく、様でもし訳ありませんが、答えの2,2,3,5,5,67の最後の7が消えてると思います。最近Pythonのスクリプトを実行してませんでした。上の問題をやってみたらエラーが出ました。cametan_42さん、見ていらしたら教えて下さい。

6行目のxとyが、割り当てられていないというようなメッセージのようです。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

cametan_42さんの練習問題sixteenをRubyで書いてみる。

2021-10-11 21:02:47 | Ruby

cametan_42さんがPythonのリスト内包表記の練習問題の回答含みで書いてます。今回は16回目。

 一箇所、実行画面とソースが合ってませんが、""の中なので、影響はないでしょう。素数のジェネレータが使えそうですので、どう判断して終了するか、継続するか、の問題ですね。例の101は素数です。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

cametan_42さんの練習問題fifteenをRubyで書いてみる。

2021-10-11 14:54:08 | Ruby

cametan_42さんがPythonのリスト内包表記の練習問題の回答含みで書いてます。今回は15回目。

今回は前回の問題にファウルの入力を追加したんですね。ListCheckにx==3の部分が追加に成っただけです。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

cametan_42さんのブログ、Lispの話題。

2021-10-11 08:45:32 | Ruby

 cametan_42さんが、興味深いこと書かれてます。リンクを張っておきます。最後の方に、再帰のプログラムのことがあります。少しだけやってましたので、Rubyでも出来るだろうか?但し、高校の教科書から持ってきた問題をそのまま、コードにするのは、無理だと思います。一般a(n)を求めるのに、a(n+1)を使っては駄目ではないんでしょうか?数学的な表現ができないので、多分こういうことと推察をお願いします。答えからなら、書けそうです。

多分、等差級数のジェネレータ式と言えると思います。

再帰の最も単純な形だと思います。問題は、同じ計算を繰り返すことだと思います。

 ここからは、「Rubyプログラミング入門」の例にあるもので、同じ計算をしない部類ですが、forを使っている部分ではすると思います。試行錯誤でやってますので、理解できてません。

上も、ほぼもう一個上と同じ部類です。説明できません。(笑)

コメント (4)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

cametan_42さんの練習問題fourteenをRubyで書いてみる。

2021-10-11 08:30:45 | Ruby

cametan_42さんがPythonのリスト内包表記の練習問題の回答含みで書いてます。今回は14回目。

 問題の種類にもよるかもしれませんが、今回もwhile修飾子を使ったclassを変更してやってみました。strikeとballの条件で、戸惑ってました。@マーク付きの変数とローカルな変数の違いをゴチャ混ぜにしてました。@strikeや@ballはインスタンに対して、グローバルな感じです。ListCheckでは、結果のみを@変数に代入するように変更したらうまくいきました。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

cametan_42さんの練習問題thirteenをRubyで書いてみる。

2021-10-10 08:35:02 | Ruby

cametan_42さんがPythonのリスト内包表記の練習問題の回答含みで書いてます。今回は13回目。

 Rubyにはリスト内包表記というのがない、ということですので、しかもcametan_42さんの回答とは全く違います。cametan_42さんが述べておられる通りですので、classを使った回答については、上級者と言いますか?twelveまでの課題でリスト内包表記の学習では、十分らしいです。

 前にprimegen.rbで気に入った?表現が使えそうです。while修飾子というみたいです。1行で書けてるので、リスト内包表記に近い?

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

cametan_42さんの練習問題elevenをRubyで書いてみる。

2021-10-09 08:47:10 | Ruby

cametan_42さんがPythonのリスト内包表記の練習問題の回答含みで書いてます。今回は11回目。

 発想はだいたいcametan_42さんと、同じですね。文字列に”*”で繰り返しの文字列が出来るし、str[0,endpos]みたいに書くと、先頭からendpos文字切り取られる。自分は分からないなりにpythonのコードを見ているので、半分カンニングですね。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

cametan_42さんの練習問題twelveをRubyで書いてみる。

2021-10-09 08:47:10 | Ruby

cametan_42さんがPythonのリスト内包表記の練習問題の回答含みで書いてます。今回は12回目。

 この問題を見たとき、累乗などのように無限に続くのであれば、素数のジェネレータが使える。で、それを変更しました。回答とはアプローチが違いました。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

cametan_42さんの練習問題tenをRubyで書いてみる。

2021-10-08 20:24:08 | Ruby

cametan_42さんがPythonのリスト内包表記の練習問題の回答含みで書いてます。今回は10回目。

 配列に個数分の"*"要素を押し込んでいって、最後にjoinで一つにまとめる。最初は文字列の足し算str+="*"でやりましたが、joinを課題の回答で使ってるので、それでjoinを使ってやってみました。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

cametan_42さんの練習問題eight、nineをRubyで書いてみる。追加ありzip

2021-10-08 09:18:44 | Ruby

cametan_42さんがPythonのリスト内包表記の練習問題の回答含みで書いてます。今回は8、9回目。問題が似かよってますので、一緒にしました。

 今回も前回のclassを元に、書いてみました。最後のprintfで添字を使いたくなかったのですが…。最大値のタトルと最小値のタイトルを入れて、しかも添字無しで書く方法あるますかね。puts(aObj.hantei)だと数値2個だけですし?

追加)

 項目のタイトルの配列を作って、aObj.hanteiとzipします。”最大値”,10のペアの配列が2個出来ます。最小値の分と。eachを使えば、添字要りません。|x,y|とするところが、気付きませんでした。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Ruby三項演算子に落とし穴あり!個人的感想。Windows特有かもしれません?訂正あり。

2021-10-07 14:04:19 | Ruby

三項演算子がエラーで使えないので、if文で書きました。

VS Codeでもエラーが起きましたが、最後の”阪神の勝ち":"引き分け"と":"の前後のspを取ったら、動いたんですが…。意味不明。

三項演算子で日本語を使わないで書くと、Eclipseでも動きました。":"の前後にspが有ってもOKです。

訂正)その後、三項演算子だけに絞って、やってみたら、日本語が入っていても、Eclipseで正常に動きましたので、エラー原因は不明です。今は正常に動いてます。お騒がせいたしました。お詫びします。

 VS Codeでも、日本語を止めたら、スッキリと動きました。何かあるんですかね。

 少し面倒ですが、Cygwin64 Terminalで、日本語の入った三項演算子がエラーなしで使えるのか?vimを使う必要があるのが、難点なんです。出来るだけ、単純化して、やってみる?

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

cametan_42さんの練習問題sevenをRubyで書いてみる。追加あり。

2021-10-07 14:04:19 | Ruby

cametan_42さんがPythonのリスト内包表記の練習問題の回答含みで書いてます。今回は7回目。

 本来であれば、zipの機能がRubyにあるかどうか?何ですが、前回あまり使ったことのないclassが使えたので、今回もclassを使ってみました。ネストした三項演算子前は使えたのですが(VS Code)、今回はだめでした。if文は代入できる、Rubyは最後の値が返る、returnは無くても、でそれでやってみました。

 アップが終了したら、VS Codeでやってみようかと思ってますが、入力できないので、配列の値を最初からセットしてやってみます。

追加)

添字を使うのはまずいので、使わないようにしました。zipに関しては、配列を一つにするとの説明がありましたが、この場合、どう使えるのか不明です。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

cametan_42さんの練習問題sixをRubyで書いてみる。

2021-10-07 08:20:49 | Ruby

cametan_42さんがPythonのリスト内包表記の練習問題の回答含みで書いてます。今回は6回目。

 今回はcametan_42さんの回答参考に、Rubyで書いてみたのですが、かなり似ていると思います。RubyとPythonは、違うとこも多いが、似たように書ける場面も多い。車はアメリカは、右側通行で、日本は左側通行です。それくらいの違いはあるかもしれません。もしかしたら文化の違いかもしれません。三項演算子の部分は、そんな感じに思えます。三項演算子自体は、Cでも有ったと思うので、日本で発明されたものでは、無いですけど。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする