Laboratorium 5 (ZIP): Możliwosci obliczeniowe komputera


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

  1. Sposób zapisu liczb zmiennoprzecinkowych.
  2. Sposób zapisu liczb zmiennoprzecinkowych (komputer!).
  3. Co to jest mantysa?
  4. Co to jest cecha?

2 Zadania do wykonania

  1. (Szczegółowy) Opis metodologii postępowania wraz z uzasadnieniem.
  2. 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:

    1. implementacja algorytmu E w arkuszu kalkulacyjnym.
    2. implementacja algorytmu konwersji liczby całkowitej dziesiętnej na dwójkową w arkuszu kalkulacyjnym
    3. implementacja algorytmu konwersji ułamka właściwego dziesiętnego na dwójkowy w arkuszu kalkulacyjnym
    4. 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 m n , należy znaleźć ich największy wspólny dzielnik (NWD) tj. największą dodatnią liczbę całkowitą, która dzieli całkowicie zarówno m jak i n .

  1. [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 ≤ r < n .)
  2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n .
  3. [Upraszczanie] Wykonaj m ← n , n ← r i wróć do kroku 1.

Kolejne wartości m , n r zapisujemy w kolejnych wierszach arkusza.

3.2 Konwersja liczby całkowitej dziesiętnej do postaci dwójkowej

Bierzemy konwertowaną liczbę x i dzielimy ją przez dwa (obliczenia wykonujemy „z resztą”, to znaczy 11÷ 2 = 5 r 1 . 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 x .

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

  1. Zadanie jest proste. Mamy funkcję f(x) ciągłą i taką, że na końcach pewnego przedziału [A, B] f(A )f(B) < 0 . Zatem, funkcja ta zmienia znak w przedziale [A, B] (co najmniej raz) ma zatem (co najmniej jedno) miejsce zerowe w tym przedziale.
  2. Przedział [A, B] dzielimy na pół (wyznaczając odpowiednio punkt C ).
  3. Odrzucamy ten z przedziałów [A, C] , [C,B ] w którym funkcja nie zmienia znaku (to znaczy ma ten sam znak na końcach przedziału).
  4. Postępowanie prowadzimy tak długo, aż długość przedziału [A,B ] będzie mniejsza od zadanej liczby ε .

Uwaga: Obliczenia najprościej wykonać dla funkcji sin wybierając 0 < A < 3 3,5 < B < 6 .

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 [A, B] . 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ć…

4 Instrukcja w formacie PDF

Instrukcja w formie PDF.