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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
自然言語処理研究室
October 18, 2013
Programming
0
7.9k
基礎情報処理演習 (5)プログラミングの基本
自然言語処理研究室
October 18, 2013
Tweet
Share
More Decks by 自然言語処理研究室
See All by 自然言語処理研究室
データサイエンス14_システム.pdf
jnlp
0
400
データサイエンス13_解析.pdf
jnlp
0
510
データサイエンス12_分類.pdf
jnlp
0
360
データサイエンス11_前処理.pdf
jnlp
0
490
Recurrent neural network based language model
jnlp
0
140
自然言語処理研究室 研究概要(2012年)
jnlp
0
150
自然言語処理研究室 研究概要(2013年)
jnlp
0
110
自然言語処理研究室 研究概要(2014年)
jnlp
0
140
自然言語処理研究室 研究概要(2015年)
jnlp
0
220
Other Decks in Programming
See All in Programming
2026年 エンジニアリング自己学習法
yumechi
0
140
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
260
AtCoder Conference 2025
shindannin
0
1.1k
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
230
Raku Raku Notion 20260128
hareyakayuruyaka
0
370
KIKI_MBSD Cybersecurity Challenges 2025
ikema
0
1.3k
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
180
CSC307 Lecture 05
javiergs
PRO
0
500
Python’s True Superpower
hynek
0
110
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
230
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
180
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
6
680
Featured
See All Featured
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
130
Music & Morning Musume
bryan
47
7.1k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
120
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
160
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
120
Optimizing for Happiness
mojombo
379
71k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
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