1 Wstęp
Dziś poznajemy możliwości obliczeniowe komputera/programu.
1.1 Cel laboratorium
Celem laboratorium jest opracowanie i przedstawienie metodologii sprawdzenia możliwości obliczeniowych komputera/programu, czyli:
- największej liczby dodatniej,
- najmniejszej liczby ujemnej,
- najmniejszej liczby dodatniej (większej od zera)
- używanej liczby cyfr znaczących.
Zadanie należy wykonać korzystając dostępnego w laboratorium arkusza kalkulacyjnego.
1.2 Pytania
- Sposób zapisu liczb zmiennoprzecinkowych.
- Sposób zapisu liczb zmiennoprzecinkowych (komputer!).
- Co to jest mantysa?
- Co to jest cecha?
2 Zadania do wykonania
- (Szczegółowy) Opis metodologii postępowania wraz z uzasadnieniem.
- Arkusz kalkulacyjny wykonujący obliczenia według przedstawionej metodologii:
- największej liczby dodatniej,
- najmniejszej liczby ujemnej,
- najmniejszej liczby dodatniej (większej od zera)
- używanej liczby cyfr znaczących.
Dodatkowo, co najmniej 2 (słownie 2) zadania z poniższej listy:
- implementacja algorytmu E w arkuszu kalkulacyjnym.
- implementacja algorytmu konwersji liczby całkowitej dziesiętnej na dwójkową w arkuszu kalkulacyjnym
- implementacja algorytmu konwersji ułamka właściwego dziesiętnego na dwójkowy w arkuszu kalkulacyjnym
- implementacja algorytmu znajdowania miejsca zerowego metodą połowienia w arkuszu kalkulacyjnym
Im więcej zadań tym lepsza ocena…
3 Materiały pomocnicze
3.1 Algorytm E
Oto jedna z jego wersji algorytmu Euklidesa:
Dane są dwie dodatnie liczby całkowite i , należy znaleźć ich największy wspólny dzielnik (NWD) tj. największą dodatnią liczbę całkowitą, która dzieli całkowicie zarówno jak i .
- [Znajdowanie reszty] Podziel przez i niech oznacza resztę z tego dzielenia. (Mamy .)
- [Czy wyszło zero?] Jeśli zakończ algorytm; odpowiedzią jest .
- [Upraszczanie] Wykonaj , i wróć do kroku 1.
Kolejne wartości , i zapisujemy w kolejnych wierszach arkusza.
3.2 Konwersja liczby całkowitej dziesiętnej do postaci dwójkowej
Bierzemy konwertowaną liczbę i dzielimy ją przez dwa (obliczenia wykonujemy „z resztą”, to znaczy . Zapisujemy resztę „na boku” (będzie to cyfra rozwinięcia dwójkowego). Powyższą operację powtarzamy dla wyniku dzielenia, tak długo, aż będzie on równy zero. Zapisane reszty odczytane „od końca” dadzą nam kolejne cyfry rozwinięcia dwójkowego liczby .
Wyniki dzielenia to jedna kolumna, reszty druga.
3.3 Konwersja ułamka właściwego dziesiętnego na dwójkowy
Ułamek dziesiętny mnożymy przez dwa. Osobno zapisujemy część całkowitą (będzie to kolejna cyfra rozwinięcia dwójkowego), a osobno część ułamkową. Powyższą procedurę (za każdym razem biorąc tylko część ułamkową) powtarzamy tak długo, aż będzie ona równa 0.
3.4 Znajdowanie miejsca zerowego metodą połowienia
- Zadanie jest proste. Mamy funkcję ciągłą i taką, że na końcach pewnego przedziału . Zatem, funkcja ta zmienia znak w przedziale (co najmniej raz) ma zatem (co najmniej jedno) miejsce zerowe w tym przedziale.
- Przedział dzielimy na pół (wyznaczając odpowiednio punkt ).
- Odrzucamy ten z przedziałów , w którym funkcja nie zmienia znaku (to znaczy ma ten sam znak na końcach przedziału).
- Postępowanie prowadzimy tak długo, aż długość przedziału będzie mniejsza od zadanej liczby .
Uwaga: Obliczenia najprościej wykonać dla funkcji wybierając i .
Realizacja tego problemu w arkuszu kalkulacyjnym sprowadzi się do utworzenia trzech kolumn z liczbami A, B, C. Na pierwszych miejscach w kolumnach A i B wpisujemy końce przedziału. W kolumnie C wyliczamy środek przedziału . Kolejne wartości A i B muszą być wstawione tak, aby realizowały powyższy algorytm. Użyć trzeba instrukcji jeżeli. W kolejnych wierszach wystarczy operacje kopiować…