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

Sposób na zadania


                 Krok 3
                 Dane przechowamy w tablicy struktur o nazwie t. Dwie pierwsze informacje: podstawa systemu
                 i zapis liczby zostaną pobrane wprost z pliku, zapis dziesiętny liczby otrzymamy po zastosowaniu
                 funkcji ToDec, która oblicza wartość dziesiętną liczby z pliku.
                 Krok 4
                 Po posortowaniu liczb za pomocą funkcji sort z parametrem porownaj dane zapiszemy do pliku
                 z wykorzystaniem zmiennej plikowej typu ofstream.
                 Odpowiedź: Kod źródłowy programu realizującego opisany algorytm wygląda następująco:

                  1.  #include <iostream>
                  2.  #include <fstream>
                  3.  #include <string>
                  4.  #include <algorithm>
                  5.
                  6.  using namespace std;
                  7.
                  8.  struct liczba
                  9.  {
                  10.     int p;    // p - podstawa systemu liczbowego
                  11.     string s; // s - zapis liczby w systemie o podstawie p
                  12.     int d;    // d - wartość dziesiętna liczby s
                  13. };
                  14.
                  15. bool porownaj(liczba a, liczba b)
                  16. {
                  17.     return (a.d<b.d);
                  18. }
                  19.
                  20. int ToDec(int p, string s)
                  21. {
                  22.     int w=0;
                  23.     for (int i=0;i<s.size();i++) w=w*p+s[i]-48;
                  24.     return w;
                  25. }
                  26.
                  27. int main()
                  28. {
                  29.     const int N=100;
                  30.     liczba t[N];
                  31.     ifstream we("WUZ2_zad1_liczby.txt");
                  32.     for (int i=0;i<N;i++)
                  33.     {
                  34.         we>>t[i].p>>t[i].s;
                  35.         t[i].d=ToDec(t[i].p,t[i].s);
                  36.     }
                  37.     we.close();
                  38.     sort(t,t+N,porownaj);



                                                                                             231
   2   3   4   5   6   7   8   9   10   11   12