第10講 for文以外の繰り返し(ループ)処理
第6話 do...while文による末項が指定された値以下である等差数列の和

末項が指定された値以下の最大値の場合の和
cx
を実現するプログラムプログラム例
#include<iostream>
using namespace std;
int f1(int h,int j,int k);
int f2(int h,int j,int k);
int f3(int h,int j,int k);
long f4(int h,int j,int k);
void main(){
   int h,j,k,i,w; //hは初項、jは末項が超えない値、kは公差
   cout<<"初項は?"<<endl;
   scanf("%d",&h);
   cout<<"末項が超えない値は?"<<endl;
   scanf("%d",&j);
   cout<<"公差?"<<endl;
   scanf("%d",&k);
   cout<<"末項が指定された値以下である等差数列の1乗の和="<<f1(h,j,k)<<endl;
   cout<<"末項が指定された値以下である等差数列の2乗の和="<<f2(h,j,k)<<endl;
   cout<<"末項が指定された値以下である等差数列の3乗の和="<<f3(h,j,k)<<endl;
   cout<<"末項が指定された値以下である等差数列の4乗の和="<<f4(h,j,k)<<endl;
}

int f1(int h,int j,int k){
   int i,w;
   i=h;
   w=0;
   do{
     w=w+i;
     i=i+k;
     if(i>j)break;
   }while(1);
   return(w);
}

int f2(int h,int j,int k){
   int i,w;
   i=h;
   w=0;
   do{
     w=w+i*i;
     i=i+k;
     if(i>j)break;
   }while(1);
   return(w);
}

int f3(int h,int j,int k){
   int i,w;
   i=h;
   w=0;
   do{
     w=w+i*i;
     i=i+k;
     if(i>j)break;
   }while(1);
   return(w);
}

long f4(int h,int j,int k){
   int i;
   long w;
   i=h;
   w=0;
   do{
     w=w+i*i;
     i=i+k;
     if(i>j)break;
   }while(1);
   return(w);
}

結局while文でもdo...while文でも、
工夫すればはじめの値から終わりの値以下まで加えていく計算も、
はじめの値から合計の上限値を超えない範囲で加えていく計算も、
実現できます。
ただ、問題によっては前判定であるwhile文よりdo...while文の方が向いている場合もあるということですし、
その逆も言えます。
ですから、問題に応じて使い分ければよいことになります。

では、while文による2次元ループ、do...while文による2次元ループに挑戦しましょう。
それらによって、実行画面が
yu
となるようにプログラミングして下さい。
ただし、mainで
   int **x=(int **)malloc(sizeof(int)*5);
   for(char i=0;i<5;i++)x[i]=(int *)malloc(sizeof(int)*5);
   int **y=(int **)malloc(sizeof(int)*5);
   for(char i=0;i<5;i++)y[i]=(int *)malloc(sizeof(int)*5);
2次元配列x[5][5]に相当するものを関数f1に送り、
f1でデータを作り、
2次元配列x[5][5]、y[5][5]を関数f2におくり、
配列xをデータを転置(縦と横を反対にすること)して、
配列yに代入します。
さらに、配列xのデータも配列yのデータも
同じ表示関数hを使い表示させるものとします。
関数f1、関数f2、関数hの2次元ループはすべて
while文またはdo...while文で行って下さい。


第5話へ 第7話へ


a

魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
VC++ C言語 C++ 入門 初心者 基礎から応用まで
本サイトトップへ