Witam. To mój pierwszy post, więc proszę o wyrozumiałość.
Miałem do wykonania zadanie:
Napisz specyfikację problemu algorytmicznego a także zapisz algorytm za pomocą pseudojęzyka. Algorytm ma obliczać pole powierzchni i obwód trójkąta prostokątnego. Długości boków przy kącie prostym a, b są podawane na wejściu algorytmu. Sprawdź poprawność wprowadzonych boków. Zrealizuj problem za pomocą pętli: REPEAT.
Byłem chory, w czasie przerabiania tego tematu w szkole i jestem sporo do tyłu. Zrobiłem to w następujący sposób i jestem prawie pewien, że to źły, ale muszę się tego nauczyć, więc proszę o pomoc. :/
Specyfikacja:
Problem: Obliczanie pola powierzchni i obwodu trójkąta prostokątnego.
Dane wejściowe: a, b, c Є N – a, b przyprostokątne, c - przeciwprostokątna.
Dane wyjściowe: Pp, Obw Є N – pole powierzchni i obwód. Wyświetlenie wyniku Pp, Obw lub komunikatu o błędnych danych.
Pseudojęzyk:
START;
Wczytaj (a,b);
Begin
IF (a>0, b>0) Then
Pp:=((a*b)/2);
Obw:=(a+b+\(\displaystyle{ \sqrt{a^2+b^2}}\));
Else
Wypisz (“Błędne Dane, boki a, b muszą być < 0”);
Repeat
Wczytaj (a, b);
Until (a>0, b>0)
End
Wypisz („Pole Powierzchni =” Pp, „Obwód =” Obw)
STOP;
Pozdrawiam i z góry dziękuję.
Instrukcje Iteracji - pętla REPEAT
-
- Użytkownik
- Posty: 2
- Rejestracja: 17 paź 2010, o 16:42
- Płeć: Mężczyzna
- Lokalizacja: Kraków
- Podziękował: 1 raz
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
Instrukcje Iteracji - pętla REPEAT
Obliczaj wszystkie wartości dopiero jak dostaniesz poprawne dane - w tej chwili jeśli ktoś poda błędne dane za pierwszym razem to za kolejnym jak wpisze dobrze nic się nie stanie - nie obliczysz ani pola ani obwodu. Lepiej tak:
Poza tym błędem jest wpisanie przeciwprostokątnej(c) do danych wejściowych
Kod: Zaznacz cały
begin
repeat
Wczytaj a,b
until (a>0 and b>0)
## w tym momencie wiesz, że dane są prawidłowe więc możesz na nich operować
Pp:=a*b/2
Obw:=a+b+sqrt(a*a+b*b)
Wypisz Pp
Wypisz Obw
end