第6講 同じことの横縦の繰り返し(2次元ループ)
第1話 同じことを横縦に繰り返す

同じことの横縦の繰り返し(2次元ループ)を理解していただく手がかりとして、
100以下のランダムな整数を10個生成させるプログラムを組んでみましょう。
入門
ただし、#include<ctime>でctimeをインクルード(読み込み)して、
現在時刻をシード値にキャストすることによって、
毎回異なる結果が出るようにしてください。
c++
さらに、1桁が出ても位置がずれないように、
c言語
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行に渡って、
vc++
ランダムデータを発生させるとなると、
同じことの横縦の繰り返し(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話へ

a

初心者のためのjava 入門 基礎から応用まで
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
VC++入門
VBA入門
専門用語なしのVBA入門
VB入門
初心者のためのEclipseによるJava入門