フローチャートの理解が困難?10個の短いプログラムを解説

このQ&Aのポイント
  • フローチャートが分かりません。学校でレゴのロボットを動かしてるんですが、フローチャートが分かりません。10個の短いプログラムなんですが、今まで習ってきたプログラムと少し違うような気が・・・文字で説明できる方がいたら教えてください!!!
  • #フローチャート #プログラム #レゴロボット
  • 学校でレゴのロボットを操作しているが、フローチャートの理解に困難を感じている。10個の短いプログラムを扱っており、これまでのプログラムとの違いを感じている。文字でわかりやすく説明してくれる方がいれば、教えてほしい。
回答を見る
  • ベストアンサー

フローチャートが分かりません

学校でレゴのロボットを動かしてるんですが、フローチャートが分かりません。10個の短いプログラムなんですが、今まで習ってきたプログラムと少し違うような気が・・・ 文字で説明できる方がいたら教えてください!!! (1) #define MOVE_TIME 100 #define TURN_TIME 85 task main() { OnFwd(OUT_A+OUT_C); Wait(MOVE_TIME); OnRev(OUT_C); Wait(TURN_TIME); Off(OUT_A+OUT_C); } (2) #define MOVE_TIME 100 #define TURN_TIME 85 task main() { repeat(4) { OnFwd(OUT_A+OUT_C); Wait(MOVE_TIME); OnRev(OUT_C); Wait(TURN_TIME); } Off(OUT_A+OUT_C); } (3) #define MOVE_TIME 100 #define TURN_TIME 85 task main() { repeat(10) { repeat(4) { OnFwd(OUT_A+OUT_C); Wait(MOVE_TIME); OnRev(OUT_C); Wait(TURN_TIME); } } Off(OUT_A+OUT_C); } とりあえず3つ書いてみました。

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

こうしろうのMindStorms日記,第27話・第28話をご紹介。 http://itpro.nikkeibp.co.jp/article/MAG/20061110/253353/ http://itpro.nikkeibp.co.jp/article/MAG/20061110/253354/ 「今まで習ってきたプログラムと少し違うような」感じで,このコードをあえてフローチャートで表現する方が難しいかも,というのはその通りだと思います。 ちなみにこの こうしろう さん,現在はもう20歳を越えているはずですね。

bonaparto
質問者

お礼

回答ありがとうございます。 こうしろうさん一家はすごいですね^^ 参考にさせていただきます。

関連するQ&A

  • フローチャート

    どのフローを使えばいいのか分かりません! 教えてください!! #define MOVE_TIME 100 #define TURN_TIME 85 { OnFwd(OUT_A+OUT_C); Wait(MOVE_TIME); OnRev(OUT_C); Wait(TURN_TIME); Off(OUT_A+OUT_C); }

  • フローチャート、教えて!

    このプログラムのフローチャートなんですけど・・・。 list P=PIC16F84A INCLUDE "P16F84A.INC" __CONFIG _HS_OSC&_WDT_OFF&_PWRTE_ON ; WCNT EQU 018H ; ORG 0 GOTO START ; ORG 05H ; START BSF STATUS,RP0 MOVLW 03H MOVWF TRISA BCF STATUS,RP0 ; st CALL SPEAKER goto st ; SPEAKER BCF PORTA,2 CALL WAIT2 BSF PORTA,2 CALL WAIT2 RETURN ; WAIT2 MOVLW D'249' ; MOVWF WCNT ; WAIT3 NOP ; NOP ; NOP ; NOP ; NOP ; NOP ; NOP ; DECFSZ WCNT,F ; GOTO WAIT3 ; RETURN ; ; WAIT4 NOP ; DECFSZ WCNT,F ; GOTO WAIT3 ; RETURN ; END ; ちょっと見難いですね、ごめんなさい;; このプログラムなんだけど、自分では良く分からなくて(@@; アセンブラ?だっけこれ、これでフローチャート作ったことないんだよね・・・。 簡単なフローチャート図なら作ったことあるけど、ほんと基本的な物だったからねぇ。 どうか、教えてください!

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

    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
  • フローチャートについて

    H8マイコンでスイッチS1(PORT4-4)が押された場合は、LED1(PORT5-0)、スイッチS2(PORT4-5)が押された場合は、LED2(PORT5-1)、スイッチS3(PORT4-6)が押された場合は、LED3(PORT5-2)、スイッチS4(PORT4-7)が押された場合は、LED4(PORT5-3)が、それぞれ点灯するようなプログラムをつくりました。 #define P4DDR (* (volatile unsigned char *) 0xfffc5) #define P4DR (* (volatile unsigned char *) 0xfffc7) #define P4PCR (* (volatile unsigned char *) 0xfffda) #define P5DDR (* (volatile unsigned char *) 0xfffc8) #define P5DR (* (volatile unsigned char *) 0xfffca) int main(void) { unsigned char sw,ssw; P4DDR = 0x00; /* P4全ビットを入力に設定 */ P4PCR = 0xff; /* P4 MOSプルアップをONにする */ P5DDR = 0xff; /* P5全ビットを出力に設定 */ while (1) { sw = ~P4DR; /* 入力を反転 */ ssw = sw >> 4; /* swを4ビット右にシフトしたものをsswに代入 */ P5DR = ssw; /* sswをP5に出力 */ } return 0; } というプログラムを作ったのですが、フローチャートがどのようになるのかがわからないです。またプログラムが間違っていたら教えてください。

  • javaハノイの塔について

    public class hanoinotou { static void move(int n,int a,int b , int c) { if(n>1) move(n-1,a,c,b); System.out.println("円盤"+n+":"+a+"→"+c); if(n>1) move(n-1,b,a,c);} public static void main(String args[]){ move(3,1,2,3); } } ↑このプログラムの動き方を教えてください よろしくお願いします

  • フローチャート 

    このプログラムのフローチャートを教えてください 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}

  • アルゴリズム フローチャート

    class Node { char value; Node left; Node right; public Node(char value, Node left, Node right) { this.value = value; this.left = left; this.right = right; } public static void main(String[] args) { Node root = new Node('F', new Node('B', new Node('A', null, null), new Node('D', new Node('C',null,null), new Node('E',null,null) ) ), new Node('G', null, new Node('I', new Node('H',null, null), null ) ) ); System.out.println("前順走査"); preorder(root); System.out.println(); System.out.println("中間走査"); inorder(root); System.out.println(); System.out.println("後順走査"); postorder(root); } static void preorder(Node node) { if ( node == null ) return; printNode(node); preorder(node.left); preorder(node.right); } static void inorder(Node node) { if ( node == null ) return; inorder(node.left); printNode(node); inorder(node.right); } static void postorder(Node node) { if ( node == null ) return; postorder(node.left); postorder(node.right); printNode(node); } static void printNode(Node node) { if( node != null ) System.out.print(node.value + " "); } } フローチャートをサブルーチンを含めて教えていただきたいです。 フローチャートだけでもいいです。

  • ゼネラルフローチャートの作り方。

    数値解析実習という授業で「補間法」をやっているのですが このプログラムのディテールフローチャートは書けるのですが ゼネラルフローチャートをどのようにかいていいのかがわかりません。 「開始」  ↓ 「変数宣言」  ↓ この先どうなるのでしょう??? #include <stdio.h> #include <math.h> void main(void) { double xa,xb,xc,h; double ya,yb,yc; double xx,yy,dela,delb,del2a; printf("3点のx座標a,b,c="); scanf("%lf%lf%lf",&xa,&xb,&xc); printf("3点のy座標fa,fb,fc="); scanf("%lf%lf%lf",&ya,&yb,&yc); printf("補間点のx座標x="); scanf("%lf",&xx); h=xb-xa; dela=yb-ya; delb=yc-yb; del2a=delb-dela; /*二次補間公式*/ yy=ya+dela/h*(xx-xa)+del2a/(2.0*h*h)*(xx-xa)*(xx-xb); printf("補間点f(%lf)=%lf\n",xx,yy); } ディテールは細かく書くだけっぽいのでそのまま出来たのですが・・・。 ゼネラルのほうがおおまかな流れを書くみたいですがどこを書いて良いのかわかりません。 教えてください。

  • C言語 配列の確保

    はじめまして。C言語の勉強を最近始めたのですが、 以下のプログラムで教えていただきたい点があります。 #include <stdio.h> #include <math.h> #define x 10000 #define y 200000 #define z 1.0E-12 #define k 1.38 #define kE 1.0E-23 #define h 6.63 #define hE 1.0E-34 #define c 3.00 #define cE 1.0E+08 void main(void){ int i; double A[x+1]; double B[x+1]; for(i=0;i<=x;i++) { A[i]=(i+y)*z; B[i] = exp(-(h*hE*c*cE)/(A[i]*k*kE*1000)); printf("%e %e\n",A[i],B[i]); }} このプログラムで、xを100000にするとプログラムが動かなくなってしまいます。OSはWindowsXP、ソフトはVisual C++ 6.0を使っています。 解決方法を教えていただけないでしょうか。

  • ハノイの塔

    次のc言語で書かれたハノイの塔のプログラムをZ80で動作させたいのですが、アセンブルするとどうなるのでしょうか??教えてください。 void move(char n,char a,char b){ if(n>1)move(n-1,a,6-a-b); if(n>1)move(n-1,6-a-b,b); } int main(){ char n=5; move(n,1,2); }

専門家に質問してみよう