第4回 コンピュータと数(変数宣言)とLinux上でのファイルの入出力

本日の目的

コンピュータに数字を覚えてもらう方法を学ぶ。
覚えた数字を表示される方法を学ぶ

技術的には

(1)コンピュータの数の扱い方の簡単なものと変数宣言を学ぶ:intとdouble
(2)printf("%d",i); printf("%lf",x);
(3)Unix コマンドでファイルの扱い方: リダイレクト「>」と「cat」
 
キーワード:変数,変数宣言,変数型

http://itpro.nikkeibp.co.jp/members/ITPro/ITBASIC/20020624/1/
を参考。

コンピュータの5大要素

コンピュータを整理すると下のようになる。
http://e-tech.life.hyogo-u.ac.jp/kyouzai/kyouzairon/godai.html
この中でコンピュータに特に特徴的なのは、計算機構とメモリー、それはただの電気回路。
今回は、記憶装置をC言語を使って使うためのお話。
(前回は出力装置をつかうためのお話)

コンピュータを開いてみると:
https://www.google.co.jp/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=sLQUE-YaAJlDJM&tbnid=OMF77B8zW08GUM:&ved=0CAUQjRw&url=http%3A%2F%2Fkakaku.com%2Fmagazine%2F002%2Fp01.html&ei=HAOhU7StI8m78gWz9IL4CQ&bvm=bv.69137298,d.dGc&psig=AFQjCNFj3eRtDKd9lqNy7leNxHAfh2NBXg&ust=1403147402948872

CPUが計算装置
メモリーが短期記憶装置(ここの使い方)

そもそもコンピュータは数字をどんなものとして考えているの?

コンピュータはただの電気回路
(要するに小学校でならった下の絵みたいなの)
http://xn--mdyo4np5m.com/wp-content/uploads/2012/05/ph12.jpg


電気回路で数字をあらわす。
コンピュータの整数と実数と2進数
(この節は忘れても大丈夫)

0と1で情報を表す。

コンピュータは0,1だけですべての情報を表します。
なぜ、0,1だけで表すかというかというと、
(1)電気回路等のonとoffなど区別しやすいからです。
(2)あいまいさが少なくなる。例えば、雑音が乗っている環境での3と4の区別大変

2進数と0と1だけで整数で表す。

0と1だけで整数を表すことができる。
(1)0と1


0と1だけで実数を表す(今回はパス、次回へ)

浮動小数点、
2進数では、0.1はあらわせない!

C言語をつかってコンピュータに数字を覚えてもらう。

概要

おおざっぱにいうと

(1)コンピュータにこれに記憶してねと記憶の場所を教えてあげる(変数宣言)。
(2)その箱に数字をいれる。 (i=3)
(3)それを使う。

という手順。
 

コンピュータの記憶場所はマンションみたいなもの。

覚えるためには部屋と表札が必要、部屋を与えて表札、必要な部屋の大きさ
教えてあげるのが変数宣言。

変数

数値や記憶を保存する場所

整数 test4_1.c

#include<stdio.h>
int main(){
 int i; //int の意味は後ろのintとdoubleの節を参照;
 int j;  
 i=3;
 j=5;
  printf("iは%d\nです",i);
   printf("jは%d\nです",j);

}


コンパイルして実行してみましょう。

gcc test4_1.c -o test4_1.out

エラーがなくなるまで、プログラムの修正、コンパイルを繰り返し、なくなったら、
実行

./test4_1.out

そうすると,

iは3です。
jは5です。

と表示されるはずです。。3と5を記憶して,後に使えました。

実数(浮動小数点数

#include<stdio.h>
int main(){
 double x;
 x=3.12;
  printf("xは%lf\nです",x);

}

インデント=タブでの行頭を忘れずに。

int とdouble

この節のはじめに書いたように、整数と実数はかなり違います。
そこで、コンピュータにその違いをはじめに教えてあげる必要がある。
そのため上のプログラムのように、C言語では、プログラムの一番はじめに、int とdouble とか、この種類の変数をこの名前で使いますよとコンピュータに教えてあげています。
この変数の種類のことを「変数の型」もしくは「型」とよび、このようにどのような変数を使うかを
教えてあげることを「変数宣言」といいます(くわしいことはさらにあとで)。ほかにも文字型とか文字列型などがあります。

%dと%lf

printfの文字列のなかで使うと2つめの変数(引数)にで示す数字に順番に置き換わる。
とりあえず、整数のときは%d,実数(double 型)の場合は%lfを覚えてください。
(そこそこ奥が深いので、詳しくは 参照)。

int 型->%d
double 型 -> %lf

2つの整数

#include<stdio.h>
int main(){
 int i,j;
 i=3;
 j=5;
  printf("iは%dです jは%dです\n",i,j);

}

足し算と引き算をしてみる

i+j は足し算。
i-j は引き算

#include<stdio.h>
int main(){
 int i,j;
 i=3;
 j=5;
  printf("iは%dです jは%dです i+jは%dです i-jは%dです \n",i,j,i+j,i-j);

}

コンピュータの5大要素
http://e-tech.life.hyogo-u.ac.jp/kyouzai/kyouzairon/godai.html
CPU
http://www.eidos.ic.i.u-tokyo.ac.jp/~tau/lecture/komaba_joho/gen2/slides/6-computer.pdf


あと、1000000の実験とか


私メモ

#include
int main(){
int i=10000000000
int j=0;
int k=0;
k=i+j;
printf("k=%d\nです",k);


}

整数をいれなくてよい。

セミコロン:
文字
UTF8で保存。」

ダブルコーテーションの話。


int i;
int j;

int i,j;


i,j->a,bに変えたほうが色々な変数を使う例になる。

某氏のメモ

プログラミング第4回

なぜ0と1なのか?
⇒有りか無ししかないから。(曖昧ではない)
2進数は片手で16までいける!

コード一行毎に最後に;(セミコロン)を入れないとエラーになる。
【;】は【。】と同じ意味。

【コードについて】
int(整数で使う用の部屋を用意して!)

int i
iという整数を使いますよ。
int j
jという整数を使いますよ。
【i】や【j】の場所にはアルファベットならなんでもOK。

\nは改行

printf("iは%d\nです",i);
iの中身を%dに置き換えなさい!

表示する中身は""の間。

足し算、引き算もできる!

宣言していないアルファベットは読み込めない。

SQL言語とは・・・データベース用のプログラミング言語

intは32bit
32個0と1の空間を確保することを意味する。
実質31個分の桁。一個は+とか-で使用している。

2の31乗まで数字が使える。

【名言】暗黙の~