カテゴリー
Cシャープ

データ型について知ろう

この章ではデータ型について説明します。
変数は入れ物に例えましたが、その入れ物はどんな種類のデータを入れる入れ物なのかを示すのがデータ型です。
主要なデータ型には以下の種類があります。1 整数型は複数ありまして、それぞれ型によって扱えるサイズが違います。111 整数型は次の表を参考にしてください。111
整数型で注意しなくてはいけないのはcharです。
「char」は変数に「1文字」だけを入れることが出来ます。
その1文字は1で囲んでください。1 charは上の表では整数型になっていますが、文字なのになぜ整数型なのかの理由はコンピュータが記録を行う時には文字は整数値で管理するからです。

次は浮動小数点型について説明します。1 浮動小数点数型は少数点を持つ数値のことを言います。
整数型の最大値を超える場合は浮動小数点型を使います。
浮動小数点型はdouble型とfloat型の2種類が有ります。
double型は64ビットのサイズで桁数15桁まで表現できます。
float型は32ビットのサイズで桁数7桁まで表現できます。
float 型を表現するには次のようにfまたはFを数値の後に付けます。1
次はdecimal型について説明します。1 11次は文字列型について説明します。
文字列型は文字列を扱うことができる型で1で表します。
そして、文字列はダブルクォートで囲みます。
「string」の先頭は「String」のように大文字でも構いません。
では例をみてみましょう。111111111

カテゴリー
C言語

変数について知ろう

この章では変数について説明します。
変数とはデータを入れることができる入れ物に似ています。
例えば携帯電話やフロッピーディスクにデータを記憶すると持ち運びが出来ますが、この携帯電話やフロッピーディスクに相当するものが変数です。
変数にデータを入れながら、プログラムを書いていくのが基本です。
では例で詳しく説明します。11 「データ型名 変数名;」という構文を「変数の宣言」と言います。
データ型は「データ型について知ろう」で説明します。
この例では以下が変数の宣言です。1 変数を使用するためには必ず変数の宣言が必要です。
つまり、「これからこの変数を使用しますよ」と宣言するのが変数の宣言です。
変数には名前を付けなくてはいけないのですが、この例ではaが変数名です。
本に関係しているプログラムであればbookなどと変数名を付けます。
この例では変数名にaと付けましたが、名前を付ければ何でもいいというのではなく、一定のルールがあります。11111 予約語とはすでにC言語の言語仕様で機能が定義されている単語のことです。
次の表が予約語です。
以後、学習が進んでいくうちに予約語は自然と覚えますので、ここでは覚えなくても結構です。 11 次に「データ型名」について説明します。1 変数の前に「int」が付いていますが、これがデータ型です。
変数を使用するにはまず初めに『この変数は何型の変数です』と宣言しなければいけません。
データ型については「データ型について知ろう」で詳しく説明しますが、簡単に言いますとどのようなデータを変数に入れるのかにより型名は変わります。
この例では整数の2を変数aに入れているので、intを使用しています。1 これまで変数の宣言について説明してきましたが、次の例で変数の宣言の注意事項について説明します。1 変数の宣言は必ず関数の先頭で行ってください。
つまり、例のように宣言の前に余計なものがありますとエラーになります。
この例は「int a;」の前に1が書いてありますので、エラーです。

次は変数へのデータの入れ方について説明します。
変数の宣言が終わりますとデータを入れることが出来ますが、以下の構文でデータを入れます。1 変数を宣言してから、データを入れるというのが基本です。
データ型名は変数の宣言の箇所のみ付けてください。
例の「a=2;」の中に1と言う記号がありますが、これを代入演算子と言います。
数学の「=」とは関係ありません。
代入演算子は右辺のデータを左辺に入れる役割があります。
例で説明しますとaと言う変数に2と言うデータを入れるという意味です。
この入れる作業を「代入」といいます。
注意してほしいことは以下のように同じ変数に他のデータを代入してしまうと後から代入したデータで上書きされますので注意してください。1 つまり、結果は「変数の値は2です変数の値は20です」となりますが、整数のaに代入されていた2が1の箇所で20に上書きされます。
変数には1つしかデータを入れることができないことを覚えておいてください。
ここで変数に関しての補足をしておきます。11 他の入れ方としては以下の構文のように変数の宣言と同時にデータを入れることもできます1 これを変数の初期化と言います。
入れるデータのことを初期値と言います。
例えば先ほどの例は以下のように書き換えることができます。1 どちらの方法でデータを入れても結構です。1 次は先ほどの例の以下の箇所を説明します。1 printfについては以前、説明しましたが、その時には1のようにprintfの中の引数は文字列でした。
しかし、整数を出力させようと思って1と書いても出力することはできません(エラーになります)。
1の3の部分をダブルクォートで囲んで1と書けばエラーにならず出力はできますが、数値をダブルクォートで囲むと整数ではなくなって、文字列として出力されることになります。
では、整数型の数値を整数として出力させるにはどうしたらいいか。
それは例にあるように1という変換指定子を使います。
この例の変換指定子はaの値を1の箇所に置き換えます。1 このように数値などのデータを文字列に変換して表示させたい時に変換指定子を使います。
ここで大事なのは1と書いて出力されるのは変数の中に入っているデータであり、aという変数名が出力されるわけではありません。
つまり、この例ではaに入っている2というデータが出力されます。
つまり、結果は1になりますが、1と出力されるのではありません。

では変換指定子の基本構文について説明します。1 「テンプレート」はダブルクォートで囲んでください。
そして、このテンプレートの中に文字列と変換指定子を自由に組み合わせて記述します。
テンプレートとは「型」と言う意味なので1という型で出力しますという意味です。
変換指定子はたくさんありますが、1int型の数値である整数を出力するときに使います。
基本構文の「変数」の箇所は変数ではなくても、直接数値などを指定してもいいです。1 では他の例をみてみましょう。
これまでの例ではprintfの中の変換指定子は1つでしたが、以下の通り複数の変換指定子を設定できます。1 変数と「変換指定子」の対応関係は以下の通りです(スペースの都合でprintfの引数を2行で書いていますが、1行で書いていただいても結構です)。1 テンプレートの一番左側の変換指定子と変数側の一番左の変数は対応関係にあります。
テンプレートの真ん中の変換指定子と変数側の真ん中の変数は対応関係にあります。
テンプレートの一番右の変換指定子と変数側の一番右の変数は対応関係にあります。
変数と変換指定子の数は合わせて書いてください。

カテゴリー
Perl

文字列に関する関数を知ろう

この章では文字列に関する関数について説明します。
先ほど配列に関する関数を説明しましたが、今度は文字列を操作する関数について説明します。1 substr関数は指定した文字列の中の一部分を取得したり、文字列の一部を他の文字列に置換します。
第1引数は対象となる文字列を指定し、第2引数は文字列の中の開始位置を指定し、第3引数は切り出す文字の長さです。
第3引数を省略した場合は文字列の末尾までを取り出します。 
第4引数を指定すると1番目から3番目の引数によって指定した文字列を第4引数の文字列で置き換えます。
では例をみてみましょう。1 この例では第3,第 4引数を省略しているので、第2引数で指定した位置から、最後までを取得して$n1に代入しています。
位置の指定方法で気を付けることは先頭の文字の位置は0であり、1から数えるのではないので、注意してください。
$moji1の文字列は一部をsubstrで取り出されても、$moji1自体は変化しません。
つまり、最後に1で出力しても1が出力されます。
11次の例をみてみましょう。
1第 2引数にマイナスの値を入れた場合には以下の図のように末尾から数えます。
マイナスの値を入れた位置から末尾までを取得して$n2に代入しています。11
次の例をみてみましょう。
1Americaの先頭から2番目の文字から2つを取得します。
第2引数が2なので2個切り出しています。
結果は「me」です。
次の例をみてみましょう。
1franceの先頭から2番目の文字から、末尾から2番目の文字までの間の文字列を取得します。
このように第3引数にマイナスを指定すると第2引数で指定した位置から第3引数で指定した位置までの間の文字列を取り出すことが出来ます。
結果は「ran」です。
次の例をみてみましょう。1 4番目の引数には置き換える文字列を指定します。
置き換えの文字列は2番目と3番目の引数によって指定した文字列です。
1番目の引数は文字列が代入されている変数でなければいけません。
それは置きかえられた新しい文字列が入れられるようにするためです。
これは元の文字列の内容が書き替わるので注意してください。
結果は以下の通りです。
「hawai is fun」
次はrand関数について説明します。1 「返される乱数の最大値」を入力すると0から指定した数値未満までの乱数を返します。
引数を省略すると、0から1までの値を返します。
また、返される数値には小数点が含まれます。
では例をみてみましょう。1 乱数なのでどの数値が出力されるのかはそのたびに変わります。
この例の場合には引数に4を指定したので、4までの数値が更新するごとに変わります。
例えば小数点を含む値なので1などと出力されます。
この例は
「print rand(4);」と書いても同じ意味になります。

次の例をみてみましょう。1 引数を省略した場合には0から1までの値を返しますので、例えば1などと出力されます。
次の例をみてみましょう。1 小数点を含む数値の整数の部分だけを取り出すにはrand関数の前にintを付けます。
例えば1という小数点ではなく2と整数が出力されます。
rand関数の前あるintは int関数と言いまして小数点以下を無視して、整数部分だけを返します。
では以下のint関数についての例を見てみましょう。
以下の例は変数に入っている小数点以下を切り捨てるので、結果は0です。1 ではrand関数を使っておみくじを作ってみましょう。1 rand関数を使うと更新ボタンを押すごとに乱数値が変わるので、占いを作ることが出来ます。
この例ではrand関数の戻り値を配列の添え字にしています。
この例の場合にはint関数は付けても付けなくてもどちらでも結構です。
なぜなら、配列の添え字は整数部分しか入れられないので、自動で小数点以下を切り捨ててくれるからです。

次にucfirst関数について説明します。1 ucfirst関数は対象の文字列の先頭の文字を大文字に変換した文字列を返します。1 結果は「America」になります。
以下のように書いても同じ意味になります。1 すべての文字を大文字に変換したい場合はuc関数を使います。
11結果は「AMERICA」になります。
対象の文字列の先頭を小文字に変換したい場合はlcfirst関数を使います。
11結果は「book」になります。
対象となる文字列を全て小文字に変換するにはlc関数を使います。
11結果は「world」になります。

次はindex関数について説明します。
1index関数は対象となる文字列の中に第2引数で指定した文字列が含まれているかどうかを検索し、含まれている場合は最初に見つかった位置を数値で返します。
見つからなかった場合は「-1」を返します。
第 3引数の1を省略すると0を指定したとみなされます。1 第 3引数を省略しているので検索開始位置は0になります。
この例ではtoは前から3つ目の所にあるので3が返されます。
toが2つありますが、最初に見つかった位置を返します。
以下の例のように第3引数に例えば5を入れるとkyotokyotoのなかの5番目の位置から右に検索されるので結果は8になります。
11rindex関数は対象となる文字列の中に第2引数で指定した文字列が含まれているかどうかを検索し、含まれている場合は最後に見つかった位置を数値で返します。
第3引数を省略した場合は最後の文字を指定したとみなされます。検索する文字が見つからない場合は「-1」を返します。
では例をみてみましょう。
1toが2つありますが、rindex関数は検索の結果、最後に見つかった位置を数値で返しますので結果は8になります。
次の例をみてみましょう。
1この例の場合は第3引数に3を指定しているので、対象となる文字列であるkyotokyotoの中の前から3番目の文字以内でtoを検索します。
結果は「3」になります。
1次は文字列の長さを測る関数lengthについて説明します。
1では例をみてみましょう。
1結果は以下の通りです。
長さは5
長さは9
UTF-8は英数字は1バイトで数えて、日本語は3バイトで数えるようになっています。
英数字の場合はバイト数と文字数は同じになります。
文字コードによりバイト数は違うので注意してください。