IF関数とVLOOKUP関数でソーシャルディスタンス!

本日はExcel関数の中でも特に使用頻度の高い、IF関数とVLOOKUP関数の合わせ技を掲載します。

これに慣れておくと、「Excelの関数だったら、是非、あなたにお任せしたい!!」と、安心してお仕事を任せて貰える可能性が高まりますので、宜しかったらご覧下さい。

また、VLOOKUP関数で対応するメッセージを図形描画した吹き出し図形の中にも表示させる方法も掲載致しました。

まず、E列、F列にこの様に入力します。
E4の所に、「前の人との距離」と入れて、他も用意しました。



E7に「メートル」、F7に「セリフ」と入力します。
肌色のセルのE8〜E10には、それぞれ「1 , 2 , 3」と数字を入力します。(中央揃えをしています。)
その隣のF8〜F10にそれぞれのセリフを入れます。

ここまで準備が出来たら、E5にリストを設定します。

まず、E5にプルダウンメニューを作ります。
データタブ → データの入力規則 → 設定
で、入力値の種類を「リスト」にします。

このリストの範囲として、
メートルの下の肌色のセルのある、E8〜E10をドラッグしてOKを押します。

これで、Windowsの方は、「Alt」+「↓」、Macの方は「option」 + 「↓」で、リストが選択出来るようになり、前の人との距離のメートルが1m,2m,3mを選択出来ます。

リストを作ったセルの右隣の黄色いセル、F5に、

=IF
(E5が空欄だったら,空欄を返して,
そうでなければVLOOKUP
(前の人との距離,F8〜F10のセリフ範囲,2列目,完全一致のFALSE))

という意味になる、

=IF(E5=””,””,
VLOOKUP
(E5,$E$8:$F$10,2,FALSE))



と、式を入れます。
これは、距離(メートル)、1,2,3に対して、対応するセリフを返す処理をしています。

今回は絶対参照にしなくても良いのですが、実務では表の範囲は固定しないと、他のセルに式をコピーした時に範囲がずれてしまうので、ここでもE8:F10に[F4]を押して$マークを付けて絶対参照にしています。

これで、距離に応じたメッセージが表示されました。

お疲れ様でした。
ここで一旦、写真で休憩を挟みます。

写真は、目白庭園という日本庭園で、紅葉のライトアップの時に撮影したものです。

最後に、挿入メニューから図形描画で好きな図形を挿入して、その図形の中にVLOOKUP関数のメッセージを表示させます。
私は吹き出しを描画しました。

図形描画のショートカットキーは、
[Alt] → [N] → [S] → [H] が便利です。

ここで、描画した図形をクリックした状態で、「=」とイコールを押して、
黄色いセルのF5をクリックしてEnterを押すと、

この様に、吹き出しの中にメッセージが表示される様になりました。

リストで選択する数字を変えると、吹き出しの中のセリフも変わります。

お疲れ様でした。
ここで一旦、写真で休憩を挟みます。

写真は、地元東京都足立区の桜です。




Excelもスプレッドシートも、学ぶ範囲が広すぎたり、自分が頑張って勉強してもあまり実務に役に立たなかったりということに悩んでおりました。

その悩みを解決する本を見つけましたので、早速紹介させて頂きます。
最近の学びでは、本と動画が連動していて、本にQRコードが付いていて、YouTube動画で講師の方が分かりやすく説明して下さる、「本×動画」という新しい学び方に目から鱗でした。

動画登録者20万越えの教育系YouTuberでお馴染み、Yousefulの長内孝平氏、神川陽太氏のExcelとスプレッドシートの本では、「現場の教科書」というタイトルが付いてある通り、実務に直結した内容をまずは本で要点を掴んで、動画で詳しく解説して下さっています。
個人的にはお二人の動画最後の「See you next time! Bye Bye!!」が好きで勉強のモチベーションが上がる教材です。

講師の長内氏も神川氏も私よりもだいぶ若い方ですので、私にとってはまさに中高年の学び直しという感じですね。

若い方から教わることに抵抗のある方もいらっしゃるかも知れませんが、Yousefulの講師の方は親しみやすいので大丈夫です!

ロスジェネ世代の方達は、いずれは若い方から学び直しなどで教わることも沢山出て来ると思います。
ですので、本や動画を通して若い方から教わることに慣れて置くというのもこれからより良く生きる為に役立てると私は考えております。

できるYouTuber式 Excel現場の教科書
ビジネス教育系ユーチューバー長内孝平氏

ベストセラー1位に輝いたExcelの本です。
長内氏はMicrosoft本社が公式で認めるテクノロジーの専門家であり、徹底的な分かりやすさで語りかけるように動画でExcelを教えて下さっています。
学習用のサンプルも付いています。

できるYouTuber式 Googleスプレッドシート 現場の教科書
神川陽太氏 & 長内孝平氏

この本には、スプレッドシートだけでなく、Excelではどう解くのかも書かれているので、スプレッドシートとExcelの復習を同時に行いたい方には、かなりオススメです!
教材のサンプルのスプレッドシートは閲覧用ですが、コピーをして自分のスプレッドシートに貼り付けて演習を行うことが可能です。

皆さま、大変お疲れ様でした。
この記事最後のブレイクタイムPhotoは・・・

立川市の昭和記念公園の、サンフィニティという小ぶりの向日葵の写真です。

仕事や勉強のリフレッシュに、趣味で写真を撮っておりますので、宜しかったら フォトストック写真ACさん の投稿もご覧頂けますと、大変嬉しい限りでございます!!

こちら、無料の「ダウンロードユーザー」に登録して頂けると、無料で写真のダウンロードが可能になります。

※ 先にGoogleアカウントを作成して頂くと、登録が ラク です♪

写真素材素材【写真AC】

 

最後までご精読、誠にありがとうございました!!

最後までお付き合い頂き、誠にありがとうございました!!

■ 関連記事 ■

自己紹介



取りあえず事務職で働きたいから手っ取り早くExcel教えてくれに戻る

初めてのGoogleスプレッドシート

急にプレゼン資料を作ることになったから手っ取り早くパワポ教えてくれ

Wordのポイントを手っ取り早く教えてくれ!!!



コロナ禍・アフターコロナのテレワーク対策(Google Workspace)に戻る



メインメニューに戻る

06For Nextループその2 ExcelVBAで密です!ソーシャルディスタンス!!

新型コロナが2類から5類に引き下がり、イベントでは「密です!」状態ですね。
ExcelVBAで単純ながら、密ですゲームみたいなものを作ってみました。

ボタンを2つ作ります。
1つ目のボタンは「密です!!」、2つ目のボタンは「ソーシャルディスタンス」です。
ボタンを押したらプログラムが動くようにします。

先に、これからコーディングするプログラムの実行結果の画面を掲載します。
ボタン「密です!!」を押すと、

このように「人」が密集します。
3密ですね。

では、ボタン「ソーシャルディスタンス」を押します。

で、このように感覚を空けました。

各ボタンについて解説します。

●「密です!!」ボタン
Range(“A1:K11”) = “人”で、セルA1からK11までの全てのセルに、「人」という文字を入れます。

●「ソーシャルディスタンス」ボタン
一旦シートを、Cells.Clear でクリアをしてから、Range(“A1”).Select で、ホームポジションのA1を選択して、この位置を基準をして、2行2列置きに「人」を入れて間隔を保ちます。

カウンタ変数の行をi、列をjにします。
(ここで、カウンタ変数って何? ループまだちょっと自信がないよ!と言う方は前回の記事の、はじめてのFor Nextループ をご覧下さい)

カウンタ変数iは外側のループで行(縦)を操作、jは内側のループで列(横)を操作します。

外側のループを固定して、内側のForループでjを2つずつ増やし、内側のループを抜けてから外側のループでiを2つずつ増やします。

コードは以下のようになります。

● ボタン「密です!!」に登録するコード

Sub 密です()
 
'セルA1からK11まで「人」で埋めつくして密にする
Range("A1:K11") = "人"

End Sub

● ボタン「ソーシャルディスタンス」に登録するコード

Sub ソーシャルディスタンス()

' カウンタ変数iとjを宣言する
Dim i As Integer, j As Integer

' シートをクリアする
 Cells.Clear

'セルA1を選択する
Range("A1").Select

'外側のループでiを0から10まで2ずつ増やす
For i = 0 To 10 Step 2

    '内側のループでjを0から10まで2ずつ増やす
    For j = 0 To 10 Step 2
    
     'セルA1を基準として、下にi、右にj分移動したセルをアクティブにして「人」と言う字を入れる
      ActiveCell.Offset(i, j).Value = "人"
      
     '内側のループjを進める
     Next j
     
' 外側のループiを進める
Next i

End Sub

コードが書けたらボタンを作成します。
ボタンは、開発タブから作れます。

Windowsの場合は開発タブは、任意のタブを右クリックして「リボンのユーザー設定」の右側のメニューからチェックで表示できます。

または、ファイル → オプション → リボンのカスタマイズ → リボンの設定 から表示する方法もあります。

Macの場合は、Excel → 環境設定 → 表示 → 一番下あたりの開発タブにチェックを入れます。

以下の様に感じにシートを用意して、ボタンを2つ作ります。

iとjの挙動が分かり辛い場合は、外側のループのiをコメントアウトして、i=0で固定して、内側のループのみ動かしてみると少し分かりやすくなるかも知れません。

 'i= 0で固定して内側のループのみを動かす

Sub ソーシャルディスタンス()

' カウンタ変数iとjを宣言する
 Dim i As Integer, j As Integer


' シートをクリアする
Cells.Clear


'セルA1を選択する
Range("A1").Select


'外側のループでiを0から10まで2ずつ増やす
'For i = 0 To 10 Step 2  ←コメントアウト

    '内側のループでjを0から10まで2ずつ増やす
    For j = 0 To 10 Step 2
    
     'セルA1を基準として、下にi、右にj分移動したセルをアクティブにして「人」と言う字を入れる
     ActiveCell.Offset(0, j).Value = "人" ' ← iを0にする
     
     '内側のループjを進める
     Next j
     
' 外側のループiを進める
'Next i  ←コメントアウト

End Sub

すると、(i,j)は(0,0)、(0,2)、(0,4)・・・(0,10)とセルを移動するので、この様な実行結果になります。

また、iを2にすると、
(i,j)は、(2,0)、(2,2)、(2,4)・・・(2,10)と移動するので、

この様になります。

二重ループは慣れるまでちょっと時間がかかりましたので、私は外側のループをコメントアウトして固定をしてみた所、だいぶ解きほぐれて来ました。

二重ループに悩まれていらっしゃる方の一助になりましたら幸いでございます。

皆さま、大変お疲れ様でした。
この記事最後のブレイクタイムPhotoは・・・

立川市の国営昭和記念公園で撮影した小ぶりのひまわり、サンフィニティです。

仕事や勉強のリフレッシュに、趣味で写真を撮っておりますので、宜しかったら フォトストック写真ACさん の投稿もご覧頂けますと、大変嬉しい限りでございます!!

こちら、無料の「ダウンロードユーザー」に登録して頂けると、無料で写真のダウンロードが可能になります。

※ 先にGoogleアカウントを作成して頂くと、登録が ラク です♪

写真素材素材【写真AC】

 

最後までご精読、誠にありがとうございました!!

自己紹介


VBA自作サンプルプログラム集へ戻る

取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ


MOSなどの資格試験対策

平成30年春

この記事では、基本情報技術者試験の過去問を解いて、午前の点数と午後の学習ノートを公開しています。
字はかなり下手(でも汚くはないと思う。)ですが、午前87%、午後90%の一発合格ですので、もしかしたらお役に立てるかもしれません。

■ 関連記事 ■

基本情報技術者試験トップへ戻る
令和2年FE合格報告

アルゴリズム攻略法
午後試験対策おすすめ参考書
CBT試験
午前免除

◆ 午前 2020年5月25日(月)
  61/80…76点

テクノロジ系…36/50…72%
マネジメント系…8/10…80%
ストラテジ系…17/20…85%

◆午後 8月28日(金)から8月30日(日)の期間に分けて解きました
※点数は、配点を問題数で割って正解数をかけて計算しました。
※令和2年10月18日受験
合計75点

セキュリティ…9/12
ハードウェア…12/12
データベース…9/12
ネットワーク…6/12
ソフトウェア設計…9/12
アルゴリズム…20/20
CASL2…10/20

◆午後のトレースなどのノート公開
過去問を解いて、解き方を自分が分かるようにまとめたノートを
出来る範囲で公開します。

●セキュリティ

●ハードウェア

●データベース

●アルゴリズム

●ソフトウェア設計

●ネットワーク

●アセンブラ

メインメニューに戻る
資格トップへ
基本情報技術者試験トップへ
令和2年6月、午前免除を受けました
息抜きに、写真で癒し(=^・^=)

挫折経験者が語る!!これからプログラミングを始められる方へ

この記事は、「プログラミング初心者」の私の立場から、「プログラミング入門者」の方、挫折したけれど今日からまたプログラミングプログラミングに再挑戦したいに向けて、届けたいメッセージをを中心に書いています。

たまにTwitterなどのSNSで見かける、いわゆる「意識高い系」のプログラミングの先輩の「初心者を不安にさせるアドバイス(??それとも自慢??)」についても、「初心者目線でそれをどう捉えて、どのように行動に移して行ったのか、プログラミング初心者から見た意識高い系の先輩はどう見えるのか」についても書きました。

想定している読者様は、

●これからプログラミングを始められる方
●(何度か)挫折してしまったが、もう一度、もう2度・・・リトライされたい方

になります。

また、プログラミング挫折経験者の立場から、学習するプログラミング言語の順番や、学習コンテンツのドットインストールとpaizaラーニングの比較についても書いています。プログラミングの単調な文法習得を少しでも楽しめる方法や、プログラミングは暗記なのか、暗記では無いのか学習に便利なツールについても触れています。

私の自己紹介はこちらからご覧になれますので、ご興味のある方はご覧頂けますと、大変喜びます!!

プログラミングを学習するのに、王道とも言われている順番があることを知りました。
先に結論を書きますと、

1.HTML
2.CSS
3.JavaScript
4.PHP

になります。

個人や目的によって、変わってくるのでこれが全てではありませんが、迷っている方は参考にしてみても良いでしょう。

私は、順番について全く考えておらず、比較的文法が簡単だと言われているPythonで、Kivyというフレームワークを使って、iOS及びAndroidのアプリ制作を目標にして、プログラミングを学習していましたが、基礎文法を習得した後の学習につまずき、その後機械学習に挑戦するも難しすぎて混乱して、やりたいことを見失い、見事にプログラミングに挫折をしてしまいました。

この時点でプログラミングは向いていないのだから、さっさと諦めて新しいことでも始めようという選択肢も思い浮かびましたが、それでは基礎文法をほぼ習得したのに費やした時間と労力が報われないと悩みました。

そこで、アプリ制作という目標から、他の目標に方向転換してでも、プログラミングの学習を続けたいと考えるようになりました。

これについては、プログラミングは作りたいものを作るための「手段」であり、プログラミング学習を「目的」にしてしまうのは良くないという考え方があることを十分理解した上で、それでもプログラミングを続けたいと私は選択しました。
そこで、「Web制作」に方向転換をして、それを新たな目標にしました。

ではなぜ学習順序でHTMLが1番最初に来ているのか考えてみたいと思います。
HTMLは比較的学習の難易度が低い上に、書いたコードをブラウザで見て視覚的に確認することが出来ます。今自分が書いたコードが結果として反映されるのを成果物として見ることが出来るので、モチベーションが保ちやすくなります。

また、コードを書くのにVSCodeなどのエディターを使うので、プログラミング初心者の段階からVSCodeに慣れ、次のステップに進みやすくなります。
それでは具体的な学習方法に入って行きます。

プログラミングの学習方法の中でも最も敷居が低い勉強法は、学習コンテンツによる動画レッスンです。その中でもドットインストールpaizaラーニングについて簡単に比較してみます。

私は2年間paizaラーニングを使って、スキルチェックと呼ばれる様々な問題を解いてBランク(中級プログラマ)まで獲得したのですが、自分の方向性が変わったので、paizaラーニングを退会して、現在はドットインストールのプレミアム会員(有料会員)になっています。それでは両方使った者の立場で、それぞれのサービスを比較していきます。

●paizaラーニングが向いている方
・特に「この言語」と決めていない
・環境構築無しで色々な言語を試してみたい

・アニメのキャラクターと楽しく勉強したい
・問題集やスキルチェックに挑戦して技術を磨き向上させたい
・エンジニアとして正社員でスカウトをもらって働きたい

paizaラーニングについて補足しますと、動画学習では演習課題があり、スキルチェックではDランクからSランクまでランクアップを目指せる様々な実践問題や、スキルチェックに挑戦するのに「計算ドリル」のような感覚でコードを書いて学べる、「レベルアップ問題集」も用意されています。

関連記事:paizaレベルアップ問題集をPythonとGASの両方で解いてみた集

●ドットインストールが向いている方
・具体的に学習するプログラミング言語を決めている
・環境構築がある程度済んでいる
・1回3分程度の短い動画で効率よく学びたい
・副業やフリーランスとして稼げるようになりたい
・ポートフォリオの作り方を学び、実務にいち早く活かしたい

paizaラーニング、ドットインストールの両方に共通していることは、「無料レッスン」があることです。この記事を読んでも、私の文章力不足の為、どっちが自分に合うのか正直分からない方もいらっしゃると思います。両方の無料レッスンを受けてみて、こっちかな、と思う方に決めるという手もあります。

関連記事:ドットインストールの学習ロードマップとレッスンの感想

● プログラミング学習が楽しくなる方法 ●

プログラミング学習において、C言語だったらprintf文、Pythonはprint文、JavaScriptはconsole.logやalert、HTLMではpタグやh1タグなどのタグで出力をする機会が相当多いでしょう。そこで、

「私は天才プログラマー!!!!!!」
「俺は超イケメンで女にモテまくり!!」
「私はめちゃめちゃ美人で可愛い!!」
「私はキムタクと超ラブラブ!!」

橋本環奈は俺の嫁!!

など、出力文に自分を褒める言葉や、好きな方とリア充ラブラブになるような言葉を入れてみましょう。
それを何度も繰り返すことで、自分に自信が付きますし、幸せで楽しい気分になれます。

プログラミング学習は、頭脳よりも「どれだけ折れない心を持って自信を付けて保って、更にアップしていくか」が大事です。
キムタク(=木村拓哉さん)や、橋本環奈さんに限らず、好きな芸能人や、または絶対人に見られないのであれば、学校や塾、バイト先、職場で好きな人の名前を入れてもOKです。

定数や変数に例えばJavaScriptでしたら、

const genius='【私は天才プログラマー!!!!!】';

などとして、console.logを使うタイミングで、定数geniusをテキストの文字列に「+」で連結して表示させると便利かも知れません。
そうすることで、「受け身」から「能動的な学習」に変わって行きます。
私は、この定数geniusをグローバル領域に定義しています。

人前で「私は美人で可愛い」、「俺、超イケメン!」なんて言ったら、「この人危ない人かも・・・」って思われるてしまいますが、自分のプログラミング学習の環境で、人の目に触れないのであれば、あなたはいくらでも自分のことを褒めて、自信を持っても良い方だと思います。

これから先、printf文、print文、console.log、alert、pタグ、h1タグなどのタグはいくらでも出てくるので、そこで可能な限り自分自身を褒める、ハッピーな気分になれるメッセージを入れて、単調な文法でも出来る限り遊びの要素を取り入れて楽しんで勉強してみて下さい。

これは、単なる「おまじない」に止まらず、以下のような効果があることを、基本情報技術者試験アルゴリズムの正答率が88%取得した者の意見として申します。

頭の中で変数、定数の値を自然に追えるようになり、ループの中でどう動くのか、条件分岐ではどっちに分岐するのか、どの関数(メソッド)に引数が入って、戻り値はどのようになり、実行結果にどのような影響を及ぼすのか、プログラムの流れをトレースする習慣が自然と身に付くのです。

プログラミングとトレースは切っても切れない関係なので、本を写経しているだけだと、自分のスキルが付いているのか自信がない・・・という方は、是非とも自分褒めメッセージをプログラムの中に組み込んで、積極的にプログラムをトレースする習慣を付けて下さい。

また、そのことを実行前に行うと、事前にエラーを発見しやすくなるというメリットまで得ることが出来ます!!これは、プログラミング学習を効率よく進めやすくなる効果まで発揮できることになります!!
(エラー文を調べることで、人は成長するのは分かりますけれど、出来る限り、サクサク学習を進めたいですよね。)

子どもの頃から、「スクラッチ」などのプログラミング言語を始めている今の子どもたちは、プログラミングが出来ると、先生やパパさんママさんから沢山褒められるかと思います。

しかし、子どもの頃にプログラミングに触れる機会が全く無い環境で育って、大人になってからプログラミングを始めると、褒められて伸びると言う機会は子どもに比べて極端に少なくなります。

そうすると、学校でプログラミングが学べる環境の子どもたちと、大人になってからプログラミングを始めた私たち昭和生まれの中高年とでは、ますます差が開くばかりです。なので、プログラミングの学習を通して、可能な限り自分で自分を褒めて伸ばしてあげて下さい。(世の中冷たいもので、頑張って勉強していても、現実は誰も褒めてなんてくれませんから・・・。)

先ほど、基本情報技術者試験の話をしましたが、私は基本的にはプログラミングに資格は必要ないと考えています。興味のある方はこちらの記事をご覧ください。

● プログラミングは暗記??暗記じゃない?? ●

プログラミングの先輩の中でも、私に直接的に影響のある方(仮に、A先輩とB先輩とします)から、プログラミングは暗記なのか暗記ではないのか意見が別れている為、初心者の私は少々混乱してしまいました。

(A先輩とB先輩の個人情報保護の為、多少表現は変えています。また、アドバイスを聞いた順番で、最初に教えてくれた先輩をAさん、次に教えてくれた先輩をBさんとしています。どちらも大変お世話になっている尊敬している方です。)

A先輩曰く、「プログラミングは暗記!」まず、覚えていないと、そもそもコードが書けない。私がプログラミングでフリーランスとして月100万円以上稼げるようになったのは、コードを何回も書いて覚えたから。プログラミング学習の専用ノートを作って何回も見直して、模写出来なかった所は何回もコードを打ち込んで体で覚えること。

B先輩曰く、「プログラミングは暗記では無い」覚えるよりも実際に手を動かして簡単なプログラムを作ってみる。プログラミングは暗記ではなくて「身につけるもの」である。コードを書く時は試行錯誤して「どのようにプログラムが動作していくのか考えてプログラムの流れを掴み、トレースをすることが大事」であり、そこに比重を置いて学習を進めて行くことがプログラミング上達の近道である。

と相反するような、それでいて共通する部分もあるようなアドバイスを頂きました。
どちらも既にプログラマーとして既に大きな結果、実績を出している方です。

人間でも動物でも「刷り込み効果」というものがあって、「最初に見たものを親」だと思ってしまう傾向があるようです。
なので、A先輩のアドバイスが私の脳裏に深く刻み込まれていましたが、B先輩のアドバイスも論理的に考えて正しいと私は思います。

で、結局どっちなの!?プログラミングって暗記なの?暗記じゃないの????って、ことで私はかなり悩みました。

そこで、「折衷案」つまり、両方の先輩方のアドバイスの中間や共通している所を取ることにしました。
具体的には、入門書でプログラミングの模写をする前に、「これは何をするプログラミングなのか」を1〜2行程度の短いコメントで書くようにしました。例えば「文字列を検索して下線を引く処理」など、何をするプログラミングなのか、コードを書く直前にコメントで書いてから、実際に入門書の模写コーディングをしました。

また、ノートを取るのではなく、私が知らないメソッドやオブジェクトが出てきたら、例えば、「getName()は名前を取得するメソッド」などと短いコメントを入れるようにしました。ノートを取る代わりに、コメントにメモ書きというふうに学習方法を変えました。

コメントを書く際、きっちりコメントを書くというよりも、「自分が分かる最小限のコメント文でまとめて、コメントにかける労力を最小限にして、その分を”思考して理解をすること” に回す」ようにしています。

更に、暗記科目みたいにガチガチに「さぁ、覚えるぞ!!」と力むのではなく、プログラミングの処理をざっとこんな感じに動くんだろうな・・・と頭の中でイメージすることにしました。これは、プログラミングのトレースをもっとふんわりさせた、気軽にやれる感じで、コーディングしながらイメージをして学習しています。

● お節介な先輩学習者 ●

「本でコードを模写するよりも、自分で何かアプリを作って、検索(ググりながら)勉強した方が実力が付く」などとTwitterで呟いている先輩学習者もいます。

しかし、プログラミングを始めたばかりの方は、入門書やドットインストールなどの学習コンテンツの通りに動かすだけで、一杯一杯でヘトヘトなかつての私のような方もいます。

そんな時、「本を写しているだけの私はダメなんだ・・・」って落ち込んでしまったこともありましたが、そういう先輩は大きなお世話だ!!って今となっては断言できます。

初心者に自慢して、マウントを取りたいだけでしょうか?
それはアドバイスではなく、クソバイスです。
そんな時間があったら、自分のスキルを磨きましょう。

マウント取りアドバイスのもう一つに、「学習コンテンツを何回も回っていないで、さっさと成果物を作れ!」というのもあります。
1番良く無いのが、「プログラミング学習をやめてしまうこと」なので、自分が納得して続けられる方法でないと勉強がしんどくなってしまいます。
勿論、スランプや体調・家庭の事情などで、プログラミング学習を中断してしまうことは仕方のないことですが、そうでないなら、なるべく自分に合った納得の行く方法で学習を続けることが望ましいです。

また、print文などの出力を覚えたての人に、「そこは関数を使ってこう書くとスムーズになる」と言われるのも、初心者の立場からしたら、勘弁して欲しいです。

確かに基礎文法をある程度習得するとその通りだと納得するのですが、初心者の段階ではそのアドバイスでは混乱するだけですし、初心者にとっては、print文を書いてそのコードを人前に晒すだけでも、物凄い勇気のいることなんです。混乱によって挫折のリスクも高まるかも知れません・・・。

「あ、この人、初心者ながら頑張っているんだな・・・」と余計なことを言わず、温かい目で見てあげて下さい。
そうすると、必ず基礎文法を習得して、関数を使って処理をまとめて呼び出すことや引数を自在に使って出力結果を変えることも自分で出来るようになりますから。

プログラミングに限らず、スポーツでもダンスでも楽器でも、その段階、段階に応じて、必要な工程が異なります。

今の自分の段階、レベルに合った方法で学んでいくことが最も挫折しずらいですし、そういう余計なことを言う先輩のせいでプログラミングに挫折してしまうのは余りにも勿体無いと思います。

なので、プログラミングの先輩方に初心者の私から申し上げたいとは、余計なアドバイスをせずに「温かい目で見守ってあげること」が、最も成長を促すのではないかと私は思います。

くどいようですが、アドバイスは「段階に応じて」異なって来ます。
先輩方は初心者を見て、色々言いたくなるかも知れませんが、その時間をあなたのスキルアップにした方が、プログラミングの挫折者を減らすと思います。

(挫折させたくて言っているのだとしたら、そう言う先輩は、プログラミグの前に「道徳」を学んで下さい。)

関連記事:プログラミング学習で関わってはいけない人と逃げるべき環境

● プログラミング学習に便利なツール ●

このセクションでは、プログラミング学習に、「あったら便利だなぁ」と思えたツールを紹介します。
ドットインストールやpaizaラーニングなどの動画の講義を終えたら、実際に本を買う段階になります。

まず、プログラミングの本を紹介する前に、ブックスタンドを紹介します。
(デュアルデスプレイを使う方はそれでも良いと思います。)
プログラミングをやっているとずっと座りっぱなしなので、適宜ストレッチをしていますが、パソコンで入力して本を見て・・・となると結構疲れるのでブックスタンドを紹介します。

これ、手前の金具にゴムがついていてストッパーになっていて、本を抑えることが出来るんです。これでプログラミングが捗りました。

表側はこんな感じです。
本の著作権があるので、カバーを向けています。

ここから、本やプログラミング学習の助けになるグッズなどを紹介して行きますが、決して全て揃える必要はございません。

興味のある商品のAmazonレビューを1つか2つぐらい見て、「ふ〜〜〜〜〜〜〜〜〜ん」と眺めてみる程度で十分です。

まず、「独習Python」ですが、Pythonの動画レッスンを終えた方には丁度いい難易度になっています。読んでいて分からないことも殆ど無いですし、多少あった時は少し調べたり前に戻ったりしています。

プログラミングのノートとして、本を読みながら特に覚えておきたい事をまとめるのに使っているノートアプリ、「Notion」が便利です。このアプリは、Windows、Mac、Android、iosで使え、GoogleのID、パスワードでログイン出来るので、書いたノートをいつでも見直せます。このアイコンが目印です。


直感的に使えて、使い方として覚えておく事は、プログラミングのコードを書くときに、「/code」スラッシュにcodeと書いて言語を選択してノートに載せることが出来ます。

ただ、私はこのノートよりも、Googleドキュメントの方が使いやすかったので、今はそっちを使っています。先ほどの先輩のアドバイスにより、ノートを取る学習は、あまりオススメでは無いようなので、私がノートに書く内容は、学習した単元の日付などを「自分がどこまで進んだのか忘れないためのメモ書き」程度に収めています。

プログラミングだけでなく、テレワークなどでデスクワークも増えていて腰に負担がかかるので、私は骨盤ベルトを利用しています。
「骨盤整隊カシャーン」というベルトで、巻き付けてマジックテープで止めて、両脇の調整ストラップをカシャーンと引っ張って、強力に骨盤を固定出来るので、プログラミング時の疲労が半減しました。

Lサイズのものです。

IT企業の研修などでベテラン講師の方のこの本が各言語のことやアルゴリズムが学べて、プログラミング言語を学ぶおススメの順番がストンと納得いくように書かれて、興味のある方は是非お手に取ってみてください。

これからプログラミングを始める方だけでなく、中々上達しないで悩まれている方は、高額なスクールやオンラインサロンに入る前に、コンピューターの仕組みやハードウェアの理解、プログラミングの本の選び方、プログラミングを伸ばす教え方を学ぶことで、SNSでインフルエンサーの方々がおっしゃていることに惑わされず自由にプログラミングを勉強出来る本を紹介します。講座の雰囲気が味わえる本なので、先輩プログラマーからアドバイスを受けている感じで読み進めています。C言語を用いたコードが掲載されていますが、Pythonの学習をしていた私でも安心して読める内容になっています。

◆ifとelseの思考術 プログラマ脳育成講座
著:矢沢久雄

◆10代からのプログラミング教室
著:矢沢久雄

Windowsで標準にインストールされているメモ帳を使って2つのプログラムを作成します。10代の若い方を対象に書かれていますが、もっと上の年齢層の駆け出しエンジニアの方にも基礎力UPに繋がると思います。
この本で特に大事だと思うのは「プログラムを改良すること」です。
プログラムを学ぶ上での考え方も学べます。
私は基本情報技術者試験でヒートアップした頭をクールダウンする目的でこの本を読みました。実際にサンプルプログラムを作ってみて、キチンと入力したのにエラーが出て調べながら知識を増やしました。環境によるものかもしれませんが、文字化けや”日本語”の部分がエラーになってしまったので、”日本語”を”nihongo”のように半角英数のローマ字で入力した所無事実行できました。
ちょっとネタバレになってしまうかもしれませんが、小学生に二分探索を教える時にこういう風に伝えればいいんだなと思いました。

◆超頻出 ITエンジニア英単語150
著:松元大地

エラーが出た時に、どうしたら良いのか分からなくなることが多く、
英語力の不足を感じる今日この頃。
中1から英語をやり直そうかと思っていましたが、
IT、プログラミングにピンポイントで学べる英語の本を
探して購入しました。
安価でコンパクトながら実用的です。
「エラー系」、「なんか上手く行った系」などに分けてあり、
コマ切れな時間やプログラミングの息抜きに学べます。
スマホで読むユーザの為に、大きめのフォントで書かれています。

◆子どもといっしょに コンピュータとプログラミングを学ぶ本
著:矢沢久雄

タイトルに「子どもといっしょに」とありますが、
独身実家暮らしの43歳でも、1人楽しく遊べました。
子育て、孫育て中の、パパさん、ママさん、じいじ、ばあば
向けに書くと、2020年4月から小学生のプログラミングが必修になり、
子どもに聞かれても、どうやって教えたら良いのか困っている
ご家族様もいらっしゃると思います。
この本では、Excelと、Windowsに最初から入っているメモ帳、
ペイントを使って、入力ゲーム、掛け算九九、円周率、数当てゲームなどの
簡単なプログラミングで遊べます。
また、子育てに関わらず、これからプログラミングをはじめる成人の方、
シニアの方、今後、プログラミング必修で教育を受けてきた方と
ビジネスの現場で一緒に働く可能性の高い中学生、高校生、大学生の方も
作りながら遊べると思います。

◆プログラミングとロジカルシンキングが一気にわかる本
著:木田知廣

冴えない営業マンのビジネスでのストーリーを使って、
小説を読む感覚でロジカルシンキングを学べます。
プログラミングに関しては、ExcelのIF関数や文字列操作・検索関数の理解出来て、
マクロの基本的なことがなんとなく分かれば、
コードの部分を除いては、スラスラ読めると思います。
フレームワークやlogicツリーを使って、プログラミング的思考、
プログラミングの基本が分かるので、ExcelはMOSのExpertレベルは
分かるけれど、これからプログラミングをはじめるのに、
何か読んでおいた方が良い本あるのかな、と探してる方には
おススメです。

◆速読関連の本

プログラミングも言語ですよね。
言語と言えば読解。
読解と言えば速読と辿って行って、
速読に興味を持ち始めました。
「長文読解が苦手で学生の頃勉強でしんどい思いをした」~
「もうちょっと早く読める様になりたいな」と考えている方まで、
速読の入門的な所+食生活や健康についても役立つと思います。
この教室に通いたかったのですが、丁度コロナの第一波の頃でしたので、
ユーキャンの通信教育を利用していて、
プログラム2の課題提出まで終わりました。

プログラミングと言うと、情報商材などもありますよね。
決して情報商材が悪いとは申しませんが、私個人の意見では、そういうのに飛びつくのは情弱だと思うんです。(ゴメンナサイ。言っちゃった(;^_^A)
なので、動画レッスンや本など、自分で調べて学ぶ努力をして、情弱を私自身も直していきたいです。私自身も情弱なので、情報商材には手を出さず、自分が尊敬している方が出版された本などで勉強しています。

本を読むのもアタマの回転も遅くて弱弱のダメダメな自分を変えて、人生の質を高めたいと思って、ユーキャンの速読講座を利用しています。

プログラミングのアンケートにご協力頂ける方はこちらのフォームで勉強法など色々と教えて下さい。

を作成しました。

メインメニューに戻る
ドットインストール無料レッスン学習ノート
プログラミング学習で関わってはいけない人達と逃げるべき環
プログラミングと資格について  

心がラクになる本の読書リスト

この記事では、辛く苦しい思いをされている方にこそ、今すぐ読んで欲しい本を、読書リストとして掲載しております。

私には発達障害とHSPの両方の生きづらさがあり、一般的な方よりも心を病みやすいので、読書によってセルフケアをしております。

私が落ち込んでいた時、心が痛くて辛い時に読んで救われた本で、辛くてどうにもならない、誰か助けて!!と、シンドイ思いをされている方にオススメしたい、気持ちがラクになる本を紹介させて頂きます。


◆他人(ひと)からどう思われているか」気になったとき読む本
著:橋本 翔太 氏

「私は一体、どう思われているのか」と、他人の視線に怯えて悩み続ける日々を何十年も過ごしておりました。
それは、本当に恐怖でした。
その苦しみが、この本を読んだら全て解決して、とても生きやすくなったので、同じような悩みを抱えていらっしゃる方にオススメしたい1冊です。

人からどう思われているのか気になってしまうことによって、実は良い効果が生じたこともあると言う理由も詳細に渡って書かれているので、これまで人からの視線に怯えてきた何十年という長い歳月だって無駄では無かったことを知った時に、涙腺が緩みました。

また、誰かと揉めた時に「全部自分が悪いのでは・・・」と悩まれた方にもオススメな本です。
自分を変える努力をすること自体は決して悪いことではありませんが、もしかしたら無理して自分を変えなくても、この本を読むことであなたの悩みが解決するかもしれません。

ただ、決して安い本ではありませんので、Amazonレビューと「試し読みのサンプル」をご覧になってからご検討をして、心配な方は医療従事者や信頼出来る方にご相談をされて欲しいと思います。その際、このブログの読書リストの記事を見せて頂いても大丈夫です。
(Amazonレビューなどは、上記のバナーリンクからご覧になれます。)

著者の橋本翔太氏は、学生時代は吹奏楽部でトランペット奏者として活躍していて、音楽教師のご経験もあり、ピアノで音楽療法の曲も作曲されています。
国家資格である公認心理師の資格を持つ音楽療法家ですので、信頼出来る方だと私は思います。
音楽や作曲の話も出てきて、人生を音楽で例えた表現もありました。

私のピアノの技量は、「猫ふんじゃった」の初めの方をちょっと弾けるレベルですが、書いてあることは何となく理解できました。
なので、私よりもピアノや音楽のレベルが高い方でしたら、もっと深い所までこの本を読み取れると思います。


◆自分いじめの呪いを解く本 毎日がラクになる心のクセづけ40 Kindle版
著:ココロジー 監修:酒井和夫 氏

自分はダメだ、私なんて生きている価値がない、と心が苦しい方に届けたい本です。
ココロジーのメインキャラクターのシンくんが、優しく語りかけてくれるように、本の中で案内してくれます。
自分イジメの正体やそれらを解きほぐす方法が書かれてあり、心がラクになりました。
私自身攻撃的な人からの心無い言葉で随分と苦しみましたが、攻撃的な人とはどういう人なのか知ったら、過去の心の傷が癒やされてきました。
脳の海馬や扁桃体の働き、瞑想など癒されながら学べる本で、この本を読んで心の痛みをじっくり癒していこうと思います。


◆精神科医が教える 疲れた心をスーッとほぐす方法
著:メンタルドクターSidow氏

SNSなどで拡散されている「メンタルに良い」と言われていることの中には専門的な知識を持たない方が書かれたこともあります。
気軽に使われている「メンヘラ」や、「空気を読むな」といった主張に対して、都内で精神科医として働き、SNSでメンタルに対して啓蒙活動を行っている、メンタルドクターSidow先生が書かれた本は、専門家としての知見を元に現代の人の心の悩みに寄り添って下さっています。
メンタルに良いと言われていることに対してのSidow先生のマルバツ形式での解説は、読者の思考が偏らないように分かりやすく書かれています。日常生活でも使える「傾聴」についても詳しく書かれています。人間関係をスムーズにして自分を成長させるためにも、この本に書かれている傾聴は非常に大事だと思いました。
年代別の悩みとそれに対してのSidow先生のアドバイスには私に近いケースもありました。身近にマウンティングする人のことで悩んでいる方や、自分がマウンティングをしてしまっているのではないかと悩まれている方にもオススメの本です。


◆「しんどいこと」をリセットする方法
著:メンタルドクターSidow氏

全ての悩める現代人に送る本!!だと私は思いました。
「精神科をもっと身近に!」とYouTube、TwitterなどでSNSで活躍されている現役精神科医の先生が書かれた本です。
SNSやハラスメント、リモート疲れ、空気を読み過ぎることなどへの現代の悩みに対して、どういった考え方をすると、より生きやすくなるのか、悩みが軽くなるのかが書かれています。
1項目2から3ページで1コママンガもあり、非常に読みやすく、今の自分に当てはまる所からすぐ読める構成になっているので、興味のある所から読み始めました。
私が特に心に響いたのは、CHAPTER4「自虐で潰れそう」の「CASE6お客さんからのキツイ言葉が忘れられない」です。
キツイ言い方をしてくる人は、リアルでもネットでもいて、その度に自分の悪い所を改めなければと思っていたのですが、そうじゃないんだ、と、この本に書いてある内容のように解釈すると、すごく楽になりました。以前何かあると、「あなたが何か悪いことをしたのでは」という人がいて、自分を責めていましたが、考え方が180度変わりました。 Sidow先生の今後ますますのご活躍を応援しています!!


◆上司・友人・ご近所…身近な人の「攻撃」がスーッとなくなる本
著:水島広子氏

心が落ち着かなくなったり、不安定になった時に、精神科医の水島先生の本を読んで気持ちを落ち着かせています。
この本では、不意打ちのように唐突に攻撃をされるなどの理不尽な思いをした時に、どのようにして生きていくのか、捉えていくのかを、相手との関係性によって必要となる処理の方法が書かれています。
まず「攻撃する人とは」どういう人なのかという基本的なことから丁寧に書かれています。水島先生の文章は内容が深く読みやすいので、心の傷を抱えた時にいつも助けらえれています。
特にこの本は、「自分は何てダメなんだ」、「怒られるのは自分が悪いからだ」、「とにかく自分のダメな所を治さなきゃ」、「人に迷惑ばかりかけていて申し訳ない」と、悩まれている方にこそ是非手に取って欲しいです。
「弱いあなたはダメだ」と非難してくる人とはどういう人なのかもこの本で学べます。
現代においてネットで攻撃されることもあります。その場合についても書かれている時代に即した本です。


◆会社・仕事・人間関係 もう、何もかもしんどい…と疲れ果てたときに読む本
著:石原加受子氏と黒川依氏

これからの時代に求められる人材は、
「自分を大切に、丁寧に扱える人間」だと強烈に痛感しました。
何故かここの所ミスが多くなってきた、自分のやりたいことよりも、世の中的に
「勝ち組」とか「リア充」と言われている生き方に自分の身を染めようとしてきて、
無気力になった、厳しい人に認めてもらいたいと過剰に思うようになった、
そういう生き方をしていて、シンドくなったり、もう動けない、という状態になってしまう前に、なってしまった後の回復のやり方に、全ての現代人に捧げる、心と体がラクになる本です。


◆SOLO TIME(ソロタイム)ひとりぼっちこそが最強の生存戦略である
著:名越康文氏

この本を読んで、自分の人生のハンドルは、自分で握りたい!!と、強く思いました。
「なんであの人はあんなことを言うんだろう」と誰かのことでイラっと来たり、
自分の人生をむなしく思った時にこの本読むと、心のイガイガが滑らかになります。
何か重大な決断を迫られている人にこそ是非この本を手に取って心を落ち着けて欲しいと思います。


◆やりたいことなんて死ぬまで必要ない その理由をぶっちゃけます
著:野村こころ氏

「この年齢ならこうあるべき」とか、「自分探しをしてやりたいことを見つけよう」
といったプレッシャーに押しつぶされた時に読む本です。
特に、サッカーとかよりも寝ることが好きな少年の話に共感しました。


◆うまくいきそうでいかない理由
著:佐藤由美子氏

自分を変えたいけれど、ガチガチでパワフルなの自己啓発書を読むと、なんだか疲れちゃうんだよね。
でも、そんなんじゃダメだから何とかしたい、という方に、是非読んで頂きたいです。
たった10秒~で出来るワーク(エクササイズ)は、殆どの多くの本のワークよりも続けやすいと思います。


◆ 今とても、読書が出来る精神状態では無い方へ ◆
息抜きに、写真で癒し(=^x^=)
ストレス解消グッズ


◆ その他の読書リスト ◆
発達障害と健康の本を紹介します。
何の本を呼んだら良いのか分からない時に読む記事


自己紹介

発達障害と健康の本を紹介します。

この記事では、発達障害と健康にお悩みな方に紹介したい本を掲載しています。

発達障害当事者の方の本、発達障害にありがちな体調不良でお悩みの方向けの本、発達障害があっても諦めずに前を向いて歩いていく為の読書術の本などの紹介もしております。

当事者の本の最後に、このブログの管理人、私(猫★シエスタ)の著作の本も紹介させて頂きました。

この記事が体調や心の調整が大変な方の手助けになれば幸いです。


■ 発達障害当事者の方の本 ■

「発達障害かも?」という人の為の生きづらさ解消ライフハック
著者:姫野桂

発達障害で自己肯定感の低い方は詐欺とか変な自己啓発の被害に遭う可能性もあるので、変なものに申し込む前にこの本のハックを読んで、少しでも生きやすさを手に入れて下さい。また、ハックは現在の自分に合うように見直す必要もあることを学べました。いままでの当事者の本は、1人の当事者が、どうやって改善してきたかといった内容の物が多いですが、この本は、複数の当事者の改善案をアンケートを実施して様々なアイディアのシェアをされています。中々自分と近い当事者の本が見つからない、という発達障害をお持ちの方、グレーゾーンの方、定型の方にもおススメな1冊です!


発達障害の僕が「食える人」に変わった すごい仕事術 
著者:借金玉 氏

発達障害当事者によく起こりがちな重要書類などの紛失。
「あれ、どこに置いたっけ」を回避する収納術にこんな方法もあったのかと驚きました。私もハンカチを良く忘れるので、この本に書いている方法で自分の環境で可能なものは早速試してみた所、それ以降ハンカチを忘れることが無くなりました。
また、これも発達障害当事者にありがちな人間関係のトラブルを回避するためのハックを読んで、自分が如何にその部分において欠如しているのかを認識しました。今まで誰も私に教えてくれなかった、人間関係におけるルールを勉強しました。
私はこの本を読むまで雑談を軽く見過ぎていました。
また、人の名前と顔がなかなか覚えられなくて相手に失礼な対応をしがちになってしまいましたが、この本のハックなら私でも「誰が誰だか分からない」という困惑が解消されそうです。発達障害の皆様は服薬されている方もいますよね。この本には私のような医学的な知識のない一般の患者にもどの薬がどういう作用を大体もたらすのかがメリット・デメリットと共に書かれています。
この本で最も学べた点は、発達障害者にとって最大限大事なスケジュールとは何かです。この点はとても収穫が大きいので発達障害者として生きていくのに知っているのと知らないのとでは雲泥の差が出ることをひしひしと感じました。


発達障害サバイバルガイド
著者:借金玉 氏

仕事をする以前に「生活」をどのようなサバイバル術を駆使してなんとか生き抜いていける方法が書かれています。自分を変えるのでも、過剰な努力をするのでもなく、環境を変える、住環境の設備を変えることによって、生きづらさが軽減出来るアイディアが豊富に掲載されていて、最後にこの本で借金玉氏が実際に使われてたアイテムリストも載っています。IT系国家資格の経験のある方なら、「ファシリティマネジメント」と言えばピンとくるかもしれません。ファシリティ、すなわち「設備」です。
その投資をすることで、発達障害の自分がダメだからと言って自罰的な生活をするのではなく、少しでも快適に生活が送れるよう、寝具・収納・自炊・金銭管理など、参考になるアイディアが豊富にあり、私も早速ネットスーパーに登録し、自宅に使っていない収納ボックスを発見して、蓋が取れるタイプなので、それで書類の山をぶっ込んで行こうと思います。


生きづらさにまみれて
著者:姫野桂

姫野先生は、もう十分「作家」です。作家と名乗って下さい。
少なくとも私にとって姫野先生は作家の先生です。
この本を読んで、本気で私も髪の毛を金髪にしようと思いました。
(職業柄無理ですが。)
V系バンドに関わりのある方でしたら、発達障害の有無に関わらず、バンドを巡っての生きづらさに共感出来る箇所が多々あると思います。
私は音楽に関してはダウンロードやYouTubeで済ませてしまっているので、ライブの価値というものが良くわからない為、以降は私にも理解出来たことをレビューとして書かせて頂きます。
SNSの炎上で、発達障害のある人と定型発達の一般の方と何が違うのかという所が特に興味を持ち、私にも当てはまります。きちんと理由を説明してもらえば納得するという所に特に共感しました。また、自己肯定感の低さから明らかに不当なことを言う人の言う通りにしてしまうことも、私にも当てはまるので頷けました。
著者の姫野桂先生は、私より10歳若い方で学生時代はスクールカーストの底辺に属してお辛い思いをされていたそうです。それを文才で文章の力で次々と結果を出して行くところが痛快でした。ご本人の才能もあるかと思いますが、文章を書いて人に見せる為には、伝わりやすさ、読みやすさを削らずに自分の言いたいことを文章化する労力も必要です。才能だけではない、積み重ねてきた努力もあって、私の様に「どうにか日本語らしき文章を書けると言うレベルの発達障害者」の心を代弁した下さっています。


就職氷河期世代&大人の発達障害
著:猫★シエスタ(このブログの管理人の著作です。)

発達障害当事者として、2012年に私が書きました「就職氷河期世代 & 大人の発達障害」を紹介させて頂きます。

ロスジェネ(就職氷河期世代)とASD(自閉症スペクトラム)の両方の生きづらさを抱えながら正社員としての一般就労、そこから障害者雇用に就労形態を変えて行った時の職業訓練、企業実習の様子、初めての障害者雇用の様子について書き綴っております。

私の年代ですと発達障害の診断が遅くなり、私の場合は31歳で初めて診断され、それまでの学生時代や一般就労での苦しみ、障害が分かった後からも支援者からの虐待、企業実習で辛い思いをしたことなどを赤裸々に綴っています。

ご興味ある方はご覧下さい!!この本の内容をYouTube動画でも紹介しておりますので、そちらの動画をご覧頂いた上で、ご検討を何卒宜しくお願いします。

読者アンケートも宜しくお願いします。


発達障害、障害者雇用事務職、以上現場からの中継でした!
著:猫★シエスタ

本の内容紹介YouTubeとその詳細です。

私には、発達障害(ASD自閉症スペクトラム及びADHD)と双極性障害があり、現在障害者雇用2社目で働いております。

前職である障害者雇用の1社目での失敗を振り返り、読者様に同じ失敗をして欲しくない、また、私自身が現在の職場で同じ失敗をしない為に、仕事・通勤・人間関係・発達障害の依存症をプログラミングで解消した方法・発達障害を巡るSNSの使い方等、「あの時、こうしておけば良かったのに!!」と言った後悔も書きました。

障害者雇用1社目をクビ同然で退職し、そこから立ち直って4ヶ月で障害者雇用2社目の内定に直結した履歴書等応募書類の揃え方、添え状や自己PR書(Excelの技術を可視化したサンプル)の公開もしております。

その際、精神・発達障害者が障害者雇用での高倍率を突破して内定に直結した時に用いた応募書類の資料を画像と解説文を用いてかなり詳細に公開しています。

履歴書・職務経歴書などの応募書類を印刷する時に使う紙、印刷物を入れる高透明のクリアホルダーの選び方、添え状とパソコンのスキルが分かる自己PR書(サンプル)の制作物を個人情報を伏せて掲載しています。

発達障害で特別な才能を持たない私が障害者雇用事務職で働き続ける為に行っている健康法や対人関係の捉え方、障害者雇用の事務職で知って置きたいパソコンのスキル(Excelなどのショートカットキーで20年以上パソコンを操作してきた知識の集大成)、発達障害の方に良くありがちな依存症(私の場合は電話占い依存)をプログラミングで解消した話も掲載しております。

事務職の方も10分程度あればプログラミングを始められる方法も書いています。事務職といえば今後AIに奪われてしまうのではないかと危惧したことを、実際にAIで使われているプログラミング言語のPythonの環境構築をして検証しました。

私はロスジェネ(就職氷河期世代)であり、今後の8050問題への不安や対処法についても思いつく限りのことを書いております。

ストレスが溜まりやすい発達障害者の方へ、趣味でやっている写真を見て心を癒して頂けたらと思い、イルミネーション・花見・自然風景・ハロウィンなどのお気に入りの写真を掲載しました。

発達障害には色々なタイプの方がいるからこそ、多くの方に本を出版して欲しいと思い、Kindle版でのセルフ出版の手順も解説しております。

読者アンケートも宜しくお願いします

■ 健康でお悩みの方向けの本 ■

めまいは自分で治せる
著者:荒井基洋

発達障害の中には、疲れやすさやめまいで悩んでいる方も
割と多くいらっしゃると思います。
家庭でも簡単に出来るリハビリのメニューが書かれています。
本の中にもありますが、病院で心配な方は病院で相談しましょう。
リハビリのメニューは8つあって、特に苦手なメニュー
(私の場合はハーフターン)についてはどんなに忙しくてもやっています。

■ 読書に挑戦したい方向けの本 ■

1冊10分で読める読書術
頭の回転が早くなるすごい!方法
著者:佐々木豊文

発達障害には、「学習障害」がありますよね。
私は、「読む」ことが苦手で、色々と諦めて来ました。
しかし、プログラミングは諦めたくないので、速読の勉強をすることにしました。
この速読の本ですが、速読の効果を高めるための食事についてもか書かれています。
この機会に、私自身、食生活を見直しました。

◆ その他の読書リスト ◆

心がラクになる本
何の本を読んで良いのか分からない時に読む記事

◆ 本を読むのもシンドイ時 ◆
息抜きに、写真で癒し(=^x^=)

ストレス解消グッズ

自己紹介

10アセンブラCASL2で「ソーシャルディスタンス」を大文字に変換

この記事ではアセンブラ言語で、「Social Distance(ソーシャルディスタンス)」の文字列を、文字コードの演算を使って、小文字から大文字に変換する処理を学べます。

また、少しでも伝わりやすくなればと思い、シンプルな図解を掲載させて頂きました。

この記事では、こちらのWebのシミュレーターを使っています。
ダウンロードすることなく、素早くアセンブラの勉強が出来る、私が使った中で1番便利なシミュレーターです。

ソーシャルディスタンスは、英語で書くと「Social Distance」です。
大文字と小文字が交じっておりますが、この文字列を全部大文字に変換する
サブルーチンを作りました。

イメージはこちらです。

配列MOJIがあって、緑色の所が大文字に変換した所です。
この配列は、添え字が0番目から14番目まであります。


レジスタはGR1~GR3まで使い、それぞれの役割は、

GR1が「Social Distance」が格納されている配列の先頭アドレスから最後尾のアドレスまで、処理中の文字のアドレスを指し示し、

GR2は文字数の15で、ループカウンタとして使います。

GR3は、GR1が指し示すアドレスの中身、つまり処理中の文字そのものを指します。

大文字の文字コードは、小文字の文字コードよりも20小さいです。
例えば、’A’ は「0041」で、’a’は「0061」です。

そこで、文字コードが小文字の’a’の「0061」より小さい場合は大文字として判断します。

最初の文字の ‘S’ は大文字なのでそのままです。
大文字のSの文字コードは「0053」です。

文字コードが小文字の’a’の「0061」より小さい場合は大文字として判断するので、この場合は、変換の処理を飛ばします。

‘a’以上で、’z’の「007A」以下の場合は大文字変換の対象になりますので、文字コードを20マイナスします。

文字コードについてはこちらの外部記事が分かりやすいです。

出力結果です。

プログラムはこちらです。
少しでも「密」を避けて、早くコロナが収まりますように、という願いを込めて作ってみました。

TEST START
 RPUSH
 OUT MOJI,LEN
 LAD GR1,MOJI ;GR1にMOJIの先頭アドレスを指定
 LD GR2,LEN   ;GR2に文字数を格納
 CALL UPPER   ;大文字に変換するサブルーチンUPPERを呼び出す
 OUT MOJI,LEN
 RPOP
 RET
MOJI DC 'Social Distance'
LEN DC 15

;大文字に変換するサブルーチンUPPER
UPPER RPUSH

;<<大文字判定ループ>>
LOOP LD GR3,0,GR1  ;GR3に配列MOJIの文字を読み込む
 CPL GR3,='a'      ;その文字の文字コードを小文字の「a」と比較
 JMI SKIP          ;文字コードがaより小さかったらSKIPへ分岐
 CPL GR3,='z'      ;小文字の「z」と比較
 JPL SKIP
 SUBL GR3,=#20     ;文字コードを20引いて「小文字 → 大文字」に変換
 ST GR3,0,GR1      ;上で大文字にした文字を配列MOJIに格納
SKIP LAD GR1,1,GR1     ;配列MOJIを1つ先に進める
 SUBL GR2,=1       ;ループカウンタにしているGR2から1を引く
 JPL LOOP          ;ループカウンタがプラスであればLOOPへ

 RPOP
 RET

 END

では、実際に動かしてみます。

サブルーチンの中で、更にサブルーチンUPPER(大文字に変換するサブルーチン)を呼び出して、戻ってきたら大文字に変換した文字列を出力します。

最初のOUT命令で、元の文字列が出力されます。

GR1に、配列MOJIの先頭アドレスが入ります(実行環境によって異なります。)

GR2に、文字数15(16進数でF)が入ります。

GR3に、最初の文字の大文字のS(文字コード0053)が入ります。

小文字の’a’(文字コード0061)と比較して、小さかったのでSFのフラグが立ちました。

文字列を次に進めます。

ループカウンタをデクリメントします。

ループの先頭に戻ります。

次の文字、小文字の’o’(文字コード006F)を読み込みます。

小文字の’z’より小さいのでフラグが立ちました。
つまり、小文字の’o’は、’a’以上’z’以下ですので、小文字だと判定され、大文字に変換する処理の対象となります。

大文字に変換するのに、文字コードを20マイナスしました。
大文字に変換した’O’ を配列に格納します。

配列を1つ先に進めます。

ループカウンタを1つデクリメントしました。

ループの先頭に戻ります。
これを、「Social Distance」の最後の文字「e」まで進めます。

「c」の処理が終わり、ループカウンタがデクリメントされ、ループの先頭に戻った所のレジスタの値です。

GR3に、最後の文字「e(文字コード65)」が入りました。

a以上z以下なので、大文字に変換対象です。
文字コードがマイナス20されました。

GR2のループカウンタがデクリメントされて、ゼロフラグが立って、ループを抜けます。

お疲れ様でした。
ここで一旦、写真で休憩を挟みます。

瀬戸内しまなみ海道の海です。
撮影したのは平成15年(2003年)で、写ルンですで撮影した写真を復刻しました。


ここから、復習&アウトプットタイムです!!
下記のコードをシミュレーターにコピペして、コメントを頼りに先ほどのコードを覚えているか入力して見て下さい。

上手く動いたら、値などを好きなように変えて動かして見て下さい。

この復習は学習直後は勿論、明日など少し日を開けて行うと、更に効果的です!!

TEST START
 RPUSH
 OUT MOJI,LEN
;GR1にMOJIの先頭アドレスを指定
;GR2に文字数を格納
;大文字に変換するサブルーチンUPPERを呼び出す
 OUT MOJI,LEN
 RPOP
 RET
MOJI DC 'Social Distance'
LEN DC 15

;大文字に変換するサブルーチンUPPER
UPPER RPUSH

;<<大文字判定ループ>>
;GR3に配列MOJIの文字を読み込む
;その文字の文字コードを小文字の「a」と比較
;文字コードがaより小さかったらSKIPへ分岐
;小文字の「z」と比較
;文字コードがzより大きかったらSKIPへ分岐
;文字コードを20引いて「小文字 → 大文字」に変換
;上で大文字にした文字を配列MOJIに格納
;配列MOJIを1つ先に進める
;ループカウンタにしているGR2から1を引く
;ループカウンタがプラスであればLOOPへ

 RPOP
 RET

 END

皆さま、大変お疲れ様でした。
この記事最後のブレイクタイムPhotoは・・・

しまなみ海道の夕暮れです。

仕事や勉強のリフレッシュに、趣味で写真を撮っておりますので、宜しかったら フォトストック写真ACさん の投稿もご覧頂けますと、大変嬉しい限りでございます!!

こちら、無料の「ダウンロードユーザー」に登録して頂けると、無料で写真のダウンロードが可能になります。

※ 先にGoogleアカウントを作成して頂くと、登録が ラク です♪

写真素材素材【写真AC】

 

最後までご精読、誠にありがとうございました!!

自己紹介


アセンブラ自作サンプルとFE出題範囲のアリゴリズムへ

アセンブラ過去問プログラムへ


プログラミング未経験者はアセンブラと表計算どっち!?



基本情報技術者試験トップへ

午前免除試験

午後試験のオススメ本

スコアレポート

09 アセンブラCASL2で推しのライブまでの日数をカウントダウン!!

この記事ではアセンブラ言語で、単純なループとデクリメントを通してカウントダウンの処理が学べます。

過去問でも分岐命令JPL(比較対象の数よりも大きい場合に分岐)なども出てきましたので、過去問前の腕試しに読んで頂けたら嬉しいです。

推しのライブまで後何日かといったことを求めるサブルーチンを作ってみました。

この記事では、こちらのWebのシミュレーターを使っています。
ダウンロードすることなく、素早くアセンブラの勉強が出来る、私が使った中で1番便利なシミュレーターです。


まず、OUT命令で「Enter your favorite name(推しの名前を入力)」と出力します。
その後、INとOUT命令で、あなたの推しの名前を入出力します。


推しのライブまでの日数を5days、4days、3days、2daysまでカウントダウンして、
その後「1-DAY!! TOMORROW」、「DAISUKI!!」と出力します。

日数が5,4,3,2,とカウントされ行き2日までは、day”s”ですよね、複数形で。
「days.」という日数の単位も含めて出力しております。

ここから、プログラムの一部である、ループの部分を抜粋をします。
GR1を日数の5から1までのループカウンタに使います。

ループに入る前に、ループカウンタGR1に5を読み込みます。

日数をDAYSに格納して出力する際、5を出力する場合は、’5’の文字コードは「0035」です。

GR2に’0’(文字コード0030)を読み込んで、GR1の5とGR2の「0030」を加算して、GR2を「0035」にすることによって出力しています。

出力の際、ST命令でDAYSに格納してOUT命令で出力しています。

文字コードについてはこちらの外部記事が分かりやすいです。

;<<ここからループ>>

LOOP LD GR2,='0' ;GR2に'0'を読み込む
 ADDL GR2,GR1 ;出力する為、文字コード'0'(0030)が入っているGR2にGR1を加算
 ST GR2,DAYS ;ST命令でGR2の日数をDAYSに格納する
 OUT DAYS,LEND ;OUT命令でDAYSに入っている日数を出力
 SUBL GR1,=1 ;GR1をデクリメント
 CPL GR1,=1 ;GR1の値と1を比較 ココ注目!!
 JPL LOOP ;GR1が1より大きい間はループを繰り返す ココ注目!!

;<<ループここまで>>

上記のコードの抜粋部分の下から2つ目と1番下の、ココ注目!! と書いてある箇所をご覧下さい。

日数5、4、3、2までは、日数(GR1)>1ですよね。

そこで、CPL命令を使ってGR1のカウンタの値と1を比較し、ライブまでの日数>1、つまり2日まででしたら、ループを繰り返すという命令にしました。

JPLで、1と比べてPLUSでしたらLOOPへジャンプして分岐しています。

分岐命令についてはこちらの外部記事が分かりやすいです。

カウントダウンして、ライブ前日である日数が1日になったらループを抜けます。
ループを抜けた後は、「明日」の出力と、推しへの愛を込めて「DAISUKI!!」と出力します。

では、プログラム全てです。

TEST START
 RPUSH

 OUT NAME,LEN ;OUT命令で「Enter your favorite name(推しの名前を入力)」を出力
 IN OSHI,LENO ;IN命令で推しの名前を入力
 OUT OSHI,LENO ;入力した名前を出力

 LAD GR1,5 ;GR1に5を読み込む(GR1をループカウンタに使用)

;<<ここからループ>>

LOOP LD GR2,='0' ;GR2に'0'を読み込む
 ADDL GR2,GR1 ;出力する為、文字コード'0'(0030)が入っているGR2にGR1を加算
 ST GR2,DAYS ;ST命令でGR2の日数をDAYSに格納する
 OUT DAYS,LEND ;OUT命令でDAYSに入っている日数を出力
 SUBL GR1,=1 ;GR1をデクリメント
 CPL GR1,=1 ;GR1の値と1を比較
 JPL LOOP ;GR1が1より大きい間はループを繰り返す

;<<ループここまで>>

 OUT DAY1,LEND1 ;OUT命令であと1日と出力
 OUT MSG,LENM ;OUT命令で推しに「DAISUKI!!」と出力


 RPOP
 RET

NAME DC 'Enter your favorite name!';文字列「Enter your favorite name!」
LEN DC 25 ;その文字数
OSHI DS 256 ;推しの名前の領域を確保
LENO DS 256 ;推しの名前の文字数の領域を確保
DAYS DS 1 ;日数の領域を確保
LEND DC 7 ;日数の文字数
DAYCOUNT DC 'days.' ;出力する日数の単位
DAY1 DC '1-DAY!! TOMORROW!!' ;あと1日の文字列
LEND1 DC 18 ;あと1日の文字数
MSG DC 'DAISUKI!!' ;文字列「DAISUKI!!」
LENM DC 9 ;その文字数

 END

では、実際に動かしてみます。
推しの名前は「山田太郎(TARO.YAMADA)」とします。

「推しの名前を入力して下さい」と英文で出力します。

早速、「TARO.YAMADA」と入力します。

(このシミュレーターでは、入力とともにコンソールに表示されます。)

推しの名前を出力します。

GR1にループカウンタの5が入りました。

<<ここからループです。>>

GR2に文字コードの’0’である「0030」が読み込まれました。

GR2に「0030」とGR1の「0005」が加算され、「0035」になりました。

ST命令で「0035」である’5’がDAYSに格納されました。

コンソールに「あと5日」の出力をしました。

GR1をデクリメントして4が入りました。

GR1の値(現在4)と1を比較します。

1より大きいので、ループの先頭に戻ります。

———-

GR2に文字コードの’0’である「0030」が読み込まれました。

GR2に「0030」とGR1の「0004」が加算され、「0034」になりました。

ST命令で「0034」である’4’がDAYSに格納されました。

コンソールに「あと4日」の出力をしました。

GR1をデクリメントして3が入りました。

GR1の値(現在3)と1を比較します。

1より大きいので、ループの先頭に戻ります。

———-

GR2に文字コードの’0’である「0030」が読み込まれました。

GR2に「0030」とGR1の「0003」が加算され、「0033」になりました。

ST命令で「0033」である’3’がDAYSに格納されました。

コンソールに「あと3日」の出力をしました。

GR1をデクリメントして2が入りました。

GR1の値(現在2)と1を比較します。

1より大きいので、ループの先頭に戻ります。

———-

GR2に文字コードの’0’である「0030」が読み込まれました。

GR2に「0030」とGR1の「0002」が加算され、「0032」になりました。

ST命令で「0032」である’2’がDAYSに格納されました。

コンソールに「あと2日」の出力をしました。

GR1をデクリメントして1が入りました。

GR1の値(現在2)と1を比較します。

1と等しいので、ZF(ゼロフラグ)が立ちました。

<<ループはここまで>>

ループを抜けました。

「あと1日、ついに明日」と出力されました。

「大好き!!」、と出力されました。

お疲れ様でした。
ここで一旦、写真で休憩を挟みます。

日暮里駅から徒歩数分の、「夕やけだんだん」です。
東京下町の観光地、谷根千、谷中銀座付近の観光スポットです。


ここから、復習&アウトプットタイムです!!
下記のコードをシミュレーターにコピペして、コメントを頼りに先ほどのコードを覚えているか入力して見て下さい。

上手く動いたら、値などを好きなように変えて動かして見て下さい。

この復習は学習直後は勿論、明日など少し日を開けて行うと、更に効果的です!!

TEST START
 RPUSH

;OUT命令で「Enter your favorite name(推しの名前を入力)」を出力
;IN命令で推しの名前を入力
;入力した名前を出力

;GR1に5を読み込む(GR1をループカウンタに使用)

;<<ここからループ>>

;GR2に'0'を読み込む
;出力する為、文字コード'0'(0030)が入っているGR2にGR1を加算
;ST命令でGR2の日数をDAYSに格納する
;OUT命令でDAYSに入っている日数を出力
;GR1をデクリメント
;GR1の値と1を比較
;GR1が1より大きい間はループを繰り返す

;<<ループここまで>>

;OUT命令であと1日と出力
;OUT命令で推しに「DAISUKI!!」と出力


 RPOP
 RET

NAME DC 'Enter your favorite name!';文字列「Enter your favorite name!」
LEN DC 25 ;その文字数
OSHI DS 256 ;推しの名前の領域を確保
LENO DS 256 ;推しの名前の文字数の領域を確保
DAYS DS 1 ;日数の領域を確保
LEND DC 7 ;日数の文字数
DAYCOUNT DC 'days.' ;出力する日数の単位
DAY1 DC '1-DAY!! TOMORROW!!' ;あと1日の文字列
LEND1 DC 18 ;あと1日の文字数
MSG DC 'DAISUKI!!' ;文字列「DAISUKI!!」
LENM DC 9 ;その文字数

 END

アセンブラCASL2のおススメ本です。

皆さま、大変お疲れ様でした。
この記事最後のブレイクタイムPhotoは・・・

谷根千の招き猫です。

仕事や勉強のリフレッシュに、趣味で写真を撮っておりますので、宜しかったら フォトストック写真ACさん の投稿もご覧頂けますと、大変嬉しい限りでございます!!

こちら、無料の「ダウンロードユーザー」に登録して頂けると、無料で写真のダウンロードが可能になります。

※ 先にGoogleアカウントを作成して頂くと、登録が ラク です♪

写真素材素材【写真AC】

 

最後までご精読、誠にありがとうございました!!

自己紹介


アセンブラ自作サンプルとFE出題範囲のアリゴリズムへ

アセンブラ過去問プログラムへ


プログラミング未経験者はアセンブラと表計算どっち!?



基本情報技術者試験トップへ

午前免除試験

午後試験のオススメ本

スコアレポート

08 アセンブラCASL2で関東地方の観光地巡り

この記事ではアセンブラ言語で、入力された数値によって処理を分岐させ、関東地方の有名な観光地の名称を出力するサブルーチンを作りました。

JNZなどの分岐命令では過去問でも見かけましたので、過去問に取り組む前の腕試し的に読んで頂けましたら幸いです。

この記事では、こちらのWebのシミュレーターを使っています。
ダウンロードすることなく、素早くアセンブラの勉強が出来る、私が使った中で1番便利なシミュレーターです。

実行して、

「1」を入力すると「YOKOHAMA(横浜)」
「2」を入力すると「SKYTREE(東京スカイツリー)」
「3」は「ONJYUKU(御宿おんじゅく・・・千葉県房総半島の外房の海辺の町)」
「4」は「ODAIBA(お台場)」

と出力されるように致しました。

場所をLOCATE、LENの後の番号はそれぞれの場所の文字数、場所2以降はL2などのラベルに分岐しております。

該当しない場合は、ラベルOTHERの所で1-4のキーの入力を促すメッセージを出力します。

コードはこちらです。

TEST START
 RPUSH

 IN LOCATE,LEN ;観光地の番号を入力する
 LD GR1,LOCATE ;GR1に入力した観光地の番号を読み込む
 CPL GR1,='1' ;GR1と番号'1'を比較
 JNZ L2 ;等しくなければL2に分岐する
 OUT LOCATE1,LEN1 ;1であれば「YOKOHAMA」と出力
 JUMP FIN ;ラベルFINに分岐

L2 CPL GR1,='2' ;ラベルL2ではGR1と'2'を比較する
 JNZ L3 ;等しくなければL3に分岐する
 OUT LOCATE2,LEN2 ;2であれば「SKYTREE」をと出力
 JUMP FIN ;ラベルFINに分岐

L3 CPL GR1,='3' ;ラベルL3ではGR1と'3'を比較する
 JNZ L4 ;等しくなければL4に分岐する
 OUT LOCATE3,LEN3 ;3であれば「ONJYUKU」と出力
 JUMP FIN ;ラベルFINに分岐

L4 CPL GR1,='4' ;ラベルL4ではGR1と'4'を比較する
 JNZ OTHER ;等しくなければOTHERに分岐する
 OUT LOCATE4,LEN4 ;4であれば「ODAIBA」と出力
 JUMP FIN ;ラベルFINに分岐

OTHER OUT NOTHING,LEN5 ;ラベルOTHERでは文字列NOTHINGと文字数LEN5で出力 

FIN  RPOP
 RET

LOCATE DS 256 ;場所の領域を確保
LEN DC 1 ;文字数1文字
LOCATE1 DC 'YOKOHAMA' ;最初の場所横浜
LEN1 DC 8 ;横浜の文字数
LOCATE2 DC 'SKYTREE' ;2番目の場所スカイツリー
LEN2 DC 7 ;スカイツリーの文字数
LOCATE3 DC 'ONJYUKU' ;3番目の場所御宿
LEN3 DC 7 ;御宿の文字数
LOCATE4 DC 'ODAIBA' ;4番目の場所お台場
LEN4 DC 6 ;お台場の文字数
NOTHING DC 'PREASE ENTER 1-4' ;1から4までを入力するようにメッセージ
LEN5 DC 16 ;その他の場合の文字数


 END

シミュレーターを動かして見ます。
インプットボックスで「1」と入力します。

このシミュレーターでは入力するとコンソールに表示されます。

‘1’、文字コード「0031」がGR1に入ります。
※ 1の文字コードは「0001」ではなく「0031」です。
文字コードについてはこちらの外部記事が分かりやすいです。

CPLでGR1が’1’と等しいか比較します。
等しいのでZE(ゼロフラグ)が立ちました。

JNZで等しくない場合はラベルL2に分岐します。
今回は等しいので分岐はせずに進みます。

OUT命令で、YOKOHAMAが出力されました。

その後FINラベルに分岐してプログラムが終了しました。

同様に、2,3,4も入出力して見ます。

では、次は1-4以外の、例えば’8’などを入力してその動きをトレース致します。

GR1に文字コード「0038」が入りました。

GR1は’1’と等しくないのでラベルL2に分岐します。

GR1は’2’とも等しくないのでL3に分岐します。

GR1は’3’とも等しくないのでL4に分岐します。

GR1は’4’とも等しくないので、ラベルOTHERに分岐します。

OUT命令で1-4までを入力するよう促すメッセージが出力されました。

お疲れ様でした。
ここで一旦、写真で休憩を挟みます。

横浜みなとみらいの夜景です。
ランドマークタワーから撮影しました。

スカイツリーのライトアップと河津桜です。


ここから、復習&アウトプットタイムです!!
下記のコードをシミュレーターにコピペして、コメントを頼りに先ほどのコードを覚えているか入力して見て下さい。

上手く動いたら、値などを好きなように変えて動かして見て下さい。

この復習は学習直後は勿論、明日など少し日を開けて行うと、更に効果的です!!

関東以外の観光地や、あなたの行ってみたい場所など、好きなようにアレンジしてみて下さい!!

TEST START
 RPUSH

;観光地の番号を入力する
;GR1に入力した観光地の番号を読み込む
;GR1と番号'1'を比較
;等しくなければL2に分岐する
;1であれば「YOKOHAMA」と出力
;ラベルFINに分岐

;ラベルL2ではGR1と'2'を比較する
;等しくなければL3に分岐する
;2であれば「SKYTREE」をと出力
;ラベルFINに分岐

;ラベルL3ではGR1と'3'を比較する
;等しくなければL4に分岐する
;3であれば「ONJYUKU」と出力
;ラベルFINに分岐

;ラベルL4ではGR1と'4'を比較する
;等しくなければOTHERに分岐する
;4であれば「ODAIBA」と出力
;ラベルFINに分岐

;ラベルOTHERでは文字列NOTHINGと文字数LEN5で出力 

FIN  RPOP
 RET

LOCATE DS 256 ;場所の領域を確保
LEN DC 1 ;文字数1文字
LOCATE1 DC 'YOKOHAMA' ;最初の場所横浜
LEN1 DC 8 ;横浜の文字数
LOCATE2 DC 'SKYTREE' ;2番目の場所スカイツリー
LEN2 DC 7 ;スカイツリーの文字数
LOCATE3 DC 'ONJYUKU' ;3番目の場所御宿
LEN3 DC 7 ;御宿の文字数
LOCATE4 DC 'ODAIBA' ;4番目の場所お台場
LEN4 DC 6 ;お台場の文字数
NOTHING DC 'PREASE ENTER 1-4' ;1から4までを入力するようにメッセージ
LEN5 DC 16 ;その他の場合の文字数


 END

皆さま、大変お疲れ様でした。
この記事最後のブレイクタイムPhotoは・・・

御宿海岸と

お台場です。

仕事や勉強のリフレッシュに、趣味で写真を撮っておりますので、宜しかったら フォトストック写真ACさん の投稿もご覧頂けますと、大変嬉しい限りでございます!!

こちら、無料の「ダウンロードユーザー」に登録して頂けると、無料で写真のダウンロードが可能になります。

※ 先にGoogleアカウントを作成して頂くと、登録が ラク です♪

写真素材素材【写真AC】

 

最後までご精読、誠にありがとうございました!!

自己紹介


アセンブラ自作サンプルとFE出題範囲のアリゴリズムへ

アセンブラ過去問プログラムへ


プログラミング未経験者はアセンブラと表計算どっち!?



基本情報技術者試験トップへ

午前免除試験

午後試験のオススメ本

スコアレポート

07 アセンブラCASL2、スタックを使って「CMYK」を逆さ取り出し!

この記事ではCASL2アセンブラ言語で、スタックを利用して文字列を逆に取り出すプログラムを作りました。

取り出す文字列は、インクジェットプリンターのインクで使われる「CMYK」です。
その「CMYK」の文字の並びを逆にした、「KYMC」をスタックに積み上げて、スタックの仕組みを利用して「CMYK」にして出力します。

この記事では、こちらのWebのシミュレーターを使っています。
ダウンロードすることなく、素早くアセンブラの勉強が出来る、私が使った中で1番便利なシミュレーターです。

CMYKについて基本情報技術者試験(FE)を受けられる方は既にご存知だと思いますが、簡単にお話しすると、インクジェットプリンターで使われているインクです。

C(シアン)、M(マゼンタ)、Y(イエロー)、K(ブラック)のことで、もう少し詳しく知りたい方は、こちらの外部記事が分かりやすいです。

この配列BEFOREは、逆から読むとCMYKになります。
スタックと言う、イメージ的に積み木みたいな仕組みを使って、
配列BEFOREの「KYMC」を配列AFTERに「CMYK」と出力されるように格納します。

配列BEFOREのすぐ後にあるのは、目印に使う配列ENDでゼロが格納されています。

では、積み木みたいなスタックに積まれて行く様子を図にします。
スタックに積む時にはPUSH命令を使います。

文字の処理が終わったかどうかの目印に、「0(ゼロ)」を使いますので、最初に0をスタックに積みます。

スタックにはPUSH命令で、このように1文字ずつ積み上げていき、取り出す時には
POP命令を使って、一番上(最後に積み上げた文字)から順に取り出します。
取り出した文字を出力用の配列AFTERに格納します。

すると、「KYMC」が「CMYK」になって出力されます。

元の文字列「KYMC」は配列BEFORE[]に入っています。
スタックを使って出力用に格納する配列はAFTER[]です。
どちらも、GR1を使ってアドレスを指し示します。

GR2は、文字列をスタックに積んだり取り出したりする時に使います。
また、GR2は、出力用文字列に格納する時にも使います。

CMYKの文字コードはこちらになります。
‘K’…「004B」
‘Y’…「0059」
‘M’…「004D」
‘C’…「0043」

文字コードについてはこちらの外部記事が分かりやすいです。

それでは、プログラムを掲載致します。

TEST START

 RPUSH

 LAD GR2,0 ;GR2に目印の0を設定
 PUSH 0,GR2 ;スタックにGR2の値を積む
 LAD GR1,BEFORE ;GR1に配列BEFOREの先頭アドレスを設定
 OUT BEFORE,LEN ;配列BEFOREを出力

;<<スタックに積むループPUSH>>
LOOPPUSH LD GR2,0,GR1 ;GR2に配列BEFOREのGR1が指し示す文字を読み込む
 CPL GR2,=0 ;目印の0まで到達したか、GR2の文字と目印0を比較する
 JZE PREPOP ;目印0まで到達したら配列AFTERの準備でPREPOPまで分岐する
 PUSH 0,GR2 ;処理中の場合は読み込んだ文字をスタックに積む
 LAD GR1,1,GR1 ;配列BEFOREの位置を1つ先に進めるのでGR1をインクリメントする
 JUMP LOOPPUSH ;読み込みとスタックに積む処理が完了するまでLOOPPUSHを繰り返す

;配列AFTERの出力準備
PREPOP LAD GR1,AFTER ;GR1に配列AFTERのアドレスを設定

;<<スタックから取り出すループPOP>>
LOOPPOP POP GR2 ;スタックから1文字取り出してGR2に格納
 CPL GR2,=0 ;文字の取り出しが最後の目印まで到達したか確認
 JZE FIN ;等しい(取り出し処理が終了)場合はFINラベルへ
 ST GR2,0,GR1 ;処理中ならGR2で取り出した文字をGR1を使って配列AFTERに格納
 LAD GR1,1,GR1 ;配列AFTERの位置を1つ先に進めるのでGR1をインクリメントする
 JUMP LOOPPOP ;出力処理が終わるまでLOOPPOPを繰り返す


FIN OUT AFTER,LEN ;配列AFTERを出力する


 RPOP
 RET

BEFORE DC 'KYMC'
END DC 0
AFTER DS 100
LEN DC 4


 END

ここから、実際にシミュレーターを動かして見て行きます。

GR2に目印となる0を設定し、スタックにその0を積みます。

GR1に配列BEFOREの先頭アドレスを設定します。

OUT命令で元の文字の配列BEFOREをコンソールに出力します。

スタックにPUSHするループ、LOOPPUSHに入り、配列BEFOREの先頭文字の‘K’…「004B」をGR2に読み込みます。

GR2のKと目印の0を比較します。
等しくないのでループを続行します。

スタックに‘K’…「004B」を積みます。

配列BEFOREの位置を1つ進めるのでGR1をインクリメントします。

ループLOOPPUSHを繰り返します。

GR2に‘Y’…「0059」を読み込みます。

Yと目印の0を比較します。
等しくないのでループを続けます。

スタックに‘Y’…「0059」を積みます。

配列BEFOREを1つ先に進めるので、GR1をインクリメントします。

ループLOOPPUSHを繰り返します。

GR2にM’…「004D」を読み込みます。

Mと目印の0を比較します。
等しくないのでループを続けます。

スタックにM’…「004D」を積みます。

配列BEFOREを1つ先に進めるので、GR1をインクリメントします。

ループLOOPPUSHを繰り返します。

GR2に‘C’…「0043」を読み込みます。

Cと目印の0を比較します。

等しくないのでループを続けます。

スタックに‘C’…「0043」を積みます。

配列BEFOREを1つ先に進めるので、GR1をインクリメントします。

ループLOOPPUSHを繰り返します。

GR2に‘目印’、配列ENDの「0」を読み込みます。

GR2と目印の0を比較します。
等しいので、ゼロフラグが立ちました。

分岐命令JZEで、ループを抜けて配列AFTERの出力準備のPREPOPに分岐して、GR1に配列AFTERの先頭アドレスを設定します。

今度は取り出しループのLOOPPOPに入り、スタックから一番上に積まれた‘C’…「0043」をPOP命令で取り出します。

スタックからGR2に取り出された‘C’…「0043」と目印の0を比較します。
等しくないのでループを続けます。

GR2に取り出された‘C’…「0043」を配列AFTERに格納します。

配列AFTERを1つ先に進めるのでGR1をインクリメントします。

ループLOOPPOPに戻ります。

GR2にスタックから一番上に積まれているM’…「004D」をPOP命令で取り出します。

スタックからGR2に取り出されたM’…「004D」と目印の0を比較します。
等しくないのでループを続けます。

GR2に取り出されたM’…「004D」を配列AFTERに格納します。

配列AFTERを1つ先に進めるのでGR1をインクリメントします。

ループLOOPPOPに戻ります。

スタックから一番上に積まれている‘Y’…「0059」をPOP命令で取り出します。

スタックからGR2に取り出された‘Y’…「0059」と目印の0を比較します。
等しくないのでループを続けます。

GR2に取り出された‘Y’…「0059」を配列AFTERに格納します。

配列AFTERを1つ先に進めるのでGR1をインクリメントします。

ループLOOPPOPに戻ります。

スタックから一番上に積まれている‘K’…「004B」をPOP命令で取り出します。

スタックからGR2に取り出された‘K’…「004B」と目印の0を比較します。
等しくないのでループを続けます。

GR2に取り出された‘K’…「004B」を配列AFTERに格納します。

配列AFTERを1つ先に進めるのでGR1をインクリメントします。

ループLOOPPOPに戻ります。

スタックから最後に残った目印の「0」をPOP命令で取り出します。

スタックからGR2に取り出された0と目印の0を比較します。
等しいのでJZE命令でFINラベルに分岐します。

コンソールに配列AFTERを出力します。

お疲れ様でした。
ここで一旦、写真で休憩を挟みます。


目白庭園という日本庭園の紅葉ライトアップです。


ここから、復習&アウトプットタイムです!!
下記のコードをシミュレーターにコピペして、コメントを頼りに先ほどのコードを覚えているか入力して見て下さい。

上手く動いたら、値などを好きなように変えて動かして見て下さい。

この復習は学習直後は勿論、明日など少し日を開けて行うと、更に効果的です!!

このコードでも、推しがいる方はあなたの推しの名前をスタックを使って取り出してみると面白いと思います。

TEST START

 RPUSH

;GR2に目印の0を設定
;スタックにGR2の値を積む
;GR1に配列BEFOREの先頭アドレスを設定
;配列BEFOREを出力

;<<スタックに積むループPUSH>>
;GR2に配列BEFOREのGR1が指し示す文字を読み込む
;目印の0まで到達したか、GR2の文字と目印0を比較する
;目印0まで到達したら配列AFTERの準備でPREPOPまで分岐する
;処理中の場合は読み込んだ文字をスタックに積む
;配列BEFOREの位置を1つ先に進めるのでGR1をインクリメントする
;読み込みとスタックに積む処理が完了するまでLOOPPUSHを繰り返す

;配列AFTERの出力準備
;GR1に配列AFTERのアドレスを設定

;<<スタックから取り出すループPOP>>
;スタックから1文字取り出してGR2に格納
;文字の取り出しが最後の目印まで到達したか確認
;等しい(取り出し処理が終了)場合はFINラベルへ
;処理中ならGR2で取り出した文字をGR1を使って配列AFTERに格納
;配列AFTERの位置を1つ先に進めるのでGR1をインクリメントする
;出力処理が終わるまでLOOPPOPを繰り返す


;配列AFTERを出力する


 RPOP
 RET

BEFORE DC 'KYMC'
END DC 0
AFTER DS 100
LEN DC 4


 END

皆さま、大変お疲れ様でした。
この記事最後のブレイクタイムPhotoは・・・

仕事や勉強のリフレッシュに、趣味で写真を撮っておりますので、宜しかったら フォトストック写真ACさん の投稿もご覧頂けますと、大変嬉しい限りでございます!!

こちら、無料の「ダウンロードユーザー」に登録して頂けると、無料で写真のダウンロードが可能になります。

※ 先にGoogleアカウントを作成して頂くと、登録が ラク です♪

写真素材素材【写真AC】

 

最後までご精読、誠にありがとうございました!!

自己紹介


アセンブラ自作サンプルとFE出題範囲のアリゴリズムへ

アセンブラ過去問プログラムへ


プログラミング未経験者はアセンブラと表計算どっち!?



基本情報技術者試験トップへ

午前免除試験

午後試験のオススメ本

スコアレポート