Computer-programming-quick-guide

提供:Dev Guides
移動先:案内検索

コンピュータープログラミング-概要

コンピュータプログラムの紹介

コンピュータプログラミングに入る前に、まずコンピュータプログラムとその機能を理解しましょう。

_コンピュータープログラムは、コンピュータープログラミング言語を使用して記述された一連の命令で、コンピューターによって指定されたタスクを実行します。

上記の定義で使用した2つの重要な用語は-

  • 一連の指示
  • コンピュータプログラミング言語

これらの用語を理解するには、近くのKFCに行く方法について誰かから尋ねられたときの状況を考慮してください。 KFCに行く方法を彼に伝えるために正確に何をしますか?

あなたはKFCに行く方法を伝えるために人間の言語を使用します。次のようなものです-

'_最初に真っ直ぐに進み、0.5キロ進んだ後、赤信号から左に曲がり、1キロほど走ると右側にKFCがあります。_

ここでは、英語を使用して、KFCに到達するためのいくつかの手順を説明しました。 それらが次の順序で続いている場合、あなたはKFCに到達します-

1.  Go straight
2.  Drive half kilometer
3.  Take left
4.  Drive around one kilometer
5.  Search for KFC at your right side

次に、コンピュータープログラムを使用して状況をマッピングしてみます。 上記の一連の指示は、実際には*英語*で記述された*ヒューマンプログラム*であり、所定の開始点からKFCに到達する方法を指示しています。 この同じシーケンスは、方向を求める人がこれらの言語のいずれかを知っていれば、スペイン語、ヒンディー語、アラビア語、または他の人間の言語で与えられた可能性があります。

さて、戻ってコンピュータープログラムを理解してみましょう。コンピュータープログラムは、コンピューターによって指定されたタスクを実行するためにコンピューター言語で書かれた一連の命令です。 以下は Python プログラミング言語で書かれたシンプルなプログラムです-

print "Hello, World!"

上記のコンピュータープログラムは、コンピューターに「Hello、World!」を印刷するように指示します。コンピューター画面上。

  • コンピュータープログラムは「コンピューターソフトウェア」とも呼ばれ、2行から数百万行の命令にまで及ぶことがあります。
  • コンピュータープログラムの命令はプログラムソースコードとも呼ばれ、*コンピュータープログラミング*は*プログラムコーディング*とも呼ばれます。
  • コンピュータープログラムのないコンピューターは単なるダンプボックスです。コンピューターをアクティブにするプログラムです。

相互に通信するために非常に多くの言語を開発したので、コンピューター科学者はコンピューターに指示を提供する(コンピュータープログラムを作成する)コンピュータープログラミング言語をいくつか開発しました。 後続の章では、いくつかのコンピュータープログラミング言語について説明します。

コンピュータプログラミングの概要

  • コンピュータプログラム*が何であるかを理解している場合、私たちは言う:コンピュータプログラムを書く行為はコンピュータプログラミングと呼ばれる。

前述したように、コンピュータープログラムを記述するために使用できるプログラミング言語は数百ありますが、そのうちのいくつかを次に示します-

  • Java
  • C
  • C++
  • Python
  • PHP
  • Perl
  • Ruby

コンピュータープログラムの使用

今日、コンピュータープログラムは、家庭、農業、医療、娯楽、防衛、通信など、ほぼすべての分野で使用されています。 以下にリストされているのは、コンピュータープログラムのいくつかのアプリケーションです-

  • MS Word、MS Excel、Adobe Photoshop、Internet Explorer、Chromeなどは、コンピュータープログラムの例です。
  • コンピュータープログラムは、映画制作におけるグラフィックスや特殊効果の開発に使用されています。
  • コンピュータープログラムは、超音波、X線、およびその他の健康診断を実行するために使用されています。
  • SMS、チャット、および音声通信のために、携帯電話でコンピュータープログラムが使用されています。

コンピュータープログラマー

コンピュータープログラムを作成できる人、つまりコンピュータープログラミングができる人は、コンピュータープログラマーと呼ばれます。

コンピュータプログラミング言語の専門知識に基づいて、次のようにコンピュータプログラマを命名することができます-

  • Cプログラマー
  • C ++プログラマー
  • Javaプログラマー
  • Pythonプログラマー
  • PHPプログラマー
  • Perlプログラマー
  • Rubyプログラマー

アルゴリズム

プログラミングの観点から見ると、*アルゴリズム*は問題を解決するための段階的な手順です。 アルゴリズムは、明確に定義された命令の有限セットとして表現される効果的な方法です。

したがって、コンピュータープログラマーは、実際のコードを記述する前に問題を解決するために必要なすべての手順をリストします。 以下は、与えられた数のリストから最大数を見つけるためのアルゴリズムの簡単な例です-

1. Get a list of numbers L1, L2, L3....LN
2. Assume L1 is the largest, Largest = L1
3. Take next number Li from the list and do the following
4. If Largest is less than Li
5. Largest = Li
6. If Li is last number from the list then
7. Print value stored in Largest and come out
8. Else repeat same process starting from step 3

上記のアルゴリズムは、初心者が概念を理解できるように、大まかな方法​​で記述されています。 高度なレベルのコンピュータープログラミングに進むと、コンピューターアルゴリズムを記述するより標準化された方法に出くわします。

コンピュータープログラミング-基本

よく知られている Human Interface Language である英語をよく知っていることを前提としています。 英語には事前定義された文法があり、正しい方法で英語のステートメントを書くために従う必要があります。 同様に、ほとんどのヒューマンインターフェイス言語(ヒンディー語、英語、スペイン語、フランス語など)は、動詞、名詞、形容詞、副詞、命題、接続詞などのいくつかの要素で構成されています。

ヒューマンインターフェイス言語と同様に、コンピュータープログラミング言語もいくつかの要素で構成されています。 これらの要素の基本を紹介し、さまざまなプログラミング言語で快適に使用できるようにします。 これらの基本的な要素が含まれます-

  • プログラミング環境
  • 基本的な構文
  • データ型
  • 変数
  • キーワード
  • 基本的な演算子
  • 意思決定
  • ループ
  • 番号
  • キャラクター
  • 配列
  • 文字列
  • 関数
  • ファイル入出力

後続の章では、これらの要素をすべて、さまざまなプログラミング言語を使用した例とともに説明します。 まず、これらすべての用語の一般的な意味を理解しようとし、次に、これらの用語がさまざまなプログラミング言語でどのように使用されるかを確認します。

このチュートリアルは、次の最も一般的なプログラミング言語についてのアイデアを提供するように設計されています-

  • Cプログラミング
  • Javaプログラミング
  • Pythonプログラミング

チュートリアルの大部分は、プログラミング言語としてCを使用することで説明され、その後、JavaとPythonで同様の概念がどのように機能するかを示しました。 したがって、このチュートリアルを完了すると、これらの一般的なプログラミング言語に精通することができます。

コンピュータープログラミング-環境

環境設定はプログラミング言語の要素ではありませんが、プログラムを書くために設定する前に従うべき最初のステップです。

環境設定と言うとき、それは単にプログラミングを行うことができるベースを意味します。 したがって、必要なソフトウェアのセットアップ、つまりコンピュータープログラムの作成、コンパイル、実行に使用するPCへのインストールが必要です。 たとえば、インターネットを閲覧する必要がある場合は、マシンで次のセットアップが必要です-

  • インターネットに接続するための有効なインターネット接続
  • Internet Explorer、Chrome、SafariなどのWebブラウザー

PCユーザーの場合は、finddevguides.comを閲覧しているときにInternet Explorerから取得した次のスクリーンショットを認識します。

Internet Explorer

同様に、プログラミング言語を使用したプログラミングを開始するには、次のセットアップが必要になります。

  • コンピュータープログラムを作成するテキストエディター。
  • プログラムをバイナリ形式にコンパイルするコンパイラ。 *プログラムを直接実行するインタープリター。

コンピュータに十分な露出がない場合、これらのソフトウェアをセットアップすることはできません。 ですから、あなたの周りの技術者の助けを借りて、あなたのマシンにあなたが始められるプログラミング環境をセットアップすることを勧めます。 しかし、あなたにとって、これらのアイテムが何であるかを理解することは重要です。

テキストエディタ

テキストエディターは、コンピュータープログラムを作成するために使用されるソフトウェアです。 Windowsマシンには、プログラムの入力に使用できるメモ帳が必要です。 次の手順に従って起動できます-

Start Icon → All Programs → Accessories → Notepad → Mouse Click on Notepad

次のウィンドウでメモ帳を起動します-

メモ帳

このソフトウェアを使用してコンピュータープログラムを入力し、任意の場所のファイルに保存できます。* Notepad ++ *などの他の優れたエディターをダウンロードしてインストールできます。これは無料で入手できます。

Macユーザーの場合は、 TextEdit を使用するか、 BBEdit のような他の商用エディターをインストールして開始できます。

コンパイラ?

お気に入りのプログラミング言語を使用してコンピュータープログラムを作成し、プログラムファイルと呼ばれるテキストファイルに保存します。

では、プログラミング言語を使用して作成したプログラムをコンピューターがどのように理解するかについて、もう少し詳しく見てみましょう。 実際には、コンピューターはテキスト形式で直接与えられたプログラムを理解できないため、このプログラムをコンピューターが理解できるバイナリ形式に変換する必要があります。

テキストプログラムからバイナリファイルへの変換は、コンパイラと呼ばれる別のソフトウェアによって行われ、テキスト形式のプログラムからバイナリ形式ファイルへのこの変換プロセスは、プログラムのコンパイルと呼ばれます。 最後に、バイナリファイルを実行して、プログラムされたタスクを実行できます。

コンパイラの詳細とコンパイルのさまざまな段階については説明しません。

次のフロー図は、プロセスの図を示しています-

コンパイラ

したがって、C、C ++、Java、Pascalなどのコンパイルが必要な言語でプログラムを作成する場合は、プログラミングを開始する前にコンパイラをインストールする必要があります。

通訳

コンパイラとコンパイルプロセスについて説明しました。 実行前にバイナリ形式にコンパイルする必要があるプログラミング言語でプログラムを作成する場合は、コンパイラが必要です。

Python、PHP、Perlなどの他のプログラミング言語があり、バイナリ形式にコンパイルする必要はありません。むしろ、インタープリターを使用して、このようなプログラムを1行ずつ読み取り、変換せずに直接実行できます。

インタープリター

したがって、PHP、Python、Perl、Rubyなどでプログラムを作成する場合は、プログラミングを開始する前にインタープリターをインストールする必要があります。

オンライン編集

マシン上でエディター、コンパイラー、またはインタープリターをセットアップできない場合、_finddevguides.com_は、ほぼすべてのプログラムを1回のクリックで簡単にコンパイルおよび実行する機能を提供します。

心配する必要はありません。シンプルで簡単なステップでコンピュータープログラマーになるためのスリリングな体験をしてみましょう。

コンピュータプログラミング-基本的な構文

ちょっとしたコーディングから始めましょう。これは本当にあなたをコンピュータープログラマーにします。 画面に* Hello、World!*と書く単一行のコンピュータープログラムを作成します。 さまざまなプログラミング言語を使用してどのように作成できるか見てみましょう。

CのHello Worldプログラム

www.compileonline.comにあるオンラインコンパイラオプションを使用して、次の例を試してください。

このチュートリアルのほとんどの例では、オンラインコンパイラにアクセスできる右上隅のWebサイトコードセクションに Try it オプションがあります。

printf()内のコンテンツを変更してみてください。つまり、* Hello World!*の代わりに何かを入力して、その結果を確認してください。 2つの二重引用符内に保持しているものは何でも印刷します。

#include <stdio.h>

int main() {
  /*printf() function to write Hello, World!*/
   printf( "Hello, World!" );
}

次の結果を生成します-

Hello, World!

この小さなHello Worldプログラムは、Cプログラミングに関連するさまざまな基本概念を理解するのに役立ちます。

プログラムエントリーポイント

今のところ、*#include <stdio.h> *ステートメントについては忘れてください。ただし、このステートメントをCプログラムの先頭に配置する必要があることに注意してください。

すべてのCプログラムは、main関数と呼ばれるmain()で始まり、その後に左中括弧が続きます。 プログラム命令の残りの部分はその間に記述され、最後に右中括弧でプログラムが終了します。

これら2つの中括弧内のコーディング部分は、プログラム本体と呼ばれます。 左中括弧は、main()\ {と同じ行に置くことも、上記のプログラムで言及したように次の行に置くこともできます。

関数

関数はプログラムの小さな単位であり、特定のタスクを実行するために使用されます。 たとえば、上記のプログラムは、* main()および printf()*の2つの関数を使用します。 ここで、関数main()はプログラム実行のエントリポイントを提供し、他の関数printf()はコンピューター画面に情報を印刷するために使用されています。

別の章で説明する独自の関数を作成できますが、Cプログラミング自体には、main()、printf()などのさまざまな組み込み関数が用意されており、要件に基づいてプログラムで使用できます。

一部のプログラミング言語では、関数の代わりに*サブルーチン*という単語を使用しますが、機能はほぼ同じです。

コメント

Cプログラムでは、 / …​.. / 内にステートメントを含めることができます。 このようなステートメントはコメントと呼ばれ、これらのコメントはプログラムを使いやすく理解しやすくするために使用されます。 コメントの良いところは、それらがコンパイラとインタプリタによって完全に無視されることです。 したがって、コメントを記述したい言語なら何でも使用できます。

空白

プログラミング言語を使用してプログラムを作成する場合、さまざまな印刷可能文字を使用してプログラミングステートメントを準備します。 これらの印刷可能文字は、* a、b、c、…​…​ z、A、B、C、…​.. Z、1、2、3、…​…​です。 0、!、@、#、$、%、^、&、、(、)、-、_、+、=、\、|、\ {、}、[、]、:、;、<、> 、?、/、\、〜。 `. "、 '。 キーボードから印刷可能な文字が欠落していないことを願っています。

これらの文字とは別に、非常に頻繁に使用する文字がありますが、プログラムでは見えません。これらの文字はスペース、タブ(\ t)、改行(\ n)です。 これらの文字は*ホワイトスペース*と呼ばれます。

これらの3つの重要な空白文字はすべてのプログラミング言語で共通であり、テキストドキュメントでは見えないままです-

Whitespace Explanation Representation
New Line To create a new line \n
Tab To create a tab. \t
Space To create a space. empty space

コメントが含まれている可能性のある空白のみを含む行は、空白行と呼ばれ、Cコンパイラでは完全に無視されます。 空白は、空白、タブ、改行文字、およびコメントを記述するためにCで使用される用語です。 したがって、以下に示すように printf( "Hello、World!"); と書くことができます。 ここでは、「Hello、World!」の周りに作成されたすべてのスペース無駄であり、コンパイラはコンパイル時にそれらを無視します。

#include <stdio.h>

int main() {

  /*printf() function to write Hello, World!*/

   printf(    "Hello, World!"      );

}

次の結果を生成します-

Hello, World!

これらの空白文字をすべて表示すると、上記のプログラムは次のようになり、コンパイルできなくなります-

#include <stdio.h>\n
\n
int main()\n
{
   \n
   \t/*printf() function to write Hello, World!*/
   \n
   \tprintf(\t"Hello, World!"\t);\n
   \n
}\n

セミコロン

たとえば、「He​​llo、World!」と書きたい場合は、Cプログラムの個々のステートメントをセミコロン(*; *)で終了する必要があります。 2回、それは次のように書かれます-

#include <stdio.h>

int main() {
  /*printf() function to write Hello, World!*/
   printf( "Hello, World!\n" );
   printf( "Hello, World!" );
}

このプログラムは、次の結果を生成します-

Hello, World!
Hello, World!

ここでは、最初のprintf()関数で改行文字 \ n を使用して、新しい行を作成しています。 この改行文字を使用しないとどうなるか見てみましょう-

#include <stdio.h>

int main() {
  /*printf() function to write Hello, World!*/
   printf( "Hello, World!" );
   printf( "Hello, World!" );
}

このプログラムは、次の結果を生成します-

Hello, World! Hello, World!

次の数章で識別子とキーワードを学びます。

プログラムの説明

上記のCプログラムがどのように機能するかを理解しましょう。 まず、上記のプログラムはCコンパイラを使用してバイナリ形式に変換されます。 このコードをtest.cファイルに入れて、次のようにコンパイルしましょう-

$gcc test.c -o demo

文法的なエラー(コンピューター用語の構文エラー)がある場合は、それを修正してからバイナリ形式に変換します。 すべてがうまくいくと、 demo というバイナリファイルが生成されます。 最後に、生成されたバイナリデモを次のように実行します-

$./demo

次の結果を生成します-

Hello, World!

ここで、バイナリ a.out ファイルを実行すると、コンピューターはmain()から始まるプログラム内に入り、printf()ステートメントに遭遇します。/…​./内の行はコメントであり、コンパイル時にフィルタリングされることに注意してください。 したがって、printf()関数は、コンピューターに特定の行をコンピューター画面に印刷するように指示します。 最後に、main()関数の終わりを示す右中括弧に遭遇し、プログラムを終了します。

構文エラー

プログラミング言語で定義された規則に従わない場合、コンパイル時に構文エラーが発生し、プログラムはコンパイルされません。 構文の観点からは、単一のドット、コンマ、または単一のセミコロンでさえ重要であり、そのような小さな構文にも注意する必要があります。 次の例では、セミコロンをスキップしました。プログラムをコンパイルしてみましょう-

#include <stdio.h>

main() {
   printf("Hello, World!")
}

このプログラムは、次の結果を生成します-

main.c: In function 'main':
main.c:7:1: error: expected ';' before '}' token
 }
 ^

要するに、プログラムのプログラミング言語で定義された適切な構文に従わないと、構文エラーが発生します。 別のコンパイルを試みる前に、それらを修正してから続行する必要があります。

JavaのHello Worldプログラム

以下は、Javaで作成された同等のプログラムです。 このプログラムでも同じ結果が得られます* Hello、World!*。

public class HelloWorld {
   public static void main(String []args) {
     /*println() function to write Hello, World!*/
      System.out.println("Hello, World!");
   }
}

次の結果を生成します-

Hello, World!

PythonのHello Worldプログラム

以下は、Pythonで作成された同等のプログラムです。 このプログラムでも同じ結果が得られます* Hello、World!*。

#  print function to write Hello, World! */
print "Hello, World!"

次の結果を生成します-

Hello, World!

CおよびJavaの例では、最初にプログラムをコンパイルしてから生成されたバイナリを実行しますが、Pythonプログラムでは直接実行します。 前の章で説明したように、Pythonはインタープリター言語であり、コンパイルと呼ばれる中間ステップは必要ありません。

Pythonはステートメントを終了するためにセミコロン(;)を必要としません。むしろ、改行は常にステートメントの終了を意味します。

コンピュータープログラミング-データ型

  • データ型*と呼ばれるほとんどすべてのプログラミング言語で利用可能な非常にシンプルだが非常に重要な概念について議論しましょう。 名前が示すように、データ型は、コンピュータープログラムを使用して処理できるデータの型を表します。 数値、英数字、10進数などを指定できます。

コンピュータープログラミングをしばらくの間置いておき、2つの整数10と20を追加する簡単な例を見てみましょう。

10 + 20

次のように書かれている2つの10進数10.50と20.50を追加したい別の問題を考えてみましょう-

10.50 + 20.50

2つの例は簡単です。 次に、ノートブックに学生情報を記録する別の例を見てみましょう。 ここでは、次の情報を記録したいと思います-

Name:
Class:
Section:
Age:
Sex:

さて、与えられた要件に従って1つの学生レコードを入れてみましょう-

Name: Zara Ali
Class: 6th
Section: J
Age: 13
Sex: F

最初の例では整数を扱い、2番目の例では2つの10進数を追加しましたが、3番目の例では異なるデータの混合を扱います。 次のように入れてみましょう-

  • 学生名「Zara Ali」は、文字列とも呼ばれる一連の文字です。
  • 学生クラス「6th」は、整数と2文字の文字列の組み合わせで表されています。 このような組み合わせは、英数字と呼ばれます。
  • 学生セクションは、「J」という1文字で表されています。
  • 学生の年齢は、13という整数で表されています。
  • 学生の性別は、「F」という単一の文字で表されています。

このようにして、日常生活の中で、文字列、文字、整数(整数)、10進数(浮動小数点数)などのさまざまなタイプのデータを扱うことに気付きました。

同様に、さまざまな種類のデータを処理するコンピュータープログラムを作成する場合、その種類を明確に指定する必要があります。そうしないと、コンピューターはその特定のデータに対してさまざまな操作を実行する方法を理解しません。 異なるプログラミング言語では、異なるキーワードを使用して異なるデータ型を指定します。 たとえば、CおよびJavaプログラミング言語は int を使用して整数データを指定しますが、 char は文字データ型を指定します。

以降の章では、さまざまな状況でさまざまなデータ型を使用する方法について説明します。 ここでは、C、Java、Pythonで使用できる重要なデータ型と、それらのデータ型を指定するために使用するキーワードを確認してみましょう。

CおよびJavaデータ型

Javaは追加のデータ型をサポートしていますが、CとJavaはほぼ同じデータ型のセットをサポートしています。 今のところ、我々は両方のプログラミング言語でサポートされているいくつかの一般的なデータ型を取っています-

Type Keyword Value range which can be represented by this data type
Character char -128 to 127 or 0 to 255
Number int -32,768 to 32,767 or -2,147,483,648 to 2,147,483,647
Small Number short -32,768 to 32,767
Long Number long -2,147,483,648 to 2,147,483,647
Decimal Number float 1.2E-38 to 3.4E+38 till 6 decimal places

これらのデータ型はプリミティブデータ型と呼ばれ、これらのデータ型を使用して、ユーザー定義データ型と呼ばれるより複雑なデータ型を構築できます。たとえば、文字列は一連の文字になります。

Pythonデータ型

Pythonには5つの標準データ型がありますが、このプログラミング言語は特定のデータ型を指定するためにキーワードを使用せず、Pythonは特定のデータ型を自動的に理解するのに十分インテリジェントです。

  • 番号
  • ひも
  • List
  • タプル
  • 辞書

ここで、Numberは10進数を含むすべてのタイプの数値を指定し、stringは1文字以上の長さの文字のシーケンスを表します。 ここでは、これら2つのデータ型を使用して、Pythonの高度なデータ型であるリスト、タプル、およびディクショナリをスキップしましょう。

コンピュータープログラミング-変数

変数は、コンピュータープログラムに値を保存するために使用されるコンピューターのメモリの場所に付ける名前です。

たとえば、プログラムに2つの値10と20を保存し、後の段階でこれらの2つの値を使用するとします。 あなたがそれをどうするか見てみましょう。 ここに次の3つの簡単なステップがあります-

  • 適切な名前で変数を作成します。
  • これらの2つの変数に値を保存します。
  • 変数から保存された値を取得して使用します。

変数を作成する

変数の作成は、Cプログラミングでは*変数の宣言*とも呼ばれます。 プログラミング言語が異なれば、プログラム内で変数を作成する方法も異なります。 たとえば、Cプログラミングには、変数を作成する次の簡単な方法があります-

#include <stdio.h>

int main() {
   int a;
   int b;
}

上記のプログラムは、名前が a および b の2つのメモリ位置を予約するために2つの変数を作成します。 int キーワードを使用してこれらの変数を作成し、変数 data type を指定しました。つまり、これら2つの変数に整数値を格納することを意味します。 同様に、 longfloatchar またはその他のデータ型を格納する変数を作成できます。 たとえば-

/*variable to store long value*/
long a;

/*variable to store float value*/
float b;

あなたは次のようにカンマで区切られた単一の行にそれらを置くことにより、同様のタイプの変数を作成することができます

#include <stdio.h>

int main() {
   int a, b;
}

以下にリストするのは、心に留めておく必要がある変数に関する重要な点です-

  • 変数名は、単一のタイプの値を保持できます。 たとえば、変数 aint 型として定義されている場合、整数のみを格納できます。
  • Cプログラミング言語では、変数を作成する必要があります。つまり、プログラムで使用する前に宣言する必要があります。 Pythonのようなプログラミング言語では変数名を作成せずに使用できますが、変数名を作成せずにプログラムで使用することはできません。
  • プログラム内で変数名を使用できるのは1回だけです。 たとえば、整数値を格納するために変数 a が定義されている場合、他のタイプの値を格納するために a を再度定義することはできません。
  • Python、PHP、Perlなどのプログラミング言語があり、変数の作成時にデータ型を指定したくない場合があります。 そのため、データ型を指定せずに整数、浮動小数点、または長整数を格納できます。
  • agesexsalaryyear1990 などの変数には任意の名前を付けることができますが、ほとんどのプログラミング言語では変数名に使用できる文字は限られています。 ここでは、変数名に a …​. z、A …​. Z、0 …​. 9 のみを使用し、数字の代わりにアルファベットのみを使用して名前を開始することをお勧めします。
  • ほとんどのプログラミング言語では、変数名を数字で始めることはできないため、 1990year は有効な変数名ではありませんが、 year1990 または ye1990ar は有効な変数名です。

すべてのプログラミング言語は、変数に関連するより多くのルールを提供し、そのプログラミング言語の詳細を調べるときにそれらを学習します。

変数に値を保存する

前のセクションで変数を作成する方法を見てきました。 今、それらの変数にいくつかの値を保存しましょう-

#include <stdio.h>

int main() {
   int a;
   int b;

   a = 10;
   b = 20;
}

上記のプログラムには、変数 a に10を格納し、変数 b に20を格納する2つの追加ステートメントがあります。 ほとんどすべてのプログラミング言語には、変数に値を保存する同様の方法があり、変数名を等号=の左側に保存し、変数に保存する値はすべて右側に保存します。

これで2つのステップが完了しました。最初に2つの変数を作成し、次にそれらの変数に必要な値を保存しました。 現在、変数 a の値は10で、変数 b の値は20です。 つまり、上記のプログラムが実行されると、 a という名前のメモリロケーションは10を保持し、メモリロケーション b は20を保持します。

変数に保存された値にアクセスする

変数に格納された値を使用しない場合、変数を作成して変数に値を格納しても意味がありません。 上記のプログラムには2つの変数 ab があり、それぞれ値10と20が格納されていることがわかります。 それでは、これら2つの変数に格納されている値を出力してみましょう。 以下は、変数に格納されている値を出力するCプログラムです-

#include <stdio.h>

int main() {
   int a;
   int b;

   a = 10;
   b = 20;

   printf( "Value of a = %d\n", a );
   printf( "Value of b = %d\n", b );
}

上記のプログラムが実行されると、次の結果が生成されます-

Value of a = 10
Value of b = 20

「Hello、World!」の出力に使用した前の章で* printf()*関数を見たことがあるはずです。 今回は、変数の値を出力するために使用しています。 *%d *を使用しています。これは、printf()ステートメントで指定された変数の値に置き換えられます。 次のように、単一のprintf()ステートメントを使用して両方の値を印刷できます-

#include <stdio.h>

int main() {
   int a;
   int b;

   a = 10;
   b = 20;

   printf( "Value of a = %d and value of b = %d\n", a, b );
}

上記のプログラムが実行されると、次の結果が生成されます-

Value of a = 10 and value of b = 20

Cプログラミングで float 変数を使用する場合は、%d *の代わりに%f を使用する必要があります。文字値を出力する場合は、%c *を使用する必要があります。 同様に、異なる%および文字を使用して、異なるデータ型を印刷できます。

Javaの変数

以下は、Javaプログラミング言語で書かれた同等のプログラムです。 このプログラムは、2つの変数 ab を作成し、Cプログラミングに非常に似ています。これらの変数に10と20を割り当て、最終的に2つの方法で2つの変数の値を出力します-

public class DemoJava {
   public static void main(String []args) {
      int a;
      int b;

      a = 10;
      b = 20;

      System.out.println("Value of a = " + a);
      System.out.println("Value of b = " + b);
      System.out.println("Value of a = " + a + " and value of b = " + b);
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

Value of a = 10
Value of b = 20
Value of a = 10 and value of b = 20

Pythonの変数

以下は、Pythonで作成された同等のプログラムです。 このプログラムは、2つの変数 ab を作成し、同時にそれらの変数に10と20を割り当てます。

Pythonは、変数の作成時にデータ型を指定することを望まないため、事前に変数を作成する必要はありません。

a = 10
b = 20

print "Value of a = ", a
print "Value of b = ", b
print "Value of a = ", a, " and value of b = ", b

上記のプログラムが実行されると、次の結果が生成されます-

Value of a =  10
Value of b =  20
Value of a =  10  and value of b =  20

CおよびJavaプログラミングで次の構文を使用して、変数を宣言し、同時に値を割り当てることができます-

#include <stdio.h>

int main() {
   int a = 10;
   int b = 20;

   printf( "Value of a = %d and value of b = %d\n", a, b );
}

上記のプログラムが実行されると、次の結果が生成されます-

Value of a = 10 and value of b = 20

コンピュータープログラミング-キーワード

ここまで、変数とそのデータ型と呼ばれる2つの重要な概念を説明してきました。 intlong 、および float を使用してさまざまなデータ型を指定する方法について説明しました。 また、変数に名前を付けて異なる値を保存する方法も学びました。

予約されたキーワードは基本的なプログラミング構文の一部であるため、この章は別に必要ではありませんが、わかりやすくするために、データ型と変数の直後に説明するために別にしました。

int、long、およびfloatのように、Cプログラミング言語でサポートされている他の多くのキーワードがあり、これらは異なる目的に使用します。 プログラミング言語ごとに予約キーワードのセットが異なりますが、すべてのプログラミング言語には、変数に名前を付けるために予約キーワードを使用できないという1つの重要で共通のルールがあります。つまり、 intfloat のように変数に名前を付けることはできませんむしろ、これらのキーワードは変数データ型を指定するためにのみ使用できます。

たとえば、変数名の目的で予約済みキーワードを使用しようとすると、構文エラーが発生します。

#include <stdio.h>

int main() {
   int float;
   float = 10;

   printf( "Value of float = %d\n", float);
}

上記のプログラムをコンパイルすると、次のエラーが生成されます-

main.c: In function 'main':
main.c:5:8: error: two or more data types in declaration specifiers
   int float;
......

整数変数に適切な名前を付けてみましょう。その後、上記のプログラムは正常にコンパイルおよび実行されるはずです-

#include <stdio.h>

int main() {
   int count;
   count = 10;

   printf( "Value of count = %d\n", count);
}

Cプログラミングの予約キーワード

Cプログラミング言語でサポートされているほとんどすべてのキーワードを含む表を次に示します-

auto else long switch
break enum register typedef
case extern return union
char float short unsigned
const for signed void
continue goto sizeof volatile
default if static while
do int struct _Packed
double

Javaプログラミングの予約キーワード

これは、Javaプログラミング言語でサポートされているほとんどすべてのキーワードを含む表です-

abstract assert boolean break
byte case catch char
class const continue default
do double else enum
extends final finally float
for goto if implements
import instanceof int interface
long native new package
private protected public return
short static strictfp super
switch synchronized this throw
throws transient try void
volatile while

Pythonプログラミングの予約キーワード

Pythonプログラミング言語でサポートされているほぼすべてのキーワードを含む表を次に示します-

and exec not
assert finally or
break for pass
class from print
continue global raise
def if return
del import try
elif in while
else is with
except lambda yield

これらのすべてのキーワードを記憶することはできませんが、参考のために、また*予約キーワード*の概念を説明するためにそれらをリストアップしています。 したがって、変数に名前を付けるときは注意してください。そのプログラミング言語には予約語を使用しないでください。

コンピュータープログラミング-オペレーター

プログラミング言語の演算子は、特定の数学、関係、または論理演算を実行して最終結果を生成するようにコンパイラーまたはインタープリターに指示する記号です。 この章では、*演算子*の概念について説明し、C、Java、Pythonで使用可能な重要な算術演算子と関係演算子について説明します。

算術演算子

コンピュータプログラムは、数学計算に広く使用されています。 2つの数値(2 + 3)を加算するなどの簡単な計算ができるコンピュータープログラムを作成できます。また、P(x)= x ^ 4 ^ + 7x ^ 3 ^などの複雑な方程式を解くプログラムを作成することもできます。 5x + 9。 あなたが貧しい学生であっても、最初の式2と3はオペランドであり、+は演算子であることに注意する必要があります。 同様の概念がコンピュータープログラミングにも存在します。

次の2つの例を見てみましょう-

2 + 3

P(x) = x4 + 7x3 - 5x + 9.

これら2つのステートメントはプログラミング言語では算術式と呼ばれ、これらの式で使用される plusminus は算術演算子と呼ばれ、2、3、xなどのこれらの式で使用される値はオペランドと呼ばれます。 最も単純な形式では、そのような式は数値結果を生成します。

同様に、プログラミング言語はさまざまな算術演算子を提供します。 次の表に、Cプログラミング言語で使用できる重要な算術演算子の一部を示します。 変数Aが10を保持し、変数Bが20を保持すると仮定します-

Operator Description Example
+ Adds two operands A + B will give 30
- Subtracts second operand from the first A - B will give -10
* Multiplies both operands A* B will give 200
/ Divides numerator by de-numerator B/A will give 2
% This gives remainder of an integer division B % A will give 0

以下は、上記の数学演算子を理解するためのCプログラミングの簡単な例です-

#include <stdio.h>

int main() {
   int a, b, c;

   a = 10;
   b = 20;

   c = a + b;
   printf( "Value of c = %d\n", c);

   c = a - b;
   printf( "Value of c = %d\n", c);

   c = a * b;
   printf( "Value of c = %d\n", c);

   c = b/a;
   printf( "Value of c = %d\n", c);

   c = b % a;
   printf( "Value of c = %d\n", c);
}

上記のプログラムが実行されると、次の結果が生成されます-

Value of c = 30
Value of c = -10
Value of c = 200
Value of c = 2
Value of c = 0

関係演算子

次のように2つの変数を作成し、それらにいくつかの値を割り当てる状況を考えてください-

A = 20
B = 10

ここで、変数Aの値がBより大きいことは明らかです。 そのため、リレーショナル式と呼ばれるこのような式を作成するには、いくつかのシンボルの助けが必要です。 私たちはCプログラミング言語を使用する場合、それは次のように書かれます-

(A > B)

ここでは、シンボル>を使用しました。これは関係演算子と呼ばれ、最も単純な形式ではブール結果を生成します。つまり、結果はtrueまたはfalseになります。 同様に、プログラミング言語はさまざまな関係演算子を提供します。 次の表に、Cプログラミング言語で使用できる重要な関係演算子のいくつかを示します。 変数 A が10を保持し、変数 B が20を保持すると仮定します-

Operator Description Example
== Checks if the values of two operands are equal or not, if yes then condition becomes true. (A == B) is not true.
!= Checks if the values of two operands are equal or not, if values are not equal then condition becomes true. (A != B) is true.
> Checks if the value of left operand is greater than the value of right operand, if yes then condition becomes true. (A > B) is not true.
< Checks if the value of left operand is less than the value of right operand, if yes then condition becomes true. (A < B) is true.
>= Checks if the value of left operand is greater than or equal to the value of right operand, if yes then condition becomes true. (A >= B) is not true.
Checks if the value of left operand is less than or equal to the value of right operand, if yes then condition becomes true. (A ⇐ B) is true.

ここでは、* if条件ステートメント*を使用するCプログラミングの例を示します。 このステートメントについては別の章で説明しますが、要するに、* ifステートメント*を使用して条件をチェックし、条件がtrueの場合は* ifステートメント*の本体が実行され、そうでない場合は ifの本体が実行されますstatement はスキップされます。

#include <stdio.h>

int main() {
   int a, b;

   a = 10;
   b = 20;

  /*Here we check whether a is equal to 10 or not*/
   if( a == 10 ) {

     /*if a is equal to 10 then this body will be executed*/
      printf( "a is equal to 10\n");
   }

  /*Here we check whether b is equal to 10 or not*/
   if( b == 10 ) {

     /*if b is equal to 10 then this body will be executed*/
      printf( "b is equal to 10\n");
   }

  /*Here we check if a is less b than or not*/
   if( a < b ) {

     /*if a is less than b then this body will be executed*/
      printf( "a is less than b\n");
   }

  /*Here we check whether a and b are not equal*/
   if( a != b ) {

     /*if a is not equal to b then this body will be executed*/
      printf( "a is not equal to b\n");
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

a is equal to 10
a is less than b
a is not equal to b

論理演算子

論理演算子はどのプログラミング言語でも非常に重要であり、特定の条件に基づいて決定を下すのに役立ちます。 2つの条件の結果を結合したい場合、論理ANDおよびOR論理演算子が最終結果の生成に役立ちます。

次の表は、C言語でサポートされているすべての論理演算子を示しています。 変数 A が1を保持し、変数 B が0を保持すると仮定します-

Operator Description Example
&& Called Logical AND operator. If both the operands are non-zero, then condition becomes true. (A && B) is false.
Called Logical OR Operator. If any of the two operands is non-zero, then condition becomes true. (A
B) is true. ! Called Logical NOT Operator. Use to reverses the logical state of its operand. If a condition is true then Logical NOT operator will make false.

Cプログラミング言語で利用可能なすべての論理演算子を理解するために、次の例を試してください-

#include <stdio.h>

int main() {
   int a = 1;
   int b = 0;

   if ( a && b ) {

      printf("This will never print because condition is false\n" );
   }
   if ( a || b ) {

      printf("This will be printed print because condition is true\n" );
   }
   if ( !(a && b) ) {

      printf("This will be printed print because condition is true\n" );
   }
}

上記のプログラムをコンパイルして実行すると、次の結果が生成されます-

This will be printed print because condition is true
This will be printed print because condition is true

Javaの演算子

以下は、Javaで作成された同等のプログラムです。 CプログラミングとJavaは、ほぼ同一の演算子と条件ステートメントのセットを提供します。 このプログラムは、Cプログラミングに非常によく似た2つの変数 a および b を作成し、これらの変数に10と20を割り当て、最後に異なる算術演算子と関係演算子を使用します-

次のプログラムを実行して出力を確認できます。出力は、上記の例で生成された結果と同一である必要があります。

public class DemoJava {
   public static void main(String []args) {
      int a, b, c;

      a = 10;
      b = 20;

      c = a + b;
      System.out.println("Value of c = " + c );

      c = a - b;
      System.out.println("Value of c = " + c );

      c = a * b;
      System.out.println("Value of c = " + c );

      c = b/a;
      System.out.println("Value of c = " + c );

      c = b % a;
      System.out.println("Value of c = " + c );

      if( a == 10 ) {

         System.out.println("a is equal to 10" );
      }
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

Value of c = 30
Value of c = -10
Value of c = 200
Value of c = 2
Value of c = 0
a is equal to 10

Pythonの演算子

以下は、Pythonで作成された同等のプログラムです。 このプログラムは、2つの変数 ab を作成し、同時にそれらの変数に10と20を割り当てます。 幸いなことに、Cプログラミング言語とPythonプログラミング言語は、ほぼ同一の演算子セットを提供します。 このプログラムは、Cプログラミングに非常によく似た2つの変数 ab を作成し、これらの変数に10と20を割り当て、最後に異なる算術演算子と関係演算子を使用します。

次のプログラムを実行して出力を確認できます。出力は、上記の例で生成された結果と同一である必要があります。

a = 10
b = 20

c = a + b
print "Value of c = ", c

c = a - b
print "Value of c = ", c

c = a * b
print "Value of c = ", c

c = a/b
print "Value of c = ", c

c = a % b
print "Value of c = ", c

if( a == 10 ):
   print "a is equal to 10"

上記のプログラムが実行されると、次の結果が生成されます-

Value of c =  30
Value of c =  -10
Value of c =  200
Value of c =  0
Value of c =  10
a is equal to 10

決定声明

意思決定は、コンピュータープログラミングにとって重要です。 2つ以上のオプションが与えられ、与えられた条件に基づいてオプションを選択する必要がある場合、多くの状況があります。 たとえば、保護されたマークに基づいて、学生に関するコメントを印刷したいとします。 以下は状況です-

Assume given marks are x for a student:

If given marks are more than 95, then
Student is brilliant

If given marks are less than 30, then
Student is poor

If given marks are less than 95 and more than 30, then
Student is average

さて、問題はそのような状況に対処するためのプログラミングコードの書き方です。 ほとんどすべてのプログラミング言語は、次のフロー図に基づいて機能する条件付きステートメントを提供します-

Cでの意思決定ステートメント

上記の特定の状況をプログラミングコードに変換するために、* if条件文*を使用してCプログラムを作成しましょう。

#include <stdio.h>

int main() {
   int x = 45;

   if( x > 95) {

      printf( "Student is brilliant\n");
   }
   if( x < 30) {

      printf( "Student is poor\n");
   }
   if( x < 95 && x > 30 ) {

      printf( "Student is average\n");
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

Student is average

上記のプログラムは、* if条件ステートメント*を使用しています。 ここで、最初の* ifステートメント*は、指定された条件、つまり変数xが95より大きいかどうかをチェックし、条件がtrueであることがわかると、指定されたステートメントを実行するために条件本体が入力されます。 ここでは、学生に関するコメントを出力する_printf()_ステートメントが1つだけあります。

同様に、2番目の* ifステートメント*も機能します。 最後に、3番目の* ifステートメント*が実行されます。ここでは、次の2つの条件があります-

  • 最初の条件は x> 95 です
  • 2番目の条件は x <30

コンピューターは指定された条件の両方を評価し、全体の結果は2項演算子 && の助けを借りて結合されます。 最終結果が真の場合、条件ステートメントが実行されます。そうでない場合、ステートメントは実行されません。

このチュートリアルでは、さまざまな形式の* ifステートメント*の基本的な考え方と、Cプログラミング言語で使用できる switch ステートメントの概要を説明します。 異なるプログラミング言語は異なるタイプの意思決定ステートメントを提供しますが、基本的な概念はこのチュートリアルで説明したものと同じです。

if …​ elseステートメント

*if* ステートメントの後にオプションの *else* ステートメントを続けることができます。これは、ブール式がfalseの場合に実行されます。 Cプログラミング言語の *if ... else* ステートメントの構文は-
if(boolean_expression) {

  /*Statement(s) will execute if the boolean expression is true*/
} else {

 /*Statement(s) will execute if the boolean expression is false*/
}

上記の構文は、以下に示すようにフロー図の形で表すことができます-

C if …​ else statement

*if ... else* ステートメントは、2つのオプションから決定を下す必要がある場合に役立ちます。 たとえば、学生が95よりも多くのマークを確保する場合、学生は素晴らしいです、そうでなければ、そのような状況は次のようにコーディングすることはできません-
#include <stdio.h>

int main() {
   int x = 45;

   if( x > 95) {

      printf( "Student is brilliant\n");
   } else {
      printf( "Student is not brilliant\n");
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

Student is not brilliant

if …​ elseif …​ elseステートメント

*if* ステートメントの後に、オプションの *else if ... else* ステートメントを続けることができます。これは、さまざまな条件をテストするのに非常に便利です。
*if、else if、else* ステートメントを使用している間、留意すべきいくつかのポイントがあります-
  • if にはゼロまたは1つの else’s を含めることができ、 else if の後に来る必要があります。
  • if は、0個以上の else…if’s を持つことができ、 else の前に来る必要があります。
  • else…if が成功すると、残りの else…if’s または else’s はテストされません。

Cプログラミング言語の if …​ else if …​ else ステートメントの構文は-

if(boolean_expression 1) {

  /*Executes when the boolean expression 1 is true*/
}
else if( boolean_expression 2) {

  /*Executes when the boolean expression 2 is true*/
}
else if( boolean_expression 3) {

  /*Executes when the boolean expression 3 is true*/
} else {

  /*Executes when the none of the above condition is true*/
}

if …​ elseif …​ else ステートメントの助けを借りて、非常に最初のプログラムは次のようにコーディングすることができます-

#include <stdio.h>

int main() {
   int x = 45;

   if( x > 95) {
      printf( "Student is brilliant\n");
   }
   else if( x < 30) {
      printf( "Student is poor\n");
   }
   else if( x < 95 && x > 30 ) {
      printf( "Student is average\n");
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

Student is average

Switchステートメント

*switch* ステートメントは、* ifステートメント*の代替であり、変数の値のリストとの等価性をテストできます。 各値は「*ケース*」と呼ばれ、オンになっている変数はスイッチケースごとにチェックされます。 次の構文があります-
switch(expression){
   case ONE :
      statement(s);
      break;
   case TWO:
      statement(s);
      break;
   ......

   default :
      statement(s);
}
*switch* ステートメントで使用される *expression* は整数値を指定する必要があり、指定されたさまざまなケースと等しいかどうか比較されます。 式の値がケースの値と一致する場合はいつでも、そのケースの本体が実行され、最後に *break* ステートメントを使用してスイッチが終了します。 breakステートメントが提供されない場合、コンピューターは、一致したケースに対して以下で利用可能な他のステートメントの実行を続けます。 一致するケースがない場合、デフォルトのケース本体が実行されます。

上記の構文は、以下に示すようにフロー図の形で表すことができます-

Cのステートメントの切り替え

ここで、与えられた数字に相当する英語の単語を書きたい別の例を考えてみましょう。 次に、次のようにコーディングすることができます-

#include <stdio.h>

int main() {
   int x = 2;

   switch( x ){
      case 1 :
         printf( "One\n");
         break;
      case 2 :
         printf( "Two\n");
         break;
      case 3 :
         printf( "Three\n");
         break;
      case 4 :
         printf( "Four\n");
         break;
      default :
         printf( "None of the above...\n");
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

Two

Javaでの決定

以下は、 ifif …​ elseif …​ elseif …​ else 、および switch ステートメントもサポートする、Javaで記述された同等のプログラムです。

次のプログラムを実行して出力を確認することができますが、出力は上記のCの例で生成された結果と同一である必要があります。

public class DemoJava {
   public static void main(String []args) {
      int x = 45;

      if( x > 95) {
         System.out.println( "Student is brilliant");
      }
      else if( x < 30) {
         System.out.println( "Student is poor");
      }
      else if( x < 95 && x > 30 ) {
         System.out.println( "Student is average");
      }
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

Student is average

Pythonでの決定

以下は、Pythonで作成された同等のプログラムです。 Pythonは、 ifif …​ elseif …​ elif …​ else 、および switch ステートメントを提供します。 ここで、Pythonは条件付きボディに中括弧を使用せず、ステートメントのインデントを使用してブロックのボディを単に識別することに注意する必要があります。

次のプログラムを実行して、出力を確認することができます-

x = 45

if x > 95:
   print "Student is brilliant"
elif x < 30:
   print "Student is poor"
elif x < 95 and x > 30:
   print "Student is average"

print "The end"

上記のプログラムが実行されると、次の結果が生成されます-

Student is average
The end

コンピュータープログラミング-ループ

  • Hello、World!*を5回印刷する状況を考えてみましょう。 これは同じことをする簡単なCプログラムです-
#include <stdio.h>

int main() {
   printf( "Hello, World!\n");
   printf( "Hello, World!\n");
   printf( "Hello, World!\n");
   printf( "Hello, World!\n");
   printf( "Hello, World!\n");
}

上記のプログラムが実行されると、次の結果が生成されます-

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!

それは簡単でしたが、もう一度、* Hello、World!を何千回も書きたいときの別の状況を考えてみましょう。 確かに、printf()ステートメントを何千回も書くことはできません。 ほとんどすべてのプログラミング言語は、 *loop と呼ばれる概念を提供します。これは、1つ以上のステートメントを必要な回数実行するのに役立ちます。 すべての高レベルプログラミング言語は、1つ以上のステートメントを繰り返し実行するために使用できるさまざまな形式のループを提供します。

  • whileループ*の助けを借りて上記のCプログラムを書きましょう。このループの仕組みについて説明します。
#include <stdio.h>

int main() {
   int i = 0;

   while ( i < 5 ) {
      printf( "Hello, World!\n");
      i = i + 1;
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!

上記のプログラムは、* whileループ*を使用しています。これは、\ {…​.}で囲まれたプログラミングステートメントのセットを実行するために使用されています。 ここで、コンピューターは最初に、指定された条件、つまり変数 "a"が5より小さいかどうかをチェックし、条件が真であると判断すると、ループ本体に入り、指定されたステートメントを実行します。 ここでは、ループ本体に次の2つのステートメントがあります-

  • 最初のステートメントは_printf()_関数で、Hello World!
  • 2番目のステートメントは_i = i + 1_です。これは、変数 i の値を増やすために使用されます

ループ本体で指定されたすべてのステートメントを実行した後、コンピューターはwhile(i <5)に戻り、指定された条件(i <5)が再びチェックされ、条件が真の場合、ループが再度実行されます。 このプロセスは、指定された条件が真になるまで繰り返されます。つまり、変数「a」の値は5未満です。

最後に、ループステートメントを使用すると、ステートメントまたはステートメントのグループを複数回実行できます。 以下に示すのは、ほとんどのプログラミング言語での一般的なループ文の形式です-

ループアーキテクチャ

このチュートリアルは、プログラミングの基本概念を非プログラマに提示するように設計されているため、Cプログラミング言語で使用できる2つの最も重要なループについて説明しましょう。 これらの2つのループについて明確になったら、Cプログラミングチュートリアルまたはリファレンスブックを取り上げて、Cで利用可能な他のループとその動作を確認できます。

whileループ

Cプログラミング言語で利用可能な* whileループ*の構文は次のとおりです-

while ( condition ) {
  /*....while loop body ....*/
}

上記のコードは、以下に示すようにフロー図の形で表すことができます-

Cのwhileループ

以下の重要な点は、whileループについて注意することです-

  • whileループは、キーワード while で始まり、その後に()で囲まれた condition が続きます。
  • while()ステートメントに加えて、ループの本体を中括弧 \ {…​} で囲みます。
  • whileループ本体には、繰り返し実行される1行以上のソースコードを含めることができます。
  • whileループの本体に1行しかない場合は、オプションで中括弧 \ {…​} を使用します。
  • whileループは、指定された condition がtrueになるまで本体を実行し続けます。 条件が偽になるとすぐに、whileループが出て、whileループ本体の直後の次のステートメントから実行を続けます。
  • 通常、条件は関係ステートメントであり、trueまたはfalseのいずれかに評価されます。 ゼロに等しい値は偽として扱われ、ゼロ以外の値は真のように機能します。

do …​ whileループ

whileループは、本文部分で指定されたステートメントを実行する前に、指定された条件をチェックします。 Cプログラミングは、 do …​ while と呼ばれる別の形式のループを提供します。これにより、特定の条件をチェックする前にループ本体を実行できます。 次の構文があります-

do {
  /*....do...while loop body ....*/
}
while ( condition );

上記のコードは、以下に示すようにフロー図の形で表すことができます-

Cのdo …​ whileループ

*do ... while* ループを使用して上記の例を記述する場合、 *Hello、World* は同じ結果を生成します-
#include <stdio.h>

int main() {
   int i = 0;

   do {
      printf( "Hello, World!\n");
      i = i + 1;
   }
   while ( i < 5 );
}

上記のプログラムが実行されると、次の結果が生成されます-

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!

breakステートメント

ループ内で break ステートメントが検出されると、ループは直ちに終了し、プログラム制御はループに続く次のステートメントから再開します。 Cでの break ステートメントの構文は次のとおりです-

break;
*break* ステートメントは、以下に示すようにフロー図の形で表すことができます-

c breakステートメント

以下は上記のプログラムの変形ですが、Hello World!を印刷した後に公開されます。 3回だけ-

#include <stdio.h>

int main() {
   int i = 0;
   do {
      printf( "Hello, World!\n");
      i = i + 1;

      if( i == 3 ) {
         break;
      }
   }
   while ( i < 5 );
}

上記のプログラムが実行されると、次の結果が生成されます-

Hello, World!
Hello, World!
Hello, World!

continueステートメント

Cプログラミング言語の continue ステートメントは、 break ステートメントのように機能します。 強制終了の代わりに、 continue はループの次の反復を強制的に実行し、その間のコードをスキップします。 Cの*継続*ステートメントの構文は次のとおりです-

continue;
  • 継続*ステートメントは、以下に示すようにフロー図の形で表すことができます-

C continueステートメント

以下は上記のプログラムの変形ですが、変数の値が3に等しい場合は印刷をスキップします-

#include <stdio.h>

int main() {
   int i = 0;
   do {
      if( i == 3 ) {
         i = i + 1;
         continue;
      }
      printf( "Hello, World!\n");
      i = i + 1;
   }
   while ( i < 5 );
}

上記のプログラムが実行されると、次の結果が生成されます-

Hello, World!
Hello, World!
Hello, World!
Hello, World!

Javaのループ

以下は、 while および do …​ while ループもサポートする、Javaで記述された同等のプログラムです。 次のプログラムは、Cプログラミングの場合と同じように、* Hello、World!*を5回出力します-

次のプログラムを実行して出力を確認できます。出力は、上記の例で生成された結果と同一である必要があります。

public class DemoJava {
   public static void main(String []args) {
      int i = 0;

      while ( i < 5 ) {
         System.out.println("Hello, World!");
         i = i + 1;
      }
   }
}

Javaプログラミングの break および continue ステートメントは、Cプログラミングの場合とまったく同じように機能します。

Pythonのループ

以下は、Pythonで作成された同等のプログラムです。 Pythonも while および do …​ while ループをサポートしています。 次のプログラムは、Cプログラミングの場合と同じように、* Hello、World!*を5回出力します。 ここで、Pythonはループの本体に中括弧を使用せず、代わりにステートメントのインデントを使用してループの本体を識別することに注意する必要があります。

次のプログラムを実行して、出力を確認してください。 違いを示すために、ループが終了したときに実行されるもう1つのprintステートメントを使用しました。

i = 0

while (i < 5):
   print "Hello, World!"
   i = i + 1
print "Loop ends"

上記のプログラムが実行されると、次の結果が生成されます-

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Loop ends

Pythonの break および continue ステートメントは、Cプログラミングの場合とまったく同じように機能します。

コンピュータプログラミング-数字

すべてのプログラミング言語は、単純な整数や浮動小数点数など、さまざまなタイプの数値の操作をサポートしています。 C、Java、およびPythonは、これらの数値をその性質に基づいていくつかのカテゴリに分類します。

戻って、データ型の章を確認しましょう。ここでは、数値に関連するコアデータ型をリストしました。

Type Keyword Value range which can be represented by this data type
Number int -32,768 to 32,767 or -2,147,483,648 to 2,147,483,647
Small Number short -32,768 to 32,767
Long Number long -2,147,483,648 to 2,147,483,647
Decimal Number float 1.2E-38 to 3.4E+38 till 6 decimal places

これらのデータ型はプリミティブデータ型と呼ばれ、これらのデータ型を使用して、ユーザー定義データ型と呼ばれるより多くのデータ型を構築できます。

演算子に関する議論の中で、数値に対するさまざまな数学および論理演算を見てきました。 したがって、数字の追加、数字の減算、数字の除算などの方法を知っています。

まず、Cプログラミング言語で利用可能なさまざまな種類の数値を印刷する方法を見てみましょう-

#include <stdio.h>

int main() {
   short  s;
   int    i;
   long   l;
   float  f;
   double d;

   s = 10;
   i = 1000;
   l = 1000000;
   f = 230.47;
   d = 30949.374;

   printf( "s: %d\n", s);
   printf( "i: %d\n", i);
   printf( "l: %ld\n", l);
   printf( "f: %.3f\n", f);
   printf( "d: %.3f\n", d);
}

残りのコーディングは非常に明白ですが、*%。3f *を使用してfloatおよびdoubleを出力しました。これは、小数点以下の桁数を出力することを示します。 上記のプログラムが実行されると、次の結果が生成されます-

s: 10
i: 1000
l: 1000000
f: 230.470
d: 30949.374

数値の数学演算

次の表に、さまざまな重要な数学計算に使用できる、Cプログラミング言語で使用できるさまざまな便利な組み込み数学*関数*を示します。

たとえば、2304などの数値の平方根を計算する場合、平方根を計算するための組み込み関数を使用できます。

Sr.No. Function & Purpose
1

double cos(double);

この関数は、角度(double)を取り、コサインを返します。

2

double sin(double);

この関数は、角度(二重)を取り、サインを返します。

3

double tan(double);

この関数は、角度(二重)を取り、タンジェントを返します。

4

double log(double);

この関数は数値を受け取り、その数値の自然対数を返します。

5

double pow(double, double);

最初の数字は上げる数字で、2番目の数字は上げる数字です。

6

double hypot(double, double);

この関数に直角三角形の2辺の長さを渡すと、斜辺の長さが返されます。

7

double sqrt(double);

この関数に数値を渡すと、その平方根が返されます。

8

int abs(int);

この関数は、渡される整数の絶対値を返します。

9

double fabs(double);

この関数は、渡された10進数の絶対値を返します。

10

double floor(double);

渡された引数以下の整数を見つけます。

以下は、いくつかの数学的操作を示す簡単な例です。 これらの関数を利用するには、 stdio.h を含めたのと同じ方法で、数学ヘッダーファイル <math.h> をプログラムに含める必要があります-

#include <stdio.h>
#include <math.h>

int main() {
   short  s;
   int    i;
   long   l;
   float  f;
   double d;

   printf( "sin(s): %f\n", sin(10));
   printf( "abs(i): %f\n", abs(1000));
   printf( "floor(f): %f\n", floor(230.47));
   printf( "sqrt(l): %f\n", sqrt(1000000));
   printf( "pow(d, 2): %f\n", pow(2.374, 2));
}

上記のプログラムが実行されると、次の結果が生成されます-

sin(s): -0.544021
abs(i): -0.544021
floor(f): 230.000000
sqrt(l): 1000.000000
pow(d, 2): 5.635876

上記の使用法に加えて、Cプログラミングではループカウント、フラグ表現、真または偽の値に数値を使用します。

Javaの数字

以下は、Javaで作成された同等のプログラムです。 Javaは、Cプログラミングで使用可能なほぼすべての数値データ型を提供します。

次のプログラムを実行して出力を確認できます。これは、上記のCの例で生成された結果と同じです。

public class DemoJava {
   public static void main(String []args) {
      short  s;
      int    i;
      long   l;
      float  f;
      double d;

      s = 10;
      i = 1000;
      l = 1000000L;
      f = 230.47f;
      d = 30949.374;

      System.out.format( "s: %d\n", s);
      System.out.format( "i: %d\n", i);
      System.out.format( "l: %d\n", l);
      System.out.format( "f: %f\n", f);
      System.out.format( "d: %f\n", d);
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

s: 10
i: 1000
l: 1000000
f: 230.470001
d: 30949.374000

Javaには、数学計算用のさまざまな組み込み関数も用意されており、Cプログラミングと同じように使用できます。

Pythonの数字

PythonはCやJavaとは少し異なります。数値を intlongfloat および complex に分類します。 Pythonの数値の例を次に示します-

int long float complex
10 51924361L 0.0 3.14j
100 -0x19323L 15.20 45.j
-786 0122L -21.9 9.322e-36j
080 0xDEFABCECBDAECBFBAEl 32.3+e18 .876j
-0490 535633629843L -90. -.6545+0J
-0x260 -052318172735L -32.54e100 3e+26J
0x69 -4721885298529L 70.2-E12 4.53e-7j

以下はPythonで書かれた同等のプログラムです-

s = 10
i = 1000
l = 1000000
f = 230.47
d = 30949.374

print "s: ", s
print "i: ", i
print "l: ", l
print "f: ", f
print "d: ", d

上記のプログラムが実行されると、次の結果が生成されます-

s:  10
i:  1000
l:  1000000
f:  230.47
d:  30949.374

Pythonには、数学計算用のさまざまな組み込み関数も用意されており、Cプログラミングで使用したのと同じ方法で使用できます。

コンピュータープログラミング-キャラクター

コンピュータープログラミングで数字を扱うのが簡単であれば、キャラクターを扱うのはさらに簡単になります。 文字は、a、b、c、d …​.、A、B、C、D、…​..のような単純なアルファベットですが、例外があります。 コンピュータープログラミングでは、0、1、2、…​などの1桁の数字と、$、%、+、-…​.などの特殊文字 なども文字として扱われ、文字型変数に割り当てるには、それらを*単一引用符*内に入れる必要があります。 たとえば、次のステートメントは、文字型変数 ch を定義し、値 'a’を割り当てます-

char ch = 'a';

ここで、 ch は、実装の文字セットの文字を保持できる文字タイプの変数であり、 'a' は*文字リテラル*または文字定数と呼ばれます。 a、b、c、…​だけではありません しかし、1、2、3 …​などの任意の数の場合 または!、@、#、#、$、…​.などの特殊文字 一重引用符内に保持されている場合、それらは文字リテラルとして扱われ、文字型の変数に割り当てることができますので、以下は有効なステートメントです-

char ch = '1';

文字データ型は8ビットのメモリを消費します。つまり、ASCII値が-127〜127の範囲にある文字に何でも保存できるため、256種類の値を保持できます。 文字データ型には、!、@、#、#、$、%、^、&、*、(、)、_、+、\ {、}などの特殊文字を含む、キーボードで使用可能な任意の文字を格納できます。

単一引用符内には単一のアルファベットまたは数字のみを保持でき、単一引用符内には複数のアルファベットまたは数字を使用できないことに注意してください。 したがって、次のステートメントはCプログラミングでは無効です-

char ch1 = 'ab';
char ch2 = '10';

以下に示すのは、Cプログラミング言語で文字を定義、割り当て、印刷する方法を示す簡単な例です-

#include <stdio.h>

int main() {
   char  ch1;
   char  ch2;
   char  ch3;
   char  ch4;

   ch1 = 'a';
   ch2 = '1';
   ch3 = '$';
   ch4 = '+';

   printf( "ch1: %c\n", ch1);
   printf( "ch2: %c\n", ch2);
   printf( "ch3: %c\n", ch3);
   printf( "ch4: %c\n", ch4);
}

ここでは、%cを使用して文字データ型を出力しました。 上記のプログラムが実行されると、次の結果が生成されます-

ch1: a
ch2: 1
ch3: $
ch4: +

エスケープシーケンス

多くのプログラミング言語は、 Escape Sequence と呼ばれる概念をサポートしています。 文字の前にバックスラッシュ(\)がある場合、その文字はエスケープシーケンスと呼ばれ、コンパイラにとって特別な意味を持ちます。 たとえば、次の文の\ nは有効な文字であり、改行文字と呼ばれます-

char ch = '\n';

ここでは、文字 n の前にバックスラッシュ(\)があり、改行である特別な意味がありますが、バックスラッシュ(\)は少数の文字のみで特別な意味を持つことに注意してください。 次のステートメントは、Cプログラミングで意味を伝えず、無効なステートメントと見なされます-

char ch = '\1';

次の表は、Cプログラミング言語で利用可能なエスケープシーケンスを示しています-

Escape Sequence Description
\t Inserts a tab in the text at this point.
\b Inserts a backspace in the text at this point.
\n Inserts a newline in the text at this point.
\r Inserts a carriage return in the text at this point.
\f Inserts a form feed in the text at this point.
\' Inserts a single quote character in the text at this point.
\" Inserts a double quote character in the text at this point.
\\ Inserts a backslash character in the text at this point.

次の例は、コンパイラがprint文のエスケープシーケンスをどのように解釈するかを示しています-

#include <stdio.h>

int main() {
   char  ch1;
   char  ch2;
   char  ch3;
   char  ch4;

   ch1 = '\t';
   ch2 = '\n';

   printf( "Test for tabspace %c and a newline %c will start here", ch1, ch2);
}

上記のプログラムが実行されると、次の結果が生成されます-

Test for tabspace     and a newline
will start here

Javaの文字

以下は、Javaで作成された同等のプログラムです。 Javaは、Cプログラミングで見たのと同じ方法で文字データ型を処理します。 ただし、Javaは文字操作の追加サポートを提供します。

次のプログラムを実行して出力を確認することができますが、出力は上記のCの例で生成された結果と同一である必要があります。

public class DemoJava {
   public static void main(String []args) {
      char  ch1;
      char  ch2;
      char  ch3;
      char  ch4;

      ch1 = 'a';
      ch2 = '1';
      ch3 = '$';
      ch4 = '+';

      System.out.format( "ch1: %c\n", ch1);
      System.out.format( "ch2: %c\n", ch2);
      System.out.format( "ch3: %c\n", ch3);
      System.out.format( "ch4: %c\n", ch4);
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

ch1:  a
ch2:  1
ch3:  $
ch4:  +

Javaは、Cプログラミングで使用したのと同じ方法でエスケープシーケンスもサポートします。

Pythonの文字

Pythonは文字データ型をサポートしていませんが、すべての文字は文字列(文字のシーケンス)として扱われます。 文字列については別の章で学習します。 Pythonで単一の文字を使用する場合、特別な配置は必要ありません。

以下はPythonで書かれた同等のプログラムです-

ch1 = 'a';
ch2 = '1';
ch3 = '$';
ch4 = '+';

print "ch1: ", ch1
print "ch2: ", ch2
print "ch3: ", ch3
print "ch4: ", ch4

上記のプログラムが実行されると、次の結果が生成されます-

ch1:  a
ch2:  1
ch3:  $
ch4:  +

Pythonは、Cプログラミングでエスケープシーケンスを使用したのと同じ方法でエスケープシーケンスをサポートします。

コンピュータープログラミング-配列

5つの整数を保存する必要がある状況を考えてみましょう。 プログラミングの単純な変数とデータ型の概念を使用する場合、 int データ型の5つの変数が必要であり、プログラムは次のようになります-

#include <stdio.h>

int main() {
   int number1;
   int number2;
   int number3;
   int number4;
   int number5;

   number1 = 10;
   number2 = 20;
   number3 = 30;
   number4 = 40;
   number5 = 50;

   printf( "number1: %d\n", number1);
   printf( "number2: %d\n", number2);
   printf( "number3: %d\n", number3);
   printf( "number4: %d\n", number4);
   printf( "number5: %d\n", number5);
}

5つの整数を保存する必要があるため、それは簡単でした。 ここで、5000個の整数を保存する必要があると仮定しましょう。 5000個の変数を使用しますか?

そのような状況に対処するために、ほとんどすべてのプログラミング言語は array と呼ばれる概念を提供します。 配列はデータ構造であり、同じデータ型の要素の固定サイズのコレクションを格納できます。 配列はデータのコレクションを格納するために使用されますが、配列を同じタイプの変数のコレクションと考える方が便利な場合がよくあります。

number1、number2、…​、number99などの個々の変数を宣言する代わりに、整数型の配列変数 number を1つ宣言し、number1 [0]、number1 [1]、…​、number1 [99 ]個々の変数を表します。 ここで、0、1、2、…​.. 99は var 変数に関連付けられた index であり、配列で使用可能な個々の要素を表すために使用されています。

すべての配列は、連続したメモリ位置で構成されています。 最下位アドレスは最初の要素に対応し、最上位アドレスは最後の要素に対応します。

Cの配列

配列を作成する

Cで配列変数を作成するには、プログラマーが要素のタイプとその配列に格納される要素の数を指定します。 Cプログラミングで配列を作成するための簡単な構文を以下に示します-

type arrayName [ arraySize ];

これは「単一次元配列」と呼ばれます。 arraySize はゼロより大きい整数定数でなければならず、 type は任意の有効なCデータ型にすることができます。 たとえば、 int 型の number という10要素の配列を宣言するには、このステートメントを使用します-

int number[10];

ここで、_number_は可変配列で、最大10個の整数を保持するのに十分です。

配列の初期化

あなたはCの配列を1つずつ、または次のように単一のステートメントを使用して初期化することができます-

int number[5] = {10, 20, 30, 40, 50};

中括弧\ {}の間の値の数は、角括弧[]の間の配列に対して宣言する要素の数より大きくすることはできません。

配列のサイズを省略すると、初期化を保持するのに十分な大きさの配列が作成されます。 したがって、あなたが書く場合-

int number[] = {10, 20, 30, 40, 50};

前の例で作成したのとまったく同じ配列を作成します。 以下は、配列の単一の要素を割り当てるための例です-

number[4] = 50;

上記のステートメントは、配列の5番目の要素番号に50の値を割り当てます。 すべての配列は、ベースインデックスとも呼ばれる最初の要素のインデックスとして0を持ち、配列の最後のインデックスは、配列の合計サイズから1を引いたものになります。 次の画像は、上記で説明した配列の図的表現を示しています-

配列プレゼンテーション

配列要素へのアクセス

配列名にインデックスを付けることにより、要素にアクセスします。 これは、配列の名前の後に角かっこ内に要素のインデックスを配置することによって行われます。 たとえば-

int var = number[9];

上記のステートメントは、配列から10番目の要素を取得し、 var 変数に値を割り当てます。 次の例では、上記の3つの概念すべてを使用しています。 配列の作成、割り当て、アクセス-

#include <stdio.h>

int main () {
   int number[10];/*number is an array of 10 integers*/
   int i = 0;

  /*Initialize elements of array n to 0*/
   while( i < 10 ) {

     /*Set element at location i to i + 100*/
      number[ i ] = i + 100;
      i = i + 1;
   }

  /*Output each array element's value*/
   i = 0;
   while( i < 10 ) {

      printf("number[%d] = %d\n", i, number[i] );
      i = i + 1;
   }

   return 0;
}

上記のコードをコンパイルして実行すると、次の結果が生成されます-

number[0] = 100
number[1] = 101
number[2] = 102
number[3] = 103
number[4] = 104
number[5] = 105
number[6] = 106
number[7] = 107
number[8] = 108
number[9] = 109

Javaの配列

以下は、Javaで作成された同等のプログラムです。 Javaは配列をサポートしていますが、 new 演算子を使用してJavaで配列を作成する方法には少し違いがあります。

次のプログラムを実行して出力を確認することができますが、出力は上記のCの例で生成された結果と同一である必要があります。

public class DemoJava {
   public static void main(String []args) {
      int[] number = new int[10];
      int i = 0;

      while( i < 10 ) {

         number[ i ] = i + 100;
         i = i + 1;
      }

      i = 0;
      while( i < 10 ) {
         System.out.format( "number[%d] = %d\n", i, number[i] );
         i = i + 1;
      }
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

number[0] = 100
number[1] = 101
number[2] = 102
number[3] = 103
number[4] = 104
number[5] = 105
number[6] = 106
number[7] = 107
number[8] = 108
number[9] = 109

Pythonの配列(リスト)

Pythonには配列の概念がありませんが、代わりにPythonは list と呼ばれる別のデータ構造を提供します。これは他の言語の配列と同様の機能を提供します。

以下はPythonで書かれた同等のプログラムです-

# Following defines an empty list.
number = []
i = 0

while i < 10:
   # Appending elements in the list
   number.append(i + 100)
   i = i + 1

i = 0
while i < 10:
   # Accessing elements from the list
   print "number[", i,  "] = ", number[ i ]
   i = i + 1

上記のプログラムが実行されると、次の結果が生成されます-

number[ 0 ] =  100
number[ 1 ] =  101
number[ 2 ] =  102
number[ 3 ] =  103
number[ 4 ] =  104
number[ 5 ] =  105
number[ 6 ] =  106
number[ 7 ] =  107
number[ 8 ] =  108
number[ 9 ] =  109

コンピュータープログラミング-文字列

  • 文字*についての議論の中で、文字データ型は単一の文字を扱い、キーボードの任意の文字を文字型変数に割り当てることができることを学びました。

それでは、少し先に進んで、変数に複数の文字を格納する必要がある状況を考えてみましょう。 Cプログラミングでは、文字型変数に複数の文字を格納できないことがわかりました。 したがって、次のステートメントはCプログラミングでは無効であり、構文エラーを生成します-

char ch1 = 'ab';
char ch2 = '10';

また、 arrays の概念を使用して、類似したデータ型の複数の値を変数に格納する方法を見てきました。 これは、int型の配列に5つの数値を格納および印刷する構文です-

#include <stdio.h>

main() {
   int number[5] = {10, 20, 30, 40, 50};
   int i = 0;

   while( i < 5 ) {
      printf("number[%d] = %d\n", i, number[i] );
      i = i + 1;
   }
}

上記のコードをコンパイルして実行すると、次の結果が生成されます-

number[0] = 10
number[1] = 20
number[2] = 30
number[3] = 40
number[4] = 50

さて、数字の場合と同じ方法で5文字の配列を定義し、それらを印刷してみましょう-

#include <stdio.h>

main() {
   char ch[5] = {'H', 'e', 'l', 'l', 'o'};
   int i = 0;

   while( i < 5 ) {
      printf("ch[%d] = %c\n", i, ch[i] );
      i = i + 1;
   }
}

ここでは、%cを使用して文字値を出力しました。 上記のコードをコンパイルして実行すると、次の結果が生成されます-

ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o

上記の例を終了したら、Cプログラミングで文字列がどのように機能するか理解できたと思います。これは、* Cの文字列は文字の配列*として表されるためです。 Cプログラミングにより、文字列の割り当てと印刷が簡素化されました。 簡単な構文でもう一度同じ例をチェックしましょう-

#include <stdio.h>

main() {
   char ch[5] = "Hello";
   int i = 0;

  /*Print as a complete string*/
   printf("String = %s\n", ch);

  /*Print character by character*/
   while( i < 5 ) {
      printf("ch[%d] = %c\n", i, ch[i] );
      i = i + 1;
   }
}

ここでは、配列名 ch を使用して完全な文字列値を出力するために%sを使用しました。

C/C ++の文字列表示

上記の例からは見えませんが、Cプログラムは内部的にすべての文字列の最後の文字としてヌル文字 '\ 0' を割り当てます。 これは文字列の終わりを示し、5文字の文字列を配列に格納する場合は、Cが文句を言うことはありませんが、6の配列サイズを良い習慣として定義する必要があります。

上記のコードがコンパイルされて実行されると、次の結果が生成されます-

String = Hello
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o

基本的な文字列の概念

上記の議論に基づいて、Cプログラミング言語の文字列に関する次の重要なポイントを結論付けることができます-

  • Cの文字列は、文字の配列として表されます。
  • 文字ごとに文字の配列に割り当てることにより、Cプログラミングで文字列を構成できます。
  • 二重引用符で囲まれた完全な文字列を割り当てることにより、Cプログラミングで文字列を構成できます。
  • 配列添え字を使用して文字ごとに文字列を印刷するか、添え字なしの配列名を使用して文字列全体を印刷できます。
  • すべての文字列の最後の文字はヌル文字です。つまり、 ’\ 0’ です。
  • ほとんどのプログラミング言語には、文字列を操作するための組み込み関数があります。つまり、文字列を連結したり、文字列から検索したり、文字列から部分文字列を抽出したりできます。 詳細については、Cプログラミングまたはその他のプログラミング言語に関する詳細なチュートリアルをご覧ください。

Javaの文字列

文字配列を使用して文字列を格納できますが、Javaは高度なプログラミング言語であり、その設計者は追加機能を提供しようとしました。 Javaは、他のデータ型と同様に、文字列を組み込みデータ型として提供します。 つまり、文字列を文字の配列として定義する代わりに、文字列を直接定義できるということです。

以下は、Javaで作成された同等のプログラムです。 Javaは、次のプログラムに示すように、 new 演算子を使用して文字列変数を作成します。

次のプログラムを実行して、出力を確認することができます-

public class DemoJava {
   public static void main(String []args) {
      String str = new String("Hello");
      System.out.println( "String = " + str );
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

String = Hello

Pythonの文字列

Pythonで文字列を作成するには、一重引用符または二重引用符を使用して文字列をPython変数に割り当てるのと同じくらい簡単です。

2つの文字列を作成し、print()関数を使用してそれらを印刷する簡単なプログラムを以下に示します-

var1 = 'Hello World!'
var2 = "Python Programming"

print "var1 = ", var1
print "var2 = ", var2

上記のプログラムが実行されると、次の結果が生成されます-

var1 =  Hello World!
var2 =  Python Programming

Pythonは文字タイプをサポートしていません。これらは長さ1の文字列として扱われるため、部分文字列とも見なされます。

部分文字列にアクセスするには、スライスに角括弧を使用してインデックスを作成し、部分文字列を取得します。 次のコードセグメントを見てください-

var1 = 'Hello World!'
var2 = "Python Programming"

print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]

上記のコードが実行されると、次の結果が生成されます-

var1[0]:  H
var2[1:5]:  ytho

コンピュータープログラミング-機能

関数は、単一の関連アクションを実行するために使用される、整理された再利用可能なコードのブロックです。 関数を使用すると、アプリケーションのモジュール性が向上し、高度なコードの再利用が可能になります。 * printf() main()*などのさまざまな関数を既に見ました。 これらは、言語自体が提供する組み込み関数と呼ばれますが、独自の関数を作成することもできます。このチュートリアルでは、これらの関数をCプログラミング言語で記述して使用する方法を説明します。

関数の良いところは、いくつかの名前で有名だということです。 プログラミング言語が異なれば、たとえば、関数、メソッド、サブルーチン、プロシージャなどの名前が異なります。 このような用語に出会った場合は、このチュートリアルで説明するのと同じコンセプトを想像してください。

数値の2つの配列を定義するプログラムから始めましょう。次に、各配列から最大の数値を見つけます。 与えられた数のセットから最大数を見つけるための手順を以下に示します-

1. Get a list of numbers L1, L2, L3....LN
2. Assume L1 is the largest, Set max = L1
3. Take next number Li from the list and do the following
4.    If max is less than Li
5.       Set max = Li
6.    If Li is last number from the list then
7.       Print value stored in max and come out
8. Else prepeat same process starting from step 3

上記のプログラムをCプログラミング言語で翻訳しましょう-

#include <stdio.h>

int main() {
   int set1[5] = {10, 20, 30, 40, 50};
   int set2[5] = {101, 201, 301, 401, 501};
   int i, max;

  /*Process first set of numbers available in set1[]*/
   max = set1[0];
   i = 1;
   while( i < 5 ) {
      if( max <  set1[i] ) {
         max = set1[i];
      }
      i = i + 1;
   }

   printf("Max in first set = %d\n", max );

  /*Now process second set of numbers available in set2[]*/
   max = set2[0];
   i = 1;
   while( i < 5 ) {
      if( max <  set2[i] ) {
         max = set2[i];
      }
      i = i + 1;
   }
   printf("Max in second set = %d\n", max );
}

上記のコードをコンパイルして実行すると、次の結果が生成されます-

Max in first set = 50
Max in second set = 501

上記の例について明確にすれば、なぜ関数が必要なのかが理解しやすくなります。 上記の例では、set1とset2の2つのセットしかありませんが、各セットから最大数を見つけるために10個以上の同様のセットがある場合を考えてください。 このような状況では、10回以上処理を繰り返す必要があり、最終的に、コードが繰り返されるとプログラムが大きくなりすぎます。 このような状況に対処するため、プログラミングで何度も使用されるソースコードを保持しようとする関数を作成します。

Cプログラミング言語で関数を定義する方法を見てみましょう。その後のセクションでは、それらの使用方法を説明します。

関数を定義する

Cプログラミング言語の関数定義の一般的な形式は次のとおりです-

return_type function_name( parameter list ) {
   body of the function

   return [expression];
}

Cプログラミングの関数定義は、_function header_と_function body_で構成されています。 ここに関数のすべての部分があります-

  • 戻り値の型-関数は値を返す場合があります。 return_type は、関数が返す値のデータ型です。 一部の関数は、値を返さずに目的の操作を実行します。 この場合、return_typeはキーワード void です。
  • 関数名-これは関数の実際の名前です。 関数名とパラメーターリストは一緒に関数シグネチャを構成します。
  • パラメータリスト-パラメータはプレースホルダのようなものです。 関数が呼び出されると、パラメーターとして値を渡します。 この値は、実際のパラメーターまたは引数と呼ばれます。 パラメーターリストは、関数のパラメーターのタイプ、順序、および数を参照します。 パラメーターはオプションです。つまり、関数にパラメーターを含めることはできません。
  • 関数本体-関数本体には、関数の動作を定義するステートメントのコレクションが含まれています。

関数を呼び出す

C関数を作成するときに、関数が何をする必要があるかを定義します。 関数を使用するには、その関数を呼び出して定義済みのタスクを実行する必要があります。

さて、関数の助けを借りて上記の例を書いてみましょう-

#include <stdio.h>

int getMax( int set[] ) {
   int i, max;

   max = set[0];
   i = 1;
   while( i < 5 ) {
      if( max <  set[i] ) {
         max = set[i];
      }
      i = i + 1;
   }
   return max;
}
main() {
   int set1[5] = {10, 20, 30, 40, 50};
   int set2[5] = {101, 201, 301, 401, 501};
   int max;

  /*Process first set of numbers available in set1[]*/
   max = getMax(set1);
   printf("Max in first set = %d\n", max );

  /*Now process second set of numbers available in set2[]*/
   max = getMax(set2);
   printf("Max in second set = %d\n", max );
}

上記のコードをコンパイルして実行すると、次の結果が生成されます-

Max in first set = 50
Max in second set = 501

Javaの関数

Cプログラミングの関数について明確であれば、Javaの関数も簡単に理解できます。 Javaプログラミングでは methods と名付けていますが、残りの概念はほぼ同じです。

以下は、Javaで作成された同等のプログラムです。 あなたは出力を見るためにそれを実行しようとすることができます-

public class DemoJava {
   public static void main(String []args) {
      int[] set1 = {10, 20, 30, 40, 50};
      int[] set2 = {101, 201, 301, 401, 501};
      int max;

     /*Process first set of numbers available in set1[]*/
      max = getMax(set1);
      System.out.format("Max in first set = %d\n", max );

     /*Now process second set of numbers available in set2[]*/
      max = getMax(set2);
      System.out.format("Max in second set = %d\n", max );
   }
   public static int getMax( int set[] ) {
      int i, max;
      max = set[0];
      i = 1;

      while( i < 5 ) {
         if( max <  set[i] ) {
            max = set[i];
         }
         i = i + 1;
      }
      return max;
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

Max in first set = 50
Max in second set = 501

Pythonの関数

繰り返しますが、CプログラミングとJavaプログラミングの関数の概念を知っていれば、Pythonはそれほど違いはありません。 Pythonで関数を定義する基本的な構文は次のとおりです-

def function_name( parameter list ):
   body of the function

   return [expression]

Pythonで関数のこの構文を使用して、上記の例は次のように書くことができます-

def getMax( set ):
   max = set[0]
   i = 1

   while( i < 5 ):
      if( max <  set[i] ):
         max = set[i]

      i = i + 1
   return max

set1 = [10, 20, 30, 40, 50]
set2 = [101, 201, 301, 401, 501]

# Process first set of numbers available in set1[]
max = getMax(set1)
print "Max in first set = ", max

# Now process second set of numbers available in set2[]
max = getMax(set2)
print "Max in second set = ", max

上記のコードが実行されると、次の結果が生成されます-

Max in first set =  50
Max in second set =  501

コンピュータープログラミング-ファイルI/O

コンピューターファイル

コンピューターファイルは、プレーンテキスト、画像データ、またはその他のコンテンツのようなデジタル形式でデータを保存するために使用されます。 コンピューターファイルは、異なるディレクトリ内に整理できます。 ファイルはデジタルデータを保持するために使用され、ディレクトリはファイルを保持するために使用されます。

コンピューターファイルは、紙の文書のデジタル版と見なすことができます。 プログラミング中、ソースコードはさまざまな拡張子を持つテキストファイルに保持します。たとえば、Cプログラミングファイルは拡張子 .c で終わり、Javaプログラミングファイルは .java で終わり、Pythonファイルは .py で終わります。

ファイル入出力

通常、メモ帳、MS Word、MS Excel、MS Powerpointなどのテキストエディターを使用してファイルを作成します。 ただし、多くの場合、コンピュータープログラムを使用してファイルを作成する必要があります。 コンピュータープログラムを使用して、既存のファイルを変更できます。

ファイル入力はファイルに書き込まれるデータを意味し、ファイル出力はファイルから読み取られるデータを意味します。 実際、入力と出力の用語は、画面の入力と出力により関連しています。 結果を画面に表示するとき、出力と呼ばれます。 同様に、コマンドプロンプトからプログラムに入力を提供する場合、それは入力と呼ばれます。

今のところ、ファイルへの書き込みはファイル入力であり、ファイルからの読み取りはファイル出力であることを覚えておくだけで十分です。

ファイル操作モード

コンピュータープログラムを使用してファイルの操作を開始する前に、新しいファイルが存在しない場合は作成するか、既存のファイルを開く必要があります。 いずれの場合でも、次のモードでファイルを開くことができます-

  • 読み取り専用モード-既存のファイルを読み取るだけで、ファイルにそれ以上コンテンツを書きたくない場合は、ファイルを読み取り専用モードで開きます。 ほとんどすべてのプログラミング言語は、読み取り専用モードでファイルを開くための構文を提供します。
  • 書き込み専用モード-既存のファイルまたは新しく作成されたファイルのいずれかに書き込むが、そのファイルから書き込まれた内容を読みたくない場合は、書き込み専用モードでファイルを開きます。 すべてのプログラミング言語は、書き込み専用モードでファイルを開くための構文を提供します。
  • 読み取りおよび書き込みモード-同じファイルへの読み取りと書き込みを行う場合、ファイルを読み取りおよび書き込みモードで開きます。
  • 追加モード-書き込み用にファイルを開くと、ファイルの先頭から書き込みを開始できます。ただし、既存のコンテンツがある場合は上書きされます。 既存のコンテンツを上書きしたくない場合、追加モードでファイルを開きます。 追加モードは最終的には書き込みモードであり、ファイルの最後にコンテンツを追加できます。 ほとんどすべてのプログラミング言語は、追加モードでファイルを開くための構文を提供します。

次のセクションでは、新しいファイルを開く方法、ファイルに書き込む方法、および後で同じファイルにコンテンツを読み込んで追加する方法を学習します。

ファイルを開く

  • fopen()関数を使用して、新しいファイルを作成するか、既存のファイルを開くことができます。 この呼び出しは、ストリームを制御するために必要なすべての情報を含む *FILE 型のオブジェクトを初期化します。 ここにプロトタイプ、つまりこの関数呼び出しの署名があります-
FILE *fopen( const char *filename, const char* mode );

ここで、*ファイル名*は文字列リテラルであり、これを使用してファイルに名前を付け、*モード*にアクセスすると次の値のいずれかを持つことができます-

Sr.No Mode & Description
1

r

読み取り用に既存のテキストファイルを開きます。

2

w

書き込み用のテキストファイルを開きます。 存在しない場合は、新しいファイルが作成されます。 ここで、プログラムはファイルの先頭からコンテンツの書き込みを開始します。

3

a

追加モードで書き込むためにテキストファイルを開きます。 存在しない場合は、新しいファイルが作成されます。 ここで、プログラムは既存のファイルコンテンツにコンテンツの追加を開始します。

4

r+

読み取りと書き込みの両方のためにテキストファイルを開きます。

5

w+

読み取りと書き込みの両方のためにテキストファイルを開きます。 ファイルが存在する場合、最初にファイルの長さをゼロに切り捨てます。そうでない場合、ファイルが存在しない場合は作成します。

6

a+

読み取りと書き込みの両方のためにテキストファイルを開きます。 存在しない場合、ファイルを作成します。 読み取りは最初から始まりますが、書き込みは追加のみ可能です。

ファイルを閉じる

ファイルを閉じるには、* fclose()*関数を使用します。 この関数のプロトタイプは-

 int fclose( FILE *fp );
  • fclose()関数は、成功時にゼロを返します。ファイルを閉じるときにエラーが発生した場合は、 *EOF (特殊文字)を返します。 この関数は、バッファ内でまだ保留中のデータをファイルに実際にフラッシュし、ファイルを閉じて、ファイルに使用されているメモリを解放します。 EOFは、ヘッダーファイル stdio.h で定義されている定数です。

文字ごとに、または固定長文字列の形式でファイルを読み書きするために、C標準ライブラリによって提供されるさまざまな関数があります。 次のセクションでそれらのいくつかを見てみましょう。

ファイルを書く

以下は、個々の文字をストリームに書き込むための最も単純な関数です-

int fputc( int c, FILE *fp );

関数* fputc()は、引数cの文字値を *fp によって参照される出力ストリームに書き込みます。 成功時に書き込まれた文字を返します。エラーがある場合は EOF を返します。 次の関数を使用して、ヌル終了文字列をストリームに書き込むことができます-

int fputs( const char *s, FILE *fp );

関数* fputs()は、文字列 *s をfpによって参照されるファイルに書き込みます。 成功すると負でない値を返します。そうでない場合は、エラーの場合に EOF が返されます。 関数 int fprintf(FILE fp、const char * format、…​)*を使用して、ファイルに文字列を書き込むこともできます。 次の例を試してください-

#include <stdio.h>

int main() {
   FILE *fp;

   fp = fopen("/tmp/test.txt", "w+");
   fprintf(fp, "This is testing for fprintf...\n");
   fputs("This is testing for fputs...\n", fp);
   fclose(fp);
}

上記のコードをコンパイルして実行すると、 /tmp ディレクトリに新しいファイル test.txt が作成され、2つの異なる関数を使用して2行が書き込まれます。 次のセクションでこのファイルを読みましょう。

ファイルを読む

以下は、文字ごとにテキストファイルを読み取るための最も単純な関数です-

int fgetc( FILE * fp );
  • fgetc()関数は、 *fp によって参照される入力ファイルから文字を読み取ります。 戻り値は読み取られた文字です。またはエラーが発生した場合、 EOF を返します。 次の関数を使用すると、ストリームから文字列を読み取ることができます-
char *fgets( char *buf, int n, FILE *fp );

関数* fgets()は、 *fp によって参照される入力ストリームから最大n-1文字を読み取ります。 読み取った文字列をバッファ buf にコピーし、文字列を終了するために null 文字を追加します。

この関数は、最大文字数を読み取る前に改行文字「\ n」またはEOFに遭遇した場合、改行文字を含むその時点までに読み取られた文字のみを返します。 int fscanf(FILE fp、const char * format、…​)*を使用してファイルから文字列を読み取ることもできますが、最初のスペース文字が検出されると読み取りを停止します。

#include <stdio.h>

main() {

   FILE *fp;
   char buff[255];

   fp = fopen("/tmp/test.txt", "r");
   fscanf(fp, "%s", buff);
   printf("1 : %s\n", buff );

   fgets(buff, 255, (FILE*)fp);
   printf("2: %s\n", buff );

   fgets(buff, 255, (FILE*)fp);
   printf("3: %s\n", buff );
   fclose(fp);
}

上記のコードがコンパイルおよび実行されると、前のセクションで作成されたファイルを読み取り、次の結果を生成します-

1 : This
2 : is testing for fprintf...

3 : This is testing for fputs...

ここで何が起こったのか分析しましょう。 まず、* fscanf()メソッドは *This を読み取ります。その後、スペースに遭遇したためです。 2番目の呼び出しは* fgets()に対するもので、行の終わりに達するまで残りの行を読み取ります。 最後に、最後の呼び出し fgets()*は2行目を完全に読み取ります。

JavaのファイルI/O

Javaは、ファイルI/Oを処理するためのさらに豊富な機能セットを提供します。 このトピックの詳細については、Javaチュートリアルを確認することをお勧めします。

ここでは、上記で説明したCプログラムと同等の単純なJavaプログラムが表示されます。 このプログラムは、テキストファイルを開き、そこに数行のテキストを書き込み、ファイルを閉じます。 最後に、同じファイルが開かれ、作成済みのファイルから読み取られます。 次のプログラムを実行して、出力を確認することができます-

import java.io.*;

public class DemoJava {
   public static void main(String []args) throws IOException {
      File file = new File("/tmp/java.txt");

     //Create a File
      file.createNewFile();

     // Creates a FileWriter Object using file object
      FileWriter writer = new FileWriter(file);

     //Writes the content to the file
      writer.write("This is testing for Java write...\n");
      writer.write("This is second line...\n");

     //Flush the memory and close the file
      writer.flush();
      writer.close();

     //Creates a FileReader Object
      FileReader reader = new FileReader(file);
      char [] a = new char[100];

     //Read file content in the array
      reader.read(a);
      System.out.println( a );

     //Close the file
      reader.close();
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

This is testing for Java write...
This is second line...

PythonのファイルI/O

次のプログラムは、新しいファイルを開いてコンテンツを書き込み、最後に同じファイルを読み取るための同じ機能を示しています-

# Create a new file
fo = open("/tmp/python.txt", "w")

# Writes the content to the file
fo.write( "This is testing for Python write...\n");
fo.write( "This is second line...\n");

# Close the file
fo.close()

# Open existing file
fo = open("/tmp/python.txt", "r")

# Read file content in a variable
str = fo.read(100);
print str

# Close opened file
fo.close()

上記のコードが実行されると、次の結果が生成されます-

This is testing for Python write...
This is second line...

コンピュータープログラミング-まとめ

このチュートリアルをご理解いただきありがとうございます。 簡潔にしようとしましたが、この主題にはいくつかのトピックが含まれているため、いくつかの例を詳細に示しました。

概念をまったく理解していない場合は、もう一度チュートリアルを実行することをお勧めします。このチュートリアルで説明されている概念に慣れたら、さらに先に進むことができます。

混乱を避けるために意図的にカバーしなかったコンピュータープログラミングに関連する他の多くの主題がありますが、このチュートリアルで説明されている概念に満足している限り、それらの概念を理解することは難しくありません。

finddevguidesでは、C、Java、およびPythonプログラミング言語に関する包括的なチュートリアルを準備するために多くの努力を払っており、このチュートリアルを完了した後、どちらかを開始することを強くお勧めします。

[[cprogramming|[[File:]]]] [[java|[[File:]]]] [[python|[[File:]]]]
  • [email protected]*の件名にチュートリアル名を記載して、このチュートリアルについてのあなたの見解を教えてください。 このチュートリアルをさらに改善するための提案があれば、ぜひご連絡ください。

コンピュータープログラミング-便利なリソース

次のリソースには、コンピュータープログラミングに関する追加情報が含まれています。 このトピックに関する詳細な知識を得るためにそれらを使用してください。

コンピュータプログラミングに関する便利なリンク

  • Computer Fundamentals-シンプルで簡単な手順でコンピュータの基本を理解するための短いチュートリアル。
  • [[1]] = vs.90).aspx [プログラミングの仕組み]-これは、プログラミング言語が何であり、どのように機能するかを理解するのに役立ちます
  • Computer Programming @ Wikipedia-コンピュータープログラミングの定義、その歴史、その他のさまざまな用語は、簡単な言語で説明されています。
  • BBCによるコンピューターの基本-コンピューターの部品と健康と安全を含むコンピューターの紹介。

コンピュータプログラミングに関する有用な本

このページにサイトを登録するには、 contact @ finddevguides.com にメールを送信してください。