Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
|
Forum - Polski Portal COLOBOTa |
|
|
NumberCalc |
Autor |
Wiadomość |
Simbax
Mod
Twoja ulubiona misja: Wszystkie na Krystalii
Pomógł: 6 razy Wiek: 22 Dołączył: 07 Sie 2009 Posty: 473 Skąd: z Leszna
|
Wysłany: 12-12-2010, 13:03 NumberCalc
|
|
|
Proszę, żeby później nie było, że nic nie robię "tylko gram" daje tutaj malutki programik w C++. Robiłem go dosyć dawno, ale na oko działa chyba dobrze. Przed chwilą dodałem tylko w kilku miejscach "czyszczenie ekranu".
Co on robi? Przelicza między różnymi systemami liczbowymi (dwójkowym, dziesiętnym itd.). W założeniu miał pokazywać liczbę w każdym systemie, ale skończyłem na dwójkowym i dalej mi się nie chciało już robić Zresztą i tak się do niczego nie przyda, zrobiłem go jako sprawdzenie tego, co już umiem (czyli praktycznie nic ).
Proszę nie komentować, wiem że ma dużo błędów...
Zainspirowany do zrobienia go zostałem dzięki pewnemu zadaniu z matematyki.
Źródło:
Kod: | #include <iostream>
#include <conio.h>
#include <string>
#include <sstream>
using namespace std;
int Poteguj(int nPodstawa, int nWykladnik)
{
int nWynik = nPodstawa;
for (int i = 2; i <= nWykladnik; ++i)
{
nWynik = nWynik*nPodstawa;
}
return nWynik;
}
string int2str(int i)
{
stringstream ss;
string temp;
ss << i;
ss >> temp;
return temp;
}
int str2int(string str)
{
stringstream ss;
int temp;
ss << str;
ss >> temp;
return temp;
}
string Przeliczz(int nWybor, string strLiczba)
{
switch (nWybor)
{
case 1 :
{
stringstream convert(strLiczba);
int nLiczba;
convert >> nLiczba;
int nX;
string Binary[10];
for (int i = 9; i > 0; i--)
{
nX = nLiczba % 2;
if (nX == 0) Binary[i] = "0";
if (nX != 0) Binary[i] = "1";
nLiczba = nLiczba/2;
}
string nWynik = "";
for (int i = 0; i < 10; i++)
{
nWynik += Binary[i];
}
return nWynik;
break;
}
case 2 :
{
if (strLiczba.length() > 10 || strLiczba.length() < 1) return "1";
int nLiczbaCyfr = strLiczba.length();
int nWynik = 0;
int nY;
int nX = nLiczbaCyfr-1;
for (int i = 0; i <= nLiczbaCyfr; ++i)
{
string strX(strLiczba, i, 1);
if (strX == "1") nY = Poteguj(2,nX);
if (strX == "0") nY = 0;
nWynik = nY + nWynik;
nX = nX-1;
}
return int2str(nWynik);
break;
}
}
}
int main()
{
cout << "<--- NumberCalc --->" << endl;
cout << "Autor: Simbax" << endl;
cout << endl;
getchar();
int nChoise = -1;
system("cls");
glowna:
while (true)
{
cout << "W jakim systemie cyfrowym chcesz podac liczbe?" << endl;
cout << " 1. Dziesietnym" << endl;
cout << " 2. Dwojkowym" << endl;
cout << " 0. Wyjscie" << endl;
cout << "Twoj wybor (liczba 0-2): ";
cin >> nChoise;
if (nChoise == 0) break;
if (nChoise < 0 || nChoise > 2)
{
cout << endl << endl << "Musisz podac liczbe z zakresu 0-2.";
getch();
system("cls");
goto glowna;
}
cout << endl << endl;
cout << "Podaj ta liczbe: ";
string strA;
cin >> strA;
cout << endl << endl;
cout << strA << " = ";
cout << Przeliczz(nChoise, strA);
getch();
system("cls");
}
return 0;
} |
NumberCalc.zip A oto to "cudo" |
Pobierz Plik ściągnięto 23 raz(y) 85,91 KB |
|
_________________ http://projektsimbax.blogspot.com/ <- Taki sobie blog |
|
|
|
|
|
|
| |
|
|
|
|
Polski Portal COLOBOTa © 2008 - 2012 |
|
|