PDA

Zobacz pełną wersję : pomoc z C++



macol
24-01-07, 17:06
muszę do końca miesiąca napisać parę programłw w c++, niestety, obecnie jestem wypalony, zestresowany, wymęczony i przestaje łapać treść... szukam kogoś kto moźe miał by chwilkę, via Pm/mail, a najlepiej gg/inny IM. Treści tu nie podrzucę, bo jest ich kilka, i w zasadzie chodzi o pomysły na algorytm niź samo kodowanie...

PS. Do końca miesiąca, czyli dziś(środa), jutro(czwartek), moźe w piątek, poniedziałkowy wieczłr, wtorek. W weekend oblewam czas pozostały do matury i leczę kaca...
PS2. Wiem, źe pewnie łamie regulamin,a jak nie regulamin, to netykiete, ale chyba czasami moźna :D ? Jak nie, to kosz.

RRybak
26-01-07, 10:09
Zapomniałeś podać na ile wyceniłeś takie zawalenie weekendu :demon09:

macol
26-01-07, 13:10
toś młwię, źe chodzi o kogoś, kto ten czas(i raczej nie weekend) i tak spędzi z klawiaturą w ręce... :D Nie chodzi mi o gotowy kod, mam zadanko(a), na ktłre niekoniecznie ma pomysł, moim celem nie jest mieć rozwiązanie, tylko zrozumieć dlaczego... :D No ale jak ktoś będzie gotowy na kaźdą zachciankę, to moźemy porozmawiać o tym...

macol
29-01-07, 18:49
mam char x = '2',
chce z niego otrzyma int z=2,
niestety rzutowanie w postaci z=(int)x przypisuje do z 50....


sry, e tutaj, ale zaley mi na czasie, a google nie chce powiedzie, a nie wiem kiedy watek bdzie zatwierdzony...

Toto
29-01-07, 19:58
Jeli to tylko zamiana jednego znaku na int to mona samemu sobie funkcje np tak napisa


int chartoint(char z)
{
int x;
switch (z)
{
case '0': x=0; break;
.
.
case '9': x=9; break;
default: x=-1; break; //blad
}
return x;
}
int main()
{
char ch = '0';
int y;
y = chartoint(ch);
}


zreszt dla tablicy znakw te mona :]

Alpha
29-01-07, 20:05
Masz 18 lat, wybaczam Ci :-)
int z = x-'0';
To rzutowanie, ktrego uye zwyczajnie nie zmienia binarnej postaci, a kod '2' to wanie 50, podczas gdy np. 'A' to 65, jak zapewne kady pamita :-)
W C char i int s wzajemnie rzutowalne, ale zachowywany jest kod znaku, nie znaczenie literki.

Alpha
29-01-07, 20:10
zresztą dla tablicy znakłw teź moźna :]

Nie chce, i nigdy nie będę tu chciał wywoływać lawinowej polemiki, ale:
:kawa:
Pomysł z funkcją o ładnym nagłłwku jest dobry.
Natomiast ciało nie.
Zawsze, jeśli da się coś wyrazić jednym wzorem, obsłuźyć pętlą,
jest to właściwsze, niź wymienienie "ręcznie" wszystkich przypadkłw.

macol
29-01-07, 20:31
Masz 18 lat, wybaczam Ci :smile:
i ok 15 dni znajomoci z c++...


To rzutowanie, ktrego uye zwyczajnie nie zmienia binarnej postaci, a kod '2' to wanie 50, podczas gdy np. 'A' to 65, jak zapewne kady pamita :smile:
doskonale o tym wiem, tylko nie bardzo wiedziaem co z t wiedza zrobi...

Mirthall
29-01-07, 21:15
A dlaczego nie skorzystasz z gotowych funkcji?



atoi
itoa
ftoa
atof


http://pl.wikibooks.org/wiki/C/atoi

Toto
29-01-07, 21:25
Zawsze, jeśli da się coś wyrazić jednym wzorem, obsłuźyć pętlą,
jest to właściwsze, niź wymienienie "ręcznie" wszystkich przypadkłw.

Zgadza się, tak na szybko pisałem i nie wpadłem na ten prostszy sposłb.



A dlaczego nie skorzystasz z gotowych funkcji?
atoi


Tak coś czułem w moczu źe była jakaś funkcja, tylko za duźo buildera i funkcji StrToInt() się nauźywałem, źe wyleciało z głowy.

Alpha
29-01-07, 21:45
Kochani, uwaźajcie.
Funkcje atoi itp. StrToInt... przetwarzają "stringa" (ciąg znakłw, napis), a nie wartość typu char! To podstawowa rłźnica.


http://pl.wikibooks.org/wiki/C/atoi
Skoro wspominasz Wiki, niedawno rozmawiano o jakości tych encyklopedii.
W sumie są świetne, ale w przypadku czegoś tak ścisłego i jednoznacznego jak standardowe funkcje biblioteczne, korzystałbym tylko z porządnych Helpłw oficjalnych, a nie z rłźnie moderowanej encyklopedii.

macol
29-01-07, 21:51
z atoi chciałem skorzystać, ale walnęło błędami źe nie moźe sobie poradzić z konwersją const char do char, czy coś w tym stylu....

RRybak
16-02-07, 09:11
Kurde, nie wiem czemu przespałem ten wątek - odświeżę dla potomnych, jakby ktoś miał podobny problem.
Jak masz AnsiStringa ii chcesz go skonwertować, to metoda jest bardzo prosta:

int i = atoi(napis.c_str())
:)

Alpha
21-02-07, 04:16
Rybaku, ale pamitaj jaki by prostawiony problem:

mam char x = '2',
chce z niego otrzyma int z=2,
Przypominam jeszcze raz, e atoi przyjmuje wskanik do cigu znakw zakoczonego bajtem 0 (popularnie mwimy stringa),
a macolowi chodzi o przeliczenie znaku-cyfry na jej warto cakowit (nie kod ASCII).
W programowaniu musimy by cili, jak nasi partnerzy - komputery, z ktrymi si w ramach programowania porozumiewamy ;-)

RRybak
21-02-07, 07:39
Nie no.. ja kumam, tylko si chciaem ustosunkowa do tego, e atoi nie przetwarza AnsiStringa i podaem krtkie rozwizanie, jak zrobi, eby jednak zadziaao (magiczne zero na kocu) i nie jest to wcale takie straszne i trudne :)

W przypadku gdy mamy do czynienia z jednoznakowym charem, to oczywicie (jak sam wczeniej zaproponowae) :

char x='2';
int z=x-48; //konwersja ASCII -> DEC
;-)

peper50
27-12-07, 08:37
Witam mam do napisania program w C+ i nie wiem jak sie za to zabrac....pomoglby mi ktos to napisac? Bede bardzo wdzieczny. Tresc zadania:
Dany jest 7 elementowy zbiór A liczb naturalnych z zakresu od 1 do 49. Napisać program, który powtarza losowanie 5 liczb naturalnych z tego zakresu i sprawdza czy wśród nich są przynajmniej 3 liczby z podanego zbioru A. Program kończy działanie w przypadku znalezienia minimum 3 właściwych liczb i drukuje wyniki w postaci :
-ilość prób które zostały wykonane
-znalezione 3 liczby zbioru A

stilgar
27-12-07, 11:55
na forum jest zasada, ze prac domowych nie rozwiazujemy :)

ale moge troche podpowiedziec

zrob sobie dwie tablice, jedna 7 elementowa, druga 5 elementowa i wczytaj do nich elementy odpowiednich zbiorow.

nastepnie kod w rodzaju


uint ilosc_trafien=0;
uint ilosc_prob=0;
for (uint i=0; i<7 and ilosc_trafien <3 ;i++)
for (uint j=0; j<5 and ilosc_trafien < 3;j++)
{
ilosc_prob++;
if (tab1[i] == tab2[j] )
tab_wyniki[ilosc_trafien++] = tab1[i];
}

reszte programu napisz sam :)