🌻天国にいけるC++言語入門🌻 進化し続けるオブジェクト指向プログラミング ver3.2307
構造体型の配列の簡単な初期化法と格納した数値データを効率よくcout出力表示する方法について考察してみます
構造体型の配列の簡単な初期化法と格納した数値データを効率よくcout出力表示する方法について考察してみます
てんC
「構造体型の配列宣言を行い
複数(今の場合2つ)の構造体変数のメンバ変数に
格納されている数値データを
構造体型の配列に格納することができました。」
ソーラー 「やった、てんC
ようやく理解できた。
さきほどのエピソードタイトル
格納した数値データを効率よくprintf表示する
構造体型の配列宣言を行い 構造体の配列を作製して
複数の構造体変数のメンバ変数に格納された数値を
構造体型の配列に格納する方法
意味fm明だったから あせったよ
」
てんC「ソーラーさん、まだまだこれからです。(*´▽`*)
先程のプログラム⇩は
#include <iostream>
using namespace std;
typedef struct Cube{
int no;
float tate;
float yoko;
float takasa;
}Cube;
int main()
{
Cube str[2];
str[0].no=1;
str[0].tate=2.0;
str[0].yoko=3.0;
str[0].takasa=4.0;
str[1].no=2;
str[1].tate=4.0;
str[1].yoko=5.0;
str[1].takasa=6.0;
cout<<str[0].no<<"\n";
cout<<str[0].tate<<"\n";
cout<<str[0].yoko<<"\n";
cout<<str[0].takasa<<"\n";
cout<<str[1].no<<"\n";
cout<<str[1].tate<<"\n";
cout<<str[1].yoko<<"\n";
cout<<str[1].takasa<<"\n";
return 0;
}
ビルド実行結果
1
2
3
4
2
4
5
6
🍊for文を用いて🍊
以下のプログラムのように
#include <iostream>
using namespace std;
typedef struct Cube {
int no;
float tate;
float yoko;
float takasa;
}Cube;
int main()
{
Cube str[2];
str[0].no = 1;
str[0].tate = 2.0;
str[0].yoko = 3.0;
str[0].takasa = 4.0;
str[1].no = 2;
str[1].tate = 4.0;
str[1].yoko = 5.0;
str[1].takasa = 6.0;
int i;
for (i = 0; i<2; i++) {
cout<<str[i].no<<"\n";
cout<<str[i].tate<<"\n";
cout<<str[i].yoko<<"\n";
cout<<str[i].takasa<<"\n";
/*ここの部分ですね
for文を用いてcout出力表示の命令文の簡略化に成功しました。*/
}
return 0;
}
ビルド実行結果
1
2
3
4
2
4
5
6
🍓cout出力表示の命令文を簡略化することができました 🍓
ソーラー「
str[0].no=1;
str[0].tate=2.0;
str[0].yoko=3.0;
str[0].takasa=4.0;
str[1].no=2;
str[1].tate=4.0;
str[1].yoko=5.0;
str[1].takasa=6.0;
この部分は簡略化できないかな?」
てんC「確かに
str[0].no=1;
str[0].tate=2.0;
str[0].yoko=3.0;
str[0].takasa=4.0;
str[1].no=2;
str[1].tate=4.0;
str[1].yoko=5.0;
str[1].takasa=6.0;
のように
立方体cube1の数値データ
NO 1
縦 2.0
横 3.0
高さ 4.0
立方体cube2の数値データ
NO 2
縦 4.0
横 5.0
高さ 6.0
を格納していくのは
手間ですね
そうなんです。簡略化表記する方法はあるのです。
Cube str[2];
str[0].no=1;
str[0].tate=2.0;
str[0].yoko=3.0;
str[0].takasa=4.0;
str[1].no=2;
str[1].tate=4.0;
str[1].yoko=5.0;
str[1].takasa=6.0;
の部分を
簡略化して
Cube str[2]={{1,2.0,3.0,4.0},{2,4.0,5.0,6.0}};
と表記することができます。
このように表記した場合でも
Cube str[2]により
生成される
配列変数
str[0].no
str[0].tate
str[0].yoko
str[0].takasa
str[1].no
str[1].tate
str[1].yoko
str[1].takasa
に数値データを格納することができます。
そして
{{1,2.0,3.0,4.0},{2,4.0,5.0,6.0}}
の中の
{1,2.0,3.0,4.0}
の
1
2.0
3.0
4.0
は
str[0]のメンバ変数
str[0].no
str[0].tate
str[0].yoko
str[0].takasa
に格納され
{2,4.0,5.0,6.0}
の
2
4.0
5.0
6.0
は
str[1]のメンバ変数
str[1].no
str[1].tate
str[1].yoko
str[1].takasa
に格納されます。
さらに
構造体Cube型の配列
Cube str[2]の[]のなかの要素数2は省略して
Cube str[]={{1,2.0,3.0,4.0},{2,4.0,5.0,6.0}};
と表記することができます。
{{1,2.0,3.0,4.0},{2,4.0,5.0,6.0}}のなかの
{1,2.0,3.0,4.0}👈1
{2,4.0,5.0,6.0}👈2
の数にあわせて
str[]の要素数は2と設定されます。
この表記法をもちいてプログラムをシンプルに書き換えると
#include <iostream>
using namespace std;
typedef struct Cube {
int no;
float tate;
float yoko;
float takasa;
}Cube;
int main()
{
Cube str[] = { { 1,2.0,3.0,4.0 },{ 2,4.0,5.0,6.0 } };
int i;
for (i = 0; i<2; i++) {
cout<<str[i].no<<"\n";
cout<<str[i].tate<<"\n";
cout<<str[i].yoko<<"\n";
cout<<str[i].takasa<<"\n";
/*ここの部分ですね
for文を用いてprintf表示の命令文の簡略化に成功しました。*/
}
return 0;
}
ビルド実行結果
1
2
3
4
2
4
5
6
ソーラー 「めっちゃ😺、プログラムが短くなった。」
てんC「そうですね。
この構造体型の配列に数値データを格納する方法は
大変重宝するとおもわれますの。
では
再びfor文の部分にもどります。
格納した全てのデータを
int i;
for (i = 0; i<2; i++) {
cout<<str[i].no<<"\n";
cout<<str[i].tate<<"\n";
cout<<str[i].yoko<<"\n";
cout<<str[i].takasa<<"\n";
}
この7行で表示できるのは
大変効率がよいのです。
立方体が
cube1
cube2
cube3
.
.
.
.
.
cube1000000
と1000000個あっても
全ての立方体の
NO
縦
横
高さ
の
データを表示するのに
次の命令文
int i;
for(i=0;i<100000;i++){
cout<<str[i].no<<"\n";
cout<<str[i].tate<<"\n";
cout<<str[i].yoko<<"\n";
cout<<str[i].takasa<<"\n";
}
の
7行で済んでしまうのです。
🍒このように
🍓簡単に多種類の整数値や実数値データをメモリに格納し🍓
🍊簡単に格納された数値データをcout表示できる🍊
これこそが さきのエピソードでものべましたように
(*´▽`*)😊(*´▽`*)😊(*´▽`*)😊(*´▽`*)😊(*´▽`*)😊
構造体型の配列宣言を行い
構造体の配列を作製して
複数の構造体変数のメンバ変数に格納された数値データを
構造体型の配列に格納する
(*´▽`*)😊(*´▽`*)😊(*´▽`*)😊(*´▽`*)😊(*´▽`*)😊
理由なのです。🍒
構造体の配列をつかえば
コンピュータに格納された
市の 'すべての住人' の生年月日などの数値データも
わずかな命令文ですべて表示することができます。」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます