Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
基礎情報処理演習 (5)プログラミングの基本
Search
自然言語処理研究室
October 18, 2013
Programming
0
7.9k
基礎情報処理演習 (5)プログラミングの基本
自然言語処理研究室
October 18, 2013
Tweet
Share
More Decks by 自然言語処理研究室
See All by 自然言語処理研究室
データサイエンス14_システム.pdf
jnlp
0
380
データサイエンス13_解析.pdf
jnlp
0
480
データサイエンス12_分類.pdf
jnlp
0
340
データサイエンス11_前処理.pdf
jnlp
0
460
Recurrent neural network based language model
jnlp
0
130
自然言語処理研究室 研究概要(2012年)
jnlp
0
130
自然言語処理研究室 研究概要(2013年)
jnlp
0
96
自然言語処理研究室 研究概要(2014年)
jnlp
0
120
自然言語処理研究室 研究概要(2015年)
jnlp
0
190
Other Decks in Programming
See All in Programming
大規模FlutterプロジェクトのCI実行時間を約8割削減した話
teamlab
PRO
0
490
サーバーサイドのビルド時間87倍高速化
plaidtech
PRO
0
450
AHC051解法紹介
eijirou
0
620
WebAssemblyインタプリタを書く ~Component Modelを添えて~
ruccho
1
900
パスタの技術
yusukebe
1
400
コーディングエージェント時代のNeovim
key60228
1
100
MCPで実現するAIエージェント駆動のNext.jsアプリデバッグ手法
nyatinte
6
800
KessokuでDIでもgoroutineを活用する / Go Connect #6
mazrean
0
110
Jakarta EE Core Profile and Helidon - Speed, Simplicity, and AI Integration
ivargrimstad
0
190
CSC305 Summer Lecture 05
javiergs
PRO
0
110
DynamoDBは怖くない!〜テーブル設計の勘所とテスト戦略〜
hyamazaki
1
210
Dart 参戦!!静的型付き言語界の隠れた実力者
kno3a87
0
200
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Typedesign – Prime Four
hannesfritz
42
2.8k
BBQ
matthewcrist
89
9.8k
Facilitating Awesome Meetings
lara
55
6.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Statistics for Hackers
jakevdp
799
220k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Transcript
基礎情報処理演習(5) プログラミングの基本 山本和英 長岡技術科学大学 1
このスライドは... • 授業や自習のための教材です。 • 授業ではC言語を最低限学ぶことを目指している 関係で、必要なことを厳選して書いています。よっ て相当いろんなことを省略していますので詳しい説 明はC言語の教科書などを参照してください。 • また、口頭でもかなり補足説明していますので、
このスライドを読んだだけでC言語を理解したとは 思わないでください。 2
C言語の特徴 • とにかく古い(1972年) • いろんな他の言語に影響を与えている (C++, Java, ...) • 今でもかなり使われている
• 参考: http://www.tiobe.com/index.php/content/paperinfo/tpci/ • すべてのプログラムを「関数」で書く • 構造化制御が可能(当時は画期的) • フリーフォーマット 3
ソースプログラム 人間が理解できるように記述したプログラムをソー スプログラムと呼ぶ。ソースコード、あるいは単に ソースとも呼ぶ。 コンパイル コンピュータが理解できるように「翻訳」することをコ ンパイルと呼ぶ。コンパイルの仕事をするのがコン パイラー。 4
エラーメッセージはよく読もう コンパイラーは「エラー」(直さないと動かない)と 「警告」(おススメ)の2種類のメッセージを出す。 エラーがあると言われた行 ≠ 間違っている行 (誤っていても次の行で気付く時もある) エラーメッセージの数 ≠ 間違いの数
(1つの誤りでいくつもエラーが出る) 5
/* プログラム1:はじめてのプログラム */ #include <stdio.h> int main(void) { printf ("Hello\n");
return 0; } 6
/* プログラム1:はじめてのプログラム */ #include <stdio.h> int main(void) { printf ("Hello\n");
return 0; } 7 書きだしはいつも同じ 決まり文句
/* プログラム1:はじめてのプログラム */ #include <stdio.h> int main(void) { printf ("Hello\n");
return 0; } 8 「文」の最後には セミコロン;が必要
/* プログラム1:はじめてのプログラム */ #include <stdio.h> int main(void) { printf ("Hello\n");
return 0; } 9 改行を示す (詳しくは最終ページ)
/* プログラム1:はじめてのプログラム */ #include <stdio.h> int main(void) { printf ("Hello\n");
return 0; } 10 画面表示させる関数 (これを使うためには 1行目の #include … が必要)
int main(void) 戻り値 の場合は終了時に(int型で)値を返す必要が あるので、何も考えずにプログラムの最後に return 0; をつけといてください。ちなみに、冒頭を void main(void)
とすれば return 0; も不要です。 11
int main(void) { int nn; nn = 10 + 20;
printf ("ans=%d\n", nn); return 0; } 読みやすいプログラムを書こう コンパイラは余計な空白を無視するので こんな書き方をしても動作しますが、 やめようね。 12
/* プログラム2:足し算 */ #include <stdio.h> int main(void) { int nn;
nn = 10 + 20; printf ("ans=%d\n", nn); return 0; } 13
/* コメント */ コメントはどんどん書こう /* … */ の部分がコメント (何行でも可能) a
= 1; //本当? // から行末 までがコメント (1行限定) /* printf ... */ プログラムの一部を 隠したりする時に 使ってみたりして 14
int nn; 変数は使う前に宣言する 名前:nn タイプ:整数 int x=0, y; ついでに初期化もできる int
p, q; 二つ以上一緒に 宣言できる 15
#include <stdio.h> int main(void){ int … double … return 0;
} 変数宣言は必ずプログラムの冒頭で プログラムの冒頭で まとめて変数宣言 プログラム本体 16
printf (“ans=%d\n”, 3); printfは書式指定ができる %d は「整数」を表す。 %d の部分に3が表示される。 17
printf (“%dは%dだ.\n”, x, y); さらに複雑なこともできる printf (“%6d\n”, p); 整数pを6ケタで(5ケタ以下は右詰めする) 18
/* プログラム3:入力 */ #include <stdio.h> int main(void) { int dt;
scanf_s ("%d", &dt); dt = dt + 2; printf ("%d\n", dt); return 0; } 19
scanf_s ("%d", &dt); 数値の入力 整数入力時は %d (実数の時は %f) 変数名に 必ず&をつける
(理由は略) 20
変数名の話 英数字はだいたい何でも変数名になる。 ただし、 • 大文字と小文字は別の文字(Aとaは違う変数) • 先頭に数字は使えない。 • プログラムに使う予約語(int, double,
long, short, do, if, for, long, switch など)は 使えない。 21
エスケープシーケンス \n (バックスラッシュエヌ、\nと表示されることもあります) は特殊な文字で、\nと表示されるのではなく改 行(次の行の冒頭に進む)を意味する。このように \を使った文字をエスケープシーケンスと呼ぶ。 エスケープシーケンスは10種類ぐらいありますが、 本演習では、\n のみ使います。 22