
Program pro převod soustav C++
Program, který převede číslo z desítkové soustavy do binární.
Můj návrh:
#include <iostream>
using namespace std;
int main() {
setlocale(LC_ALL, "");
double zbytek;
int zadane_cislo;
cout << "*************************************************************" << endl;
cout << "Program pro převod mezi soustavami." << endl;
cout << "*************************************************************" << endl << endl;
cout << "Zadej číslo:";
cin >> zadane_cislo;
cout << endl;
for (int i = zadane_cislo; i != 0; zbytek)
zbytek = i % 2;
if (zbytek == 1)
cout << "1" << endl;
else
cout << "2" << endl;
system("PAUSE");
cout << endl;
return 0;
}
Nefunguje.
Proč?
Skús prosím popísať svojimi slovami čo robí toto:
Možno Ti pomôže troška teórie:
To je špatně, nemá tam být 2, ale 0.
A zbytek je buď 1, nebo 0, tudíž chci, aby ho to vypsalo.
Je to ale asi zbytečný krok a stačilo by cout << zbytek.
Výborne!
Ešte sa zamysli nad týmto: "Nebereme ale zbytky z vrchu, ale od spodu"
Hlavne to vsetci vypisujete naopak, t.j. blbo to mate vsetci
Za prve chybaju ti zatvorky { } na oznacenie obsahu toho cyklu for. Tym padom tam cyklujes len to jedno delenie. A az si tam tie zatvorky doplnis tak zistis ze vypisane cislo je naopak.
Ked to chces urobit bez ukladania cifier, tak si najprv zistis maximalnu mocninu dvoch, a zmenusjes to a odcitavas.
unsigned int i;
//edit: opravil som podmienku
//edit2: este som opravil tu podmienku vo while, snad to uz je ok
Mám to kratší!
67ps
Jo, rekurzia. Ano to je lepsie (mna to nikdy nenapadne aj ked som to uz 5x takto videl tak to furt zabudnem :)