三角形の三辺の長さを入力し、面積を求めるプログラムを作成せよ。三角形の面積はヘロンの公式を用いて求める。ヘロンの公式による面積計算部分を関数プログラムとして作成せよ。 ヘロンの公式:三辺の長さを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になってしまいます
なぜでしょうか?
No.6ベストアンサー
- 回答日時:
別にsurfaceって特別なもんじゃない。
単に変数名がaとsとかが混ざってると個人的に見辛かったから勝手につけた変数名。sでもxでも何でもいいよ(笑
sqrは平方根。ルートね。あらかじめ定義されている関数というか副プログラムというか
print sqr(4)
とか
print sqr(9)
とか
print sqr(16)
とかやるとわかると思う。
>#4補足,#5補足。
その通り。変数名が同じでも,
PUBLICがないと
メインルーチン,サブルーチンが違うと
値が共有されていないことがわかるよね。
PUBLICで宣言された変数はルーチン間で同じ変数名の時に値を共有するんだ。
No.4
- 回答日時:
プログラムその1
cls
a = 2
print a
call hoge
print a
end
sub hoge
print a
a = a+1
print a
end sub
=========
プログラムその2
public a
cls
a = 2
print a
call hoge
print a
end
sub hoge
print a
a = a+1
print a
end sub
==================
プログラムその3 これは俺も予想外だったんだけど・・・・
(2,0,1,0,1,2だと思ってたし、普通の言語はそうなる)
cls
a = 2
print a
call hoge
call hoge
print a
end
sub hoge
print a
a = a+1
print a
end sub
No.3
- 回答日時:
考えてもらおうと思って時間おいたけど、出来たかな?
cls
print"入力した数字から三角形の面積を求めます"
input a,b,c
print Mb3(a,b,c)
end
Function Mb3(X,Y,Z)
s=(X+Y+Z)/2
surface=s*(s-X)*(s-Y)*(s-Z)
surface=sqr(surface)
Mb3 = surface
end function
実は前回,Xを使ったり,今回X,Y,Zを使ったのは混乱しないようにするためで,別に変えなくても良かったんだけど。
勉強のために,次の回答の結果を考えてもらおうかな。(実際に実行して確かめてみてね)
No.2
- 回答日時:
あ、ちなみに、最初に表示される値はFunctionの方のprintで、後に表示されるのがメインルーチンのprintだ。
#1で書かなかったけど,
引数で書いた方がプログラム的にはいいんだろうなあ・・・
(出来るだけPublicとかGlobal[VB系の言語]とかが出てくるのは避けた方が良い。プログラムの可読性が下がるから)
とりあえずできました。。。
でも結果は一つでいいんでそれはまあprint mb3を消せば一つになったんでいいんですけど。。
やっぱり、publicはつかいたくないっすね^^;
授業でもやってないんで
やっぱりそこは自分で考えないとだめか。。
No.1
- 回答日時:
'Q3097471と同様Functionの引数として渡さないなら
'PUBLICと宣言しておくべき
PUBLIC a,b,c
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
'質問文のへロンの公式がそもそも間違ってます。調べてみよう
'input a,b,cのところで,3,4,5と打つと,a=3,b=4,c=5となる。
'この三角形は有名な直角三角形で,3*4/2 = 6が面積とならなければならない
M=sqr(B)
'戻り値をきちんとセットしないとメインルーチンで0になるのは当然だ。
Mb3 = M
print M
end function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 【数学の図形の名称と面積の計算方法】正三角形と扇形があります。正三角形の2辺を伸ばす 9 2023/02/06 23:30
- その他(プログラミング・Web制作) 3Dモデルにおける法線の計算について(Python,OpenGL) 1 2023/04/25 23:46
- 数学 三角形ABCの辺BCを4 : 3に内分する点をTとし、点Tを接点として辺BCに接する円が点Aで直線A 3 2023/02/12 21:03
- 数学 三角形の面積を求めよ 斜辺が11cm、底辺が14cmの二等辺三角形で 昨日解答をしてもらいましたが、 3 2023/03/11 22:03
- 物理学 外積の計算、a × (mb) = m(a × b) の意味 3 2023/06/15 18:27
- 数学 小5 面積問題 6 2023/01/16 18:14
- 数学 複素数平面についての問題です。 2点α、βが定められており、それらともう1点γと結ぶ三角形が直角二等 6 2023/06/30 09:47
- 数学 『弧は弦より長し』 8 2022/04/18 10:23
- 数学 球の中心が正三角形の3辺をたどって1周したとき、球が通過してできた立体の体積を求めなさい。 1 2022/06/23 20:35
- 数学 数学の問題について 1 2023/02/13 18:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パイソンのクラスについて
-
foreach (1..4){ 英文字$_→$新...
-
変数の中は文字列か数値か調べ...
-
N88-日本語 BASIC ASCII ファイル
-
Python3
-
<python>戻り値の使い方
-
10進数→2進数の出力について
-
UWSCのSELECT文の記述方法
-
コマンド find の「繰り返し」...
-
数値英単語変換
-
Pythonでコンソールをクリアす...
-
シェルスクリプトで、空白(ス...
-
ロジック・・・ プログラミング
-
pythonを使ったプログラミング...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
どちのほうがすきですか?
-
セレクトメニューで2つの項目...
-
CLispのloop内の挙動について
-
UWSC SLCTBOXもしくはSELECTに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
16進の10進変換について
-
Pythonでターミナルに文字を出...
-
シェルスクリプトで、空白(ス...
-
【至急!!!】python言語で本を見...
-
pythonで演算子を変数に代入す...
-
c言語 16進数の2進数への変換
-
パイソンのクラスについて
-
I2C接続のLCDディスプレイを使う
-
関数「exists」と「defined」の...
-
pythonの*
-
変数の中は文字列か数値か調べ...
-
数値かどうかの判定方法
-
python print文のエラー
-
int(input("○○"))の使い方
-
Perlの例文でif($a==1&&$b==5&&...
-
Use of uninitialized value ---
-
awkの正規表現での最左最短マッ...
-
swift 文字コードから文字に変...
-
CGIでimgタグでalignを使うとエ...
-
javaのパッケージ構成で各パッ...
おすすめ情報