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
410
データサイエンス13_解析.pdf
jnlp
0
520
データサイエンス12_分類.pdf
jnlp
0
370
データサイエンス11_前処理.pdf
jnlp
0
490
Recurrent neural network based language model
jnlp
0
150
自然言語処理研究室 研究概要(2012年)
jnlp
0
150
自然言語処理研究室 研究概要(2013年)
jnlp
0
120
自然言語処理研究室 研究概要(2014年)
jnlp
0
140
自然言語処理研究室 研究概要(2015年)
jnlp
0
220
Other Decks in Programming
See All in Programming
The free-lunch guide to idea circularity
hollycummins
0
340
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
160
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
450
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.3k
Takumiから考えるSecurity_Maturity_Model.pdf
gessy0129
1
160
PHPで TLSのプロトコルを実装してみる
higaki_program
0
430
Codexに役割を持たせる 他のAIエージェントと組み合わせる実務Tips
o8n
4
1.4k
S3ストレージクラスの「見える」「ある」「使える」は全部違う ─ 体験から見た、仕様の深淵を覗く
ya_ma23
0
990
[PHPerKaigi 2026]PHPerKaigi2025の企画CodeGolfが最高すぎて社内で内製して半年運営して得た内製と運営の知見
ikezoemakoto
0
280
CSC307 Lecture 15
javiergs
PRO
0
260
20260320登壇資料
pharct
0
120
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.7k
Featured
See All Featured
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.7k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
990
Testing 201, or: Great Expectations
jmmastey
46
8.1k
Designing for Performance
lara
611
70k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
460
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.4k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
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