作业帮 > 综合 > 作业

pascal过程的题 题目是这样的,输入30个数,当做十个三角形的三边,求这10个三角形的面积.完成了有追加

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 18:02:00
pascal过程的题 题目是这样的,输入30个数,当做十个三角形的三边,求这10个三角形的面积.完成了有追加
嗯,我自己写了一个
program area;
var
a,b,c,s:real;
i:integer;
procedure ts(a0,b0,c0:real);
var p,s0:real;
begin
p:=(a0+b0+c0)/2;
s0:=sqrt(p*(p-a0)*(p-b0)*(p-c0));
writeln('p=',p,'s0=',s0)
end;
begin
for i:=1 to 10 do
read(a,b,c);
ts(a,b,c);
end.
怎么做一个循环把结果输出?
怎么加一个说明.就是如果三角形俩个边之和大于第三边,俩边之差小于第三边,然后输出.
过程里的变量不能和主程序里的变量一样吗?
我写的这个最后输出的是半周长和面积,怎么样才能只输出面积?
如果想输出面积和怎么写?
希望有大牛帮帮我.
program area;
var
a,b,c,s,sum:real;
i:integer;
procedure ts(a0,b0,c0:real);
var p,s0:real;
begin
p:=(a0+b0+c0)/2;
s0:=sqrt(p*(p-a0)*(p-b0)*(p-c0));
writeln('s0=',s0)//删去输出半周长
sum:=sum+s0;//累加面积和
end;
begin
for i:=1 to 10 do begin //加了begin 和end就相当于循环输出
read(a,b,c);
if (a+b>c)and(a+c>b)and(b+c>a) then ts(a,b,c);//判断是否构成三角形
end;
writeln(sum);输出面积和
end.
主程序里的变量能在主程序和过程里用
过程里的变量只能在过程里用
但是主程序里的变量名和过程里的变量名一直时,主程序的变量只能用在主程序,过程的变量也只能用在过程
再问: 如果 abc 不能构成三角形 怎么办?
再答: if (a+b>c)and(a+c>b)and(b+c>a) then ts(a,b,c);//判断是否构成三角形 就不计算他的面积
再问: 我说的是如果 这三个数 不能构成三角形 那程序会怎么处理这三个数 比如 abcdef abc 不能构成三角形 而def可以 是直接 用def 还是 bcf 或是其他?
再答: 直接用def