Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Przedstawiony program powinien konwertować część całkowitą liczby z systemu dziesiętnego do dwójkowego. Znalazł się w nim jednak błąd i program podaje złe wyniki. Popraw odpowiednie instrukcje.
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny string zamknij nawias ostrokątny.
Linia 4. std dwukropek dwukropek string konwertujCzescCalkowita otwórz nawias okrągły int liczba zamknij nawias okrągły otwórz nawias klamrowy.
Linia 5. std dwukropek dwukropek string bin znak równości cudzysłów cudzysłów średnik.
Linia 6. int reszta znak równości 0 średnik.
Linia 8. while otwórz nawias okrągły liczba zamknij nawias ostrokątny 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 9. reszta znak równości liczba procent 2 średnik.
Linia 10. liczba znak równości liczba prawy ukośnik 2 średnik.
Linia 11. bin znak równości bin plus std dwukropek dwukropek to podkreślnik string otwórz nawias okrągły reszta zamknij nawias okrągły średnik.
Linia 12. zamknij nawias klamrowy.
Linia 14. std dwukropek dwukropek string binResult znak równości cudzysłów cudzysłów średnik.
Linia 16. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny bin kropka length otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 17. binResult plus znak równości bin otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 18. zamknij nawias klamrowy.
Linia 20. return binResult średnik.
Linia 21. zamknij nawias klamrowy.
Linia 24. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 25. int liczba znak równości 19 średnik.
Linia 27. std dwukropek dwukropek cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów Wynik dwukropek cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny konwertujCzescCalkowita otwórz nawias okrągły liczba zamknij nawias okrągły otwórz nawias ostrokątny otwórz nawias ostrokątny std dwukropek dwukropek endl średnik.
Linia 29. return 0 średnik.
Linia 30. zamknij nawias klamrowy.
#include <iostream>
#include <string>
std::string konwertujCzescCalkowita(int liczba) {
std::string bin = "";
int reszta = 0;
while (liczba > 0) {
reszta = liczba % 2;
liczba = liczba / 2;
bin = bin + std::to_string(reszta);
}
std::string binResult = "";
for (int i = 0; i < bin.length(); i++) {
binResult += bin[i];
}
return binResult;
}
int main() {
int liczba = 19;
std::cout << "Wynik: "<< konwertujCzescCalkowita(liczba) << std::endl;
return 0;
}
Przykładowe rozwiązanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny string zamknij nawias ostrokątny.
Linia 4. std dwukropek dwukropek string konwertujCzescCalkowita otwórz nawias okrągły int liczba zamknij nawias okrągły otwórz nawias klamrowy.
Linia 5. std dwukropek dwukropek string bin znak równości cudzysłów cudzysłów średnik.
Linia 6. int reszta znak równości 0 średnik.
Linia 8. while otwórz nawias okrągły liczba zamknij nawias ostrokątny 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 9. reszta znak równości liczba procent 2 średnik.
Linia 10. liczba znak równości liczba prawy ukośnik 2 średnik.
Linia 11. bin znak równości bin plus std dwukropek dwukropek to podkreślnik string otwórz nawias okrągły reszta zamknij nawias okrągły średnik.
Linia 12. zamknij nawias klamrowy.
Linia 14. std dwukropek dwukropek string binResult znak równości cudzysłów cudzysłów średnik.
Linia 16. for otwórz nawias okrągły int i znak równości bin kropka length otwórz nawias okrągły zamknij nawias okrągły minus 1 średnik i zamknij nawias ostrokątny znak równości 0 średnik i minus minus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 17. binResult plus znak równości bin otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 18. zamknij nawias klamrowy.
Linia 20. return binResult średnik.
Linia 21. zamknij nawias klamrowy.
Linia 24. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 25. int liczba znak równości 19 średnik.
Linia 27. std dwukropek dwukropek cout otwórz nawias ostrokątny otwórz nawias ostrokątny konwertujCzescCalkowita otwórz nawias okrągły liczba zamknij nawias okrągły otwórz nawias ostrokątny otwórz nawias ostrokątny std dwukropek dwukropek endl średnik.
Linia 29. return 0 średnik.
Linia 30. zamknij nawias klamrowy.
#include <iostream>
#include <string>
std::string konwertujCzescCalkowita(int liczba) {
std::string bin = "";
int reszta = 0;
while (liczba > 0) {
reszta = liczba % 2;
liczba = liczba / 2;
bin = bin + std::to_string(reszta);
}
std::string binResult = "";
for (int i = bin.length() - 1; i >= 0; i--) {
binResult += bin[i];
}
return binResult;
}
int main() {
int liczba = 19;
std::cout << konwertujCzescCalkowita(liczba) << std::endl;
return 0;
}
2
Ćwiczenie 2
R1CtPRaxtDdfx
Wysłuchaj nagrania abstraktu i zastanów się, czego jeszcze chciałbyś się dowiedzieć w związku z tematem lekcji.
Wysłuchaj nagrania abstraktu i zastanów się, czego jeszcze chciałbyś się dowiedzieć w związku z tematem lekcji.
Przedstawiony program powinien konwertować część ułamkową liczby z systemu dziesiętnego do dwójkowego. Znalazł się w nim jednak błąd i program podaje złe wyniki. Popraw wadliwe instrukcje.
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny string zamknij nawias ostrokątny.
Linia 4. std dwukropek dwukropek string konwertujCzescUlamkowa otwórz nawias okrągły double liczba przecinek int precyzja zamknij nawias okrągły otwórz nawias klamrowy.
Linia 5. int precyzjaStart znak równości 0 średnik.
Linia 6. std dwukropek dwukropek string wynik znak równości cudzysłów 0 przecinek cudzysłów średnik.
Linia 8. while otwórz nawias okrągły precyzjaStart otwórz nawias ostrokątny precyzja zamknij nawias okrągły otwórz nawias klamrowy.
Linia 9. liczba znak równości liczba prawy ukośnik 2 średnik.
Linia 11. if otwórz nawias okrągły liczba zamknij nawias ostrokątny znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 12. liczba znak równości liczba minus 1 średnik.
Linia 13. wynik znak równości wynik plus cudzysłów 1 cudzysłów średnik.
Linia 14. zamknij nawias klamrowy else otwórz nawias klamrowy.
Linia 15. wynik znak równości wynik plus cudzysłów 0 cudzysłów średnik.
Linia 16. zamknij nawias klamrowy.
Linia 18. precyzjaStart plus plus średnik.
Linia 19. zamknij nawias klamrowy.
Linia 21. return wynik średnik.
Linia 22. zamknij nawias klamrowy.
Linia 24. int main otwórz nawias okrągły int argc przecinek const char asterysk argv otwórz nawias kwadratowy zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 25. double liczba znak równości 0 kropka 694 średnik.
Linia 26. int precyzja znak równości 4 średnik.
Linia 28. std dwukropek dwukropek cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów Wynik dwukropek cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny konwertujCzescUlamkowa otwórz nawias okrągły liczba przecinek precyzja zamknij nawias okrągły otwórz nawias ostrokątny otwórz nawias ostrokątny std dwukropek dwukropek endl średnik.
Linia 30. return 0 średnik.
Linia 31. zamknij nawias klamrowy.
#include <iostream>
#include <string>
std::string konwertujCzescUlamkowa(double liczba, int precyzja) {
int precyzjaStart = 0;
std::string wynik = "0,";
while (precyzjaStart < precyzja) {
liczba = liczba / 2;
if (liczba >= 1) {
liczba = liczba - 1;
wynik = wynik + "1";
} else {
wynik = wynik + "0";
}
precyzjaStart++;
}
return wynik;
}
int main(int argc, const char * argv[]) {
double liczba = 0.694;
int precyzja = 4;
std::cout << "Wynik: " << konwertujCzescUlamkowa(liczba, precyzja) << std::endl;
return 0;
}
Przykładowe rozwiązanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny string zamknij nawias ostrokątny.
Linia 4. std dwukropek dwukropek string konwertujCzescUlamkowa otwórz nawias okrągły double liczba przecinek int precyzja zamknij nawias okrągły otwórz nawias klamrowy.
Linia 5. int precyzjaStart znak równości 0 średnik.
Linia 6. std dwukropek dwukropek string wynik znak równości cudzysłów 0 przecinek cudzysłów średnik.
Linia 8. while otwórz nawias okrągły precyzjaStart otwórz nawias ostrokątny precyzja zamknij nawias okrągły otwórz nawias klamrowy.
Linia 9. liczba znak równości liczba asterysk 2 średnik.
Linia 11. if otwórz nawias okrągły liczba zamknij nawias ostrokątny znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 12. liczba znak równości liczba minus 1 średnik.
Linia 13. wynik znak równości wynik plus cudzysłów 1 cudzysłów średnik.
Linia 14. zamknij nawias klamrowy else otwórz nawias klamrowy.
Linia 15. wynik znak równości wynik plus cudzysłów 0 cudzysłów średnik.
Linia 16. zamknij nawias klamrowy.
Linia 18. precyzjaStart plus plus średnik.
Linia 19. zamknij nawias klamrowy.
Linia 21. return wynik średnik.
Linia 22. zamknij nawias klamrowy.
Linia 24. int main otwórz nawias okrągły int argc przecinek const char asterysk argv otwórz nawias kwadratowy zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 25. double liczba znak równości 0 kropka 694 średnik.
Linia 26. int precyzja znak równości 4 średnik.
Linia 28. std dwukropek dwukropek cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów Wynik dwukropek cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny konwertujCzescUlamkowa otwórz nawias okrągły liczba przecinek precyzja zamknij nawias okrągły otwórz nawias ostrokątny otwórz nawias ostrokątny std dwukropek dwukropek endl średnik.
Linia 30. return 0 średnik.
Linia 31. zamknij nawias klamrowy.
#include <iostream>
#include <string>
std::string konwertujCzescUlamkowa(double liczba, int precyzja) {
int precyzjaStart = 0;
std::string wynik = "0,";
while (precyzjaStart < precyzja) {
liczba = liczba * 2;
if (liczba >= 1) {
liczba = liczba - 1;
wynik = wynik + "1";
} else {
wynik = wynik + "0";
}
precyzjaStart++;
}
return wynik;
}
int main(int argc, const char * argv[]) {
double liczba = 0.694;
int precyzja = 4;
std::cout << "Wynik: " << konwertujCzescUlamkowa(liczba, precyzja) << std::endl;
return 0;
}
3
Ćwiczenie 3
RWlvJAbWo5CeK
Wysłuchaj nagrania abstraktu, wyodrębnij jego części i nadaj im tytuły.
Wysłuchaj nagrania abstraktu, wyodrębnij jego części i nadaj im tytuły.
Napisz program, który przekonwertuje podaną liczbę większą od jeden z systemu dziesiętnego na binarny. Użyj w programie obu poznanych funkcji: do konwersji liczby całkowitej i do konwersji części ułamkowej. Opracuj sposób rozbicia liczby na część całkowitą i część ułamkową; pomocna może być funkcja podłogi floor. Wynik powinien zostać wydrukowany na standardowe wyjście.
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny string zamknij nawias ostrokątny.
Linia 3. kratka include otwórz nawias ostrokątny cmath zamknij nawias ostrokątny prawy ukośnik prawy ukośnik funkcja floor.
Linia 6. std dwukropek dwukropek string konwertujCzescCalkowita otwórz nawias okrągły int liczba zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. prawy ukośnik prawy ukośnik Tu uzupełnij kod.
Linia 8. zamknij nawias klamrowy.
Linia 10. std dwukropek dwukropek string konwertujCzescUlamkowa otwórz nawias okrągły double liczba przecinek int precyzja zamknij nawias okrągły otwórz nawias klamrowy.
Linia 11. prawy ukośnik prawy ukośnik Tu uzupełnij kod.
Linia 12. zamknij nawias klamrowy.
Linia 14. int main otwórz nawias okrągły int argc przecinek const char asterysk argv otwórz nawias kwadratowy zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 15. double liczba znak równości 21 kropka 6875 średnik.
Linia 16. int precyzja znak równości 6 średnik.
Linia 18. prawy ukośnik prawy ukośnik Tu uzupełnij kod.
Linia 20. return 0 średnik.
Linia 21. zamknij nawias klamrowy.
#include <iostream>
#include <string>
#include <cmath> // funkcja floor
std::string konwertujCzescCalkowita(int liczba) {
// Tu uzupełnij kod
}
std::string konwertujCzescUlamkowa(double liczba, int precyzja) {
// Tu uzupełnij kod
}
int main(int argc, const char * argv[]) {
double liczba = 21.6875;
int precyzja = 6;
// Tu uzupełnij kod
return 0;
}
Przykładowe rozwiązanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny string zamknij nawias ostrokątny.
Linia 3. kratka include otwórz nawias ostrokątny cmath zamknij nawias ostrokątny prawy ukośnik prawy ukośnik funkcja floor.
Linia 6. std dwukropek dwukropek string konwertujCzescCalkowita otwórz nawias okrągły int liczba zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. std dwukropek dwukropek string bin znak równości cudzysłów cudzysłów średnik.
Linia 8. int reszta znak równości 0 średnik.
Linia 10. while otwórz nawias okrągły liczba zamknij nawias ostrokątny 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 11. reszta znak równości liczba procent 2 średnik.
Linia 12. liczba znak równości liczba prawy ukośnik 2 średnik.
Linia 13. bin znak równości std dwukropek dwukropek to podkreślnik string otwórz nawias okrągły reszta zamknij nawias okrągły plus bin średnik.
Linia 14. zamknij nawias klamrowy.
Linia 16. return bin średnik.
Linia 17. zamknij nawias klamrowy.
Linia 19. std dwukropek dwukropek string konwertujCzescUlamkowa otwórz nawias okrągły double liczba przecinek int precyzja zamknij nawias okrągły otwórz nawias klamrowy.
Linia 20. int precyzjaStart znak równości 0 średnik.
Linia 21. std dwukropek dwukropek string wynik znak równości cudzysłów cudzysłów średnik.
Linia 23. while otwórz nawias okrągły precyzjaStart otwórz nawias ostrokątny precyzja zamknij nawias okrągły otwórz nawias klamrowy.
Linia 24. liczba znak równości liczba asterysk 2 średnik.
Linia 26. if otwórz nawias okrągły liczba zamknij nawias ostrokątny znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 27. liczba znak równości liczba minus 1 średnik.
Linia 28. wynik znak równości wynik plus cudzysłów 1 cudzysłów średnik.
Linia 29. zamknij nawias klamrowy else otwórz nawias klamrowy.
Linia 30. wynik znak równości wynik plus cudzysłów 0 cudzysłów średnik.
Linia 31. zamknij nawias klamrowy.
Linia 33. precyzjaStart plus plus średnik.
Linia 34. zamknij nawias klamrowy.
Linia 36. return wynik średnik.
Linia 37. zamknij nawias klamrowy.
Linia 39. int main otwórz nawias okrągły int argc przecinek const char asterysk argv otwórz nawias kwadratowy zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 40. double liczba znak równości 21 kropka 6875 średnik.
Linia 41. int precyzja znak równości 6 średnik.
Linia 43. int czescCalkowita znak równości floor otwórz nawias okrągły liczba zamknij nawias okrągły średnik.
Linia 44. double czescUlamkowa znak równości liczba minus czescCalkowita średnik.
Linia 46. std dwukropek dwukropek cout otwórz nawias ostrokątny otwórz nawias ostrokątny konwertujCzescCalkowita otwórz nawias okrągły czescCalkowita zamknij nawias okrągły otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów przecinek cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny konwertujCzescUlamkowa otwórz nawias okrągły czescUlamkowa przecinek precyzja zamknij nawias okrągły otwórz nawias ostrokątny otwórz nawias ostrokątny std dwukropek dwukropek endl średnik.
Linia 48. return 0 średnik.
Linia 49. zamknij nawias klamrowy.
#include <iostream>
#include <string>
#include <cmath> // funkcja floor
std::string konwertujCzescCalkowita(int liczba) {
std::string bin = "";
int reszta = 0;
while (liczba > 0) {
reszta = liczba % 2;
liczba = liczba / 2;
bin = std::to_string(reszta) + bin;
}
return bin;
}
std::string konwertujCzescUlamkowa(double liczba, int precyzja) {
int precyzjaStart = 0;
std::string wynik = "";
while (precyzjaStart < precyzja) {
liczba = liczba * 2;
if (liczba >= 1) {
liczba = liczba - 1;
wynik = wynik + "1";
} else {
wynik = wynik + "0";
}
precyzjaStart++;
}
return wynik;
}
int main(int argc, const char * argv[]) {
double liczba = 21.6875;
int precyzja = 6;
int czescCalkowita = floor(liczba);
double czescUlamkowa = liczba - czescCalkowita;
std::cout << konwertujCzescCalkowita(czescCalkowita) << "," << konwertujCzescUlamkowa(czescUlamkowa, precyzja) << std::endl;
return 0;
}