【C言語】本当に初心者のための指南書
プログラミングが注目されているため、どんなものなのかと少し試してみたいという人はいるのではないでしょうか。
プログラミングの参考書や授業でも必ずといっていいほど初めに行う、
"hello,world!"と表示することを実行してみたいと思います。
私はwindowsを使っているので他のOSを使っている方は使用感が違っているかもしれません。
追記
記事の中では、コードを実行する際
cl hello.cpp
としていましたが,文字コードや例外処理(重要ですが少し難しいのでここでは割愛します)等でエラーが発生するケースがありましたので以下の様に訂正いたします。
cl /source-charset:utf-8 /Ehsc hello.cpp
このようにするとエラーが発生することはないと思います。もしエラーが起きた場合はプログラムにバグがあるということなのでデバッグ(バグ消し)してください。なお、本記事のhello.cpp はどちらでも動くことは確認しましたので気にせずにプログラムを体験してください。(2020/05/17)
準備
①Visual Studioをインストールする。インストールの手順は本旨とはそれますので割愛させていただきます。
②インストールできたかを確認する。windowsボタンを押してVの欄にVIsual Studio 2019がインストールされているか確認してください。(私は2017のバージョンが入っていますが実行方法は同じだと思います。)
③そもそも入っている方はこれで準備は完了です。
手順
今回は上図の開発者コマンドプロンプトを使って実行していきます。
(大学の授業ではVisual Studio(下図の∞のようなマークがあるもの)を使いましたが、環境の設定などが少しめんどくさいため簡略化してすぐ実行したいというのが今回の趣旨のためそちらの説明は割愛させていただきます。)
①開発者コマンドプロンプトを開く
②保存したいディレクトリに移動する
ディレクトリという言葉がよくわからない方もいらっしゃると思いますがよくわからない場合は下図と同じようにCドライブ直下に移動してやってみてください。
cd /
とするとCドライブ直下に移動します。cd=change directoryです。
mkdir try
とするとtryというフォルダ(ディレクトリ)を作成できます。
cd try
作ったtryというディレクトリに移動します。
③実際にプログラムを書いてみよう
notepad hello.cpp
このコードはメモ帳でhello.cppという今回のメインとなるものを編集するということを示します。
実行したいことを示すコンピュータへの命令書の作成です。
メモ帳にプログラムを書いてみましょう。
先に言っておきますがここにはミスが含まれています。
プログラミングをしているとエラーが発生することが頻繁にあります。
保存して一回実行してみましょう。
cl hello.cpp
cl によってC、C++のプログラムのはいったものを実行することができます。プログラムをただ書くだけでは動かないということを覚えておいてください。
はい、エラーがでました。構文エラーとかいてあります。ほかの環境で行うと"syntax error"と書かれることもあります。何回も見ることになると思うので覚えておきましょう。
図の中のメモ帳では修正したプログラムがかかれています。上のものと比較してみてもらうとわかりますが、printfの行の最後に" ; "がありません。
C言語は" ; "がつくまでが一つの命令となっています。大事なことなので覚えておいてください。
なお" // "はコメントアウトといい実行とは関係ない人間のための注釈のようなものです。ctrl + s で保存ができるのでショートカットキーの一つを覚えておきましょう。
コードの解説をしておきたいと思います。
#include <stdio.h>
int main(){
printf("hello,world!\n");
return 0;
}
1行目:printf()という関数やほかの入出力を行う関数などが入っている大 きな箱です。includeで書いたコードに出来ることを増やしてあげることができます。今回は入出力をできるようにしてあげました。
2行目:mainというものです。ファイルを実行したときにmainの{}で囲まれた部分のみが実際に動きます(動いているように見えます。)。
はじめのうちはわかりにくいため、int main(){実行したいこと;}という感じで書いていきましょう。
3行目:return 0 という0を返すことによって正常終了であることを示します。最初のうちはわかりにくいと思いますが、自作関数ということを学べば少し理解が進むと思います。比較的理解しにくいことなので、テンプレート化するとよいかもしれません。
あとでテンプレートの感じを示したいと思います。
④実行してみよう
直したコードはちゃんとした構文となったため、hello.exeとhello.objを作り出してくれました。
ここでは拡張子を説明することはしませんがexeは実行ファイルというものです。
hello
hello.exe
のどちらかのコードを入力すると動かすことができます。
実行結果はこの部分です。
hello,worldが出力されています。
exit()
このコードでコマンドプロンプトを閉じることができます。右上の×を押すことと同義ですのでどちらでも構いませんが続けexit()せずにほかのことをすることができます。
テンプレート
どのように書いていいかが分からないと思うのでテンプレートを示します。
#include <...>
int main(){
int ...;
double ...;
function();
return 0;
}
サンプル
hello,world!がなんなんだということで以下のことで試してみてはいかがでしょうか。
開発者コマンドプロンプトを再び開いて、
cd /
cd try
notepad primenumber.cpp
と上から順に実行しましょう。
では素数判定のコードを書いてみました。少し適当に書いてしまったた抜けているところや厳密性が欠けているところもありますが実行して眺めてみてはいかがでしょうか。
#include<stdio.h>
#include<stdlib.h>
int judge(int x);
int main(){
int years;
int result;
printf("How old are you? : ");
scanf("%d",&years);
printf("\n");
if(years<0){
years=abs(years);
}
if(years==0||years==1){
printf("can't judge!");
}
result = judge(years);
if(years>=2){
if(result==0){
printf("your age is prime number.\n");
}
if(result==1){
printf("Your age is composite number.\n");
}
}
return 0;
}
int judge(int x){
int i;
int remainder;
for(i=2;i<x;i++){
remainder = x % i ;
if (remainder==0){
return 1;
}
}
return 0;
}
最初は意味が分からないと思いますがこのコードのわからないところを自分で調べながら勉強していくと理解がしやすいと思います。
最後に
今回は初心者のために書いてみましたが慣れている方にも気づきがあれば幸いです。
私が最初に躓いたのは、プログラムを書くことではなく、実行できないことでした。(続いてポインタという概念でした。)
書いてもあっているかわからなかったり、書いても動かなかったら面白くありませんよね。
実行するまでに力尽きるのは非常にもったいないのでここに実行できる一つの手段を挙げてみました。
できるだけ自分が覚えておいてよかったと思う用語も使っていますのでわからない単語があったら調べていただくとプログラミング学習が捗るかもしれません。
皆様のよい進捗を期待しております。
では、よい一日を!Have a nice day!
この記事が気に入ったらサポートをしてみませんか?