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

この記事を読むことによって、

・標準入力
・IFによる分岐
・Whileループ
・Forループ
・代入演算子-=


の理解が深まります。
また、C言語でのコードの後に、 Pythonのコードも追記致しました。
最後に参考書(C言語とPython)の紹介をさせて頂きます。

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

C言語自作サンプル集へ
Python自作サンプル集へ
これからプログラミングを学ぶ方へ
基本情報技術者試験トップへ
自己紹介

新型コロナに便乗した詐欺師をやっつけるプログラムを作って行きます。
詐欺師の最初のHPは300です。
まずは、プレイヤーの勇者が詐欺師と戦う為に、武器を選ぶプログラムを書いて行きます。

勇者は武器を下記の2つの内から1つ選んで攻撃します。
1:「バズーカ砲」 2:「うんこ」
【バズーカ砲】の攻撃力は【20】で、【うんこ】の攻撃力は【40】です。

#include <stdio.h>

int main()
{

    //武器の番号
    int weapon_no;

    //武器の名称
    char *weapon;
    
    //武器の破壊力
    int attack;

    //武器を選択するコード
    printf("武器は何を使いますか?---> 1:バズーカ砲 2:うんこ\n");
    scanf("%d",&weapon_no);
    
    if(weapon_no==1){
        weapon="バズーカ砲";
        attack=20;
    }else{
        weapon="うんこ";
        attack=40;
    }
    
    printf("勇者が選んだ武器は【%s】で、攻撃力は【%d】です。",weapon,attack);
    
}


ここでは勇者が武器に「2」の:【うんこ】を選んで、1回の戦闘で詐欺師に【40】のダメージを与えられるという設定で進めて行きます。

ループのコードです。

#include <stdio.h>

int main()
{

    //武器の番号
    int weapon_no;

    //武器の名称
    char *weapon;
    
    //武器の破壊力
    int attack;

    //武器を選択するコード
    printf("武器は何を使いますか?---> 1:バズーカ砲 2:うんこ\n");
    scanf("%d",&weapon_no);
    
    if(weapon_no==1){
        weapon="バズーカ砲";
        attack=20;
    }else{
        weapon="うんこ";
        attack=40;
    }
    
    printf("勇者が選んだ武器は【%s】で、攻撃力は【%d】です。\n",weapon,attack);
    
    
    //詐欺師の初期のHP
    int SAGI_HP=300;
    
    //whileループで詐欺師の残りHPが150以上の条件で攻撃を行う
    while(SAGI_HP>=150){
        printf("詐欺師の残りHP:【%d】\n",SAGI_HP);
        printf("勇者は詐欺師に【%d】のダメージを与えた!!\n",attack);
        SAGI_HP-=attack; //ここで詐欺師のHPが減る演算子「-=」を使用
    }
    
}

詐欺師の残りHPが180になって、ループ内で40のダメージを受けてHPが140になるとwhileループの条件を満たさなくなって、ループを抜けます。
そこで勇者はお腹が減ったので、もぐもぐタイムで食事を摂ります。

もぐもぐタイムで食べられるのは、「1:もしもバーガー」で勇者の攻撃力が【50】になり、「2:ばななっとうパン」で攻撃力が【75】になります。

コードはこの様に追記します。

#include <stdio.h>

int main()
{

    //武器の番号
    int weapon_no;

    //武器の名称
    char *weapon;
    
    //武器の破壊力
    int attack;

    //武器を選択するコード
    printf("武器は何を使いますか?---> 1:バズーカ砲 2:うんこ\n");
    scanf("%d",&weapon_no);
    
    if(weapon_no==1){
        weapon="バズーカ砲";
        attack=20;
    }else{
        weapon="うんこ";
        attack=40;
    }
    
    printf("勇者が選んだ武器は【%s】で、攻撃力は【%d】です。\n",weapon,attack);
    
    
    //詐欺師の初期のHP
    int SAGI_HP=300;
    
    //whileループで詐欺師の残りHPが150以上の条件で攻撃を行う
    while(SAGI_HP>=150){
        printf("詐欺師の残りHP:【%d】\n",SAGI_HP);
        printf("勇者は詐欺師に【%d】のダメージを与えた!!\n",attack);
        SAGI_HP-=attack; //ここで詐欺師のHPが減る演算子「-=」を使用
    }
    printf("詐欺師は瀕死です!!でも、勇者も腹が減ったのでちょっと休む\n\n");
    printf("何食べる??--->1:もしもバーガー 2:ばななっとうパン\n");
    
    int food_no;//食べ物の番号
    char *food;//食べ物
    int powerup;//もぐもぐタイム後の勇者の攻撃力
    
    scanf("%d",&food_no);
    
    if(food_no==1){
        food="もしもバーガー";
        powerup=50;
    }else{
        food="ばななっとうパン";
        powerup=75;
    }
    
    printf("勇者は【%s】を食べて、攻撃力が【%d】にUPした!!",food,powerup);   
}

ここでは、勇者が「もしもバーガー」を選んで攻撃力が増したという設定で進めます。
勇者が休んでいた間、詐欺師も休んでいたので、HPが140から150に回復してしまいました。

では、戦闘再開です。今度はForループで詐欺師HPの初期値が150で、HPが0以上をループの条件にして、詐欺師をやっつけて世界に平和が戻るコードと実行結果を掲載します。

#include <stdio.h>

int main()
{

    //武器の番号
    int weapon_no;

    //武器の名称
    char *weapon;
    
    //武器の破壊力
    int attack;

    //武器を選択するコード
    printf("武器は何を使いますか?---> 1:バズーカ砲 2:うんこ\n");
    scanf("%d",&weapon_no);
    
    if(weapon_no==1){
        weapon="バズーカ砲";
        attack=20;
    }else{
        weapon="うんこ";
        attack=40;
    }
    
    printf("勇者が選んだ武器は【%s】で、攻撃力は【%d】です。\n",weapon,attack);
    
    
    //詐欺師の初期のHP
    int SAGI_HP=300;
    
    //whileループで詐欺師の残りHPが150以上の条件で攻撃を行う
    while(SAGI_HP>=150){
        printf("詐欺師の残りHP:【%d】\n",SAGI_HP);
        printf("勇者は詐欺師に【%d】のダメージを与えた!!\n",attack);
        SAGI_HP-=attack; //ここで詐欺師のHPが減る演算子「-=」を使用
    }
    printf("詐欺師は瀕死です!!でも、勇者も腹が減ったのでちょっと休む\n\n");
    printf("何食べる??--->1:もしもバーガー 2:ばななっとうパン\n");
    
    int food_no;//食べ物の番号
    char *food;//食べ物
    int powerup;//もぐもぐタイム後の勇者の攻撃力
    
    scanf("%d",&food_no);
    
    if(food_no==1){
        food="もしもバーガー";
        powerup=50;
    }else{
        food="ばななっとうパン";
        powerup=75;
    }
    
    printf("勇者は【%s】を食べて、攻撃力が【%d】にUPした!!\n\n",food,powerup);
    
    for(SAGI_HP=150;SAGI_HP>0;SAGI_HP-=powerup){
        printf("詐欺師の残りHP:【%d】\n",SAGI_HP);
        printf("勇者は詐欺師に【%d】のダメージを与えた!!\n",powerup);
    }
    
    printf("\n詐欺師の残りHP:【%d】\n",SAGI_HP);
    printf("勇者は詐欺師をやっつけた!!世界が平和になった!!");
      
}

勇者が「もしもバーガー」を食べたことにより、攻撃力が50にパワーアップします。
今度は瀕死の詐欺師に50ずつダメージを与えます。
そしてついに!勇者は詐欺師をやっつけて、世界を救いました。

<<Python>>

では、Pythonでも同様にコードを書いて行きます。
Pythonでは、ワクチンがwhileループでデルタ株をやっつけた後、Forループでオミクロンと戦うという設定です。

※ プログラミングの練習の為の例題であり、医学的根拠は全くございません ※

デルタ株が現れ、あなたのワクチン接種済みの回数を標準入力を使って入力するコードと結果です。

print('デルタ株が現れた!!')
delta_hp=300 #デルタ株のHP

#ワクチン接種回数の標準入力
print('ワクチン接種回数は? 1:1回目  2:2回目--->',end='')
num=int(input())

#1回目と2回目のパワー
if num==1:
    msg='1回目接種済み'
elif num==2:
    msg='2回目接種済み'
else:
    print('[1]か[2]を入力して下さい。')

if num==1 or num==2:
    print('あなたはワクチン【'+msg+'です。】')

「1」を入力した場合

「2」を入力した場合

「テキトーな数」を入力した場合

この様に分岐が出来ました。
ここからwhileループで「デルタ株」をやっつけます。

ワクチン1回目の攻撃力を50、2回目接種では攻撃力70でデルタ株と戦います。
whileループを使う点での注意点は、初期値(デルタ株のHP=300)を設定することと、無限ループにならないために、ループを抜ける様演算を行うことです。

今回は、whileループの条件がデルタ株のHPが0より大きかったらループを回すので、その条件を満たしている間はループを繰り返し、HPが0またはマイナスになったらループを抜けます。

しかし、デルタ株のHPの減算を行わなければ永遠にループを抜けられない無限ループになってしまいます。

これらを踏まえてコードを掲載します。

print('\nデルタ株が現れた!!')
delta_hp=300 #←デルタ株のHPの初期値を設定

#ワクチン接種回数の標準入力
print('ワクチン接種回数は? 1:1回目  2:2回目--->',end='')
num=int(input())

#1回目と2回目のパワー
if num==1:
    attack=50
    msg='1回目接種済み'
elif num==2:
    attack=70
    msg='2回目接種済み'
else:
    print('[1]か[2]を入力して下さい。')

if num==1 or num==2:
    print('あなたはワクチン【'+msg+'です。】\n')
    
    while delta_hp>0:
        print('現在のデルタ株のHP:'+str(delta_hp))
        delta_hp-=attack  #←ここで代入演算子を使って減算しているので無限ループを避けられる。
        print('--------------------')

    print('\n<<ループを抜けた>>')
    print('現在のデルタ株のHP:【'+str(delta_hp)+'】')
    print('デルタ株をやっつけた!!\n')

ワクチンの接種回数が1回の場合の実行結果

デルタ株のHPが50ずつ減って、ループの継続条件である「>0」を満たさなくなり、ループを抜けてデルタ株をやっつけました。

ワクチンの接種回数が2回の場合の実行結果

デルタ株のHPが70ずつ減って、ループの継続条件である「>0」を満たさなくなり、ループを抜けてデルタ株をやっつけました。

次にラスボス「オミクロン」が現れます。
今度はForループで戦います。
オミクロンのHPの初期値を1000とします。
ワクチン3回目を接種する場合は攻撃力200で、接種しない場合は攻撃力30でオミクロンと戦います。

コード及び、私は3回目も接種予定なので、打つと選択した実行結果を掲載します。

print('\nデルタ株が現れた!!')
delta_hp=300 #←デルタ株のHPの初期値を設定

#ワクチン接種回数の標準入力
print('ワクチン接種回数は? 1:1回目  2:2回目--->',end='')
num=int(input())

#1回目と2回目のパワー
if num==1:
    attack=50
    msg='1回目接種済み'
elif num==2:
    attack=70
    msg='2回目接種済み'
else:
    print('[1]か[2]を入力して下さい。')

if num==1 or num==2:
    print('あなたはワクチン【'+msg+'です。】\n')

    #whileループでデルタ株と戦う
    while delta_hp>0:
        print('現在のデルタ株のHP:'+str(delta_hp))
        delta_hp-=attack  #←ここで代入演算子を使って減算しているので無限ループを避けられる。
        print('--------------------')

    print('\n<<ループを抜けた>>')
    print('現在のデルタ株のHP:【'+str(delta_hp)+'】')
    print('デルタ株をやっつけた!!\n')

#オミクロンとの戦いの幕開け。標準入力
print('\nオミクロンが現れた!!')
print('3回目接種は? 1:打つ予定  2:打たない--->',end='')
num2=int(input())

#3回目接種の分岐
if num2==1:
    attack2=200
    msg2='あなたは3回目接種予定です。'
elif num2==2:
    attack2=30
    msg2='あなたは3回目は打たない予定です。'
else:
    print('[1]または[2]を入力して下さい。')


if num2==1 or num2==2:
    print('【'+msg2+'】\n')
    #Forループでオミクロンと戦う
    for omicron_HP in range(1000,-100,-attack2):
        print('現在のオミクロンHP:【'+str(omicron_HP)+'】')
        print('--------------------')
        if omicron_HP<0:
            break

    print('\n<<<ループを抜けた>>>')
    print('現在のオミクロンHP:【'+str(omicron_HP)+'】')
    print('オミクロンをやっつけた!!\n')

このプログラミングみたいにコロナ詐欺もデルタ株もオミクロンもやっつけられたらなぁ・・・。

新型コロナに便乗した詐欺師が各地で多発しています。
金銭や個人情報を盗み出したり、なんでそんな詐欺をするような人間がのうのうと生きているのかと思うと、非常に腹立たしいです。
また、デルタ株やオミクロンもです。

そこで、何かできないかと思い、C言語とPythonのループを使って詐欺師・オミクロンをやっつけることにしました。

警視庁のホームページです。
デルタ株についてと、オミクロンについてです。

■ C言語使用参考書 ■

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

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

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

■ Python使用参考書 ■

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

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

C言語自作サンプル集へ
Python自作サンプル集へ
これからプログラミングを学ぶ方へ
基本情報技術者試験トップへ
自己紹介

(=^x^=) 

C言語で、バカボンのパパ「反対」の「反対」は「賛成」なのだ!乗算(掛け算)

この記事では、C言語でシンプルな乗算(掛け算)の練習を通して、int や charといった型、IFによる分岐、標準入力の使い方と関数についてを学べます。
(同じ処理でのPythonのコードも掲載しています。)

具体例として使うのは、「バカボンのパパ」の名セリフでです。
正の数を「賛成」、負の数を「反対」とします。
例えば「-3(反対)」 ×「 -5(反対)」でしたら、答えはプラスの15になるので、「反対の反対は賛成なのだ」と表示されるように致します。

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

C言語自作サンプル集へ
Python自作サンプル集へ
これからプログラミングを学ぶ方へ
基本情報技術者試験トップへ
自己紹介

まずはC言語でコードを掲載し、その後でコードの処理を解説します。

#include <stdio.h>
int main(void){

    int num1;  //最初の数
    
    char *sign1; //最初の数の符号
    
    printf("最初の数を入力=\n"); 
    scanf("%d",&num1);      //標準入力
    
    if(num1>0){
        sign1="賛成";
    }else{
        sign1="反対";
    }
    printf("最初の数%dは「%s」なのだ!\n",num1,sign1);
    }

最初の数num1は数値なのでint型を、最初の数が「賛成」か「反対」かの結果を入れる変数は、文字なのでsign1はchar型を使っています。

数値の入力に、scanfによる標準入力を使っています。

その後のIFによる分岐で、入力した数が正の数か負の数かの結果をsign1に入れています。

最後にprintfで、入力した数値と正か負かの判定結果を表示しています。

同様に次の数、計算結果のコードを記述します。

#include <stdio.h>

int main()
{

int num1; //最初の数
int num2; //次の数
int ans; //計算結果
char *sign1;//最初の数が賛成か反対かを格納する
char *sign2;//次の数が賛成か反対かを格納する
char *sign3;//掛け算の計算結果が賛成か反対かを格納する 

printf("最初の数を入力=");//キー入力 
scanf("%d",&num1); 
if(num1>0){ sign1="賛成";
 }else{ sign1="反対"; 
}
 printf("最初の数%dは「%s」なのだ!\n",num1,sign1);

 
 printf("次の数を入力=");//キー入力 
scanf("%d",&num2); 
if(num2>0){ 
sign2="賛成"; }else{ sign2="反対"
; } 
printf("次の数%dは「%s」なのだ!\n",num2,sign2); 

ans=num1*num2;
if(ans>0){
sign3="賛成";
}else{
sign3="反対";
}
printf("計算結果%dは「%s」の\n「%s」は「%s」なのだ!\n",ans,sign1,sign2,sign3);

}

では、実行してみます。
最初の数に-3、次の数に-5を入れます。
かけるとプラス15になりますので、反対の反対は賛成になりました。

ただ、これでも動きますけれど、IF文による「賛成」・「反対」の分岐が3ヶ所も出てきて冗長なので、関数にまとめました。
また、変数の宣言のintの所も1行にまとめました。

そのコードがこちらです。

#include <stdio.h>

//賛成か反対かの判定をするIF文の関数
char *judge(int x){
    char *msg;
    
    if(x>0){
        msg="賛成";
    }else{
        msg="反対";
    }
    
    return msg;
}


int main()
{

//最初の数と次の数と掛け算の計算結果
int num1,num2,ans;


//最初の数のキー入力
printf("最初の数を入力="); 
scanf("%d",&num1); 

//最初の数のIF文判定関数を呼び出してsign1に「賛成」or「反対」の戻り値を入れる
char *sign1=judge(num1);
printf("最初の数%dは「%s」なのだ!\n",num1,sign1);


//次の数のキー入力
printf("次の数を入力="); 
scanf("%d",&num2); 

//次の数のIF文判定関数を呼び出してsign2に「賛成」or「反対」の戻り値を入れる
char *sign2=judge(num2);
printf("次の数%dは「%s」なのだ!\n",num2,sign2);

//乗算の演算とIF文判定関数を呼び出し
ans=num1*num2;

//計算結果のIF文判定関数を呼び出してsign3に「賛成」or「反対」の戻り値を入れる
char *sign3=judge(ans);

printf("計算結果%dは「%s」の\n「%s」は「%s」なのだ!\n",ans,sign1,sign2,sign3);


}

では、同じ内容をPythonを使って書いて行きます。
コードと実行結果です。

#IF文で正の数だったら「賛成」、負の数だったら「反対」と分岐させる関数
def judge(x):
    if x>0:
        sign='賛成'
    else:
        sign='反対'
    return sign


#標準入力で最初の数と次の数を入力する
print('最初の数を入力して下さい--->',end='')
num1=int(input())
print('次の数を入力して下さい--->',end='')
num2=int(input())

#乗算の計算をする
ans=num1*num2

#「賛成」か「反対」か分岐する関数を呼び出す
sign1=judge(num1)
sign2=judge(num2)
sign3=judge(ans)

print('最初の数「'+str(num1)+'」は【'+sign1+'】なのだ!')
print('次の数「'+str(num2)+'」は【'+sign2+'】なのだ!')
print('計算結果【'+str(ans)+'】は、「'+sign1+'」の「'+sign2+'」は'+'【'+sign3+'】なのだ!!')

バカボンを懐かしむ人と言えば40歳以上??30歳以上でしょうか。
結構年配になってからプログラミングを始めたいという方には、面白い例題かもしれません。

赤塚不二夫先生の有名なマンガ「天才バカボン」のバカボンのパパは、
といえば、「反対の反対は賛成なのだ!」が名セリフだと思います。
老子についてバカボンのパパと一緒に学ぶ本の紹介を致します。

(=^x^=) ここまで、ご精読ありがとうございました。
最後にお世話になった、C言語とアルゴリズムとPythonの参考書の紹介をさせて頂きます。

■ C言語使用参考書 ■

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

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

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

■ Python使用参考書 ■

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

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

C言語自作サンプル集へ
Python自作サンプル集へ
これからプログラミングを学ぶ方へ
基本情報技術者試験トップへ
自己紹介

(=^x^=) 

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

この記事を読むことで、C言語を始めたばかりで、さっきHelloWorldの出力が出来たので、今度は何か計算させてみようかな、と思われた方のプログラミングの演習にお役立て頂けます。
簡単な一桁の足し算から、18782(イヤナヤツ)+18782(イヤナヤツ)=37564(ミナゴロシ)といった、少し複雑な計算にも挑戦して行きます。
(*2すればもっと簡単ですね。それは関数を使ってコードを買いて行きます。)
また、 Pythonのコードも掲載しています。

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

C言語自作サンプル集へ
Python自作サンプル集へ
これからプログラミングを学ぶ方へ
基本情報技術者試験トップへ
自己紹介

では、早速簡単な足し算での計算を始めて行きます。
標準入力で、num1に3、num2に5をキー入力して足し算をすると、計算結果のansに8が入るようにします。
そのコードがこちらです。

#include <stdio.h>

int main()
{
    //加算する2つの数と計算結果を定義
    int num1,num2;
    int ans;
    
    //標準入力でnum1,num2を取り込む
    printf("最初の数を入力=");
    scanf("%d",&num1);
    
    printf("次の数を入力=");
    scanf("%d",&num2);
    
    //加算して結果を表示する
    ans=num1+num2;
    printf("計算結果は%dです。",ans);
    
}

では、「トリビアの泉」という番組で紹介された例で計算をしてみます。
18782(イヤナヤツ)+18782(イヤナヤツ)=37564(ミナゴロシ)の計算をしてみます。

実行結果です。
そうするとこうなりました。

これは掛け算でも2倍にして出来そうですね。
そのコードです。

#include <stdio.h>

int main()
{
    //倍にしたい数とその計算結果
    int num;
    int ans;
    
    //標準入力でnumを取り込む
    printf("最初の数を入力=");
    scanf("%d",&num);
    
    //加算して結果を表示する
    ans=num*2;
    printf("計算結果は%dです。",ans);
    
}

この計算は、だいぶ前に放送されていた「トリビアの泉」という番組で、学生さんから投稿されたトリビアを具体例としてC言語で使った演算をしてみました。

では、 Pythonではどの様に書くのか掲載いたします。
加算のコードです。

#加算に使う数を標準入力
print('最初の数を入力--->>>',end='')
num1=int(input())
print('次の数を入力--->>>',end='')
num2=int(input())

#加算の計算処理と出力
ans=num1+num2
print('計算結果は【'+str(ans)+'】です。')

最初の数と次の数に5と7を入れた場合の実行結果。

18782+18782=37564の計算

掛け算にした場合のコード

#加算に使う数を標準入力
print('2倍にする数を入力--->>>',end='')
num=int(input())

#乗算の計算処理と出力
ans=num*2
print('2倍にした計算結果は【'+str(ans)+'】です。')

(=^x^=) ここまで、ご精読ありがとうございました。
最後にお世話になった、C言語とアルゴリズムとPythonの参考書の紹介をさせて頂きます。

■ C言語使用参考書 ■

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

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

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

■ Python使用参考書 ■

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

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

C言語自作サンプル集へ
Python自作サンプル集へ
これからプログラミングを学ぶ方へ
基本情報技術者試験トップへ
自己紹介

(=^x^=) 

C言語の環境構築無しでWebで利用出来る方法と、実際にお手元のPCで環境構築する方法〜Hello Worldまで(Windows10)

この記事では、C言語の面倒な環境構築無しにスグに利用できる無料Webサイトの紹介と、ちょっと面倒ですが、実際にお手元のPCにC言語の環境を構築する方法が掲載されております。Windows10でのC言語の環境構築の方法を図をふんだんに用いて解説しております。C言語のオススメ書籍も掲載しております。

【環境構築なんてせずに「今スグに」使いたい方】はこちらのWebサイト一択でおすすめです。面倒なログイン無しに使えます。
Compile and Execute C Online 

「Compile and Execute C Online」の使い方を簡単に書きますと、まず「main.cタブ」が選択されていて、「HelloWorld」のコードが既に書かれています。画面は左側が黒い画面でコード、右側が実行結果画面です。
実行するには「Execute」タブを押します。
標準入力も「STDINタブ」から取り込めます。
複数行標準入力する場合も上記のタブから改行して入力可能です。

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

C言語自作サンプル集へ
これからプログラミングを学ぶ方へ

プログラミングと資格
基本情報技術者試験トップへ
自己紹介

【C言語の環境構築が必要な方向け】
では、ここからは実際にお手元のPCにC言語の環境構築をする方法を掲載します。

1、エディタ
2、コンパイラ
3、パスを通す

この3つのステップで見ていきます。
タイトルにあるように、Windowsでの設定です。

1、エディタ
エディタとはアメブロとかやったことある人は感覚的に分かると思うのですが、文章を編集するものです。
大雑把に書くと、C言語でのプログラムを書くのに使うソフトです。
初めてですので、visual-studio-codeというエディタをダウンロードしました。

2、コンパイラ
次にC言語をパソコンが分かる言葉に翻訳するコンパイラを入れます。
コンパイラとは何かについては、こちらのページが分かりやすいです。
MSYS2というコンパイラを入れました。
コマンドを幾つか打つので、その方法がこちらのページの手順に沿って行いました。

もし環境設定後このような豆電球マークの#includeの所の波線が出て来て、こういうふうになったら、こちらのコマンド(ベストアンサーの方の「mingw をインストールするには…」)も入れて再起動してパスを通してまた再起動すると治るかも知れません。「かも」しれません。ですが…。

3、パス(Path)を通す
最後にパスを通します。パスを通すとは何かは、こちらのページが分かりやすいです。
設定方法は、こちらの手順に従います。
このブログの例ですと、エクスプローラーで、「Cドライブ→msys64→mingw64→bin」へと参照して辿って指定します。
その後、この部分をコピーして貼り付けます。

パスがなかなか通らなくて約2日設定にかかりました。
なので、この記事をご覧のあなたが1秒でも早く設定ができるように、私が理解したことをお伝えさせて頂きます。
パスを通すとはどこのフォルダを環境変数の所から貼り付けるのか、ということで迷いました。それを理解するのがコンパイラの「gcc.exe」が入っている場所をパスに追加するのだ、っていうことだったと判明しました。

パスはこのように追加しました。

再起動は終了しましたでしょうか…。

これで役者が揃いました。
それではエディタで以下のプログラミングをしています。
お約束の「hello world」です。

Cドライブの下に、私は猫が好きなので、「catstudy」というフォルダを作って、そこに下記の
プログラムを保存しました。

#include <stdio.h>
int main(void){
printf(“hello world”);
}

※そんなの知っている!!かもしれませんが、””は半角です。

ファイル名は「hello.c」と保存しました。

次にコンパイラに切り替えて、フォルダを移動します。
「cd c:\catstudy」

フォルダ「catstudy」に移動します。
それからさっきのプログラムが保存されているのか確認するために、
「dir」と入力します。

「hello.c」がありました。
次に、コンパイルします。
「gcc hello.c -o hello」と入力します。

再び「dir」で確認すると、「hello.exe」が出来ていることを確認出来ます。
これがコンパイルされたファイルなので、これを実行します。

「./hello.exe」と実行すると、hello worldが出ました!!
やったね!!

日本語も試してみます。さっきのプログラムのhello worldの所を「猫★シエスタ」にしてみます。

これで安心して眠れます。
おやす三毛猫(=^・^=)


■ 参考文献 ■

C言語を通して、面白くてワクワクする実験を体験出来る本です。

基本的なアルゴリズムを通して線形探索・二分探索・連結リスト・二分木・ハッシュなどの基本情報技術者試験のアルゴリズム分野も学べる本です。書籍にはJavaのコードが用いられていますが、C言語のコードはダウンロードで入手可能です。

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

C言語自作サンプル集へ
これからプログラミングを学ぶ方へ

プログラミングと資格
基本情報技術者試験トップへ
自己紹介

基本情報技術者試験午後対策使用参考書、教材の紹介

この記事では、基本情報技術者試験の中でも苦手な方の多い午後分野で、私の得点力をグイグイと上げて行ったことに、特に役立った参考書を紹介しています。

メインメニューへ
基本情報技術者試験トップへ
これからプログラミングをはじめる方へ
令和2年度(令和3年1月)合格報告
自己紹介

この本は、午後対策の本で、午後問題に関連した午前問題も学べます。私は午後が苦手でしたが午前以上の得点を取得出来たことに貢献して下さった本です。
午後問題がバランス良く学べます。

アルゴリズムがこの2冊

独習ゼミの人気No.1講師の矢沢久雄先生が書かれた本です。
トレースってどうやるの?という疑問から私の勉強が始まったのですが、
この本でコツコツトレースをしていたら少しずつ力が付いてきました。

こちらも矢沢先生の本です。基本情報技術者試験のシラバスにあるアルゴリズムと
対応してあり、実際にJavaもしくはC言語で作ってトレースをしていました。
プログラミング→トレース→トレースのコードを追加という学習順序で理解が深まります。

それと必須問題であるセキュリティですが、セキュリティ白書2020を購入しました。

セキュリティの最新情報を文章にグラフ、イラストもあって、白書と言うともっと堅苦しいイメージを持って想像していたのですが、オールカラーで見やすいです。

SQLはこの本を使いました。

SQLもですが、実際に手を動かすと特にグループ化の混乱がだいぶ減って来ます。
エディターなどの環境の用意の仕方も書かれています。
私は特にチャプター3が肝だと思います。
SQLの解釈する順序が、何を見ても分からなかったのですが、この本で氷解しました。

言語はCASL2を選択して、この2冊を使っています。

実際にシミュレーターで手を動かすのが最短だと思うので、こちらのシミュレーターを使っています。

午後問題と言えば、本当に問題が長いですよね。私は本を読むのが超遅いので、問題文を読み切れないうちに時間がどんどん過ぎていき、困っています。

講座はスタディングと独習ゼミを利用しました。この資格に関してはどちらも本当に丁寧な講座だと思いますが、さすがに本を読むのが遅すぎると、読解力でつまずきがちです。なので、読解力に関してはユーキャンの速読講座を利用していました。

メインメニューへ
基本情報技術者試験トップへ
これからプログラミングをはじめる方へ
令和2年度(令和3年1月)合格報告
自己紹介

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

この記事では、あなたのプログラミング学習の成長を奪い兼ねない人や環境を出来るだけ避けるヒントを掲載していおります。

■ 関連記事 ■
これからプログラミングをはじめる方へ
プログラミングと資格について  

ちょっと過激なタイトルになってしまいましたが、「あなたのやる気を奪う人や環境」からは逃げて欲しいと思います。

やる気が無くなるポイントというのは1人ずつ異なりますので、私の場合について書きます。

共通するところもあればあまり共感出来ない部分もあるかも知れません。全部共感出来ないという場合は、多分私こそがあなたにとって避けるべき人物ということになります。


● 否定しまくる人 ●

「有言実行」という言葉がありますよね。私は自分の目標をSNSで言ってモチベーションを上げるタイプです。

しかし「不言実行」で、達成するまで言わない人も当然いらっしゃいます。

それらのどちら良いではなく、その人によって、同じ人でも状況によって異なるので、「それは間違っている!!、不言実行こそが正しい!!」とか、私はあまり、言われたくないです。出来ればそっとしておいて欲しいですし、遠くから「頑張ってね~~~」と気楽に見守ってもらえると私は嬉しいです。

● 束縛する人 ●

上記の項目と重複するかもしれませんが、プログラミングでも楽器でも、語学でも、効率的な方法というのは、その人によって異なります。
そのカギを握っているのは「好奇心」です。


自分がワクワクする勉強をどんどん取り入れることが継続する方法だと私は個人的に思っています。
勿論効率重視でやって行けば上達は早いでしょう。
しかし、いくら効率が良くても、楽しく無かったら続きませんよね。
なので、自分が納得いく方法を模索しながらやって行きたいです。

言語は 1つずつやるべきと思う方はその方法を、更に計画立てて2021年の何月まではこれ、と決めたい方はその方法を、私のように本能の赴くままにやりたい方はそれを、
先人のアドバイスから自分に合いそうな所を取り入れて、納得いく方法で自由にやりたいです。あなたは自由です。好きなように、自分が楽しくなるようにやって欲しいと思います。私もそうします。
楽しく勉強を続けたいのであれば、「自分が変だと思う人」からはなるべく距離を取りたいですね。

●まとめ ●

人のすることに否定や、束縛なんてしても何のメリットも無いですし、無意味だと思っていますが、何故そのようなことをする人がいるんだろう、と考えた所、おぼろげに見えてきました。

彼らは私から自立心を奪い、依存させ、不安にさせ、その不安を煽り、情報商材を買わせようとしているのかなって思いました。
なので「これはアドバイス」、「これは保留」、「これはクソバイス」と断捨離の時の分類のように自分で分けて自分を大事にして勉強を進めていきたいです。

あなたの脳がもっと冴える8つの脳タイプ
著:加藤俊徳
この記事を書くのに参考にした、脳の専門家の先生の本です。

■ 関連記事 ■
これからプログラミングをはじめる方へ
保護者の方へ。子ども(小学生向け)プログラミングの予習
プログラミングと資格について  

メインメニューに戻る
基本情報技術者試験トップへ

アルゴリズム無料教材

メインメニューに戻る 
基本情報技術者試験トップへ
飲み込みが遅い私がアルゴリズムを攻略するまで
令和2年度(令和3年1月)合格報告

この記事では、無料教材の中で特に合格に導いてくださった教材を紹介します。
高品質な教材をタダで使わせて頂いたので、情報提供者の方々に感謝しつつ、どん欲に使用してきたので、無事に合格を掴めました。

過去問の勉強は、基本情報技術者試験ドットコムを使っています。かなり有名なサイトですね。そこの解答解説で、まだ解説が無い分のアルゴリズム問題については、福嶋先生のふっくゼミの公開動画で学んでいます。こちらは視聴者の制限なく、誰でも視聴できます。

次に、独習ゼミの人気講師の矢沢久雄先生が書かれた連載を紹介します。
受験ナビの記事はどなたでも閲覧できます。
過去問を短く編集してアルゴリズムの試験試験に慣れる問題です。
配列を分割するプログラム(マージソート)

この連載の中から、具体例からヒントを掴む練習問題の、
私がトレースしたノートを公開します。
令和3年1月に合格した者です。

古い昭和の人間なので、
「勉強は恥をかいて覚えるもの」という認識があります。

字は下手ですが、汚くはないと思います。

この猫くんは、What’s Michael?(ホワッツマイケル)という
猫マンガの主人公、都合が悪くなると踊ってごまかす猫のマイケルです。
基本情報技術者試験とは関係ないのですが、息抜きに猫を書きました。

基本的には独習ゼミの矢沢先生の教材を使いましたが、他の先生方の教材で、今の自分の状況に合うものがあれば、貪欲に取り入れて学んでいます。

こちらはおススメの参考書です。

◆アルゴリズム問題がちゃんと解ける本
アルゴリズム学習の定番。
アルゴリズムが苦手で何とかしたい方におススメ

◆アルゴリズムはじめの一歩完全攻略
実際に作って学べます。
JavaとC言語を使っています。
私はJavaもCも初めてでしたが、
それでも、ハッシュ関数の所までは、
どうにかついていけました。
もっと頑張ります。

◆C言語なるほど実験室
これからの基本情報技術者試験の対策に必要になりそうなので、使っています。

メインメニューに戻る 
基本情報技術者試験トップへ
飲み込みが遅い私がアルゴリズムを攻略するまで
令和2年度(令和3年1月)合格報告

アルゴリズムのおススメ本、何を買うべきか迷っている方へ

この記事では、アルゴリズムの本は沢山出ているからどれを買うのか悩んでいる方へ、この本だけは絶対手元に置いておいて!という本を紹介します。

プログラミング未経験からアルゴリズム得点率88%を成し遂げたのに役立った本です。

メインメニューへ
基本情報技術者試験トップへ

飲み込みの遅い私がアルゴリズムを攻略するまで
令和2年度(令和3年1月)合格報告


「アルゴリズム問題がちゃんと解ける本 著:矢沢久雄」

この本は基本のソート、サーチを中心とした、
トレース力が身に付きます。

この本の凄い所は、読者特典の
「動く疑似言語」です。
PowerPointとPDFがあり、パラパラ漫画の原理で、
プログラミングの流れを学習できます。

私はPowerPointを使って、スライドショーで見ながら
トレースをしています。
スライドショーは[F5]を押して開始させ、
[Enter]でトレースして、値の変化で色が変わったりするので、
視覚的に学習できます。
スライドが終わったら[Esc]で終了します。

この読者特典「動く疑似言語」を使って、
バブルソートと、2進数の乗算と再帰呼び出しをノートで
トレースしてみました。

他のアルゴリズムは、そのままなんでもっと分かりやすいと思います。

では、まずはバブルソートから

それから、2進数の乗算と、再帰呼び出しです。

かなり噛み砕いて書かれた本ですが、私は最初、
ユークリッドの互除法で感動していたレベルでした。
しかし、最後の過去問までどうにかゆっくりですが、
理解出来ました。

よく頑張ったな。本番も頑張ろう。

メインメニューへ
基本情報技術者試験トップへ

飲み込みの遅い私がアルゴリズムを攻略するまで
令和2年度(令和3年1月)合格報告

【 Excelテーブル機能 】国民的アニメでVLOOKUP関数|IFERROR関数|COUNTA関数|OFFSET関数|表の範囲を可変に操作

この記事を読むことで、

・VLOOKUP関数
・IFERROR関数
・OFFSET関数
・COUNTA関数

・テーブル機能

の概要が掴めます。

Excelで関数を使うとファイルが重くなりますよね。
また、エラーが表示されると見映えも悪くなります。
そこで、実務でよく使う関数である上記の関数の合わせ技を使ってみたいと思います。

では、国民的アニメを題材としたVLOOKUP関数の説明に入ります。
この様な簡易的な表を作成致します。

このシートのセルD2には、サザエさんに出て来る「ワカメ」ちゃんの名前があります。
作品名である「サザエさん」を黄色いセルに表示させます。

黄色いセルにVLOOKUP関数を入れます。
先にこの関数の中身である引数の意味からお伝えします。

=VLOOKUP(ワカメ,表の範囲,列,完全一致)

という意味の指定をして行きます。
表の「キャラ」をキーにして、1列目が「キャラ」、2列目が「作品名」なので、この場合、表示させたい作品名は「2」になります。

完全一致には「FALSE(フォルス。数字の0ゼロでも可)」を入れます。
ここでは、完全一致にはFALSEを入れるんだなぁ〜〜〜って感じで、
あまり深く考えないで、取り敢えず先に進みましょう。

黄色いセルE2に入力する具体的な式は

=VLOOKUP(D2,A2:B5,2,FALSE)

と式を入れます。


では、別のキャラクターの名前を入れるので、一旦ワカメちゃんワカメちゃんを消します。

あ、エラーが出ちゃった(汗)
そんな時は、エラーの時には何も表示させないように、IFERROR関数を使って式を修正します。


式の意味は、

=IFERROR(OKな値 , エラーメッセージなど)

で、OKの値のところに、先ほどのVLOOKUP関数が入ります。

具体的な式には、

=IFERROR(VLOOKUP(D2,A2:B5,2,FALSE),”左のセルにキャラ名を入力して下さい。”)

これでエラーが消えました。
エラーメッセージに所を「”(ダブルクォーテーション)」で囲います。
では、キャラクターの所に、「丸尾くん」と入れます。

無事に作品名である「ちびまる子ちゃん」と表示されました。


これで、めでたしめでたし・・・。
なのですが、この表に追加をする場合もありますよね。
灰色の所が追加分です。

こういう時は、表の範囲を1つ1ついじったり、または、面倒だから100行ぐらい!!
=VLOOKUP(D2,A2:B100,2,FALSE)
なんてする方法もありますが、
そうなると、関数でExcelファイルが重くなるんです。
そこで、加わった行数だけ自動で範囲を動かせるようにします。

まず、その為には、この表は何行分のデータがあるのかを数えるCOUNTA関数を使います。

D列のオレンジのセルに式を入れます。
オレンジのセルの所に、

=COUNTA(A:A)

と式を入れました。
これで、A列の件数が数えられます。


表のタイトルの分があるので、1を引いておきます。

=COUNTA(A:A)-1

これにより、キャラクターの「のび太」〜「みぎわさん」まで「7行」であることが求まりました。

更に、このCOUNTA関数を使って、表の範囲を自動的に拡張致します。
ここで、VLOOKUP関数の第2引数である、表の範囲の所にOFFSET関数を使うことが出来ます。
OFFSET関数の中で、COUNTAで求めた行数を使います。

これ以降OFFSET関数が登場するので、先に下記の記事を読んでおくと、
チョット分かりやすくなるかもしれません。
OFFSETとMATCH関数でドラゴンボールを探せ!!

OFFSET関数と組み合わせます。


現在、この様な式が入っていると思います。

=IFERROR(VLOOKUP(D2,A2:B5,2,FALSE),”左のセルにキャラ名を入力して下さい。”)

この部分の表の範囲であるA2:B5の箇所をOFFSET関数に修正します。

=IFERROR(
VLOOKUP(
D2,
OFFSET(A2,0,0,COUNTA(A:A)-1,2),2,FALSE),”左のセルにキャラ名を入力して下さい。”)

となります。

この例でのOFFSET関数の中身、

OFFSET(A2 , 0 , 0 , COUNTA(A:A)-1 , 2)

は、

OFFSET(基準のセル , 下に移動分 , 横に移動分 , 高さ , 幅)

です。

ちょっとややこしいな・・・と思われた方は、OFFSET関数については、先に下記の記事を読んでおくと、少しだけ分かりやすくなるかもしれません。
OFFSETとMATCH関数でドラゴンボールを探せ!!

基準のセルから下に0、横に0移動します。つまり、移動先はA2自身です。
高さがA2から7つ分の「COUNTA(A:A)-1」で、幅は2つ分が表の範囲になり、これを自動で可変できるようにしました。

では、追加した部分が表示されることを確認します。
E2の名前に「キルア」と入力してみます。

キルアの作品名がハンターハンターと表示されました。

では、更に表を追加して、追加した「いくらちゃん」を検索値にしてみます。
作品名が「サザエさん」と表示され、COUNTAも1行増えて8行になりました。

これで、関数を使った表の範囲の可変が出来ました。


ここまでご覧の読者様の中には、
「OFFSET関数やCOUNTA関数が少々面倒ですので、もっと手軽な方法は無いの?」
と思われた方もいらっしゃるかも知れません。

もっと手っ取り早い方法は、表をテーブルに変換して、テーブル名をVLOOKUPの引数に設定してしまうという方法もございます。

まず、上の表内のどこでも良いのでお好きなセルを選択して、[Ctrl] + [T]を押します。

先頭行を見出しにして、OKを押します。
テーブル内を選択して、「テーブルタブ」を選択します。

この状態で、左側のテーブル1の所に、このテーブルの名前を付けます。

このテーブルに付ける名前は「anime_Table」にしました。

それでセルE2のVLOOKUP関数の第2引数の式を

=IFERROR
(VLOOKUP
(D2,anime_Table,2,FALSE)
,”左のセルにキャラ名を入力して下さい。”)

と修正します。

この状態で、テーブルにした範囲に新しいアニメキャラを追加します。
SPY×FAMILYの「アーニャ」にしました。

テーブルでは隣接した一番下に入力すると、自動で範囲にされるので、

無事にアーニャの作品名に「SPY×FAMILY」が表示されました。
また、COUNTAの所も9行になりました。


ここで、このanime_Tableの色使いが見づらい配色なので調整します。
テーブル内の範囲を選択して、「テーブルタブ」をクリックして、なるべく「淡色」から好きな色を選びます。


お疲れ様でした。ブレイクタイムPhotoは、

目白庭園の紅葉です。

ご精読誠にありがとうございました。

「できるYouTuber式 Excel現場の教科書(長内孝平氏)」

単行本(ソフトカバー)
Kindle版


「なんの才能もない発達障害者の声: 〜 届かない声を届けたい 〜 (障害者雇用向け)」

私、猫★シエスタの著作です。殆どが「発達障害者として働くことや障害とSNSについて」ですが、障害者雇用の事務作業で特に使用頻度の高いキーに絞ったExcelなどのショートカットキーの紹介と、演習問題も掲載しております。
Kindle版

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

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



写真クリエイターとしての活動
自己紹介

Javaで芸能人のBMIを調べてみた

Java自作サンプルに戻る
これからプログラミングを始める方へ
プログラミングと資格
息抜きに、写真で癒し(=^・^=)

関連記事:C言語で芸能人のBMIを調べてみた

令和2年夏、お盆初日にぎっくり腰になってしまい、
もう少し痩せた方が良いらしいので、
BMIを計算するプログラムを作ってみました。
BMIの計算方法は、BMIと適性体重 で調べました。
このプログラムのフローチャートはこちらです。

男性芸能人3名の方のBMIについて調べました。

●ホンジャマカの石塚英彦さん
ニックネーム:石ちゃん
身長175.0cm、体重130kg

石ちゃんは、サカゼンのイメージキャラクターですね。
良く電車で広告を見かけます。

それでは、プログラムを実行して見ましょう。
まずお名前を入力。

それから身長、体重を入力。

結果です。

石ちゃん、本当に、腰痛とかぎっくり腰には
気を付けて下さい。
心配です・・・。

●元NEWSの山下智久さん
ニックネーム:山P
身長174.0cm、体重62.0kg
山Pは筋肉質なので、見た目より重めです。

結果です。
完璧王子らしいです。

●V6の森田剛さん
ニックネーム:森田君?剛くん?
身長163.0cm、体重45.0kg

結果です。
小柄で身軽なイメージがあります。

では、プログラムになります。

import java.util.Scanner;
public class BMI{


public static void main(String[] args){
Scanner scn=new Scanner(System.in);
double high,weight,h2,bmi;
String yourname,msg;

System.out.print(“あなたのお名前は?= “);
yourname=scn.next();
System.out.print(yourname+”さんの身長は?(例189.4)= “);
high=scn.nextDouble();
high/=100;
System.out.print(yourname+”さんの体重は(例65.8)= “);
weight=scn.nextDouble();
h2=Math.pow(high,2);
bmi=weight/h2;

System.out.printf(yourname+”さんのBMIは、%.1fです。”,bmi);
if(bmi<18.5){
msg=”いっぱいご飯を食べようね(=^・^=)”;
}

else if(bmi<25.0){
msg=”その調子(^^♪”;
}

else{
msg=”脱!めたぼっち( ;∀;) 腰痛に気を付けてねm(=^・^=)m”;
}

System.out.println(msg);
}
}

皆さま、BMIに限らず、腰痛にはお気を付けて…。

ここまで読んで下さって、誠にありがとうございました。
もしも、この記事がちょっとでもお役に立てていましたら、
お手数ですが、あなたのSNSやブログで広めて頂けたら嬉しいです。

このプログラムを作るにあたって、勉強になった本を紹介します。

関連記事:C言語で芸能人のBMIを調べてみた

Java自作サンプルに戻る
これからプログラミングを始める方へ
プログラミングと資格
息抜きに、写真で癒し(=^・^=)