カテゴリー
C++

配列について知ろう

この章では配列について説明します。
普通の変数は1つしかデータを入れることができません(他のデータを入れようとするとデータが上書きされてしまう)が、配列は複数のデータをまとめて入れることができます。
複数のデータを扱う場合、普通の変数では以下のように別々の変数名でそれぞれのデータを入れなければいけませんが、配列を使うと1つの変数名で同じ型のデータを複数入れることができるのです。
同じ目的で使用するデータは1つにまとめてしまい、1つの変数で複数のデータを管理できると便利です。
このような時に配列を使用します。1
では例をみてみましょう。11 変数と同じように配列も宣言をしなくてはいけません。
つまり、「これからこの配列を使います」と宣言をします。
それが以下の構文です。1 この例では以下のように宣言しています。1 これは「初めにint型の要素を4つ用意すること」を意味します。
次は作った配列にデータを入れますが、それが次の箇所です。
4つの要素で宣言したので4つのデータを入れます。11 添え字とはデータを管理する番号です。例えばコインロッカーの箱には必ず番号が付いていますが、この番号があるからこそ、どこに自分の荷物があるのかが分かるわけです。
添え字もこれと同じで、添え字と言う管理番号で配列のどこにデータが入っているのかを管理します。
添え字は0から順番に番号が付けられていきます。
1から数えるのではないので注意してください。1 配列の書き方はこの他にもあります。
それは配列の宣言と初期化を一緒に行う方法です。1 1配列に関する注意点が2つあります。
1つ目は以下の例のように要素数が4つであるにも関わらず、5個のデータを入れようとするとエラーになります。1
2つ目は先ほど配列宣言と同時に初期化を行う基本構文を説明しましたが、以下のように要素数は省略できます。11 この場合は代入するデータの数が配列の要素数になります。
この例の場合は要素数は4つなのでと1同じ意味になります。
次は配列の要素をどのように出力するか見てみましょう。
この例では以下の箇所で配列の要素を出力しています(スペースの都合で2行で書いていますが1行で書いてもいいです)。11 結果は「1234」です。
次は文字列を配列で扱う方法について説明します。
では例をみてみましょう。1 文字列について説明します。
文字列とは複数の文字を並べたものです。char型の文字を複数並べることで文字列を作ることが出来ます。
char型の文字を複数並べるにはchar型の配列を使います。
ではchar型の配列の作成手順について説明します。11 実は文字列(この例ではdog)には文字列の最後に1(ヌル文字と言います)と言う文字が隠れていまして、これは「文字列の終わり」を意味します。
ですので、配列の最後の要素に1を付け加えてください。
その分、配列の要素数も1つ増えるので、配列の要素数も1ではなくて、1になります。
そして、1で出力すると「dog」を出力します。

出力結果には「¥0」は含まれません。
また、char型の配列文字を出力する時の変換指定文字は1になります。1 上の配列を書き換える方法は2つあります。1111

カテゴリー
C++

std::coutについてもっと知ろう

この章ではstd::coutについて説明します。
「printf関数についてもっと知ろう」の章では以下の通り、結果の表示幅を指定することが出来ましたが、1でも可能です。
1では例をみてみましょう。11 という記述で、空白部分も合わせて、指定した表示幅で表示します。
以下のように変数に入れて出力しても同じ事です。1 結果は以下の通りです。1 次の例をみてみましょう。11 1次の例をみてみましょう。
11この例ではprecisionの引数に3を指定しているので3.23までが表示されます。        
結果は以下の通りです。1

カテゴリー
C++

puts関数について知ろう

この章ではputs関数について説明します。
puts関数はC言語で使われている関数ですがC++でも使えるので紹介します。
puts関数は文字列を出力する関数ですが、printf関数とは少し機能が違います。
puts関数とprintfとの違いはputs関数は1などの変換指定子を使用することが出来ないことです。
もう一つの違いはputs関数は文字列の1番最後に 改行文字が自動的に付けられます。つまりprintfみたいに1を付けなくても文字列を改行してくれます。
では例をみてみましょう。11 では次の例をみてみましょう。11 printfで改行したい場合には以下のように改行文字を入れます。1

カテゴリー
C++

scanf関数ついて知ろう

この章ではscanf関数について説明します。
scanf関数はC言語で使われている関数ですがC++でも使えるので紹介します。
scanf関数はユーザーがキーボードから入力したデータを取得するための関数です。
例えば「あなたの年齢は?」と質問するとプログラムはユーザーが入力するまで待ちます。
そして、この入力された年齢をプログラムに取り込むことが出来ます。
では例をみてみましょう。11 ユーザーが入力したデータを入れるための変数の宣言をします。
年齢を入力するので、型はintにします。1 「年齢は?」を出力します。1 scanf関数はユーザーが年齢を入力してくれるのを待ちますので、一回プログラムが止まります。
そして、例えばユーザーが23と入力したのならば、その23がaに入ります。
scanfもprintfと同じように変換指定子を指定します。
例の場合は整数なので1を指定しています。
ここで注意してほしいことはscanfの中の変数の前に「&」を付けてください。1 結果は以下の通りです。111 結果は以下の通りです。1

カテゴリー
C++

複合演算子を知ろう

この章では複合演算子について説明します。
算術演算子と 代入演算子を複合して使用しているので、複合演算子と呼ばれています。
例えばaとbという変数を足したものを再びaに代入する場合には通常であれば1と書かなくてはいけないところ1という形式で書くことが出来ます。1 では例をみてみましょう。11111111

カテゴリー
C++

加算子,減算子について知ろう

この章では加算子,減算子について説明します。
加算子は数値を1つ増やし、減算子は数値を1つ減らす演算子です。1 まだ説明していませんがfor文などの繰り返し構文等に主に使われます。1 では例をみてみましょう。1 「a1++;」も「++a2;」も変数の値である2に1を足しているわけですが,結果は同じ3になります。
つまり、「++」が前にあっても、後ろにあっても結果は同じです。
次は前置加算子について詳しく説明します。1 111前置加算子の例は特に変わったところが無いので解りやすいと思いますが、次の後置加算子の例は少し複雑になります。1 後置加算子では初めに「++」を無視した状態で出力し、それからaに1を加算します。11 デクリメントはインクリメントと考え方は同じなので、インクリメントの項を参考にしてみてください。
インクリメントは足して、デクリメントは引くと言う違いだけです。

カテゴリー
C++

キャスト演算子について知ろう

この章ではキャスト演算子について説明します。
これまでの例では型が違う変数同士の計算の場合にはサイズが大きい型に自動的に型変換されていましたが、自身で型変換をする方法もあります。
それはキャスト演算子を使う方法です。
最初はキャスト演算子を使っていない例をみてみましょう。1 結果は「3です」です。
通常の計算では答えは3.25になりますが、int同士の計算なので、小数点以下が削除されてから、double型の変数eに代入されますので、3になります。
これでは正確な計算は出来ませんね。
そこで変数の前に1を付けることで、その指定した型に換えることが出来ます。
では例をみてみましょう。1 結果は「3.25です」です。
実はこの例の場合は1のように両方ともキャストする必要はありません。
doubleのほうがintより大きい型なのでfとvの片方だけdoubleにキャストすることで、もう片方の変数もdoubleに変換されますので、1のように片方でも同じ結果になります。

カテゴリー
C++

C++で計算をしよう

この章ではプログラム上で計算する方法について説明します。
計算をするときには算術演算子を使いますが、詳しい説明は例の後に行ないます。
では例をみてみましょう。11 算術演算子とは算数などでも使われる計算記号の事です。1 number1+number2は加算を行っているのですが、number1には5、number2には3が入っているので、この変数の値同士を「+」で足しています。
以下のように変数を使わなくても直接計算式を書いてもいいです(これは他の演算子でも同じことです)。1 number1-number2は減算を行っているのですが、number1には5、number2には3が入っているので、この変数の値同士を「-」で引いています。
number1*number2は乗算を行っているのですが、number1には5、number2には3が入っているので、この変数の値同士を「*」で掛けています。
number1/number2は除算を行っているのですが、number1には5、number2には3が入っているので、この変数の値同士を「/」で割っています。
number1%number2は割り算の余りを計算するのですが、number1には5、number2には3が入っているので、この変数の値同士の除算の余りを算出します。11 結果は以下の通りです。1
以下の例は先ほどの例を書き換えた例です。一度計算式を変数に入れてから、出力しています。
このような事も出来ますので覚えておいてください。111 次の例は型が違うデータ同士の計算の例です。1 結果は以下の通りです。1  
「a+r」の部分でint型の変数とdouble型の変数を足していますが、サイズの小さい型とサイズの大きい型を足すとサイズが大きい型に統一されます。1

カテゴリー
C++

エスケープシーケンスについて知ろう

エスケープシーケンスとは、ダブルクォートやシングルクォートなどC++において文字列として入力することが出来ない特殊な文字を1を使って表現します。
「C++の基礎を知ろう2」で説明した「¥n」もエスケープシーケンスの1つです。
エスケープシーケンスは以下の通りです。1 では例をみてみましょう。1 「¥t」はタブを表しますので、結果は以下の通りです。1
次の例をみてみましょう。1 ダブルクォートの中にダブルクォートは入れられないのでエスケープシーケンスを使います。
ダブルクォートは文字列を囲むという機能がありますので、これを1として表示させるのが1の役割です。
結果は以下の通りです。1
次の例をみてみましょう。1 文字として「¥」を入れたい場合には「¥¥」を使用します。
結果は以下の通りです。1

カテゴリー
C++

printf関数についてもっと知ろう

この章では変換指定文字について説明します。
printf関数の変換指定文字は以下の通り複数あります。
先ほども言いましたが、printf関数はC言語で使われている関数ですが、C++でも使えます。1
では例をみてみましょう。1 結果は以下のように出力されます。1 1先頭の2文字分が開いてしまうので、その場合にはスペースが入れられます。
また1のようにデータの桁数と同じか,または小さい場合には何も指定していないのと同じです。11
では次の例をみてみましょう。1 結果は以下の通りです。11 浮動小数点数の場合には小数点も入れた「右詰めの表示幅」になります。
数値を右詰めで表示した時の余った場所にはスペースが入れられます。
出力結果の上から2つ目を見ていただくと1文字分のスペースが開いているのが分かります。11
また、数値を右詰めで表示した時の余った場所にはスペースが入れられます。
次は以下の例で10進数である100を8進数と16進数に変える方法について説明します。1 111結果は以下の通りです。
1次の例は「0」「0x」を省略しないで出力させる例です。11 結果は以下の通りです。1
次の例はテンプレートの中で「%」を文字として出力する場合の例です。11