複数の立方体の数値データをメモリに格納、それらの数値データを”文章”にくみこんでコマンドプロンプト画面にprintf出力表示してみましょう
アレサ 「さて、さて
数値データ1をメモリに格納
文章に組み込んでコマンドプロンプト画面にprintf出力表示し
さらに
数値データ1から10をメモリに格納
文章に組み込んでコマンドプロンプト画面にprintf出力表示し
そして
さらに
立方体cube1
縦1.0
横2.0
高さ3.0
の数値データをメモリに格納、
文章に組み込んでコマンドプロンプト画面にprintf出力表示してきました
素敵な4つの
🌞 データ(数値、文字)のいれものさん 🌞
変数
配列
構造体
構造体の配列
さんたち
今日のお題は・・・・・
立方体cube1
縦1.0
横2.0
高さ3.0
立方体cube2
縦4.0
横5.0
高さ6.0
立方体cube3
縦7.0
横8.0
高さ9.0
の数値データをメモリに格納、
その数値データを
🍑🍑🍑文章に組み込んで🍑🍑🍑
立方体cube1は縦1.0、横2.0、高さ3.0の大きさです
立方体cube2は縦4.0、横5.0、高さ6.0の大きさです
立方体cube3は縦7.0、横8.0、高さ9.0の大きさです
と
コマンドプロンプト画面に
printf出力表示していただきたいと思いま~す。😊」
ソーラー「いやぁ 壮観だね~」
アレサ「さあ
変数
配列
構造体
構造体の配列 さんでは
どのような 違いがプログラムにでてくるのでしょうか?
楽しみです」
配列「さあ、数値データ、こい~こい~」
アレサ「ふふふっ 配列さん、いつも元気ですの。
それでは
1人目の方 変数さん、お願いします。」
変数「それでは、変数いきま~す。」
#include <stdio.h>
int main(void)
{
float a=1.0;
float b=2.0;
float c=3.0;
float d=4.0;
float e=5.0;
float f=6.0;
float g=7.0;
float h=8.0;
float i=9.0;
printf("立方体cube1は縦%f、横%f、高さ%fの大きさです\n",a,b,c);
printf("立方体cube2は縦%f、横%f、高さ%fの大きさです\n",d,e,f);
printf("立方体cube3は縦%f、横%f、高さ%fの大きさです\n",g,h,i);
return 0;
}
コンパイル結果
立方体cube1は縦1.000000、横2.0000000、高さ3.000000の大きさです
立方体cube2は縦4.000000、横5.0000000、高さ6.000000の大きさです
立方体cube3は縦7.000000、横8.0000000、高さ9.000000の大きさです
変数「どお~う いい感じ?」
アレサ「はいっ、変数さん、数値データの格納も
数値データを文章に組み込んでのprintf出力表示
大変分かりやすいのですの
今日は 日頃のお働きに感謝して
私がお好み焼きを目の前で作ってまいります。」
変数 「あっ鉄板があらわれた。」
アレサ 「あつあつをお召し上がりください
その場でご賞味いただけます。
ごゆっくりとお
ごっついお好み焼きがジュージューと
音を立てながら焼きあがる。
変数 「お好み焼きをいただきま~す。はぐっはぐ
こんなお料理までたべさせてもらって~~~💖
し・あ・わ・せ😝」
アレサ「お次は
配列さ~ん、 お願いします。」
配列 「 数値、数値 数値、数値、数値、数値データ 」
#include <stdio.h>
int main(void)
{
float str[3];
str[0]=1.0;
str[1]=2.0;
str[2]=3.0;
float str1[3];
str1[0]=4.0;
str1[1]=5.0;
str1[2]=6.0;
float str2[3];
str2[0]=7.0;
str2[1]=8.0;
str2[2]=9.0;
/*このような簡略化表現もありますの
float str[]={1.0,2.0,3.0};
float str1[]={4.0,5.0,6.0};
float str2[]={7.0,8.0,9.0};
*/
printf("立方体cube1は縦%f、横%f、高さ%fの大きさです\n",str[0],str[1],str[2]);
printf("立方体cube2は縦%f、横%f、高さ%fの大きさです\n",str1[0],str1[1],str1[2]);
printf("立方体cube3は縦%f、横%f、高さ%fの大きさです\n",str2[0],str2[1],str2[2]);
return 0;
}
コンパイル結果
立方体cube1は縦1.000000、横2.0000000、高さ3.000000の大きさです
立方体cube2は縦4.000000、横5.0000000、高さ6.000000の大きさです
立方体cube3は縦7.000000、横8.0000000、高さ9.000000の大きさです
アレサ「お見事です
配列さん そんなあなたに今日は
ミートスパゲッティをお作りさせていただきました。」
配列 「あっありがと
つい数値データを格納したくて先走ることがおおいんだけど・・・
検証たのしかったね。
くるくるっと
おっ美味しい~~」
アレサ
「ピザとサンドウィッチも手作りいたしました。
配列
「
ああ~
いい~
うう~
嬉しいです。💖」
アレサ「配列さん、ありがとう」
アレサ 「では次の方
構造体さん お願いします。」
構造体 「
今回のお題は
立方体cube1
縦1.0
横2.0
高さ3.0
立方体cube2
縦4.0
横5.0
高さ6.0
立方体cube3
縦7.0
横8.0
高さ9.0
の数値データを目盛りに格納、
文章に組み込んで
コマンドプロンプト画面にprintf出力表示するんだね。
おまかせ、(^_^)/おまかせ\(^o^)/
#include <stdio.h>
typedef struct SubetenosuutiData{
float a;
float b;
float c;
float d;
float e;
float f;
float g;
float h;
float i;
}SubetenosuutiData;
int main(void){
SubetenosuutiData subetenosuutiData;
subetenosuutiData.a=1.0;
subetenosuutiData.b=2.0;
subetenosuutiData.c=3.0;
subetenosuutiData.d=4.0;
subetenosuutiData.e=5.0;
subetenosuutiData.f=6.0;
subetenosuutiData.g=7.0;
subetenosuutiData.h=8.0;
subetenosuutiData.i=9.0;
/*この構造体変数subetenosuutiDataの初期化の簡略化表現は
SubetenosuutiData subetenosuutiData={1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0};
となります*/
printf("立方体cube1は縦%f、横%f、高さ%fの大きさです\n",subetenosuutiData.a,subetenosuutiData.b,subetenosuutiData.c);
printf("立方体cube2は縦%f、横%f、高さ%fの大きさです\n",subetenosuutiData.d,subetenosuutiData.e,subetenosuutiData.f);
printf("立方体cube3は縦%f、横%f、高さ%fの大きさです\n",subetenosuutiData.g,subetenosuutiData.h,subetenosuutiData.i);
return 0;
}
コンパイル結果
立方体cube1は縦1.000000、横2.0000000、高さ3.000000の大きさです
立方体cube2は縦4.000000、横5.0000000、高さ6.000000の大きさです
立方体cube3は縦7.000000、横8.0000000、高さ9.000000の大きさです
ソーラー「今度は
構造体SubetenosuutiDataに
変数宣言
float a;
float b;
float c;
float d;
float e;
float f;
float g;
float h;
float i;
を取り込んできんだね
これで、この構造体の構造体変数宣言
SubetenosuutiData subetenosuutiData;
をおこない
構造体変数
subetenosuutiData
を作製すると
構造体変数
subetenosuutiDataは
9つのメンバ変数
subetenosuutiData.a
subetenosuutiData.b
subetenosuutiData.c
subetenosuutiData.d
subetenosuutiData.e
subetenosuutiData.f
subetenosuutiData.g
subetenosuutiData.h
subetenosuutiData.i
をもつことになります。
ですので
9個の実数値を
構造体変数subetenosuutiDataの
メンバ変数に
subetenosuutiData.a=1.0;
subetenosuutiData.b=2.0;
subetenosuutiData.c=3.0;
subetenosuutiData.d=4.0;
subetenosuutiData.e=5.0;
subetenosuutiData.f=6.0;
subetenosuutiData.g=7.0;
subetenosuutiData.h=8.0;
subetenosuutiData.i=9.0;
と数値データを
格納できるようになるんだね。」
アレサ「今回、構造体さんは、
構造体変数の9つのメンバ変数に格納された数値データを
9つの%f出力変換指定子をつかって
ひとつずつ文章に組み込んでprintf出力表示されました。」
構造体 「こんなんでよかったかな
僕はたくさんの変数をメンバ変数として格納しているけど
ようは変数をまとめてるだけで
メンバ変数に格納されている数値データを引き出すには
printf("立方体cube1は縦%f、横%f、高さ%fの大きさです\n",subetenosuutiData.a,subetenosuutiData.b,subetenosuutiData.c);
printf("立方体cube2は縦%f、横%f、高さ%fの大きさです\n",subetenosuutiData.d,subetenosuutiData.e,subetenosuutiData.f);
printf("立方体cube3は縦%f、横%f、高さ%fの大きさです\n",subetenosuutiData.g,subetenosuutiData.h,subetenosuutiData.i);
の命令文をみてもわかるように
ひとつずつ
構造体変数subetenosuutiDataの
メンバ変数に格納されている数値データを%f出力変換指定子をつかって
printf出力表示しないといけない。
これは
普通のfloat型の変数に格納されている数値データを
%f出力変換指定子をつかって
printf出力表示するときと
全く同じかな。
だから
構造体を作製し
構造体変数のメンバ変数に数値データを格納しても
格納された数値データを取り出す手間は
普通の変数から数値データを取り出すときと変わらないんだ~」
アレサ「ありがとうございますの
構造体さん
今日は
熱々の麻婆豆腐とチャーハン
それにラーメンをおもちいたしました。」
構造体さん 「お寿司につづいて
この ラーメン んまいねえ。
どうやって こんなにおいしくつくったの
今まで食べたことない
麻婆豆腐もまるで違う
この料理のつくり方の方が数値データ格納より、
ずぅ~っと神秘なんじゃない?😊」
アレサ「喜んでいただけて 嬉しいですの」
アレサ「ではでは
お次は構造体の配列さん、お願いします」
構造体の配列さん
「
立方体cube1
立方体cube2
立方体cube3・・・か・・・
ついにきた\(^o^)/・・・
今度は
構造体の配列宣言で
構造体型の配列変数を3つ作りますよ~
#include <stdio.h>
typedef struct SubetenosuutiData {
float a;
float b;
float c;
}SubetenosuutiData ;
int main(void)
{
SubetenosuutiData str[3];
/*構造体SubetenosuutiData型の配列変数str[0],str[1],str[2]を作製しました。
⇩そしてstr[0],str[1],str[2]の各メンバ変数に立方体cube1,cube2,cube3の数値データを格納していきます*/
str[0].a=1.0;
str[0].b=2.0;
str[0].c=3.0;
str[1].a=4.0;
str[1].b=5.0;
str[1].c=6.0;
str[2].a=7.0;
str[2].b=8.0;
str[2].c=9.0;
/*この初期化の簡略化表現は
SubetenosuutiData str[]={{1.0,2.0,3.0},{4.0,5.0,6.0},{7.0,8.0,9.0}};
となります。
str[0]、str[1]、str[2]のメンバ変数に格納される数値データごとに{}が{}の中に
入れ子になっていますね*/
int i=0;
for(i=0;i<3;i++)
printf("立方体cube%dは縦%f、横%f、高さ%fの大きさです\n",i+1,str[i].a,str[i].b,str[i].c);
return 0;
}
コンパイル結果
立方体cube1は縦1.000000、横2.0000000、高さ3.000000の大きさです
立方体cube2は縦4.000000、横5.0000000、高さ6.000000の大きさです
立方体cube3は縦7.000000、横8.0000000、高さ9.000000の大きさです
アレサ「構造体型の配列さんは
構造体型の配列宣言
Suutinoiremono str[3];
により
構造体型の配列変数
str[0],str[1],str[2]を作りだし
str[0],str[1],str[2]のなかの
各メンバ変数
str[0].a
str[0].b
str[0].c
str[1].a
str[1].b
str[1].c
str[2].a
str[2].b
str[2].c
に
str[0].a=1.0;
str[0].b=2.0;
str[0].c=3.0;
str[1].a=4.0;
str[1].b=5.0;
str[1].c=6.0;
str[2].a=7.0;
str[2].b=8.0;
str[2].c=9.0;
と
立方体cube1,cube2,cube3の数値データを格納、
そして
🐎for文をつかってprintf文を簡単にまとめて記述をおこない🐎
格納された数値データをprintf出力表示をされたのです。」
ソーラー「ついにきた。
変数
配列
構造体
までは
格納された数値の
printf出力表示は似たような方法で同じくらい
手間をかけて行われていたけど
🌰構造体型の配列🌰
ここで
格納された数値データのprintf出力表示方法に違いがでてきた。でてきた。
これなら
たとえ立方体が100000個あっても
100000個すべての数値データを格納後
for文をつかって
int i=0;
for(i=0;i<100000;i++)
printf("立方体cube%dは縦%f、横%f、高さ%fの大きさです\n",i+1,str[i].a,str[i].b,str[i].c);
のように
たった3行で
立方体100000個すべての
縦
横
高さ
の
数値データを”文章に組み込んで”
コマンドプロンプト画面にprintf出力表示するプログラムを
作製できる。
便利だね。やったね。」
アレサ「構造体の配列さん、
素晴らしい技術をみせていただき、ありがとうございました。
今日は3日かけて煮込んだカレーをおもちいたしました。
サラダもご用意いたしております。
さあ、どうぞ」
山盛りごはんにカレーをよそうアレサ。
構造体の配列「いっただきま~~す
カレーをたべることができるなんて・・・
満足、満足 」
アレサ 「構造体の配列さん いつも
お働き下さりありがとうございます。
ささやかなお礼でしたの。」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます