ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript print スターピラミッド関数

JavaScript print スターピラミッド関数

小云云
小云云オリジナル
2018-01-30 13:19:473356ブラウズ

この記事では主に、星型ピラミッドを印刷する機能を実現するための JavaScript を紹介し、特定の例に基づいて任意の行数の星型ピラミッド グラフィックを出力するための JavaScript の原理と関連実装テクニックを分析します。皆さんのお役に立てれば幸いです。

同じ原則が他の言語で記述できるようにする場合にも当てはまります

C 言語を学習しているときにこの質問を見たことがあると思います...

つまり、次のような幽霊のようなものを出力します:

ループ構造に来たとき、私はとても退屈に感じたので、この質問を軽視し、よく考えませんでした

だって、JavaScriptに入れれば、このように書けるわけではありません。 JavaScript であっても、それは単なる HTML です:


<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=gb2312"/>
</head>
<body>
&nbsp;&nbsp;*
&nbsp;***
*****
&nbsp;***
&nbsp;&nbsp;*
</body>
</html>

ここで utf-8 エンコーディングが使用されていない理由は、utf-8 による nbsp および * フォントの処理がタイプセットの混乱を引き起こすためです。つまり、標準の Song フォントは使用されません。使用されるため、最終結果を表示できなくなります。

とにかく、上記の内容は何行出してもコピペできるのですが、ある程度プログラミングができてビッグデータの概念がある程度できた今日、この質問を改めて見てじっくり考えてみました。質問者が、中心軸上に 20 万本の対称線を持つ星形のピラミッドを出力するように要求した場合、私は畜生でしょう。

したがって、これを実装する方法をまだ完全に理解する必要があります。実際のプログラミングではそのようなことは起こりませんが、少なくとも、後発者が C 言語について質問した場合は、この質問が依然として発生すると言われています。中心軸上に 20 万本の対称線を持つ星形のピラミッドを出力する場合、この問題を最初に実行できない場合は、その方法を知る必要があります。

1. 基本的な目標

まず、入力ボックスがポップアップし、ユーザーが奇数を入力できるようにします。結局のところ、軸対称には奇数が必要です。次に、プログラムの堅牢性についてはどうすればよいでしょうか。ユーザー入力が奇数でない場合は、プロンプトが表示され、後続のプログラムは実行されません。これについては、「JavaScript の判断と処理」で説明しました。数字」についてはここでは詳しく説明しません。

ここでは、ブラウザの負荷を考慮して、ユーザーが入力する奇数は 189 のみにします。私のコンピューターでは 189 で問題ないと思われるので、この数値を設定します。特別な意味、ランダムな入力、意図的なテストではありません。

189行を入力すると、IEはすでに「スクリプトを中止する」というプロンプトを表示していますが、中止しなくても問題ありません。

実行結果は以下の通りです:

C言語プログラムなどを書いている場合は、この値をもっと大きくしても大丈夫です!

2. 基本的な考え方

これを理解すれば、非常に簡単に書くことができます。

まず*の左側にスペースを出力するだけで、右側のスペースは出力する必要はなく、*を入力した後は直接行を変更するだけです

に分かれています。

がこのように分割されるのは、この2つが出力する*記号のためです。出力されるパーツとスペースの数が異なります。

その後、ルールを見つけるのが中学のよくある問題で、とにかく上記の法則を見つけて、プログラミングする際には問題なかったのですが、他の数学皇帝はもっとすごい表現を見つけて、私は負けました。

3. 制作プロセス

上記の考え方を理解すれば、コードは非常に単純で、条件構造とループ構造を表現します。

ここで不思議に思う人もいるかもしれませんが、nが奇数かどうかを判断するために、なぜ最初にn++を判断し、次にn%2!=0、つまりn+1が偶数かどうかを判断する必要があるのでしょうか?これは主に、次の for ループ構造に対応するためです…

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=gb2312"/>
</head>
<body>
</body>
</html>
<script>
var i,j,k,n;
n=window.prompt("请输入要输出的行数n,为了形成轴对称,所以你输出的必须是奇数!");
if(isNaN(n)||!n)
  alert("你输入的不是数!");
else{
  n++;
  if(n%2!=0)
    alert("你输入的不是奇数!");
  else if(n>190){
    alert("不要这么大嘛!臣妾做不到啊!");
  }
  else{
    for(i=1;i<n;i++){
      if(i<=n/2){
        for(k=n/2-i;k>0;k--)
          document.write("&nbsp;");
        for(j=0;j<2*i-1;j++)
          document.write("*");
          }
      else{
        for(k=i-n/2;k>0;k--)
          document.write("&nbsp;");
        for(j=0;j<2*(n-i)-1;j++)
          document.write("*");
        }
      document.write("<br>");
    }
  }
}
</script>

関連する推奨事項:


デバッグ情報を出力する JavaScript メソッド (Jquery)

Web ページのコンテンツの一部を出力する Javascript スクリプト_javascriptスキル

iframe コンテンツを印刷するための JavaScript サンプル コード_JavaScript ヒント

以上がJavaScript print スターピラミッド関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。