W pliku cyfry.txt znajdują się liczby w systemie dwójkowym.

Napisz program(C++) do następujących podpunktów:

a. ile jest liczb w pliku cyfry.txt które mają parzystą liczbę cyfr (bitów)

b. ile jest liczb w pliku cyfry.txt które mają parzystą liczbę „jedynek”

c. ile jest liczb w pliku cyfry.txt które po przeliczeniu na system dziesiętny mają parzystą liczbę cyfr, wypisz te liczby (w systemie dziesiętnym) na ekranie

d. ile jest liczb w pliku cyfry.txt które mają nieparzystą liczbę sumę cyfr w systemie dziesiętnym

e. Wypisz na ekranie wszystkie liczby z pliku cyfry.txt które składają się z samych jedynek


W Pliku Cyfrytxt Znajdują Się Liczby W Systemie DwójkowymNapisz ProgramC Do Następujących Podpunktówa Ile Jest Liczb W Pliku Cyfrytxt Które Mają Parzystą Liczbę class=

Odpowiedź :

Odpowiedź

Przed 9:45 rozwiązanie zawierało błędny kod w wierszach 44-45. Przepraszam!

Pierwsze dwa załączniki zawierają program działający pod Code::Blocks i Dev-C++.

Trzeci załącznik zawiera wyniki w pliku PDF (jako czysty tekst – co niestety brzydko wygląda – poniżej). Na wszelki wypadek w czwartym i piątym załączniku podałam wersję bez polskich liter.

Starałam się aby program (zmienne) był samo-dokumentujący się. Nawet użyłam struktury  list,  aby było oczywistym, że zmienne  wyniki_c  oraz wyniki_e  są listami liczb.

Trudne momenty?

  • 35. Przeliczenie tekstu  ( zmienna wiersz )  zawierającego liczbę o podstawie liczbowej będącej trzecim argumentem  ( stała podstawa )  funkcji  stoi  na liczbę całkowitą ( czyli na int ).
  • 39 oraz 57. Funkcja  emplace_back  dopisuje element na końcu listy.
  • 70 oraz 78. Tak wygląda pętla, która przechodzi przez wszystkie elementy listy. Można sobie gdzieś zapisać w zeszycie i używać.

Wyjaśnienie

Bardzo mi pomogło, że wiedziałam o konieczności testowania przy użyciu Code::Blocks oraz Dev-C++.

Różnice pomiędzy wersjami z polskimi literami i bez są następujące:

  • zbędne są wiersze 1, 3 oraz 15 (oczywiście nie potrzeba zostawiać pustej linii, zrobiłam tak tylko po to aby zachować tę samą numerację w obu wersjach)
  • w wierszach 60-79 zamiast    wprintf(L    jest printf(    oraz zamiast polskich liter są odpowiadające im znaki ASCII.

P.S.

Taka ciekawostka... Gdyby ktoś chciał ten program w wersji z polskimi znakami skompilować używając Visual Studio, to w wierszach 71 oraz 79 zamiast  %s  musiałoby być  %S.

Wyniki

a)

W pliku było 507 liczb mających parzystą liczbę cyfr (bitów).

b)

W pliku było 490 liczb mających parzystą liczbę „jedynek”.

c)

W pliku było 440 liczb, które po przeliczeniu na system dziesiętny

miały parzystą liczbę cyfr.

Były to następujące liczby:

19 6162 27 4605 4575 3745 7509 3537 6967 9217 8068 6790 2431 8759 60 11 27 6308 8328 4021 1563 5889 15 1854 6098 3020 1718 1142 3470 93 19 63 4220 3434 50 8187 9637 4066 17 33 7237 3375 13 1440 4167 62 44 15 1162 39 5274 64 8541 32 6681 1381 14 74 69 78 1793 62 30 46 1208 96 50 54 6372 20 7849 5952 8917 5935 8887 34 12 14 5874 11 76 65 30 28 36 64 18 66 29 17 1725 37 39 13 18 31 49 63 30 90 30 16 16 5494 1342 2547 62 40 7509 43 92 74 23 3852 16 37 88 15 1280 7564 3602 2152 1297 19 18 58 1195 1986 79 1259 1108 73 14 1896 19 10 3846 24 18 6911 20 23 20 1115 73 54 41 6258 5708 1230 1900 2674 64 8761 13 6399 9395 1276 11 5306 5898 12 1062 3539 1373 1016 19 1429 3363 62 1985 27 26 2001 3949 2794 1780 22 26 69 54 94 9283 9308 1431 1581 4323 3180 7151 1743 7321 1647 1240 1020 6565 5091 3386 12 1075 91 3322 6366 6695 3283 2191 84 6443 2485 33 3700 55 25 88 78 45 2259 1635 3393 1906 6456 5442 1309 1799 27 5320 3815 1499 7989 4109 1805 6749 43 11 99 41 36 65 1743 7696 1915 1877 4365 2002 1804 6801 1013 1002 1006 1341 4218 1921 1379 2034 3331 61 40 9851 1808 54 65 7841 1209 90 92 3514 2038 4001 6980 2310 2023 3214 6877 8528 60 45 44 86 82 1725 3110 1373 98 73 42 2331 8565 2411 5464 4486 5044 14 2806 2639 3814 2531 3760 1955 97 66 4132 22 56 37 36 42 5326 3540 2854 2145 4046 1130 4734 5979 3627 2283 71 2620 5935 6216 3401 3869 7158 21 2167 49 6883 1731 5797 60 6972 8534 5582 2087 5128 5985 3495 2598 12 7105 9576 2042 2124 3607 1572 2477 35 1862 4353 7680 1095 1990 2214 16 3964 3044 3549 5954 87 4069 1829 99 1126 6968 9240 7898 2741 1607 3719 3170 1766 97 3820 7052 1409 6641 3129 1061 2291 11 7639 1330 6252 8560 1627 2711 1834 8129 4010 5278 3172 6526 8130 7783 2868 30 1746 8025 6505 4083 3061 1160 2300 32 58 1800 4057 1775 18 4612 73 93 77 1902 2165 33 1814 4538 2778 1761 2039 7377 1967 70 1154 2310 3510 4307 2374 9331 2904 3217 3318 2095 2681 5350 10 3061 3884 65 1222

d)

W pliku było 504 liczb mających nieparzystą sumę cyfr w systemie dziesiętnym.

e)

Liczby z pliku cyfry.txt składające się z samych jedynek:

111 1111 111111 111 1111 11 11 11 111 11 111 111 11111 111111 111 1111 111 111 111 111 11 111 111 111 11 11

Zobacz obrazek 0AB
Zobacz obrazek 0AB
Zobacz obrazek 0AB
Zobacz obrazek 0AB