![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
次の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
っていうふうにつくってみたんですがうまくいかなくて。。
みなさん、助けてください><
No.1ベストアンサー
- 回答日時:
課題?独学?・・・とりあえず、指摘とヒント
個人別の平均点、科目別の平均点をあらかじめ計算をし、
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 間の 数式も、さらに改良の余地あり。 ここは、自分で考える。
No.2
- 回答日時:
まず、プログラムに関する質問をする場合に、何をやったらどうなった(どう表示された)という情報がないと、答えが絞れなくなります。
で、TinyBASICそのものは知りませんが、ホームページでチラッと見た限り、昔のN-BASICに近いものだと思いますので、その範囲の知識でお答えいたします。
このプログラムの場合、readを2重ループで繰り返していますが、5回を5回で25回のreadがあることになります。ところがdata文は35個ですから不自然です。
つまりは、a()という配列変数は、学籍番号と成績を格納するためのものと想像しますが、DATA文の一番最初に項目名の文字データが並んでいますので、おそらく最初のreadの段階で数字配列変数に"学生番号"という文字を読み込もうとしたエラーが発生することと思います。
で、対処方法としていろいろ考えられますが、簡単なところで、一番最初のdata文を1行ごっそり抜いてしまうことでとりあえずそれっぽい表示ができるでしょう。ただ、問題文が要求しているプログラムとは、かなり離れたものですので、再考が必要です。(平均点を自分で計算してdata文にしている時点でもうプログラムじゃないですよ。)
さて、具体的なプログラムとして、初期設定とデータ読み込みに、
Dim a(5,3)
For i=1 to 5
For j=1 to 3
Read a(i,j)
Next j
Next i
データ文に関しては
Data 70,60,80
Data 50,60,50
Data 70,90,100
Data 90,100,50
Data 40,70,80
となり、これらの間に横の平均と縦の平均を求める計算の処理を入れ、出力の処理を入れたら出来上がりです。(プログラムの作り方次第では Dim a(5,3) よりも配列を大きく取って合計や平均を入れられるようにしたほうが楽かもしれません)
プログラムの面白いのはここからですので、後は考えてみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- Visual Basic(VBA) 順列をランダムに発生するプログラム 1 2022/11/16 12:16
- MySQL 三科目合計点のクラス別平均点求めるクエリ式を教えてください 1 2023/07/04 09:44
- C言語・C++・C# (C言語・配列)date[i]の分散を計算する場合 2 2022/07/24 15:06
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
- 大学受験 推薦入試について教えていただきたいことがあります。 私は、この春高校三年生になります。進路について考 1 2022/04/05 02:04
- 中学校 理科だけが極端に苦手 5 2022/09/10 14:18
- スピーカー・コンポ・ステレオ 電気交流の実効値と値が違う平均値ではオームの法則が成り立たない理由を教えて下さい。 4 2022/05/02 09:53
- Visual Basic(VBA) 複数シート一括作成後に、特定範囲の数式は値で貼り付けしたい 3 2022/10/07 11:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JCLの基本について教えてください
-
変数の値が勝手に変化する原因
-
MessageBoxでの処理の仕方が分...
-
【JAVA】数字をひし形に出力す...
-
乱数を扱いたい
-
_dupenv_s関数でメモリリーク
-
3つの整数のうち奇数のみを表示...
-
素数を探すプログラム…。
-
PICのプログラムでsrandを使う...
-
VBAで関数をつくる
-
65536は2の何乗なのでしょうか?
-
ホームページのプログラムの見...
-
あるプログラムのコマンドライ...
-
0除算して、落ちるプログラムと...
-
階乗のマクロ
-
C++ で、「)」が必要 というエ...
-
VBAで仕様書は書きますか?
-
Excelで4096点以上のFFTの方法
-
VBAでユーザーフォームが自動的...
-
BCDについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数の値が勝手に変化する原因
-
【JAVA】数字をひし形に出力す...
-
JCLの基本について教えてください
-
360度を超える角度
-
ProC 固定SQLでNULLってどう表...
-
Fortran90についての質問です。
-
fortran if文
-
3つの整数のうち奇数のみを表示...
-
ruby for文
-
c言語のプログラミング 2つの整...
-
Matlabについて質問2
-
COBOLのピリオド
-
C言語 バッファについて。
-
プログラミング(自由課題)
-
main関数終了時のreturnの意味は?
-
不具合が発生(API・C言語)
-
ロトカ=ヴォルテラ方程式 をC...
-
プログラミング
-
ループのとめ方
-
fortran77 自宅ではコンパイル...
おすすめ情報