基本情報技術者試験、アルゴリズム成長記録

この記事ではプログラミング未経験の私が試験でアルゴリズムの得点率88%まで高められた学習過程を月一ごとに記録したログをまとめています。

基本情報技術者トップへ
午後使用教材へ
午前免除(修了試験)受験へ
午後CBT受験へ

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

プログラミング初心者の私は、アルゴリズムに少しずつ慣れて行った記録を付けていました。記録と言っても日記ですと、毎日となるので、それは大変。
「月記」、月に1度学習状況を記録していました。

アルゴリズムで昨日の自分と比べた成長は分かりにくいですが、さすがに先月の自分と比べたらそれはメモに書き留めて置けました。
少しだけ恥ずかしいですが、そのメモを公開します。

尚、関連記事で言語が未記入のアルゴリズムはアセンブラで作成した自作プログラミングになります。

使用教材です。

2019年(令和元年)10月
午前対策も終盤になり、今日からアルゴリズムを始める。
まず最初に「ユークリッドの互除法」というアルゴリズムを覚えた。
引き算で最大公約数が求められるんだ。
すげー、すげー!!!

関連記事:ユークリッドの互除法

2019年11月
ユークリッドの互除法や線形探索は辛うじて出来たもの、
Tmpなどの作業領域を使って値を交換するバブルソートは頭が混乱してこんがらがる。
挿入法は、もっと分かんない。

関連記事:バブルソート挿入法
C言語でドラえもんキャラのバブルソートを作ってみた

2019年12月
作業領域Tmpを使った値の交換は、時間を掛ければ出来るようになった。
しかし、数値を数字列に変換するアルゴリズムは「1-1÷10=1」
(小数点は切り捨てられるので、1ー1÷10は、1-0.9ではなく、
1-0=1になる)が理解出来ずにトレースに半日もかかってしまった。

2020年1月
まだまだ苦手な挿入法をコツコツとトレース。

2020年2月
構造体の問題のポインタに混乱

2020年3月
基本のアルゴリズムを繰り返す

2020年5月
「アルゴリズム問題を解くコツ」で穴埋めに慣れる。
関連記事:無料教材

2020年6月
アルゴリズム問題を解くコツを会社に行く前にも解き始める。

2020年7月
「アルゴリズム問題がちゃんとわかる本」を終えて過去問演習に入ったものの、令和元年の問題にタジタジ。
ただ、解説を読んで繰り返せば理解出来る。

2020年8月
「毎日挿入法」を始めた。
毎日Javaで挿入法のプログラムのコードを模写した。
躓いているのが引数と戻り値だと気づいた。

2020年9月
アルゴリズムのプログラミング部分を拡大印刷して、自宅のトイレの壁に貼った。
ケースに入れて防水対策をした。
1人暮らしなので、怒る人はいない。

2020年10月
トレースのやり方を計算用紙で色々工夫して見た。
関連記事:飲み込みの遅い私がアルゴリズムを攻略するまで

以上になります。

基本情報技術者トップへ
午後使用教材へ
午前免除(修了試験)受験へ
午後CBT受験へ

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

基本情報技術者試験試験 令和2年度(令和3年1月)スコアレポートの報告と合格体験記

この記事ではCBTのスコアレポートで私の得点率が掲載されています。
午前は免除したので、午後試験のみのスコアレポートです。

基本情報技術者試験トップへ
午前免除試験(修了試験)受験へ
午後CBT受験へ
午後使用教材へ

新型コロナの影響で中止、延期になってやっと受けられた基本情報技術者試験。
受験日令和3年1月8日、合格発表日2月26日で、無事に合格出来ました。

スコアレポートは受験後すぐ、試験会場から駅に向かう間にメールで届きました。
この記事を書いている時点ではまだ令和2年度の試験は終わっていないので、
試験の影響しないように、スコアレポートを問題別に切り取ってこのブログに掲載します。

念の為に選択科目名は伏せて、「その1」「その2」というように掲載します。

セキュリティ(必須)

選択その1

選択その2

アルゴリズム(必須)

言語(アセンブラ選択)

という正答率でした。

1月度の合格率は、なんと58%。
10人受けたら6人ぐらいは受かるということなので、合格はうれしいのですが、
なんだかスッキリしない、モヤモヤした感じがします。

このモヤモヤ感というのは気分が良いとは言えないので、気持ちを切り替えるためにこの記事を書いています。

10人中6人も受かるから簡単なのか、余裕なのか、と言えば、そうでも無いような気がします。
ここまでモチベーション維持をして、試験会場に間に合うように行って、しっかり受験してきたということは、自分で自分にご褒美とかあげても良いのかと思います。
なので、クレープを食べました。

では、10人のうちの4人になってしまった方はというと、その方々も受験した所まで漕ぎつけた訳ですからそのことは誇りに思って欲しいです。

というと、申込したのに受験しなかった方はというと、必ずしも全員が逃げた訳ではないと思います。
避けようのない事故とか、身内に何かあったかなど様々な事情もあります。
(私自身も、親の介護のことをしながら、この試験の勉強をして来ました。)

逃げてしまった方は今度頑張ったり、自分のやりたいことを考えてみたりして行けば大丈夫だと思います。

みんなそれぞれの事情や気持ちがある中、その人の出来ることで頑張っているので、この試験を通して誰かを責めたり、試験の難易度が下がったからと言って下に見たりしないで欲しいと思います。

とは言え、平成の頃の試験ですごく大変な思いの中合格された方と同じ名称の資格取得を名乗るということに対して、何も思っていない訳では無いので、謙虚な姿勢でプログラミングを継続して学んでいきたいです。

次の目標は、Web開発を通して、プログラミングを「学ぶ」から、プログラミングで「稼ぐ」にステージを上げることです。

そのために、GAS、HTML、CSS、JavaScript、jQuery、PHPなどを学んでいます。
その学習進捗をドットインストールの学習ロードマップにまとめました。

さて、今回の試験は試験で最も難しかったのは、モチベーションの維持でした。
そこで、モチベーション維持に心掛けたことを備忘録として書き留めます。

SNSを利用して、モチベーション維持に努めていました。
Studyplusという学習アプリを使って記録して、Twitterと連携していました。
そうすると、勉強垢の方や近い方向の方からのいいねを貰えたりするので、そのことがモチベ維持になりました。


また、過去問を解いたノートをこのブログで公開して、人に見せるつもりで書き貯めて行きました。それもモチベ維持に繋がりました。
関連記事:基本情報技術者試験トップ

加えて、自分の成長をiPhoneのメモに記録していました。
特にアルゴリズムの成長記録を時々見て、「俺、メチャメチャ頑張っている」、と自分に言い聞かせました。
関連記事:アルゴリズム成長記録

以上の対策に加え、今回は整体師の方々にも大変お世話になりました。
FEの勉強は、机やPCに向かって行うことが多く、長時間のデスクワークになり、首、肩、腰に負担をかけてしまいました。

受験勉強中にぎっくり腰になり、整体院に駆け込み、「助けてください!!」って整体師の先生に泣きついたことすらあります。

整体師の先生には、数人の方からお世話になり、セルフ整体(自分で出来るセルフケア)を教わって、首のストレッチやラジオ体操、簡単な筋トレ、元々行っていた格闘技エクササイズなども取り入れて、「座りっぱなし」を避けるように心がけました。

大して頭が良い訳でもなく、要領に関しては破滅的に悪い私が、FEに高得点1発合格が出来たのは、定期的に席を立って体を動かして、能率を上げていったからだと思います。

私なんかよりも遥かに頭の良い方でも、プログラミングやエンジニアの経験のある方でも、中々合格出来ないと悩んでいらっしゃる方は、頭ではなく、能率がカギかもしれません。なので、ストレッチとか、ラジオ体操とか(今YouTubeでもありますし・・・)利用して、なるべく体を動かすことを取り入れて、座りっぱなしを避けて勉強されること、そしてあなたがFEに合格されることを、東京都の片隅からお祈りしております。

AP(応用情報技術者試験)の受験も考えましたが、経済的な事情もあり、これからはFEまでの知識で「いかに稼げるか」を考えることに致しました。

FE取得後、APを目指される方は、本当に尊敬しております!!
FE止まりの私が言うのもなんですが、あなたのAP合格とその後の人生が幸せで満たされることを東京都の片隅からお祈り申し上げます。

基本情報技術者試験トップへ
午前免除試験(修了試験)受験へ
午後CBT受験へ
午後使用教材へ

Java自作サンプルプログラミング

こちらの記事ではJavaの環境構築や簡単な自作サンプルプログラムを取り扱っております。

メインメニューに戻る
これからプログラミングを始める方へ
プログラミングと資格
息抜きに、写真で癒し(=^・^=)

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


環境設定から「HelloWorld」まで

エラーなどの学習ログ

簡単な足し算を作ってみました

私刑にしたいヤツの名前+DEATH!

昭和レトロ攻撃!

カンタン1次元配列「令和版・それが大事」

豊田真由子様降臨で変数とIF文

SNSの繋がりをIFとORで判断

自分探し。Whileループと配列とフラグ

不倫に自粛無視とは何事か!!Forループ攻撃!

西暦と昭和平成令和の元号対応

配列とループでギャルゲー風妄想デートm(=^・^=)m

便所じゃんけんゲーム

Javaで花文字を作って回転させてみた

Javaで好きな人からヴァレンタインのチョコレートがもらえる??

芸能人のBMIを調べてみた

基本情報技術者試験試験の受験者の方や、
Javaを通してアルゴリズムを学びたい方には特におススメです。
C言語のコードもダウンロード出来ます。
同じプログラムをJavとCで書いてみたりして、どっちがあっているのかを考えてみました。

メインメニューに戻る
これからプログラミングを始める方へ
プログラミングと資格
息抜きに、写真で癒し(=^・^=)

アセンブラ過去問のプログラミングとトレース(アセンブラ CASL2 )

この記事では、アセンブラの過去問を見ながら自宅の環境でシミュレーターを使って、実際に動かすことに使った、トレースノートやプログラムのコードを公開しています。

アセンブラを選択された方、本気で挑むときっとトレース力がついてアルゴリズムにも役立つはずです!!

特にメキメキと、トレース力がついた参考書の紹介もしています。

メインメニューに戻る
アセンブラ自作サンプルへ
基本情報技術者試験トップへ
令和2年度(令和3年1月)合格報告



平成21年春   平成21年秋

平成22年春   平成22年秋


平成23年特   平成23年秋


平成24年春   平成24年秋


平成25年春   平成25年秋

平成26年春   平成26年秋



平成29年春   平成29年秋


平成30年春   平成30年秋


アセンブラ(CASL2)の学習は、この本が合格に直結しました。
実際に作りながら、入門から過去問への対応力をメキメキ鍛えらえれました。

メインメニューに戻る
アセンブラ自作サンプルへ
基本情報技術者試験トップへ
令和2年度(令和3年1月合格報告)

アセンブラ 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のコードも掲載しております。

【入門編】

環境構築無しでも使える無料サイトの使い方と環境構築の方法〜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言語自作サンプルメニューへ
これからプログラミングをはじめる方へ
基本情報技術者試験トップへ
息抜きに(=^・^=)写真で癒し