Page 2 - Informatyka na czasie. Wiesz, umiesz, zdasz. Podręcznik klasa 2 i 3
P. 2

WIESZ, UMIESZ, ZDASZ


            Sposób na zadania




               Zadanie 1
            W pliku, który otrzymasz od nauczyciela (np. WUZ2_zad1_liczby.txt), w kolejnych 100 wierszach są
            zapisane po dwie liczby oddzielone spacją. Pierwsza liczba (z zakresu od 2 do 10) oznacza podstawę
            pozycyjnego systemu liczbowego, w którym zapisana jest druga liczba (wartość liczby w systemie
                                              16
            dziesiętnym mieści się w zakresie od 0 do 2  – 1). Oto pięć początkowych wierszy pliku:
            5 2341
            2 1111111100000000
            9 3333
            6 550012
            4 3333
            Napisz program lub programy rozwiązujące poniższe zadania. Odpowiedzi zapisz w sposób wskazany
            przez nauczyciela.

            Zadanie 1.1 (0–3)
            Oblicz sumę wszystkich liczb z drugiej kolumny i zapisz wynik w systemie dziesiętnym. Suma pięciu
            początkowych liczb wynosi 113 709.

              Rozwiązanie
              Tagi: systemy liczbowe, zamiana reprezentacji liczb między systemami liczbowymi, działania na
              liczbach w różnych systemach pozycyjnych, kod ASCII

              Krok 1
              Aby rozwiązać to zadanie, wystarczy odczytywać liczby z kolejnych wierszy pliku, zamieniać je
              na postać dziesiętną i sumować.
              Krok 2
              Każda z liczb do sumowania jest nie większa niż 65 535. Ponieważ jest ich 100, suma nie będzie
              większa niż 6 553 500. Zmienna przechowująca sumę może więc być typu int.
              Krok 3
              Zamianę liczb na postać dziesiętną możemy zrealizować z wykorzystaniem funkcji. Nazwijmy ją
              ToDec. Pobierze ona z pliku podstawę systemu liczbowego p i napis s, przechowujący liczbę.
              Podczas przeliczania wartości liczby na postać dziesiętną należy uwzględnić kody ASCII cyfr
              od 0 do 9, które zaczynają się od 48 (patrz s. 37).
              Krok 4
              Dane z pliku tekstowego odczytamy z wykorzystaniem zmiennej plikowej we typu ifstream
              (patrz s. 336–338).
              Odpowiedź: Kod źródłowy programu rozwiązującego to zadanie może być następujący:

               1.  #include <iostream>
               2.  #include <fstream>
               3.  #include <string>
               4.
               5.  using namespace std;
               6.


           226
   1   2   3   4   5   6   7