Qrek16
(Naruto1450)
7 Listopad 2013 15:22
#1
Witam
Mam pytanie jak poprawnie zrobić by ten program dobrze działał ??
char wartosc1[10] = { 'k', 'c', 'h', 'q', 'k/h', 'g', 'd', 'j', 'p', 'o', } ;
char wartosc2 [6] = { 'm' , 's', 'm/s', 'l', 'j', 'w' };
string wartosc4, wartosc3;
while ( i == 2)
{
cout << "wartosc1 = km, cm, h, min, km/h, g, dag, Mj, Kj, Kw \nwartosc2 = m , s, m/s, kg, j, w ;"<
while ( i == 2)
{
cout << " Podaj wartosc ktora chcesz zamienic i na co = ", cin >> wartosc1 >> wartosc2;
if ( 'k' and 'm' )
{
cout << "ile = "; cin >> km;
m = km * 1000 ;
cout << "Tyle jest metrow = " << m << endl;
}
else
{cout << ""<< endl;}
if ( 'c' and 'm')
{
cout << "ile = "; cin >> cm;
m = cm / 100 ;
cout << "Tyle jest metrow = " << m << endl;
}
else
{cout << ""<< endl;}
cout << " wszysko jest dobrze ?? \n tak = 1 ; nie = 2" ;
cin >> i;
} }
drobok
(Drobok)
7 Listopad 2013 15:27
#2
co to ma być ? Zaczynamy od 0, od lektury książki dot. c++
Qrek16
(Naruto1450)
7 Listopad 2013 15:34
#3
To jest tylko cześć programu, bo cały ma 300 linijek teraz zastanawiam się jak zrobić program do konversji jednostek, tak bym w cin >> mógł wpisać np " kg " i “m” i żeby if ( kg and m ) uznał mi to , nie wiem czy char czy string użyć i czy tędy droga …
drobok
(Drobok)
7 Listopad 2013 15:36
#4
możesz pobrać tablicę char i porównywać strcmp, albo pobrać do dwóch zmiennych i porównywać obie przez && w jednym if
Yuri20
(Yuri20)
7 Listopad 2013 20:19
#5
Po pierwsze w polskim słowniku znajduje się słowo “konwerter”, można go spokojnie używać, bo przecież nie piszesz chyba musyca, claviatura itp.?
char tab[rozmiar];
Przechowuje literały znakowe:
'k/h'
Nim nie jest. W ogóle kompilator Ci mówi w jakich linijkach znajdują się błędy, w pierwszej tablicy masz już jeden błąd syntaktyczny, więc nie wiem jakim sposobem udało Ci się napisać 300 linijek…
_alex
([alex])
7 Listopad 2013 22:38
#6
Qrek16 , to jest chore!!
Zobacz cały program jest mniejszy niż twój “fragment”, do uzupełnienia przeliczanych jednostek wystarczy dopisać kilka wierszy do tablicy:
#include
#include
using namespace std;
const struct { const string category,unit; double mul; } Tb[]=
{
{ "odlegolosc", "m", 1 },
{ "odlegolosc", "km", 1000 },
{ "odlegolosc", "cm", 0.01 },
{ "odlegolosc", "mm", 0.001 },
{ "predkosc", "m/s", 1 },
{ "predkosc", "km/h", 1000.0/3600 },
};
const size_t TbSize=sizeof(Tb)/sizeof(*Tb);
int main()
{
while(true)
{
double val;
string inp,out;
cout<<"Podaj dane do konwersji, (np: 12.5 km cm skonwertuje 12.5 km na cm): ";
if(cin>>val>>inp>>out)
{
size_t pi=TbSize,po=TbSize;
for(size_t i=0;i
for(size_t i=0;i
if(pi>=TbSize) cout<<"Niepoprawna jednostka zrodlowa"<
else if(po>=TbSize) cout<<"Niepoprawna jednostka docelowa"<
else if(Tb[pi].category!=Tb[po].category) cout<<"Niekompatebilne jednostki"<
else
{
cout<
}
}
else
{
cin.clear();
if(cin.get()=='!') return 0;
while(cin.get()!='\n') {}
cout<<"Blond przy klawiaturze?!"<
}
}
}