合計 ← 0 i を 1 から 10 までかえて 合計 ← 合計 + i 合計を出力
ふつうの言葉で記述する利点として, 特別な作図ツールをつかわなくても テキストエディタで設計作業ができることがある. また, PAD 同様, 上記の設計結果をプログラムに変換するのも非常に簡単である.
さて, この方法を使って, 前回の小テストの解法を紹介しておこう. ここでは, 「段階的に詳細化する」という方法でいく. まず, 全体の処理の大枠を決めて, それをだんだん詳細にしていくのである.
まず, 最初のステップ:
データを配列に読み込む 0 から 9 までの数値の出現回数をそれぞれ求める 出現回数が最多のものを求める 結果を出力する
データの番号 j を 0 から 9 まで変えながら 数値を一つ読み込み データ の j番目 ← 読み込んだ数値 数値 i を 0 から 9 まで変えながら i の出現回数 ← 0 データの番号 j を 0 から 9 まで変えながら データ の j番目 が i だったら i の出現回数 ← i の出現回数 + 1 最多出現回数 ← 0 数値 i を 0 から 9 まで変えながら i の出現回数 > 最多出現回数 ならば 最多出現回数 ← i の出現回数 最多出現数値 ← i 最多出現数値と最多出現回数を出力する
#include <stdio.h> int main(); int main(){ int i; int j; int data[10]; int occur[10]; int max; int max_data; char line[80]; for(j=0; j<10; j++){ printf("data? "); gets(line); data[j] = atoi(line); } for(i=0; i<10; i++){ occur[i] = 0; for(j=0; j<10; j++){ if(data[j] == i){ occur[i] ++; } } } max = 0; for(i=0; i<10; i++){ if(occur[i] > max){ max = occur[i]; max_data = i; } } printf("%d occured %d times.\n", max_data, max); }
数値 i を 0 から 9 まで変えながら i の出現回数 ← 0 データの番号 j を 0 から 9 まで変えながら i ← データ の j番目 i の出現回数 ← i の出現回数 + 1