■
第3回のメニュー
目的
簡単な変数の取り扱いと簡単の入出力とcatとリダイレクトを学ぶ。
なんでプログラミン言語が必要なの。
き介護
前回の復習
(1)以下をサクラエディタでつくり、programディレクトリにtest1.cとして保存
例題1)helloworld!と表示するプログラム test1.c
#include<stdio.h> /*お約束で書くいつか説明*/ int main(){ printf("hello world\n"); /*\nは改行記号*/ return 0; }
#きちんとインデントすること。
スペースのところは、タブにおきかえる。
うまくタブをつかうことでプログラムをみやすく!
#/*...*/に囲まれた文字はコメントです。プログラムをコンパイルするときには無視されます。
人間があとでみてわかりやすいようにいれておきます。
(2)cygwinを起動し,ファイルを保存したディレクトリまで移動。
ヒント1: cd pwd ls を使う。 一つ上のフォルダは cd ..
ヒント2:ウインドウズのc\は /cygdriveにある。
(3)コンパイルする。
- プログラムとは:命令を人間のわかりやす言葉:プログラミング言語で記述したもの
コンピュータが直接読める言葉は0,1で書かれて人間が直観的理解できないので、それを人間が理解しやすいように置き換えたのがプログラミング言語
- 実行ファイルとは:プログラムをコンピュータが直接実行できる命令(機械語)がかかれたファイル。
gcc test1.c -o test1.out
#gcc プログラム -o 出力ファイル名
スペースに注意。0でなくてoオー
#さぁ、どんなエラーがでたかな。
#エラーとかでればそのエラーについてソースコードを修正して、
コンパイルを繰り返す。いつかなにもでなくなるはず。そしたら、次のステップへ。
#実行ファイルができてるかlsコマンドで確認してみましょう。
(4)実行する
./test1.out
実行:./実行ファイル名 で機械語に翻訳されたプログラムを実行する
変数をつかってみる
変数とは値をいれる箱のこと
(1)以下のプログラムをサクラエディタで作り。test2.cに保存
/*...*/のコメントは無視してください。
#include<stdio.h> /*お約束で書く(いつか説明)*/ int main(){ int i; /*変数の宣言 iっていう変数を使うよ用意して intはiは整数だよという意味 実数だったらdouble*/ i=3; /*iに3を代入*/ printf("アイは%d\n",i); /*出力されるときには、 %dがiの値に置き換わる*/ return 0; /*お約束で必ず書く (いつか説明)*/ }
(2)コンパイルして実行してみる。
gcc test2.c -o test2.out
エラーがなくなるまで、コンパイル→ソースコードの修正して保存を繰り返す。
ls
ls はそのディレクトリないのファイル一覧を表示するコマンド
として、一覧のなかに
test2.out
があったら(3)へ
(3)実行してみる
./test2.out
他の例
以下の例もコンパイルして実行してみましょう。
/*...*/のコメントは無視してください。
例1)iの表示を変えてみる。test4.c
#include<stdio.h> /*お約束で書く(いつか説明)*/ int main(){ int i; i=3; printf("i=%d\n",i); /*ここが違う 出力されるときには、 %dがiの値に置き換わる*/ return 0; /*お約束で必ず書く (いつか説明)*/ }
例2)iを変えてみる test5.c
#include<stdio.h> /*お約束で書く(いつか説明)*/ int main(){ int i; i=5; /ここが違う/ printf("i=%d\n",i); printf("i is changed \n") i=3; printf("i=%d\n",i); return 0; /*お約束で必ず書く (いつか説明)*/ }
例3)置き換え test6.c
#include<stdio.h> /*お約束で書く(いつか説明)*/ int main(){ int i; i=5; /ここが違う/ printf("i=%d アイ=%d\n",i,i); /*2つ並べることもできる*/ return 0; /*お約束で必ず書く (いつか説明)*/ }
例4) 2つの変数 test7.c
#include<stdio.h> /*お約束で書く(いつか説明)*/ int main(){ int i; /*iという箱を用意*/ int j; /*jという箱を用意*/ i=3; /*iに3を代入*/ j=5; /*jに5を代入*/ printf("i=%d j=%d sum=%d \n",i,j,i+j); /*%dには順番にiとjとi+jが入る*/ return 0; /*お約束で必ず書く (いつか説明)*/ }
例5) 問題 3つの変数でやってみましょう。test8.c
i=3;j=5;k=10として、3つの変数の積を求めるプログラム。
ちなみに多くのプログラミングで掛け算の記号は「*」です。
i+j iたすj
i*j iかけるj
i/j i割るj
i%j iをjでわった余り
#include<stdio.h> /*お約束で書く(いつか説明)*/ int main(){ int i; /*iという箱を用意*/ int j; /*jという箱を用意*/ int k; /*kという箱を用意*/ i=3; /*iに3を代入*/ j=5; /*jに5を代入*/ k=10; /*kに10を代入*/ printf("i=%d j=%d k=%d prod=%d \n",i,j,i*j*k); /*%dには順番にiとjとkとi*j*kが入る*/ return 0; /*お約束で必ず書く (いつか説明)*/ }
リダイレクト
表示したのをファイルに記録してみましょう。
リナックスでは「> ファイル名」で出力をファイルに書き起こすことができます。それがリダイレクト
といいます。
基本的には、コマンドの後ろに「 > ファイル名 」を付け加えるだけでOKです。
例えば
pwd
pwd > tmp.txt
でファイルtmp.txtのあるフォルダにいって中身をメモ帳やエディタでみてみると、、
pwdの出力内容がはいっていることがわかります。
他には、
ls
ls > tmp2.txt
ファイル tmp2.txtの内容をメモ帳やエディタでみてみると
lsの出力結果が入っていることがわかります。
ちなみにファイルの中身の確認は cat ファイル名 でもできます。
cat tmp1.txt
cat tmp2.txt