大学入学共通テスト2025年「情報」サンプル問題・第2問の解説~比例代表制選挙の当選者決定プログラム

朝日新聞の21年3月25日・朝刊に、令和7年度(2025年)大学入学共通テスト新科目の解説やサンプル問題例などが載ってた。

   

全体が長過ぎるので、とりあえず「情報」(必修科目・情報Ⅰの範囲)の問題だけ読むと、適度な難しさと量で第2問(抜粋)だけだったし、身近な選挙の話だから、ブログ記事を書くことを決定。

  

ところが、大学入試センターでも確認すると、朝日には無かった第2問の後半が載ってて難しく感じてしまった。私は情報Ⅰの科目内容を知らないから当たり前かも知れないが、これを数十万人の受験生(大部分は高校3年生)が短い時間で解答できるのか?

     

数年前の新テストのサンプルでもあったことだけど、本物の試験までにはレベルが下げられるだろうし、説明ももう少し丁寧になると思う。とにかく問題と解き方を見てみよう。単なる紹介や解説だけでなく、個人的な感想・意見も加える。問題文は長過ぎるので、コピペさせて頂いた。

    

  

     ☆     ☆     ☆

210331a-t

  

210331b-t

    

   

比例代表式選挙の獲得議席は、得票数に正確に比例させることは(ほとんど)出来ない。ごく簡単な例だと、議席数1の選挙区で、A党が3票、B党が2票だった時、正確に比例させると、0.6議席と0.4議席になってしまう。

  

実際の選挙だと、議席数は0以上の整数でなければならないので、正確な比例ではなく、大まかな比例を目指す方式が必要になる。日本では基本的にドント方式。私は昔、簡単な説明を読んだ気がするけど、完全に忘れてた。

  

問題の「基準得票数」とは、1議席が何票分かというより、何票で1議席とれるかと考えた方が分かりやすいと思う。合計3480票で6議席だから、580票で1議席とれる。この580が、下のプログラムでは kizyunsuu (基準数)と書かれてる。

      

配列 Tomei [i] は、i番目の党名の列。それぞれの要素は、例えば Tomei [0] ならA党。Tomei [1] ならB党。

  

配列 Tokuhyo [i] は、i番目の得票数の列。例えば Tokuhyo [2] なら、2番目のC党の得票数。ここでは、1440。

     

    

     ☆     ☆     ☆

210331c

   

sousuu という変数は、「得票数の総数」を表す。上のプログラムだと、(03)(05)(06)に従って、初期値0に4つの党の得票数を1つずつ足して行くことで求めてる。

  

1本の数式にまとめると、最終的に4つとも足し終えた後では、

sousuu=0+1200+660+1440+180=3480

    

giseki (議席)は選挙区ごとに決まった定数で、ここでは。他の選挙区では他の数値をとり得る。

  

よって、 kizyunsuu (基準数)= sousuu / giseki = 3480/6=580

  

後は、各党ごとに表示して行けば、下の枠内のようにモニター表示される。

  

  

     ☆     ☆     ☆   

210331d-t

    

  

単純な比例配分だと、それぞれの獲得議席数は無限小数になる可能性が高いし、小数点以下の切り上げ、四捨五入、切り捨て、いずれも(あまり)上手く行かない。そこで、先生が登場。

   

     

210331e-t

   

210331f-t

    

  

配列 Hikaku [i] は、獲得議席を1つずつ決める時に比較する数字の列。最初はどのi(つまり、どの党)でも、得票数そのものだが、1議席とると2で割り、2議席とると3で割る。どんどん小さくなるので、他の党にも議席獲得のチャンスが広がる。

  

配列 Tosen [i] は、i番目の党の当選数(=獲得議席数)。4党の合計が6になるまで、1回の比較ごとに、どれかが1ずつ増えていく。例えば、今回の比較ではD党が最大だから、D党の Tosen [3] が1増えるとか。

   

    

     ☆     ☆     ☆

210331g-t

   

210331h-a-t

    

  

最初、 Tosen (当選数)が0,0,0,0の状態からスタート。1回目の比較では、Hikaku [2] (つまりC党の数)が最大。よって、maxi(最大値を与えるi、つまり党番号)は2。よって、C党の当選数を表すTosen [2] が1増えて、Tosen には0,0,1,0と並ぶ。

   

2回目の比較では、C党だけ2で割った票数になって、Hikaku は1200,660,720,180と並ぶ。Hikaku [0] (つまりA党の数)が最大だから、maxiは0。よって、A党の当選数を表す Tosen [0] が1増えて、Tosen には1,0,1,0と並ぶ。以下、同様。

  

朝日新聞はこの問2までしか掲載してなかった。次の問3が私には難しくて、解きにくかったのだ。

     

   

     ☆     ☆     ☆

210331i-t

   

210331j-a-t

  

  

tosenkei は、その時点での当選者の合計。初期値0からスタートして、1ずつ増えて、議席数6に到達したら終了。つまり、tosenkei がgiseki (議席)6より小さい間は、比較して当選者を決めていく操作が繰り返される。

   

私はここまではすぐ理解できたけど、プログラムの(09)~(13)がなかなか分からなかった。「max」という新たな変数と、前に出て来てた「maxi」との違いがピンと来なかったし、そもそも何を繰り返し行ってるのかも分からない。

  

しばらく考えて、各回ごとに比較する4つの数字の中で最大の数値(max)を少しずつ探す作業だと分かった。まず、maxの初期値0からスタート。0< Hikaku [0] (つまり0<1200) だから、max=Hikaku [0]=1200。maxi は0(A党の党番号)。

  

次に、1200< Hikaku [1](つまり1200<660)ではないから、max も maxi も変化せず。さらに、1200< Hikaku [2] (つまり1200<1440)だから、max = Hikaku [2]=1440。maxi は2に変化。最後は、maxi は2のまま。

  

だから、プログラム(14)によって、Tosen [maxi](つまり Tosen [2]) は1増える。tosenkei(当選者数の合計)も1増加。

   

そして、Hikaku [maki] (つまり Hikaku [2])は、Tokuhyo [maxi] / (Tosen [maxi] +1)へと減少。つまり、Tokuhyo [2] / (Tosen [2] +1)へと減少。要するに、1人当選したC党の票数を1+1(つまり2)で割ってる。小数点以下は「切り捨て」関数で捨てる。

   

   

210331k-t

  

210331l-a-t

     

210331mthumb

   

  

最後は、各党の候補者数が足りなくなった場合への細かい配慮で一通りの完成。各回の比較で、最大値を探す時、候補者数が足りてる党の数値だけをチェックする。

  

普通に考えるなら、 (その党の候補者数)>(その時点のその党の当選者数) 。

不等号の使い方を少し変えると、 (その党の候補者数)≧(その時点のその党の当選者数)+1

  

候補者数の配列 Koho を追加で導入して、

 Koho [i] >= Tosen [i] +1

  

上の式をプログラムの(11)行に「and」で付加すればよい。最後の設問の選択肢では、≧ と< を混ぜてるから、受験生は迷ったり間違えたりする可能性が高い。まあ、最後を難しくするのはありがちな問題作成だし、OKだろう。

  

  

     ☆     ☆     ☆

これで、残る問題点は、そもそも議席数に対して立候補者数の合計が足りない時だけだろうか? 他にも何か細かいバグ(欠陥)がこのプログラムに含まれてるのかも。

    

この問題を自分で考えてる時、すぐに、比較する数値が同じになったら番号が小さい党が有利で不公平だと思ったけど、問題の一番最後にちゃんと説明してあった。

   

プログラムとの関連は分からないけど、選挙の最後にくじ引きの抽選を行ったというニュースは見覚えがある。そもそも選挙などやらずに、単なるくじ引きでいいという政治思想もあるくらいだから、許容範囲だろう。

  

運も実力の内。天の声、天命。というわけで、今日の天命(テンメイ)のブログ記事は終了♪ ではまた。。☆彡

   

      (計 3090字)

| | | コメント (0)

超初心者によるC言語入門2~答のケタ数指定、ルート(平方根)、三角関数、二次方程式の解の公式

フーッ。。 約3ヶ月ぶり、まだ2回目の超初心者は、準備だけでもう疲れ切った (^^ゞ ちなみに前回の記事はこちら。

  

 超初心者によるC言語入門、無料のオンライン・コンパイラ探しが困難、paiza(パイザ)がいいかも♪

  

まず、教科書『新情報技術基礎』(コロナ社)が見当たらない。って言うか、よりによって「コロナ」社か・・(^^ゞ 続いて、プログラミングするための環境作りでまた時間を取られてしまった。

  

前回、ネットのオンライン授業サイトPaiza(パイザ)を使ったのは何となく覚えてたけど、タブレットでまたC言語のアプリを探してみたのだ。1つ、良さげなのがあったからインストールしたら、環境はPaizaその他を使えとのこと(笑)。先に言って欲しいね。

  

で、Paizaラーニングにアクセスしても、全く覚えてないから、前回の自分のブログ記事で復習。勉強になる良い記事♪ マジメな話、普通のサイトや本に書いてない事まで書いてるから、私自身にとってはツボだった。とにかく、ここまでで1時間以上かかってしまった。。

   

   

     ☆     ☆     ☆

忘れてるから、ちょっとバックして、やり直そう。5章、C言語によるプログラミング3節、式と計算

  

問3半径が10の円の円周の長さを計算し、出力するプログラムを作成しなさい。(p.126)

   

円周率3.14が小数だから、等号(=)の右に書く「変換指定子」は、%f。数値の入力は、無理やり小数の形にして、2.0×3.14×10.0。いわゆる、2πr(ニ・パイ・アール)。

     

210112a2

       

何回、エンターキーを押してもダメ。そうそう。モニターの右側に隠れるように「コードの入力」ボタンがあるのを忘れてた。

  

210112l2

   

210112b

   

成功。既に1回、行の最後のセミコロンを忘れてエラー表示が出てしまった (^^ゞ 面倒くさっ。。 等号の記号は全角で入力してもいいのか。

  

あと、「return0;」は消しても大丈夫。さらに、10.0じゃなくて、整数10の入力でも大丈夫だった。2.0と3.14が小数だからかね?

  

小数点以下の00000もジャマだけど、深く考えないことにして先に進もうか。あっ!、小難しい説明があった♪ 例えば、変換指定子を「%5.2f」とすると、全体で5ケタ(小数点も1ケタと計算)になって、小数点以下が2ケタになると。確かに、実行すると、「62.80」と出力された♪

   

210112c2    

    

     ☆     ☆     ☆

続いて、例題5.4底辺の長さ4、高さ3の直角三角形の斜辺の長さを計算して出力するプログラム

   

3×3+4×4のルート(√)の計算だけど、結果はピッタシ5だから、無理数にはならないと。

     

ルート計算(平方根:square root)の関数「sqrt()」を使いたいから、上側に「#include <math.h>を挿入する必要がある。こんなの、省略できないのかね?

  

210112d 

     

210112e

   

教科書は結果のケタ数を指定してないけど、私は「%3.1f」として、全体3ケタ、小数点以下1ケタに設定。ちゃんと5.0が出力された。しかし、これも自動で判断してやってくれないかね?(^^ゞ

   

   

     ☆     ☆     ☆

次は三角関数。例題5.5sin30°、cos30°、tan30°を計算して出力するプログラム

    

sin()、cos()、tan()を使用。普通の度数表示の角30°を、高校数学用のラジアン表示の角に直して計算するから、角度の30に3.14を掛けて180で割る。いわゆる、π/180(180分のパイ)。

  

結果の数字は、全体5ケタ、小数点以下3ケタに指定するために、「%5.3f」と入力。

   

210112g

   

210112h

  

答えは合ってるけど、なぜか5行目に「コンパイル・エラー」の警告マークが付いてしまった。無料使用だから、エンジニアへの質問はできない♪ 教科書のままの入力なんだけど、なぜ?

  

210112i

  

5行目のスペースの入力が2ヶ所おかしいってこと? 私が全角スペースを入れたとかいうことかね? あっ、半角スペースに変えたら警告が消えた! 全角スペースは良くないのか。一応、結果は出力されるけど?  

    

   

     ☆     ☆     ☆

早くも最後は、二次方程式の解。問5x²+4x+3=0の解を公式で求めて

 解1=-1.000000

 解2=-3.000000

と出力するプログラム

   

二次方程式の解の公式の複合±を、+と-の2つに分離。解1はプラスで、{-b+√(b²-4ac)}/2a。解2はマイナスで、{-b-√(b²-4ac)}/2aとすると。

   

210112j

   

210112k

  

結果は全体8ケタ、小数点以下6ケタに設定。なぜか教科書は、ケタ数設定なしになってた。答を改行で2段にするから、変換指定子%8.6fの直後に、改行の記号「\n」を入れると。

    

本当は「¥n」だけど、なぜか円マークじゃなくて逆スラッシュになる。これは気にしなくていいらしい。

   

  

     ☆     ☆     ☆

方程式を入力するだけですぐ答が出るようにプログラミングしたいけど、まだ超初心者には敷居が高すぎてパス。

   

こんな遅いペースの進み方だと、この教科書だけで人生が終わるかも♪ それでは、また明日。。☆彡

    

        (計 2030字)

| | | コメント (0)

超初心者によるC言語入門、無料のオンライン・コンパイラ探しが困難、paiza(パイザ)がいいかも♪

もう、ドッと疲れた。。(^^ゞ 要するに、日本人が1人でたまにやるだけだから、何かと上手く行かないんだろうな。英語だらけ、大量の専門用語、トラブル続出。。

  

小学生向けのプログラミング記事を除いて、9ヶ月ぶりにプログラミング記事を書こうと思って選んだのが、名前だけは昔から度々聞いてるC言語。フツー過ぎて無意識の内に避けてたのか、過去15年間のブログでもほとんど触れてない。たった2回、言葉を出してるだけ。

    

今回は、工業高校の現行の教科書『新情報技術基礎』(コロナ社、非課税1496円)を利用して、一から始めようとしたけど、一(イチ)じゃなくて0(ゼロ)から始める必要があった。そもそも、C言語を扱える「開発環境」の準備に苦労したのだ。

   

201024a

      

     ☆     ☆     ☆

昔、高校数学の教科書でBASICを扱った時にも思ったけど、教科書はやっぱり学校で使うように出来てる。教えてくれる先生と環境が揃ってるのを前提にしてるのだ。

  

内容はかなり丁寧に書かれてるけど、私には引っかかる事だらけ。こう書けば正解、という具体例はあっても、「そう書かなかったらどうなのか?」、「別の正解は?」といった話がほとんど書かれてないから、結局は自分で試行錯誤するしかない。スペース(空白)や特殊な文字列の有無、改行の必要性など。

  

201024q

      

教科書・第5章、「C言語によるプログラミング」は、最初の2ページで大量の専門用語を簡単に並べた後、すぐにプログラミング開始。入力したプログラムを機械語に変換してコンピューターに理解させるための、「コンパイラ」(compiler)と呼ばれるソフト(またはアプリ)をどうするのかは書いてない。

   

本当のビギナーにとって、これが最大の難関だろう。情報は溢れ返ってるけど、分かりにくい説明が多いし、自分の端末でやってみると上手く行かないことが多いのだ。

   

   

     ☆     ☆     ☆

C言語ではなくJAVAなら、学習用コンパイラのiPadアプリを1月に手に入れてるけど、C言語で似たアプリはすぐには見当たらない(本当はあるんだろうけど)。

  

そこで、最近は放置プレイだけど前にしばらく使ってた学習アプリ、「Progate」(プロゲート)を使おうとしたら、パスワードを忘れてログイン不能 (^^ゞ 再発行で何とかログインすると、C言語のコースは無かった(笑)

    

仕方ないから、マイクロソフトの Visual Basic をダウンロード&インストールしようとしたら、重い、重い。よく分からないまま軽めのセットを選択しても7GB以上(!)で、あまりの遅さに中止。知らない人間がちょっと勉強するだけなのに、こんな苦労が必要なはずはない。

   

代わりにオンラインですぐ使える無料コンパイラを探すと、当然(?)海外サイトだらけで、動かなかったり、カーソルが逆向きに動いて(笑)入力が大変だったり、フィッシングで「おめでとうございます。当選!」みたいな表示が出たり (^^ゞ

  

この苦労を考えると案外、フツーにプログラミングのスクールに通う方が安上がりで手っ取り早いかも♪ しかし、小市民は無料で自宅で1人で頑張るのであった。時間の方が勿体ないんだけど。。

   

   

     ☆     ☆     ☆

失敗につぐ失敗で諦めかけた時に、ようやく良さげなサイトを発見。paiza(パイザ)ラーニング。「パイザ」は、通行証とかパスポートって意味で使ってる言葉だと思う。

  

以前のプロゲートと同じで、基本的には有料契約に誘い込む学習サイトだけど、無料の登録なしでも、超初心者の練習くらいは出来るようだ。萌え系の可愛い女の子キャラもお手伝いしてくれる♪

  

201024b

  

ここでは、コンパイラのことを、「オンライン・エディタ」と読んでる。女の子のすぐ右側だから、気分的に「入力」しやすい♪ 文字の入力ね。

  

無意味な見出しを除いて、教科書の通りに入力すると、「成功」! ちゃんと、「今日は (改行) 快晴です」と表示された。画面の一番下の、スクロールしないと見えない場所に(笑)。最初、気付かなかったほど。

    

201024c

   

201024d 

  

1行目の「#include <stdio.h>」で、stdio.hというファイルを読み込む(インクルードする)。2行目の「int main(void)」は、メインの関数(要するに命令)で、intは「戻り値」の型を指し、(void)は引数がないことを指すらしいけど、とりあえず意味不明♪

   

3行目からが実質的な指示で、「printf」で表示。二重引用符(ダブルクォーテーション)「"  "」で挟むと、そのままの文字が表示されると。日本語もOK。各行の最後のセミコロンを忘れると、次の行まで続く命令だと誤解される。

  

サイトにとっては、有料会員になってもらうのが成功か♪ 試しにクリックしてみると、「日本e-learning大賞 会長賞」☆

  

201024e

   

さらにクリックすると、12ヶ月で税込7200円か。安いね。まあでも、サブスクは使わなくてもどんどんお金を失うからな。アマゾン・プライムみたいに♪ またそれか! いや、最近、全く使ってないもんで。無理して買い物するのも妙な話だし、動画視聴は時間を取られるし。

   

   

     ☆     ☆     ☆

話を戻すと、コンパイラ探しと同じくらい時間を使うハメになったのが、改行を示す「¥n」の入力。これ、いくら頑張っても「\n」になってしまう。半角の円マークが、半角の逆スラッシュになるのだ。

  

パソコンのキーボード設定はちゃんと「日本語キーボード(106/109キー)」になってる。どうも、半角の円マークと半角の逆スラッシュは同じコードのようだけど、同じ右上のキーを押しても、場合によって「¥」が入力されたり「\」が入力されたりするのだ。

  

ちなみにこの管理画面では「\」になるから、「¥」は環境依存の文字として「えん」から変換して入力してる。それぞれの読者の端末でどう表示されるのかは知らない♪ 

  

円マークの無いプログラムだけ練習しようかと思ったけど、教科書のその後を読んでも円マークが登場。結局、パイザのサイトだと、逆スラッシュのまま「\n」と入力すれば良かった。気にしないで、無視♪

      

これがダメなサイトもあるのだ。もちろん(?)、環境依存文字もエラー。温厚で寛容な私もそこでイラついて、精神的パワーを浪費してしまった。

   

    

    ☆     ☆     ☆

201024f

   

さっきの入力を少し変えて、改行を減らして、「\n」を消してみると、「今日は快晴です」と一続きで出力された。なるほど、スペースさえ入らないわけね。

  

ちなみに、最後「return 0」のスペースを省略して「return0」と入力すると、エラーになった。こうゆうのがイヤなのだ。スペースや改行は、必要な時と必要でない時の区別をしにくい。

  

  

教科書の次は、面積の計算。というより、実際は単なる整数の掛け算。20×40

  

201024g

  

201024h

   

4行目の「/n」は省略してもいいけど、「%d」は省略不可。「値を10進数の整数値として扱う」という意味の「変換指定子」とのこと。

  

教科書のその後にある体積の計算(整数の掛け算10×20×30)も同時に書いてみたら、成功した。ちょっと調子が出て来たかも♪ 2行の命令なら、1行目だけ「\n」で改行すればいいのか。

    

201024i 

  

201024j

  

ちなみに命令部分の1行目の「\n」も消してみたら、改行が無くなって、「面積=800体積=6000」と表示された。スペースさえ入らないから、これはダメ。

  

  

     ☆     ☆     ☆

最後は、教科書・問2。「底辺の長さが4で高さが50の三角形の面積を計算し、実行するプログラムを作成しなさい」。わざと改行を減らして短く書いてみたけど、ちゃんと成功した。底辺×高さ÷2の「÷2」は、「/2」と入力するだけ。

   

201024k

   

201024l

  

実は最初、「0.5*4*50」と書いたら失敗。そうか、小数はダメなわけね。今後の研究課題としよう♪ またそれか!

 

あっ、例題5・3の球の体積だと、円周率3.14を掛けるから、整数じゃなくて実数の変換指定子「%f」を使ってた。半径6の球の体積

   

201024m

   

201024n

   

それなら、いつも%fでいいんじゃないの?、と思うけど、「現象には必ず理由がある」byガリレオ湯川♪ 何か、意味があるんだろうね。

   

あっ、実数扱いだと入力も無理やり小数にしなきゃいけないのか。面倒くさい。問4、200Ωと300Ωの抵抗の並列接続による合成抵抗の計算。指示された(下手な)数式を使うと、こうなると。何か、もっとラクに入力する技があるんだろうけど。無駄な小数点のおかげで、式も見にくい。

      

201024o

  

201024p

    

答は、いわゆる「和分の積」、200×300/(200+300)だから、60000/500=120オーム。当然、元の2つの抵抗値より小さくなる。1行目と2行目の正確な理解や、最後のreturn 0の理解は、また今度。

   

   

     ☆     ☆     ☆

フーッ。。 これでC言語もマスターしたから、次はもうC++か(笑)。シープラプラって可愛い呼び名だけは昔から知ってるのだ。記号は、エラー表示に見えるけど♪

      

それにしても、やっぱり最初の「環境構築」が一番大変だなと、あらためて痛感。自分のパソコンだと故障が怖いから、職場で試そうかな♪ コラコラ! ではまた明日。。☆彡

   

   

  

cf. 超初心者によるC言語入門2~答のケタ数指定、ルート(平方根)、三角関数、二次方程式の解の公式

    

      (計 3664字)

    (追記49字 ; 合計4713字)

| | | コメント (0)

小学校『5、6年のプログラミング ドリル』問題と解き方4、アルゴリズム、移り変わり図

この3ヶ月で、小学生向けの学習参考書『5、6年の楽しいプログラミング ドリルの王様』(新興出版社)について、問題と解き方を紹介する記事を3本書きました。

   

1本目の記事へのリンクはここです。2本目へのリンクはここです。3本目へのリンクはここです。

  

今日はそれらの続きとして、4本目の記事を書きます。はじめの2回で大まかな説明はしてるので、今回もすぐ問題に行きます。問題文の書き方は少し変えてます。

   

   

   ☆    ☆    ☆

では、第1問。ドリルの52ページの問題、「25 コンピュータの考え方②」。

  

問② そうたさんは、カード型の鍵(かぎ、キー)を使って、部屋に入ろうとしています。カードの読み取り機は、次の通りに、ドアを開けるか開けないかの判断をします。

  

1.カードの番号(横に並んだ13ケタの数)を読み取る。  2.左から1、3、5、7、9、11、13番目の数字を上に書いて、足し算する。また、左から2、4、6、8、10、12番目の数を下に書いて、足し算する

  

3.下の方の足し算の結果に3をかける。  4.上の方の足し算の結果と、3の結果を、足し算する。

 

5.4の結果の数で、一の位が0なら、ドアを開ける。一の位の数が0でないなら、ドアを開けない。

  

次のカードで、そうたさんは部屋に入れますか?

A.1235427902184   B.6827913304018

  

  

    ☆    ☆    ☆

では、解答です。Aのカードから見て行きましょう。

上の数の足し算は、1+3+4+7+0+1+4=20。下の数の足し算は、2+5+2+9+2+8=28だから、3をかけると、28×3=84。

 

だから、上+(下×3)=20+84=104。よって、一の位の数が0でないから、ドアを開けず、部屋に入れません

  

次に、Bのカードについて。上の数の足し算は、6+2+9+3+0+0+8=28。下の数の足し算は、8+7+1+3+4+1=24だから、3をかけると、24×3=72。

  

だから、上+(下×3)=28+72=100。よって、一の位の数が0だから、ドアを開けて、部屋に入れます

   

  

そんな計算しなくても、入れるか入れないかだけ、簡単にカードに書けばいいのに・・という気もしますよね。

  

たぶん、数や読み取り方(プログラム)を変えることで、色んなことが出来るからだと思います。例えば、部屋に入れるのはいつまでなのか、とか、何人なのか、とか、13ケタの数に色んな意味を持たせることができるでしょう。

   

  

    ☆    ☆    ☆

次に、第2問。ドリルの62ページの問題、「30 アルゴリズム⑤」。アルゴリズムという言葉は、前回の記事(3本目)にも書きましたが、ある目的、問題の解決に向かって、1つずつ進む手続きをまとめたもの。 もとは数学者(難しい算数のプロ)の名前です。

    

問② 家と道がかかれた下の図で、丸の中に書かれた数は、その道を通るのに何分かかるかを表します。

  

200526a

  

(1)さくらの家から、お店を通って、ゆなの家に行きます。最も早く行くためには何分かかりますか?

(2)そうたの家から、ひまりの家を通って、りこの家に行きます。最も早く行くには何分かかりますか?

    

  

   ☆    ☆    ☆

では(1)から解きましょう。時間の長さは、道の長さと比例してますが、道を見ただけだとよく分かりません。いくつか計算して、合計時間を比べることになります。

     

さくらの家からお店までは、ゆうまとひまりとゆなの家を通るのが一番早くて、4分+3分+5分+2分=14分です。次に、お店からゆなの家までは、2分です。だから、合わせて、14分+2分=16分です。

  

ゆなとお店の間の道は2回通りますが、2回はダメとは書いてないので大丈夫です。また、さくら→ゆうま→そうた→りこ→お店→ゆなの順なら、4分+5分+3分+6分+2分=20分。だから、16分より遅くなってしまいます。

   

次に(2)。まず、そうたの家から、ひまりの家までは、ゆうまの家を通るのが一番早くて、5分+3分=8分。次に、ひまりの家からりこの家までは、来た道をそのまま帰って、ゆうま、そうたの家を通るのが一番早いです。3分+5分+3分=11分。

  

だから、合わせて、8分+11分=19分です。

  

このような、時間や長さが最も短い道を探す問題は、家と道が増えると面倒で難しくなるので、人間だと大変。だから、コンピューターが色々な道の時間を計算して、比べて一番短い時間や距離を探すことになります。

    

   

    ☆    ☆    ☆

次に、第3問。ドリルの70ページの問題、「34 移り変わり図①」。いくつかのもの(物、人など)の状態が、少しずつ変わる様子を考える図のことです。 

    

問② 下図は、スーパーのレジでのやり取りを表したものです。

  

200526b

  

次の説明から、正しいものを2つ選びましょう。

ア.客は商品を置くと同時にお金をはらう。   イ.レジ係は合計金額を伝えると同時に商品をわたす。

ウ.客は商品の合計金額を確かめてからお金をはらう。   エ.レジ係は客がはらったお金を確かめてから合計金額を伝える。

オ.客は商品のお金をはらってから商品を置く。   カ.レジ係は客がはらったお金を確かめてからおつりと商品をわたす。

  

  

     ☆    ☆    ☆

これは、図が無くても、常識で分かるでしょう♪ まず、ウが正しいですね。図だと、左上あたりを見ればそうなってます。

 

次に、カが正しいですね。図だと、右下あたりを見ることになります。

   

     

実際のスーパーやコンビニ、100円ショップだと、商品が1コなら、お客さんは商品とお金を同時に置くことがあります。また、合計金額を伝えると同時に商品を客の近くに置くレジ係もいます。

   

客とレジ係がお互いによく知ってて、相手を信頼してる場合も、あまり順番にはこだわらないでしょう。上図はあくまで、機械的な決めごと。今後はレジ係もロボットが増えるでしょうから、きっちり決めておく必要があります。

    

2つのコンピューターで、互いにデータをやり取りしながら計算していく場合も、似たような図になるでしょうね。それでは今日はこの辺で。。☆彡

   

      (計 2436字)

| | | コメント (0)

小学校『5、6年の楽しいプログラミング ドリルの王様』、問題と解き方3

この1ヶ月半で、小学生向けの学習参考書『5、6年の楽しいプログラミング ドリルの王様』(新興出版社)について、問題と解き方を紹介する記事を2本書きました。1本目の記事へのリンクはここです。2本目へのリンクはここです。

  

今日はその続きとして、3本目の記事を書きます。下の画像は、AMAZON(アマゾン)の通販ページです。同じシリーズで、小学1・2年生用、3・4年生用のドリルもあります。

       

200305a 

   

  

    ☆    ☆    ☆

前の2回で大まかな説明はしてるので、今回はすぐ問題に行きます。

では、第1問。ドリルの49~50ページの問題、「24 コンピュータの考え方①」。

  

問① 2つのカーペットを重ねると、色が変わります。白の部分と白の部分が重なると、そこは白になります。それ以外の重なり方だと、その部分は黒になります。

では、下の2枚のカーペットを重なると、どんな模様(もよう)になりますか?

  

200414a

  

   

   ☆    ☆    ☆

この変化は、わりと簡単にイメージできると思います。答は下図です。

 

200414b

  

   

この変化はいずれ、中学校・高校・大学とかで、「ORゲート」のような名前で習います。読み方は、オーアール・ゲートとか、オア・ゲート。コンピューターの設計図の部品(のはたらき)なのです。

    

白と白で、白」は、「0+0=0」などと書きます。「黒と黒で、黒」なら、「1+1=1」などと書きます。ちょっと変な計算だけど、すぐになれます。書き方は色々あるので、その時の先生や本などの指示に合わせます。

  

  

    ☆    ☆    ☆

問③ 次の変化では、重ねる2枚のカーペットの片方でも白の部分は、白になります。黒の部分と黒の部分が重なると、黒になります。そのルールで色を変えた後、さらに、白は黒に変え、黒は白に変えます。

  

次の2枚のカーペットを重ねると、どんな模様(もよう)になりますか?

  

200414c2

  

  

    ☆    ☆    ☆

1つずつ、進みましょう。まず、2枚を重ねるだけだと、下図のようになります。

   

200414d

   

さらに、白と黒を入れ替えると、下図になります。これがです。

  

200414e

  

  

1つめの変化はいずれ、中学校・高校・大学とかで、「ANDゲート」のような名前で習います。読み方は、アンド・ゲート。これもコンピューターの設計図の部品です。

    

白と黒で、白」は、「0・1=0」などと書きます。「黒と黒で、黒」なら、「1・1=1」です。ちょっと変な計算だけど、すぐになれます。

  

2つめの変化はいずれ、「NOTゲート」のような名前で習います。読み方は、ノット・ゲート。コンピューターの設計図の部品なのです。「白は、黒になる」なら、「¬0=1」。「黒は、白になる」なら、「¬1=0」などと書きます。

   

2つの変化を合わせて、例えば、「黒と白を合わせて白にした後、黒になる」のなら、「¬(1・0)=1」などと書きます。ちょっと難しいですね。今はまだ、ふう~んと聞き流していいです♪

   

  

   ☆    ☆    ☆

では、第2問。ドリルの59ページの問題、「29 アルゴリズム④」。

  

ロボットに命令して、5つの箱に書かれた数を、小さい順に並べ替えます。最初は左から右に、5、2、3、1、4と並んでます。ロボットは次のルールに従って、左右に動きます。

 

1. 正面の数と右どなりの数を見る。

2. 右どなりの数の方が小さければ、正面と右隣りを交かんする。

3. 右へ移動する。右端に移動するまで、1~3をくり返す。

4. 右はしまで来たら、左はしにもどる。右はしに移動した箱は見ない。

  

下の表の、(ア)、(イ)、(ウ)、(エ)に当てはまることばは何ですか? また、全部で何回、箱を交かんしましたか?

  

比べた回数 比べる数 交かん 比べた後のならび方

0回目            52314

1回目  5と2  する  25314

2回目  5と3  する  23514

3回目  5と1  する  2315

4回目  5と4  する  23145

 (左はしにもどる)

5回目  2と3 しない  23145

6回目  3と1  する  21345

7回目  3と4 (ア)  21345

 (右はしの5は見ないで左はしにもどる)

8回目  2と1 (イ)  12345

9回目  2と3 (ウ)  12345

(右はしの4と5は見ないで左はしにもどる)

10回目  1と2 (エ)  12345

  

  

    ☆    ☆    ☆

ちょっと難しいですね。特に、右はしに来た時にどうするのか、問題文のルールも分かりにくくなってるので、自分で「たぶん、こうゆう意味だろうな」と考えることになります。問題文が長いので、少しはぶいて短くしてるのです。

    

7回目。3と4を比べると、右の4の方が大きいので、交かんは「しない」・・(ア)の答。8回目。2と1を比べると、右の1の方が小さいので、交かんは「する」・・(イ)の答

  

9回目。2と3を比べると、右の3の方が大きいので、交かんは「しない」・・(ウ)の答。10回目。1と2を比べると、右の2の方が大きいので、交かんは「しない」・・(エ)の答

  

全部で、交かんは、6回です。・・・

   

   

    ☆    ☆    ☆

全体を大きく見直すと、ロボットの右への動き4セットになってます。1つ目のセットで、5が一番右に決まります。次に左はしにもどって、2つ目のセットで、4が右から2番目に決まります。

  

また左はしにもどって、3つ目のセットで、3が右から3番目に決まります。また左はしにもどって、4つ目のセットで、2が右から4番目に決まって、おしまいです。最後のセットではもう、ロボットは動かず、1と2を見て比べるだけです。

   

アルゴリズム」という言葉は初めて聞いたかも知れませんね。ある数学者の名前から作った言葉なのです。要するに、何かある目的、問題の解決に向かって、1つずつ進む手続きをまとめたものです。

   

例えばこの問題なら、5つの数を小さい順に並べるための手続きのまとめ(アルゴリズム)、ということです。その中で、たとえば2つ目のセットなら、左側の4つの数の中で一番大きい数(つまり4)を、右はしから2番目に決めてるのです。

  

新型コロナウイルスのせいで大変ですが、気楽にがんばってくださいね♪ それでは、今日はこの辺で。。☆彡

   

     (計 2412字)

| | | コメント (0)

小学校『5、6年の楽しいプログラミング ドリルの王様』、問題と解き方2

1ヶ月前、小学生向けの学習参考書『5、6年の楽しいプログラミング ドリルの王様』(新興出版社)について、問題と解き方を紹介する記事を書きました。

   

今日はその続きとして、2本目の記事を書きます。

     

200305a 

  

上の画像は、AMAZON(アマゾン)の通販ページです。同じシリーズで、小学1・2年生用、3・4年生用のドリルもあります。

   

  

    ☆    ☆    ☆

前回も書きましたが、プログラミングとはもともと、コンピューターにやらせたい仕事を上手く分けて、きちんと順序立てて書くことです。

   

そこで書かれたものが、プログラムです。分けること、つなぐこと、順番。この3つがポイントです。

  

前回は、「順序」、「くり返し」、「分岐(ぶんき)」の問題をやりました。今回はまず、「変数」についてです。変数とは、色々と変わるもの(数、言葉)をまとめて表す、特別な言葉や記号のことです。

  

「変数」と呼ばれるものなのに、数とはかぎらないのか? おかしいと思った人もいるでしょうね♪ 実は、もとの英語だと「ヴァリアブル」(variable)だから、「変化するもの」という意味の単語。それを誰かが、変数という日本語に訳したのです。

  

  

    ☆    ☆    ☆  

では、第1問。ドリルの27ページの問題、「13 変数②」。

  

ゆうなさんは、カーテンをつくることにしました。次のメモのとおりに布を切るとき、長さはいくつになりますか?

① 長さ←3  ぬいしろの長さ←2  長さ←長さ+ぬいしろの長さ

   

  

「長さ」という言葉が5回も出て来て、分かりにくいですね。特に、右端の「長さ←長さ+ぬいしろの長さ」という書き方はおかしいような気がします。

   

これはプログラム用の特別な書き方で、「長さ」と「ぬいしろの長さ」という言葉が変数です。矢印(←)の右には、変数に入れるいろんなもの(数、言葉)が書かれてます。本物のコンピューターのプログラムだと、矢印(←)の代わりに、イコール(=)と書きます。

   

もっとフツーの言い方に直すと、こうゆう問題なのです。

「まず、もとの布の『長さ』を3としますこれは出来上がった時のカーテンの長さです。次に、『ぬいしろの長さ』を2とします。最後に必要な布の長さ全体を、『長さ』+『ぬいしろの長さ』とすると、その数は結局いくつですか?」

   

これならもちろん、3+2で、だと分かるでしょう。プログラム独特の書き方になれることが大切なのです。もう1つ、似た問いを解いてみましょう。

  

②  長さはいくつになりますか?

 長さ←9  ぬいしろの長さ←3  長さ←長さ+ぬいしろの長さ

   

  

は、 9+3=12 ですね。

  

  

   ☆    ☆    ☆

ちょっとだけ違うタイプの問いも見ておきましょう。こちらの方が分かりやすい文章だと思います。

  

 ゆうなさんは、布の長さから、カーテンの長さを知るために、次のメモをかきました。

 カーテンの長さ←布の長さ-ぬいしろの長さ

  

 それぞれの長さが次のとき、カーテンの長さは?  

 布の長さ←10  ぬいしろの長さ←3

  

    

さっきは足し算でしたが、今回は引き算。は、 10-3= です。

   

  

   ☆    ☆    ☆

では、第2問。ちょっと中学の算数(「数学」)に近づいてる問題です。「19 関数②」。計算機とか、計算するプログラムのお話です。

  

さくらさんは計算ロボットに、次の命令を覚えさせました

  

 平行四辺形の面積(底辺,高さ)とは

  結果←底辺×高さ

  結果 を表示する

 である。

  

次の命令を実行すると、何が表示されますか

 平行四辺形の面積(2,4)

  

   

    ☆    ☆    ☆

これも書き方が分かりにくいでしょう。ロボットの画面に表示されるのは、底辺の長さ2、高さ4の平行四辺形の面積の数だけです。内部でこっそり計算して、その結果の数字だけが表示されます。

      

まず結果は、底辺×高さだから、2×4=8。そして、この結果を表示するという命令になってます。だから、表示されるのはという数字のみ。これがです。

   

この問題だと、平行四辺形の底辺、高さ、面積の3つが変数です。ただ、底辺と高さから面積を求めてるので、

 面積は底辺と高さに「関係する数」

です。これを縮めて、

 面積は底辺と高さの「関数」

などと言います。今はあまりピンと来なくてもかまいません。くわしくは中学で習う内容です。

   

   

   ☆    ☆    ☆

では、第3問。ドリルの「22 変数⑤」。ここでは、数の計算だけでなく、ロボットの動きが問われます。

  

1番から6番まで、番号がついた6つの家があります。そうたさんは、次のようにロボットに命令しました。

 番号←3

 ピザを配達(番号)

  

このとき、ロボットは3番の家にピザを配達します。  

では、次の命令だと、ロボットはどの番号の家にピザを配達しますか?

  

 番号←1

 ピザを配達(番号)

 番号←番号+3

 ピザを配達(番号)   

 

  

   ☆    ☆    ☆

解くときのコツ、考え方は、4行の命令を、前半2行と後半2行に分けること。命令の前半2行で、ロボットは番号1の家にピザを配達します。

   

後半の2行は、まず「番号←番号+3」と書かれてます。これは、「新しい番号は、前の番号+3とする」という意味。つまり新しい番号は、1+3=4になります。だから、ロボットは番号4の家にピザを配達します。

  

前半と後半を合わせると結局、ロボットがピザを配達するのは、1の家と4の家。これがです。

  

  

    ☆    ☆    ☆

今日のどの問題も、計算はとてもカンタンですね。ただ、書き方が変わってるので、繰り返し練習して、なれることがポイントです。まず、読み取れるようになること。つまり、プログラムを読めること。次に、自分で書けるようになること。つまり、プログラミングできること。

  

新型コロナウイルスのせいで、ずっと家にいる人も多いでしょう。遊びみたいな感じで、勉強も楽しんでください。それでは。。☆彡

   

     (計 2301字)

| | | コメント (0)

小学生の学習参考書、『5、6年の楽しいプログラミング ドリルの王様』(新興出版社)、問題と解き方

今週から新型コロナで学校が長いお休みになって、困ってる小学生も多いでしょう。そこで今日は、春から始まるプログラミング学習の勉強に役立つドリルを紹介します。新しい教え方(新学習指導要領)に対応した面白い本です。

  

200305a

    

AMAZON(アマゾン)でも通販されてる『5,6年の楽しいプログラミング ドリルの王様』(新興出版社)です。著者(書いた人)は、島袋舞子。監修(チェックした人)は兼宗進教授です。680円+消費税で、今買うと合計748円です。

   

全体は96ページですが、アマゾンでは8ページ分のイメージ画像を載せてるので、それを解いてみましょう。

  

  

     ☆     ☆     ☆

プログラミングとはもともと、コンピューターにやらせたい仕事を上手く分けて、きちんと順序立てて書くことです。そこで書かれたものが、プログラムです。分けること、つなぐこと、順番。この3つがポイントです。

   

小学校の勉強では、自分でプログラムを書くことも大切だし、与えられた順序(プログラム)にしたがって自分が何かをすることも大切です。本やテストに書いてある通りに、先生の言う通りに、手を動かしたり、他の事をしたりするのです。

 

ではドリルの一番最初の問題。「1 順序①」の2番です。

  

次の順番でかいた絵はどれですか? 1.画用紙の右下に円をかく。 2.画用紙の右上に星をかく。 3.画用紙の左下に三角形をかく。

  

200305b

  

   

これはとても簡単ですね。次の図の、上から下へと進んで行けばいいのです。

  

200305c

  

ということは、答はエです。これをさらに、左右が逆になるようにクルッと回転させればウになりますが、問題ではそんなことは書かれていません。書かれてる事だけを、正しく行うのです。

  

  

    ☆     ☆     ☆

第2問は、「3 順序③」の1番。車のロボットの問題です。ロボットと言うより、オモチャのラジコンカーの操作ですね。

  

車のロボットを動かして線を書きます。命令は2種類で、「1マス進む」と「左を向く」です。

「はじめ → 1マス進む → 左を向く → 1マス進む → 1マス進む → おわり」と命令したとき、どんな線になりますか?

   

200305d

    

  

これもカンタンですね。下の図で、左から右に進んで行けばいいのです。

  

200305e

  

はまた、になります。車は最後、上側を向いてます。

  

  

    ☆     ☆     ☆

第3問は、「6 くり返し②」の1番。飛行機(ひこうき)のロボットを動かします。「3回くり返す → ・・・・・・ → ここまで」とプログラミングすると、「・・・・・・」の所の命令を3回続けて行います。

  

次のようにロボットに命令したとき、どの場所に行きますか? 「はじめ → 3回くり返す → 1マス進む → 右を向く → ここまで → おわり」。 

  

200305f

  

まずアに進んで、下側を向く。次に下側に進んで、左側を向く。さらにエに進んで、上側を向く。だから答はエ。飛行機は最後、上向きになります。

   

  

     ☆     ☆     ☆

では最後、第4問。「10 分岐④」の1番です。分岐(ぶんき)とは、分かれること、あるいは、分かれ目のことで、普段は使わないちょっと難しい言葉です。

  

ゆうなさんは、いろいろな形のクッキーを作って友人に配ります。クッキーを袋(ふくろ)に入れるのを妹に手伝ってもらうために、命令の図をつくりました。

   

200305g

  

この命令にしたがうと、丸いクッキーは「花がらのふくろ」に入るし、ハート形のクッキーは「水玉もようのふくろ」に入ります。

  

では、□(四角)のクッキーはどのふくろに入りますか? また、☆(星型)のクッキーはどのふくろに入りますか?

  

   

一目見てすぐに答えるのではなく、質問や条件にしたがって、一歩ずつ順序立てて考えることが大切です。四角のクッキーなら、下図のように進んで、答はチェックがらのふくろです。

   

200305h

  

星型のクッキーの場合は、「はじめ→いいえ→いいえ」と右側に進んで行くので、答えは水玉もようのふくろです。このように、命令の流れを表す図は、流れ図フローチャートなどと呼ばれます。フローは流れ、チャートは図を表す英語です。

   

お休み中に家で勉強するのは大変ですが、カンタンで楽しい勉強でいいので、少しずつがんばってくださいネ♪ もちろん、ウイルス感染には注意して。ではまた。。☆彡

   

     (計 1693字)

| | | コメント (0)

iPad、iPhone用のJava学習アプリ、Jedona(Compiler for Java)

マニアックな事で困った時には、反射的にネット検索をかけるクセがついてるけど、アプリ検索という手もあった。正直、アプリというものは種類が多過ぎるし、ハズレやバグ(欠陥)ですぐ削除することもよくある。ただ、これは今の所、有難い限り♪ 人気がさっぱりないけど評価が高いのは、言語が英語のみだからだと思う。

  

200118a

  

Jedona(ジェドナ?)。Compiler for Java(コンパイラー・フォー・ジャバ)。自分が入力したジャバのプログラムを、機械が読み取れるように変換(コンパイル)して、表示してくれるアプリ。

   

先日、パソコンで普通にJavaを導入しようとしたら、コンパイルまでは何とかなったのに、最後の表示でつまづいてしまった。コンパイラーと読み取りアプリのバージョンの不適合みたいで、どんどん事態がこじれて行きそうだから、とりあえず断念。

  

ただ、やっぱり気になるからアプリを検索したら、1つ目はほとんど使い物にならなくてすぐ削除したけど、2つ目のこれがヒットだった。広告は出るし、データ保存ができないみたいだけど、課金なしで色々練習できるから、超初心者にとっては十分だ。動きも軽くて、変なエラーもこれまで出てない。私の入力ミスを除けば♪

   

   

     ☆     ☆     ☆

200118d

  

最初は黒い背景で、ちょっとだけややこしい入力例が出て来たけど、とりあえず無視。まずはお約束の「Hello World!」の表示プログラム。画面右上の再生ボタンをタップすると、素早くコンパイルして、表示成功。1行目のクラス名で1回失敗した後♪ ファイル名に合わせないといけないのかな? 一部の文字の色は、自動的に付けてくれてる。

   

200118e

   

ただ、黒い背景だと、Windowsのコマンドプロンプトみたいで難しそうに見えるから、設定の下側(Editor Theme)で白(White)に変更。ついでに入力と出力の文字(Font Size)も大きくした。英語といってもこの程度で、実際、年齢設定も4+(4歳以上?)になってる。

   

200118c

  

続いて、足し算とかけ算。この辺りは、別に覚えてるわけじゃなくて、例の学習アプリ「Progate」の説明に従ってるだけ。一応、数や文字は自分で少し変えたりしてる。

  

200118f

  

5+3と、2×7をやらせると、8と14が2行で表示された。ちなみに、printlnではなく、単にprintと入力すると、同じ1行の中で表示されてしまうから、普通は避けるところだ。   

200118g

  

  

    ☆     ☆     ☆

200118h

  

さらに、文字列の「足し算」。2つの文字列「blogger」「Tenmei」をそれぞれ二重引用符でくくって、足し算すると、2つがつながって表示される。

  

200118i

  

そして、眠いから早くも最後。変数を2種類設定して、それぞれ代入して表示させたら、エラーが二重に出てしまった♪ 下が最初の私の入力。整数を表す int 型の変数「number」を設定して、7を代入して、表示。次に、文字列を表す String 型の変数「name」を設定して、Tenmei を代入して、表示。以下、間違い探しをお試しあれ♪

  

200118k

  

驚いたのは、どこが間違ってるのか指摘してくれたこと。これがAI教師というものか。無料で素早く正確。ちょっと不愛想だけど♪

   

200118l

  

「5行目にエラーがあって、セミコロンを忘れてる。7の右側」といった指摘なのだ。具体的で、いいね♪ ただ、もう1つのミス(Tenmeiの引用符を忘れてた)の指摘はそこまで分かりやすくはなかった。

  

200118m

  

    ☆     ☆     ☆

とにかく2ヶ所直ちに修正して、出力成功。パソコンで本格的に導入するのは大変な作業で結局失敗したけど、タブレットのアプリなら、あっという間だった。もちろん、いずれPCに再挑戦する予定(予定は未定♪)。

  

さあ、今週末は私もセンター試験の「受験」があることだし、そろそろ寝ることにしよう。ではまた。。☆彡

   

        (計 1569字)

| | | コメント (0)

プログラミング用Javaのインストール後、実行で失敗、「javaとjavacのバージョンが合わない?」トラブル

「Java(ジャバ)」は公式サイトから簡単にダウンロードできる・・というような話は前からあちこちで読んでたけど、たぶん実際には苦戦するだろうなと思って、今まで先延ばしにして来た。

  

実際に昨夜からチャレンジしてみると、予想以上の大苦戦で、もう4時間も経ってる。寝る時間だから、簡単に報告記事のアップだけしとこう。

      

ネット検索すると、同じようなトラブルがあちこちで報告されてる。ただ、今のところ、私の場合の問題を解決してくれる方法を、初心者用に簡単に説明してくれてるサイトを発見できてない。どこも単語や操作のレベルで敷居が高過ぎる説明だったり、話が省略されてて具体的にどうやるのか分からなかったりするのだ。

    

   

    ☆     ☆     ☆

さて、私は超初心者で、プログラミングというものは高校教科書のBASIC(ベーシック)をちょっと勉強した後、Progate(プロゲート)という学習アプリで少し学んだだけ。プロゲートでJAVAも演習してるけど、そこでは入力するだけで画面左側に結果が表示される。一番最初のプログラムの導入の話が無いのだ。

    

同じプログラミング学習でも、HTMLなら、メモ帳に書いてHTMLファイルとして保存して、ブラウザで開くだけ。以前やったBASICは、あらかじめプログラムをインストールしたけど、こんなに苦労することは無かった。

    

私がやった事を簡単に時系列に従ってまとめてみよう。まず、JAVAのインストール(のつもりだった)。確かに公式サイトの手続きは簡単で、Windows10パソコンにインストールするのも簡単。

   

ところが、これはプログラミングとは関係なかったらしい。「Java SE Development Kit」(システムエンジニア開発ツール?)というものをOracle(オラクル)HPからダウンロードしないといけなかったらしくて、私はトップに載ってたバージョン13をインストールした。「jdk-13.0.1_windows-x64_bin」というファイル名。

   

その後、環境変数というものを設定。やり方はあちこちに書いてるから省略。要するに、スタートメニュー → 設定 → 「環境変数」の検索 と進んで、「ユーザー環境変数」または「システム環境変数」を新規に作成する。ここがトラブルの原因(の1つ)になってるのかも。

   

   

     ☆     ☆     ☆

その後、スタートメニュー → 設定 → Windowsシステムツール → コマンドプロンプトと進んで、黒い画面のコマンドプロンプト(直接的な命令を書きこむ画面)を立ち上げる。

   

で、あちこちに書いてるように、javaのバージョンと、コンパイル用のjavacのバージョンが表示されることを確認。コンパイルとは、コンピューターが読めるようにファイルを変更すること。

  

200110b

  

そして、「Java」フォルダ内に「test」フォルダを作って、そこにメモ帳で作った簡単な java ファイル、「s

ample001.java」を保存(上図)。これはHTMLの時と似たような作業。

    

200110c

   

その後、コマンドプロンプトで「javac sample001.java」と命令すると(上図)、黒い画面では何事も起きなかったように見えるけど、新しいファイル「sample001.class」が出来てる(下図)。

  

200110d

    

ここまで、既に10回くらい躓(つまづ)いてるけど、それはクリアできたことだし、今日は省略。例えば、本当は関係ないのかも知れないけど、Javaの保存フォルダをデフォルト(初期)設定から変更したりした。それより問題は、最後のファイル実行なのだ。上手く行ってれば、「Hello World」という挨拶文が表示されるはず。

   

   

    ☆     ☆     ☆

ところが、「java sample001」と指示を入れると、長い英語のエラー表示が出てしまった。下図はその最初の部分で、全体の3分の1ほど。

  

200110a

   

Error: A JNI error has occurrd, please check your installation and try again ・・・・・・

   

要するに、実行しようとしてる対象のファイル「sample.class」のバージョンが新し過ぎると書いてるのだ。

    

それは新しいプログラム(Java Runtime)でコンパイルされたファイルで、バージョン57。ところが、そのファイルを動かそうとしてる主体の側のプログラム(jre ?)はバージョン52までしか認識できない、とのこと。

   

   

     ☆     ☆     ☆

そこで、JAVA関連を全て削除して再インストールしたけど、また同じエラー表示。「jre-8u231-windows-i586-iftw」というプログラムをまた公式サイトからダウンロードしたけど、何も変わらず。

   

以前の環境変数の設定が残ってしまってるからそれを変更するとかいう話も見かけたけど、普通の画面だと、選択はできても何も操作できなくなってしまってる。それをコマンドプロンプトで直接書き換えるというような話もあったけど、超初心者がそんな事まですると、マイナスのリスクの方が遥かに高い。

  

似た話で、昔作られたファイルやフォルダが変な場所に残ってるから、その名前を書き替えたら上手く行ったという報告もあった。ただ、これも同じ作業を私がやると、そもそも昔のファイルやフォルダは発見できない。もちろん、エクスプローラーで隠しファイルの表示をした上で、手作業と検索と両方で調べてみたけど、怪しいものは見つからないのだ。

   

   

    ☆     ☆     ☆

今、選択肢として残ってる方法は、jdkのヴージョンを古いものに変更することのみ。公式サイトで、少し古いもののダウンロードも出来るようになってる。ただ、名前や勤務先まで細かく登録してオラクル・プロファイルというものを作らないといけないようだし、こんな事までしなければいけないの?・・という疑問の方が大きい。

     

公式サイトから最新のものばかりをほぼ同時に導入して、どうしてバージョンが合わないなんてエラー警告が出てしまうのか? そんなに繊細な拒否反応を示すのなら、そもそも普通に社会で使う時にもトラブルだらけになりそうなもの。

   

というわけで、疲れ果てたから、もう寝よう。やっぱり、特殊な世界だなと改めて思い知らされた。案外、プログラミング用に安いパソコンを買って、一から全てやり直すのがベストかも。時間と労力をムダに使い果たして、深い溜息をついた所で、今日はそろそろこの辺で。。☆彡

   

       (計 2627字)

| | | コメント (0)

HTML&CSS初級編4~コンテンツ作りで完成、プログラムとページの全体図

開成中学の生徒がプログラミング言語を創って表彰されてる時に、大人が単なる初級記事を書くのも微妙だけど、小市民は我が道を歩むとしよう♪

  

191220a

   

学習アプリ「Progate」のHTML&CSS初級編がようやく終了。全く消化不良のまま、丁寧な誘導に従って、目標のページが完成した。上がアプリの図。下は私が自分で書き直したプログラムをブラウザ(IE)で開いた様子。微妙に違うのは、ブラウザの種類や設定の問題か。大見出しの活字と送信ボタンのデザインが違う。

   

191228a

   

なお、これまで書いた関連記事3本は、以下の通り。

 

 プログラミング学習アプリ「Progate」~HTML&CSS初級編

 HTML&CSS初級編2

 HTML初級編3~CSS、メモ帳で簡単作成

  

      

    ☆     ☆     ☆

さて、今回最後に作るのはメインの内容で、ページ中央のカラー画像と、すぐ下の入力フォームの箇所だ。作る箇所全体のhtmlファイルはこんな感じになる。

  

191228b

   

時間に追われて急いで入力したら、数ヶ所間違えてて、間違い探しで余計に時間を使うハメになってしまった。タグのカギカッコが1個不足、二重引用符が1個多過ぎ、英単語の綴りの間違い。反省しよう。

  

作る箇所全体のCSSファイル(スタイルシート)は下の通り。

  

191228c

   

   

    ☆     ☆     ☆

まず上半分の画像の箇所、「学べるレッスン」のエリアの入力。同じパターンが4回続くから、始めの2回だけ見る。改行を入れて見やすくした。

  

191228e

   

最初に、「section-title」(セクション・タイトル)で小見出しを入力。次に「contents-item」(コンテンツ・アイテム)として、4つの画像の保存場所を「img src」タグで指定、画像の下の名前はpタグで入力。画像の場所は、プロゲートがアマゾン・ウェブ・サービス(aws)で確保してるものだ。場所の入力が長くて面倒だから、当初は2ヶ所も間違えてた。

   

CSSファイルは次の通り。htmlの各要素には、border(ボーダー:初期状態では表示されない枠線)が取り囲んでて、その内側の余白領域がpadding(パディング:枠と要素の間に挿入する空きスペース)、外側の余白がmargin(マージン)。こうした構成をボックスモデルと呼ぶ。

       

191228f

   

191228g

   

   

    ☆     ☆     ☆

続いて、下半分の入力フォームの箇所、お問い合わせのエリアの入力。下がhtmlファイルの該当箇所。一番下のdivタグは、「main」部分全体の締めくくりで、その下はもう「footer」(末尾)に変わる。

  

191228h

  

imput(入力)とかtextarea(テキスト入力箇所)のタグは非常に簡単だけど、送信ボタンの指示が分かりにくい。classの指定を省いて、単に「input type・・・」と簡略化してもいいようだ。

   

CSSファイルは下の通り。余白や枠の指定が面倒に見えるけど、慣れの問題か。同レベルの操作なら、普段のブログ記事作りや画像処理で普通にやってることではある。

  

191228i

   

    ☆     ☆     ☆

今回作った箇所だけ改めて表示しとこう。こういった話を知ってしまうと、自分のブログ記事の入力をアレンジしたくなるけど、「生兵法はケガのもと」。実力と自信を付けるまでは自重しよう。

   

191228d

     

今後、自分ひとりでこのプログラムを再現できるように復習する予定。ではまた。。☆彡

  

       (計 1344字)

| | | コメント (0)

より以前の記事一覧