Skocz do zawartości
ibizaa

Obliczanie pola trójkąta

Rekomendowane odpowiedzi

mam napisac do szkoły program w pascalu, który bedzie obliczał pole trójkąta trzema sposobami.... nie bardzo kumam jak to zrobic:/ ktos pomoze mi to napisac?? proszeee

 

zła nazwa tematu, proszę przeczytać regulamin. warn.

kamrat

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Wzór Heronka? A może na wektorkach?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Później będziesz musiał/musiała to wytłumaczyć. To nie jest obojętnie co. =P

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Później będziesz musiał/musiała to wytłumaczyć. To nie jest obojętnie co. =P

 

 

nie bede musiala wytlumaczyc bo mam wysłac to mojemu facetowi z inf na poczte dzisiaj do połnocy a jutro oceny wystawia

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

program Trojkaty1;

var
        a, b, c, p : real;
begin
        Write( 'Podaj bok A: ' );
        Readln( a );
        Write( 'Podaj bok B: ' );
        Readln( b );
        Write( 'Podaj bok C: ' );
        Readln( c );

        p := ( a + b + c ) / 2;
        Writeln( sqrt( p * ( p - a ) * ( p - b ) * ( p - c ) ) );
end.

Powinno działać.

 

EDIT

program Trojkaty2;

var
        a, h : real;
begin
        Write( 'Podaj wysokosc: ' );
        Readln( h );
        Write( 'Podaj dlugosc podstawy: ' );
        Readln( a );
        Writeln( a * h / 2 );
end.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

a to mialo byc napisane w jednym programie te 3 sposoby

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

program Trojkaty;

var
     m : integer;
     a, b, c, p, h : real;
begin
     Writeln( ' 1 - wzor podstawowy ' );
     Writeln( ' 2 - wzor Herna ' );
     Writeln( 'Numer wzoru: ' );
     Read( m );

     if m = 1 then
     begin
          Writeln( 'Podaj wysokosc: ' );
          Read( h );
          Writeln( 'Podaj dlugosc podstawy: ' );
          Read( a );

          Writeln( a * h / 2 );
     end
     else if m = 2 then 
     begin
          Writeln( 'Podaj bok A: ' );
          Read( a );
          Writeln( 'Podaj bok B: ' );
          Read( b );
          Writeln( 'Podaj bok C: ' );
          Read( c );

          p := ( a + b + c ) / 2;
          Writeln( sqrt( p * ( p - a ) * ( p - b ) * ( p - c ) ) );
     end
     else
          Writeln( 'Musisz podac od 1 do 2' );
end.

Masz 2.

Trzeciego mi się nie chce.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

program Trojkaty;

var
     m : integer;
     a, b, c, p, h, ax, ay, bx, by, cx, cy : real;
begin
     Writeln( 'Metody: ' );
     Writeln( '  1 - podstawowa ' );
     Writeln( '  2 - Herona ' );
     Writeln( '  3 - wektorowa ' );
     Writeln( 'Podaj numer metody ( 1-3 ): ' );
     Read( m );

     if m = 1 then
     begin
          Writeln( 'Podaj wysokosc: ' );
          Read( h );
          Writeln( 'Podaj dlugosc podstawy: ' );
          Read( a );

          Writeln( 'Pole tego trojkata wynosi: ' );
          Write( a * h / 2 );
     end
     else if m = 2 then 
     begin
          Writeln( 'Podaj bok A: ' );
          Read( a );
          Writeln( 'Podaj bok B: ' );
          Read( b );
          Writeln( 'Podaj bok C: ' );
          Read( c );

          p := ( a + b + c ) / 2;
          Writeln( 'Pole tego trojkata wynosi: ' );
          Write( sqrt( p * ( p - a ) * ( p - b ) * ( p - c ) ) );
     end
     else if m = 3 then 
     begin
          Writeln( 'Podaj puntk Ax: ' );
          Read( ax );
          Writeln( 'Podaj puntk Ay: ' );
          Read( ay );

          Writeln( 'Podaj puntk Bx: ' );
          Read( bx );
          Writeln( 'Podaj puntk By: ' );
          Read( by );
          
          Writeln( 'Podaj puntk Cx: ' );
          Read( cx );
          Writeln( 'Podaj puntk Cy: ' );
          Read( cy );

          Writeln( 'Pole tego trojkata wynosi: ' );
          Write( abs( ax * by + bx * cy + cx * ay - cx * by - ax * cy - bx * ay ) / 2 );
     end
     else
          Writeln( 'Musisz podac od 1 do 3' );
end.

Jest i trzecia! =P

 

Bą. Pierwszy raz od 9 lat piszę w Pascalu.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

napisalam ladnie i wszystko mi sie wyswietla ale jak wpisuje dlugosc bokow albo podstawy albo wysokosci to program znika;/ co mam zrobic ?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Po wyświetleniu odpowiedzi. Bo tak to program nie ma na co czekać i zakańcza się :F

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
a gdzie to readln ?

 

o boże -.-

 

Tymonek widze jak zobaczył, że ma doczynienia z kobietą to i 3 sposób się zachciało :P

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

ale w programie gdzie ja mam to napisac??

nooo co ja blondynka jestem hehe mozecie sie smiac ale ja pierwszy raz tego pascala na oczy widze

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Readln; :boxed:

 

Tak, wtedy aplikacja się wyłączy dopiero po wciśnięciu jakiegoś klawisza :P

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

no zamyka sie jak wciskam enter.. ale chodzi o to ze po wpisaniu dlugosci bokow nie liczy mi sie pole tylko sie zamyka

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Widzicie, że dziewczyna nie miała styczności z Pascalem i mówicie jej zamiast pomóc.

 

program Trojkaty;

var
     m : integer;
     a, b, c, p, h, ax, ay, bx, by, cx, cy : real;
begin
     Writeln( 'Metody: ' );
     Writeln( '  1 - podstawowa ' );
     Writeln( '  2 - Herona ' );
     Writeln( '  3 - wektorowa ' );
     Writeln( 'Podaj numer metody ( 1-3 ): ' );
     Read( m );

     if m = 1 then
     begin
          Writeln( 'Podaj wysokosc: ' );
          Read( h );
          Writeln( 'Podaj dlugosc podstawy: ' );
          Read( a );

          Writeln( 'Pole tego trojkata wynosi: ' );
          Write( a * h / 2 );
          Readln();
     end
     else if m = 2 then
     begin
          Writeln( 'Podaj bok A: ' );
          Read( a );
          Writeln( 'Podaj bok B: ' );
          Read( b );
          Writeln( 'Podaj bok C: ' );
          Read( c );

          p := ( a + b + c ) / 2;
          Writeln( 'Pole tego trojkata wynosi: ' );
          Write( sqrt( p * ( p - a ) * ( p - b ) * ( p - c ) ) );
          Readln();
     end
     else if m = 3 then
     begin
          Writeln( 'Podaj puntk Ax: ' );
          Read( ax );
          Writeln( 'Podaj puntk Ay: ' );
          Read( ay );

          Writeln( 'Podaj puntk Bx: ' );
          Read( bx );
          Writeln( 'Podaj puntk By: ' );
          Read( by );
          
          Writeln( 'Podaj puntk Cx: ' );
          Read( cx );
          Writeln( 'Podaj puntk Cy: ' );
          Read( cy );

          Writeln( 'Pole tego trojkata wynosi: ' );
          Write( abs( ax * by + bx * cy + cx * ay - cx * by - ax * cy - bx * ay ) / 2 );
          Readln();     
    end
     else
          Writeln( 'Musisz podac od 1 do 3' );
          Readln();
end.

 

Dałem readln w paru miejscach i myślę, że będzie działać. Nie programuje w Pascalu, więc nie jestem co do tego przekonany na 100%.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

No i masz 2 ReadLn; pod rzad za każdym razem.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Nie widzę nigdzie pod rząd, ale jeśli Ty widzisz to popraw mnie i już.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

W każdym z ifów masz jeden, a kiedy one się kończą masz jeden na końcu ;)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

dziekuje bardzo wszystko działa jestescie boscy :D :D

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jak będzie nawet za dużo to nic się nie stanie, ważne żeby działało

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×