Gizport
1 回答
0
Share (facebook)
105
view
全般

JavaScriptでIFとFOR文を使い、縦17×横20の掛け算の...

JavaScriptでIFとFOR文を使い、縦17×横20の掛け算の表を作成したいのですが、ただ入力しても桁数が違いバラバラになってしまいます。
UP画像のページのように線を入れると、綺麗になるのですが、答えは違うようです。 メモ帳・NotePadを使い、JavaScriptのプログラムを作る問題です。

問題の内容ですが、JavaScriptでIFとFOR文を使い、縦17×横20の掛け算の表を作成する。
条件は、列がバラバラにならないように1・2桁の場合、3桁に合わすように*か#を付けて列を揃える。
という問題です。

#を使って作る場合
##1 ##2 ##3 ##4 ##5 ##6 ##7 … #20
##2 ##4 ##6 ##8 #10 #12 #14 … #40
##3 ##6 ##9 #12 #15 #18 #21 … #60
: : : : : : : :
#17 #34 #51 #68 #85 102 119 … 340
(文字数制限のため省略させていただきます。)

*を使って作る場合(#の場合をの#の場所を、*と置き換えただけですが。)
**1 **2 **3 **4 **5 **6 **7 … *20
**2 **4 **6 **8 *10 *12 *14 … *40
**3 **6 **9 *12 *15 *18 *21 … *60
: : : : : : : :
*17 *34 *51 *68 *85 102 119 … 340
(こちらも同様省略させていただきます。)



このプログラムの作り方(ソース)がわかる方よろしくお願いします。

※追記欄を使用したため、すみませんが返答が出来ません。



画像のページのソースは
<HTML>
<HEAD>
<TITLE>kakezan mai_mai_mai_20</TITLE>
</HEAD>
<BODY>
<SCRIPT TYPE="text/JavaScript">
<!--
var rows = 0;
var cols = 0;
var rowsBGcolor = "blue"; //
var colsBGcolor = "lightblue"; //
document.write( "<TABLE BORDER><TR><TH BGCOLOR=", rowsBGcolor ,"><FONT COLOR='", rowsBGcolor, "'>__</FONT></TH>" );
for( rows = 1; rows <= 20; rows++ ){
document.write( "<TD BGCOLOR='", colsBGcolor ,"'>", rows, "</TD>" );
}
document.write( "</TR>" );
for( cols = 1; cols <= 17; cols++ ){
document.write( "<TR><TH BGCOLOR='lightblue'>", cols, "</TD>" );
for( rows = 1; rows <= 20; rows++ ){
document.write( "<TD>", cols * rows, "</TD>" );
}
document.write( "</TR>" );
}
document.write( "</TABLE>" );
//-->
</SCRIPT>
</BODY>
</HTML>
で完成できました。

線を白くして見た目合ってる様に見せても、ソースを見られたらアウトです。
Yahoo!知恵袋 5436日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
桁がバラバラになるということですが、それは単純に右揃えにしていないからです。
EXCEL等では数値だと認識したセルは自動的に「右揃え」になります。
ということで、このテーブルにおいて各セルに右揃えのタグオプションを指定すればいいだけでは?
document.write( "<TD>", cols * rows, "</TD>" );

document.write( "<TD ALIGN='RIGHT'>", cols * rows, "</TD>" );

これをHTMLで制御せずに文字で制御したいということなら・・・・
やり方はいろいろですですが、
1.埋めたい文字のMAX、ここでは”###"という文字列に対して、計算結果の文字列を(MAX桁数−計算結果の桁数)の位置から置き換える。
2.(MAX桁数−計算結果の桁数)の分だけ"#"をつけ、最後に計算結果をつける。
等。
Yahoo!知恵袋 5430日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
38
Views
質問者が納得AMIGO CHATってこれですよね?→http://www.amigo-chat.com/ AMIGO HPというところのマニュアル等見てみましたが、そもそもFTPアップロードに対応してないっぽいです。 .css形式のファイルがアップロードできるかどうかAMIGO CHATに問い合わせるか、テンプレートが使いたいのであればFC2等の無料サーバを借りた方が良いのではないでしょうか。
5377日前view38
全般
30
Views
質問者が納得桁がバラバラになるということですが、それは単純に右揃えにしていないからです。 EXCEL等では数値だと認識したセルは自動的に「右揃え」になります。 ということで、このテーブルにおいて各セルに右揃えのタグオプションを指定すればいいだけでは? document.write( "<TD>", cols * rows, "</TD>" ); ↓ document.write( "<TD ALIGN='RIGHT'>",...
5436日前view30
全般
32
Views
質問者が納得そこまでできているのなら、あとひといきでは。 cols * rowsの桁数を取得し、足りなければ#または*をつけるだけですよね。 cols * rowsをstringにしてlengthで桁数を取得し for文で3-桁数回の#または*を表示させてやるといい気がします。 がんばってください。
5436日前view32

取扱説明書・マニュアル

497view
http://dl-ctlg.panasonic.jp/.../th_15lt1.pdf
60 ページ5.06 MB
もっと見る

関連製品のQ&A