[Editor]VSCode for Windows, MacOS, Linux

Visual Studio Code(以下”VSCode”とする)とは、Windows OSや.NET Framerorkの開発元であるMicrosoft社が開発したオープンソースのテキストエディタだ。マルチプラットフォームなのでWindows、MacOS、Linuxのいずれの環境にもインストールできる。

VSCodeの特徴

(1)軽量な動作

プログラムの開発はIDEで行われるケースは多いが、機能が豊富なIDEは起動や動作が遅くなってしまうケースもよくあることだ。もっとわかりやすく言うと、「もっさりしていてめんどくさい」だ。

(2)デバッグ機能

一般的なテキストエディタではコードを入力して保存するだけだが、VSCodeではプログラムのデバッグを行うことができる。デバッグする言語によって拡張機能のインストールが別途必要ではあるが、動作の重くなりがちなIDEを使わずにデバッグできる点はエンジニアにとって嬉しい機能のひとつだと言える。

(3)複数言語のサポート

C/C++やC#、VisualBasicなどMicrosoft社の開発言語はもちろん、JavaやPython、SQL、JSONなど多くの言語をサポートしている。サポートされている言語は「シンタックスハイライト」と呼ばれる機能でプログラム言語の構文がハイライト表示されるため、見やすく、また書きやすくプログラミングできる。

(4)コードの自動補完

テキストエディタでありながらIDEなどに備わっている自動補完(Intellisense)機能がある点は非常にポイントが高いと言える。標準では対応している言語は限られてはいるが、拡張機能で準備されている言語もあるのでチェックしておくようにしよう。

(5)Git連携機能

プログラムのバージョン管理システムとして有名なGitとの連携機能が実装されており、Gitリポジトリにプッシュ、プルを行うことが可能だ。あらかじめGitのインストールが必要ではあるが、Gitでバージョン管理を行っているプロジェクトであれば作業効率のアップが期待できる。

ダウンロードとインストール

  1. ウェブページを開く
    https://code.visualstudio.com/ 
  2. Visual Studio Code」の「 ダウンロード」をクリック.※ Linux 版, Mac 版が欲しいときは「さらに詳しく」をクリック
  3. ダウンロードした .exeファイルを実行する.

セットアップ

  1. VS Codeのメニューから「フォルダを開く」を選択し、ソースコードがあるフォルダ(例えば:Documents¥C)を指定する。
  2. 左のファイルペンから適当のソースコードを開き
  3. 勧めExtensionsが表示され、好みでインストールする。
  4. Extensionsから日本語のLanguage Packをインストールすると、メニューの日本語化ができる
  5. includeファイルが見つからない場合、波線が表示され、クリックすると、電球マークが現れ、それをクリックすると、include設定へ誘導され、正しいパスを設定する。

ターミナルで実行

  1. VS Codeのターミナル(開いてなければメニューから「新規ターミナル」を開き)で実行する。
  2. コマンドラインでコンパイル、実行などする

> gcc hello.c -o hello.exe

参考:

C言語認定試験(2級出題範囲)

参考(2級出題範囲)

出題内容
定数 浮動小数点定数 指数形式を許す
浮動小数点接尾語はf、l、F、Lのいずれか
整数定数 整数接尾語として長語接尾語(l、L)を含む
文字定数 拡張表記は8進拡張表記、16進拡張表記を含む
文字列リテラル 拡張表記は8進拡張表記、16進拡張表記を含む
列挙定数
演算子 ビット演算子、条件演算子、代入演算子、キャスト演算子、ポインタ/アドレス演算子、構造体演算子、sizeof演算子
宣言指定子 void、short、long、float、double、構造体共用体指定子(struct、union)、列挙型指定子(enum)、型修飾子(const)、typedef
変数 上記型指定子の単純変数、配列
外部定義
プリプロセッサ機能 ファイルの包含
ライブラリ関数
数学関数<math.h>
double cos(double x); double sin(double x);
double tan(double x); double exp(double x);
double log(double x); double log10(double x);
double pow(double x, double y);
double sqrt(double x); double ceil(double x);
double fabs(double x); double floor(double x);
入出力関数<stdio.h>
NULL、EOF、FILE、stderr、stdin、stdout、
FILE *fopen(const char *filename, const char *mode);
int fclose(FILE *stream);
int fscanf(FILE *stream, const char *format, …);
int fprintf(FILE *stream, const char *format, …);
int sscanf(const char *s, const char *stream, …);
int sprintf(char *s, const char *stream, …);
int fgetc(FILE *stream, …); int fputc(int c, FILE *stream);
char *fgets(char *s,int c, FILE *stream);
int fputs(const char *s, FILE *stream);
int getc(FILE *stream, …); int putc(int c, FILE *stream);
char *gets(char *s);int puts(const char *s);
int ungetc(int c, FILE *stream);
一般ユーティリティ関数<stdlib.h>
NULL  double atof(const char *nptr);
int atoi(const char *nptr);
long int atol(const char *nptr);
int rand(void);  void srand(unsigned int seed);
int abs(int i);  long int labs(long int j);
文字列操作関数<string.h>
NULL  size_t
char *strcpy(char *sl,const char *s2);
char *strncpy(char *sl,const char *s2, size_t n);
char *strcat(char *sl,const char *s2);
char *strncat(char *sl,const char *s2, size_t n);
int strcmp(const char *sl,const char *s2);
int strncmp(const char *sl,const char *s2, size_t n);
char *strchr(const char *s, int c);
char *strrchr(const char *s, int c);
char *strstr(const char *sl, const char *s2);
size_t strlen(const char *s);
その他
  • main関数の引数、整数型以外の関数
  • 自己参照構造体
  • 変数の記憶クラスと通用範囲(auto、static、register、extern)

※3級出題範囲含む

注)各級とも日本工業規格 (JIS) X3010 で出題・解答する。

C言語認定試験(3級出題範囲)

C言語プログラミング能力認定試験
(C-Language Programming Skills Qualification Test)

http://www.sikaku.gr.jp/js/cp/

C言語認定試験とは

C言語を駆使した応用プログラムの作成能力を認定

C言語は、記述の自由度が高く、使用可能なプラットホームが多いなど、使用できる場面が多いことから、現在最も広く普及しているプログラミング言語です。このC言語のプログラミング能力の測定を目的に、1992年より開始されたのがサーティファイ 情報処理能力認定委員会が主催する「C言語プログラミング能力認定試験」です。
保有スキルのレベルに合わせた3段階の認定基準を設けることにより、これから新たにプログラミングの学習を始める方から、現在プログラマやシステム・エンジニアとして既に活躍されている高度IT技術者の方まで、幅広い皆様から受験いただいています。

初学者から、ビジネスシーンで活躍できるプログラマまで、幅広いスキルを測定

「C言語プログラミング能力認定試験」は、これからプログラミングを学び始める方を対象とした「3級」から、プログラマやシステム・エンジニアとして活躍されている方の保有スキルを客観的にアピールできる「1級」まで、幅広いスキルを測定しています。
特に「1級」では、実際にPCを使用して、プログラムの仕様変更やこれに伴うプログラミング作成(コーディング・コンパイル・デバッグ)を行う、極めて実践的な資格・検定試験として、IT業界でも高く評価されています。

基本情報技術者試験の午後の試験対策としても有効

「C言語プログラミング能力認定試験」の「2級」及び「3級」は、経済産業省認定「基本情報技術者試験」の「午後問題」の出題形式も意識して作成しています。そのため、「基本情報技術者試験」の学習と連動した活用も多く見られます。保有スキルのレベルに応じた級位取得を目標としていただくことで、C言語のプログラミング能力を高めるだけではなく、「基本情報技術者試験」の合格にもつなげていくことができます。

C言語認定試験について

試験名

C言語プログラミング能力認定試験
(C-Language Programming Skills Qualification Test)

試験目的

C言語を駆使して応用プログラム(言語処理系、ユーティリティなど)を作成する能力を認定します。

認定基準

一級 C言語を駆使し、応用プログラム(言語処理系、ユーティリティなど)が作成できる能力を有する。また使用しているOSについて理解をしている。
二級 小規模のプログラム(500行程度)が適切に(理路整然、簡潔、正しく、速く)書ける。また各種基本アルゴリズムを理解している。
三級 C言語の概念を理解し、簡単なプログラムが書ける。

 

参考(3級出題範囲)

出題内容
定数 整数定数 10進定数、8進定数、16進定数
整数接尾語は符号無し接尾語(u、U)のみ
文字定数 ワイド文字定数(L’c文字の列’)を除く
拡張表記は単純拡張表記のみ
文字列リテラル ワイド文字列リテラル(L”s文字の列”)を除く
拡張表記は単純拡張表記のみ
演算子 算術演算子、インクリメント演算子、デクリメント演算子、(算術の)代入演算子、関係演算子、等値演算子、論理関係演算子、括弧演算子、コンマ演算子
型指定子 char、int、unsigned、signed
変数
  • 上記型指定子の単純変数、配列
  • 初期化の構文
基本制御文 break、continue、do、for、if、return、switch、while
プリプロセッサ機能 #define、#include
ライブラリ関数
入出力関数<stdio.h>
EOF  NULL
int printf(const char *format, …);
int scanf(const char *format, …);
int getchar(void);  int putchar(int c);
文字操作関数<ctype.h>
int isalnum(int c);  int isalpha(int c);
int iscntrl(int c);  int isdigit(int c);
int isgraph(int c);  int islower(int c);
int isprint(int c);  int ispunct(int c);
int isspace(int c);  int isupper(int c);
int isxdigit(int c);  int tolower(int c);
int toupper(int c);
その他 Cの歴史と特徴

 

現在使用するC言語教科書には、文字操作関数<ctype.h>の内容について不足するので、

[amazonjs asin=”479815038X” locale=”JP” ]

下記のサイトを参考にしてください。

  • http://www.c-tipsref.com/reference/ctype.html
  • http://www.bohyoh.com/CandCPP/C/Library/ctype_h.html

 

[GCC]C Compiler on Linux

C言語の最小限の開発環境を作る手順

  1. エディタをインストール
  2. コンパイラをインストール
  3. コンパイラにPATHを通す設定をする

エディタをインストール

Atomという新世代のエディター(Windows、Mac OS X、Linux対応)をインストールしてください。

公式サイト

コンパイラをインストール

LinuxでのC言語開発環境について解説しています。「GNU Compiler Collection」が一般的です。

それでは gcc をインストールしていきます。

Debian

Debianでは、apt-getコマンドを使ってgccをインストールします。

# apt-get install gcc

Ubuntu

UbuntuはDebianベースのディストリビューションなので、Debianと同じようにa apt-getコマンドを使います。ただ、Ubuntuにはrootユーザーという概念がないので、sudoコマンドでインストールしていきます。

$ sudo apt-get install gcc

CentOS

CentOSでは、yumコマンドを使ってgccをインストールします。

# yum install gcc

以上で、コンパイラ(gcc)のインストールは完了です。

コンパイラにPATHを通す設定をする

不要です。

ソースコードコンパイル

C言語プログラムのファイル名を「hello.c」というファイルを作成します。ファイルの中身は「Hello, World!」という文字列を出力するプログラムです。

hello.cをコンパイルします。

$ gcc hello.c 

エラーが表示されなければ、OKです。

プログラムの実行

実行します。

$ ./a.out 
Hello, World

無事に実行できましたね。

[GCC]C Compiler on Windows

WindowsでgccをインストールするにはMinGWを利用した、C言語の最小限の開発環境を作る手順

  1. エディタをインストール
  2. コンパイラをインストール
  3. コンパイラにPATHを通す設定をする

エディタをインストール

AtomVSCodeなど新世代のエディター(Windows、Mac OS X、Linux対応)をインストールしてください。

コンパイラをインストール

C言語コンパイラって幾つかありますが、visual studioはファイルサイズがデカいので却下です。gccのインストールをオススメします。gccはMacでもLinuxでもWindowsでも使えます。

コンパイラの違い一覧

システム mingw-jp Visual Studio .net Borland C++ Builder
コンパイラ名 gcc cl bcc32
オブジェクトファイルの拡張子 .o .obj .obj
実行ファイル名指定 -o ファイル名 -o ファイル名 -eファイル名
make コマンド mingw32-make nmake make
依存ファイルマクロ $^ $** $**

 

WindowsでgccをインストールするにはMinGWというソフトを使う必要があります。

MinGW | Minimalist GNU for Windows

  1. MinGWのホームページで「Downloads」をクリック
  2. sourceforgeというサイトに飛びます
  3. 「Download mingw-get-setup.exe (86.5 kB)」をクリック
  4. exeファイルをダウンロード
  5. ダウンロードしたexeファイルを起動
  6. インストール自体は「Install」ボタンとか「Continue」ボタンをクリックするだけ

MinGW インストールマネージャー画面 4

左のメニュー画面で「Basic Setup」を選択し、

  • mingw-developer-toolkit
  • mingw32-base
  • mingw32-gcc-g++
  • msys-base-32

を選んで、右クリックで「Mark for Installation」を選択します。

選び終わったら、上の「Installation」メニューから「Apply Changes」を選択すればインストールが始まります。

インストールが始まると、先ほど選択したパッケージがこのように変わります。

MinGW インストールマネージャー画面 5

これでGCCが使えるようになりました。

コンパイラにPATHを通す設定をする

事前にgcc.exeの場所を探しておいてください。
MinGWをインストールする際に設定を変更していなければ C:MinGWbin にあるはずです。

  • エクスプローラー起動
  • マイコンピューターで右クリック
  • プロパティ選択
  • システムの詳細設定
  • 「環境変数」ボタン
  • ユーザー環境変数 or システム環境変数にPathがあります
    そのPathの最後に ;C:¥MinGW¥bin を追記
    ※「;」を必ず付けてください

環境変数画面

ユーザー環境変数とシステム環境変数の違い

  • ユーザー環境変数:今ログインしているユーザーだけに有効
  • システム環境変数:全てのユーザーに有効

お好きな方をお使いください。

コマンドプロンプトで gcc --help と打ってみてください。

↓こんな感じのものが出てればgccが正常に使える状態です。

 

バージョンの確認

> gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/5.3.0/lto-wrapper.exe
Target: mingw32
Configured with: ../src/gcc-5.3.0/configure --build=x86_64-pc-linux-gnu --host=mingw32 --prefix=/mingw --disable-win32-registry --target=mingw32 --with-arch=i586 --enable-languages=c,c++,objc,obj-c++,fortran,ada --enable-static --enable-shared --enable-threads=posix --with-dwarf2 --disable-sjlj-exceptions --enable-version-specific-runtime-libs --enable-libstdcxx-debug --with-tune=generic --enable-libgomp --disable-libvtv --enable-nls
Thread model: posix
gcc version 5.3.0 (GCC)

 

ソースコードコンパイル

C言語プログラムのファイル名を「hello.c」というファイルを作成します。ファイルの中身は「Hello, World!」という文字列を出力するプログラムです。

以下のコマンドを打ってみてください。

> gcc hello.c -o hello.exe

そしたら hello.exe が作られています。

プログラムの実行

コマンドプロンプトで実行ファイル名を入力してEnterキーを押すだけです。

コマンドプロンプトで、「hello.exe」を実行します。

> hello.exe
Hello, World

このように「Hello, World」という文字列が出力されれば、OKです。

実行ファイルを指定した場合、指定したファイルを実行してください。

参考:

ノートPCはMacが良いと思う理由

新学期に、ノートPCを考えることがありませんか?

WindowsのノートPCか、MacのノートPCか、悩むかもしれません。

ここはノートPCはMacが良いと思う理由を列挙する。

OSXとWindows両方利用できる

Macbookに、Boot Campというソフトウェアある。

Boot Campブートキャンプ)は、アップルにより開発・配布されているソフトウェアIntel Macにおいて、Microsoft Windowsの利用を可能とする。

UNIX(Linux)の勉強

OS X(オーエス テン)は、アップルが開発・販売する、Macbook コンピュータ用の現行オペレーティングシステムである。BSD UNIX ベースで新たに Mac OS X(マック オーエス テン)が作られた。

MacbookにUNIX, Apache, PHP内蔵のため、活用範囲大

Linux(リナックス)は、UnixライクなOSカーネルであるLinuxカーネル、およびそれをカーネルとして周辺を整備したシステム。

iPhoneのアプリの開発

iPhoneのアプリの開発は、Apple社のMac PCが必須です。

Macbookのトラックパッドの性能が素晴らしすぎる

Macbookでも Pro でも Air でもトラックパッドの性能というか動きが素晴らしすぎるんです。トラックパッドとはWindowsでいうタッチパッドのことなんですが、一度使うと抜け出せない程使いやすいんです!

先日ヨドバシカメラへ行った際に、hp・Dell・NEC・VAIO・Surface・Lenovo機を触ってきたのですが、それらブランドノートPCの多くはタッチパッドに若干のひっかかりがあり、ぎこちなさは否めなかったです。LenovoのThinkPadとSurfaceはなかなかよかったので、もしもWindowsノートPCを使うなら、Surfaceは膝の上でタイピングできないですしThinkPadかな?と感じました。

これを読んでいるWindowsだけのユーザーさんは是非店頭でMacbookを触ってもらえばと思います。きっと惚れてまうよ(笑)

同価格帯のWindowsノートPCよりも画面が綺麗

同価格帯のWindowsノートPCと比べて、Retina画面ではないMacbook Airですら画面の綺麗さが違います。雲泥の差です。持ち運び用の小さい画面ですから、綺麗=見やすいにこしたことはありません。作業しやすいですよ。

スリープ復帰速度とバッテリー管理はMacが上

スリープ復帰の速さとスリープ中のバッテリー消費管理はMacbookの方が断然上だと感じます。Macbookは画面を持ち上げたその時から普通に作業開始できます。また、Macbookはスリープしながら何日も放置できます。安いWindowsノートPCなんかですと、スリープしているのにもかかわらず恐ろしくバッテリーが減っていることもしばしば・・・。

キーボードが打ち易すぎる

MacはWindowsに無いキーがあったり、若干配置が違いますが、それは慣れてしまえばどうでも良いこと。それらを差し引いても、あのキーボードの打ち易さはハンパないです。機体を膝に乗っけてタイピングしても超快適な打ち心地です。タイプしていると気持ちが良いんです。外出して作業するときにはWindows ノートよりもタイピングがはかどることは間違いないです。一応WindowsノートだとLenovoのThinkPad x250はなかなか打ちやすく、さすがビジネスモデルだと思いました。

画面の縦幅が長い

Windows ノートの画面はほぼ「16:9」で、ワイド画面の幅です。それに比べ、Macbookの画面は「16:10」で縦幅が若干長いのです。例をだすと、Macbook Airの画面解像度は「1440×900」ですが、Windowsノートだと「1440x810」となります(実際にこのサイズのWindowsノートはありませんがあくまでも比率の問題)。この差は結構重要で、見やすさと作業効率に若干の影響を与えます。

やっぱりカッコイイ

外でMacbookを広げている人を見ると、やっぱりカッコイイと思う自分がいます(笑)冒頭で書きましたが、1人で引きこもって作業している時には特にそういうものは気にせず使いやすさ重視なのですが、外ではやはりMacbookがカッコイイのですよ!!これはWindowsノートPCには覆せない現実です。

Macbookは細部まで本当に丁寧に作られていますし、デザインに無駄がなというのはこういうことだな・・・と自分のMacbook Airや店頭のその他Mac機体たちをみていてつくづくそう思います。

[GCC]C Compiler on MacBook

MacBookで、C言語開発環境の構築

Macに最初から入っている「テキストエディット」とMacに最初から入っている「ターミナル」から入門できますが、無料で多機能AtomVSCodeを使えこなせるとより本格的にC言語開発できます。

Mac:C言語開発環境

Xcode またはXcode Command Line Toolsを入れる。

Xcode

MacBookでは、Xcodeの開発環境を入れるは普通だか、サイズが大きい。iPhoneのアプリ開発環境も一気に揃う利点があります。

Xcode Command Line Tools

Xcode Command Line Toolsだけ入れるとする。サイズの節約になります。

# xcode-select –install

上記コマンド打って「インストール」を選択するだけでいい!

インストールしたら、確認する:
chen-no-air:bin chen$ gcc --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 7.3.0 (clang-703.0.29)
Target: x86_64-apple-darwin15.4.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
chen-no-air:bin chen$
chen-no-air:bin chen$ git --version
git version 2.6.4 (Apple Git-63)
chen-no-air:bin chen$
Mac: ソースコード作成

Macに最初から入っている「テキストエディット」, 「ターミナル」で使えるVimや無料で多機能AtomVSCodeなどのテキストエディタを使って、以下のプログラムをhello.cというファイル名で作成します。作成したファイルはデスクトップに保存します。

#include<stdio.h>
int main() {
  printf("Hello, World\n");
  return 0;
}

Mac:ソースコードコンパイル(gcc)

次に「Finder」を起動し、「アプリケーション」→「ユーティリティ」から「ターミナル」を起動します。

cdコマンドで作業ディレクトリをデスクトップに移動します。

$ cd ~/Desktop/

gccコマンドで、実行ファイルを指定して、hello.cをコンパイルします。

$ gcc hello.c -o hello

そしたら hello が作られています。

Mac:プログラムの実行

指定した実行ファイルを入力し、プログラムを実行します。

$ ./hello 
Hello, World

無事に実行できました。

参考

  • http://matome.naver.jp/odai/2135755970513071001 — 【Hello World!】MacでC言語プログラミングの勉強をするための準備〜【超初心者】
  • http://www.yoheim.net/blog.php?q=20111218 — [C言語] MacbookでC言語を学習する環境を作る方法
  • http://dotinstall.com/lessons/basic_c — C言語の基礎 (全22回) – ドットインストール

C言語勉強関連サイト

プログラミング言語の基礎を簡単に楽しく学べるサイト

プログラミング学習サイト

  • http://dotinstall.com/ — 講義型のプログラミング学習サイト
  • http://paiza.jp — 用意された問題を解くとプログラミングスキルを6段階に評価してくれるサービスです
  • http://judge.u-aizu.ac.jp/onlinejudge/index.jsp?lang=ja — 会津大学が提供しているプログラミング問題サイトです。お題に対して問題を解いていく形式で、提出したプログラムをオンラインで採点してくれます。
  • https://www.codeeval.com/ — 約150問程度のプログラミング問題(初級、中級、上級)が掲載されており、点数が良いと海外の企業からスカウトが来るサービスです。

オンラインコンパイラ

C言語入門

参考

[BCC32]Error on JP programming

Hello World例

正しいhello.c。カーソルは位置を注意してください。Pは5:5の位置にある。

image

コンパイルと実行する様子

典型的なエラー

初めてCのプログラミングは なかなかうまく行かないかも知れない。
ここではHello World プログラムの典型的な間違い例をいくつか紹介する。

 

半角引用符「”」ではなく全角引用符「”」に

右の引用符は全角引用符「”」になっている

image

 

全角スペースが用いられ

全角スペースが用いられている、これはなかなか探しにくい。

カーソルは位置を注意してください。Pは5:3の位置にある。

(半角のスペースなら、Pは5:5の位置にある。)

image

セミコロン「;」の付け忘れ

 

セミコロン「;」の付け忘れである。

image