ログイン
編集不可のページディスカッション情報添付ファイル
"solanumaple/programming講習2015"の差分

MMA
1と20のリビジョン間の差分 (その間の編集: 19回)
2015-04-24 17:04:14時点のリビジョン1
サイズ: 161
編集者: solanumaple
コメント:
2015-05-13 14:31:18時点のリビジョン20
サイズ: 3440
編集者: solanumaple
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 5: 行 5:
#acl solanumaple,su_zu:admin,write,read,revert,delete All:
...

<<TableOfContents()>>

= Hello, World! =
{{{#!highlight c
/*スラッシュアスタリスクで囲んでコメントが書ける*/
//スラッシュ二本の後, 行末までコメントになる
#include<stdio.h>

int main(void){
  printf("Hello, World!\n");
  return 0;
}
}}}

{{{#!highlight c
#include<stdio.h>
// printf() を使うために必要なファイルをinclude

int main(void){
    // プログラムを呼ぶと最初に呼ばれる関数

    printf("hello, world");
    // 文字列を出力する(改行なし)

    printf("\n"); // 改行する
  
    return 0; // 必ず書く
}
}}}

= 数値出力 =
{{{#!highlight c
#include<stdio.h>
int main(void){
  printf("%d\n", 5); // 5 と表示,改行される
  printf("私は%d歳", 18); // 私は18歳 と表示される
  printf("%d\n", 2 * 3 + 14 / 7 - 3 % 2 ); // 2 × 3 + 14 ÷ 7 - 3 mod 2
  return 0;
}
}}}

= 変数 =
{{{#!highlight c
#include<stdio.h>

int main(void){
  int n = 3;
  n = n + 1;
  printf("%d\n", 4); // 4 と表示,改行される
  return 0;
}
}}}

= 型 =
 * void : 無
 * int : (-2^31) ~ (2^31-1) の範囲の整数
 * long long int : (-2^63) ~ (2^63-1)の範囲の整数
 * double : 少数

= 算術演算子 =
 * =: 代入(左辺の変数に右辺の値を格納する)
 * +: 加算(+)
 * -: 減算(ー)
 * *: 乗算(×)
 * /: 除算(÷)
 * %: 剰余(mod)

= 数値入力 =
scanf("%d", &変数名);
{{{#!highlight c
#include<stdio.h>

int main(void){
  int n;
  scanf("%d", &n);
  return 0;
}
}}}

= 条件分岐 =
もし (1) ならば [1] をする
そうでなく, もし (2) なら [2] をする
そうでなければ [3] をする
if( ){ }else if( ){ }else{ }

{{{#!highlight c
#include<stdio.h>
int main(void){
  int n;
  scanf("%d", &n);
  if( n < 10 ){ // (1)なら
    n = n * 100; // [1]する
  }else if( n < 100 ){ // (1)でないかつ(2)であるとき
    n = n * 10; // [2]をする
  }else{ // そうでなければ
    n = n * 5; // [3]する
  }
  printf("%d\n", n);
  return 0;
}
/* 結果
入力されたnが 2 なら
200

入力されたnが 10 なら
1000

入力されたnが 30 なら
300

入力されたnが 400 なら
2000
*/
}}}

= 比較演算子 =
 * < : 小なり
 * <= : 小なりイコール
 * > : 大なり
 * >= : 大なりイコール
 * == : イコール
 * != : notイコール

= 反復 =
for(/*一度だけ実行*/; /*ここに書いた条件が成り立つ間波括弧内を繰り返す*/; /*波括弧の後に実行*/){}
{{{#!highlight c
#include<stdio.h>

int main(void){
  int n;
  for(n = 3; n > 0; n = n-1){
    printf("%d\n", n);
  }
  return 0;
}
/* 結果
3
2
1
*/
}}}

= GNU Make =
{{{#!hilight make
C = gcc
CFLAGS = -std=c99 -Wall
SOURCE = $(filter-out $(patsubst %.h,%.c,$(wildcard *.h)),$(wildcard *.c))
all: $(basename $(SOURCE))

%: %.c
 $(C) -o $@ $^ $(CFLAGS)
}}}

= ためになる外部ページ =
 * [[http://9cguide.appspot.com/|苦しんで覚えるC言語]]
 * [[http://www.curiocube.com/mikata/beyondthecode/index.php|コーディングの向こう側 - つくる人の味方]]
* [[http://www.wakayama-u.ac.jp/~chen/cmake/cmake.html|Learning CMake]]

Hello, World!

   1 /*スラッシュアスタリスクで囲んでコメントが書ける*/
   2 //スラッシュ二本の後, 行末までコメントになる
   3 #include<stdio.h>
   4 
   5 int main(void){
   6   printf("Hello, World!\n");
   7   return 0;
   8 }

   1 #include<stdio.h>
   2 // printf() を使うために必要なファイルをinclude
   3 
   4 int main(void){
   5     // プログラムを呼ぶと最初に呼ばれる関数
   6 
   7     printf("hello, world");
   8     // 文字列を出力する(改行なし)
   9 
  10     printf("\n"); // 改行する
  11   
  12     return 0; // 必ず書く
  13 }

数値出力

   1 #include<stdio.h>
   2 int main(void){
   3   printf("%d\n", 5); // 5 と表示,改行される
   4   printf("私は%d歳", 18); // 私は18歳 と表示される
   5   printf("%d\n", 2 * 3 +  14 / 7 - 3 % 2 ); // 2 × 3 + 14 ÷ 7 - 3 mod 2
   6   return 0;
   7 }

変数

   1 #include<stdio.h>
   2 
   3 int main(void){ 
   4   int n = 3;
   5   n = n + 1;
   6   printf("%d\n", 4); // 4 と表示,改行される
   7   return 0;
   8 }

  • void : 無
  • int : (-231) ~ (231-1) の範囲の整数

  • long long int : (-263) ~ (263-1)の範囲の整数

  • double : 少数

算術演算子

  • =: 代入(左辺の変数に右辺の値を格納する)
  • +: 加算(+)
  • -: 減算(ー)
  • *: 乗算(×)
  • /: 除算(÷)
  • %: 剰余(mod)

数値入力

scanf("%d", &変数名);

   1 #include<stdio.h>
   2 
   3 int main(void){
   4   int n;
   5   scanf("%d", &n);
   6   return 0;
   7 }

条件分岐

もし (1) ならば [1] をする そうでなく, もし (2) なら [2] をする そうでなければ [3] をする if( ){ }else if( ){ }else{ }

   1 #include<stdio.h>
   2 int main(void){
   3   int n;
   4   scanf("%d", &n);
   5   if( n < 10 ){        // (1)なら
   6     n = n * 100;       // [1]する
   7   }else if( n < 100 ){ // (1)でないかつ(2)であるとき
   8     n = n * 10;        // [2]をする
   9   }else{               // そうでなければ
  10     n = n * 5;         // [3]する
  11   }
  12   printf("%d\n", n);
  13   return 0;
  14 }
  15 /* 結果
  16 入力されたnが 2 なら
  17 200
  18 
  19 入力されたnが 10 なら
  20 1000
  21 
  22 入力されたnが 30 なら
  23 300
  24 
  25 入力されたnが 400 なら
  26 2000
  27 */

比較演算子

  • < : 小なり

  • <= : 小なりイコール

  • > : 大なり

  • >= : 大なりイコール

  • == : イコール
  • != : notイコール

反復

for(/*一度だけ実行*/; /*ここに書いた条件が成り立つ間波括弧内を繰り返す*/; /*波括弧の後に実行*/){}

   1 #include<stdio.h>
   2 
   3 int main(void){
   4   int n;
   5   for(n = 3; n > 0; n = n-1){
   6     printf("%d\n", n);
   7   }
   8   return 0;
   9 }
  10 /* 結果
  11 3
  12 2
  13 1
  14 */

GNU Make

C = gcc
CFLAGS = -std=c99 -Wall
SOURCE = $(filter-out $(patsubst %.h,%.c,$(wildcard *.h)),$(wildcard *.c))
all: $(basename $(SOURCE))

%: %.c
        $(C) -o $@ $^ $(CFLAGS)

ためになる外部ページ

* Learning CMake

solanumaple/programming講習2015 (最終更新日時 2015-07-08 17:25:40 更新者 solanumaple)