次の問題のプログラムをtiny basicで作成してみてくだい。
理科、数学、国語、音楽、体育の点数を読み込み、5科目の平均点を計算し、平均点が60点以上で合格、60点以下なら不合格と表示するプログラムをつくりなさい。
各科目の点数は、理科50点、数学80点、国語40点、音楽60点、体育64点とする。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

TinyBasicなどを、今時使わせて、問題を解かせるのは、学校の宿題でしょう。

学校の宿題をこの質問コーナーにそのまま持ち込むのは、ご遠慮願う規約だったと思う。
>理科、数学、国語、音楽、体育の点数を読み込み
>各科目の点数は、理科50点、数学80点、国語40点、音楽60点、体育64点とする。=>ひょっとして配列にでも入れろということか?
の扱いが質問から不明だ。
現在どの媒体(HDDなど)に、どういう形で記録されているのか。
今からキーボードで入力を受け付けるのか(どうもそうでは無いらしいな)
どちら?
ーー
TinyBasic
http://www2.cc.niigata-u.ac.jp/~takeuchi/tbasic/ …
をインストールする気もしないので、VBAでは(右側注釈はTinyBasicの場合の参考)
Sub test01()
t = 0           ’Let t=0 以下代入文にはLetをつける
t1 = InputBox("理科")   ' PrintとInput文の組み合わせ。2行。
t = t + t1
t2 = InputBox("数学")
t = t + t2
t3 = InputBox("国語")
t = t + t3
t4 = InputBox("音楽")
t = t + t4
t5 = InputBox("体育")
t = t + t5
avg = Int(t / 5)
If avg >= 60 Then
MsgBox "合格"    ’Print
Else
MsgBox "不合格"   ’Print
End If
End Sub   'End
コードの部分は中途半端だが参考になれば。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QNS Basic/Palm の入門書ありますか?

パームウエアの開発するぞ!と意気込んで NS Basic/Palm 2.0 とBasicで作ろうPalmアプリケーションという書籍を買いました。
しかし、NS Basicに付属している日本語マニュアルと、上記の書籍だけでは、
ROM化用のC言語とアセンブラしかやったことのない私には、どうも分かりにくいし、内容もうすっぺらい感じがします。
どなたか、初心者でも一から学習できるNS Basic/Palm 2.0 用の入門書又は、
サイトご存知であれば教えてください。

Aベストアンサー

NS BASICのサイトはご存知ですか?知っていればよろしいのですが。日本語化マニュアルとユーザーサポートがあります。

参考URL:http://nsbasic.com/palm/japanese/

QTiny Basicのプログラムでもうひとつ。。

三角形の三辺の長さを入力し、面積を求めるプログラムを作成せよ。三角形の面積はヘロンの公式を用いて求める。ヘロンの公式による面積計算部分を関数プログラムとして作成せよ。 ヘロンの公式:三辺の長さをa,b,cとすると,(s(s-a)(s-b)(s-c))^2  s =(a+b+c)

それで僕なりに作ってみたんですが
cls
print"入力した数字から三角形の面積を求めます"
input a,b,c
s=(a+b+c)/2
A=(s-a)*(s-b)*(s-c)
B=A*s
M=(B^2)
print M
end
が副プログラムを入れないで作ったもので
cls
print"入力した数字から三角形の面積を求めます"
input a,b,c
print Mb3
end
Function mb3
s=(a+b+c)/2
A=(s-a)*(s-b)*(s-c)
B=A*s
M=(B^2)
print M
end function
になるんですがなぜだか結果が0になってしまいます
なぜでしょうか?

Aベストアンサー

別にsurfaceって特別なもんじゃない。
単に変数名がaとsとかが混ざってると個人的に見辛かったから勝手につけた変数名。sでもxでも何でもいいよ(笑

sqrは平方根。ルートね。あらかじめ定義されている関数というか副プログラムというか

print sqr(4)
とか
print sqr(9)
とか
print sqr(16)
とかやるとわかると思う。

>#4補足,#5補足。
その通り。変数名が同じでも,
PUBLICがないと
メインルーチン,サブルーチンが違うと
値が共有されていないことがわかるよね。
PUBLICで宣言された変数はルーチン間で同じ変数名の時に値を共有するんだ。

QBASICプログラム入門 副書名 プログラミングの

BASICプログラム入門 副書名
プログラミングの理解を深めるために
岡本 敏雄/著にあるソフトを『プチコンII』ニンテンドーDSiで実行し様としても巧く行きません。どうすればいいですか?

Aベストアンサー

この頃の、Basicと、プチコンのものは比較的近いにで、概略を学ぶ位には使えるでしょう。
ですが、完全に一致してはいないので
本の内容を理解して、それをプチコン用に置き換えてやる必要があります。

本に載っていてプチコンに無い命令、画面サイズの違い等、単純にできないものもあるでしょう。


> 巧く行きません

まずは、どう「巧く行きません」なのか、確認して理解するのがスタートです。
何かエラーメッセージはでていませんか?何と書いてありますか?マニュアルのエラーメッセージ一覧にどんな説明がありますか?



これだ書かれた頃は、非常に混沌としていました。メーカー毎、機種毎に違っていたのです。
それでも、上に書いた様な作業で、他機種用のプログラムを動かしたものです。
そうして、りかいを深めていったものです。

QVBAで平均点と偏差値を求めたい

はじめて質問させていただきます。

課題1:国語、数学、理科、社会の50人分の点数が掲載してあります。このデータを用いて次の処理をするプロシージャを完成させなさい。国語、数学、理科、社会の50人分のデータの平均点、偏差値を画面上に表示する。
課題2:出席番号が変化するデータに対して、国語、数学、理科、社会の平均点、偏差値を画面上に表示する。

ちなみにデータは
b2に出席番号 c2に国語 d2に数学 e2理科 f2社会と入力されてます。
次にb3~b52にNo.1~No.50の出席番号 c3~c52に国語の点数 d3~d52に数学の点数 e3~e52に理科の点数 f3
~f52に社会の点数が入力されています。
点数は問題に関係ないと思うのでここでは書きません。
また、表示にはメッセージボックスを使うようです。

この2つの問題のプロシージャを教えていただきたいです。
できれば、プロシージャ1行ごとに簡単な解説も付けてもらえたら嬉しいです。

ちなみに課題1はここまで出来たんですが、課題2はまったくわかりません(汗
Sub 国語平均()
Dim 平均 As Single
Dim 偏差値 As Single
Dim 標準偏差 As Single
Dim 数量 As Integer
和 = Application.WorksheetFunction.Sum(Range("c3:c52"))
数量 = 0
Range("b3").Select
Do Until ActiveCell.Offset(0, 1).Value = ""
数量 = 数量 + 1
ActiveCell.Offset(1, 0).Select
Loop
平均 = 和 / 数量
標準偏差 = Application.WorksheetFunction.StDev(Range("c3:c52"))
MsgBox 平均
MsgBox 偏差値
End Sub
お手数をおかけしますがどうかよろしくお願いします。

はじめて質問させていただきます。

課題1:国語、数学、理科、社会の50人分の点数が掲載してあります。このデータを用いて次の処理をするプロシージャを完成させなさい。国語、数学、理科、社会の50人分のデータの平均点、偏差値を画面上に表示する。
課題2:出席番号が変化するデータに対して、国語、数学、理科、社会の平均点、偏差値を画面上に表示する。

ちなみにデータは
b2に出席番号 c2に国語 d2に数学 e2理科 f2社会と入力されてます。
次にb3~b52にNo.1~No.50の出席番号 c3~c52に...続きを読む

Aベストアンサー

同じ理由で、ヒントのみ
課題でいっている「偏差値」は「標準偏差」のことなのか、いわゆる「偏差値」のことなのか不明ですが、まともに解釈すると偏差値なので・・・
  偏差値=(得点-平均点)/標準偏差×10+50
となります。偏差値は個々の点数に対応して出ますので、50個の偏差値が求められことになるので、MsgBoxだとつらそうです。

(1)指定された範囲で(n人分にすればもっと一般的)平均値、標準偏差、各偏差値をもとめるサブルーチンを作る。(質問文のものを、すこし工夫して完成させればよい。)
 計算結果は(例えば)60行に平均値、61行に標準偏差、63行から順に偏差値記入してゆく。
(2)上記のサブルーチンを各教科で呼び出す。(計算対象をC列、D列、E列、F列として4回呼び出す。)
(3)このままだと結果が読みにくいので、出席番号をb列を63行~にコピーし、タイトルを59行にいれ、B61、B62に「平均値」「標準偏差」など書き込むルーチンを付け加える。

課題1と課題2の違いがよくわからないけれど、これで両方の回答になりませんか?

同じ理由で、ヒントのみ
課題でいっている「偏差値」は「標準偏差」のことなのか、いわゆる「偏差値」のことなのか不明ですが、まともに解釈すると偏差値なので・・・
  偏差値=(得点-平均点)/標準偏差×10+50
となります。偏差値は個々の点数に対応して出ますので、50個の偏差値が求められことになるので、MsgBoxだとつらそうです。

(1)指定された範囲で(n人分にすればもっと一般的)平均値、標準偏差、各偏差値をもとめるサブルーチンを作る。(質問文のものを、すこし工夫して完成させればよい。)...続きを読む

Q「10日でおぼえるVisual Basic.NET 入門教室」について

「10日でおぼえるVisual Basic.NET 入門教室」の「第5日1時限目」の部分なのですが、本に書いてある通りに作業を進め、コードを入力したのですが、完成後にデバックをすると、エラーがおこってしまいます。

詳細は以下の部分です。

Private Sub Listup()
  Dim Fname As String

  Fname = Dir("c:\date\*.jpg",FileAttribute.Archive)

  ListBox1.Items.Add(Fname)

  Do
    Fname = Dir()
    If Fname = "" Then
      Exit Do
    End If
    ListBox1.Itmes.Add(Fname)
  Loop While Fname <> ""
End Sub

デバックをすると、上記の「Fname = Dir()」の部分で、「'Dir' 関数は、'Pathname' 引数で最初に呼び出されなければなりません。」と表示されます。

どうしても解決方法が分からないものですから、よろしくお願いいたします。

「10日でおぼえるVisual Basic.NET 入門教室」の「第5日1時限目」の部分なのですが、本に書いてある通りに作業を進め、コードを入力したのですが、完成後にデバックをすると、エラーがおこってしまいます。

詳細は以下の部分です。

Private Sub Listup()
  Dim Fname As String

  Fname = Dir("c:\date\*.jpg",FileAttribute.Archive)

  ListBox1.Items.Add(Fname)

  Do
    Fname = Dir()
    If Fname = "" Then
      Exit Do
    End If
    ListBox1.Itm...続きを読む

Aベストアンサー

バグっています。
Fname = Dir("c:\date\*.jpg",FileAttribute.Archive)
でファイルが見つらないのに、さらにdir()を呼んだから。正しくは↓のようにループを回します。

参考URL:http://www.vbvbvb.net/jp/magazine/pupa/pupa03.xml

QTiny Basicでのグラフィック。。

適当な大きさのグラフィック画面に、横軸-2πから2π、縦軸-3から3までの範囲で、sin、cos、tanのグラフを書け

Line (x1,y1)-(x2,y2),CやGLocate (x,y) を使うのはわかるんですが
どうしてもできません。。
とりあえず僕はGScreenを(200,100)の大きさでやろうとおもってるんですがとりあえず、
ForeColor="Blue"
Line (x1,y1)-(x2,y2),14
GScreen(200,100)
ここまでしかできなくて。。
助言お願いします

Aベストアンサー

線の色が黒と合わなかったので
背景を白にして白に合う色を探す。

軸について考える。
X軸に平行な軸は
LINE(XMIN,Y)-(XMAX,Y)
Y軸に平行な軸は
LINE(X,YMIN)-(X,YMAX)

のコマンドで書く。XとYはそれぞれForでXMINからXMAXまでXAXISUNIT間隔でひいていくことにしよう。(それぞれIとJでループをまわすけど)

で、
座標もX=0,Y=0の時,表示する。(俺のプログラムには後述のバグあり)
使うのはGLOCATEとGPRINT
2πを表示したいが表示する方法がわからなかったので
軸の単位を設定し、2と表示することで誤魔化すことにした。

For I = XMIN to XMAX STEP YAXISUNIT
LINE(I,YMIN)-(I,YMAX)
GLOCATE(I,0)
GPRINT I/XUNIT
NEXT I

For J = YMIN to YMAX
LINE(XMIN,J)-(XMAX,J)
GPRINT J/YUNIT
NEXT J

さらにグラフの凡例としてそれぞれ
SIN COS TANを表示しておく
GLOCATE(0,YMAX - 0.5 * YAXISUNIT)
GPRINT "SIN"

GLOCATE(0,YMAX - 1.5 * YAXISUNIT)
GPRINT "COS"

GLOCATE(0,YMAX - 2.5 * YAXISUNIT)
GPRINT "TAN"

出来るだけ位置は相対的に指定することにした
尤も、
YMAX-0.5 * YAXISUNIT < YMIN
とかだったりすると表示されないのだけれど。

ただ、先ほど述べたバグというのは
X座標が0,Y座標が0の時に座標や文字列を表示しているので
XMAX < 0とかYMAX < 0だったり
XMIN > 0とかYMIN > 0だったりすると
画面外に行ってしまい表示されない。

その点を加味して修正した俺のコードは
GLOCATE((XMAX + XMIN)/2,YMAX - 0.5 * YAXISUNIT)
GPRINT "SIN"
となっている。

あとは今までの内容を全て繋げて、一本のプログラムにするだけだ。
今までの話でXAXISUNITやXUNITは入っていないので、初期値の代入を最初に
追加して実行した、というわけ。

線の色が黒と合わなかったので
背景を白にして白に合う色を探す。

軸について考える。
X軸に平行な軸は
LINE(XMIN,Y)-(XMAX,Y)
Y軸に平行な軸は
LINE(X,YMIN)-(X,YMAX)

のコマンドで書く。XとYはそれぞれForでXMINからXMAXまでXAXISUNIT間隔でひいていくことにしよう。(それぞれIとJでループをまわすけど)

で、
座標もX=0,Y=0の時,表示する。(俺のプログラムには後述のバグあり)
使うのはGLOCATEとGPRINT
2πを表示したいが表示する方法がわからなかったので
軸の単位を設定し、2と表示すること...続きを読む

QVisual Basic 入門

趣味で簡単なプログラム等をVBを使用して作成したいので、
VBのイロハから分かり易く説明してある本等を探しています。
プログラム作成の未経験者です。

Aベストアンサー

私の経験では旧Basicとは別物と考えた方がいいと思います。
旧Basicをかじった事がないのなら、
わざわざ古い考え方や文法などは逆に知らない方がいいと思われます。

それはさておき。
私は「かんたんプログラミング」シリーズで基礎を勉強しました。
⇒本屋に行って「かんたん」とか「できる」、「超初心者」
 なんて表紙に書いてある本ならだいたいニュアンスが掴めると思います。

ただ本で勉強するのは限度がありますので、
実際にVBを購入して例題を組みながら勉強される事をお勧めします。

参考までに有名なページを書いておきますね。

参考URL:http://www2j.biglobe.ne.jp/~little-g/vbtomo.html

QTiny Basicのプログラムで。。

次の5人の学生の成績の個人別の平均点と、科目別の平均点をそれぞれ求め、表示するプログラムを作成せよ。Print Using 文を使うと、きれいな表形式の出力が可能です。
学籍番号 英語 数学 情報 平均
  1   70 60 80
2 50 60 50
3 70 90 100
4 90 100 50
5 40 70 80

という問題があって。。自分なりにやってみたんですが。。

Dim a(5,5)
For i=1 to 5
For j=1 to 5
Read a(i,j)
print a(i,j);
Next j
print
Next i
Data "学生番号","英語","数学","情報","平均"
Data 1,70,60,80,70
Data 2,50,60,50,53
Data 3,70,90,100,87
Data 4,90,100,50,80
Data 5,40,70,80,63
Data "平均",64,76,72,71
End

っていうふうにつくってみたんですがうまくいかなくて。。
みなさん、助けてください><

次の5人の学生の成績の個人別の平均点と、科目別の平均点をそれぞれ求め、表示するプログラムを作成せよ。Print Using 文を使うと、きれいな表形式の出力が可能です。
学籍番号 英語 数学 情報 平均
  1   70 60 80
2 50 60 50
3 70 90 100
4 90 100 50
5 40 70 80

という問題があって。。自分なりにやってみたんですが。。

Dim a(5,5)
For i=1 to 5
For j=1 to 5
Read a(i,j)
print a(i,j);
...続きを読む

Aベストアンサー

課題?独学?・・・とりあえず、指摘とヒント
個人別の平均点、科目別の平均点をあらかじめ計算をし、
DATAに配列していますが、
題意から察すると、 平均を求める数式を作成して、且つPRINTUSING で
見栄えよい表示にする。 ことを求めている。

出力結果が、下記のようになる事をイメージする。このとき、
100点が最大なので、文字スペース3桁使用である事も考慮。

学生番号  英語  数学  情報  平均 ←(1)
   1  70  60  80  70 ←(2)
   2  50  60  50  53 ←(3)
   3  70  90 100  87 ←(4)
   4  90 100  50  80 ←(5)
   5  40  70  80  63 ←(6)
  平均  64  76  72  71 ←(7)

まず、データを読み込み、格納。(5人分、3科目で15個分)
Dim a(5,3)
For i=1 to 5 : For j=1 to 3
Read a(i,j)
次に(1)を実行
Print"学生番号  英語  数学  情報  平均"
(2)~(6)で、 学生番号の i の平均を求める式は、
For i=1 to 5
 Heikin(i)=Int((a(i,1)+a(i,2)+a(i,3))/3)  'Average関数でも良い。Int関数で整数化
  Print  i , a(i,1) , a(i,2) , a(i,3) , Heikin(i) ’ ここは、PrintUsing文 を使う。(自分で考える)
Next i
(7)で、教科平均 3科目分 求める式を作る。 と、意味あるのかわからないが、15個の平均を求める。
For j=1 to 3
 Kyouka(j)=Int((a(1,j)+a(2,j)+a(3,j)+a(4,j)+a(5,j))/5)
Next j
AllHeikin=Int((Kyouka(1)+Kyouka(2)+Kyouka(3))/3)

Print文で "平均”, Kyouka(1) , Kyouka(2) , Kyouka(3) , AllHeikin 'ここもPrintUsing文 で書く。

For~to~文:Next 間の 数式も、さらに改良の余地あり。 ここは、自分で考える。

課題?独学?・・・とりあえず、指摘とヒント
個人別の平均点、科目別の平均点をあらかじめ計算をし、
DATAに配列していますが、
題意から察すると、 平均を求める数式を作成して、且つPRINTUSING で
見栄えよい表示にする。 ことを求めている。

出力結果が、下記のようになる事をイメージする。このとき、
100点が最大なので、文字スペース3桁使用である事も考慮。

学生番号  英語  数学  情報  平均 ←(1)
   1  70  60  80  70 ←(2)
   2  50...続きを読む

Qvisual basic入門

html以来はじめてまともにプログラミングに挑戦しようと思い、VBを勉強しています。なるべく本を買わずに済ませたいのですが、難しいでしょうか?
現在、microsoftのプログラミング☆簡単レシピをなぞる形で勉強していますが、肝心のコードの仕組みが分かりづらくて困ってます。VBのコードがわかりやすく学べるサイトや、辞書的なサイトがあれば教えてください。

Aベストアンサー

>>VBの難易度がそれほど低いとは知りませんでした

 えーと、VBの名誉のためにいいますが、C言語でも文法だけの理解なら、半日もかからないと思います。(ただし、C++となると、文法理解だけでも1ヶ月では終わらないかも・・・)

>>200ページの本を反日で読むのは私には難しいように思います・・。

 ちょっと言葉不足で誤解されちゃったようですが、VBの文法を解説する部分だけだと10~20ページ以下におさまると思いますよ。で、この部分だけの理解だけだと、半日もかからないってことです。200ページっていうのは、例題のスクリーンショットとか、実際のプログラミング解説ページなどを含めてのことを言ったつもりでした。で、そういった、プログラミング全般的な解説ページを含めてのことです。

>>あくまで趣味的なもので、いわゆる日曜プログラマ的なことをやってみたい・・VBでは不足でしょうか?

 うーん、日曜プログラミングで何をやるか?で変わる気がします。結局のところ、プログラムって道具であり、ツールでしかない。日曜プログラムで「チョコチョコとやりたい」と思うことが、VBで手軽にできればいいわけです。特に、Excel/VBAなどをターゲットにすれば、公私において、大変便利に使えると思います。
 でも、数百件のデータを並べ替えて集計して、数10ページのリストにしたいと思ったらVBだけの学習では無理でしょう。やはり構造化プログラミングとかアルゴリズムの知識が必要になります。「こんなの簡単にできるでしょう?」と素人で思えることが、すごく高度な知識を要求されることもあります。
 逆に、うまく道具(言語orツール)を選択することで、それこそ日曜プログラマ的にできちゃう可能性もあります。だから、ケースバイケースだと思います。

 ただし、「プログラマ」をめざすならば、VBではなく、C言語から入って欲しいと思ってます。イベント駆動型のVBでは、「ロジック」が身につかないと思います。

P.S.
 「プログラマの雰囲気を味わう」だけならVBでいいかもしれませんが、それでしたら、もっとかっこいい雰囲気?をかもし出す「LinuxでC言語とCシェルスクリプトやってまーす」というほうがお勧めなんですけどね。

>>VBの難易度がそれほど低いとは知りませんでした

 えーと、VBの名誉のためにいいますが、C言語でも文法だけの理解なら、半日もかからないと思います。(ただし、C++となると、文法理解だけでも1ヶ月では終わらないかも・・・)

>>200ページの本を反日で読むのは私には難しいように思います・・。

 ちょっと言葉不足で誤解されちゃったようですが、VBの文法を解説する部分だけだと10~20ページ以下におさまると思いますよ。で、この部分だけの理解だけだと、半日もかからないってことです。200...続きを読む

QTiny Basicのプログラムです。。

Tiny Basicのプログラムで

試験の成績を入力し、30点未満なら青点、30点以上50点未満なら赤点、50点以上なら合格と表示するプログラムを作成せよ。青点、赤点、合格を判定する部分は副プログラムとして作成せよ。 という問題があったんです。
それで僕は
Cls
input A
Call Q
Sub Q
END
Select Case A=A
Case A=<29
print"青点"
Case A=>50
print"合格"
Case else
print"赤点"
End Select
End sub

というプログラムをつくったんですがどんな点数を入れても青点って結果がでてしまうんです。
どうしたらいいんでしょうか?

Aベストアンサー

>PUBLIC Aのやつはエラーになります
エラー:コマンド PUBLIC の構文エラーです。
コマンドまたは引数のミスタイプが考えられます。

俺の環境では全くそうならない。念のため、Tiny BasicのバージョンとOSを言ってもらえる?
使えないバージョンだと仮定して
一応結構苦し紛れでこう書き直してみたけど・・・・

Cls
input A
Call Q(A)
END
Sub Q(X)
Select Case X=X
Case X=<29
print"青点"
Case X=>50
print "合格"
Case else
print "赤点"
End Select
End sub


人気Q&Aランキング