Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
基礎情報処理演習 (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
430
データサイエンス13_解析.pdf
jnlp
0
550
データサイエンス12_分類.pdf
jnlp
0
380
データサイエンス11_前処理.pdf
jnlp
0
510
Recurrent neural network based language model
jnlp
0
190
自然言語処理研究室 研究概要(2012年)
jnlp
0
170
自然言語処理研究室 研究概要(2013年)
jnlp
0
130
自然言語処理研究室 研究概要(2014年)
jnlp
0
160
自然言語処理研究室 研究概要(2015年)
jnlp
0
240
Other Decks in Programming
See All in Programming
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
Jetpack Compose Mechanisms
skydoves
3
820
dotNET_vulnclicker_intro.pdf
deka_morita
0
140
AmebaブログはKMPから卒業します
kmars0605
0
200
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
280
golang-bob.pdf
iwatsukayura
0
130
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
510
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
170
Featured
See All Featured
Ethics towards AI in product and experience design
skipperchong
2
440
Paper Plane
katiecoart
PRO
5
54k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
730
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
430
Darren the Foodie - Storyboard
khoart
PRO
4
4k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Chasing Engaging Ingredients in Design
codingconduct
0
360
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
380
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
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