Polski Serwis Naukowy - OnLine od 1999 roku
RSS
Piątek, 1 czerwca 2012
Konrad, Magdalena, Świętopełk, Alfons
 W 1980 telewizja informacyjna CNN rozpoczęła emisję
 Międzynarodowy Dzień Dziecka
 W 1915 urodził się Jan Twardowski
Nowe publikacje
Post dodany: |13 Gru 2007|, 2007 18:41
Data rejestracji: 10 Gru 2007 postów: 3
jak zmienic ta procedurę żeby liczyła pole trójkata ze wzoru 1/2a*h ?????
Program PoleTrojkata;
{Program po podaniu przez nas dlugosci bokow trojkata oblicza jego pole.}
uses Crt,Dos;
var a,b,c,P: real;
begin
clrscr;
writeln ('Program Oblicz Pole Trojkata');
repeat
write ('Podaj bok a=');
readln(a);
until a>0;
repeat
write ('Podaj bok b=');
readln(b);
until b>0;
repeat
write ('Podaj bok c=');
readln(c);
until c>0;
P:=a*b*c;
writeln;
writeln ('Pole trojkata wynosi ',P );
repeat until keypressed;
end.
Post dodany: |13 Gru 2007|, 2007 18:45
Data rejestracji: 11 Cze 2007 postów: 5113
Napisać od początku, bo coś mi się ten program błędny widzi.
Post dodany: |13 Gru 2007|, 2007 20:46
Data rejestracji: 30 Lis 2006 postów: 1550
Zdecydowanie błędy kod. A w szczególności wzór na obliczenie pola trójką.
P=a*b*c
To chyba jaką nowość. Geometrie miałem dawno temu i moze coś od tej pory nowego wymyślili, ale takiego wzoru na pole trójkąta nie znałem.
Zamiast wczytywac zmienne a,b i c. Wczytaj tylko a (podstawę) h (wysokość) i zastosuj wzór, który podałeś.
wymiennik
Wyrafinowane piękno płci męskiej istnieje tylko po to, aby podniecać płeć żeńską.
Karol Darwin

Profil PW
»więcej
Opis: Chemik
Wiek: 30 Pomógł: 190 razy
Post dodany: |13 Gru 2007|, 2007 20:51
Data rejestracji: 22 Lip 2006 postów: 1989
Post dodany: |15 Sty 2008|, 2008 22:40
Data rejestracji: 15 Sty 2008 postów: 88
O ile ja wiem to jest podobny wzór na pole trójkąta tyle że obywatel zapomniał podzielić
przez 4R gdzie R to promień okręgu opisanego na trójkącie
Oto kod źródłowy
uses crt;
var a,b,c:real;
s,p,r,ro:real;
ha,hb,hc:real;
alpha,beta,gamma:real;
ch:char;
function sign(x:real):integer;
begin
if x<0 then sign:=-1
else if x=0 then sign:=0
else sign:=1;
end;
function arccos(a:real):real;
var x:real;
begin
if abs(x)=1 then x:=2*arctan(sign(a))
else x:=arctan(a/sqrt(1-sqr(a)));
arccos:=pi/2-x;
end;
begin
clrscr;
repeat
writeln('Podaj a b c ');
readln(a,b,c);
alpha:=arccos((sqr(b)+sqr(c)-sqr(a))/(2*b*c));
beta:=arccos((sqr(a)+sqr(c)-sqr(b))/(2*a*c));
gamma:=pi-(alpha+beta);
p:=0.5*(a+b+c);
s:=0.5*a*b*sin(gamma);
r:=s/p;
ro:=c/(2*sin(gamma));
ha:=b*sin(gamma);
hb:=a*sin(gamma);
hc:=b*sin(alpha);
writeln('Kat alpha =',alpha:1:10);
writeln('Kat beta =',beta:1:10);
writeln('Kat gamma =',gamma:1:10);
writeln('Pole =',s:1:10);
writeln('Promien okregu wpisanego =',r:1:10);
writeln('Promien okregu opisanego =',ro:1:10);
writeln('Wysokosc spuszczona na bok a =',ha:1:10);
writeln('Wysokosc spuszczona na bok b =',hb:1:10);
writeln('Wysokosc spuszczona na bok c =',hc:1:10);
ch:=readkey;
until ch=#27;
end.
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Nie możesz ściągać załączników na tym forum
|
Wersja do druku
Dodaj temat do Ulubionych
|
Powered by
phpBB © 2000, 2002, 2005, 2007 phpBB Group
|