C言語学習ノート(五)--順序プログラム設計


1文の概要
1.1一般式文:式の後にプラス記号を付けると、式とは異なり、値がありませんが、式には値があります.
1.2プロセス制御文:プロセス制御文は主にプログラムの実行方向を制御し、プログラムの各種構造方式を実現するために用いられ、それは特定のキーワードなどがあり、主に分岐と循環の2種類に分けられる.
分岐プロセス制御文:if、switch.
ループフロー制御文:for、while、do while.
1.3ジャンプ文:ジャンプ文の役割は主にプログラムを正常に実行する方向から他の部分にジャンプさせることであり、よく見られるジャンプ文は以下の通りである.
断続文:break、continue.
ステアリング文:goto.
Return文:return.
1.4複合文:いくつかの文から構成され、括弧の中で一つの全体を形成し、文型は以下の通りである.
{
文1;
文2;
......
文n;
}
C言語文法では,複合文を1つの文として扱うことが規定されている.
例コード:
#include "stdio.h"
main(){
  int a=11,b=21,c=31;
  printf("a=%d\tb=%d\tc=%d
",a,b,c); { int b=22; /* */ float c=3.3; printf("a=%d\tb=%d\tc=%f
",a,b,c); a=b; } /* */ printf("a=%d\tb=%d\tc=%d
",a,b,c); }

出力結果は次のとおりです.
a=11 b=21 c=31
a=11 b=22 c=3.300000
a=22 b=21 c=31
上のコードは、次のコードと比較して実行できます.
#include "stdio.h"
main(){
  int a=11,b=21,c=31;
  printf("a=%d\tb=%d\tc=%d
",a,b,c); { int a=1; int b=22; /* */ float c=3.3; printf("a=%d\tb=%d\tc=%f
",a,b,c); a=b; } /* */ printf("a=%d\tb=%d\tc=%d
",a,b,c); }

プログラムの実行結果:
a=11 b=21 c=31
a=1 b=22 c=3.300000
a=11 b=21 c=31
複合文で宣言された変数は、複合文でのみ機能することがわかります.
1.5空の文:空の文は一般的に1つのセミコロンのみを指し、一般的にプログラム設計の初期に使用され、作成する関数またはコードを表す.
1.6各種文の全体紹介:
#include "stdio.h"
main(){
  int a=10,b=20,c;                 /*      */
  if(b>a)                         /*      */
  {;                              /*       */
   c=a+b; ;                       /*        */
   printf("%d",c);                  /*        */
    }
  else
  ;                               /*     */
}

2ライブラリ関数の呼び出しと入出力の関係
2.1標準のライブラリ関数は、関数ライブラリに格納されているため、使用時には、関数ライブラリがどのライブラリに属しているかを示すコンピュータに通知する必要があります.このプロセスは、関数の宣言です.たとえば、次のようになります.
#include“math.h”/*標準数学関数の宣言*/
Main(){
...
y=sin(x);/*ライブラリ関数の呼び出し*/
...
}
IncludeはC言語の中の特定の字で、含む意味で、含むファイルは一般的に.h,ヘッダファイルと呼ぶ.
2.2 C言語ではprintfやscanfのような入出力の標準ライブラリ関数がいくつか提供されているが、使用時には関数ライブラリのヘッダファイルstdioを使用する必要がある.hはプログラムに含まれる.
3フォーマット出力
3.1 printf関数:端末にデータを出力する役割を果たします.
関数フォーマット:printf(「フォーマット制御文」、出力項目1、出力項目2、......);
例えばprintf("%f",j);出力浮動小数点タイプの変数j,%fは制御子である.
一般的なフォーマットコントロール:
%d--10進数整数、%o---8進数符号なし整数、%f出力実数、%s--文字列、%c--出力単一文字など.
4文字出力
4.1文字出力は、stdioでputchar関数を用いることができる.hで定義されています.
例コード:
#include "stdio.h"
main(){
  char a,b,c;
  a='C';
  b='A';
  c='T';
  putchar(a);
  putchar(b);
  putchar(c);
  putchar('
'); putchar('\101'); putchar('B'); putchar('c'); }

注意:この関数では、2つ以上の文字データを出力できません.
5フォーマット入力
5.1 scanf関数:キーボードからデータを取得し、フォーマットして変数に値を割り当てる役割を果たします.
呼び出し形式:scanf(フォーマット制御文、入力項目);
6文字入力
6.1 getch()とgetche()関数:機能はいずれも1文字を読み込む.
両者の違いは、getch()関数が読み込んだ文字を画面に戻さず、getche()が表示されることです.
例コード:
#include<stdio.h>
main()
{
  char c,ch;
  c=getch();                 /*                   c*/
  ch=getche();               /*                    ch*/
  putchar(c);                /*     */
  putchar(ch);
}

6.2 getchar()関数:端末から文字を入力します.getchar関数は、スペース、タブ、改行を有効な文字として入力します.
例コード:
#include "stdio.h"
main()
{ char c1,c2;
  c1=getchar();
  c2=getchar();
  putchar(c1);
  putchar(c2);
}

7シーケンスプログラミング
例1:一元二次方程式のルートを計算する.
コード:
#include "math.h"
main()
{
  double a,b,c;                   /*    */
  double x1,x2,p;
  printf("pleaseinputa,b,c:");
  scanf("%lf%lf%lf",&a,&b,&c);      /*    */
  printf("
"); p=b*b-4*a*c; /*p */ x1=(-b+sqrt(p))/(2*a); /* */ x2=(-b-sqrt(p))/(2*a); printf("x1=%f,x2=%f
",x1,x2); /* */ }

例2:2桁の整数が逆順序になっている.
コード:
#include <stdio.h>
main()
{
  int m,n;
  printf("inputm(10-99):");
  scanf("%d",&m);
  printf("
"); n=m%10; m=n*10+m/10; printf("m=%d
",m); }