Enviar pesquisa
Carregar
C言語講習会資料(前半)
•
1 gostou
•
3,294 visualizações
Yuki Sako
Seguir
ロボット技術研究会C言語講習会資料です. 演習問題の解答などはこちら. http://www.yukisako.xyz/entry/c_programming_training1
Leia menos
Leia mais
Software
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 62
Baixar agora
Baixar para ler offline
Recomendados
C言語講習会資料(後半)
C言語講習会資料(後半)
Yuki Sako
Lt python腕試しネタ
Lt python腕試しネタ
kiwofusi
母語方式Coq
母語方式Coq
Kiyoshi Ogawa
Seq2Seqでボットづくり
Seq2Seqでボットづくり
Masato Fujitake
Pythonでターミナルに画像表示
Pythonでターミナルに画像表示
Masato Fujitake
Nimで競技プログラミングを始めた話(1ヶ月)
Nimで競技プログラミングを始めた話(1ヶ月)
tattaka_sun
Tensor flow勉強会 (ayashiminagaranotensorflow)
Tensor flow勉強会 (ayashiminagaranotensorflow)
tak9029
C言語について
C言語について
Katsuro-u
Recomendados
C言語講習会資料(後半)
C言語講習会資料(後半)
Yuki Sako
Lt python腕試しネタ
Lt python腕試しネタ
kiwofusi
母語方式Coq
母語方式Coq
Kiyoshi Ogawa
Seq2Seqでボットづくり
Seq2Seqでボットづくり
Masato Fujitake
Pythonでターミナルに画像表示
Pythonでターミナルに画像表示
Masato Fujitake
Nimで競技プログラミングを始めた話(1ヶ月)
Nimで競技プログラミングを始めた話(1ヶ月)
tattaka_sun
Tensor flow勉強会 (ayashiminagaranotensorflow)
Tensor flow勉強会 (ayashiminagaranotensorflow)
tak9029
C言語について
C言語について
Katsuro-u
Androidのフレームワークをデバッグするために検出ツールを作ってた話
Androidのフレームワークをデバッグするために検出ツールを作ってた話
nhnmomonga
14対話bot発表資料
14対話bot発表資料
Keiichirou Miyamoto
テンプレート・エンジンVelocity
テンプレート・エンジンVelocity
隆行 神戸
XMPPクライアント・プログラミング
XMPPクライアント・プログラミング
隆行 神戸
並列プログラミング入門!&おさらい!
並列プログラミング入門!&おさらい!
道化師 堂華
A Chainer MeetUp Talk
A Chainer MeetUp Talk
Yusuke Oda
M5StickVとobnizとenebularを使って死角確認ツールもどきを作ったはなし
M5StickVとobnizとenebularを使って死角確認ツールもどきを作ったはなし
MinoruInoue2
10_C言語入門 - 条件分岐について(論理演算子と条件演算子)
10_C言語入門 - 条件分岐について(論理演算子と条件演算子)
bc_rikko
7_C言語入門 - 型変換について
7_C言語入門 - 型変換について
bc_rikko
5_C言語入門 - 変数について
5_C言語入門 - 変数について
bc_rikko
6_C言語入門 - 式と演算子について
6_C言語入門 - 式と演算子について
bc_rikko
8_C言語入門 - 条件分岐について(if-else if-else)
8_C言語入門 - 条件分岐について(if-else if-else)
bc_rikko
1-2_C言語入門 - プログラマに必要な能力
1-2_C言語入門 - プログラマに必要な能力
bc_rikko
11_C言語入門 - 繰り返し処理について
11_C言語入門 - 繰り返し処理について
bc_rikko
2_C言語入門 - VisualStudioについて
2_C言語入門 - VisualStudioについて
bc_rikko
9_C言語入門 - 条件分岐について(switch case)
9_C言語入門 - 条件分岐について(switch case)
bc_rikko
4_C言語入門 - n進数と基数変換について
4_C言語入門 - n進数と基数変換について
bc_rikko
12_C言語入門 - 読みやすいソースコードを書く
12_C言語入門 - 読みやすいソースコードを書く
bc_rikko
1-1_C言語入門 - C言語について
1-1_C言語入門 - C言語について
bc_rikko
3_C言語入門 - C言語の基本
3_C言語入門 - C言語の基本
bc_rikko
Eyecube Solutions Brochure Images compressed
Eyecube Solutions Brochure Images compressed
P Mohan
Cikloma 1
Cikloma 1
Daniil Bayushev
Mais conteúdo relacionado
Mais procurados
Androidのフレームワークをデバッグするために検出ツールを作ってた話
Androidのフレームワークをデバッグするために検出ツールを作ってた話
nhnmomonga
14対話bot発表資料
14対話bot発表資料
Keiichirou Miyamoto
テンプレート・エンジンVelocity
テンプレート・エンジンVelocity
隆行 神戸
XMPPクライアント・プログラミング
XMPPクライアント・プログラミング
隆行 神戸
並列プログラミング入門!&おさらい!
並列プログラミング入門!&おさらい!
道化師 堂華
A Chainer MeetUp Talk
A Chainer MeetUp Talk
Yusuke Oda
M5StickVとobnizとenebularを使って死角確認ツールもどきを作ったはなし
M5StickVとobnizとenebularを使って死角確認ツールもどきを作ったはなし
MinoruInoue2
Mais procurados
(7)
Androidのフレームワークをデバッグするために検出ツールを作ってた話
Androidのフレームワークをデバッグするために検出ツールを作ってた話
14対話bot発表資料
14対話bot発表資料
テンプレート・エンジンVelocity
テンプレート・エンジンVelocity
XMPPクライアント・プログラミング
XMPPクライアント・プログラミング
並列プログラミング入門!&おさらい!
並列プログラミング入門!&おさらい!
A Chainer MeetUp Talk
A Chainer MeetUp Talk
M5StickVとobnizとenebularを使って死角確認ツールもどきを作ったはなし
M5StickVとobnizとenebularを使って死角確認ツールもどきを作ったはなし
Destaque
10_C言語入門 - 条件分岐について(論理演算子と条件演算子)
10_C言語入門 - 条件分岐について(論理演算子と条件演算子)
bc_rikko
7_C言語入門 - 型変換について
7_C言語入門 - 型変換について
bc_rikko
5_C言語入門 - 変数について
5_C言語入門 - 変数について
bc_rikko
6_C言語入門 - 式と演算子について
6_C言語入門 - 式と演算子について
bc_rikko
8_C言語入門 - 条件分岐について(if-else if-else)
8_C言語入門 - 条件分岐について(if-else if-else)
bc_rikko
1-2_C言語入門 - プログラマに必要な能力
1-2_C言語入門 - プログラマに必要な能力
bc_rikko
11_C言語入門 - 繰り返し処理について
11_C言語入門 - 繰り返し処理について
bc_rikko
2_C言語入門 - VisualStudioについて
2_C言語入門 - VisualStudioについて
bc_rikko
9_C言語入門 - 条件分岐について(switch case)
9_C言語入門 - 条件分岐について(switch case)
bc_rikko
4_C言語入門 - n進数と基数変換について
4_C言語入門 - n進数と基数変換について
bc_rikko
12_C言語入門 - 読みやすいソースコードを書く
12_C言語入門 - 読みやすいソースコードを書く
bc_rikko
1-1_C言語入門 - C言語について
1-1_C言語入門 - C言語について
bc_rikko
3_C言語入門 - C言語の基本
3_C言語入門 - C言語の基本
bc_rikko
Eyecube Solutions Brochure Images compressed
Eyecube Solutions Brochure Images compressed
P Mohan
Cikloma 1
Cikloma 1
Daniil Bayushev
Artese - lezione introduttiva sui contratti in ambito software
Artese - lezione introduttiva sui contratti in ambito software
Edoardo E. Artese
Zapbuild Corporate Deck
Zapbuild Corporate Deck
Zapbuild
Spinal-Cord-Injury-Spina-Bifida-Model-of-Care
Spinal-Cord-Injury-Spina-Bifida-Model-of-Care
Louise Kelly
Targeting im Campaigning
Targeting im Campaigning
Eva Hieninger
Destaque
(19)
10_C言語入門 - 条件分岐について(論理演算子と条件演算子)
10_C言語入門 - 条件分岐について(論理演算子と条件演算子)
7_C言語入門 - 型変換について
7_C言語入門 - 型変換について
5_C言語入門 - 変数について
5_C言語入門 - 変数について
6_C言語入門 - 式と演算子について
6_C言語入門 - 式と演算子について
8_C言語入門 - 条件分岐について(if-else if-else)
8_C言語入門 - 条件分岐について(if-else if-else)
1-2_C言語入門 - プログラマに必要な能力
1-2_C言語入門 - プログラマに必要な能力
11_C言語入門 - 繰り返し処理について
11_C言語入門 - 繰り返し処理について
2_C言語入門 - VisualStudioについて
2_C言語入門 - VisualStudioについて
9_C言語入門 - 条件分岐について(switch case)
9_C言語入門 - 条件分岐について(switch case)
4_C言語入門 - n進数と基数変換について
4_C言語入門 - n進数と基数変換について
12_C言語入門 - 読みやすいソースコードを書く
12_C言語入門 - 読みやすいソースコードを書く
1-1_C言語入門 - C言語について
1-1_C言語入門 - C言語について
3_C言語入門 - C言語の基本
3_C言語入門 - C言語の基本
Eyecube Solutions Brochure Images compressed
Eyecube Solutions Brochure Images compressed
Cikloma 1
Cikloma 1
Artese - lezione introduttiva sui contratti in ambito software
Artese - lezione introduttiva sui contratti in ambito software
Zapbuild Corporate Deck
Zapbuild Corporate Deck
Spinal-Cord-Injury-Spina-Bifida-Model-of-Care
Spinal-Cord-Injury-Spina-Bifida-Model-of-Care
Targeting im Campaigning
Targeting im Campaigning
Semelhante a C言語講習会資料(前半)
最近思った機械学習(PyTorch)のベストプラクティス
最近思った機械学習(PyTorch)のベストプラクティス
Masato Fujitake
機械学習のマイクロサービスでの運用の実験について #mlops
機械学習のマイクロサービスでの運用の実験について #mlops
Hiroaki Kudo
Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御
Ryosuke Okuta
本格的なプログラミングが学べる学校・金沢高専
本格的なプログラミングが学べる学校・金沢高専
金沢工業高等専門学校
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
株式会社 オープンソース・ワークショップ
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
株式会社 オープンソース・ワークショップ
「Python 機械学習プログラミング」の挫折しない読み方
「Python 機械学習プログラミング」の挫折しない読み方
Hiroki Yamamoto
ゲームエンジンの中の話
ゲームエンジンの中の話
Masayoshi Kamai
ML system design_pattern
ML system design_pattern
yusuke shibui
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
Takashi Uemura
Android道紹介
Android道紹介
Takaya Funabiki
高専カンファIn京都
高専カンファIn京都
鈴鹿工業高等専門学校
KOMANKO and PAOPAL
KOMANKO and PAOPAL
ssuser2d7627
mruby×ETロボコン = ?
mruby×ETロボコン = ?
ssuserc1bb39
Portable RT-Middleware environment on a USB memory for the robot programing ...
Portable RT-Middleware environment on a USB memory for the robot programing ...
s15mh218
Pi4Jで簡単! ラズパイでトイレ空室管理システムを つくってみたよ
Pi4Jで簡単! ラズパイでトイレ空室管理システムを つくってみたよ
Yoshio Kajikuri
20170624 発表資料-ml
20170624 発表資料-ml
Ozawa Kensuke
Pydata_fukuoka_LT
Pydata_fukuoka_LT
Nisi Hide
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
典子 松本
機械学習システムを受託開発 する時に気をつけておきたい事
機械学習システムを受託開発 する時に気をつけておきたい事
BrainPad Inc.
Semelhante a C言語講習会資料(前半)
(20)
最近思った機械学習(PyTorch)のベストプラクティス
最近思った機械学習(PyTorch)のベストプラクティス
機械学習のマイクロサービスでの運用の実験について #mlops
機械学習のマイクロサービスでの運用の実験について #mlops
Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御
本格的なプログラミングが学べる学校・金沢高専
本格的なプログラミングが学べる学校・金沢高専
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
「Python 機械学習プログラミング」の挫折しない読み方
「Python 機械学習プログラミング」の挫折しない読み方
ゲームエンジンの中の話
ゲームエンジンの中の話
ML system design_pattern
ML system design_pattern
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
Android道紹介
Android道紹介
高専カンファIn京都
高専カンファIn京都
KOMANKO and PAOPAL
KOMANKO and PAOPAL
mruby×ETロボコン = ?
mruby×ETロボコン = ?
Portable RT-Middleware environment on a USB memory for the robot programing ...
Portable RT-Middleware environment on a USB memory for the robot programing ...
Pi4Jで簡単! ラズパイでトイレ空室管理システムを つくってみたよ
Pi4Jで簡単! ラズパイでトイレ空室管理システムを つくってみたよ
20170624 発表資料-ml
20170624 発表資料-ml
Pydata_fukuoka_LT
Pydata_fukuoka_LT
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
機械学習システムを受託開発 する時に気をつけておきたい事
機械学習システムを受託開発 する時に気をつけておきたい事
C言語講習会資料(前半)
1.
ロボット技術研究会 C言語講習 前半戦 @2016/6/13 立命館大学理工学部ロボティクス学科2回生
迫 佑樹 1
2.
自己紹介 名前: 迫 佑樹 所属:
理工学部ロボティクス学科 2回生 twitter: yuki_99_s 2
3.
目的 ・ロボットの制御に必須となるプログラミングの基礎中の基礎を身に つけてもらう. ・C言語に関する基礎的な知識を身に付ける 3
4.
はじめに 飽きちゃうと思うので途中から実践を挟んでいきます https://ideone.com/ こちらへアクセスすると,オンライン環境が使用できる. 例題,演習問題の問,答えは後ほどアップします. このスライドは http://yukisako.github.io/slide.html にあげます. 私の名前
yukisako で検索したら多分1番目にヒットします 4
5.
プログラミングとは ・コンピュータに対して「これをやったら、これをしろ」という事を書くの がプログラミング ・とっても難しいイメージがあるけどもそんなこともない ・簡単なことの集まり 5
6.
プログラムの具体例 こんな簡単なのもプログラム (Scratch) 6
7.
プログラムの具体例 +++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++. +++++++..+++.>-. ------------.<++++++++.--------.+++.------.--------.>+. これもプログラム(brainfuck) 7
8.
プログラムの具体例 int a =
10; int b = 10; int sum = a + b; これもプログラム(いろいろ) 8
9.
プログラムって? コンピュータへの命令の手段 コンピュータへ命令の伝え方はいろいろ その1つに「C言語」を用いるという手がある 9
10.
C言語でなにができるの? ・家電の制御 ・ゲームも作れる ・OSも作れる ・プログラミング言語も作れる 10
11.
C言語の特徴 ・高水準言語(読みやすい書きやすい) ・コンパイルが必要(後で説明) ・実行速度が速い!! 11
12.
んでコンパイルってなに? コンピュータが理解できるのはスイッチのON・OFF スイッチがONなら1,OFFなら0と対応させたものが「機械語」 例)110011111111101011101101111110100000011100000000 12
13.
こんなの書いてられない ってことで,C言語でプログラムを書いて,コンパイラに機械語への翻 訳作業を頼む. この翻訳のことをコンパイルという. 13
14.
プログラムの考え方 逐次処理・・・命令された順番に処理を行うこと 繰り返し・・・決められた回数,同じ処理を行うこと 条件分岐・・・条件によって行う処理を変えること これだけでいろんな行動が表せるのすごくない? 14
15.
日常生活をこの3つの処理に当てはめて見よう 15
16.
もっとロボット制御っぽく 黒いものをつかむプログラム 16
17.
コードを書く前に ・綺麗なコードを書くことを意識しよう コードが汚いと → バグが増える → 自分でもなにがなんだかわからなくなってくる →
他人が見た時になにがなんだかわからなくなる → コードの変更が困難 17
18.
汚いコードとは ・一つの処理が長い ・同じような処理を何回もしている ・記述が統一されていない ・スペース,インデントが適切でない ・コメントで補足しまくらないと意味が伝わらない ・よくわからない変数名を使用している(変数についてはあとで) ・(立◯館大学のCampas Webのソースコード) 18
19.
インデント(字下げ)をつけよう インデントあり カッコの対応がわかりやすい インデントなし カッコの対応がわからない 19
20.
空白を開けよう インデントあり カッコの対応がわかりやすい インデントなし カッコの対応がわからない 空白あり みやすい 空白なし ぎちぎちでなんかみにくい 20
21.
コメントをつけよう あとでわかりやすくするように,コメントを残すことができる #include <stdio.h> //printfは画面に表示する命令 int main(void)
{ printf("hello worldn"); return 0; } 21
22.
コメントをつけよう //とすると,その行がまるごと一行コメントとなる 「/*」と「*/」で囲むと,その囲まれた行がすべてコメントとなる 例 //これがコメントです /* これもコメントになります */ 22
23.
はじめてのプログラムを書いてみよう https://ideone.com/ こちらにアクセスして,プログラムを書いてみる 23
24.
24
25.
例1 初めてのプログラム #include <stdio.h> int
main(void) { printf("hello worldn"); return 0; } 25
26.
26
27.
ライブラリの読み込み #include <stdio.h> ここで,stdio.hというファイルを読み込んでいる. 1からプログラムを書いていたらほんとうに大変なので,よく使う処理をまと めてくれるものをライブラリという (ロボ研のNHKロボコンで使ってるマイコンを使うためにはmbed.hとかを読 み込む) 27
28.
main関数 この部分をmain関数という.C言語のプログラムは,main関数の中身が実 行される. printfは,画面に文字列を出力する命令.(¥nは改行を表す) 28
29.
プログラム全体 つまりこれは,画面に「hello world」と表示させるプログラム 29
30.
演習1 画面に自分の名前と年齢を表示するプログラムを作成してくだ さい. 出力例「 I am
Yuki. 19 years old.」 30
31.
解答 #include <stdio.h> int main(void)
{ printf("I am Yuki. 19 years oldn"); return 0; } 31
32.
変数を使ってみよう 変数とは計算や処理を行うための数字や文字を入れておく 「箱」 C言語ではchar, int, long,
float,double型の変 数がある.型によって保存できる情報の量や内容が変わる. 変数に代入するときは = をつかう 32
33.
変数を使ってみよう こうすると,sumには30が入っている 33
34.
変数を使ってみよう 変数は,上書き可能,型宣言ははじめの一回だけ. sumには50が入っている 34
35.
変数の型について(今は覚えなくてもOK) 型名 変数名; int a;
整数型 (integer) double b; 倍精度実浮動小数点型 char c; 文字型 (character) short d; 短整数型 long e; 長整数型 float f; 単精度実浮動小数点型 35
36.
例2 変数の中身を表示させてみたい 36
37.
例2 変数の中身を表示させてみたい printf("I am
Yuki. %d years oldn", age); → "I am Yuki. 19 years oldn" と,%dの部分にageの中身が置き換わる. 37
38.
38
39.
演習2 変数 birthをint型で宣言し,あなたの誕生月を格納し,表示. 出力例「私の誕生月は8月です」 39
40.
演算子 変数 birthをint型で宣言し,あなたの誕生月を格納し,表示. 出力例「私の誕生付きは8月です」 40
41.
演算子 int a =
10; a = a + 5; とすると,a には 15が格納される. a = a + 5;は a += 5;と同値 a++;,a--; とかけばa += 1;,a -= 1;と同値 41
42.
例3 42
43.
演習3 四則演算を使ったプログラムを書く a =
20,b = 5という変数をint型で宣言し,aとbの 和,差,積,商を表示. 43
44.
条件分岐を使ってみよう ・制御式に基づいて,処理の流れを決める. 構文 if(条件){ 条件が満たされた時の処理 } else {
条件が満たされなかった時の処理 } 44
45.
45
46.
よく使う演算子 ・制御式に基づいて,処理の流れを決める. 構文 if(条件){ 条件が満たされた時の処理 } else {
条件が満たされなかった時の処理 } 46
47.
注意 a = 10とa
== 10は違う. a = 10は代入を表すが,a == 10は等しいかどうかを比較する演算子 47
48.
例4 48
49.
演習4 numという変数をint型で用意し,好きな数字を格納. そして,numが2で割り切れたら「偶数です」,割り切れなかったら「奇 数です」と表示するプログラムを作成してください. ヒント: 「2で割り切れる」 ==
「2で割ったあまりが0」 49
50.
繰り返し処理を使ってみよう 繰り返し処理とは,ある条件を満たす間,同じ処理を繰り返し行うこと ・C言語には,for文とwhile文(とdo while文)がある. ・今回扱うのは,for文とwhile文 50
51.
繰り返し処理を使ってみよう for文 for(初期値 ; 条件
; 増分){ 処理 } という構文をしている 51
52.
52
53.
例5 1からnまでの和を求めるプログラム 53
54.
演習5 for文を使ってみよう 2のn乗を2の1乗から順番に2の10乗まで表示するプログラ ムを書いてください 54
55.
演習5 1からnまでの和を求めるプログラム 2のn乗を2の1乗から順番に2の10乗まで表示するプログラ ムを書いてください 55
56.
while文を使ってみよう 56
57.
例6 while文を使って1〜nまでの和を求める 57
58.
演習6 while文を使ってみよう 自然数nに対して,nの階乗を求めるプログラムを作成してく ださい. nが大きすぎると,意図しない結果になる.n<10くらいで任意 の数を決めてテストしてみよう. 58
59.
おつかれさまでした. 本日やったこと ・プログラミングってなんだ? ・変数について ・条件分岐 ・繰り返し処理 59
60.
確認問題(これができたら今日の内容はOK) 1〜100までカウントアップし,その数が3の倍数ならばFizz, 5の倍数ならBuzz,3の倍数かつ5の倍数ならばFizzBuzz, どれでもなければ単純な数字を表示するプログラムを書いて ください. 60
61.
確認問題(これができたら今日の内容はOK) 出力例 1,2,Fizz,4,Buzz,Fizz,7,8,Fizz,Buzz,11,Fizz,13, 14,FizzBuzz,16,17,Fizz,19,Buzz,Fizz,22,23, Fizz,Buzz,26,Fizz,28,29,FizzBuzz,31,32,..... 97, 98,Fizz,Buzz 61
62.
(ヒント)余力問題の思考過程 プログラムはちょっとずつ機能を足していく 2ステップに分けてみよう ステップ1: 1〜100までとりあえず表示するプログラムを作成(繰り返し処理) ステップ2 :
3の倍数の時Fizz,5の倍数の時Buzz,3の倍数かつ5の倍数の時 FizzBuzzと表示する処理を追加(条件分岐) 倍数の処理は演習4を参照 62
Baixar agora