回答受付が終了しました

質問失礼します。以下の画像のプログラミング課題が難しい為、ご教授願います。

画像

HTML、CSS98閲覧

回答(3件)

不適切な内容が含まれている可能性があるため、非表示になっています。

1

■■■ 質問について ■■■ いちおう回答はするけど、 他の回答者さんの言うように、 課題の問題丸投げの質問は、 ──────────────── 質問者さん自身のためにならない ──────────────── から、 知恵袋の利用の仕方を少し考えた方がいいと思う。 とくに、 他もう1人の回答者のように、 解説なしでコードだけ貼り付ける回答者が多いんで、 その答えを丸写しで課題を出して正解してしまうと、 ──────────────── 質問者さんは、 課題を最後までやり終えた時点で、 何ひとつ修得したものがない ──────────────── ということになる。 せっかく課題に取り組んでる時間が、 ただのゴミになる。 質問するのは自由だが、 自分がすこしでも損をしたくないなら、 コードだけ貼り付けた回答を丸写しするのではなく、 せめて、 解説のある回答の中身をしっかり読み込んで、 自分の頭で理解して課題を提出した方がいい。 ■■■ 根本的な間違い ■■■ HTML, Javascript は、 どれもプログラミング言語ではないから、 HTML, Javascript を記述することは「プログラミング」とは言わない。 HTML は、 見出しや段落など、 文書に対しタグをつけていく(マークアップする)ことで その文書に構造を与えるマークアップ言語。 HTML で作成したものは「プログラム」ではなく「文書」。 HTML を記述することは、「マークアップ」という。 Javascript は、 ブラウザなど他のプログラム上で動作し、 プログラムの動作を制御したり機能を追加するスクリプト言語。 Javascript で作成したものは「プログラム」ではなく「スクリプト」。 Javascript を記述することは、 本来なら「スクリプティング」というべきだけど、 その言い方は実際はほとんど使われず「コーディング」という。 今回の課題は、 「プログラミング課題」ではなく HTML と Javascript のコーディング課題。 「コーディング」という言葉は、 コンピュータ言語の種類によらず使える言葉で、 コンピュータ言語のコードを記述する物なら何に対しても使える。 だから、 異なる言語 HTML と Javascript をいっしょに記述する場合は 「コーディング」という。 最近、 情報処理系の教育に関わる人たち自身が、 基本事項をまったく理解していないせいか、 HTML/CSS や Javascript などの学習教科に 「プログラミング」という教科名をつけているケースや、 問題集の課題に「プログラムを作成せよ」という文面が目立つため、 その教育を受けた人たちも、 基本的な部分を間違ったまま覚えてしまっている。 HTML や Javascript で「プログラム」は作れない。 ■■■ 課題の解き方 ■■■ 【 HTML 】 まず、 課題の実施例を参考に HTML を組む。 パーツとしては、 ──────────────── ・「2021年12月の日付を入力し、曜日をクリック」というテキスト ・日付を入力する欄と、曜日ボタン ・結果の表示場所 ──────────────── これらを <form> の中にいれ、 <section> に分けて配置すればいい。 Javascript から操作するパーツには、 処理の中で指名できるように、 フォーム部品には name 属性を、 それ以外には id 属性をつけておく。 ──────────────── <form name="kadai5"> <section> <p>2021年12月の日付を入力し、「曜日」をクリック</p> </section> <section> 2021年12月 <input name="date" type="number" type="number" min="1" max="31" step="1"> の <input name="btnYobi" type="button" value="曜日"> </section> <section> <p id="output"></p> </section> </form> ──────────────── 数値入力欄 <input type="nubmer"> には、 入力値が 12 月の日にちの範囲(1~31の整数)となるように、 min 属性、max 属性、step 属性を、 それぞれ設定しておく。 つぎに ボタン <input name="btnYobi"> を押したとき、 指定された日の曜日を割り出して、 <p id="output"> に結果を書き出す。 その処理を行う Javascript の関数を 適当に getYobi とでも名付けて、 この関数を実行する Javascript のコード getYobi() を <input type="btnYobi"> の onclick 属性に指定する。 ──────────────── <form name="kadai5"> … <section> 2021年12月 <input name="date" type="number" min="1" max="31" step="1"> の <input name="btnYobi" type="button" value="曜日" onclick="getYobi()"> </section> … </form> ──────────────── あとは、 関数 getYobi() を Javascript で作ればいい。 <form> のあとに、 Javascript を記述するための <script> タグを配置する。 ──────────────── <!-- 入力フォーム --> <form name="kadai5"> … </form> <!-- スクリプト --> <script> ~ ここに Javascript のコードを記述していく ~ </script> ──────────────── Javascript では、 まず関数 getYobi() を定義する。 ──────────────── function getYobi() { // ~ 処理内容 ~ } ──────────────── 関数内の処理内容としては、 ──────────────── ・<input name="date"> の入力値を取得 ・入力値の日の曜日を求める ・結果を <p id="output"> に書き出す ──────────────── <input name="date"> 要素は、 <form name="kadai5"> の name と連結して document.kadai5.date で参照できるから、 入力された値は document.kadai5.date.value で取得できる。 入力値を変数 D に入れる場合は、 ──────────────── let D = document.kadai5.date.value; ──────────────── 取得した日付 D の曜日は、 new Date() で指定日の日付オブジェクトを生成して、 その日付オブジェクトの getDay() メソッドを実行すると 取得できる。 注意として、 new Date() で日付オブジェクトを生成する際、 月は 0 ~ 11 の数字での指定となるから、 12 月の日付オブジェクトを生成するときは、 月の数値は 12-1 = 11 にしないといけない。 ──────────────── let Yobi = ( new Date( 2021, 11, D ) ).getDay(); ──────────────── これで、 変数 Yobi には、 2021 年 12 月 D 日の曜日を 0 ~ 6 の数字として取得できた。 変数 Yobi の数字を文字列 "日" ~ "土" に直すには、 "日" ~ "土" を要素としてもつ配列を用意して、 インデックス番号に変数 Yobi を指定すればいい。 ──────────────── let KanjiYobi = [ "日", "月", "火", "水", "木", "金", "土" ][ Yobi ]; ──────────────── 「曜日の取得」と「漢字への変換」を1つにまとめて書くと、 ──────────────── let Yobi = [ "日", "月", "火", "水", "木", "金", "土" ][ ( new Date( 2021, 11, D ) ).getDay() ]; ──────────────── この結果を、 出力先 <p id="output"> に出力する。 <p id="output"> 要素は、 document.getElementById( "output" ) で取得でき、 その中にテキストを書き出す時は、 要素の textContent プロパティに書き出したい値を代入すればいい。 ──────────────── document.getElementById( "output" ).textContent = "2021 年 12 月 "+D+" 日は "+Yobi+" 曜日です"; ────────────────

1人がナイス!しています

0

dav********さん >・・・・プログラミング課題・・・・・・・・ ご参考に↓ <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> </head> <body> 2021年12月<input id="hi" type=text size="2">日の<input type=button value="曜日" onclick="calc()" ><br> <div id="out"></div> <script> function calc(){ const days =["日", "月", "火", "水", "木", "金", "土" ]; let date = new Date(2021, 11); let hi = document.querySelector("#hi").value; date.setDate( hi ); let day = date.getDay(); document.querySelector("#out").innerText = "2021年12月" + hi + "日は" + days[ day ] + "曜日です" ; } </script> </body> </html>

2

うーん、もう一つのご質問も拝見しましたが、課題丸投げはどうなのかなーと。誰かやってくれる人がいるかもしれませんけど、知恵袋は課題代行サービスじゃないと思うんですよね。少しだけ努力してみません? ご自分で書けるところまで書いて、それで補足を頼むとか。

2人がナイス!しています