• 締切済み

学校の課題でプログラミングが…(BASIC)

学校でプログラミング課題が出てしまいました(汗) 普段プログラムなどとは縁がないので正直全く分かりません。 どなたか、ヒント・・・・・・というよりも答えを教えていただけたらと思います。 《N(m+1)=b・N(m) b=A-cN(m+1) A=1.5 c=0.001 N(100)を求める》 というものです。N88互換BASIC を使っています。よろしくお願いします。

みんなの回答

回答No.2

プログラミングに縁が無くて、学習する意欲も無いなら、そんな授業はすっぽかしたらどうですか? まず、処理手順を日本語で考えなさい。 プログラミング作業はそれからです。 手順は次のようになります。 (1) Aを1.5にする。 (2) bを0にする。 (3) cを0.001にする。 (4) N(0)を入力させる。 (5) mを0~99まで変えながら、(6)~(8)を繰り返す。 (6) b*N(m)を計算して、N(m+1)に入れる。 (7) A-c*N(m+1)を計算して、bに入れる。 (8) ここまで繰返し。 (9) N(100)を出力する。

noname#231223
noname#231223
回答No.1

N(0) はいくつでしょうか? これがないと答えが出せません。 また、bの式に誤りはないでしょうか? 左辺の答えが右辺にあっては、左辺が求められない気がします。

okaoka1919
質問者

補足

申し訳ありません。 N(0)は入力できるようにします(INPUT)。 またb=A-cN(m+1)はこれであっているようです。しかし、このままだとむりなんでしょうか

関連するQ&A

  • プログラミングの課題で困っています。助けて下さい。

    プログラミングの課題で困っています。助けて下さい。 課題1-1: 実数 a と実数 b を入力すると、一次方程式ax + b = 0 の解を求めるプログラムを作る 課題1-2: 1-1 で作成したプログラムについて、さらにa として1が入力されたとき、方程式の表示部      分が1x + 3 = 0ではなくx + 3 = 0となるようにせよ 課題1-3: 1-2 で作成したプログラムについて、さらにb として0 や負の数が入力されたとき、方程式     の表示部分が2x = 0 や2x – 3 = 0となるようにせよ 課題1-4: 1-3 で作ったプログラムについて、さらにa の値として0が入力された場合、「解けません」     と表示するようにせよ 課題1-5: 係数 a, b, c を入力すると、 2次方程式ax2 + bx + c =0の解を表示するプログラムを作     れ ※ 1-2 ~ 1-4 のような機能を盛り込む ※ a が0の場合には、先に作った1次方程式のプログラムが動く という課題です。最終的にこれらを一つのプログラムにしてください。判別式や解の公式、ルート√などを使ってよろしくお願いします。  

  • プログラミングの課題で困っています。

    大至急です。プログラミングの課題です。 プログラミングはvisual C++ 2008を使ってます。 丸棒(円柱)の慣性モーメントは   I=M{(d^2/16)+(l^2/12)}   で与えられる。ここでMは棒の質量、dは直径、lは長さをあらわす。 また、長さの等しい二本の糸でつるした軽い台の上に棒を置き、鉛直軸回りに回転運動させたときの振動周期は    T=2π√(Ih/Mgab) で与えられる。なおgは重力加速度であり9.81[m/s^2]とする。 h=0.5[m] a=0.1[m] b=0.2[m]として実験装置を構成した時、d、l、M すなわち棒の寸法と質量を入力すると、 回転振動の周期を計算し表示するプログラムを作成せよ。  ただし慣性モーメントの計算は関数hunc_Iとしてmain関数とは別に定義せよ。 という課題が出て、わからなくて困ってます。このプログラムの答えを教えてください。 よろしくお願いします。

  • 大学のプログラミングの課題について

    大学で勉強しているプログラミングについての質問です。 http://www.cs.**-u.ac.jp/***PEI_2010/4B1.png このプログラムソースと実行結果を明日の朝までに課題として 提出しなければならないのですが、まったく分からないので どうか教えていただきたいのです。 どうぞよろしくお願いいたします。

  • FORTRAN77のプログラミングについて教えてください。

    ・学校の課題で任意の数値の平均と、入力した数の個数を出力するプログラムを作 りなさいという課題が出たのですがうまくいきません。次にあげるプログラムの 中で修正する部分を教えてください。 *課題2 平均値 integer N real X,T1,M * 初期値 N=0 T1=0 * 累積 10 read(5,*,end=20) X N=N+1 T1=T1+X go to 10 * まとめ 20 if(N.GE.2) then M=T1/N write(6,*) '総数は' ,N, '平均は',M ELSE IF(N.EQ.1) THEN WRITE(6,*) '総数は',N, '平均は',T1 ELSE WRITE(6,*) '数値がない' END IF END IF END ・この問題は最初からよくわかりません。教えてください。  「3つの数a,b,cを読み込む。a,b,cを三角形の3辺の長さとしたとき三角形にな  るかを判定しなさい。三角形にならない場合はその面積をヘロンの公式を求め  て表示する。     s=(a+b+c)/2 , ss=s(s-a)(s-b)(s-c) として       S=sqrt(ss) とする。」 以上の二つです。分かる方お願いします。

  • 学校でエクセルを使う課題が出たのですが…

    エクセルを用いた課題についてお聞きしたいことがあります。 エクセルを用いたプログラムを作成せよ、といった課題が少し前に出たのですが 普段プログラミングを教わっていない他教科の教官から問題が出されたため 私達が普段習っていないエクセルについての課題が出てしまいました。 どうやら関数を用いて演算するプログラムの様なのですが、わからないことが多く、完成させることができません。 http://www1.axfc.net/uploader/Sc/so/198165 問題文は上記のURLです。 丸投げで申し訳ないのですが 分かる方が居られましたらどうか教えて頂けると幸いです。 よろしくお願いいたします。

  • C言語プログラミングで困っています。助けて下さい。

    C言語プログラミングで困っています。助けて下さい。 課題1-1: 実数 a と実数 b を入力すると、一次方程式ax + b = 0 の解を求めるプログラムを作る 課題1-2: 1-1 で作成したプログラムについて、さらにa として1が入力されたとき、方程式の表示       部分が1x + 3 = 0ではなくx + 3 = 0となるようにせよ 課題1-3: 1-2 で作成したプログラムについて、さらにb として0 や負の数が入力されたとき、方程式     の表示部分が2x = 0 や2x – 3 = 0となるようにせよ 課題1-4: 1-3 で作ったプログラムについて、さらにa の値として0が入力された場合、「解けません」     と表示するようにせよ 課題1-5: 係数 a, b, c を入力すると、 2次方程式ax2 + bx + c =0の解を表示するプログラムを作     れ ※ 1-2 ~ 1-4 のような機能を盛り込む ※ a が0の場合には、先に作った1次方程式のプログラムが動く という問題です。最終的にこれらを一つのプログラムにしてください。判別式や解の公式、ルート√などを使ってよろしくお願いします。C言語でお願いします

  • プログラミング 課題

    さっぱり分かりません。解答例があれば助かるんですが、お願いします 問3:8桁の2進数の数字を入力すると、10進数に変換して表示するプログラム(prog11.c) を作成しなさい。(配列の練習問題なので、数字を8 個格納できる1 次元配列を 用意し、2 進数の各桁の数字(0 または1)を8 回キーボードから入力して、そ れぞれを配列に格納してから10 進数に変換するプログラムを作ってください) 問4:X 月Y 日からZ 日後の日付を求めるプログラム(prog12.c)を作成しなさい。 じぶんなりの解答はこれです 1 #include <stdio.h> 2 3 #define N 8 4 5 int main() 6 { 7 int i, d; 8 char a[N]; 9 10 printf("Input %d bits binary number: ", N); 11 for (i = 0; i < N; i++) 12 scanf("%c", &a[i]); 13 d = 0; 14 for (i = 0; i < N; i++) 15 d = 2*d + ((a[i] == '0') ? 0 : 1); 16 printf("%d¥n", d); 17 return 0; 18 } 2)実行例 $ ./a.exe Input 8 bits binary number: 10101010 170 $ ./a.exe Input 8 bits binary number: 01010101 85 問4 2 3 #define N 12 4 5 int main() 6 { 7 int n, x, y, z, m, d; 8 int a[N] = {31,28,31,30,31,30,31,31,30,31,30,31}; 9 10 printf("Input month and day in the MMDD format: "); 11 scanf("%d", &n); 12 x = n/100; 13 y = n%100; 14 printf("Input the number of days: "); 15 scanf("%d", &z); 16 m = x; 17 d = y+z; 18 while (d > a[m-1]) { 19 d = d - a[m-1]; 20 m = (m == 12) ? 1 : m+1; 21 } 22 printf("The day after %d days of %d/%d is %d/%d.¥n", z, x, y, m, d); 23 return 0; 24 } 2)実行例 $ ./a.exe Input month and day in the MMDD format: 0106 Input the number of days: 10 The day after 10 days of 1/6 is 1/16. $ ./a.exe Input month and day in the MMDD format: 0106 Input the number of days: 60 The day after 60 days of 1/6 is 3/7. $ ./a.exe Input month and day in the MMDD format: 0106 Input the number of days: 365 The day after 365 days of 1/6 is 1/6. ちがうプログラムで同じ実行結果が出るものをつくれますか? 至急おねがいします 解説を付けてくれたらたすかります

  • プログラミングの課題です。

    プログラミングの課題です。 9個のマスがあり、1~9の数字が一個だけ入るとする。 このとき、符号なし整数1つでマスにまだ入れられていない数字を記録したい。 そこで、下位ビットから9ビット目までで1~9がマスに入っているかどうかを表すこととする。 空白のマスは0で表示する。 例:132584090→下位9ビット:001100000 この場合、6もしくは7がマスに入っていないため、6ビット目と7ビット目に1が立っていることとなる。 課題プログラムを実行すると、in.txtから9個の文字データを読み込み、上記のような変換をして9ビットのデータのビット列を表示する。例えば132584090とin.txtに記録されていた場合、下位9ビットは001100000と表示される。 手順 1..ビット列を記録する変数を宣言し、0で初期化する。 2..9個の数字を9個の変数に ファイルから読み込む 3..各変数には0~9の数字が入っているが、0以外の場合に対応する桁に1を立てる 4..ビット列の 0と1を反転させる 5..下位9ビットをprintf関数で表示する 6..in.txtの値をいろいろ変化させて、プログラムが正しいことを確認せよ。 #include <stdio.h> int main() { int i,a[10],b; FILE *fp; fp=fopen("in.txt","r"); if(fp==NULL){ printf("ファイルが開けませんでした\n"); } while(fscanf(fp,"%d %d %d %d %d %d %d %d %d",a[i],a[i],a[i],a[i],a[i],a[i],a[i],a[i],a[i]))i++; for(i=0;i<9;i++){ a[i]='\0'; } for(i=0;i<9;i++){ a[i]=b; } b=~b; printf("下位9ビット",(b%256)&8,(b%128)&7,(b%64)&6,(b%32)&5,(b%16)&4,(b%8)&3,(b%4)&2,(b%2)&1,b%1); return(0); } こんな感じで作りましたが、実行できませんでした。できれば詳しく解説していただけるとたすかります。よろしくお願いします。

  • プログラミングについて教えてほしいんですが・・・

    プログラミングについて教えてほしいんですが・・・ プログラミングで四則演算プログラムをやっているのですが余りの求め方がわかりません。足し算の求め方は /*lesson2.c*/ #include<stdio.h> int add(int,int); int main(){ int a,b,c; printf("a="); scanf("%d",&a); printf("b="); scanf("%d",&b); c=add(a,b); printf("a+b=%d\n",c); } int add(int x, int y){ return x+y; } というやり方で求めることができたのですが、余りは上のプログラムのどこを変えたらいいのでしょうか? 誰かわかる人がいたら教えてください。お願いします。

  • マイクロプロセッサのZ80について学校で課題がでたのですが、

    マイクロプロセッサのZ80について学校で課題がでたのですが、 5100H番地に50H、5101H番地に10Hをキー入力であらかじめ書き込む。 4200H番地に以下のプログラムを書く。   (1)5100H番地、5101H番地の内容をそれぞれB、Cレジスタに取り込んだ。   (2)AレジスタにBレジスタの内容を転送し、AレジスタとCレジスタを加算し、その結果を5200H番地に格納した。   (3)AレジスタにBレジスタの内容を転送し、AレジスタからCレジスタを減算し、その結果を5201H番地に格納した。   (4)モニタに戻した。  JP  2006H  C30620 アセンブラプログラムーーーーー機械語 (1) LD A , (5100H)ーーーーー 3A0051 LD B , Aーーーーー 47 LD A , (5101H)ーーーーー 3A0151 LD C , A ーーーーー 4F (2)LD A , B ーーーーー 78 ADD A , C ーーーーー 81 LD (5200H) , A ーーーーー 320052 (3)LD A , Bーーーーー 78 SUB A , C ーーーーー 91 LD (5201H) , Aーーーーー 320132 (4)JP 2006H ーーーーー C30620 このプログラムコードの最適化(命令数の削減)を行え。 という課題がでました。どうすればよいかわかりません。どなたかおしえてください。