[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 03/05 22:17 / Filesize : 217 KB / Number-of Response : 841
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Perlでリクに答えるスクリプトを作るスレ



1 名前:(・∀・)チンポー!! mailto:(・∀・)チンポー!! [04/06/02 11:39]
perl書きなんだがさ、こうリクに答えてなんか作りたいんだ。
だからリクエストをくれ。

313 名前:306 [2005/11/26(土) 20:39:48 ]
初心者すぎてイマイチわからない自分がいる…
勉強してからこい っていう話だが

314 名前:デフォルトの名無しさん mailto:sage [2005/11/26(土) 20:57:29 ]
>>313
そりゃスマンカッタ。説明がちゃんと必要だったな…
#--------------------------------
sub show_file {
my $file = shift;
use IO::File;
my $fh = new IO::File $file;
while (<$fh>) { print $_ }
undef $fh;
}
#--------------------------------
とでもスクリプトのどこかに書いておく。

で、
show_file('ファイル名');
という感じでそのサブルーチンを呼び出せば、そのファイルの中身が表示される。
パッケージが分かれていたりするとこれだけじゃ出来ないがまあその時はその時だ
IO::Fileモジュールが使えない環境ならこっち
#--------------------------------
sub show_file {
my $file = shift;
open SHOW_FILE, $file;
while (<SHOW_FILE>) { print $_ }
close SHOW_FILE;
}
#--------------------------------

315 名前:306 [2005/11/26(土) 21:28:45 ]
なんどもすみません
.cgiのなかに
HTML表示するところがあるんですけど
そこにshow_file('ファイル名');をやっても
そのまま表示されてしまうのですが
(マジ初心者で迷惑かけすぎですね

316 名前:デフォルトの名無しさん mailto:sage [2005/11/26(土) 22:00:54 ]
表示をどうやってるのかによる。
単なるprint なのか、ヒアドキュメントなのか。

317 名前:デフォルトの名無しさん mailto:sage [2005/11/26(土) 22:09:20 ]
${show_file('ファイル名')}

318 名前:306 [2005/11/27(日) 00:26:50 ]
printです

319 名前:デフォルトの名無しさん [2005/11/28(月) 15:27:30 ]
誰か心優しい方、これを作ってくださいm(__)m
宿題に手づまりで助けてください!(>人<)

SQL.txtを読み込んで、gakusei.csvを読み出し、
そこからName,Addressのみを表示させるプログラムを作ってください!

データ↓
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1165.lzh

実行結果↓(予想)
Name,Address
Junichi,Tsukuba
Akinori,Hitachi

320 名前:デフォルトの名無しさん mailto:sage [2005/11/28(月) 19:12:46 ]
>>319
中身も見ずに書く。
つ[DBI + DBD::CSV]

321 名前:デフォルトの名無しさん [2005/11/28(月) 19:34:22 ]
htmlページでラジオ形式のインプットタイプを作り、
100問の5択形式にします。
そして、「国語」、「数学」、「英語」、「理科」、「歴史」という
5分野にそれら100問の回答の点数の結果を反映させたいのですが、
回答は1つの分野にのみ加点されるのではなく、例えば1問目が

「万有引力を発見したのはニュートンである」という質問だったとき

5択のうち1番目を選んだら「理科」の変数にも3点加点され、なお、
「歴史」の変数にも2点加点されるという形にしたいと思っています。

この場合、1科目の変数のみに影響するのではなく2科目以上になるので、
各質問ごとに設けた配列の点数をそのまま、「理科」だけに加点するということは
できなさそうです。



それぞれ1問目の input name を "Q001"
2問目は input name を "Q002"とし、3問目以降も同じような方法で
100問目まで指定していきます。

そして、各問題、 「はい」、「はいに近い」、「どっちでもない」、
「いいえに近い」、「いいえ」という5択にして、
input value を「はい」から、"1","2","3","4","5"としていきます。


なにかいい構成が分かるかたいらっしゃいましたら、サブルーチン教えてください。



322 名前:デフォルトの名無しさん mailto:sage [2005/11/28(月) 19:53:27 ]
俺はこういうのはJavaScriptでやっちゃってる。

323 名前:デフォルトの名無しさん [2005/11/28(月) 20:32:27 ]
>>322
sendmailもいれてるからPERLでやってるんだけど、どうだろー

324 名前:デフォルトの名無しさん [2005/11/28(月) 20:34:03 ]
もしくは、計算部分だけJAVAで組んでその結果の変数値(スコア)のみを
CGIに渡すことって可能?

325 名前:デフォルトの名無しさん mailto:sage [2005/11/28(月) 21:23:59 ]
$table[1] = { # Q001
  Q => {
    label => "万有引力を発見したのはニュートンである",
    option => [split(" ","はい はいに近い どっちでもない いいえに近い いいえ")]
  },
  A => [
    { rika => 3, rekisi => 2 }, #選択肢1
  ]
};

構成ってこういうこと?
俺もこれをそのままJSONにして、採点までJavaScriptでやった方がいいと思う

326 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 01:16:34 ]
答えてくれて、ありがとう。
演算部分はjavascriptで組んで、
出てきた結果の値(各分野の点数や文字列など)を
PERLで組んだCGIにデータを受け渡すことって
可能なのかなー?

327 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 01:34:11 ]
>>326
フォーム内のフィールドにセットしてsubmitするとか、
クエリ文字列を生成しページ移動(Location.href)とか、
今流行のXMLHttpRequestとか色々あるんじゃないかな

328 名前:デフォルトの名無しさん [2005/11/29(火) 09:24:09 ]
>>327
最初の1ページ目でjavascriptで演算した値を2ページ目のcgiにサブミットして
表示させるってことは可能?

普通、cgiにサブミットするときってフォーム入力で、入力したもの(変数として)がそのまま
cgiのほうに渡されるでしょ?これを1ページ目でjavascriptで計算して、その結果の値を
そのままcgiに渡すって方法どうすればいいかな?

いいサンプルページやサンプルソースあったら教えてください。

もしかしたら、フォーム入力の「生年月日入力」の部分でこういうふうにjavascriptを組み込んで
昭和→西暦変換とかした値をcgiに渡してたりするようなページもあるような気もします

329 名前:デフォルトの名無しさん [2005/11/29(火) 09:47:48 ]
proxy.f2.ymdb.yahoofs.jp/users/13a494ce/bc/sample.html?bcDAlAEB6aOdocif

このような形で問100まであって、問100までの分の値と名前やメアドの値を
formmail.cgiというものに渡すというかんじです。CGI側で質問100個の分の
演算をするのか、もしくは、アップーロードした、この1ページ目でjavascriptを使って
演算し、結果のみの値をcgiに渡して、それらを出力するのがいいのか迷っています。

また、記述の方法などのアドバイスもいただければ幸いです。

330 名前:329 [2005/11/29(火) 10:15:36 ]
何度もすみません。
やはり、javascriptは使わずcgi側で100問の結果判定を演算するサブルーチンを
作りたいのですが、どういう標記にすればいいでしょうか?>>321にも書きましたが

それぞれ1問目の input name を "Q001"
2問目は input name を "Q002"とし、3問目以降も同じような方法で
100問目まで指定していきます。

そして、各問題、 「はい」、「はいに近い」、「どっちでもない」、
「いいえに近い」、「いいえ」という5択にして、
input value を「はい」から、"1","2","3","4","5"としていきます。

というかんじです。>>322さん、ありがとうございました。
もっと分かりやすい構文を教えていただけないでしょうか?

今考えているのは1ページ目でフォーム入力(ラジオ選択から得た情報)をcgiに
submitした後、getformして入力された値を読み込み

#質問結果判定
sub hantei {

1問目(1ページ目のQ001)「万有引力を発見したのはニュートンである 」に対し、
5択「はい(VALUE=1)」、「はいに近い(2)」、「どっちでもない(3)」、「いいえに近い(4)」、「いいえ(5)」のうち

・「はい」を選ぶと理科に3点加算(rika +=3)、歴史にも2点加算(rekishi +=2)とし、
・「はいに近い」を選択したなら(rika +=2)、(rekishi +=1)
・「どっちでもない」を選択したなら(rika +=1)、(rekishi +=0)
・「いいえに近い」を選択したなら(rika +=0)、(rekishi +=0)
・「いいえ」を選択したなら(rika +=0)、(rekishi +=0)

次の質問(Q002)で同じような形でQ100まで演算していきます


331 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 11:16:32 ]
どうでもいいけど、毎問メールアドレスを入力させられんの?




332 名前:デフォルトの名無しさん [2005/11/29(火) 11:37:19 ]
設問ごとの得点表を

%SCORE_TABLE = (
Q001 => { 1 => { rika => 2, rekishi => 2 },
2 => { rika => 2, rekishi => 1 },
....
},
....
}

という形で用意する。

cgi入力のうち、QNNNに対応する値を%input = (Q001 => 2, Q002 => 1 ,... )
という形のハッシュにまとめる。

あとは

while (my($q, $a) = each %input) {
while (my($k, $s) = each %{$SCORE_TABLE{$q}->{$a}}) {
$score{$k} += $s;
}
}

とまわせば%scoreにそれっぽい結果が得られるだろう。


333 名前:329 [2005/11/29(火) 11:38:26 ]
>>331
ううん、メアドを登録しなかったらしなかったで得点表示のみのページのみ
出力されて、メアド登録したら、直接SENDMAILで詳細結果が
メールで届くようにするよ。

334 名前:329 [2005/11/29(火) 13:08:49 ]
>>332
非常にありがたいんですが、原始的な組み方で

if ($moji{Q001} == 1) {
$rika += 2;
$rekishi += 1;}
elsif ($moji{Q001} == 2) {
$rika += 0;
$rekishi += 0;}
elsif ($moji{Q001} == 3) {
$rika += 0;
$rekishi += 0;}
elsif ($moji{Q001} == 4) {
$rika += 0;
$rekishi += 0;}
elsif ($moji{Q001} == 5) {
$rika += 0;
$rekishi += 0;}

335 名前:329つづき↑ [2005/11/29(火) 13:09:10 ]
にして、最終的にその結果から

if ($rika == 1) {$rikaTEXT = 'rika1点かな';}
elsif ($rika == 2) {$rikaTEXT = 'rika2点かな';}
elsif ($rika == 3) {$rikaTEXT = 'rika3点かな';}
elsif ($rika == 4) {$rikaTEXT = 'rika4点かな';}
else {$rikaTEXT = 'rika不明かな';}

if ($rekishi == 1) {$rekishiTEXT = 'rekishi1点かな';}
elsif ($rekishi == 2) {$rekishiTEXT = 'rekishi2点かな';}
elsif ($rekishi == 3) {$rekishiTEXT = 'rekishi3点かな';}
elsif ($rekishi == 4) {$rekishiTEXT = 'rekishi4点かな';}
else {$rekishiTEXT = 'rekishi不明かな';}

そしてこのスコアから判断されたメッセージをHTML出力するとき

$rikaTEXT<BR>
$rekishiTEXT<BR>


でいいのかな?このままの構成を残して訂正しなきゃならない部分を教えてください。
これで実行してもrikaのスコアしか表示されなくて、rekishiのスコアは表示されません(T_T)


336 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 19:04:01 ]
鬱陶しいなあ。
まったく理解できないのに偉そうなことばかり。
もうどこかに委託しろよ。

337 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 20:50:31 ]
>>336
まあまあ、あまり怒りなさんな。
オレはこの調子で100問分書いたスクリプトというものをぜひ拝見したい。

>>335
最後の部分をこんな風に書いたんじゃないの?
---------------------------------
print "$rikaTEXT<BR>
$rekishiTEXT<BR> ";
---------------------------------
それなら、こうするとうまくいくよ。
print "$rikaTEXT<BR>\n$rekishiTEXT<BR> ";

あと、スクリプト完成したらぜひ公開きぼ〜ん。

338 名前:デフォルトの名無しさん [2005/11/29(火) 23:18:59 ]
>>337
ありがとう。見せたいとこだけど、
ごめんよー

339 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 23:57:56 ]
>>338
そうか。Perlスクリプトを公開すれば解答も公開すること
になるから仕方ないかもしれんな。しかし、大体の想像はつく。
>>334 に書いてあるものを100問分作って、
>>335 に書いてあるものを0〜200の範囲で作るんだね。
拝見できないのは残念だが、まあ、がんばってタイプしてくれ。


340 名前:デフォルトの名無しさん [2005/11/30(水) 00:31:36 ]
>>339
本当にありがとう。いい人いるんだね。ありがとう。
点数配分を配列ではなく、原始的な構造でチマチマ入力してやっていきます。
3000行以上のCGIになります(笑)

341 名前:デフォルトの名無しさん mailto:sage [2005/11/30(水) 07:26:07 ]
微笑ましいですね^^



342 名前:デフォルトの名無しさん mailto:sage [2005/11/30(水) 11:25:43 ]
^^;

343 名前:デフォルトの名無しさん mailto:sage [2005/11/30(水) 19:04:43 ]

性別

回答者合計者○($SEXSUM)名中

男○($SEXMALE)名
女○($SEXFEMALE)名




というのをHTMLで出力したいんだけど、ディレクトリに SEX.txtというのを置いて
そのtxtファイルの中に「 0,0 」
というふうに男女の初期値の人数をいれておいて。

毎回フォームから'GENDER'の値が0(男性).もしくは1(女性)で送ってきた時のみ。
SEX.txtを読み込んで、1足して表示→そして読み込んだSEX.txtの人数の一人プラスという
ようなPERLスクリプト分かる人いますか?


344 名前:デフォルトの名無しさん mailto:sage [2005/11/30(水) 19:11:07 ]
pc8.2ch.net/test/read.cgi/tech/1131286411/641

マルチ放置推奨

345 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 13:49:45 ]
西暦の "2005"という部分だけ、取得したいんだけど

$TIME= (ここはどうすればいいですか?)

346 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 13:56:41 ]
>>345
この辺読んで基礎からじっくり勉強したらいいんじゃない?
pc8.2ch.net/test/read.cgi/tech/1131286411/2
www.hyuki.com/writing/techask.html

347 名前:デフォルトの名無しさん [2005/12/01(木) 14:02:29 ]
my($sec, $min, $hour, $day, $mon, $TIME, $wday) = localtime(time);

# 取得した値を調整(リファレンス参照)
$TIME+= 1900;

348 名前:デフォルトの名無しさん [2005/12/01(木) 14:03:51 ]
>>347
とんくす

349 名前:デフォルトの名無しさん [2005/12/01(木) 14:27:50 ]
$TIME=`perl -MPOSIX=strftime -le 'print strftime("%Y", localtime())'`


350 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 14:29:20 ]
>>347
長い

$TIME = 1900 + (localtime(time()))[5];

351 名前:デフォルトの名無しさん [2005/12/01(木) 16:01:06 ]
>>350
長いというならlocaltimeの引数のtime()も省略可能だよ。




352 名前:デフォルトの名無しさん [2005/12/01(木) 16:11:56 ]
>>351
ナイスつっこみ!
お前みたいなのを待っていた

353 名前:350 mailto:sage [2005/12/01(木) 16:15:15 ]
知ってるよ
どんなunixtimeを渡すのか分からんから一例を書いたまでだ

354 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 16:42:12 ]
そういうのを負け惜しみって言うんだぜ

355 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 17:56:57 ]
>>345
$TIME = 1900 + (localtime)[5];


356 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 18:00:06 ]
個人的には strftime の方が好みだな。

357 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 18:04:14 ]
>>343
Yahooにまで…。
messages.yahoo.co.jp/bbs?.mm=CP&action=m&board=1835099&tid=a1zperla1ya5qa1bca5ka1z&sid=1835099&mid=368
しかも誰か答えちゃってるし。

358 名前:350 mailto:sage [2005/12/01(木) 18:08:14 ]
なんで煽られてるのかが分からんのだが・・中学生か?

359 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 18:24:26 ]
>>343の答えは
pc8.2ch.net/test/read.cgi/php/1102980903/965-967
でもう出てる

360 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 18:28:38 ]
>>358
変な奴はほっとけ

361 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 18:38:49 ]
VIPが出来てから馬鹿が流入してきた



362 名前:デフォルトの名無しさん mailto:sage [2005/12/03(土) 23:36:45 ]
馬鹿というかガキなんだよな。煽り方も知らないような。

363 名前:デフォルトの名無しさん mailto:sage [2005/12/06(火) 21:25:33 ]
ネットショップで○○時から○台限定で販売、とかいうのを買おうとすると
真っ先にスクリプターに買い占められちゃうんだけど
そういうのに対抗できる自動購入スクリプトってPerlで組めませんか?

364 名前:デフォルトの名無しさん mailto:sage [2005/12/06(火) 23:39:56 ]
組めたとしてもここで公開されれば対策される。
対策されなくても公開されている以上大勢が使う。
意味がない。

365 名前:デフォルトの名無しさん mailto:sage [2005/12/07(水) 00:01:35 ]
>>363
組めます

366 名前:デフォルトの名無しさん mailto:sage [2005/12/07(水) 04:17:29 ]
。゚(゚∩д∩゚)゚。
確かに仰るとおりですね・・・

367 名前:デフォルトの名無しさん mailto:sage [2005/12/07(水) 08:47:31 ]
楽天のなら作った事ある

368 名前:デフォルトの名無しさん mailto:sage [2005/12/07(水) 09:24:49 ]
ビックカメラのは組めませんか?

369 名前:デフォルトの名無しさん mailto:sage [2005/12/07(水) 09:30:28 ]
楽天のは空売りですよ

370 名前:367 mailto:sage [2005/12/07(水) 09:41:05 ]
いや、俺は楽天で1円で1GBのmp3プレーヤゲットしたんだがw

サンプルページはないのか
ビックカメラの
仕様が分からんとどうにもならんだろ

371 名前:デフォルトの名無しさん mailto:sage [2005/12/07(水) 10:57:09 ]
ビックカメラの場合
こういう場合のと
www.biccamera.com/bicbic/jsp/w/catalog/detail.jsp?PRODUCT_ID=0010097057
こういう場合のがあるんだけどなんか違うの?
www.biccamera.com/bicbic/app/w?ActionType=bw011100_01&PRODUCT_ID=0010007029



372 名前:デフォルトの名無しさん [2005/12/10(土) 15:47:01 ]
age保守

373 名前:PAJA [2005/12/10(土) 16:52:51 ]
はじめまして、PAJA といいます。
# Vine Linux 3.1 の Perl v5.8.2 です。

./trial.pl の中で、

`vi ./hoge.txt`

と記述したところ、下記のようなメッセージがでてしまいました。

" Vim: 警告: 端末への出力ではありません"

やりたいことは、./trial.pl を実行すると "./hoge.txt を vi で開く"
ようにすることです。

どうすれば、できるようになるでしょうか。

よろしく、お願いします。


374 名前:デフォルトの名無しさん mailto:sage [2005/12/10(土) 17:23:42 ]
system "vi hoge.txt";


375 名前:PAJA [2005/12/10(土) 19:41:10 ]

>> 374

ちゃんと開くことが出来るようになりました。
ありがとうございました。

376 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 05:44:49 ]
>>373
実行したものからの出力を受け取らないならバッククォートは使わない

と覚えておくといいよ。

377 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 15:28:53 ]
すいません。教えてください。
$_ = "AI今日U<KAKIKU>SASISU明日<TATI*TU>NANI";
であるとき

$s1が"AI今日U<KAKIKU>SASISU%sNANI"、
$s2が"明日"、
$s3が"明日TU"、
$s4が"TATITU"
となるようにするプログラムを教えてください。
どうかよろしくお願いします。

378 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 15:53:09 ]
>>377
$s1 = "AI今日U<KAKIKU>SASISU%sNANI";
$s2 = "明日";
$s3 = "明日TU";
$s4 = "TATITU";

それだけしか条件がないとこれでもいいわけだが(笑)

どういう規則でそうなるのか例だけじゃわかんね。



379 名前:377 mailto:sage [2005/12/14(水) 16:18:46 ]
>378
すいません。 $_ = "AI今日U<KAKIKU>SASISU明日<TATI*TU>NANI";が条件です。
自分では以下のようにしてやってみていたのですが、うまくいきません。
@list = split (/,/, $_);

if ($list[2] =~ /<[A-Z]+\*[A-Z]+>/) {
($s1 = $list[2]) =~ s/[^A-Z][^<]*<[A-Z]+\*[A-Z]+>/%s/g;

@s2 = $list[2] =~ /([^A-Z][^<]*)<[A-Z]+\*[A-Z]+>/o;
$s2 = $s2[0].$s2[1];

@s3 = $list[2] =~ /([^A-Z][^<]*)<[A-Z]+\*([A-Z]+)>/o;
$s3 = $s2[0].$s2[1];

@s3 = $list[2] =~ /<([A-Z]+)\*{1}([A-Z]+)>/g;
$s3 = $s3[0].$s3[1];
}

380 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 16:30:10 ]
だめだ。問題を説明する能力のない人らしいので
エスパーさん出番です。


381 名前:ヽ(´ー`)ノ ◆.ogCuANUcE mailto:sage [2005/12/14(水) 16:48:42 ]
こうかな。

$_ = "AI今日U<KAKIKU>SASISU明日<TATI*TU>NANI";

(my $s1 = $_) =~ s/([^A-Z<]+)<([A-Z]+)\*([A-Z>]+)>/\%s/;
my $s2 = $1;
my $s3 = $1 . $3;
my $s4 = $2 . $3;

use Data::Dumper;
print Data::Dumper->Dump([$s1, $s2, $s3, $s4], [map { 's'.$_ } (1 .. 4)]);

>>377
誰にでも理解できるように仕様を説明するように。
具体的に言うと、小学生にも分かるように。



382 名前:377 mailto:sage [2005/12/14(水) 17:07:42 ]
というか、解決?かどうかまだ不明ですが一応出来ました。
379は貼り間違いました。↓は解決?したものです。
$_ = "AI今日U<KAKIKU>SASISU明日<TATI*TU>NANI";
($s1 = $_) =~ s/[^A-Z][^w]{1,3}<[A-Z]+\*[A-Z]+>/%s/g;
print "$s1\n";

@s2 = $_ =~ /([^A-Z][^w]{1,3})<[A-Z]+\*{1}[A-Z]+>/o;
print "@s2\n";

@s3 = $_ =~ /([^A-Z][^w]{1,3})<[A-Z]+\*{1}([A-Z]+)>/o;
print "@s3\n";

@s4 = $_ =~ /<([A-Z]+)\*{1}([A-Z]+)>/g;
print "@s4\n";
これで一応目的の動作をするのですが、
2行目が特によくわかりません。
[^A-Z][^w]{1,3}は何でしょうか?
[^w]って何?ワード文字?ワード文字は\wですよね?
[^w]を普通に読むとwという文字以外すべてだと思うのですが。

383 名前:377 mailto:sage [2005/12/14(水) 17:14:38 ]
>381
わかりにくくてすいません。
目的は文字列中の<*を含む英大文字>の部分とその直前の漢字の展開です。

384 名前:デフォルトの名無しさん [2005/12/23(金) 19:01:41 ]
メートル単位の長さを与えて、それをヤードに変換して表示するプログラムを教えてください。

1メートルは1.1ヤードとしてください。

385 名前:デフォルトの名無しさん [2005/12/23(金) 19:03:08 ]
インボカントって何か教えてください

386 名前:384 [2005/12/23(金) 19:11:02 ]
追記します。

メートル単位の長さをヤードに変換したり、ヤード単位の長さをメートルに変換するプログラムを教えてください。

>>384でかいたような一方通行のプログラムでしたら分かります。
上のような場合、どうやって分岐(?)させればよいのでしょうか?

387 名前:384 [2005/12/23(金) 19:17:39 ]
>>384について考えたプログラムを載せておきます。
どなたか、>>386のように改変してください。。。

use strict;
my ($meter, $yard);
print "長さをメートルで入力してください";
$meter = <STDIN>;
chomp ($meter);
$yard = $meter * 1.1;
print "$meterメートルは$yardです。\n";

388 名前:デフォルトの名無しさん mailto:sage [2005/12/23(金) 20:02:18 ]
>>387
入力値がメートルとした場合のヤードの値
入力値がヤードとした場合のメートルの値
を計算して結果を2行書けばいいんじゃね?

389 名前:デフォルトの名無しさん [2005/12/23(金) 22:21:41 ]
>>388
なるほど。
入力時の数字が、10だったら

10メートルは***ヤードです。
10ヤードは***メートルです。

とすれば良いのですね。
逆転の発想ですね!ありがとうございます。

390 名前:デフォルトの名無しさん mailto:sage [2005/12/24(土) 00:19:30 ]
それなんて宿題

391 名前:デフォルトの名無しさん [2005/12/24(土) 17:51:13 ]
age
宿題でもどーんとこいや



392 名前:デフォルトの名無しさん mailto:sage [2005/12/25(日) 18:26:07 ]
perl -MO=Xref,-r hoge.pl の結果から以下のような結果を整形してみたいです。出してください。
■結果
hoge.pl 250<0>main()
hoge.pl 160├<1>get_home_directory()
hoge.pl 135│└<2>usage()
hoge.pl 190├<1>read_configration()
hoge.pl 220│└<2>get_string()
       <<略>>

393 名前:ヽ(´ー`)ノ ◆.ogCuANUcE mailto:sage [2005/12/25(日) 19:31:09 ]
>>392
-r 付けなきゃそれっぽくならんかね。

394 名前:デフォルトの名無しさん mailto:sage [2005/12/26(月) 00:01:42 ]
あれだと、エディタのタグジャンプ使えないし、みづらいので。
cの関数コールグラフ書くフリーウェアのfunctreeみたいな使い勝手
のものが欲しいです。

395 名前:デフォルトの名無しさん mailto:sage [2005/12/26(月) 11:49:52 ]
>>386
引数で数値の後に m が付いていたらメートル、yが付いていたら
ヤード、ということにするならこんな感じか。

#!/usr/bin/perl -w
use strict;
for(@ARGV) {
if(/^(\d+(\.\d+)?)(m|y)$/) {
if ($3 eq 'm') {
print "$1 メートル = " . ($1 * 1.1) . " ヤード\n";
} else {
print "$1 ヤード = " . ($1 / 1.1) . " メートル\n";
}
} else {
print STDERR "$_: 解釈できません。\n";
}
}


396 名前:デフォルトの名無しさん [2006/01/13(金) 16:15:09 ]
1
INDATEというファイルの中身を読み込んで処理するものであること。(INDATEも提出すること)
2
少なくとも一個のif文をつかっている。

3
for.while.foreachなどの繰り返しを少なくとも一個は使っている。
4
少なくとも一個の配列を使っている。
5
少なくとも一個の引数を使っている。
6
以下の様に実行することでOUTDATEに結果が出力される。
%KADAI3<INDATE>OUTDATE
注:3は引数である。

という課題です。頼みます。

397 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 16:17:49 ]
>>396
教科書に答えが。

398 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 16:18:35 ]
>>397
う・・・

399 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 16:40:59 ]
なんだその意味不明な課題
俺が馬鹿なだけかもしれんが、何をしたいのか訳わからん

400 名前:デフォルトの名無しさん [2006/01/13(金) 16:44:17 ]
>>399
1〜6を満たす自由な機能のプログラムを作るって課題なんですが…

401 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 16:47:08 ]
ああそういう意味か
%KADAI3<INDATE>OUTDATE
まだこれの意味が分からんが



402 名前:デフォルトの名無しさん [2006/01/13(金) 16:56:45 ]
>>401
Terminalで入力したらってことだからあまり関係ないです。ごめんなさい。

403 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 17:28:01 ]
それDATEじゃなくてDATAだろ

404 名前:デフォルトの名無しさん [2006/01/13(金) 17:37:44 ]
>>403
そうです。ほんとごめんなさい。

405 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 21:34:26 ]
結局>>397でFAだな


406 名前:デフォルトの名無しさん [2006/01/14(土) 07:43:38 ]
そんなぁ・・・

407 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 09:42:00 ]
#!/usr/bin/perl
use LWP::Simple;
$url = 'girls.twistys.net/preview/';
for ($i=1; $i<=500; $i++) {
$num = sprintf("%03d", $i);
$_ = get($url.$num."/");
s/\w*\d{1,2}\.jpg/push @jpgs, $&/eg;
foreach $jpg (@jpgs) {
getstore($url.$num."/".$jpg, $num.$jpg);
}
}

408 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 08:50:23 ]
仲間分けについてのプログラムについて教えてください
1番と3番
1番と5番
1番と7番
2番と6番
2番と8番
3番と5番
3番と11番
が仲間です
配列には上から
1\t3
1\t5 ……のように入っています

この時1,3,5,7,11 と 2,6,8 のように仲間に分けるプログラムを作ってください

409 名前:ゆみ [2006/01/16(月) 11:24:17 ]
Perl初心者です。教えてください。

日付,メールアドレス
日付,メールアドレス
日付,メールアドレス



と数万行も続くデータから、重複メールアドレスが存在したときは
その行を取り除くということは出来るのでしょうか。
困っています(;;)教えてください。




410 名前:デフォルトの名無しさん [2006/01/16(月) 11:39:46 ]
できるよ

411 名前:ゆみ [2006/01/16(月) 11:44:33 ]
どうやればいいのでしょうか?
是非教えてください。。。



412 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 11:44:49 ]
>>409
perl -ne "/,(.+)/ && !$dup{$1}++ && print" in.csv > out.csv

413 名前:ゆみ [2006/01/16(月) 11:51:59 ]
>>412

ありがとうございます(*^^*)
これはコマンドプロンプト(PC)上で行う処理方法でしょうか?
サーバー上のCGIファイルの中で処理する場合の書き方はありますか?

またin.csvというのが元のデータファイルで、out.csvというのが
出力された新しいファイルですよね?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<217KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef