Category Archives: C programming1

C programming (5) operator and operand

C言語の特徴(2)

関数型言語

コンピュータに実行してもらう命令はすべて関数の中に記述されている。関数がプログラムの実行単位。いくつかの関数を組み合わせ、コンピュータへ命令をする。最初にコンピュータが実行する関数はmain()に決まっている。

戻り値の型 関数名(引数リスト)
{
	命令文;
}

命令文(Statement)

  • 名札付き文
  • 式文
  • 複合文
  • 選択文
  • 繰り返し文
  • ジャンプ文

式(Expression)

オペランド 演算子 オペランド...

トークン(token)

コンパイラが認識する最小単位のテキスト、トークン(token)

  • キーワード
  • 識別子
  • 定数
  • リテラル文字列
  • 演算子
  • 区切り子
#include <stdio.h>

int main() {
  printf("Hello World\n");
  return 0;
}
トークンに分解
トークン トークンの種類
int キーワード
main 識別子
( 区切り子
) 区切り子
{ 区切り子
printf 識別子
( 演算子
“Hello World\n” リテラル文字列
) 演算子
; 区切り子
return キーワード
0 定数
; 区切り子
} 区切り子

トークンの間に演算子や区切り子、または空白文字で区切りする

空白文字とは、次のいずれかの文字のことを表します。

  • スペース
  • 水平及び垂直タブ
  • 改行
  • 改ページ
  • コメント

注釈(コメント)(Comment)

/* 一行コメント1 */
// 一行コメント2

/*
main.c
山田 太郎
2012年10月25日 作成
*/

/***********************/
/* main.c              */
/* 山田 太郎           */
/* 2012年10月25日 作成  */
/***********************/

// main.c
// 山田 太郎
// 2012年10月25日 作成

演算子

算術演算子

演算子 意味
+ 加算
減算
* 乗算
/ 除算
% 剰余(余り)

代入演算子

=  代入(Assignment)

複合代入演算子

演算子 意味
+= 加算代入
-= 減算代入
*= 乗算代入
/= 除算代入
%= 剰余代入

x = x + 5;

x += 5;

入力計算例

#include <stdio.h>

int main(void)
{
  int DH, ON, wa, sa, se, sh, am;
  
  printf("1つ目の数字入力:");
  scanf("%d", &DH);
  printf("2つ目の数字入力:");
  scanf("%d", &ON);
  
  wa = DH + ON;
  sa = DH - ON;
  se = DH * ON;
  sh = DH / ON;
  am = DH % ON;
  
  printf("%d+%d=%d\n",DH, ON, wa);
  printf("%d-%d=%d\n",DH, ON, sa);
  printf("%d*%d=%d\n",DH, ON, se);
  printf("%d/%d=%d...%d\n", DH, ON, sh, am);
  
  getch();
  return 0;
}

出力結果:

1つ目の数字入力:60
2つ目の数字入力:20
60+20=80
60-20=40
60*20=1200 
60/20=3...0

演習

西暦年→和暦変換するプログラムを作る

実行例:

西暦: 2016
和暦: 平成28年です

 

C programming (4) puts and scanf

puts関数:表示を行う関数

書式化の必要がなく、改行もしたいの場合

puts(“ABC”);
printf(“ABC\n”);

 

scanf関数:読込みを行う関数

scanf関数は、処理の途中でキーボードから文字の入力を求め、入力されたものを処理に利用するというものです。

実例:

#include <stdio.h>
 
int main(int argc, const char * argv[])
{
     
    // insert code here...
    int input;
     
    printf("数字を入力して下さい。\n");
     
    scanf("%d", &input);
     
    printf("入力された数字は、%dです。\n", input);
    
    getch(); 
    return 0;
}

 

実行例:

数字を入力して下さい。
3
入力された数字は、3です。

  1.  テキストが出力され
  2. キーボードからの入力待ちの状態。入力してエンターキーを押しますと処理が再開
  3. 書式付き出力

scanfの2番目の引数に変数を指定する際は、「&(変数名)」というように「&」をつけてポインタとして扱って下さい。そういうルールだと思っていただいて構いません。

実践レベルの問題を考えれば、実は scanf() 関数が使われることは滅多にありません。理由はエラーチェックが十分にできないからです。十分なエラーチェックを行う必要がある入力は(商用のプログラムは十分なエラーチェックが必要であり、結果として本格的なプログラムには scanf() をあまり使わない)変換作業を行わずに、他の標準入力関数を用いて文字列として入力された情報を受け取り、入力された文字列を調べて適切な値に変換するというような作業を行います。もちろんこれらの作業は複雑になります。

C programming (3) Veriables

変数と宣言 代入

int a, b;
a = 19;
b = -20;

変数初期化

int a = 1;
int b = 10;
int c = 4;

image

変数の演算

a = b + c;

image

(練習1)変数と宣言のサンプル

#include <stdio.h>
 
int main(int argc, const char * argv[])
{
     
    // insert code here...
    int a;
    int b;
    int result;
     
    a = 4;
    b = 2;
     
    result = 4 + 2;
    printf("4と2の和は %d\n", result);
     
    result = 4 - 2;
    printf("4と2の差は %d\n", result);
     
    result = 4 * 2;
    printf("4と2の積は %d\n", result);
     
    result = 4 / 2;
    printf("4と2の商は %d\n", result);
     
    result = 4 % 2;
    printf("4と2の余りは%d\n", result);
     
    return 0;
}

(練習2)printf関数:書式化して表示を行う関数

// test4.c 
#include <stdio.h>
int main(void ) 
{ 
 int a,b,c;
 /* これは加算のプログラム コメント
   名前:stdio.h
  C:\borland\bcc55\Include */
   a=3;   b=4;
   c=a+b;
   					
   printf("c= %d\n",c); /* Cの値を書式化して表示 */
   
   getchar( );
   return 0;
}

書式指定文字列:

「””」で囲まれた文字列のことを指します。

変換指定文字列:

  • %d 10進数で出力
  • %s 文字列として出力

拡張表記:

一般的にはエスケープシーケンスと呼ばれています。

エスケープシーケンス 意味
\n 改行
\t タブ
\0 文字列の終了を表す

C programming (2) Create C Programs

C言語の特徴(1)

関数型言語

コンピュータに実行してもらう命令はすべて関数の中に記述されている。関数がプログラムの実行単位。いくつかの関数を組み合わせ、コンピュータへ命令をする。最初にコンピュータが実行する関数はmain()に決まっている。

戻り値の型 関数名(引数リスト)
{
	命令文;
}

コンパクトな言語仕様

予約語(キーワード)は各種の指示を行う命令。全部で32個。このなかには「画面に文字を表示する」とか「ディスクにデータを書き込む」などという「入出力」の機能はない。すべて「関数」として実現されている。このような基本的な関数がないとコンピュータとやり取りできないので、必ず標準ライブラリ関数として予め用意されている。

#include <stdio.h>

Cプログラムの作成

C プログラムの作成手順

文字の並びとして作成したソースプログラムを、コンピュータが理解できる形式に変換する

compile

C プログラミングを書くための約束事

  1. 基本は半角英数字で書く
  2. 大文字と小文字は別の文字
  3. 文はセミコロンで区切る
  4. 余計なことは書かない
  5. 余計なことは「コメント」で

Cpadの使い方

BCPAD

(練習1)文字列の表示

  • C言語はmain()関数ではじまる
  • C言語の標準関数はヘッダファイルに記述されている
  • ヘッダファイルをインクルードするにはプリプロセッサ命令 #include をソースの先頭で使う
// test1.c 
// 全角と半角の入力に注意
// { {  (((   \\\\\\n
//これがさいしょのぷろぐらむ
#include <stdio.h>
int main( )
{
   printf("おはよう  \n");
   printf("こんにちわ\n");
   printf("こんばんわ\n");
   getchar( );
   return 0;
}

日本語環境では、バックスラッシュ(\)の表示は円マーク(¥)になる。

スクリーンショット 2016-04-15 10.43.20

演習環境

  • ソースコードの作成 CPad
  • ソースコードの名前Test1.c で保存. (ファイルは英数字は無難)
  • ソースコード必ず.cの拡張子つける.
    (つけないと.cppになり、思わぬエラーに見舞われる)
  • ソースコードの置場 C:\Users\Student\Documents\C

画面が一瞬で消えてしまい、実行結果がわかりません。

次の命令をプログラムの最後に入れると実行画面を一時停止できます。

int main(void)
{
  /* 他の処理 */

  fflush(stdin); 
  getchar(); 

  return 0;
}

 

C programming (1) Guidance

[災害時の避難経路の確認]

C言語ガイダンス (2016A-C言語 I授業

学習目的

  • プログラミングは楽しい
  • 資格取得
  • 就職

情報工学系科目のC言語の位置づけ

  • カリキュラム
  • C言語プログラミング能力認定試験(C言語検定)
  • 基本情報技術者試験

プログラミング言語の歴史

  • アセンブラ→C→C++→Java→C#

どのプログラミング言語が話題になっているか? 順位
TIOBE Programming Community Index

TIOBE Programming Community Index , PCI値は、複数の検索エンジンの検索結果から対象とするプログラミング 言語がどれだけ話題になっているかをインデックス化したの。TIOBE Softwareでは毎月中旬に分析結果を公開し ている。 http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

PCの使い方、先生PCからのFile受信

  • PC Windows7
  • フォルダー(Folder) ⇒ 箱
  • ファイル(File) ⇒ 文書
  • マイ ドキュメントの中にCソース、pdf、書類を置くこと
  • デスクトップにはショートカット
  • 文字入力
    • 半角⇔全角 を理解  ああ aaa
    • アルファベット入力⇒日本語変換に慣れるようにする
  • マウス「クリック」操作
  • ファイルの移動  ⇒「ドラッグ・アンド・ドロップ」操作
  • 文字列やファイルのコピー ⇒「コピー ・アンド・ペースト」操作
  • ctrl+C , ctrl+V , ctrl+A
  • 初めわからなくても調べる努力は大事 ⇒情報知性の向上

開発用ソフト

  • Borland C++ Compiler 5.5
  • BCPad

CPad 使い方

BCPAD

http://chenlab.net/2016/04/04/how-to-use-cpad/

シラバス

C programming

【授業の概要】

コンピュータプログラム開発言語の中で広く利用されているC言語をCプログラミング開発環境ソフト:
CPad for Borland C++ Compilerを使った一人一台のPCを使い実習により学びます. 毎回問題に取り組み理解を深めます。復習問題としてプログラミング課題を出題する。

【授業要旨】

回数 題目 授業内容 学習課題 予習時間(分) 復習時間(分)
1 ガイダンス 学習目的 情報工学系科目のC言語の位置づけ CPad開発環境 PCを持っている学生は開発環境をインストする 60
2 C言語の基本作法 Cプログラムの作成 文字列の表示
printf関数:書式化して表示を行う関数
テキスト(P2-9)を読む
授業内容を復習する
30 60
3 C言語の基本作法 変数と宣言 代入 初期化 テキスト(P10-11)を読む
授業内容を復習する
30 60
4 C言語の基本作法 scanf関数:読込みを行う関数
puts関数:表示を行う関数
テキスト(P12-16)を読む
授業内容を復習する
30 60
5 演算と型 演算子とオペランド テキスト(P17-24)を読む
授業内容を復習する
30 60
6 演算と型 型と演算 テキスト(P24-34)を読む
授業内容を復習する
30 60
7 1回~6回までのまとめ 演算に関する演習問題をグループで解く 授業内容を復習する 30 60
8 プログラムの流れの分岐 if文 ブロック複合文  if else 文 テキスト(P35-44)を読む
授業内容を復習する
30 60
9 プログラムの流れの分岐 if ~else~if~ else~ 文
if文の ネスト 条件演算子
テキスト(P45-53)を読む
授業内容を復習する
30 60
10 プログラムの流れの分岐 switch文  break 文 テキスト(P54-58)を読む
授業内容を復習する
30 60
11 プログラムの流れの繰返し do ~ while文 テキスト(P60-67)を読む
授業内容を復習する
30 60
12 プログラムの流れの繰返し while文  for文とwhile文 テキスト(P68-73)を読む
授業内容を復習する
30 60
13 プログラムの流れの繰返し for文 for文と配列 for文の多重ループ テキスト(P74-76)を読む
授業内容を復習する
30 60
14 プログラムの流れの繰返し 多重ループ テキスト(P78-85)を読む
授業内容を復習する
30 60
15 前期のまとめ まとめと総括。小テストの実施 授業内容を復習する 30 60

 

【テキスト】

新・明解C言語 入門編 (明解シリーズ)

参考: