プログラミング基礎覚え書き①(入出力の基本)

ノイマン型コンピュータ
メインメモリにプログラムを記憶させ(プログラム内蔵方式)、そのプログラムの命令を一つずつ取り出して実行し、その処理が終了したら次の命令に取りかかる(逐次制御方式)タイプのコンピュータ。アイディアのたたき台を作ったフォン・ノイマンに由来する。
現在のほとんどのコンピュータがこれに当たる。コンピュータといえばノイマン。ノイマンといえばコンピュータ。

逐次処理
プログラムは原則として先頭から順番に一文ずつ処理をされる。
手続き型コンピュータ言語は上の文から下の文へ逐次処理される。

コメント
プログラムの人間向けの解説。長いプログラムの場合はコメントがないと作者も忘れて意味不明になるので重要スキル。
//ではじめるか、/*と*/で挟む。こうするとコンピュータはそのあいだの文章は無視して飛ばす。

コマンドプロンプトのコマンド
昔はマウスがなかったため、ファイルの移動や操作も全てコマンドで行なっていた。
dir フォルダ表示
del フォルダ削除
mkdir メイク・ディレクトリでフォルダ作成
rmdir リムーヴ・ディレクトリでフォルダ移動
type フォルダの中身を表示

main関数
コマンドプロンプトを実行するための決まり文句。
int main(void)
{

なんらかの命令文
return 0;

}

このとき中かっこの中身をブロックと呼ぶ。
return 0; はここまで来たらコマンド終了という意味。

※ブロック内の各行末の;を忘れない!!

C言語
1972年にAT&Tベル研究所のデニス・リッチーが作ったプログラミング言語。
初心者がコンピュータを理解するのにいい言語。
分類上は機械語に近い低級言語(人間の言語に近いと高級言語。人類の意地を感じる)。
歴史が長く、多くのプログラミング言語に影響を与え、現在ブームのJava言語、JavaスクリプトなどはC言語の文法を参考に生まれた。

※スペースを表示させるようにするとバグがみつかりやすい。

プリプロセッサ命令
ソースコードをコンパイルする際の下処理の命令文。
コマンドプロンプトなどはなくても許してくれるが、C言語では最初の行に入ってないとコンパイルしてくれない。

最初に習うやつが、かの有名な

#include <ファイル名.h>

で、<>カッコの中の名前のファイル(※ヘッダファイル。拡張子は.h)を、コンパイルの際に読み込むことができる。
インクルードは含めるという意味。

ちなみによくあるstdio.hってなんやねんってかんじなんだけど、このファイルはC言語に標準装備されているファイルで、別に自分でスタジオを作る必要はない。
もっというと、スタジオという意味ではないらしい。
読み方は、スタンダードアイオードットエイチで、スタンダード・インプット/アウトプットの略らしい。
そして、このファイルがないと、C言語では文字表示のコード「printf」が機能しない。

文字列の改行
いくらエンターキーを押してもコンパイルしてくれない。
表示したい文字列の中に¥nを入れると、それ以降の文字列を次の行にしてくれる。

変換仕様
画面に文字列を出力したい際に用いるコードのこと。このコードのあとにカンマを打つと、カンマ以降の文字列がコンパイルの際に画面上に出力される。
%cは文字の表示。変換したい文字は''で挟む。
%dは整数の表示。変換したい数字はそのままでOK。
%fは小数の表示。変換したい小数はそのままでOK。
%sは文字列(2文字以上)の表示。変換したい文字列は""で挟む。

※使用例
printf("すきなこんだては「%s」です.¥n","ハンバーグ");

エスケープシーケンス
10進法の数字を8進法や16進法に直すのは非常に面倒くさいが、決まったコードを使うとコンパイルの際に10進数を自動的に8進数などに直してくれる。
10進数→8進数:数字の前に0をつける。014は16となる。
10進数→16進数:数字の前に0xをつける。0xFは15となる。


変数にはそれぞれタイプがあり、このタイプを決めてから好きな名前をつけることができる。
変数なので、ここに様々な入力値を代入することができる。
char・・・文字の表示。数値になおすと-128~127(1バイト)。
int・・・整数の表示。対応できる値は-2147483648~2147483647。
float・・・小数の表示。対応できる値は7桁まで(4バイト)。
double・・・小数の表示。対応できる値は15桁まで(8バイト)。

※ちなみに、整数×小数といった異なる型同士の演算の場合、コンピュータは精度の高い方に合わせて値を返す。
例えば、2×3.14は6ではなく、6.28を返す。

0.1(1÷10)を二進法で表した場合
1÷10は10進法では割り切れるが、2進法では無限小数になってしまうため、バイトが大きい型の方が正確な値を返すことができる。

#include

int main(void)
{

float F =0.1;
double D =0.1;

printf("float型は1÷10= %.18f\n",F); //「%.18f」の部分は18桁まで少数を出せという意味。
printf("double型は1÷10= %.18f",D);

return 0;

}

コンパイル結果
float型は1÷10=0.100000001490116119
double型は1÷10=0.100000000000000006
※つまりdouble型の方が精度が高い(0.1ジャストに近い)。

キーボードからの入力
具体例を見ちゃったほうが早いと思う。

#include

int main(void)
{

char ch1,ch2,ch3,ch4; //変数の宣言※変数の名前は別にchじゃなくてもなんでもいい。

scanf("%c",&ch1); //1文字目の入力
scanf("%c",&ch2); //2文字目の入力
scanf("%c",&ch3); //3文字目の入力
scanf("%c",&ch4); //4文字目の入力

printf("%c%c%c%c が入力されました。\n",ch1,ch2,ch3,ch4); //1~4文字の出力先。

return 0;

}

このように、「scanf」というコードを入れると、コンピュータは待機状態になり、キーボードからの入力ができるようになる。
ここでユーザーが好きな文字や数値を入力し、最後にエンターキーを押すと、その文字や数値が任意の場所に読み込まれ、printfによって出力される。
ちなみにscanfのコードでは、各対応変数の前にを入れなければならないのだが、これはよく忘れる。
Calendar
<< June 2020 >>
SunMonTueWedThuFriSat
 123456
78910111213
14151617181920
21222324252627
282930
search this site.
tags
archives
recent comment
recent trackback
others
にほんブログ村 科学ブログへ にほんブログ村 科学ブログ 恐竜へ カウンター
admin
  • 管理者ページ
  • 記事を書く
  • ログアウト