この章ではデータ型についてさらに詳しく説明します。
次の例では代入時の型変換について説明します。 変数をintで宣言しているにもかかわらず、「3.456」という浮動小数点数を代入していますが、この場合は小数点以下が切り捨てられて、3 になってしまいます。
理由はintは整数型を格納するものなので、小数点以下が格納できないためです。
つまり、代入する変数の型に自動的に変換されます。
バイト数の大きい型から小さい型へ代入する場合、値の一部が失われることが有るので注意してください。
下を見ていただくと解りますが、doubleが一番バイト数の多い型になります。
カテゴリー: C++
この章では変数に関するまとめと注意点について説明します。
変数の宣言の基本構文は以下のように説明しました。 しかし複数の変数を宣言するときには以下のようにバラバラに宣言するのはスマートな方法ではありません(スペースの都合で以下の例のprintf文を2行で書いていますが、1行で書いてもいいです)。
上の書き方でも間違いではありませんが、以下のように変数の宣言をまとめて書くとプログラムが読みやすくなります。 今までバラバラに変数の宣言をしていましたが、このように1行でまとめることもできます。
この例ではの箇所です。
まとめて変数を宣言した時の注意点について説明します。 つまり、まとめて宣言を書くことが出来るのはデータ型が同じ場合だけです。
違う型同士はまとめて書くことが出来ません。
データ型について知ろう
この章ではデータ型について説明します。
変数に対してどのような種類のデータを入れるのかを示すのがデータ型です。
では例をみてみましょう。 「int a;」は変数の前にintが付いていますが、これは整数だけをaという変数に入れることができることを意味します。
データ型には以下のような種類があります。
「整数型」
「浮動小数点数型」
「文字型」
「論理型」
初めに整数型から説明します。
整数とは少数点の無い数値のことを言います。
整数は10進数、8進数、16進数などで表せますが、10進数は1や100などの我々が普段使っている数字です。
8進数は先頭に0を付けて0144などと書きます。
16進数は先頭に0xを付けて0x41などと表現します。
変数に入れるデータが整数の場合には変数の前にintを付けます。
このintは符号付き整数と呼ばれていまして、プラスの値とマイナスの値が使用できる型です。
先ほどの例の場合には以下のように2という整数を変数に入れるのでintを変数名の前に付けています。 以下の表を見ていただくと分かりますが符号無し整数はマイナスの値がない分をプラスに使えるので、プラスの扱える範囲が倍になります。 「intやunsigned int」以外の整数型を見てみましょう。 では次の整数型をみてみましょう。
では次の整数型をみてみましょう。
次は浮動小数点数型について説明します。 浮動小数点数は少数点を持つ数値のことを言います。
整数型の最大値を超える場合は浮動小数点数型を使います。
では例をみてみましょう。
次は文字型について説明します。 文字型(char 型)は半角英数字1文字をシングルクォートで囲んだ形で表します。
文字型の値は1バイトで表現されるため、1バイトで表現可能な文字でなければなりません。
日本語のような全角文字をシングルクォートで囲っても char 型にはなりません。
文字列(例えば”ねこ”)とは異なり、文字型で表現できのは半角の1文字だけであることに注意してください。
例えばはchar型です。
もう一つ注意してほしいことは文字型は文字という名前が付いていますが、実は文字はコンピュータの中では整数の値として保持されていますので、charは半角英数字1文字の他にまでの整数を入れることが出来ます。
その他にもありますが、これは半角英数字1文字の他にまでの整数値を入れることが出来ます。
では例をみてみましょう。 printfで「文字型」を出力するときの変換指定子はです。
では次の例をみてみましょう。 ユーザーに何か文字を1文字入力させてchar型の変数に代入し出力しています。
この章の最後に補足と注意点について説明します。
この章では変数について説明します。
変数とはデータを入れることが出来る機械に似ています。
例えば携帯電話やフロッピーディスクにデータを記憶させると持ち運びが出来ますが、この携帯電話やフロッピーディスクに相当するものが変数です。
変数にデータを入れながら、プログラムを書いていくのが基本中の基本になります。
では以下の例で詳しく説明します。 変数は以下の構文で書きますが、これを変数の宣言と言います。
つまり、「これからこの変数を使いますよ」と宣言をしないと、変数は使うことができません。
それを以下の構文で行います。 この例では以下の箇所が変数です。 データ型についてはこの章の後半で説明しますので、今は変数名の名づけ方法について説明します。
変数には名前を付けなくてはいけないのですが、この例ではaが変数名です。
本に関係しているプログラムであればbookなどと変数名を付けます。
しかし、名前を付ければ何でもいいというのではなく、一定のルールがあります。 以下の表は予約語一覧です。
次に先ほど宣言をした変数にデータを入れる方法について説明します。
変数の宣言が終わった後には実際にデータを入れていきます。
例のの中に「=」と言う記号がありますが、これを代入演算子と言います。
数学の「=」とは関係ありません。
代入演算子は右辺のデータを左辺に入れる役割があります。 例で説明しますとaと言う変数に2と言うデータを入れるという意味です。
データを入れる行為を代入と言います。
次に変数の出力方法について説明します。 変数は普通の文字列と同じでを使って出力します。
この時、出力されるのは変数に入っているデータです。
この例は「値は2」が出力されます。
変数の代入と出力に関して注意してほしいことは以下のように同じ変数に複数のデータを代入してしまうと後から代入したデータで変数の値は上書きされますので注意してください。 結果は「値は2値は20」となりますが、整数のaに代入されていた2がの箇所で20に上書きされます。
次に「データ型名」について説明します。
先ほどの例の変数の前にintが付いていますが、これはデータ型を意味します。
変数を利用するためにはその変数がどのような型なのかを決めなくてはいけません。
つまり、変数を使用するには初めに『この変数は何型の変数です』と宣言しなければいけません。 この例では整数の2を変数aに入れているので、intを使用しています。 データ型については「データ型について知ろう」の章で詳しく説明します。
次に変数宣言の位置についてのC言語との違いについて説明します。
C 言語の関数内での変数の宣言位置はブロックの先頭でしなければいけませんでした。
C++の場合はそのような制約はなく、どこでもいつでも宣言することが可能です。
例えば以下の例はC言語のプログラムですが、変数を宣言する時には関数の先頭で宣言をしなくてはいけませんでした。
変数を先頭で宣言しないとエラーになります。 C++では以下のようにどこでも可能になります。 以下のように変数の宣言と同時にデータを入れることもできます。
この場合には1行で変数の宣言とデータの代入ができますので、プログラムがすっきりします。 これを「変数の初期化」と言います。
入れるデータのことを初期値と言います。
前の例ではstd::coutを使って変数に入っているデータを出力しました。
この例ではprintf関数を使用して変数のデータを出力しています。printf関数はC言語で使われているものですが、C++でも使えますので説明します。
整数型の数値を出力させるにはという変換指定子を使います。
変換指定子は例えばaの値をの箇所に置き換えて出力するために使います。 このように数値などのデータを文字列に変換して表示したい時に変換指定子を使います。 このテンプレートはダブルクォートで囲んでください。
そして、この中には文字列と変換指定子を自由に組み合わせて入れることができます。
テンプレートは「型」と言う意味なのでという型で出力しますよという意味です。 結果は「値は2」になります。
次の例ではprintfの中の変数を3つ同時に出力しています。 変数と「変換指定子」の対応関係は以下の通りです。
3つとは限らずいくらでも書くことができます。 テンプレートの一番左側の変換指定子と変数側の一番左の変数は対応関係にあります。
テンプレートの真ん中の変換指定子と変数側の真ん中の変数は対応関係にあります。
テンプレートの一番右の変換指定子と変数側の一番右の変数は対応関係にあります。
必ず変数と変換指定子の数を合わせてください。
補足ですが、printfは変換指定子を使わないで文字列を出力することも出来ます。 結果は「こんにちは」です。
printf関数についての詳細は「printfについてもっと知ろう」の章で詳しく説明します。
次はユーザーに文字列や数字などを入力させる方法について説明します。
では例をみてみましょう。 ユーザーが入力したデータを読み取るにはという構文を使用します。
「>>」は「入力演算子」と言います。 ユーザーが入力したデータはの中の変数nに入ります。
その後、で変数nを出力しています。
このように変数に入力データを入れることが出来ることを覚えておいてください。
では実際の画面で流れを追ってみましょう。
初めに「数値を入力」と出力して、ユーザーが入力するのを待ちます。 次に「123」を入力してエンターキーを押すと「数字は123」と出力されます。
では次の例を見てみましょう。 「cin >>a>>b>>c;」のように入力演算子を増やせば何個でも入力値を増やすことが出来ます。
この例では3回ユーザーに入力させています。
この入力させたものを3回掛けているのですが、それが以下の箇所です。 ユーザーに3回入力させているのですが、一回一回はエンターキーで区切ります。 もしくは以下のように半角スペースで区切ってもいいです。
C++の基礎を知ろう2
この章ではstd::coutについて説明します。
std::coutは文字列などを出力させる機能を持っていますが、基本構文は以下の通りです。 この例では「Hello」という文字列を出力させたいのでと書いています。
次にstd::coutの横にある「<<」について説明します。
std::coutの横に付けることができる記号は2つあり、1つは「<<」です。
これを出力演算子といいます。
もう1つは「>>」です。これを入力演算子と言います。
画面に出力する場合には「<<」の後に、(文字列であれば)のように出力させたい文字列にダブルクォートを付けて書きます。
実行すると「Hello」が出力されます。
ダブルクォート自体は画面に出力されません。
つまり出力されるのはではなく、「Hello」です。 数値を出力させる場合にはダブルクォートで囲まないでそのままと、書きます。
入力演算子につては「変数について知ろう」で説明します。
次に改行の仕方について説明します。 先ほどの例で出力演算子は1つしか書いていませんでしたが、この例のように連続して書きたい場合は「<<」を続けて記述します。 また、例の中にがありますが、これは改行を意味します。
改行はのようにをシングルクォートで囲みます。
改行はだけではなく、も改行になります。
文字列の改行の場合は のようにダブルクォートの中にを記述してもいいです。
もちろん、以下のように改行を別に書いてもいいです。 「文字」を出力する場合はのようにシングルクォートで1文字を囲ってください。
それに対して「文字列」はダブルクォートで囲みます。
「文字」については後ほど説明します。
結果は以下の通りですが、aと4が繋がっています。
これは改行をしていないからです。
では次の例に進みます。 通常は出力させるために「std::cout」と書きますが、この例では「std::」の部分が抜けています。
なぜかと言いますと以下の文が追加されているからです。 これを追加することにより「std::」を省略することが出来るわけです。
長く書くのが面倒に思う人には便利な機能です。
C++の基礎を知ろう1
この章ではC++の基礎について説明していきます。 このプログラムを実行しますと「Hello」と出力されますが、出力させるためにはという記述が必要です。
はデータを出力させる機能を持っています。
「std::cout」を機能させるためにはその機能を定義したファイルが必要ですので、そのファイルが「iostream」というファイルです。
これをヘッダーファイルと言います。このファイルを取り込む方法ですが、それにはファイル名の前にという記述が必要になります。
は今書いているプログラムに他のファイルを入れたい時に使います。
またヘッダーファイルを取り込む記述はプログラムの先頭で行ってください。
ではプログラムの骨格について説明します。
プログラムを書く際にはから作成します。
このmain関数がプログラムの中で初めに実行されます。 関数とは入力したデータ(引数)に基づいて「決められた処理」を行い、「戻り値」という結果を返す機能を持っています。
「戻り値」を返すにはreturnを使用します。
エクセルをご存知の方はわかると思いますが、例えばエクセル関数にSUMと言う関数が有りますが、この関数は指定した範囲のデータに基づいて足し算を行う関数です。指定した範囲のデータ(引数)が3,5,7であるならば戻り値は15です。
このように決められた機能を実行して結果を返すのが関数の役割です。
ではmain関数について説明します。 この例の関数名はmainですが、プログラムの中で最初に実行されるのはmain関数です。
このmain関数は必ず書く必要があります。
戻り値の型であるintや引数であるvoidについては「関数について知ろう」で詳しく説明しますので,今はmain関数からプログラムが実行されるとだけ覚えておいてください。
そして、実行内容はブロックの中に書いていきますが、そのブロック内ではプログラムは上から下へ実行されていきます。 上の赤枠の箇所にスペースがありますが、これはプログラムを読みやすくするためにあります。
このスペースのことをインデントと言います。
インデントは入れなくてもエラーにはなりませんが、入れると読みやすくなります。
またインデントは必ず半角で開けてください。 intやmainなどプログラムの骨格に書く文字やカッコなどは全て半角で入力して下さい。
この例の場合にintの箇所が大文字になっていますのでエラーが出ます。 プログラムの中にコメントを残すことも出来ます。
コメントはプログラムの意味などメモを書き残すために書きます。
このコメントの部分はプログラムには影響しません(つまり、コメント部分は出力されません)。
1行でコメントする場合はがコメントになります。
複数行の場合はの間にコメントを書いてください。
この章ではMicrosoft Visual C++2010 Expressの使い方について説明します。
1
初めに以下の「ファイル」をクリックします。 2
次に「新規作成」にカーソルを合わせます。 「新規作成」にカーソルを合わせますと次のメニューが表示されますので、「プロジェクト」をクリックします。 「ソースファイル」の上で右クリックしますと以下のメニューが表示されますので「追加」にカーソルを合わせます。 「追加」にカーソルを合わせますと以下のメニューが表示されるので、「新しい項目」をクリックします。 「新しい項目」をクリックしますと以下の画面が表示されるので「C++ファイル」をクリックし、「名前」にファイル名を入力します。
ファイル名にはという形式で入力します。
すべて入力しましたら「追加」をクリックします。 成功すると以下の通り「ビルド:1正常終了」と表示されます。 結果は以下の通り表示されます。
Visual Studioをインストールしよう
これから「Microsoft Visual C++2010」をインストールしますので以下の手順に従って進んでください。
このVisual Studioはテキストエディタ、コンパイル、リンクの機能を持つソフトウェアです。
初めに以下のURLのサイトに入ります。 サイトに入りましたら、以下の箇所をクリックしてください。 クリックしますと次の画面が表示されますので、「今すぐインストール」をクリックします。 「インストール」をクリックしますと
ダウンロードが始まります。
windowsの場合、
Microsoft Visual C++2010を実行するためには「すべてのプログラム」をクリックします。 次に「Microsoft Visual C++2010Express」をクリックします。
これからC++の学習を始めます。
C++はAT&T社のビャーン・ストラウストラップ氏が1985年に開発した言語です。
C++はC言語の文法をほとんど使えます。
C++の「++」はC言語を進化させた言語であることを意味します。
ではプログラムの流れを説明します。
[step1]
まず初めにテキストエディタでプログラムを書きます。
そのプログラムが書かれたファイルをソースファイルと言います。そのソースファイルの拡張子はを使います(例えばanimal.cpp)。
しかし、このままではプログラムは動きません。
次のstep2で説明するコンパイルと言う作業が必要になります。
[step2]
ソースファイルをコンピュータが理解できるように翻訳するコンパイルと言う作業を行います。
そして、ソースファイルをコンパイルした結果できるのが、オブジェクトコードです。
つまりソースコードをコンピュータが実行できるように変換したコードのことです。
[step3]
次に「リンク」と言う作業を行います。
実際にプログラムを実行させるためにはstep2のオブジェクトコードに「標準ライブラリなどを自動的に結合して作られたファイル」が必要になります。この結合する作業をリンクと言います。