アプリ版:「スタンプのみでお礼する」機能のリリースについて

ポケットコンピュータでプログラミングをしている とある者です。

次の問題を言語、Basicを用いて作ってください。
※ 私は、それを利用するとか宿題だぁ!とか そういったものではありません。 専門知識のある方のプログラムの作り方をみて勉強をさせていただきたいのです。

なるべく簡単な文でお願いいたします。

┏━┓
┃1┃
┗━┛

5人に英語のテストを行い、次のような結果が得られました
Aくん= 20
Bくん= 40
Cくん= 30
Dくん= 80
Eくん= 50

(1)それぞれの点数を(READ,DATAを使い)読んでから、5人の平均を求め、さらに平均点に最も近い点数を見つけ、平均点にもっともちかい点数を表示するプログラム

(2) ↑(1)のやつを、READで読むのではなく、INPUTに書き換えるのならば、その書き換えた部分のプログラム




┏━┓
┃2┃
┗━┛

(1)X,Yの値を入力して Z=X*(かける)Y+Y
を計算し、Zの値を表示し、プラスの時は、”プラス”、マイナスの時は”マイナス”、ゼロの時は”ゼロ”と表示するプログラム。
その表示と同時に、その計算結果を表示させる。

(2) ↑(1)のプログラムを改良して、最後まで計算をしたら、 ”Please any key!”と点滅表示させて、何かキーを押したら、最初の行に戻るプログラムにする。


どうか、面倒さまですが、おしえてください。
また、こんな初心者にも(でなくても)わかるようなHPがありましたら、教えてくださいね。 ご回答お待ちしています。

A 回答 (3件)

行番号は省略します


1-(1)
OPTION BASE 0
DIM A(4)
READ A(0),A(1),A(2),A(3),A(4)…*
FOR N=0 TO 4
LET T=T+A(N)
NEXT N
LET T=T/5
LET S=ABS(A(0)-T)
FOR N=1 TO 4
IF S>ABS(A(N)-T) THEN
LET S=ABS(A(N)-T)
LET M=N
END IF
NEXT N
PRINT A(M)
DATA 20,40,30,80,50
END
1-(2)
*の部分を
FOR I=0 TO 4
INPUT A(I)
NEXT I
としDATAを消します。

2-(1)
INPUT X,Y
LET Z=X*Y+Y
LET ZZ=SGN(Z)
SELECT CASE ZZ
CASE 1
PRINT :"プラス";
CASE 0
PRINT :"ゼロ";
CASE -1
PRINT :"マイナス";
END SELECT
PRINT:ZZ
END

2-(2)はまた後で、
    • good
    • 0

こんにちわ。



ひさびさにBasic のプログラムを書きました。
Basic も機種によって文法が異なる場合がありますので、お使いの環境で
そのまま動くかどうかは分かりません。

1-1 平均点と平均に一番近い点数を出力 (Read~Data 版)
100 rem
110 dim score(5) as integer
120 rem 5人の平均を求める
130 sum=0
140 for i = 1 to 5
150  read score(i):sum = sum + score(i)
160 next i
170 avg = sum / 5
180 rem 平均に一番近い点数を求める
190 diff = abs(avg - score(1)):sc = score(1)
200 for i = 2 to 5
210  if abs(avg - score(i)) < diff then
220   diff = abs(avg - score(i)):sc = score(i)
230  end if
240 next i
250 print "Average= ";avg
260 print "Score= ";sc
300 data 20, 40, 30, 80, 50

1-2 平均点と平均に一番近い点数を出力 (Input 版)
100 rem
110 dim score(5) as integer
120 rem 5人の平均を求める
130 sum=0
140 for i = 1 to 5
150  print chr$(asc("A") + i - 1); "君の点数 ";
160  input score(i):sum = sum + score(i)
170 next i
180 avg = sum / 5
190 rem 平均に一番近い点数を求める
200 diff = abs(avg - score(1)):sc = score(1)
210 for i = 2 to 5
220  if abs(avg - score(i)) < diff then
230   diff = abs(avg - score(i)):sc = score(i)
240  end if
250 next i
260 print "Average= ";avg
270 print "Score= ";sc

2-1 X*Y+Y の計算
100 rem
110 print "X = ";
120 input x
130 print "Y = ";
140 input y
150 z = x*y+y
160 print "Z = "; z
170 if z > 0 then
180  print "プラス"
190 elseif z < 0 then
200  print "マイナス"
210 else
220  print "ゼロ"
230 end if

2-1 X*Y+Y の計算 (キー入力待ち)
100 rem
110 print "X = ";
120 input x
130 print "Y = ";
140 input y
150 z = x*y+y
160 print "Z = "; z
170 if z > 0 then
180  print "プラス"
190 elseif z < 0 then
200  print "マイナス"
210 else
220  print "ゼロ"
230 end if
240 a$=""
250 print "Preaa any key!!"
260 a$=inkey$:if a$="" then goto 260
270 goto 110
※ 点滅表示のさせ方が分からなかったので、単に表示にしてあります。
    • good
    • 0

#1のものです。


2-(2)
これは2-(1)を基本に考えます。
DO
INPUT X,Y
LET Z=X*Y+Y
|
|(1)を見て埋めて下さい。
|
END SELECT
PRINT ZZ
PRINT "Please any key!”←"Press any key!”では?
CHARACTER INPUT CLEAR:s$
LOOP

#1で"PRINT"の後の":"を消して下さい。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!