アセンブラ CASLⅡ 自作サンプルのまとめページ

この記事では基本情報技術者試験の選択言語の1つである、CASL2アセンブラ言語の自作サンプルを掲載しています。

過去問に挑戦する前のウォーミングアップとして、動かしてみて頂けましたら幸いでございます。

シンプルな自作サンプルと、アセンブラとアルゴリズムの両方が学べるように、ユークリッドの互除法やソートなども作りました。

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

【入門編】

01シミュレータ―とおススメの本と簡単なサンプルプログラム

02 食べ物でINとOUTとDC,DSを習得!!

03 右シフトで偶数は「北海道」、奇数は「沖縄」旅行!!

04 番町皿屋敷で納涼ループ

O5 「LOVE」をループと条件判断で取り出す

06 配列で合格(GOUKAKU)を出力

07 スタックを使って逆さCMYK取り出し

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

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

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

11 ループでドット絵おえかき(=^・^=)

12 二重ループで階段を作ってみた

13 2進数に基数変換してみました。

14 クール、クーラー、クーリッシュな暗号

【アルゴリズム編】

01 ユークリッドの互除法を作ってみました。

02 うるう年の判定を作ってみました。

03 配列の最大値と最小値を求めてみました。

04 線形探索を作ってみました。

05 二分探索を作ってみました。

06 バブルソートを作ってみました。

07 挿入法を作ってみました。

08 2進数の乗算を作ってみました。

09 再帰呼び出しを作ってみました。

自己紹介



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


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


令和2年度(令和3年)合格報告

C言語自作サンプル

このコーナーでは、C言語をギャグ・アニメキャラ・ミュージンシャンなどのタレントさんの例を用いて、少しでも楽しく学習出来る様に心がけて記事を書いております。
肩の力を抜いて気楽に学べるC言語の演習ドリル的な位置付けでご利用下さい。
C言語のコードの下に、一部Pythonのコードも掲載しております。

サイトマップはこちらから

トップページに戻る
これからプログラミングを学ぶ方へ
基本情報技術者試験トップへ

Python自作サンプルへ
自己紹介

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

【入門編】

環境構築無しでも使える無料サイトの使い方と環境構築の方法〜HelloWorld(windows)

メモ(あるあるエラー編) 

メモ(エディタ設定編)

簡単な足し算。イヤナヤツ+イヤナヤツ=ミナゴロシ!?

バカボンのパパで反対の反対は賛成なのだ掛け算

コロナ詐欺をループでやっつけろ!!

芸能人の結婚への心の準備

【初級編】

カンタン関数引数戻り値で嫌なヤツの寿命のカウントダウン(^^♪

乱数発生で猫のおみくじを作ってみた

芸能人のBMIを調べてみた。

二重ループで市松模様を作ってみた。

乱数発生でAdoの「うっせぇわ」を繰り返して見た。

文字コードで相性占い

C言語なるほど実験室の整数の除算結果を作ってみた。

西暦を和暦に変換して元号と干支を求める+閏(うるう)年判定

日数計算と曜日求め

【中級編】

ポインタって怖いの?怖くないの??

構造体で新型コロナの昨日の感染者数

構造体連結リストで東京-新潟間の上越新幹線駅名

【アルゴリズム編】

3リットルと5リットルのバケツで4リットル用意するバケツ問題

最大値最小値(ドラえもんキャラのテストの点数)を求めてみた。

バブルソート(ドラえもんキャラのテストの点数)を作ってみた。

■ C言語使用参考書 ■

C言語でコンピュータの仕組みを理解する実験プログラムを作りながら、目で見て納得出来る本です。実際に手を動かしながらC言語でのプログラミングを通してコンピュータの仕組みが学べました。
2進数や演算など、50個のそれぞれ独立した実験があり、どこから始めても良いので、興味のある実験から作って行けます。特に面白かったのは8章の実行時間に関する実験でした。

基本情報技術者試験の範囲のユークリッドの互除法・線形探索・二分探索・ループ・挿入法・連結リスト・二分木・再帰・ハッシュによる探索・クイックソートなどの基本のアルゴリズムをトレースしながら実際に作って学べます。C言語とJavaに対応しています。書籍ではJavaで多くが記載されていますが、C言語のコードはダウンロードサービスから入手して使いました。
私は電子書籍、Kindle版で購入したので、「検索」から「ダウンロード」とキーワードを入力して、C言語のコードを入手して勉強しました。

基本情報技術者試験のアルゴリズムで使う疑似言語はC言語に近いので、この本で紹介されているアルゴリズムを実際に作って自分の環境で動かして学びました。
そのお陰もあって、基本情報技術者試験の配点の上がったアルゴリズムは88%の正答率を取得し、事務職のプログラミング未経験ながら、FEに一発合格致しました。
ご興味のある方は、当ブログの基本情報技術者試験トップページも併せてご覧下さい。

■ Python使用参考書 ■

じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。
Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。

サイトマップはこちらから

トップページに戻る
これからプログラミングを学ぶ方へ
基本情報技術者試験トップへ

Python自作サンプルへ
自己紹介

C言語で3リットルと5リットルのバケツで4リットル用意するバケツ問題を作ってみた。

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

おはこんばんにちは!!!
うにゃうにゃエンジニアの猫です(=^・^=)mm

タイトルに「C言語」とありますが、プログラミング未経験の方もお楽しみいただけるよう、イラストでアルゴリズムをお伝えしています。
絵が下手すぎて笑えますが、その分見やすさと理解しやすさにこだわりました。

IT企業の入社試験の問題?それともお受験とかで出て来るのでしょうか。
3リットルのバケツと、5リットルのバケツを使って、4リットルの水を用意する問題。

そんなの両方に水を入れて8リットルにして、テキトーに半分ぐらいにすれば4リットル、はい、完了!!!

それではアルゴリズムの勉強にならないので、イラストとC言語を使って、水くみアルゴリズムをやってみたいと思います。

「ピッタリ4リットル」が求まるまで、「または」終了ボタン(キーボードのq)を押すまで後判定のdo whileループが繰り返されます。
コードを書く時は、継続条件になるので、
「ピッタリ4リットル」が求まっていない「かつ」終了ボタンを押していない間が継続、という後判定のdo whileループが繰り返されます。
これ、基本情報技術者試験の復習になりますね。

では、やってみます。

3リットルのバケツが空、5リットルのバケツも空、合計0リットルと言う状態です。
その下に、それぞれのバケツを使うメニュー、バケツの水を移すメニュー、
このプログラムを終了するキーがあります。

図で描くとこんなかんじです。

雑な絵でごめんなさいm(__)m

では、3リットルのバケツに水を汲むので、3リットルのバケツを選びます。

バケツに水を汲むを選びます。

3リットルのバケツに3リットルの水が入りました。

図で描くとこうなります。

以下、水を汲む、捨てるなどをシンプルに書きます。

次に、この3リットルの水を5リットルのバケツに移します。

更に、3リットルのバケツに水を汲みます。

この状態で、3リットルのバケツから5リットルのバケツに水を移すと、
こうなります。

ここで、5リットルのバケツを捨てます。
勿体無い!!けれど、今3リットルに入っている残りの1リットルと3リットルを使って、
4リットルが出来そうです。

この1リットルを大きい方に移します。

ここで、小さい方を 3リットルで満たします。

もうすぐです!!!
もうお気づきの方が殆どですね。
この小さい方を大きい方に移したら、フィニッシュですにゃ(=^・^=)mm

おめでとうメッセージとともに、このアルゴリズムが終わりました。
8回の操作でした。

これでばんざ~~~い、なのですが、逆に5リットルのバケツを先に汲む方法もあり、
その方が少ない手順で済むのでそれもやってみます。

では、大きい方を5リットルで満たします。

次に、5リットルから3リットルのバケツに移します。

ここで、またまたもったいないのですが、小さいバケツを空にします。

大きいバケツから小さいバケツに移します。

5リットルのバケツを満たします。

最後に、5リットルのバケツから3リットルのバケツに水を移します。
ここで1リットル減るので、残り4リットル、完成です!!

6回の操作でした。

プログラムはコチラになります。

コードはコチラになります。

#include <stdio.h>

int main(){

int big=0; //5リットルのバケツ
int small=0; //3リットルのバケツ
int x=0; //それぞれのバケツの注水可能な量
char s[20]; //キー入力した文字列
char menu; //選択メニュー

printf(“3リットルバケツ:【%d】リットル\n5リットルバケツ:【%d】リットル\n”,small,big);
printf(“合計【%d】リットル\n—————————-\n\n”,small+big);

//3リットルと5リットルのバケツを使うループ。 4リットルが求まるまでor[q]が押されるまで
do{

//メニューの選択
printf(“3リットルのバケツを使う>>>[s]\n5リットルのバケツを使う>>>[b]\n”);
printf(“3リットルのバケツから5リットルに移す>>>[m]\n5リットルのバケツから3リットルに移す>>>[n]\nq:終了する\n\n>>>>>”);
gets(s);
menu=s[0];

//3リットルのバケツを使う
if(menu==’s’){
printf(“3リットルのバケツに水を汲む>>>[i]\n3リットルのバケツを空にする>>>[o]\n>>>>>”);
gets(s);
menu=s[0];
if(menu==’i’){
small=3;
}
if(menu==’o’){
small=0;
}
}

//5リットルのバケツを使う
if(menu==’b’){
printf(“5リットルのバケツに水を汲む>>>[i]\n5リットルのバケツを空にする>>>[o]\n>>>>>”);
gets(s);
menu=s[0];
if(menu==’i’){
big=5;
}
if(menu==’o’){
big=0;
}
}

//3リットルのバケツけら5リットルのバケツに移す
if(menu ==’m’){
printf(“3リットルのバケツを5リットルのバケツに移す\n”);

//もしも5リットルのバケツに3リットル以上入っていて、空いている分が2リットル以下の場合
if(big>=3){


//5リットルのバケツの量が3リットルより少ない場合
x=5-big;


//5リットルのバケツの空き量
big+=small;
small-=x;
}
else{
big+=small;
small=0;
}
}

//5リットルのバケツから3リットルのバケツに移す
if(menu==’n’){
printf(“5リットルのバケツを3リットルのバケツに移す\n”);
x=3-small; //3リットルのバケツの空き量
if(big3){
small=3;
}

//3リットルのバケツが空になった時
if(small<0){ small=0; }


//5リットルのバケツが溢れた時 if(big>5){
big=5;
}

//5リットルのバケツが空になった時
if(big<0){
big=0;
}

printf(“\n3リットルバケツ:【%d】リットル\n5リットルバケツ:【%d】リットル\n”,small,big);
printf(“合計【%d】リットル\n—————————-\n\n”,small+big);

//終了条件は、4リットル求まった、「または」[q]を押したということは、
//継続条件は、4リットル求まっていない「かつ」[q]を押していないとなることに注意
}while(big!=4 && menu!=’q’);
//入力ループおしまい

if(big==4){
printf(“3リットルバケツ:【%d】リットル\n5リットルバケツ:【%d】リットル\n合計【%d】リットル\n\nおめでとう(=^・^=)!!\n”,small,big,small+big);
}

return 0;
}

長くなってしまいましたが、読んでくださってありがとうございました。
あなたのことを愛しています(=^・^=)mm

このバケツ問題はアルゴリズムを考えるのにとても大事になって来ます。

アルゴリズムの勉強になった参考書2冊

このプログラムを作成するのにヒントになった参考書

です。

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

C言語 乱数発生プログラムで「うっせぇわ!!(Ado)」

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

おはこんばんにちは!!!
うにゃうにゃエンジニアの猫です(=^・^=)mm

クローゼットの中から生まれた女子高生シンガー?Adoさんのデビュー曲「うっせぇわ」

この曲コロナが終息したら、カラオケボックスで歌ってみたいと思っている、43歳です。
自粛ストレスをぶちまけたくて、『生活必需品購入』の途中にあった交差点の所で歌っていましたが人がいたので途中で止めました。

この歌の「うっせぇわ」と言う所を使ってC言語によるプロうグラミングをして見たいと思います。
内容は、「うっせぇ、うっせぇ」を繰り返す回数を1から10までの乱数にします。
その1から10までのランダムな数を、【うっせぇポイント】とします。
乱数はおみくじプログラムで良く用いられますね。
関連記事はこちら
C言語で「ねこ」おみくじを作ってみた

【うっせぇポイント】が7以上だったら「おめでとう」メッセージも表示させるようにして、ゲーム的な要素も加えました。
では、実行結果です。

うっせぇポイントを【4】ゲットしました!!

次に、7以上目指して。

うっせぇポイントをMAX【10】ゲットしました!!
「おめでとうメッセージ」も出ています。

あの、だからなんだんだっ!とか言わないで下さいね。
自分の勉強のアウトプットしながらどなたかのお役に立てたらと思って作っています。

ではプログラムです。

関数Ado

メイン関数

コードはコチラになります。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void Ado(int num){
printf(“正しさとは、\n愚かさとは\nそれが何か\n見せつけてやる!!!!\n\n”);
printf(“…中略…\nはぁぁぁぁぁぁぁぁぁっ!\n\n”);
for(int i=1;i<=num;i++){
printf(“うっせぇ、うっせぇ、 ・・・%dポイント付与(=^・^=)\n”,i);
}
printf(“うっせぇわ!\n\n”);
}

int main(void){
srand((unsigned int)time(NULL));
int num; num=rand()%10+1; Ado(num);
printf(“あなたは”うっせぇポイント”を【%dポイント】ゲットしました!!\n”,num);
if(num>=7){
printf(“%dポイント達成、おめでとうございます(=^・^=)mm。。。\n”,num);
}
return 0;
}

ちなみに、この本で勉強している時にひらめきました。
勉強に戻ります。

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

最後まで読んで下さってありがとうございました。
あなたを愛しています(=^・^=)

C言語なるほど実験室の整数の除算結果を作ってみた。

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

この記事を書いている今(令和3年2月11日建国記念日でお休み。)令和2年度(令和3年1月)に受験した、基本情報技術者試験の結果待ちをしています。
それで、待っている時間と次のステップまでの間を利用して、独習ゼミの講師の矢沢久雄先生が書かれた、
「コンピュータのしくみがよくわかる! C言語プログラミング なるほど実験室」という本で勉強しています。

10進数や2進数、文字コードなどの実験を通しながらC言語でのプログラミングを学んでいっています。
C言語の学習サイトのpaizaラーニングを終えたら(だいたい理解出来たら)この本はプログラミング初心者でも十分読めますし、
基本情報技術者試験の復習にもなります。

それで、第3章の演算に関する実験、80ページのOne Pointに、整数データの除算で、
整数データであっても、剰余を10倍して除算を繰り返せば小数点以下の値を求めることができる、興味があれば、キー入力した2つの整数データの除算結果を作ってみて下さいとありましたので、こういうの好きだから作ってみました。

面白かったです。
条件として、

1、剰余が0になるまで剰余を10倍にして繰り返す
2、同じ剰余が出現したら循環小数だから「…」
3、小数点以下最大20桁まで

という制限を設けて作ってみました。

フローチャートはコチラになります。

割り算の結果21桁(整数も含めて)を格納する配列を用意しました。
この配列の初期化を忘れて、なんでなんでなんで???????????????ってなっていました( ;∀;)

除算は後判定のwhileループを使っています。
先ほどの条件1と3を繰返しの条件にしています。

演算結果はまず整数部を出力して、小数点以下は配列に商を入れた分まで出力します。
小数点第一位の所で「.」を出力するようにしています。

ではまず、7÷2を求めてみます。

これは、7を2で割ると、商が3で剰余が1になります。
商の3を配列に入れます。配列の要素を次にインクリメントして、
余りの1に10を掛け、それを被除数にして除算を実行します。
それを剰余が0になるまで繰り返しました。

次に、10÷5を求めてみます。

それから循環小数になる10÷3を求めてみます。

最後に被除数の方が除数より小さい、2÷8を求めてみます。

ではプログラムです。

コードはコチラになります。

#include <stdio.h>
int main(){
int a,b,quotient; //被除数、除数、商
int pos=0; //配列の位置
int res; //剰余
//商を格納する配列。整数の分もあるので21個のサイズ
int quo[21]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
//整数データをキー入力する
printf(“被除数(割られる数)=”);
scanf(“%d”,&a);
printf(“除数 (割る数)=”);
scanf(“%d”,&b);
printf(“\n%d ÷ %d の除算結果・・・(=^・^=)mm。。。\n”,a,b);
//除算を行う。剰余が0になるまで剰余を10倍して除算を繰り返す
do{
quotient=a/b;
res=a%b;
quo[pos]=quotient;
pos++;
a=res*10;
}while(res!=0 && pos<=21); //演算結果を表示する for(int i=0;i<=pos-1;i++){ if(i==1){ printf(“.”); } if(i>=2 && (quo[i-1]==quo[i])){
printf(“…”);} //小数点第2位以降、同じ剰余が出現の循環小数を「…」表示
else {
printf(“%d”,quo[i]);
}
}
return 0;
}

ご精読ありがとうございました。
制限時間があったとしたら、2時間かかってしまってオーバーだと思うので、もっと早く作れるように頑張ります。

また、FEの試験勉強中はアルゴリズム対策としてこちらの本を使っていました。

迷ったららこれ。

実際に作ってみたい人はこっちも。
JavaとC言語(読者特典のダウンロード)

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

C言語で芸能人のBMIを求めてみた

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

この記事は
・武田真治さん
・内山信二さん(あっぱれさんま大先生の内山くん)
・京本大我さん(SixTONES。ストーンズと読む)
のファンの方、TVで見たことがある方、プログラミングに興味のある方、
ダイエットしなきゃと思っている方に
もしかしたらお役立て出来るかもしれません。

以前JavaでBMIを求めるプログラムを作ってみました。
この時は関数や引数についてイマイチ理解していなかった時。
その後たっぷり勉強頑張って、今度はC言語でリメイクして見ました。

BMIの計算式は、体重(kg)÷身長の二乗(m2)です。
18.5より小さかったら痩せすぎ、25までだったら普通、それ以上はめたぼっちです。

BMIが高い芸能人の方から順にプログラミングを実行していきます。

内山信二さんの身長と体重を入力します。
参考HP

次に武田真治さんのBMIを求めます。
参考HP

武田真治さんと言えば男も惚れる美ボディーです。
彼の筋肉美に嫉妬したのか、コロナとインフルエンザの感染についていろいろと憶測されていた方もいらっしゃったようですが、
それはこちらのサイトをご覧下さい。
参考HP
武田さんに対してそういうことを言っている方は、もっと身体を鍛えましょうよ!!

最後にSixTONESの京本大我さんのBMIを求めます。
私と同年代のオジサン、オバサンたち、SixTONESと書いて「シックストーンズ」と読んだら、若い子に笑われます。
「ストーンズ」と読みます。
参考HP

プログラムはコチラになります。

条件分岐の関数hantei

main関数

コードはコチラになります。

#include <stdio.h>
#include <math.h>

void hantei(double bmi){
char *msg[50];
if(bmi<18.5){
*msg=”いっぱいご飯を食べようね(=^・^=)”;
}
else if(bmi<25.0){
*msg=”その調子(^^♪”;
}
else{
*msg=”脱!めたぼっち( ;∀;) 腰痛に気を付けてねm(=^・^=)m”;
}
printf(“%s”,*msg);
}

int main(void){
char buf[100];
char yourname[20];
double high,weight,h2,bmi;
printf(“あなたのお名前は?= “);
fgets(buf,sizeof(buf),stdin);
sscanf(buf,”%s”,yourname);
printf(“%sさんの身長は?(例189.4)= “,yourname);
scanf(“%lf”,&high);
high/=100;
printf(“%sさんの体重は(例65.8)= “,yourname);
scanf(“%lf”,&weight);
h2=pow(high,2.0);
bmi=weight/h2;
printf(“%sさんのBMIは、%0.1fです。”,yourname,bmi);
hantei(bmi);
}

C言語参考サイト
【C言語入門】pow関数でべき乗計算(累乗、二乗、ルート、平方根)
【C言語】printf文で桁数指定をする方法

最後まで読んで下さってありがとうございました。
愛しています(=^・^=)

参考図書
基本情報技術者試験のアルゴリズムでお世話になった本

C言語の入門講座を終えた今のインプット本
基本情報技術者試験の復習にもなります。
C言語を使ってコンピュータの仕組みが理解出来る実験プログラムがあり、
50の実験がそれぞれ独立しているので、短編小説を読んでいる様に読めてコードを入力して動作させています。

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

C言語 ドラえもんキャラの点数をバブルソートで並び替え(降順)を作ってみた。

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

おはこんばんにちは!!!
うにゃうにゃエンジニアの猫です(=^・^=)mm

バブルソートを使って、スネ夫、のび太、出木杉くん、ジャイアン、しずかちゃんの点数を高い方から(降順)バブルソートを使って並び替えます。
バブルソートは配列の後ろから前後の値を見比べて必要であれば交換して、先頭から値が決定していきます。

スネ夫72点、のび太0点、出木杉君100点、ジャイアン23点、しずかちゃん95点だとします。
最大値に並び替えると、100→95→72→23→0になります。
この最初に配列のインデックス0の所に出木杉君の100、次は1の位置にしずかちゃん、2の位置にスネ夫君…と決定する位置は移っていきます。
この決定位置を表す変数を「kime」とします。

降順のバブルソートの場合、「72,0,100,23,95」は、後ろの95点と23点を比べて、大きい方が前になるように交換していきます。
比較の為に見ている位置は後ろから前に向かっていきます。
この見ている所を変数「mite」とします。

また、値を交換する為の作業領域をtmpとします。

では、実行結果です。

点線の上が並び替える前の配列の状態、下がバブルソートで降順にソートをした後の配列の状態です。

プログラムはこちらになります。

並び替え関数Narabikae

表示関数Hyouji

main関数

コードはコチラです。

#include <stdio.h>
//点数を並び替える
void Narabekae(int score[]){
int kime; //配列の先頭からの確定位置
int mite; //後ろから前へ向かって見ているインデックス
int tmp; //入れ替えの為の作業領域
for(kime=0;kime<5;kime++){ for(mite=4;mite>kime;mite–){
if(score[mite]>score[mite-1]){ //「>」の向きを返ると昇順
tmp=score[mite];
score[mite]=score[mite-1];
score[mite-1]=tmp;
}
}
}
}
//点数を表示する
void Hyouji(int score[]){
printf(“————————————\n”);
for(int i=0;i<5;i++){
printf(“[%d点] “,score[i]);
}
printf(“\n”);
}
int main(){
//スネ夫、のび太、出木杉、ジャイアン、しずかの点数の配列
int score[]={72,0,100,23,95};
Hyouji(score);
Narabekae(score);
Hyouji(score);
}

参考図書
基本情報技術者試験のアルゴリズムでお世話になった本

C言語の入門講座を終えた今のインプット本
基本情報技術者試験の復習にもなります。
C言語を使ってコンピュータの仕組みが理解出来る実験プログラムがあり、
50の実験がそれぞれ独立しているので、短編小説を読んでいる様に読めてコードを入力して動作させています。

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

最後まで読んで下さってありがとうございました。
愛しています(=^・^=)mm

C言語で最大値最小値(ドラえもんキャラのテストの点数)を求めてみた。

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

おはこんばんにちは!!!
うにゃうにゃエンジニアの猫です(=^・^=)mm

国民的アニメ「ドラえもん」のキャラクターの点数を使って、最大値(出木杉君の点数。最高点)と、最小値(のび太くんの点数。最低点)を求めてみます。

点数は「スネ夫、のび太、出木杉くん、ジャイアン、しずかちゃん」の点数の順番で配列 int score[]={72,0,100,23,95};を使います。

関数Dekisugiで最高点を求めます。
仮の最高点を先頭のスネ夫の点数にして、その点数より大きい点数があれば仮の最高点Maxを更新します。

関数Nobitaで最低点を求めます。
仮の最低点を先頭のスネ夫の点数にして、その点数より小さい点数があれば仮の最低点Minを更新します。

関数Dekisugiと、Nobitaは、main関数から呼び出します。
それらの関数内で表示も行っているので戻り値はありません。

引数として、main関数で定義した5人の点数の配列を渡します。

では、実行結果です。

プログラムはこちらになります。

関数Dekisugi

関数Nobita

main関数

コードはコチラです。

#include <stdio.h>
//最高点を求めて表示する関数Dekisugi
void Dekisugi(int score[]){
int Max=score[0];
for(int i=1;i<5;i++){ if(score[i]>Max){
Max=score[i];
}
}
printf(“最高点:%d点!!さすがだね!!\n”,Max);
}
//最低点を求めて表示する関数Nobita
void Nobita(int score[]){
int Min=score[0];
for(int i=1;i<5;i++){
if(score[i]<Min){ //ここを変更すると最小値を求める処理になる
Min=score[i];
}
}
printf(“最低点:%d点( ;∀;) 裏山に隠そう・・・。\n”,Min);
}
int main(){
//スネ夫、のび太、出木杉、ジャイアン、しずかの点数の配列
int score[]={72,0,100,23,95};
Dekisugi(score);
Nobita(score);
}

最後まで読んで下さってありがとうございました。
愛しています(=^・^=)mm

参考図書
基本情報技術者試験のアルゴリズムでお世話になった本


C言語の入門講座を終えた今のインプット本
基本情報技術者試験の復習にもなります。
C言語を使ってコンピュータの仕組みが理解出来る実験プログラムがあり、
50の実験がそれぞれ独立しているので、短編小説を読んでいる様に読めてコードを入力して動作させています。

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

C言語 二重ループ市松模様を作ってみた。

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

おはこんばんにちは!!!
うにゃうにゃエンジニアの猫です(=^・^=)mm

今年2021年、新型コロナウイルスで延期になったオリンピックはどうなることやらですが、
C言語で市松模様を作ってみたいと思います。
市松模様は互い違いに色が塗ってある模様なので、多重ループ(二重ループ)を使って表します。

簡単に図を書来ます。

この図を見ると、ある規則に気づきました。
色が塗ってあるところは、i=0ではj=0,2,4,6,8…
と、iが偶数の所ではjも偶数になっていて、
i=1では色が塗ってあるjはj=1,3,5,7と基数になっています。

つまり、iとj共に偶数 または iとj共に奇数 だったら塗る、
そうでなければ白ということになります。

剰余演算子を使っています。%で表すと、
偶数でしたら%2であまりがゼロ、基数でしたら%2であまりが1です。

これをC言語で書く場合は、
「i%2==0 AND j%2==0」OR 「i%2==1 AND j%2==1」
なので、ANDを&&、ORを||と書いて、

「(i%2==0 && j%2==0) || (i%2==1 && j%2==1))」

になります。
この条件が当てはまる所を■、当てはまらない所を□としてコードを組んでみました。

実行してみると、このようになりました。

プログラムはコチラになります。

#include <stdio.h>
void ichimatsu(int i,int j){
if((i%2==0 && j%2==0) || (i%2==1 && j%2==1)){
printf(“■”);
}else{
printf(“□”);
}
}
int main(void){
for(int i=0;i<10;i++){
for(int j=0;j<20;j++){
ichimatsu(i,j);
}
printf(“\n”);
}
}

最後まで読んで下さってありがとうございました。
愛してます(=^・^=)mm

参考図書
基本情報技術者試験のアルゴリズムでお世話になった本

C言語の入門講座を終えた今のインプット本
基本情報技術者試験の復習にもなります。
C言語を使ってコンピュータの仕組みが理解出来る実験プログラムがあり、
50の実験がそれぞれ独立しているので、短編小説を読んでいる様に読めてコードを入力して動作させています。

C言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し

何の本を読んだらよいのか分からない時に読む記事

この記事はでは、

・もっと自分を向上させたい
・やりたいことを見つけたい
・外出自粛のヒマつぶしをしたい

など、何か本を読みたいけれど、なんの本を読んだら良いのか分からない時に読んで頂けると参考になるかもしれません。

では、早速おススメ本を紹介します。


ムダにならない勉強法
著:樺沢紫苑

この本を選んだのは、「要領が悪い」、「その勉強法はムダ」などと言われづづけて、ダメな自分なままで人生を終えることに抵抗をしたかったからです。
勉強していてもなかなかモチベーションが続かず、結果が出ない、中途半端で自分はダメなんだと思っていましたが、インプットとアウトプットの比率を変えることや、フィードバック、人に教える前提で学ぶことで、螺旋状に成長していけるようです。
私の場合はテキストのコードを入力するなどのインプットが主流でした。もう少し、問題集を解いてみるなどに変えてみた方が良いのかもしれません。
学習量と成長の関係は、正比例ではなく、指数関数的なので、「こんなに頑張っているのに上手くいかない」と思ったら、ブレイクポイントまで近いという言葉に励まされました。勉強仲間もSNSだと見つけやすいので、学習記録のツイートなどをして、記録していこうと思います。


神メンタル 「心が強い人」の人生は思い通り Kindle版
著:星 渉 氏

頑張っても報われない方、いつも一生懸命なのに何故か上手く行かない方、失業と失恋が一度に来てしまったぐらいのショックを受けた方、要領が悪くて悩んでいる方に是非手にとって頂きたい本です。
科学的、脳の仕組みに基づいて、まず何をやったら良いのかが明確になります。
この本にはいくつかのワークがあり、紙とペン、スマホがあれば全て出来ます。
鏡を使うワークはスマホのカメラの向きを反転させて自分が映るようにすれば可能です。ワークの中で一番楽しかったのが、「画像」を使ったワークです。
なぜ「画像」なのか、その理由を本を読んでしっかり理解した上でやると、本当にワクワクして行えました。私はプリンタを持っていたので画像を印刷して、デスクマット、トイレ、玄関に設置しました。
この本を読んで、「何故私は頑張っても上手く行かない人生なのか」ということが具体的にはっきりしてきました。


HELLIQ、METIQ、ISPEに所属する 天才の7つの習慣: 今からでも知能が高まる「習慣化の法則」
著:中村 友彦 氏

IQ200近い天才の方の本で、私のようなIQ95の凡人でも読めて、実践しやすいメソッドの書かれた本、尚且つ手頃なお値段の本を探していて、その条件に全て合致した本を見つけられました。自分の生活習慣の中に比較的取り入れやすい行動や、物の考え方が書かれています。今の時代、SNSでは「はい、論破!」などと言って、自分の主張を相手に押し付けて、論破できた自分は賢い、などと思っている方もいます。本当の天才とは、自分とは違う意見や人のアドバイスをどのように受け止めるのか、判断するのかが、私の今後の人生にとても役立ちそうです。この著者の文書はとても読みやすいので、同じ著者の他の本も読んでみたいです。



Focus4つの集中
著:青砥瑞人 氏

やりたいことが分からない、集中力が足りない、一体どうしたら成長できるのかわからない、と、お困りの方におススメしたい本です。
「何歳からでも、脳・集中力は成長できる」との文で希望が湧き出て来ました。
著者の青砥氏は、高校中退した後、ULCA(カルフォルニア大学ロサンゼルス校)で飛び級で卒業されました。
その経験を基に科学的なアプローチ且つ、すぐにでも出来るトレーニングがいくつも紹介されています。私がこの本で驚いたのは、安心・安全が集中力に如何に重要か、といったことです。
自分の過去を振り返ってみて、安心・安全が無いと自分の行動が好ましく無い方向にいってしまったことで痛感しました。
また、著者の青砥氏はコーヒーを好んでおられます。
青砥氏のコーヒーに当たるのが私の場合アロマなので、自分を成長するのにアロマを利用したいと思います。



働く大人の為の学びの教科書
著:中原淳 氏

大人の学びとは、子どもの頃学校で受けた学びとどう違うのか興味があってこの本を読みました。30歳以上のホワイトカラーのビジネスマンを主な読者層にしている本ですが、多分、25歳以上の社会人の方なら十分読める本だと思います。
人生100年時代と言うと、私たちは長い時間を生きることになり、働くことになります。そうした中で大人の学びについて、「何かしないとまずいのは分かっているけど、何から始めたら良いのか分からない」と思っている方(過去の私のような)は、「学びの迷子」などのコラムもあるこの本は、かなりおススメです。
たまに学びの本で、著者が上から目線な感じな本ありますけれど、この本はそういう感じは私は一切受けなかったです。
何故大人の学びが必要なのか、大人は大人でも今と昔では何が違うのか、どういう学びが失敗に終わるのか詳細に書かれていて、私自身の学びを見直すのにこの本で学んだことを活かしたいです。
7人の方の学びの履歴書については、私は発達障害があるので、読んでいて辛くなる所は流し読みにして、自分でも理解できる、実践できる方の
ストーリーをじっくり読んで「3つの原理原則」と「7つの行動」の理解を深めていきました。


人生がときめく片づけの魔法 改訂版
著:近藤麻理恵 氏

※この本には書いてありませんでしたが、片付ける時は必ずマスクをしてホコリを吸い込まないように気をつけて下さい。

※できればゴム手袋もした方が良いです。

※掃除が終わったら、「手洗い」「うがい」「歯磨き」をしましょう。

※体調が悪い時は無理しないでください。

「片づけ」と「人生」とは、大いに関係があると思った本です。
何を残すか、残さないか選ぶのは判断力。
その判断力の基準が何かをユーモアを交えて書かれています。
片づけには順番があること、その順番通りにやるとリバウンドしないこと、
片づけをしない家族への対応などがあって、「自分は何をすべきか分からない。」
「やりたいことが見つからない」「判断力、思考力が無い」と悩んでいる方に
読んで欲しい本です。
下手な自己啓発本より、遥かに人生の質を上げると思います。
「片付け」と言う「祭りごと」に挑みます!!


ミセス・ノイズィ
著:天野千尋 氏

あの、騒音おばさんがスクリーンに帰ってきた!?2020年に公開された映画の原作本です。この作品はフィクションなので、例の「騒音おばさん事件(奈良騒音傷害事件)」とは関係無いようです。
人間関係を立体的に考察したい方や、普段は動画の閲覧が中心で、あまり読書に慣れていない方にはおススメの本。
作者の方の文才なのか、文章を読んでいると場面がリアルに浮かんできます。
良い年をした大人の女性の激しいバトルで爆笑した場面あり、その周辺の人たちの心の動きや、人生の重みと言うものをじっくり考えさせられました。
直也視点が特に好きで、中でもユナちゃんが好きキャラです。
ただ、この本は、小学校から高校ぐらいまでの読書感想文には向かないと思います。(先生に怒られる可能性が)大学以上ではゼミの性質によるかもしれません。


◆ その他の読書リスト ◆

心がラクになる本
発達障害と健康の本を紹介します。


自己紹介