M E T O D Y N U M E R Y C Z N E
WYDZIAŁ ELEKTRYCZNY W-5
ĆWICZENIA LABORATORYJNE
II ROK
Zad. 4 Zadanie należ y wykonać w jednym z Borland Pascal, Turbo C, Javascript
wymienionych ję zyków programowania :
Opracować funkcję umożliwiającą zerowanie cyfr poprawnych liczby zmienno-pozycyjnej od podanej w wywołaniu pozycji.
Dodatkowo z funkcji należy wyprowadzić wartość epsilona maszynowego oraz liczbę poprawnych cyfr ułamkowych dig. Jeżeli mantysa epsilona jest mniejsza od 4.5 to liczba dig powinna być pomniejszona o jeden od modułu jego cechy (wykładnika), w przeciwnym przypadku należy dig zmniejszyć o dwa.
(Jeżeli { eps = ±m10c } to { Jeżeli (m < 4.5) wtedy dig := | c | - 1 w przeciwnym przypadku dig := | c | - 2 } )
Przykład nagłówka definicji funkcji w wersji Borland Pascal: type
float = single;
var
y : float;
t : byte;
{...}
function
ps(x: float; t:byte; var eps:float; var dig: byte): float;
{WE:
x
- Zmienna dla liczby przeznaczonej do konwersji }
{WE:
t
- Zerowanie cyfr ulamkowych od pozycji t+1 }
{WY: eps - Wyprowadzenie epsilona maszynowego dla x }
{WY: dig - Wyprowadzenie liczby poprawnych cyfr ulamkowych}
{WY: ps
- Wyprowadzenie liczby x po konwersji }
Przykład wywołania w wersji Borland Pascal dla liczby PI: begin
{...}
y:=PI; t:=2; {Zerowanie cyfr ułamkowych od pozycji np: 3 (T+1) }
writeln('Konwersja liczby z zerowaniem od : ',t+1,' pozycji dla cyfr ułamkowych'); writeln('Liczba przeznaczona do konwersji : ',y);
writeln('Wyświetlane są wszystkie cyfry : ', ps( y, t, eps, dig) ); writeln('Liczba TYLKO z cyframi poprawnymi: ', ps(y, t, eps, dig):dig+9 ,
' (POPRAWNYCH : ', dig , ')' );
writeln('Epsilon maszynowy dla liczby y : ',eps);
{...}
readln; { zakoń czenie programu dopiero po naciś nię ciu klawisza Enter}
end.
____________
*) {...} - w tych miejscach można/należy odpowiednio program uzupełnić ...
Przykład wykonania:
Konwersja liczby z zerowaniem od :
3 pozycji dla poprawnych cyfr ułamkowych
Liczba przeznaczona do konwersji :
3.14159274101257E+0000
Wyświetlane są wszystkie cyfry
:
3. 14000010490417E+0000
Liczba TYLKO z cyframi poprawnymi: 3.140000E+0000 (POPRAWNYCH : 6) Epsilon maszynowy dla liczby y
: 9.36267596785001E-0008
Kierownik kursu:
Zespół dydaktyczny:
doc. dr inż. Jarosław Szymańda
dr inż. Lesław Ładniak, dr inż. Jerzy Piotrowicz, dr inż. Leszek Woźny