SlideShare a Scribd company logo
1 of 36
C言語超入門
1日目
• プログラムとは
• C言語とは
• 開発環境のインストール
• Hello World!
プログラムとは
コンピュータに仕事をさせるための手順を書いたもの
たとえば…その1
よく飼いならされた犬がいる
「お手」という
お手をする。
プログラムは…
「お手」という
たとえば… その2
これもプログラム
https://scratch.mit.edu/
たとえば… その3
void main()
{
int b = a;
b = b*2;
}
これもプログラム
たとえば… その4
ADD A,R0
SUBB A,R0
これもプログラム
プログラムとは
• コンピュータに仕事の手順を教えた
(命令した)もの
• 教え方はいろいろ
• 教え方の一つがC言語
C言語とは
コンピュータに仕事を教えるための文法
コンピュータに命令を与えるための文法
コンピュータは
何を理解できる?
コンピュータは0と1を区別できる
コンピュータはONとOFFしかわからない
たとえば
コンピュータは0と1は理解できるが2は理解できない。
コンピュータはスイッチのONとOFFは理解できる。
スイッチがONなら1、OFFなら0というふうに理解する。
スイッチが2つあるとする。
00 01 10 11
01と組み合わせで4種類を区別する。
C言語は…
void main()
{
int b = a;
b = b*2;
}
このままでは理解できないので、C言語の文法にしたがって0と1
に変換する必要がある
コンパイラに変換をお願いする
C言語とCコンパイラ
C言語の文法にしたがって書かれたプログラム
コンパイラが変換
コンピュータが仕事する
ひとりじゃ大変
プログラムは、すでにある部品や、いろんな人が作った部品を最
後につなげて動かす
→変換だけではなくつなげることも必要
→リンカにお願いする。
C言語とコンパイラと
リンカ
C言語の文法にしたがって書かれたプログラム
コンパイラが変換
コンピュータが仕事する
既にあるプログラム 既にあるプログラム
リンカが結合
ライブラリ
既にあるプログラムをライブラリという
・標準Cライブラリ
以外にもいろいろ。自分で作ったりもする。
プログラムは、いろんなライブラリと自分のプログラムを組み合
わせてコンピュータに仕事を命令する
コンパイラのインストール
コンパイラとリンカを実行して、プログラムを実行ファイル
(exeファイルとか)にしてくれるプログラムを開発環境という
C言語の開発環境には
Microsoft Visual Studio
Eclipse with CDT
NetBeans
BCC Developer
などなどいっぱいある。
Windowsで使うプログラムの開発環境は、とりあえずMicrosoft
Visual Studioが無難。
MICROSOFT
VISUAL STUDIO
・ユーザが多い
・webでヒントいっぱい
・なんだかんだで高機能
・無料でも使える
VISUAL STUDIO COMMUNITY
2015 RCをインストール
https://www.visualstudio.com/
Visual Studio Community 2015 RCをダウンロード
カスタムインストール
カスタムを選択
Microsoft SQL Server Data Toolsと
Silverlight開発キット
以外全部インストール(28G必要!!)
VISUAL STUDIOを起動する
新しいプロジェクト…
空のプロジェクトを選択
新しいプロジェクトの設定
名前はFirstDayとしておく。
場所は、好きな場所でOK
ソリューション名は、C_Practiceとして
OKボタンをクリック
ソリューションと
プロジェクト
プロジェクトは、プログラムを管理する単位
プロジェクトの集合体がソリューション
プログラム作成画面
ソリューションの中にFirstDayというプロジェクトが作成される。
プログラムの追加
ソースファイルフォルダを右ク
リックして新しい項目を追加をク
リック
プログラムの追加
C++ファイルを選択して、名前をFirstDaySrc.cppとする。
cppはC++のソースファイルの拡張子だが、今回の練習の範囲
内では問題なし。
プログラムの追加
編集エリアにFirstDaySrc.cppが編集可能な状態で表示される。
プログラムを作る
まずは、何もしないプログラムを編集エリアに書く
void main(){
}
C言語のソースプログラムは、関数の集合体として記述される。
関数は名前を持ち{}でくくられた文字の集合体。
上のプログラムは、mainという名前の関数で、{}にくくられ
えた本体部分はなにもないプログラム。
mainの前のvoidは戻り値と呼ばれ、関数を実行した結果、その
関数からは何も出力されませんの意味。
プログラムを
コンパイルする
なにもしないプログラムをコンパイルして実行する。
Visual Studioではコンパイル→リンクをまとめて実行するコマン
ド(ビルド)が用意されている。
メニューからビルド>FirstDayをビルドを選択する。
画面下の出力ウィンドウにFirstDay.exeを作成したことが表示さ
れる。
プログラムを実行する
できあがったFirstDay.exeファイルを選択して実行する
一瞬、黒い画面がでて終了する。
←何もしないプログラムだからなにもしないで終了した。
何かするプログラムを作る
#include <stdio.h>
void main(){
printf(“Hello World”);
getchar();
}
上の3行を追加してビルド、実行する
黒い画面にHello World!と表示される
何かキーボードを押すとプログラムは終了する
PRINTFとGETCHAR
printfとgetcharは標準C言語ライブラリの中の関数
他の人が作った関数を利用するために、
#include <stdio.h>
としている。
stdio.hにはほかの人が作った関数がどんなものかが書いてある。
そのために、stdio.hをソースファイルに含めてくださいというの
が、#includeの意味。
stdio.hは関数の説明だけ。関数をコンパイルした結果は、リンカ
が結合してくれる。リンカの設定は、また次回以降に
コメント(メモ)を追加する
#include <stdio.h>
// プログラムのエントリポイント
void main(){
printf(“Hello World!”);// Hello World!と表示する
getchar(); // 入力された文字を取得する
}
プログラムのコメントは//で始める。//以降、その行のプログラ
ムを、コンパイラは無視をする。
演習問題
① C_HomeWorkというソリューションを作成し、その中に
FirstDayというプロジェクトを作成する。
② ①で作成したプロジェクトにFirstDaySrc.cppというソース
ファイルを追加する。
③ ②で追加したソースファイルにmain関数を作成し、printfを
使って様々な文字を表示するプログラムを作成
④ ③で作ったプログラムをビルドして、exeファイルを作成し
実行する。
⑤ ③で使ったprintfに渡したメッセージがちゃんと表示される
ことを確認する

More Related Content

What's hot

C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるHideyuki Tanaka
 
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門競技プログラミングのためのC++入門
競技プログラミングのためのC++入門natrium11321
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexprGenya Murakami
 
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexprGenya Murakami
 
Effective Modern C++ 勉強会#3 Item 15
Effective Modern C++ 勉強会#3 Item 15Effective Modern C++ 勉強会#3 Item 15
Effective Modern C++ 勉強会#3 Item 15Mitsuru Kariya
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami
 
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」Hiro H.
 
新しい並列for構文のご提案
新しい並列for構文のご提案新しい並列for構文のご提案
新しい並列for構文のご提案yohhoy
 
PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」Preferred Networks
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門Kimikazu Kato
 
圏論は、随伴が全て
圏論は、随伴が全て圏論は、随伴が全て
圏論は、随伴が全てohmori
 
unique_ptrにポインタ以外のものを持たせるとき
unique_ptrにポインタ以外のものを持たせるときunique_ptrにポインタ以外のものを持たせるとき
unique_ptrにポインタ以外のものを持たせるときShintarou Okada
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 TipsTakaaki Suzuki
 
Effective modern c++ 8
Effective modern c++ 8Effective modern c++ 8
Effective modern c++ 8uchan_nos
 
為何學數學 ? (Libre office 原稿)
為何學數學 ? (Libre office 原稿)為何學數學 ? (Libre office 原稿)
為何學數學 ? (Libre office 原稿)鍾誠 陳鍾誠
 
Constexpr 中3女子テクニック
Constexpr 中3女子テクニックConstexpr 中3女子テクニック
Constexpr 中3女子テクニックGenya Murakami
 
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)Hiro H.
 
イマドキC++erのモテカワリソース管理術
イマドキC++erのモテカワリソース管理術イマドキC++erのモテカワリソース管理術
イマドキC++erのモテカワリソース管理術Kohsuke Yuasa
 

What's hot (20)

C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
 
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
 
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
 
Effective Modern C++ 勉強会#3 Item 15
Effective Modern C++ 勉強会#3 Item 15Effective Modern C++ 勉強会#3 Item 15
Effective Modern C++ 勉強会#3 Item 15
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
 
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
 
新しい並列for構文のご提案
新しい並列for構文のご提案新しい並列for構文のご提案
新しい並列for構文のご提案
 
PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
 
圏論は、随伴が全て
圏論は、随伴が全て圏論は、随伴が全て
圏論は、随伴が全て
 
unique_ptrにポインタ以外のものを持たせるとき
unique_ptrにポインタ以外のものを持たせるときunique_ptrにポインタ以外のものを持たせるとき
unique_ptrにポインタ以外のものを持たせるとき
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
 
R高速化
R高速化R高速化
R高速化
 
Effective modern c++ 8
Effective modern c++ 8Effective modern c++ 8
Effective modern c++ 8
 
為何學數學 ? (Libre office 原稿)
為何學數學 ? (Libre office 原稿)為何學數學 ? (Libre office 原稿)
為何學數學 ? (Libre office 原稿)
 
Constexpr 中3女子テクニック
Constexpr 中3女子テクニックConstexpr 中3女子テクニック
Constexpr 中3女子テクニック
 
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
 
イマドキC++erのモテカワリソース管理術
イマドキC++erのモテカワリソース管理術イマドキC++erのモテカワリソース管理術
イマドキC++erのモテカワリソース管理術
 
C#で速度を極めるいろは
C#で速度を極めるいろはC#で速度を極めるいろは
C#で速度を極めるいろは
 

Similar to C言語超入門

Cをやりましょう
CをやりましょうCをやりましょう
CをやりましょうKen Ogura
 
2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日nukaemon
 
Programming 学習のすすめ(改訂版)
Programming 学習のすすめ(改訂版)Programming 学習のすすめ(改訂版)
Programming 学習のすすめ(改訂版)Sayaka Tamura
 
Introduction to programming
Introduction to programmingIntroduction to programming
Introduction to programmingkeki3
 
pi-1. プログラミング入門
pi-1. プログラミング入門pi-1. プログラミング入門
pi-1. プログラミング入門kunihikokaneko1
 
Programming 学習のすすめ
Programming 学習のすすめProgramming 学習のすすめ
Programming 学習のすすめSayaka Tamura
 
RoboticsとC++@歌舞伎座.tech#8「C++初心者会」
RoboticsとC++@歌舞伎座.tech#8「C++初心者会」RoboticsとC++@歌舞伎座.tech#8「C++初心者会」
RoboticsとC++@歌舞伎座.tech#8「C++初心者会」Takashi Ogura
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiNaruto TAKAHASHI
 
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフトobjc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフトTaketo Sano
 
Android道第1回公開用
Android道第1回公開用Android道第1回公開用
Android道第1回公開用Takaya Funabiki
 
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops20120927 findjob4 dev_ops
20120927 findjob4 dev_opsume3_
 
po-1. プログラミング入門
po-1. プログラミング入門po-1. プログラミング入門
po-1. プログラミング入門kunihikokaneko1
 
.NETの自作ツール公開手段
.NETの自作ツール公開手段.NETの自作ツール公開手段
.NETの自作ツール公開手段Pierre3 小林
 

Similar to C言語超入門 (17)

Cをやりましょう
CをやりましょうCをやりましょう
Cをやりましょう
 
2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日
 
Programming 学習のすすめ(改訂版)
Programming 学習のすすめ(改訂版)Programming 学習のすすめ(改訂版)
Programming 学習のすすめ(改訂版)
 
Introduction to programming
Introduction to programmingIntroduction to programming
Introduction to programming
 
pi-1. プログラミング入門
pi-1. プログラミング入門pi-1. プログラミング入門
pi-1. プログラミング入門
 
Programming 学習のすすめ
Programming 学習のすすめProgramming 学習のすすめ
Programming 学習のすすめ
 
C#勉強会
C#勉強会C#勉強会
C#勉強会
 
RoboticsとC++@歌舞伎座.tech#8「C++初心者会」
RoboticsとC++@歌舞伎座.tech#8「C++初心者会」RoboticsとC++@歌舞伎座.tech#8「C++初心者会」
RoboticsとC++@歌舞伎座.tech#8「C++初心者会」
 
4/17
4/174/17
4/17
 
Blenderとコード
BlenderとコードBlenderとコード
Blenderとコード
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
 
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフトobjc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
 
Android道第1回公開用
Android道第1回公開用Android道第1回公開用
Android道第1回公開用
 
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
 
IT魔導の書 ~ Grimoire du IT
IT魔導の書 ~ Grimoire du ITIT魔導の書 ~ Grimoire du IT
IT魔導の書 ~ Grimoire du IT
 
po-1. プログラミング入門
po-1. プログラミング入門po-1. プログラミング入門
po-1. プログラミング入門
 
.NETの自作ツール公開手段
.NETの自作ツール公開手段.NETの自作ツール公開手段
.NETの自作ツール公開手段
 

Recently uploaded

生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptyuitoakatsukijp
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 

Recently uploaded (7)

生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 

C言語超入門