cプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/cproi/lec/cproguidance_2017.pdf · 第6回....

22
CプログラミングⅠ 授業ガイダンス C言語の概要 プログラム作成・実行方法

Upload: others

Post on 06-Jan-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

CプログラミングⅠ

授業ガイダンス

C言語の概要

プログラム作成・実行方法

Page 2: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

授業内容について 授業目的

C言語によるプログラミングの基礎を学ぶこと

学習内容

C言語の基礎的な文法 入出力,変数,演算,条件分岐,繰り返し,配列,(関数)

C言語による簡単な計算処理プログラムの開発

到達目標

C言語の基礎的な文法を理解する

簡単な計算処理プログラムを作成できるようにする

授業ガイダンス 2

Page 3: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

授業内容について 成績評価の方法

演習課題レポート(50%),理解度確認テスト(50%)により総合的に評価する

教科書・参考書

高橋麻奈 著 : 「やさしいC」 Softbank Creative発行

河野英昭 他 著 : 「基礎C言語プログラミング」共立出版発行

授業の進め方

各文法項目について説明したあと,簡単なプログラムを作成,実行してみる

授業数回ごとに応用的なプログラミング演習課題を課し,レポートにまとめて提出する

授業ガイダンス 3

Page 4: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

授業計画第1回 授業ガイダンス,C言語の概要

第2回 標準出力

第3回 変数とデータ型,標準入力

第4回 式と演算子,簡単なプログラム

第5回 条件分岐 : if文,if~else文

第6回 条件分岐 : if~else if~else文,switch文

第7回 演習課題(1)

第8回 理解度確認テスト(1)および解説

第9回 繰り返し処理 : for文

第10回 繰り返し処理 : while文,do~while文

第11回 配列,多次元配列

第12回 関数の基礎(標準関数の利用方法)

第13回 演習課題(2)

第14回 理解度確認テスト(2)および解説

第15回 講義のまとめ・復習

授業ガイダンス 4

Page 5: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

C言語プログラムの概要

プログラム

コンピュータに正しい作業手順を教えるために,命令を正しい順序で並べたもの.

コンピュータは2進数でコード化された命令(機械語)しか理解できないので,プログラムを機械語に変換してあげなければならない.

プログラム(コンピュータへの命令)

機械語に変換 コンピュータ上で実行作成されたプログラム

C言語の概要

Page 6: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

C言語プログラムの概要 プログラミング言語

プログラムを記述するために設計された言語

人間がプログラムを直観的に理解しやすくなる.

プログラミング言語の種類

機械語への変換の仕方で次の3つに大別できる.

アセンブリ言語

機械語と1対1に対応

インタプリタ言語

プログラムを逐次機械語に通訳しながら実行

コンパイラ言語

プログラムを一括して機械語に翻訳(コンパイル)してから実行

C言語

C言語の概要

Page 7: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

C言語プログラムの概要 プログラミング言語 C

コンパイラ言語の一つ

多くのコンピュータシステム上に開発環境が用意されているため移植性が高い

OSのシステム記述など,ハードウェアに近いレベル(機械語レベル)の処理も記述できる.

豊富な演算子と制御構造

豊富なデータ構造

関数を用いてわかりやすいプログラム(構造化プログラム,モジュール化)が書ける.

C言語の概要

Page 8: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

C言語プログラムの概要

メモ

C言語の歴史

AT&Tのベル研究所で,Dennis M. Ritchieによって,UNIXオペレーティングシステムのシステム記述言語として設計された(1972年頃)

Kernighan and Ritchie, “The C Programming Language”, Prentice-Hall, 1978K&Rと呼ばれ,C言語の初期の標準的な言語仕様とされる.

1989年にANSI規格が制定,1990年にISO規格,1993年にJIS規格.→ C言語の国際標準仕様ができる.(ANSI Cと呼ばれることも多い)

C言語の概要

Page 9: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

C言語プログラムの作成・実行方法

プログラム作成と実行の手順

1. C言語のソースファイルの作成

2. コンパイル : オブジェクトファイルの作成

3. リンク : 実行形式プログラムの作成

4. 実行 : コマンドプロンプト上で実行形式プログラムの実行

#include <….….

int main(void){

….

1010010000101

…..

コンパイラ

ソースファイル(C言語)

オブジェクトファイル(機械語)

1010010000101

…..1010010000101

…..1010010000101

…..

オブジェクトファイル

リンカ

実行形式プログラム

コンパイル リンク

C言語プログラムの作成・実行方法

Page 10: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

C言語プログラムの作成・実行方法 フリーソフト「CPad」の起動

10

PCのデスクトップ上のアイコン 「Cpad for

Borland C++ Compiler」 をダブルクリックすると

起動できます

ダブルクリック

起動

C言語プログラムの作成・実行方法

Page 11: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

プログラムの新規保存

メニューの「ファイル」→「名前を付けて保存」を選択する

「名前を付けて保存」ダイアログが表示される

C言語プログラムの作成・実行方法

C言語プログラムの作成・実行方法 11

選択

Page 12: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

プログラムの新規保存

「保存する場所」を,「G:」(USBメモリ)の「CproI」フォルダに選択しておく

USBメモリ上に「CproI」フォルダを作成しておくこと

C言語プログラムの作成・実行方法

C言語プログラムの作成・実行方法 12

選択

ダブルクリック

Page 13: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

プログラムの新規保存

「ファイル名」の欄にファイル名(拡張子を .c とする)を入力して「保存」ボタンを押して,保存する

下図では「test.c」というファイル名で保存しようとしている

C言語プログラムの作成・実行方法

C言語プログラムの作成・実行方法 13

選択

入力

タブにファイル名が表示される

Page 14: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

プログラムの記述(作成)

エディタにプログラムを記述していく

C言語プログラムの作成・実行方法

C言語プログラムの作成・実行方法 14

Page 15: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

プログラムファイルの上書き保存

一度「名前を付けて保存」をしておけば,プログラムを記述・修正した後, を押すことで上書き保存される

C言語プログラムの作成・実行方法

15

選択

C言語プログラムの作成・実行方法

プログラム記述・修正中は「*」が表示される

「*」が消える

Page 16: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

プログラムのコンパイル

コンパイルボタンを押してコンパイルを実行する

実行形式ファイル( .exe )が作成される

C言語プログラムの作成・実行方法

16

コンパイルボタンをクリック

実行形式ファイルが作成されるメッセージ欄に

コンパイル処理した旨が表示される

C言語プログラムの作成・実行方法

Page 17: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

プログラムの実行

実行ボタンを押してプログラムを実行する

コマンドプロンプトウィンドウが表示され,実行結果が表示される

C言語プログラムの作成・実行方法

17

実行ボタンをクリック

コマンドプロンプトウィンドウが表示され実行結果が表示される

C言語プログラムの作成・実行方法

Page 18: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

コンパイルの失敗

プログラム中に誤り(エラー)があると,コンパイルの実行が失敗して実行形式ファイルが作成されない

エラーメッセージを参考にして誤りを修正し,再度コンパイルを実行する

エラーが無くなるまで(エラーメッセージが表示されなくなるまで),誤りの修正と再コンパイルを繰り返すこと

C言語プログラムの作成・実行方法

18

エラーメッセージを参考にしてプログラムの誤りを修正する

セミコロン(;)がない

何行目に誤りがあるかが表示される(ただし,参考程度に見ること)

C言語プログラムの作成・実行方法

Page 19: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

既存プログラムファイルを開く

すでに作成しているプログラムを修正・追記する場合

メニューの「ファイル」→「ファイルを開く」を選択する

「ファイルを開く」ダイアログが表示される

C言語プログラムの作成・実行方法

C言語プログラムの作成・実行方法 19

選択

Page 20: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

既存プログラムファイルを開く

「ファイルを開く」ダイアログにて,プログラムファイルを保存しているフォルダに移動する

開きたいファイルを選択し,「開く」ボタンを押す 下図では「hello.c」ファイルを選択し,開いている

C言語プログラムの作成・実行方法

C言語プログラムの作成・実行方法 20

選択

選択

フォルダ移動

Page 21: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

文字列出力プログラム

printf文を使って,学籍番号,氏名,出身高校を表示する,以下のプログラムを実際に作成して実行してみること

練習1-1 簡単なプログラムの実行

21

練習1-1

1: /* 文字列を出力する */

2: #include <stdio.h>

3: int main(void)

4: {

5: /* 学籍番号と氏名を出力する */

6: printf("14C?0?? 山本貴弘¥n");

7: printf("埼玉県立朝霞高等学校¥n");

8:

9: return 0;

10: }

Page 22: CプログラミングⅠimgprolab.sys.fit.ac.jp/~yama/CProI/lec/CproGuidance_2017.pdf · 第6回. 条件分岐: if~else if~else文,switch文 第7回. 演習課題(1)

簡単な計算プログラム

変数,演算子を使って2つの整数値の足し算を計算する,以下のプログラムを実際に作成して実行してみる

練習1-2 簡単なプログラムの実行

22

練習1-2

1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:

/* 2つの整数値の足し算を計算する */#include <stdio.h>int main(void){

int a;int b; /* 変数の宣言 */int c;

a = 10; /* 変数へのデータの代入 */b = 20; /* 変数へのデータの代入 */c = a + b; /* 計算結果の変数への代入 */printf("足し算の結果 : %d¥n", c); /* 計算結果の出力 */printf("%d + %d = %d¥n", a, b, c);

return 0;}