2018年3月17日土曜日

Scratchでプログラミング その25 うまく動かないときの対処方法(全角や空白に注意)

Scratchの使い方解説です。
せっかく作ったプログラムが、うまく動かないときの対処方法について


せっかく作ったプログラムを実行してみたとき、うまく動かないことってありますよね?
そんなときの確認事項について


これはネコがグルグル回転するプログラムです。
ネコをクリックすると回転方向が反対になります。

ですが、これはネコをクリックしても回転方向が変わりません。
なぜでしょう??


※このプログラムはバグを含めて、正しく動かないようにしています。
実際のソースはこちらから確認してください。
中を見るボタンをクリックすると、プログラムのコードが確認できます。


1.問題がありそうなのは左右のどちらのブロック?

旗をクリックした時点で、ネコは右方向に回っています。
ですので、左側のブロックは正しく動いています(と仮定します)


2.部分的に実行してみる。

スプライトをクリックしたときに変数が1になれば、回転方向は変わるはずです。


そのまま実行したまま、個別に実行したい場所のブロックを抜き出してみます。
今回は「変数1を1にする」を抜き出してみました。
抜き出したブロックをダブルクリックすると、ネコが反対方向に回りだしました。

ということは、このコマンドは正しそうです。

残る怪しい場所は、
「もし変数1=0なら」
の部分ですね。
どこがおかしいんでしょうか?


 3.制御式の値に注意!

実は、この「変数1=0」の0という数値が、半角の0ではなく全角の0となっています。
見比べてみると、

半角のゼロ → 「0」
全角のゼロ → 「0」

ぱっと見は同じですが、プログラムの世界では全くの別物です。

数値だけではなく文字も同じように全角と半角に区別があります。

アルファベットの場合
半角のA → 「A」
全角のA → 「A」

空はく(スペース)の場合
半角の空白 → 「 」
全角の空白 → 「 」

こういうのも気づきにくいですね
ただしい文字列 → 「あいうえお」
先頭や文末や空白を含んでいる → 「 あいうえお 」
なかに空白を含んでいる → 「あいう えお」 


2018年3月16日金曜日

Windows10に.Net Framework 3.5をインストールする方法

Windows10はデフォルトで.Net Framework 4.6がインストールされていますが、.Net Framework 4.6は.Net Framework 3.5との互換性がありません。

そのため.Net Framework 3.5が必要なアプリケーションを起動すると、
.Net Framework 3.5をインストールするように通知が表示されますが、エラーが発生しインストールされませんでした。。。

.Net Framework 3.5のインストールは、コントロールパネルのWindows機能の有効化または無効化から機能追加もできるのですが、こちらも同様のエラーとなります。

エラーとなるのは同じ状態でWindowsUpdateからのデータ取得時に0x800F081Fというエラーコードで失敗していました。

.Net Framework 3.5の再配布可能パッケージを直接ダウンロードしてインストールすることも考えたのですが、インストールしようとすると「インストールには.Net Framework 3.5が必要です」というトンチのようなメッセージが・・・orz


どうやらセキュリティパッチのKB2966828が悪さをするらしく、このパッチを適用すると.Net Framework 3.5のインストールができません。
残念なことに、私の使用していたWindows10では、このパッチを適用した形跡もなかったのでパッチのアンインストールも出来ません。。。


以下のサイトには、その他いろいろな対処方法が掲載されています。

私の場合、このサイトの方法では、不十分な部分があったので、覚書として掲載しておきます。


対処法

まずはMediaCreationToolをダウンロードします。
ここでISOイメージを作成するのですが、0x80072F76 - 0x20017 エラーとなりISOイメージが作成できませんでした。

このエラーの対処は以下のサイトを参考にしました。

MediaCreationToolを右クリックし、「互換性のトラブルシューティング」を選択して、推奨設定で実行(テスト)すると、エラーとならずISOイメージを作成できました。

作成したISOをVirtual CloneDrive でマウントしました。

管理者権限でWindowsPowerShellを起動して、以下のコマンドを実行します。

Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All -Source "D:\x64\sources\sxs" -LimitAccess

ドライブ(D)は各自の設定に置き換えてください。
Sourceのパスはmicrosoft-windows-netfx3-ondemand-package.cabのあるフォルダを指定しました。

これで、無事インストールできました♪

2018年3月15日木曜日

プログラミングをするために必要な環境

プログラミングを今から始めたい方の、
「とりあえずパソコンを買いたいけど、どんなものを買えばいいの?」という疑問について私なりの考えをまとめています。

1.OSはWindows

基本的にはWindowsを選択するのがベストだと考えています。
なんだか世の中にはmacやLinuxを使うことをお勧めするような方も居るようですが、何故でしょう??
その方々の主張としては「Windowsで作ったものはmacやLinuxで動かない」とか「文字コードがナンチャラカンチャラ。。。」ということを言っているようです。

えぇと、、、そんなこと重要??

今からプログラムを勉強したい人にとって、自分で作るプログラムがLinuxやmacで動く必要はないと思います。
それよりも大切なのはストレスなくプログラム作りに専念できるか?
そして、どれだけ参考にできるサンプルコードやアプリが公開されているかではないでしょうか??


趣味でプログラムをするのであれば、WindowsならVisualStudioが無償で使えます。
VisualStudioはC♯など複数の言語に対応した開発ツールです。
(macにもVisualStudioはあるようです)

C言語の勉強などを独学でした方には、コンソール画面でソースをコンパイルするような作業をしている方もいると思います。これはかなり効率が悪いです。
ちゃんとした開発ツールを使えば、コンパイル時のエラーなども確認できます。せっかく便利なツールがあるのだから必ず使うべきです。
ちなみに、JAVAであればeclipceを使うことになると思います。

同様に、会社の業務の効率化のためにプログラムを勉強したいと考えている人も、Windowsを使うべきだと思います。皆さんの会社では通常業務でLinusやmacを使用されているでしょうか?
日本では基本的にWindowsを使用されていることが多いのではないかと思います。
通常業務の補佐的なプログラムを作るのであれば、日ごろ使っているWindowsでプログラムしたほうが良いですね。

会社のサーバがLinuxで、そこで使用するプログラムということなら話は変わってくるかもしれません。
ただし、プログラム初心者が会社のサーバで動くプログラムを組み込むというのは、私が上司なら絶対に許可しませんね(笑

Windowsであれば、窓の社Vectorなどのサイトには先人たちが作ってきた多くのアプリケーションが公開されています。
他の人が作ってきたアプリケーションを使って仕組みを考えることは、プログラミングの参考にもなります。

最近ではスマホでプログラミングを始めたいと言う方も居るようです。
実際にiphone用のScratch jrというのも存在します。

こちらも、個人的にはあまりお勧めできません。
プログラミングは複雑になるにつれて膨大なコードを書くことになります。
コードの全容を理解するには、ある程度以上の画面サイズは必要だと思います。
スマホやタブレットでは、自分でコードを見直すことも難しいと思います。


2.ノートパソコンではなくデスクトップ

もしかしたら、お洒落なカフェでプログラミング。。。のようなことを想像していませんか??

プログラミングは断然デスクトップパソコンが良いです。
第一にディスプレイのサイズは重要です。個人的にはCPUやメモリよりも重要です。

スマホでのプログラミングについてでも書きましたが、一度に目視できるコードが少ないと効率が悪くなります。
また、ネットでサンプルコードを見ながらプログラムすることもよくあります。
そんなときに小さな画面だとサンプルと自分のプログラムの比較も大変です。

プログラムはメソッドや関数と呼ばれる単位で処理を記述します。
このメソッド内の処理が1画面に表示されないものは読むのがとても大変です。
(「大きすぎるメソッドを作らないこと」を意識するのはプログラマの基本です。)

それに、ノートパソコンは使っていると、なんだかんだ重くなってくるのでお勧めしません。高い性能は不要ですので、是非、デスクトップパソコンを使用してください。

Google+とtwitterにブログの投稿を連動してみました

Google+とtwitterにブログの投稿を連動してみました。
うまくいくかな・・・?



うまく動いたので参考にしたサイトを紹介しておきます♪

ブログというより備忘録 
Bloggerのブログの更新に連携・連動してTwitterに自動投稿