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