• 締切済み

フローチャートの書き方

要素数がnである配列aの要素の最大値を求めるアルゴリズムのループ端によるフローチャートを完成せよ(前判定繰返し) max =a[0] i=1; while i<n do{ if(a[i]>max)max=a[i]; i++; } フローチャートでかくとどうなりますか?

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

「『ループ端によるフローチャート』だぁ? 何寝言言ってんだおまえ」 と言われるのがオチじゃないかなぁ>#1. フローチャートで書く前に, このアルゴリズムが何をしているのか日本語で手順を書いてみるといいよ.

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

そりゃそうと、nはどこからあたえられるの?

  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.1

すっきりする。 大学の教授にでも聞けばいいんじゃないかな?

関連するQ&A

  • データ構造とアルゴリズムの問題です

    要素数がnである配列aの要素の最大値を求めるアルゴリズムのループ端によるフローチャートを完成せよ(前判定繰返し) max =a[0] i=1; while i<n do{ if(a[i]>max)max=a[i]; i++; } a[0] → max 1 → i 前判定繰返し □ | yes a[i]□max-----| |        □      NO i+1 → i 前判定繰返し □の中を埋めるんですが教えてください

  • データ構造とアルゴリズムの問題です

    要素数がnである配列aの要素の合計を求めるアルゴリズムのループ端によるフローチャートを完成せよ(後判定繰返し) sum =a[0] i=1; do{sum=sum+a[i]; i++; }while i<n; a[0] → sum 1 → i 後判定繰返し | □→sum; i+1 → i | □ 後判定繰返し □の中を埋めるんですが教えてください

  • このフローチャートがわかりません><

    あらかじめ値が格納されている配列t(要素数:10個)から、最大値を求めるフローチャートと最小値を求めるフローチャートをそれぞれ作成した。空欄を埋めなさい。 横書きですいません>< 開始-□-□-ループ□-◇-cnt+1→1-ループ-min出力-終了 というフローチャートです。 □◇が空欄で◇は判断記号です。 フローチャートをまっすぐ進むとイエス、曲がるとノーとなります。 解説できる方いましたらよろしくお願いします。

  • フローチャートを教えてください

    2.配列A(i),i=0,1,2…のm個の要素の平均を計算するアルゴ リズムを流れ図(flowchart)で表現したい。(a),(b)に入るべき 条件及び処理を書け。なおmは1以上で,mの要素はいずれも正数で ある。またA(m+1)に0が格納されているものとする。      開始      |     0→i      |     0→sum ――→ | |   ( a )―――――――――― |    |no          | | A(i)+sum→sum      sum/i→AVE |   ( b )          | |    |          AVEを表示 ――――             |                 終了  (注)四角やひし形は省略させていただきます。 これで (b)は i+1=i とわかったのですが、 (a)がどうし てもわかりません  本当に困っています どうか心優しい方教えてください。お願い します。

  • フローチャート

    フローチャートについてです 配列テーブル(要素数10、指標i)に格納されている負の値以外をPANSに合計し、平均を求めよと言う問題なのですが [ ] に何が入るかが分かりません分かる人がいれば返信ください  START   | [     ] [     ]  10→CNT   |   Loop  i≦0   |  TBL(i):0   |     <   |―――――――――――   |≧               | [        ]    [         ]    |               |  |←―――――――――― i+1→i | Loop | [        ]   |   STOP   

  • perlfaq4 で紹介されている Fisher-Yates 法について

    perldoc の perlfaq4: http://perldoc.jp/docs/perl/5.10.0/perlfaq4.pod の "How do I shuffle an array randomly?" と題された FAQ で紹介されている、配列の要素をシャッフルするアルゴリズム Fisher-Yates 法についての疑問です。 以下一部引用 ---------------- sub fisher_yates_shuffle { my $deck = shift; # $deck is a reference to an array my $i = @$deck; while (--$i) { my $j = int rand ($i+1); @$deck[$i,$j] = @$deck[$j,$i]; } } ---------------- 以上一部引用 このコードを見ると、まず始めに @$deck の要素数を $i に代入し、次に while ループを使って $i をデクリメントしていき、@$deck の末尾の要素から順番にランダムに並べ替えを行っているようですが、$i を前置デクリメントで評価しているため、配列の先頭の要素すなわち $deck -> [0] は並べ替えられないのではないでしょうか ? つまり、$deck -> [0] にアクセスするためには -- $i が 0 にならなければならず、もしそうなった場合 while 条件部で偽と判定されるため、ループが実行されないのではないかということです。 -- $i が 1 となる時点では、$j = int rand ($i+1) つまり $j = int rand (2) で、$j は 0 以上 2 未満の整数、0 か 1 になります。 したがって、この場合も確実に $deck -> [0] にはアクセスできません。 もちろん、$j が偶然 0 になることは有り得ますが、確実に 0 になるわけではなく、確率的に偏ってしまうようなことはないのでしょうか ? おそらく私の見当違いだと思いますが、配列シャッフルのアルゴリズムとして問題ないのでしょうか。ご回答よろしくお願いします。

    • ベストアンサー
    • Perl
  • フローチャート 

    このプログラムのフローチャートを教えてください 1class QNode{ 2 private int min; 3 private int max; 4 private int mid; 5 private int key; 6 private int max2[]; 7 private int[] q; 8 static int k; 9 10 public QNode(int[] c){ 11 q=c; 12 max2=new int[10000]; 13 k=0; 14 } 15 16 public void narabikae(int a,int b){ 17 int tmp=q[a]; 18 q[a]=q[b]; 19 q[b]=tmp; 20 } 21 22 public void quick(int mi,int mx){ 23 24 min=mi; 25 max=mx; 26 max2[k]=mx; 27 28 if(min<max){ 29 mid=(min+max)/2; 30 key=q[mid]; 31 int i=min; 32 int j=max; 33 34 while(true){ 35 while(q[i]<key){ 36 i++; 37 } 38 while(key<q[j]){ 39 j--; 40 } 41 if(j<i) 42 break; 43 44 narabikae(i,j); 45 i++; 46 j--; 47 48 if(j<i) 49 break; 50 } 51 k++; 52 quick(min,j); 53 max=max2[--k]; 54 quick(i,max); 55 } 56 } 57} 58 59public class A1 { 60 61 /** 62 * @param args 63 */ 64 public static void main(String[] args) { 65 66 int[] q={2,8,4,11,15,9,1,13,19}; 67 68 QNode qn=new QNode(q); 69 qn.quick(0,8); 70 71 for(int i=0;i<9;i++){ 72 System.out.print(q[i]+" "); 73 } 74 } 75}

  • フローチャートについて

    import java.util.Scanner; class Test{ public static void main(String[] args){ Scanner stdIn = new Scanner(System.in); System.out.println("1からnまでの和を求めます。"); System.out.print("nの値:"); int n= stdIn.nextInt(); int sum=0; int i=1; while(i<=n){ sum +=i; i++; } System.out.println("1から"+n+"までの和は"+sum+"です。"); } } 1からnまでの和を求めるプログラムで、この画像はそのフローチャートなのですが、 参考書にはsum+i→iと書かれています。 これってsum+i→sumの間違いですか? また、初期化や代入のフローチャートは 代入したい値を左に書いて右矢印にして右に変数を書くのが一般的なのでしょうか?

    • ベストアンサー
    • Java
  • フローチャートお願いします!!!!!

    問題1 入力された10進数の自然数Xを2進数yに変換し出力するプログラムのフローチャートをサブルーチンを含めてすべてかけ。しかし、整数型の変数aから第iビット目(最初を下位ビットとして第0ビットとせよ)を取り出す整数型関数(メソッド)get_bit(a,i)を作成すること。 これのプログラムの作成ができません。お願いします。returna&(1<<n)を使えば大丈夫と思いますが、なかなかうまくできません。JAVAで簡単にわかりやすくすべて書いてください。 問題2 キーボードから自然数nを入力し、1からNまでの和を求め、出力するプログラムのフローチャートをサブルーチンも含めてかけという問題です。これもJAVAでお願いします。

  • 【FORTRAN77】DO WHILE文 これで正しいの?

    まったくさわったことのないFORTRAN77の解読をさせられています。 次のような場合はどうなるのでしょうか? コンパイル・実行できる環境がないので、教えて下さい。 データ数5の実数型配列をA(5)とする。 マイナスのデータは必要ないので、データ数を、今の5つから、マイナスデータを引いた数字に変更したい。 (ここでは、データ数のみを変更するものとします) N = 5 A(1) = -3. A(2) = -5. A(3) = -1. A(4) = 5. A(5) = 3. の時、次の使い方は正しく動くの? DO WHILE (A(N) .LE. 0.) N = N - 1 END DO 最初のWHILEループ N = 1から見ていって、A(1)がマイナスだから、 Nが4になる。 次のWHILEループ ・N = 4になったから、A(4)を見る? ・それともちゃんと順番にA(2)を見る? WHILEループが終わったら、ちゃんとN = 2になっている?