第6講 同じことの横縦の繰り返し(2次元ループ)
第1話 同じことを横縦に繰り返す
同じことの横縦の繰り返し(2次元ループ)を理解していただく手がかりとして、
100以下のランダムな整数を10個生成させるプログラムを組んでみましょう。
ただし、#include<ctime>でctimeをインクルード(読み込み)して、
現在時刻をシード値にキャストすることによって、
毎回異なる結果が出るようにしてください。
さらに、1桁が出ても位置がずれないように、
1桁の場合は04のように表示させてください。
プログラム例は例によって30行下。
プログラム例
#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
int main(){
int i,w;
srand(static_cast<unsigned int>(time(0)));
for(i=0;i<10;i++){
w=rand()%100;
if(w<10){
cout<<"0"<<w<<" ";
}
else{
cout<<w<<" ";
}
}
cout<<endl;
}
と簡単ですが、
10行に渡って、
ランダムデータを発生させるとなると、
同じことの横縦の繰り返し(2次元ループ)を知らないと、
次のように組むしかありません。
#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
int main(){
int i,w;
srand(static_cast<unsigned int>(time(0)));
for(i=0;i<10;i++){
w=rand()%100;
if(w<10){
cout<<"0"<<w<<" ";
}
else{
cout<<w<<" ";
}
}
cout<<endl;
for(i=0;i<10;i++){
w=rand()%100;
if(w<10){
cout<<"0"<<w<<" ";
}
else{
cout<<w<<" ";
}
}
cout<<endl;
for(i=0;i<10;i++){
w=rand()%100;
if(w<10){
cout<<"0"<<w<<" ";
}
else{
cout<<w<<" ";
}
}
cout<<endl;
for(i=0;i<10;i++){
w=rand()%100;
if(w<10){
cout<<"0"<<w<<" ";
}
else{
cout<<w<<" ";
}
}
cout<<endl;
for(i=0;i<10;i++){
w=rand()%100;
if(w<10){
cout<<"0"<<w<<" ";
}
else{
cout<<w<<" ";
}
}
cout<<endl;
for(i=0;i<10;i++){
w=rand()%100;
if(w<10){
cout<<"0"<<w<<" ";
}
else{
cout<<w<<" ";
}
}
cout<<endl;
for(i=0;i<10;i++){
w=rand()%100;
if(w<10){
cout<<"0"<<w<<" ";
}
else{
cout<<w<<" ";
}
}
cout<<endl;
for(i=0;i<10;i++){
w=rand()%100;
if(w<10){
cout<<"0"<<w<<" ";
}
else{
cout<<w<<" ";
}
}
cout<<endl;
for(i=0;i<10;i++){
w=rand()%100;
if(w<10){
cout<<"0"<<w<<" ";
}
else{
cout<<w<<" ";
}
}
cout<<endl;
for(i=0;i<10;i++){
w=rand()%100;
if(w<10){
cout<<"0"<<w<<" ";
}
else{
cout<<w<<" ";
}
}
cout<<endl;
}
でもこれは縦に同じことを繰り返しています。
繰り返しは人間が行うのではなく、
コンピュータにやらせるべきです。
そこで同じことの横縦の繰り返し=2次元ループが出てくるわけです。
これを使うと、この複雑なプログラムの文章は、
#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
int main(){
int i,j,w;
srand(static_cast<unsigned int>(time(0)));
for(i=0;i<10;i++){
for(j=0;j<10;j++){
w=rand()%100;
if(w<10){
cout<<"0"<<w<<" ";
}
else{
cout<<w<<" ";
}
}
cout<<endl;
}
}
と簡単なものになります。
ですが、今回のプログラムの文章を見て、
『意味が全然わからん!』と心の中で叫んでいる人いっぱいいますよね。
大丈夫ですよ。
次話で詳しく説明します。
第5講第8話へ 第2話へ
初心者のためのjava 入門 基礎から応用まで
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
VC++入門
VBA入門
専門用語なしのVBA入門
VB入門
初心者のためのEclipseによるJava入門