Introduce to programming

C言語ではじめよう
Shuji Hosaka
保坂 修治

14年2月21日金曜日
コンピュータ君
・・・
しなさい

???

人間の言葉は理解できない
10110101
01100101

機械語しか理解できない

14年2月21日金曜日
機械語

0101001101110101
1011011110100010
111010011010100
010110001110101
110011001010011
1111011101010110
・・・
私たちには
チンプンカンプン...
プログラミング言語
int main(void)
{
int i;
char ch, name[64];
printf(“input your name¥n”);
while((ch=getchar()) != ‘¥n’)
name[i++] ...
でも、プログラミング言語は
機械語じゃないよね?

14年2月21日金曜日
コ パイル
ン

コンピュータが翻訳してくれます
#include <stdio.h>
int main(void)
{
int i;
char ch, name[64];
printf(“input your name¥n”);
while(...
プログラミング言語の進化
1960

1970

1980

COBOL
BASIC

1990

2000

PHP
Perl
Ruby
Python
JavaScript

FORTRAN

ALGOL

C++

C

Java
Simu...
C言語
誕生日 1972年
誕生地 AT&Tベル研究所(アメリカ)
生みの親 デニス・リッチー
使命 UNIX(オペレーティングシステム)
   記述する

最も利用されている言語のひとつ
14年2月21日金曜日
プログラミングを
はじめよう

14年2月21日金曜日
準備するもの
コンピュータ

コンパイラ

14年2月21日金曜日

ハードウエア

エディタ

ソフトウエア
プログラム作成の手順
「ソースコード」を書く
ソースコードファイルを「コンパイル」する

プログラムを「実行」する

14年2月21日金曜日
エディタを使ってソースコードを入力してみた
14年2月21日金曜日
cコンパイラ ソースコードファイル名

実行可能ファイルの生成に成功!

ソースコードファイルをコンパイルしてみた
14年2月21日金曜日
実行

プログラムを実行してみた
14年2月21日金曜日
プログラムを見てみよう

14年2月21日金曜日
シャープ、インクルード、スペース、山括弧、エスティーディーアイオードットエイチ、山括弧閉じ

#include <stdio.h>

イント、スペース、メイン、括弧、ボイド、括弧閉じ

int main(void)
{
printf(“Hell...
あらかじめ定義されている
キーワードや記号などを
組み合わせて意味を構成する

14年2月21日金曜日
#include <stdio.h>
int main(void)
{
printf(“Hello World!¥n”);
return 0;
}

わかりやすいように色分けしてみた
14年2月21日金曜日
プログラムを詳しく見てみよう

14年2月21日金曜日
#include <stdio.h>
int main(void)
{
printf(“Hello World!¥n”);
return 0;
}

14年2月21日金曜日
#include <stdio.h>
プリプロセッサ・ディレクティブ

int main(void)
{
printf(“Hello World!¥n”);
return 0;
}
コンパイラに対する指示を書くところ

14年2月21日金曜日
#include <stdio.h>
メイン関数

int main(void)
{
printf(“Hello World!¥n”);
return 0;
}
プログラム全体の中で最初に処理される
特別な関数
14年2月21日金曜日
#include <stdio.h>
メイン関数

int main(void)
{
printf(“Hello World!¥n”);
return 0;
}
波括弧{}で全体を閉じる

14年2月21日金曜日
#include <stdio.h>
int main(void)
{
printf(“Hello World!¥n”);
return 0;
}

文末にセミコロン(;)

14年2月21日金曜日
#include <stdio.h>
int main(void)
{
printf(“Hello World!¥n”);
return 0;
}

Hello World!と表示しなさい
printf関数

14年2月21日金曜日
#include <stdio.h>
int main(void)
{
printf(“Hello World!¥n”);
return 0;
リターン文
}

ゼロ

オペレーティングシステムに0
を返すことで、プログラムが
正常終了したこと...
ソースコードの書き方

14年2月21日金曜日
ソースコードを書くことを
コーディング:coding
と言う

14年2月21日金曜日
コード:code
 を辞書で調べてみた
【名詞】
1 符号、記号
2 暗号、信号
3 規則、規約、規定
4 法典、おきて
規則を守ってコードを書きましょう
14年2月21日金曜日
半角英数字、
半角記号、
半角空白
を使って書く!

14年2月21日金曜日
コンパイラは、
2個目以降の空白や
改行は無視します。

14年2月21日金曜日
だから、こんな書き方でも

14年2月21日金曜日
#include <stdio.h>
int main(void){ printf(“Hello World!¥n”); return 0; }
1行にまとめてコーディングしてみた。

14年2月21日金曜日
コンパイルして実行した。
実行できた...
14年2月21日金曜日
#include <math.h>
#define FC 10.0
typedef struct point{! double x;!double y;}Point;
typedef struct car{ char name[64]; Poi...
#include <math.h>
#define FC 10.0
typedef struct point{! double x;!double y;}Point;
typedef struct car{ char name[64]; Poi...
#include <stdio.h>
int main(void)
{
printf(“Hello World!¥n”);
return 0;
}
適度な空白、改行を入れて
プログラムの構造まで見えるように書く
14年2月21日金曜日
#include <stdio.h>

改行

改行
改行
int main(void)
{ 改行
TAB
printf(“Hello World!¥n”);
TAB
return 0; 改行
} 改行

波カッコ{〜}の間はTABキーを使って...
きれいなコード
=

わかりやすいコード

14年2月21日金曜日
補足

14年2月21日金曜日
#include <stdio.h>
プリプロセッサ・ディレクティブ

int main(void)
コンパイラに対して、「この
プログラムにヘッダファイル
{
stdio.hを含めろ」という指示
printf(“Hello World!¥n”...
#include <stdio.h>
関数の宣言

int main(void)
戻値の型{
関数名
引数
printf(“Hello World!¥n”);
return 0;
}
もどりち

14年2月21日金曜日
#include <stdio.h>
関数の定義

int main(void)
{
printf(“Hello World!¥n”);
return 0;
}

波カッコ{〜}の間に処理の手順を書く

14年2月21日金曜日
#include <stdio.h>
int main(void)
{
printf(“Hello World!¥n”);
return 0;
}
コンピュータに対する一つの指示を
文(statement)と言い、
文末には必ずセミコロン(;)...
Upcoming SlideShare
Loading in …5
×

プログラミングをはじめよう1

920
-1

Published on

Introduce to Programing

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
920
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

プログラミングをはじめよう1

  1. 1. Introduce to programming C言語ではじめよう Shuji Hosaka 保坂 修治 14年2月21日金曜日
  2. 2. コンピュータ君 ・・・ しなさい ??? 人間の言葉は理解できない 10110101 01100101 機械語しか理解できない 14年2月21日金曜日
  3. 3. 機械語 0101001101110101 1011011110100010 111010011010100 010110001110101 110011001010011 1111011101010110 ・・・ 私たちには チンプンカンプンだわ 14年2月21日金曜日
  4. 4. プログラミング言語 int main(void) { int i; char ch, name[64]; printf(“input your name¥n”); while((ch=getchar()) != ‘¥n’) name[i++] = ch; printf(“Hello, Mr. %s.¥n”, name); } return 0; これならわかるかも .. 14年2月21日金曜日
  5. 5. でも、プログラミング言語は 機械語じゃないよね? 14年2月21日金曜日
  6. 6. コ パイル ン コンピュータが翻訳してくれます #include <stdio.h> int main(void) { int i; char ch, name[64]; printf(“input your name¥n”); while((ch=getchar()) != ‘¥n’) name[i++] = ch; printf(“Hello, Mr. %s.¥n”, name); } return 0; プログラミング言語 なるほど 14年2月21日金曜日 コ パ ル ン イ 0101001101110101 1011011110100010 111010011010100 010110001110101 110011001010011 1111011101010110 01010001110100 11010110100011 ・・・ 機械語
  7. 7. プログラミング言語の進化 1960 1970 1980 COBOL BASIC 1990 2000 PHP Perl Ruby Python JavaScript FORTRAN ALGOL C++ C Java Simula C# Smalltalk Scheme LISP Common LISP ML Ocaml Haskell 14年2月21日金曜日
  8. 8. C言語 誕生日 1972年 誕生地 AT&Tベル研究所(アメリカ) 生みの親 デニス・リッチー 使命 UNIX(オペレーティングシステム)    記述する 最も利用されている言語のひとつ 14年2月21日金曜日
  9. 9. プログラミングを はじめよう 14年2月21日金曜日
  10. 10. 準備するもの コンピュータ コンパイラ 14年2月21日金曜日 ハードウエア エディタ ソフトウエア
  11. 11. プログラム作成の手順 「ソースコード」を書く ソースコードファイルを「コンパイル」する プログラムを「実行」する 14年2月21日金曜日
  12. 12. エディタを使ってソースコードを入力してみた 14年2月21日金曜日
  13. 13. cコンパイラ ソースコードファイル名 実行可能ファイルの生成に成功! ソースコードファイルをコンパイルしてみた 14年2月21日金曜日
  14. 14. 実行 プログラムを実行してみた 14年2月21日金曜日
  15. 15. プログラムを見てみよう 14年2月21日金曜日
  16. 16. シャープ、インクルード、スペース、山括弧、エスティーディーアイオードットエイチ、山括弧閉じ #include <stdio.h> イント、スペース、メイン、括弧、ボイド、括弧閉じ int main(void) { printf(“Hello World!¥n”); return 0; } 波括弧       プリントエフ、 括弧、ダブルクォーテーション、ハローワールド、...       リターン、    ゼロ、セミコロン  波括弧閉じ 声に出して読んでみよう 14年2月21日金曜日
  17. 17. あらかじめ定義されている キーワードや記号などを 組み合わせて意味を構成する 14年2月21日金曜日
  18. 18. #include <stdio.h> int main(void) { printf(“Hello World!¥n”); return 0; } わかりやすいように色分けしてみた 14年2月21日金曜日
  19. 19. プログラムを詳しく見てみよう 14年2月21日金曜日
  20. 20. #include <stdio.h> int main(void) { printf(“Hello World!¥n”); return 0; } 14年2月21日金曜日
  21. 21. #include <stdio.h> プリプロセッサ・ディレクティブ int main(void) { printf(“Hello World!¥n”); return 0; } コンパイラに対する指示を書くところ 14年2月21日金曜日
  22. 22. #include <stdio.h> メイン関数 int main(void) { printf(“Hello World!¥n”); return 0; } プログラム全体の中で最初に処理される 特別な関数 14年2月21日金曜日
  23. 23. #include <stdio.h> メイン関数 int main(void) { printf(“Hello World!¥n”); return 0; } 波括弧{}で全体を閉じる 14年2月21日金曜日
  24. 24. #include <stdio.h> int main(void) { printf(“Hello World!¥n”); return 0; } 文末にセミコロン(;) 14年2月21日金曜日
  25. 25. #include <stdio.h> int main(void) { printf(“Hello World!¥n”); return 0; } Hello World!と表示しなさい printf関数 14年2月21日金曜日
  26. 26. #include <stdio.h> int main(void) { printf(“Hello World!¥n”); return 0; リターン文 } ゼロ オペレーティングシステムに0 を返すことで、プログラムが 正常終了したことを知らせる 14年2月21日金曜日
  27. 27. ソースコードの書き方 14年2月21日金曜日
  28. 28. ソースコードを書くことを コーディング:coding と言う 14年2月21日金曜日
  29. 29. コード:code  を辞書で調べてみた 【名詞】 1 符号、記号 2 暗号、信号 3 規則、規約、規定 4 法典、おきて 規則を守ってコードを書きましょう 14年2月21日金曜日
  30. 30. 半角英数字、 半角記号、 半角空白 を使って書く! 14年2月21日金曜日
  31. 31. コンパイラは、 2個目以降の空白や 改行は無視します。 14年2月21日金曜日
  32. 32. だから、こんな書き方でも 14年2月21日金曜日
  33. 33. #include <stdio.h> int main(void){ printf(“Hello World!¥n”); return 0; } 1行にまとめてコーディングしてみた。 14年2月21日金曜日
  34. 34. コンパイルして実行した。 実行できた... 14年2月21日金曜日
  35. 35. #include <math.h> #define FC 10.0 typedef struct point{! double x;!double y;}Point; typedef struct car{ char name[64]; Point pos; double gas; }Car; double distance(Point p1, Point p2); int isMove(Car car, Point dist); void info(Car c); double distance(Point p1, Point p2){! return sqrt(pow(p2.x-p1.x,2)+pow(p2.y-p1.y,2)); } int isMove(Car car, Point dist){ double d = distance(car.pos, dist); if(d!=0 && car.gas >= d/FC) return 1; else return 0; } void info(Car car) { printf("-----------------------------n"); printf("Name of car:%sn",car.name); printf("position:%.2f,%.2f n",car.pos.x, car.pos.y); printf("gal:%.2fn",car.gas); printf("-----------------------------n"); } int main(void){ Car mycar; Point distination; printf("car> "); scanf("%s",mycar.name); printf("gas> "); scanf("%lf",&mycar.gas); 長いコードを 空白と行数をけちって入力してみた... 14年2月21日金曜日
  36. 36. #include <math.h> #define FC 10.0 typedef struct point{! double x;!double y;}Point; typedef struct car{ char name[64]; Point pos; double gas; }Car; double distance(Point p1, Point p2); int isMove(Car car, Point dist); void info(Car c); double distance(Point p1, Point p2){! return sqrt(pow(p2.x-p1.x,2)+pow(p2.y-p1.y,2)); } int isMove(Car car, Point dist){ double d = distance(car.pos, dist); if(d!=0 && car.gas >= d/FC) return 1; else return 0; } void info(Car car) { printf("-----------------------------n"); printf("Name of car:%sn",car.name); printf("position:%.2f,%.2f n",car.pos.x, car.pos.y); printf("gal:%.2fn",car.gas); printf("-----------------------------n"); } int main(void){ Car mycar; Point distination; printf("car> "); scanf("%s",mycar.name); printf("gas> "); scanf("%lf",&mycar.gas); ごちゃごちゃして、よくわからなくなった... 14年2月21日金曜日
  37. 37. #include <stdio.h> int main(void) { printf(“Hello World!¥n”); return 0; } 適度な空白、改行を入れて プログラムの構造まで見えるように書く 14年2月21日金曜日
  38. 38. #include <stdio.h> 改行 改行 改行 int main(void) { 改行 TAB printf(“Hello World!¥n”); TAB return 0; 改行 } 改行 波カッコ{〜}の間はTABキーを使って インデント(字下げ)を入れる 14年2月21日金曜日 改行
  39. 39. きれいなコード = わかりやすいコード 14年2月21日金曜日
  40. 40. 補足 14年2月21日金曜日
  41. 41. #include <stdio.h> プリプロセッサ・ディレクティブ int main(void) コンパイラに対して、「この プログラムにヘッダファイル { stdio.hを含めろ」という指示 printf(“Hello World!¥n”); ヘッダファイルstdio.hに return 0; は、画面に文字列を表示する ためのprintfなど標準入出力 } (standard input output)に関 連するプログラムが定義され ている 14年2月21日金曜日
  42. 42. #include <stdio.h> 関数の宣言 int main(void) 戻値の型{ 関数名 引数 printf(“Hello World!¥n”); return 0; } もどりち 14年2月21日金曜日
  43. 43. #include <stdio.h> 関数の定義 int main(void) { printf(“Hello World!¥n”); return 0; } 波カッコ{〜}の間に処理の手順を書く 14年2月21日金曜日
  44. 44. #include <stdio.h> int main(void) { printf(“Hello World!¥n”); return 0; } コンピュータに対する一つの指示を 文(statement)と言い、 文末には必ずセミコロン(;)を付ける 14年2月21日金曜日

×