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^=)