Napisz program, który przekształci liczbę zapisaną w systemie szesnastkowym do postaci w systemie dziesiętnym. Wynik działania programu przetestuj dla liczba = "3C5A7D".
W rozwiązaniu wykorzystaj schemat Hornera.
Specyfikacja:
Dane:
liczba – łańcuch znaków; liczba zapisana w systemie szesnastkowym
Wynik:
Program wypisuje na wyjście standardowe liczbę w systemie dziesiętnym.
RuY2yVYqdIXL21
Przykładowe rozwiązanie zadania:
Linia 1. def wez podkreślnik wartosc podkreślnik liczbowa otwórz nawias okrągły cyfra zamknij nawias okrągły dwukropek.
Linia 2. if cyfra znak równości znak równości cudzysłów A cudzysłów dwukropek.
Linia 3. return 10.
Linia 4. elif cyfra znak równości znak równości cudzysłów B cudzysłów dwukropek.
Linia 5. return 11.
Linia 6. elif cyfra znak równości znak równości cudzysłów C cudzysłów dwukropek.
Linia 7. return 12.
Linia 8. elif cyfra znak równości znak równości cudzysłów D cudzysłów dwukropek.
Linia 9. return 13.
Linia 10. elif cyfra znak równości znak równości cudzysłów E cudzysłów dwukropek.
Linia 11. return 14.
Linia 12. elif cyfra znak równości znak równości cudzysłów F cudzysłów dwukropek.
Linia 13. return 15.
Linia 14. else dwukropek.
Linia 15. return int otwórz nawias okrągły cyfra zamknij nawias okrągły.
Linia 17. if podkreślnik podkreślnik name podkreślnik podkreślnik znak równości znak równości cudzysłów podkreślnik podkreślnik main podkreślnik podkreślnik cudzysłów dwukropek.
Linia 18. liczba znak równości cudzysłów 3C5A7D cudzysłów.
Linia 19. liczba podkreślnik dziesietna znak równości wez podkreślnik wartosc podkreślnik liczbowa otwórz nawias okrągły liczba otwórz nawias kwadratowy 0 zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 20. liczba podkreślnik binarna znak równości cudzysłów cudzysłów.
Linia 22. for i in range otwórz nawias okrągły 1 przecinek len otwórz nawias okrągły liczba zamknij nawias okrągły zamknij nawias okrągły dwukropek.
Linia 23. wartosc podkreślnik cyfry znak równości wez podkreślnik wartosc podkreślnik liczbowa otwórz nawias okrągły liczba otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 24. liczba podkreślnik dziesietna znak równości liczba podkreślnik dziesietna asterysk 16 plus wartosc podkreślnik cyfry.
Linia 26. print otwórz nawias okrągły liczba podkreślnik dziesietna zamknij nawias okrągły.
21
Ćwiczenie 2
Napisz program, który przekształci liczbę zapisaną w systemie szesnastkowym do postaci binarnej bez zamiany na system dziesiętny, a następnie zliczy wystąpienia cyfry 1 w liczbie binarnej. Wynik działania programu przetestuj dla liczba = "3C5A7D".
Specyfikacja:
Dane:
liczba – łańcuch znaków; liczba zapisana w systemie szesnastkowym
Wynik:
Program wypisuje na wyjście standardowe liczbę cyfr 1, które występują w uzyskanej liczbie w systemie binarnym.
RLj8GHwXS7pJB1
Przykładowe rozwiązanie zadania:
Linia 1. def wez podkreślnik wartosc podkreślnik binarna otwórz nawias okrągły cyfra zamknij nawias okrągły dwukropek.
Linia 2. mozliwosci znak równości otwórz nawias klamrowy.
Linia 3. cudzysłów 0 cudzysłów dwukropek cudzysłów 0000 cudzysłów przecinek.
Linia 4. cudzysłów 1 cudzysłów dwukropek cudzysłów 0001 cudzysłów przecinek.
Linia 5. cudzysłów 2 cudzysłów dwukropek cudzysłów 0010 cudzysłów przecinek.
Linia 6. cudzysłów 3 cudzysłów dwukropek cudzysłów 0011 cudzysłów przecinek.
Linia 7. cudzysłów 4 cudzysłów dwukropek cudzysłów 0100 cudzysłów przecinek.
Linia 8. cudzysłów 5 cudzysłów dwukropek cudzysłów 0101 cudzysłów przecinek.
Linia 9. cudzysłów 6 cudzysłów dwukropek cudzysłów 0110 cudzysłów przecinek.
Linia 10. cudzysłów 7 cudzysłów dwukropek cudzysłów 0111 cudzysłów przecinek.
Linia 11. cudzysłów 8 cudzysłów dwukropek cudzysłów 1000 cudzysłów przecinek.
Linia 12. cudzysłów 9 cudzysłów dwukropek cudzysłów 1001 cudzysłów przecinek.
Linia 13. cudzysłów A cudzysłów dwukropek cudzysłów 1010 cudzysłów przecinek.
Linia 14. cudzysłów B cudzysłów dwukropek cudzysłów 1011 cudzysłów przecinek.
Linia 15. cudzysłów C cudzysłów dwukropek cudzysłów 1100 cudzysłów przecinek.
Linia 16. cudzysłów D cudzysłów dwukropek cudzysłów 1101 cudzysłów przecinek.
Linia 17. cudzysłów E cudzysłów dwukropek cudzysłów 1110 cudzysłów przecinek.
Linia 18. cudzysłów F cudzysłów dwukropek cudzysłów 1111 cudzysłów przecinek.
Linia 19. zamknij nawias klamrowy.
Linia 20. return mozliwosci otwórz nawias kwadratowy cyfra zamknij nawias kwadratowy.
Linia 22. def konwertuj podkreślnik szesnastkowy podkreślnik na podkreślnik binarny otwórz nawias okrągły liczba zamknij nawias okrągły dwukropek.
Linia 23. wynik znak równości cudzysłów cudzysłów.
Linia 25. for i in range otwórz nawias okrągły len otwórz nawias okrągły liczba zamknij nawias okrągły zamknij nawias okrągły dwukropek.
Linia 26. wynik plus znak równości wez podkreślnik wartosc podkreślnik binarna otwórz nawias okrągły liczba otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 27. return wynik.
Linia 30. liczba znak równości cudzysłów 3C5A7D cudzysłów.
Linia 31. binarna znak równości konwertuj podkreślnik szesnastkowy podkreślnik na podkreślnik binarny otwórz nawias okrągły liczba zamknij nawias okrągły.
Linia 32. liczba podkreślnik jedynek znak równości 0.
Linia 33. for cyfra in binarna dwukropek.
Linia 34. if cyfra znak równości znak równości apostrof 1 apostrof dwukropek.
Linia 35. liczba podkreślnik jedynek plus znak równości 1.
Linia 36. print otwórz nawias okrągły liczba podkreślnik jedynek zamknij nawias okrągły.
31
Ćwiczenie 3
Napisz program, który przekształci liczbę zapisaną w systemie szesnastkowym do postaci binarnej tak, aby zwrócona liczba binarna nie zawierała nadmiarowych nieznaczących zer. Wynik działania programu przetestuj dla liczba = "1C5A7D".
Specyfikacja:
Dane:
liczba – łańcuch znaków; liczba zapisana w systemie szesnastkowym
Wynik:
Program wypisuje na wyjście standardowe liczbę w systemie binarnym bez nadmiarowych nieznaczących zer.
R145Iqjk8H5VY1
Przykładowe rozwiązanie zadania:
Linia 1. def wez podkreślnik wartosc podkreślnik binarna otwórz nawias okrągły cyfra zamknij nawias okrągły dwukropek.
Linia 2. mozliwosci znak równości otwórz nawias klamrowy.
Linia 3. cudzysłów 0 cudzysłów dwukropek cudzysłów 0000 cudzysłów przecinek.
Linia 4. cudzysłów 1 cudzysłów dwukropek cudzysłów 0001 cudzysłów przecinek.
Linia 5. cudzysłów 2 cudzysłów dwukropek cudzysłów 0010 cudzysłów przecinek.
Linia 6. cudzysłów 3 cudzysłów dwukropek cudzysłów 0011 cudzysłów przecinek.
Linia 7. cudzysłów 4 cudzysłów dwukropek cudzysłów 0100 cudzysłów przecinek.
Linia 8. cudzysłów 5 cudzysłów dwukropek cudzysłów 0101 cudzysłów przecinek.
Linia 9. cudzysłów 6 cudzysłów dwukropek cudzysłów 0110 cudzysłów przecinek.
Linia 10. cudzysłów 7 cudzysłów dwukropek cudzysłów 0111 cudzysłów przecinek.
Linia 11. cudzysłów 8 cudzysłów dwukropek cudzysłów 1000 cudzysłów przecinek.
Linia 12. cudzysłów 9 cudzysłów dwukropek cudzysłów 1001 cudzysłów przecinek.
Linia 13. cudzysłów A cudzysłów dwukropek cudzysłów 1010 cudzysłów przecinek.
Linia 14. cudzysłów B cudzysłów dwukropek cudzysłów 1011 cudzysłów przecinek.
Linia 15. cudzysłów C cudzysłów dwukropek cudzysłów 1100 cudzysłów przecinek.
Linia 16. cudzysłów D cudzysłów dwukropek cudzysłów 1101 cudzysłów przecinek.
Linia 17. cudzysłów E cudzysłów dwukropek cudzysłów 1110 cudzysłów przecinek.
Linia 18. cudzysłów F cudzysłów dwukropek cudzysłów 1111 cudzysłów przecinek.
Linia 19. zamknij nawias klamrowy.
Linia 20. return mozliwosci otwórz nawias kwadratowy cyfra zamknij nawias kwadratowy.
Linia 22. def konwertuj podkreślnik szesnastkowy podkreślnik na podkreślnik binarny otwórz nawias okrągły liczba zamknij nawias okrągły dwukropek.
Linia 23. wynik znak równości cudzysłów cudzysłów.
Linia 25. for i in range otwórz nawias okrągły len otwórz nawias okrągły liczba zamknij nawias okrągły zamknij nawias okrągły dwukropek.
Linia 26. wynik plus znak równości wez podkreślnik wartosc podkreślnik binarna otwórz nawias okrągły liczba otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 28. indeks podkreślnik pierwszej podkreślnik jedynki znak równości 0.
Linia 29. for i in range otwórz nawias okrągły len otwórz nawias okrągły wynik zamknij nawias okrągły zamknij nawias okrągły dwukropek.
Linia 30. if wynik otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości cudzysłów 1 cudzysłów dwukropek.
Linia 31. indeks podkreślnik pierwszej podkreślnik jedynki znak równości i.
Linia 32. break.
Linia 33. return wynik otwórz nawias kwadratowy indeks podkreślnik pierwszej podkreślnik jedynki dwukropek len otwórz nawias okrągły wynik zamknij nawias okrągły zamknij nawias kwadratowy.
Linia 34. kratka Można także użyć wbudowanej funkcji dwukropek.
Linia 35. kratka wynik kropka lstrip otwórz nawias okrągły cudzysłów 0 cudzysłów zamknij nawias okrągły.
Linia 38. liczba znak równości cudzysłów 1C5A7D cudzysłów.
Linia 39. print otwórz nawias okrągły konwertuj podkreślnik szesnastkowy podkreślnik na podkreślnik binarny otwórz nawias okrągły liczba zamknij nawias okrągły zamknij nawias okrągły.