• ベストアンサー

続・URLから任意の数字を取得して演算後、一定の条件をもとにグラフ化するプログラムを作りたいです。

 以前にperlでのプログラミングに関して大変丁寧で分かりやすく説明して頂けまして本当に助かったのですがまた問題に当たってしまいました。。自分で質問を締め切ったのですから、できれば自分の手で解決したかったのですがどうもできません。どなたかまたお力をお貸しして頂けないでしょうか。何卒よろしくお願い致します。ちなみに以前に質問させて頂きましたURLはhttp://oshiete1.goo.ne.jp/kotaeru.php3?q=1505451です。  さてその問題と言いますのは、以前質問させて頂きました時の回答No7のtasekiさんのプログラムに関してです。あの時はできた喜びに大変満足して大事な事を検証するのを忘れていました。そう、それは演算をする事です。具体的に申し上げますと、足したり割ったりしたいのですが自分で試してみても全く検討違いな答えが返ってきます。 (例 print ($data_table[2][4]+$data_table[1][4])/2; print $data_table[1][3]*100-3; etc...) どうも足し算だけの場合は上手くいくようなのですが割り算などをした場合は全然上手くいきません。どなたかアドバイスして頂けないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • taseki
  • ベストアンサー率66% (155/233)
回答No.3

もしかしてコンテキストの評価で問題ということかな? print (($data_table[2][4]+$data_table[1][4])/2); というように、全体をカッコで囲んでみてください。 あるいは、 $result = ($data_table[2][4] + $data_table[1][4]) / 2; print $result; というように、printする場合は一度変数に入れてからのほうが無難な場合があります。

Dbl
質問者

お礼

 自分で考えていることを上手く言葉に表さない限り相手には決して伝わることはないと以前から熟知していたにも関わらず今回の質問はエスパーでないと答えられないような質問になってしまった事をまず謝らなければなりません。申し訳ありませんでした。  回答につきましてはこれまたしっかりと思うことができました。有り難うございます。ところで、これでも自分でいろいろと調べたつもりなのですが自分の検索力(あるいは理解力、検索力と理解力の両方)では限界があるようです。以前にお答えして頂いた回答と今回お答えして頂いた回答といいますのはtasekiさんの総合的なプログラミング力に他ならないと確信しておりますが、こんな自分(以前質問させて頂いた時に書いた通り、C言語の分岐条件くらいまでの経験しかありません)でも今回のようなプログラミングを作るために読んでおいた方がよいような書籍をもし知っていましたらお教えして頂けないでしょうか。やはり他の方の力を借りることは最終手段にするほうが実力も伸びると思います。あくまでも知っていた場合にのみで結構ですのでよろしくお願い致します。

その他の回答 (4)

  • taseki
  • ベストアンサー率66% (155/233)
回答No.5

> CGIに関しての書籍と言いますのは総合力としてはやり必要なものなのでしょうか? 「総合力」とは、体系的に関連知識を学習する、というような意味ですか? とりあえずそう仮定して、「プログラミングの」という範疇では、別にCGIが必要と言うことはないと思いますよ。 と言うより、勘違いしてはいけないのは、CGIはプログラム言語などとは全く別のものを指し、「プログラムを動かす環境」というように考えればいいと思います。 perlであろうとPHPであろうとCであろうと、何かしらのプログラムがあって、それをWebサーバー上で動かす、あるいはWebサーバーとプログラムの「橋渡し役」をするのがCGIです。 なので、その必要がなければ、CGIを使うことも勉強することも、別に必須ではありません。ただし便利ではあるので、特にperlと組み合わせるとWebサイトでいろいろ使えるのは確かです。 なので、CGIを勉強する・しない、いずれの場合でも、とりあえずプログラムの勉強とは切り離して考えたほうがいいと思います。 ちなみに、CGIそのものは前述したように単なる(?)動作環境に過ぎないので、それほど複雑でもなく大まかな仕組みさえ分かれば難しくないと思います。

Dbl
質問者

お礼

 総合力と抽象的な言葉であいまいになってしまいましたがお察しの通り体系的に学習するとの事を意味していました。またエスパーものに。。何度もすみません。  CGIについては勘違いしておりましたです。てっきりperlの中の一部にCGIが含まれているのだと思っていました。アドバイスにより、どの書籍を買うのが適切かと言うことがかなり絞れました。有り難うございます。そして何から何までお世話になったことについて最後にもう一度お礼を言わせて頂きたいと思います。本当に有り難うございました。

  • taseki
  • ベストアンサー率66% (155/233)
回答No.4

書籍と言いましても、それぞれのレベルや目的や、もっと言えば読みやすさ・相性、などなどに応じて違うとは思いますが、perlに限って言えば、最も有名でperlの原典のような本が「プログラミングPerl」(オライリー・ジャパン出版)でしょう。 おそらくperlをある程度使いこなす人のほとんどが読んでいるのでは、というほどの、バイブル、ある意味で公式マニュアルのようなものです。実際、perl開発者のLarry Wall氏が著者の一人です。 表紙にラクダの絵が描かれているので通称「ラクダ本」と呼ばれています。プログラマーの世界ではラクダ本で通じると思います。 しかし、確かにこの本はperlのすべてを網羅した公式マニュアルのようなものですが、得てしてこういう本は、初心者が勉強に使うには適していないと思います。たとえるなら広辞苑のように、何かを調べるときのために本棚に一冊置いておくような、リファレンスのように考えるといいと思います。 ちなみに、同社からラクダ本の他に「赤ラクダ」、「青ラクダ」「ナッツ本」(ラクダの頭=ナッツだけの表紙)など紛らわしいので、間違えないよう注意(赤ラクダは旧版なので大丈夫とは思いますが)。 それぞれperl関連の本で、「初めてのPerl」というのもありますが、名前が意図する初心者の学習向けとしては、イマイチという声もあります。 ちなみに私は、前述の通称ナッツ本などと呼ばれる「PERLクイックリファレンス」を大変重宝しています。名前のとおりちょっと調べたり確認するにはちょうどいいのと同時に、モジュールに関して詳しいので、拡張と言いますか次のステップに進む際には役立つと思います。 ちょっと解りにくくなってしまいましたね。まとめると、通称ラクダ本と呼ばれる「プログラミングPerl」(オライリー・ジャパン出版)が、正確で網羅されていてリファレンスとしては最高峰のもので、最終的には手元に置いておいたほうが良さそうなものです。 初心者の学習用としては、やはり人それぞれ適したものを探すのが一番と思います。「すぐわかるPerl」(技術評論社)が良いというのはよく聞きます。 初心者向けのいわゆる入門本は、そもそもプログラミング全般において初心者なのか、そうではなくperlにおいて初心者なのか、などによっても違うと思うので、本屋でパラパラとめくってみて、そのレベルや解説の詳しさや、さらには読みやすさなどで選ぶと良いと思います。 なんだかあまり参考にならない回答になってしまいましたが…。 ようは、基礎的な部分をしっかり押さえておけば、あとは各言語、各関数などの仕様を知るだけでいいわけですから、逆に言えば、取っ掛かりになる初心者向けは自分にあったものを選び、必要に応じて「初めてのPerl」など正確で網羅されたもので補い、そのあとは、ラクダ本やナッツ本などを手元に、いろいろ試しながら何かを作っていけば、自ずと身につくのではないでしょうか。 あるいは極端な話、基礎さえしっかりしていれば、ラクダ本などなくても必要に応じて調べる、というのも手の一つ、とも言えると思います。もちろんあれば便利なのは間違いないですが。 たとえば今回のprintの件で言えば、これは仕様に関するミスをされただけです。しかし基礎的な部分でもあります。リファレンスなど調べるとprint文はリストコンテキストであることが解るはずで、そして解決されたのは、ANo.2の方の方法はリスト部分を打ち消す方法、私のは全体をリストとして渡すことで、解決されたということです。 これは、仕様を見ただけでは具体的な解決につなげるには難しい、ということを意味すると思います。なぜリストなのか、リストとはどのような場合にそうなるのか、などは、やはり基礎の部分で、順に勉強していく必要があると思います。

Dbl
質問者

お礼

 いつもいつも丁寧なお答え本当に有り難うございます。僕はプログラミング事態が初心者なので『初めてのperl』でも理解できるか少し不安でありますが本やさんで一度見てみたいと思います。そしてご指摘の通り他に自分にあうものがあるのか調べたいと思います。  それにしてもやはりやりたい事をしたければプログラミング(他の事についてでも言えると思うのですが)の総合力が必要であると再認識させて頂きました。有り難うございます。実は、書籍につきましては以前に調べたことがあるのですがCGIについて書いてある物も多々ありました。CGIに関しての書籍と言いますのは総合力としてはやり必要なものなのでしょうか?(今のところやりたい事をするためには恐らくCGIは不必要です。(教えて頂いたプログラミングみたいな事をCGIと言うのであれば、とんだ勘違いですが))  最後にもう一言アドバイスして頂けますと大変助かります。よろしくお願い致します。

  • hara_peko
  • ベストアンサー率28% (11/38)
回答No.2

print ($data_table[2][4]+$data_table[1][4])/2; print $data_table[1][3]*100-3; を print +($data_table[2][4]+$data_table[1][4])/2; print +($data_table[1][3]*100-3); ・・ということではなく?

Dbl
質問者

お礼

 できました!説明不足で大変申し訳なかったと今、非常に後悔しておりますがまさにやりたかった事ができました。つまり+をつけないと思うように演算ができないと言うことなのですね。また1つ勉強になりました。有り難うございました。

  • taseki
  • ベストアンサー率66% (155/233)
回答No.1

「全然上手くいきません」とは、具体的にどういうことですか?

関連するQ&A