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
7.9k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
基礎情報処理演習 (5)プログラミングの基本
自然言語処理研究室
October 18, 2013
More Decks by 自然言語処理研究室
See All by 自然言語処理研究室
データサイエンス14_システム.pdf
jnlp
0
420
データサイエンス13_解析.pdf
jnlp
0
530
データサイエンス12_分類.pdf
jnlp
0
370
データサイエンス11_前処理.pdf
jnlp
0
500
Recurrent neural network based language model
jnlp
0
170
自然言語処理研究室 研究概要(2012年)
jnlp
0
160
自然言語処理研究室 研究概要(2013年)
jnlp
0
130
自然言語処理研究室 研究概要(2014年)
jnlp
0
150
自然言語処理研究室 研究概要(2015年)
jnlp
0
230
Other Decks in Programming
See All in Programming
AIで効率化できた業務・日常
ochtum
0
150
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
970
dRuby over BLE
makicamel
2
390
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.7k
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.3k
Contextとはなにか
chiroruxx
1
380
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
270
Vite+ Unified Toolchain for the Web
naokihaba
0
360
AI時代のUIはどこへ行く?その2!
yusukebe
22
7.5k
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
15
7.3k
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
230
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
1
470
Featured
See All Featured
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
280
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Agile that works and the tools we love
rasmusluckow
331
22k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
350
The untapped power of vector embeddings
frankvandijk
2
1.8k
The Curious Case for Waylosing
cassininazir
1
400
Tell your own story through comics
letsgokoyo
1
980
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.8k
Automating Front-end Workflow
addyosmani
1370
210k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
WENDY [Excerpt]
tessaabrams
11
38k
How STYLIGHT went responsive
nonsquared
100
6.2k
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