GRY-Online.pl --> Archiwum Forum

(Programowanie w C/C++ i nie tylko)----(Dla laików i ekspertów)----(cz.8)

07.10.2006
19:26
smile
[1]

Sir Skull [ Charr Shaman ]

(Programowanie w C/C++ i nie tylko)----(Dla laików i ekspertów)----(cz.8)

cout << "--------------------------[Przydatne strony]............... ";

"NEW - Nowe Linki";

[!!!] [Kurs C#]
[!!!] [.NET QuickStart Tutorials]


"[PL]";

[Tutorial winapi]
[Tutorial winapi]
[Programowanie w praktyce - piszemy gry logiczne]
[Kurs C++]
[Podstawy C++]
[Kurs C++]
[m.in. kursy C++: /pliki do pobrania/teksty/.../]
[Kurs C++]
[materiały o C++ z Politech. Wroc.]


[O programowaniu]
[Kursy, nie tylko Cpp]
[C++, Kursy, Algorytmy, Artykuły, Zagadki]



[materiały o C++ z Politech. Wroc.]




[Podstawy C++]
[Programowanie w C/C++ pod DOS, WIN, LINUX]
[Ciekawe rzeczy do ściągnięcia]




"[ANG]";









cout << " ...............[DOWNLOAD]............... ";

//(Dev-C++ 4.9.9.0 PL - kompilator C/C++)
// "Thinking in C++" Tom 2
// "Thinking in C++" Tom 3
// Darmowe pubikacje elektroniczne o programowaniu
//Borland C++ 3.1





cout << " ...............[INNE]............... ";

czasopismo WARP



cout << " ...............[Literatura programisty]............... ";

Symfonia C++ J.Grębosza
Thinking in C++
Pasja C++ J.Grębosza
Mój pierwszy program wydawnictwa HELP
Książeczka "Programowanie w C++" od Komputer Swiat - Dla BARDZO początkujących ( )
"C++ Styl Programowania" Tom'a Cargill'a.
"Język ANSI C" Kernighan, Ritchie.
"PHP i MySQL. Dynamiczne strony WWW. Szybki start"
"PHP. Tworzenie stron WWW. Szybki start" []

cout << " ...............[Poprzedni wątek]............... ";

https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4598146&N=1

07.10.2006
19:30
[2]

Sir Skull [ Charr Shaman ]

KULL od prawie 2 miesięcy nie pojawił się na GOLu, więc postanowiłem zrobić nową część wątku. Dodałem także do wstępniaka 2 nowe linki dotyczące .net.

09.10.2006
12:14
[3]

Siepet [ Generaďż˝ ]

W ogóle ktoś tu czasami pisze? ^^'

Jaki jest dość dobry program do C++? Miałem Dev-C++ którego polecił mi kolega ale chcę zobaczyć czy jest lepszy i wasze opinie o nim.

09.10.2006
13:24
[4]

Regis [ ]

Visual C++
C++ Builder
Dev-C++

Z czego ja preferuje Buildera, bo jest swietny do trzaskania na szybk oprogramow z grafcznym interfejsem, a i konsolowy programik mozna bez problemu napisac

09.10.2006
14:57
[5]

maVes [ Generaďż˝ ]

Siepet - jest jeszcze IDE o nazwie Code::Blocks. Ściągnołem go dopiero wczoraj więc jeszcze nie miałem okazji sprawdzić. Do tej pory używałem Deva, a Visual C++ wogóle mi sie nie podoba..

09.10.2006
20:51
[6]

Sir Skull [ Charr Shaman ]

Siepet --> Dobrze mi się pisało w Visual C++. Niezłym rozwiązaniem (jeśli programujesz równiez w javie) jest Eclipse z pluginem CDT.

09.10.2006
20:55
[7]

Leilong [ Generaďż˝ ]

Jak się robi warunki?

Chcę napisać sobie program który po wciśnięciu liczby równej 3 kończy działanie.

zaczynam od int x

W ciele funkcji pisze:
cin>>x>>endl;
if x=3

Jak dalej to zapisywać?(warunek)

09.10.2006
20:59
[8]

nagytow [ Firestarter ]

Uzyj while.
Taki pseudokod:

while (read(x) != 3)

rob cos;

09.10.2006
21:35
[9]

Leilong [ Generaďż˝ ]

Jak deklaruje zmienne wystarczy napisać?
"int x"

(..)

09.10.2006
21:44
[10]

nagytow [ Firestarter ]

int x;

09.10.2006
21:46
[11]

Leilong [ Generaďż˝ ]

Ech, wkleję tu funkcję tylko się nie śmiać.

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])

int x;



cin>>x>>endl;
while (read(x) != 3)
then endl;


system("PAUSE");
return EXIT_SUCCESS;



Ja się dopiero ucze, raczkuję wręcz.

09.10.2006
22:01
[12]

Pirix [ ! KB ! Góry górą ]

Zakładając, że chodzi Ci o to aby program wczytywał liczby tak długo, aż nie zostanie podana cyfra 3 to proponuje coś takiego:

#include <cstdlib>
#include <iostream>

using namespace std;

int main()

int x;

while (x != 3)

cin >> x;
cout << endl;


system("PAUSE");
return EXIT_SUCCESS;


Oczywiście zamień ‹ i › na odpowiednie nawiasy klamrowe

09.10.2006
22:09
[13]

nagytow [ Firestarter ]

Pirix --> jest minimalna szansa, ze zaraz na poczatku x bedzie mial 3 (jakies losowe smieci z pamieci) wiec program moze w ogole nie wejsc do petli. Ja bym dal jeszcze przed while jednego cina, tak na wszelki wypadek.

09.10.2006
22:13
[14]

Pirix [ ! KB ! Góry górą ]

nagytow --> masz racje. Ale zastosuje trochę inna metodę obrony przed taką sytuacją gdyż to co proponujesz może stać się kłopotliwe gdy ten program nie będzie taki mały a będzie częścią jakiejś większej całości. Moglibyśmy wtedy niepotrzebnie czytać x dwukrotnie. Wydaje mi się, że lepiej zainicjować x zerem na początku i po kłopocie.

#include <cstdlib>
#include <iostream>

using namespace std;

int main()

int x = 0;

while (x != 3)

cin >> x;
cout << endl;


system("PAUSE");
return EXIT_SUCCESS;

09.10.2006
22:47
[15]

Leilong [ Generaďż˝ ]

No skompilowałem program ruszył, ale nie wczytuję znaków z klawiatury, zorientowałem się że mam wersję beta deva, może przez to nie działać?

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])






int x;

while (x != 3);

cin >> x;

cout<<endl;


system("PAUSE");
return EXIT_SUCCESS;


09.10.2006
22:50
[16]

Leilong [ Generaďż˝ ]

A już chyba wiem co jest źle, cin powino być przed while, a while powinno zawierać się w tej nowej funkcji.

09.10.2006
23:26
[17]

hotDog [ Outsider ]

#include<iostream>

int main()

int x=0;

while(std::cin>>x && x!=3)

std::cout<<x<<'\n';



system("pause");
return 0;

10.10.2006
10:19
[18]

nagytow [ Firestarter ]

Pirix --> hehe oczywiscie twoj sposob jest duzo lepszy. I tak oczywisty, ze az dziwne, ze o nim nie wpomnialem :)

10.10.2006
10:20
[19]

Pirix [ ! KB ! Góry górą ]

Leilong---> to co ja pisałem kompiluje sie w devie i działa prawidłowo, tzn wczytuje znaki z klawiatury. Zobacz wersje hotDoga. Uzyl troche innej konstrukcji w pętli while.

nagytow--->zdarza się czasem każdemu czegoś prostego nie zauważyć;)

10.10.2006
15:25
smile
[20]

Leilong [ Generaďż˝ ]

HA! działa, możecie mi dać jakieś zadanie do zrobienia?:)

10.10.2006
15:36
[21]

nagytow [ Firestarter ]

Nie wiem czy nie za proste, ale ktos niedawno prosil o pomoc z takim zadaniem: wczytujesz iles tam liczb i wypisujesz srednia :)

10.10.2006
15:45
[22]

Leilong [ Generaďż˝ ]

zaraz coś naskrobię, ale czarno to widzę, za pare minut coś wkleję...

10.10.2006
15:54
[23]

Leilong [ Generaďż˝ ]

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])

int a
int b
int c

void (dodaj (a+b+c))


cout>>"Podaj 3 liczby całkowite do wyliczenia średniej">>endl;
cin<<a, b, c<<;
dodaj (a, b, c);



system("PAUSE");
return EXIT_SUCCESS;


Inty można zapisać prościej, wiem. Nie mam trochę pojęcia jak dalej pisać. Mogę prosić o jakieś może "naprowadzenie"?

10.10.2006
16:10
[24]

nagytow [ Firestarter ]

Hmmm.
Po deklaracji zmiennych brakuje srednikow.

void (dodaj (a+b+c)) <-- blad, nazwy funkcji(?) nie ujmujemy w nawiasy, dodatkowo nie deklaruj funkcji w srodku maina.
Moze na poczatek najprostsze rozwiazanie? Bez zadnych udoskonalen - wczytaj liczby, wypisz srednia :)

10.10.2006
16:17
[25]

master53 [ Hans Kloss ]

Ostatnio wzieła mnie wena na programowanie w C++. Wcześniej już klepałem programy w Pascalu które bardzo dobrze się sprawdziły. Teraz chciałbym poznać C++. Szukam jakiegoś dużego tutoriala, lub materiałów dla początkujących (najlepiej z których Wy się uczyliście i są sprawdzone). Przejżałem praktycznie wszystkie linki z wstępniaka ale połowa jest nieaktywna, a większość to dosłownie kilka zdań. Z góry dzięki.

10.10.2006
16:23
[26]

Regis [ ]

Ksiazka Grębosza "Symfonia C++". Mozna tez sie uczyc z "Thinking in C++" Eckela.

10.10.2006
16:41
[27]

nagytow [ Firestarter ]

Tez polecam Symfonie C++. Korzystalem jeszcze z Język C++ Bjarne Stroustrupa.

10.10.2006
18:16
[28]

maVes [ Generaďż˝ ]

master53 - na początek dobry jest megatutorial Xion'a albo Symfonia C++ Standard J. Grębosza. Thinking in C++ wydaje mi się za trudny na początek, zresztą książka jest napisana raczej dla osób znających C.

Tu masz link do wspomnianego tutoriala:

10.10.2006
18:48
smile
[29]

master53 [ Hans Kloss ]

maVes ---> Zapowiada się ciekawie ten kurs w .pdf'ie.

Nad tą "Symfonią C++" będę musiał pomyśleć bo wiele osób już mi ją polecalo.

10.10.2006
20:30
[30]

umek [ Szczęśliwy ]

W czym polecacie kompilację programów, by miały graficzny interface, nie takie DOSowe okienko?

Proszę o prostą odpowiedź dla początkującej osoby. Szukałem kilku rzeczy, nie udało mi się ruszyć softu borlandowego, korzystam z dev-cpp

10.10.2006
20:34
[31]

Regis [ ]

umek --> Pytanie jest bez sensu, bo kompilator nie ma nic do wygladu i grafiki. Jesli robisz w Dev i chcesz miec okienka, to mozesz uzyc np. OpenGL, DirectX, albo bibliotek takich jak GTK albo Allegro. Ale jesli jestes poczatkujacy, to watpie by Ci sie to udalo. Duzo latwiej jest to zrobic w Borland Builderze, ale do tego tez trzeba miec nieco pojecia o programowaniu, w tym takze o programowaniu obiektowym.

10.10.2006
21:27
[32]

nagytow [ Firestarter ]

W DevCpp nie ma przypadkiem do wyboru przy nowym projekcie czy chcesz aplikacje okienkowa czy konsolowa? (pomijam fakt umiejetnosci programisty).

umek --> Jesli jestes poczatkujacy w programowaniu, opanuj najpierw aplikacje konsolowe. Albo, jesli znasz pascala, przerzuc sie na delphi :)

10.10.2006
21:41
[33]

slowik [ NightInGale ]

pascal delphi ? niema lepszego sposobu na marnowanie czasu :]

zajmij sie lepiej C i naucz sie programowac

10.10.2006
21:53
[34]

nagytow [ Firestarter ]

Delphi jest bardzo popularne, np przy administrowaniu ms sql lub pisaniu programow bazodanowych pod ms sql :)

11.10.2006
15:10
[35]

Leilong [ Generaďż˝ ]

Który z tych tutoriali tutaj jest najlepszy? Kilka wygląda źle, jeden mi nie działa...

11.10.2006
15:25
[36]

maVes [ Generaďż˝ ]

Leilong - jeśli chodzi Ci o tutorial C++ to ten jest nawet niezły:

11.10.2006
15:30
[37]

Sir Skull [ Charr Shaman ]

Leilong --> Dobry jest też C++ bez cholesterolu

btw. Usunąłem z wstępniaka niedziałające linki. Jeśli ktoś ma jakieś ciekawe materiały, które mogłyby się pojawić w 1 poście to pisać śmiało :)

11.10.2006
17:06
[38]

umek [ Szczęśliwy ]

Pascala znam, ale nie chcę delphi. Thx za odpowiedź

16.10.2006
13:29
[39]

nutkaaa [ Panna B. ]

Problem jest: Mam do napisania program z tablicami, dopiero zaczęliśmy ten dział i totalnie go nie pojmuję... Mogłby ktoś pomóc?
Napisz program, który dla wczytanego łańcucha tekstowego (białe znaki dopuszczalne) obliczy ile razy wskazana litera powtarza się w nim.

#include <iostream>
using namespace std;

int main () ‹
char name[256];
string s
int tablica[256]

cout << "Podaj wyraz: ";
cin.getline (name,256);


cout<<"Podaj litere "<<'\n';
cin>>s;
cin.ignore();
do



s=s+tablica[licznik];

licznik++;


while (licznik<n);

getchar();
return 0;


na tym utknęłam... wiem, że dużo brakuje w pętli, ale nie mam totalnie pomysłu co mam dalej z ty zrobić :(

16.10.2006
13:41
[40]

Kijano [ Generaďż˝ ]

int main()‹
char name[256];
string s
int tablica[256]

cout << "Podaj wyraz: ";
cin.getline (name,256);
cout<<"Podaj litere "<<'\n';
cin>>s;

for ( int i = 0; i < strlen(name); i++ )
if( name[ i ] == s )
licznik++;

printf("%d\n", licznik );



16.10.2006
13:48
[41]

nutkaaa [ Panna B. ]

możesz mi wytłumaczyć czym jest strlen(name) oraz printf("%d\n", licznik ); bo pierwszy raz się z tym spotykam

16.10.2006
14:22
[42]

nagytow [ Firestarter ]

strlen - dlugosc lancucha
printf("%d\n", licznik) - wypisz na ekran zmienna licznik(%d oznacza liczbe calkowita) i potem znak nowego wiersza

16.10.2006
16:41
[43]

Katane [ Useful Idiot ]

Po co printf w cpp?

16.10.2006
17:17
[44]

fanlegii79 [ Generaďż˝ ]

po co cin i cout w c?
zeby przeszpanowac ze sie zna c++ :)

16.10.2006
17:41
[45]

slowik [ NightInGale ]

albo sie pisze w c albo c++ mieszanie obu wprowadza chaos nutkaaa podala czesciowe rozwiazanie w c++ tak wiec odpowiedz w nim wypadaloby podac ? ;-)

16.10.2006
18:01
[46]

nagytow [ Firestarter ]

slowik --> Poki co program nie ma za duzo wspolnego z cpp. Tak jak powiedzial fanlegii79. Zreszta chodzi o ogolne rozwiazanie, nutkaa moze juz sobie samodzielnie przerobic ;) Ale ogolnie to sie zgadzam, mieszanie = chaos.

16.10.2006
18:07
[47]

slowik [ NightInGale ]

ma wspolna bibliteke podstawowa i to wystarczy ;-) trudno oczekiwac zaprzegania obiektow do tak prostego zadania ...

16.10.2006
18:33
[48]

nagytow [ Firestarter ]

Przed obiektami to jeszcze by sie przydalo pozbyc ograniczenia na dlugosc lancucha ;)

16.10.2006
21:51
[49]

Pirix [ ! KB ! Góry górą ]

Mam napisać konwerter w C z jednego systemu kodowania na inny (Mazovia). Na wejściu dostaje plik tekstowy, w którym jest jakiś tekst. Na wyjściu też mam mieć plik ale z polskimi znakami zakodowanymi w Mazovii. No i mam problem. Nie wiem w jaki sposób wyciągnąć z pliku, który dostaję informacje o tym, jaki jest w nim użyty system kodowania. Ktoś wie jak to zrobić? Albo ma jakieś sugestie/pomocne linki?

16.10.2006
22:04
[50]

slowik [ NightInGale ]


jak widac zbyt wiele same kodowania nie mowia w naglowku txt sie raczej nie umieszcza informacji o typie kodowania ...

16.10.2006
23:22
[51]

nagytow [ Firestarter ]

Pirix -->

To ci moze pomoc:

17.10.2006
01:30
[52]

fanlegii79 [ Generaďż˝ ]

cos nie wchodzi ten 4programmwers. ja bym zrobil to tak zalozmy ze sa trzy polsie litery i dwa kodowania takie ze
1litera - 158 168
2litera - 168 174
3 litera - 174 215

odwracajac to mamy x litera w y kodowaniu
158 - 1l1k
168 - 1l2k 2l1k
174 - 3l1k 2l2k
215 - 3l2k

i tak jezeli w tekscie jest znak 158 wiadomo ze to jest pierwsze kodowanie, jezeli jest 215 wiadomo ze drugie.
jezeli nie ma ich i sa tylko znaki ktore sa kodowane wieloznacznie sprawa jest trudniejsza. Musisz dopasowac rozklad. Jezeli wiadomo ze 1l stanowi 20% liter specjalnych druga 30% a trzecia 50%, i np znakow o kodzie 168 jest 30% a o kodzie 174 70%, to bardziej prawdopodobne jest kodowanie pierwsze czyli ze te 30% litera druga, a te 70% to litera trzecia, niz kodowanie drugie w ktorym nie wystapila by zadna litera trzecia, kotra zazwyczaj stanowi 50% znakow specjalnych.

Cos wiesz wiecej o tym wykrywaniu? bo mysle ze 99% tekstow komputerowych po polsku jest zakodowanych albo w iso albo win, i one roznia sie az na 5 znakach, wiec w tekscie rozsadnej dlugosci raczej nie bedzie problemu z rozroznieniem.

Jak chcesz z tego korzystac?

17.10.2006
10:21
[53]

Pirix [ ! KB ! Góry górą ]

fanlegii79--->Od końca zacznę. Korzystać to ja z tego nie będę zbytnio. Jest to jeden z programów jakie muszę napisać na zaliczeniu kurcu C na studiach i tyle. Niestety nie mogę przyjąć założenia, że tekst, który dostanę będzie w konkretnym kodowaniu (np. iso) gdyż program będzie testowany przez prowadzącego zajęcia i z tego co zdążyłem zauważyć on raczej specjalnie wrzuci do programu jakiś tekst w niezbyt popularnym kodowaniu. Zreszta samo to, że program ma prtzekodować tekst na Mazovie o tym świadczy, bo kto tego obecnie używa?

nagytow--->W tej chwili 4programmers leży. Może później będzie działał to może znajdzie się tam coś co mi pomoże . A jak nie to zacznę kombinować.

17.10.2006
10:32
[54]

Pirix [ ! KB ! Góry górą ]

Edit mi się skończył więc będzie drugi post.

Link podany przez nagytow okazał się przydatny. Nie wiem jak mogłem na niego wcześniej nie trafić przekopując się wczoraj popołudniu przez 4programmers. Jakoś mi umknął. Myślę, że w teraz sobie poradzę. A jak nie to później pojawią się kolejne pytania. Dzięki!

18.10.2006
11:51
[55]

Didier z Rivii [ life 4 sound ]

dawno juz nie programowalem w windows i teraz mam problem ;)
moglby mi ktos z was podac strukture (jakie biblioteki zalaczyc i jakie funkcje uzyc), najlepiej w postaci prostego schemaciku odnosnie zapisywania zamiennych do pliku txt?

18.10.2006
12:16
[56]

slowik [ NightInGale ]

fopen + fprintf + fclose

do struktur sie uzywa write (a moze fwrite :P) tylko ze wtedy to nie bedzie txt ...

18.10.2006
17:09
smile
[57]

Leilong [ Generaďż˝ ]

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])

cout<<"hello neo"<<endl;
cout<<"matrix has you"<<endl;
cout<<"follow the white rabbit"<<endl;


system("PAUSE");
return EXIT_SUCCESS;



Jak to zrobić żeby po kolei wyświetlało po wciskani klawiszy? jakichkolwiek.

18.10.2006
17:16
[58]

Regis [ ]

Didier --> Jak sobie zrobisz zgrabna klase i przeciazysz odpowiednio operatory >> i << dla strumienia fstream, to nie bedziesz potrzebowal zadnych wymyslnych rzeczy zeby zapisywac cos do pliku i z niego odczytywac. Jak chcesz, to moge wygrzebac moj kod z klasa Osoba sluzacy do zapisywania do pliku i wczytywania z niego danych osobowych (uproszczony, ale latwo rozbudowac o potrzebne zmienne)

Leilong -->

cout<<"hello neo"<<endl;
getch();
cout<<"matrix has you"<<endl;
getch();
cout<<"follow the white rabbit"<<endl;

I chyba do tego trzeba zaincludowac string.h jesli sie nie myle.

18.10.2006
17:32
smile
[59]

Leilong [ Generaďż˝ ]

Regis dzięki ale...jeśli pytam się o takie proste rzeczy to chyba można się domysleć że nie bede miał pojącie co to znaczy includować...

18.10.2006
17:35
[60]

Regis [ ]

#include <string>

To wlasnie znaczy zaincludowac :P Dolaczyc jakas biblioteke na przyklad.

A jakby nie zadzialalo (w sumie to nie ma prawa) to zmien string na string.h

18.10.2006
17:36
[61]

Leilong [ Generaďż˝ ]

A co znaczy to getch? nie to bardzo nie eleganckie rozwiązanie...

18.10.2006
17:39
[62]

Regis [ ]

Getch czeka na nacisniecie dowolnego przycisku. Normalnie mozesz przechwycic ten znak robiac

char znak = getch();

ale ty potrzebujesz tylko wiedziec ze ktos cos nacisnal, a nie interesuje cie co nacisnal.
I co w tym jest nieeleganckiego? Watpie bys znalazl inne, prostsze, krotsze i bardziej eleganckie rozwiazanie.

18.10.2006
17:43
smile
[63]

Leilong [ Generaďż˝ ]

include jest w tym nieeleganckie. więc musze zadeklarować chara jeszcz, ok. zaraznie pokosi to wkleje i zobaczysz co jest nie tak.

#include <cstdlib>
#include <iostream>
#include <string.h>

using namespace std;

char znak = getch();

int main(int argc, char *argv[])




cout<<"hello neo"<<endl;
getch();
cout<<"matrix has you"<<endl;
getch();
cout<<"follow the white rabbit"<<endl;

system("PAUSE");
return EXIT_SUCCESS;


kurde!

18.10.2006
17:55
[64]

maVes [ Generaďż˝ ]

Hmm ja zawsze do getcha dołączałem conio.h, z string.h u mnie nie działa.
Stdlib też tutaj jest niepotrzebny. Jeśli twój kompilator jest zgodny ze standardem, to również instrukcja return EXIT_SUCCESS; jest zbędna :P

#include <iostream>
#include <conio.h>

using namespace std;

int main()

getch();
cout<<"hello neo"<<endl;
getch();
cout<<"matrix has you"<<endl;
getch();
cout<<"follow the white rabbit"<<endl;

system("PAUSE");
return EXIT_SUCCESS;

18.10.2006
18:32
[65]

Leilong [ Generaďż˝ ]

A sprawdż czy u Ciebie działa.

18.10.2006
18:36
[66]

Regis [ ]

Leilong -->

char znak = getch(); - przeciez to nic nie robi... podalem to jako przyklad uzycia getch, ale u Ciebie jest to zbedne.

I zamien string na conio - dawno nie pisalem z uzyciem tych bibliotek i nie pamietam gdize jest getch.

18.10.2006
19:51
[67]

nagytow [ Firestarter ]

Nie lubie conio.h, nie jest w standardzie. Wg mnie powinienes unikac jego uzywania.
Co do programu, moze tak:

#include <iostream>

using namespace std;

int main(int argc, char *argv[])

cout<<"hello neo"<<endl;
system("PAUSE > nul");
cout<<"matrix has you"<<endl;
system("PAUSE > nul");
cout<<"follow the white rabbit"<<endl;
system("PAUSE");
return EXIT_SUCCESS;

18.10.2006
21:05
smile
[68]

Leilong [ Generaďż˝ ]

Dzięki nagatyw, mam lekkie wyrzuty sumienia i dług wdzięczności. :P

21.10.2006
00:15
[69]

umek [ Szczęśliwy ]

Umcio powraca... po przesiedzeniu ileśtam czasu nad materiałami i tutorialami jestem znowu... to wszystko jest trochę bezcelowe...znacie jakieś zadania do rozwiązania w c++ etc.? Przejrzałem rzeczy z nagłówka tematu

21.10.2006
00:37
smile
[70]

slowik [ NightInGale ]

zaprojektuj i napisz jakas aplikacje ;-)

21.10.2006
00:44
[71]

nagytow [ Firestarter ]

to wszystko jest trochę bezcelowe

hm?

21.10.2006
09:57
smile
[72]

Sir Skull [ Charr Shaman ]

umek --> Masz zadania Good luck.

21.10.2006
11:20
[73]

Regis [ ]

umek, a na jakim etapie zaawansowania jestes?

21.10.2006
11:53
[74]

macintoshx [ Junior ]

Witam, od jakiegoś czasu uczę się podstaw, ale zupełnie nie wiem jak mam to czytać :) tzn jak mam rozszyfrować C++? Jak mam to przeczytać? Oczywiste że po angielsku ale jak?

21.10.2006
11:58
[75]

Regis [ ]

Czy tylko ja nie rozumiem tego pytania?

21.10.2006
12:03
[76]

Sir Skull [ Charr Shaman ]

macintoshx --> Jak przeczytać C++ ? Po angielsku to byłoby "si plas plas".

21.10.2006
12:28
[77]

Regis [ ]

Ach, to o to... I tak wszyscy mowia "ce plus plus" :P

21.10.2006
13:43
smile
[78]

hotDog [ Outsider ]

albo "si plus plus" :-D

22.10.2006
14:24
[79]

umek [ Szczęśliwy ]

to ostatnie jest pomieszane:] ja czytam siplasplas, dżawa etc., tylko html czytam po polsku. Z początku również nie zrozumiałem

Ja na poziomie początkującym, zaczynam bawić się programowaniem obiektowym (ciągnie mnie do app okienkowych)

22.10.2006
14:40
[80]

master53 [ Hans Kloss ]

Postanowiłem najpierw opanować prostrze języki (Turbo Pascal, Visual Basic) aby potem zabrać się za C++. Mam pytanie co do Visual Basic - skąd mogę ściągnąć środowisko VB które wykorzystywane jest w kursie ?

22.10.2006
14:42
[81]

Regis [ ]

A ja czytam wszystko po polsku, chyba ze rozmawiam z obcokrajowcem, wtedy z angielskiego. Grunt zeby sie dogadac, a nie cudowac. Co z tego ze taki lepek z ktorym ostatnio gadalem wiedzial, ze Java powinno sie czytac 'Haba' skoro ludzie przez minute nie wiedizeli o czym on mowi, bo wszyscy uzywali nazwy spolszczonej "jawa".


A co do Twojego zaawansowania umek, to proponuje taki program (konsolowy poki co, bo dobrze jest umiec dobrze w konsoli robic, szczegolnie obiektowo, zanim sie za okienka wezmie): Napisz sobie program, ktory bedize baza danych osob (klasa osoba). Pomysl dosc standardowy, ale jest dobra wprawka do obiektowki. Funkcje programu? Dodaj, usun osobe, zmien dane, sortuj wedlug dowolnej kategorii (imie, nazwisko, wiek, miasto zamieszkania... chyba starczy, moze jeszcze numer telefonu). JEsli umiesz, to zaimplementuj to na dwukierunkowej liscie wiazanej. Jesli nie, to na zwyklej tablicy, ale koniecznie o dynamicznym rozmiarze (dobre cwiczenie ze wskaznikow i okolic).


A jak juz opanujesz obiekty, to zainteresuj sie C++ Builderem. Osobiscie bardzo lubie to srodowisko, szybko mozna sklecic cos graficznego, jest niezly help...



master --> Daj spokoj z VB i Pascalem, strata czasu. Z dobra ksiazka i C++ jest latwy.

22.10.2006
14:47
[82]

master53 [ Hans Kloss ]

Regis -----> Tak czy siak chciałbym zobaczyć jak wygląda VB tylko nigdzie nie mogę się doszukać środowiska do niego. Czy on jest płatny czy po prostu z nikąd go nie można ściągnąć ?

22.10.2006
15:00
[83]

Sir Skull [ Charr Shaman ]

master53 --> Pobaw się tym

Jednak jeśli masz zamiar brać się za C++ to rób to od razu. Szkoda czasu na zajmowanie się pascalem i vb.

22.10.2006
21:32
[84]

umek [ Szczęśliwy ]

Regis--> zrobiło na mnie wrażenie, już się zabieram;]

22.10.2006
23:10
[85]

master53 [ Hans Kloss ]

Jednak postanowiłem że będę pisał w C++. Napisałem pierwszy program lecz coś jest nie halo.

#include <iostream>
int main()

std::cout <<"Pierwszy program w C++";



Gdy to skompilowałem i właczyłem aplikację, to tylko mi migneło okienko konsoli. Nawet nie widziałem czy coś tam jest napisane czy nie. Czy jest jakaś instrukcja gdzie po wciśnięciu Entera lub jakiegokolwiek klawisza dopiero program się kończy ? (Tak jak w TP) A może coś źle jest w tym moim iście trudnym programie ? :)

22.10.2006
23:30
[86]

fifalk [ fifalkowiec ]

master53 --> najprosciej chyba cin>>jakasZmienna :-)

22.10.2006
23:30
[87]

Sir Skull [ Charr Shaman ]

master53 --> Była już o tym mowa w tym wątku. Poczytaj posty sprzed kilku dni.

Tak z ciekawości - jakiego kompilatora używasz?

22.10.2006
23:36
[88]

master53 [ Hans Kloss ]

Sir Skull ----> Dev-C++

Ok poradziłem sobie... tzn nie całkiem.

Teraz kod jest taki

#include <iostream>
int main()

std::cout <<"Pierwszy program w C++";
system("PAUSE");


Po uruchomieniu programu wyświetlony zostaje napis "Pierwszy program w C++", tylko że obok wyświetlany jest napis "Aby kontynuować, naciśnij dowolny klawisz". Jak usunąc ten "nieproszony" napis ?

22.10.2006
23:54
[89]

slowik [ NightInGale ]

<<endl

napisu nie usuniesz to jest efekt PAUSE

23.10.2006
00:39
[90]

Katane [ Useful Idiot ]

Ew. mozna napisac cin.get() (o ile dobrze pamietam) zamiast system...

23.10.2006
02:04
[91]

nagytow [ Firestarter ]

Aby usunac napis o pauzie uzyj:

system("PAUSE > nul");

23.10.2006
07:50
[92]

Regis [ ]

master --> Pisanie std::costam jest raczej malo wygodne, polecam zaraz po sekcji include dopisac:

using namespace std;

a potem pisac juz wszystko bez std::

23.10.2006
14:27
[93]

ewuniaw_ [ Pretorianin ]

master53 =>
#include <iostream>

using namespace std;

int main()

cout<<"Pierwszy program w C++";
getchar();


sposób przedstawiony wyżej jest nieco prostrzy i efekt taki jaki byś chciał :-)

PS. Czy mógłbyś mi podać link do kursu z którego się uczysz? Chodzi mi o internetowy dla początkujących ponieważ też chciałabym uczuć się C++, a jak przeglądałam trochę linków ze wstępniaka to nie ma w nich raczej takich ... ;-]

23.10.2006
15:05
[94]

umek [ Szczęśliwy ]

getch() zamiast getchar (albo cin.get())... ale system("pause") jest wygodniejsze
osobiście polecam i

Wie ktoś jak można nawiązać połączenie internetowe kilku komputerów w c++? Jakiś tutorial?

23.10.2006
16:37
[95]

Sir Skull [ Charr Shaman ]

umek --> Poczytaj o gniazdkach (socketach).

25.10.2006
14:17
[96]

slowik [ NightInGale ]

macie jakis pomysl jak mozna byloby zrealizowac odczyt stanu klawisza w c++ ? (bez oczekiwania znaczy bez wstrzymywania akcji programu)

25.10.2006
14:30
[97]

Sir Skull [ Charr Shaman ]

slowik --> Ja bym to na wątkach zrobił.

25.10.2006
14:50
[98]

slowik [ NightInGale ]

Skull===>kontynuuj ;-)

25.10.2006
14:55
smile
[99]

Sir Skull [ Charr Shaman ]

Tzn? Oczekujesz kodu? Niestety nie mam nic pod ręką.
Czy mam zacząć wykład o wątkach w C++? :)

Nie wiem jaką aplikację piszesz. Generalnie obsługę klawiatury daj w jednym wątku, resztę w drugim (ewentualnie innych jeśli jest taka potrzeba).

25.10.2006
16:35
[100]

slowik [ NightInGale ]

wyklad o watkach albo jakies info o nich jak dotad sie nie spotkalem z tym zagadnieniem ...

25.10.2006
21:17
[101]

maVes [ Generaďż˝ ]

slowik - na polskich stronach znalazłem takie coś:

26.10.2006
06:42
[102]

Sir Skull [ Charr Shaman ]

slowik --> Materiały o wątkach? Proszę bardzo:



26.10.2006
11:16
[103]

slowik [ NightInGale ]

a to o takie watki chodzilo :-)

nie bedzie problemow z posix na win ?

26.10.2006
11:28
smile
[104]

KULL [ Gladiator ]

hej. ja tylko na chwile, tak bardz OT :)


Sir Skull -->
KULL od prawie 2 miesięcy nie pojawił się na GOLu, więc postanowiłem zrobić nową część wątku. Dodałem także do wstępniaka 2 nowe linki dotyczące .net.


fajnie, ze watek jest kontynuowany. Bede tutaj zagladal :). pozdrawiam

26.10.2006
14:09
[105]

Sir Skull [ Charr Shaman ]

slowik --> Nie powinno być problemów.

KULL --> Dawno Cię tu nie było ;) Wątek powolutku się rozwija.

26.10.2006
16:50
[106]

Karl_o [ APOCALYPSE ]

Mam pytanie. Chce aby program wyswietlil mi 10 kolejnych liczb. Napisalem cos takiego ale niedziala:(

#include <iostream>

using namespace std;

int main()

int x=0;

for(x=0; x<10; x+1) ‹
cout<<x<<"\n"<<x+1;


system("PAUSE");
return 0;

26.10.2006
16:51
[107]

Regis [ ]

To nie ma prawa dzialac poprawnie. Sprobuj tak.

int x;

for(x=0; x<10; x++) ‹
cout<<x<<"\n";


ew. zmien cout << x na cout << x+1 jesli chcesz zaczac od 1 a nie od zera

26.10.2006
16:55
[108]

Sir Skull [ Charr Shaman ]

#include <iostream>
using namespace std;

int main() ‹
for(int x=0; x<10; x++)
cout << x << endl;

system("PAUSE");
return 0;

26.10.2006
16:57
[109]

Karl_o [ APOCALYPSE ]

juz wiem gdzie tkwil blad:P

26.10.2006
19:10
[110]

Karl_o [ APOCALYPSE ]

kolejne pytanie, do czego w C# sluzy:
a) \r
b) \t
c) \a

z gory dzieki za odpowiedz

26.10.2006
19:16
[111]

Sir Skull [ Charr Shaman ]

\r - powrót do początku linii
\t - tabulacja
\a - wywołuje sygnał alarmu systemowego

26.10.2006
20:00
[112]

Karl_o [ APOCALYPSE ]

jak zapisac poprawnie w C++ cos takiego:

x= a mod b ??

Nie mam zadnego podrecznika a w tutorialach ciezko znalesc:(
Z gory wielkie dzieki

26.10.2006
20:08
[113]

Sir Skull [ Charr Shaman ]

x=a%b;

26.10.2006
22:57
[114]

master53 [ Hans Kloss ]

Takie szybkie i proste pytanko. Chciałbym, aby program wyświetlał

cout << "Twój wynik to: (i w tym miejscu chciałbym aby wyświetlona była zmienna)";

Z góry dzięki za rozwiązanie problemu ;)

26.10.2006
23:03
[115]

nagytow [ Firestarter ]

cout << "Twoj wynik to: " << x << endl;

26.10.2006
23:07
smile
[116]

master53 [ Hans Kloss ]

nagytow -----> Wielkie dzięki ;)

Następny problem

Mam

If (warunek)

instrukcja

If (warunek2)

instrukcja

...


Chciałbym żeby w przypadku gdy warunek zostanie spełniony, program po wykonaniu instrukcji zatrzymał się.

26.10.2006
23:20
[117]

Madril [ I Want To Believe ]

system("PAUSE");
Chyba to wymaga stdlib, ale pewności nie mam, bo dawno nie używałem.

27.10.2006
16:15
[118]

master53 [ Hans Kloss ]

Jako pierwszy poważniejszy program chciałem napisać kalkulator. Niestety coś nie za bardzo działa.

Oto kod:

#include <iostream>
using namespace std;
int main()

int wybor;
int liczba1;
int liczba2;
int wynik;


cout << "Wybierz dzialanie:\n"
<< "1 - dodawanie\n2 - odejmowanie\n3 - mnozenie\n4 - dzielenie\n";
cin >> wybor;
if (wybor = 1)

cout << "Podaj pierwszy składnik:";
cin >> liczba1;
cout << "Podaj drugi składnik:";
cin >> liczba2;
wynik = liczba1 + liczba2;
cout << "Twoj wynik to: " << wynik;
getchar();
cin.ignore();

else if (wybor = 2)

cout << "Podaj odjemną:";
cin >> liczba1;
cout << "Podaj odjemnik:";
cin >> liczba2;
wynik = liczba1 - liczba2;
cout << "Twoj wynik to: " << wynik;
getchar();
cin.ignore();

else if (wybor = 3)

cout << "Podaj pierwszy czynnik:";
cin >> liczba1;
cout << "Podaj drugi czynnik:";
cin >> liczba2;
wynik = liczba1 * liczba2;
cout << "Twoj wynik to: " << wynik;
getchar();
cin.ignore();

else if (wybor = 4)

cout << "Podaj dzielną:";
cin >> liczba1;
cout << "Podaj dzielnik:";
cin >> liczba2;
wynik = liczba1 / liczba2;
cout << "Twoj wynik to: " << wynik;
getchar();
cin.ignore();

else

cout << "Wybierz prawidlową pozycję !";






Program wyświetla pozycje: dodawanie, odejmowanie, mnożenie i dzielenie. Następnie oczekuje na wpisanie numeru danej pozycji. I tu zaczyna się problem. Niezależnie od tego co wpiszemy to i tak zaczyna wykonywać instrukcję dodawania. Wydaję mi się że pewnie coś sknociłem w warunkach. Za doszukanie się błędu z góry wielkie dzięki ;)

27.10.2006
16:20
[119]

Sir Skull [ Charr Shaman ]

Operator porównania to ==. Typowy błąd :)

27.10.2006
16:31
smile
[120]

master53 [ Hans Kloss ]

Sir Skull -----> Wielkie dzięki. Już wszystko chodzi. Dopiero jestem bardzo początkowym programistą w C++ więc nie wkurzajcie się na mnie ^^

27.10.2006
20:46
[121]

Pirix [ ! KB ! Góry górą ]

master53-->nikt się nie będzie za coś takiego wkurzał na Ciebie. Bądź spokojny. Takie błędy zdażają się wszystkim:) Ja wczoraj właśnie takiego błędu szukałem conajmniej pół godziny.

28.10.2006
19:00
[122]

nagytow [ Firestarter ]

master53 -->

To zeby zepsuc troche troche twoja dume z programu powiem, ze sypie sie dla dzielenia i dzielnika rownego 0 :P
Hmm a czy jak wybiore opcje '5' jako dzialanie to program napisze 'wybierz prawidlowa pozycje' i sie wylaczy? Nieladnie :P

28.10.2006
19:28
smile
[123]

master53 [ Hans Kloss ]

nagytow -----> Po napisaniu pierwszej wersji od razu pomyślałem o dzieleniu przez zero. 5 minut później problem został poprawiony :) Z tym innym wyborem to jeszcze coś mi nie wychodzi :)


#include <iostream>
using namespace std;
int main()

int wybor;
int liczba1;
int liczba2;
int wynik;


cout << "Wybierz dzialanie:\n"
<< "1 - dodawanie\n2 - odejmowanie\n3 - mnozenie\n4 - dzielenie\n";
cin >> wybor;
if (wybor == 1)

cout << "Podaj pierwszy skladnik:";
cin >> liczba1;
cout << "Podaj drugi skladnik:";
cin >> liczba2;
wynik = liczba1 + liczba2;
cout << "Twoj wynik to: " << wynik;
getchar();
cin.ignore();

else if (wybor == 2)

cout << "Podaj odjemna:";
cin >> liczba1;
cout << "Podaj odjemnik:";
cin >> liczba2;
wynik = liczba1 - liczba2;
cout << "Twoj wynik to: " << wynik;
getchar();
cin.ignore();

else if (wybor == 3)

cout << "Podaj pierwszy czynnik:";
cin >> liczba1;
cout << "Podaj drugi czynnik:";
cin >> liczba2;
wynik = liczba1 * liczba2;
cout << "Twoj wynik to: " << wynik;
getchar();
cin.ignore();

else if (wybor == 4)

cout << "Podaj dzielna:";
cin >> liczba1;
cout << "Podaj dzielnik:";
cin >> liczba2;
if (liczba2 == 0)

cout << "Nie mozna dzielic przez 0 !!!";
getchar();
cin.ignore();

else

wynik = liczba1 / liczba2;
cout << "Twoj wynik to: " << wynik;
getchar();
cin.ignore();



else

cout << "Wybierz prawidlową pozycję !";



28.10.2006
19:47
[124]

nagytow [ Firestarter ]

Uzyj while lub do ...while lub sprytnie for :)

28.10.2006
20:05
[125]

Regis [ ]

W kwestii ogolnie pojetej estetyki kodowania wprowadzilbym nastepujace zmiany (naturalnie dostosowane do Twoich umiejetnosci): calosc programu zamknalbym w petli do-while, ktora sprawdzalaby stan jakiejs zmiennej - np. 'exit' - gdybys w dowolnym momencie programu zapisal do niej 1, to petla zakonczylaby sie wykonywac, a program by zakonczyl dzialanie. To raz. Dwa - do wyboru opcji uzylbym instrukcji switch. Wydaje mi sie do tego bardziej odpowiednia, a przynajmniej bardziej estetyczna. Do tego poszczegolne dzialania matematyczne zamknalbym w funkcjach. Glowna petla by wygladala wtedy jakos tak (pomijam niemal cale wczytywanie i wypisywanie komunikatow - to co pisze to tylko ogolny zarys):

do ‹

Menu();

cin >> opcja;
switch (opcja) ‹

case 1:
Dodawanie();
break;


case 2:
Odejmowanie();
break;

.
.
itd
.
.

case 9:
exit = 1;
cout << "Koniec!";
break;

default: //wykona sie gdy zaden inny warunek nie pasuje
cout << "Bledna opcja, powrot do menu";
break;



› while (exit != 1)



Zaleta tego rozwiazanie jest takze to, ze jesli uzytkownik sie pomyli, to nie musisz konczyc programu, a jedynie wrocisz do menu, natomiast sam program bedize wlaczony tak dlugo jak bedize chcial uzytkownik (az sam go nie zakonczy przez odpowiednia opcje - nr 9 w moim przykladzie), a nie tylko raz, jak u Ciebie.

28.10.2006
20:07
[126]

master53 [ Hans Kloss ]

Ludzie nie bijcie, jeszcze nie doszedłem do pętli w źródle z którego się uczę :) Właśnie o nich czytam i spróbuje je zastosować.

Regis ----> Dzięki za wskazówki ;)

28.10.2006
20:17
smile
[127]

Regis [ ]

Nie bijemy, tylko dajemy wskazowki, jak z reszta sam zauwazyles :)

Ludzie o wiele madrzejsi od nas zauwazyli dawno temu - co sprawdza sie w 100%, przynajmniej w moim przypadku - ze najlepsze wyniki i najszybsze tempo oraz najwyzsza skutecznosc nauki osiaga sie realizujac zadania ktore sa TROCHE ponad nasze mozliwosci. Dlatego warto sobie wyznaczac takie cele i - nawet z pomoca innych - do nich dazyc. W ten sposob chociazby nauczylem sie PHP - uczac sie plodzilem mase bezuzytecznych skryptow, ktore caly czas opeiraly sie o to samo. Dopiero po paru takich 'zabawkach' postanowilem sobie zrobic ksiege gosci - to wymagalo poznania MySQL-a. Niby duzo, ale znajomosc 2 prostych zapytan to niewiele. Potem przyszly systemy newsow, ankiet, mini-forum, male rzeczy CMS'o podobne itp.

Teraz to samo mam z Java. Poki uczylem sie sam, to nic mi sie nie chcialo i gowno umialem - niewiele wiecej niz w C++. Ale dostalem do napisania program na studiach - w Javie rzecz jasna. Napisalem go, ale nie zadowalal mnie, wiec postanowilem sie pobawic. Po paru dniach pracy rozbudowalem go niemilosiernie, takze o prosty GUI i bardzo duzo sie przytym nauczylem.

Dlatego jesli ktos ma watpliwosci jak sie czegos uczyc - wlasnie tak. Realizujac cele ktore pozornie sa daleko poza zasiegiem, a w rzeczywistosci leza tylko o 'wyciagniecie reki' ponad to, co do tej pory umiemy :)

Tym optymistycznym akcentem zycze powodzenia w dalszej nauce :)

28.10.2006
20:45
smile
[128]

paszczek [ Junior ]

mam pytanko:
Jak umieścić grafikę wektorową (np. kwadrat, jakiś wykres.....):
-- w c++ (visual express) pod konsolą'?
-- w trybie okienkowym (CLR windows forms)?

28.10.2006
20:52
[129]

master53 [ Hans Kloss ]

Regis -----> Postanowiłem dodać kilka funkcji i nie spocznę póki ich nie dodam :) Szczerze to bardzo mnie zaskoczył C++. Myślałem że jest o wiele trudniejszy. Część rzeczy jest bardzo podobna do Pascala. Bardzo lubię pisać programy. Mam dużą satysfakcję jeśli na końcu wszystko działa. Od zawsze chciałem być informatykiem i myślę że jeśli wcześniej zacznę programować (teraz mam 14 lat, pierwszy program w Pascalu napisałem mając 12 lat, <szpan mode on> 2 miejsce w ogólnopolskim konkursie Logomocji <szpan mode off> :)), to potem to przyniesie same korzyści.

28.10.2006
21:03
smile
[130]

Adam9870 [ ]

master53 ---> Mam małą prośbę do Ciebie: Czy mógłbyś dać link do kursu z którego się uczysz bo szukam właśnie :-)

28.10.2006
21:12
[131]

Regis [ ]

to ze C++ jest trudny to opinia powielana przez 3 typy ludzi:
a) tych dla ktorych szczytem mozliwosci jest makro w Basic-u
b) tych ktorzy na oczy nie widzieli C i powtarzaja opinie tych z pkt. a)
c) tych ktorzy uczyli sie programowac 150 lat temu i od tamtej pory przeoczyli rozwoj jezykow programowania i teraz nie wiedzia 'OCB' i czuja sie tym przytloczeni ;)

W kazdym razie- C++ nie jest trudniejszy niz Pascal do podstawowych zastosowan. Owszem, schody sa, ale duzo pozniej. Ale niejako w nagrode sa tez duzo wieksze mozliwosci.

28.10.2006
21:12
[132]

master53 [ Hans Kloss ]

Adam9870 -----> Tylko że dopiero powstaje. Na razie są tylko 2 działy ale jest naprawdę zrozumiale napisany. Nie działa na Firefox'ie :/


Udało mi się przerobić program. Jest tylko jeden problem. Gdy wybieram opcję wyjścia, nie pokazuje mi się napis "Koniec". Czym to jest spowodowane ?

#include <iostream>
using namespace std;
int main()

int wybor;
int liczba1;
int liczba2;
int wynik;
int exit;


do

cout << "Menu:\n\n"
<< "1 - Dodawanie\n2 - Odejmowanie\n3 - Mnozenie\n4 - Dzielenie\n5 - Wyjscie\n";
cin >> wybor;
switch(wybor)

case 1 :
cout << "Podaj pierwszy skladnik:";
cin >> liczba1;
cout << "Podaj drugi skladnik:";
cin >> liczba2;
wynik = liczba1 + liczba2;
cout << "\nTwoj wynik to: " << wynik <<"\n\n";
break;

case 2:
cout << "Podaj odjemna:";
cin >> liczba1;
cout << "Podaj odjemnik:";
cin >> liczba2;
wynik = liczba1 - liczba2;
cout << "\nTwoj wynik to: " << wynik <<"\n\n";
break;

case 3:
cout << "Podaj pierwszy czynnik:";
cin >> liczba1;
cout << "Podaj drugi czynnik:";
cin >> liczba2;
wynik = liczba1 * liczba2;
cout << "\nTwoj wynik to: " << wynik <<"\n\n";
break;

case 4:
cout << "Podaj dzielna:";
cin >> liczba1;
cout << "Podaj dzielnik:";
cin >> liczba2;
if (liczba2 == 0)

cout << "\nNie mozna dzielic przez 0 !!!\n\n";
break;


else

wynik = liczba1 / liczba2;
cout << "\nTwoj wynik to: " << wynik <<"\n\n";
break;


case 5:
exit = 5;
cout << "Koniec!";
break;

default:
cout << "\nBledna opcja, powrot do menu\n\n";
break;


while (exit != 5);

28.10.2006
21:18
[133]

maVes [ Generaďż˝ ]

master53 --> Dodaj cin.get(); po cout << "Koniec!"; Program po prostu się kończył i nie było widać tego że cokolwiek wypisuje na ekran.

28.10.2006
21:30
[134]

master53 [ Hans Kloss ]

maVes -----> Dodałem getchar(); oraz cin.ignore(); i już wszystko chodzi.

Co byście polecali zamiast Dev-C++ ? Coraz częściej mu coś zaczyna odbijać :/

28.10.2006
21:36
[135]

maVes [ Generaďż˝ ]

master53 - co dokładniej się dzieje? Ja w Devie piszę już dość długo, i do tej pory nie miałem żadnych problemów. Mam jeszcze Visual Studio, ale nigdy go nie używam :D Nie mogę się w nim połapać, jak dla mnie za dużo funkcji, których i tak bym nie używał, a do tego nie jest w pełni zgodny ze standardem.

Jest jeszcze IDE o nazwie Code::Blocks - sam go nie sprawdzałem, ale dużo ludzi go poleca.

28.10.2006
21:39
[136]

Regis [ ]

Ja preferuje Borland Buildera Personal. Konsolowe aplikacje mozna w nim jak najbardziej pisac, ma tez pare fajnych Borlandowskich bibliotek, jak sie juz nieco podszkolisz, a i ze srodowiskiem sie oswoisz, co sie przyda jak sie bedziesz przymierzal do robienia okienek.

28.10.2006
23:14
[137]

master53 [ Hans Kloss ]

Następny problem. Zrobiłem menu i podmenu. Wygląda to mniej więcej tak:

.
.
.
do

Menu();

switch(wybor)


case 1:
do

Podmenu();

while (exit1 != 5)

case 2:
OProgramie();

case 3:
Wyjscie();


while (exit != 3)



Problem jest taki, że w momencie gdy przerywam pętle podmenu (to które jest w poście 132) program zamiast wykonywać ponownie pętlę głównego menu przechodzi do następnego czyli case 2 (o programie). Co zrobić aby po przerwaniu pętli podmenu, program zaczął od nowa wykonywać pętlę menu głównego ?


Edit: maVes ----> Co do Dev-C++ gdy włączam opcję Kompiluj i Uruchom lub samo Uruchom, uruchamia się program który już dawno napisałem, ale nie ten który przed chwilą został skompilowany.

29.10.2006
09:34
[138]

maVes [ Generaďż˝ ]


master53 -> pętle do...while z case1 wrzuć do tej funkcji Podmenu(), a następnie dodaj break; na końcu każdego case. Możesz dodać jeszcze default a w nim jakiś komunikat, który wyświetli się gdy podasz inną wartość niż te które są podane w menu.

29.10.2006
09:52
[139]

Kijano [ Generaďż˝ ]

master53 -> Pamietaj po kazdym case musi byc na koncu break; czyli np.
case 2:
OProgramie();
break;

bo inaczej nie bedzie dzialac

29.10.2006
11:14
[140]

Pirix [ ! KB ! Góry górą ]

master53--->co do Dev'a tomusisz się przyzwyczaić do tego, że jeśli w Devie masz otwarty jednocześnie więcej niż jeden projekt to bywa, że kompilator nie radzi sobie z tym kompilując i uruchamiając nie to co chcesz. Moja rada na to jest prosta - nauczyć się, żeby nie mieć otwartego więcej niż jednego projektu na raz. Raz, że ułatwia to pisanie bo nie mylą się pliki a dwa znika problem tego, że Dev uruchamia nie to co chcesz.
Mi się w Devie pisze bardzo wygodnie - nawet większe, wieloplikowe programy.

29.10.2006
12:06
[141]

master53 [ Hans Kloss ]

Dzięki ! Już wszystko działa. Teraz następne pytanko. Czy da się ograniczyć zmienną do np. 2 cyfr ? (w Pascalu była taka opcja więc tutaj też pewnie jest) Nigdzie nie mogę znaleźć jak można to zrobić.

30.10.2006
16:01
[142]

maVes [ Generaďż˝ ]

master53 - ogranicz tą zmienną if-em, np:

int x;
cin >> x;

if (x < -100 || x > 99) cout << "Podaj liczbe dwucyfrową!";

Innego sposobu nie znam. Można tu dodać jeszcze pętlę do...while co sprawi że program nie przejdzie dalej jeśli podasz niewłaściwą wartość.

30.10.2006
17:40
[143]

fanlegii79 [ Generaďż˝ ]

Pytanie po co chcesz ograniczyc. Jezeli dla oszczednosci pamieci to moze to byc char. Natomiast jezeli potrzebujesz sprawdzc gdzies poprawnosc wartosci to asercja z warunikem. Jezeli chodzi o wczytywanie, to jedynie przez wczytywanie znak po znaku.

30.10.2006
19:08
[144]

TiAmo [ Pretorianin ]

Jezeli mozna zadawac tu pytania badz prosby, to skorzystam. Otoz mam zadane na jutro odnalezc bledy w tym programie:


/* Program przykladowa do testowania srodowiska uruchomieniowego na lab. z
* PRM. Program zawiera bledy. Zadaniem jest wylapac bledy, a nastepnie
* wywolac zalaczone funkcje wg instrukcji Prowadzacego. Dla ambitniejszych:
* napisac funkcje rysLinia, ktora uogolnialaby wszystkie funkcje o nazwach
* zaczynajacych sie od slowa <rys>. J. Arabas */
#include <stdio.h>
#define MAXX 5
#define MAXY 10
#define PELNE '*'
#define PUSTE '.'

/* sprawdza, czy argument x jest zawarty w przedziale domknietym [min,max]
wartosc zwracana:
-1 jesli x<min
0 jesli min<=x<=max
1 jesli x>max
*/
char pozaZak (int x, int min, int max)

if (x<=min) return -1;
if (x>=max) return 1;
return 0;


/* Wypelnia pionowa linie w tablicy ekran znakami PELNE.
Polozenie poczatkowe kreslonej linii: px, py
Linia zawiera nZnak znakow, jesli "wystawalaby" poza tablice, ta wartosc
jest przycinana do rozmiarow tablicy
*/
void rysPion (char ekran[MAXX][MAXY], int px, int py, int nZnak)

int x,y;
int i;

for (x=px, y=py, i=0; i<=nZnak; i++)

if (pozaZak(x,0, MAXX-1)) return;
if (pozaZak(y,0, MAXY-1)) return;
ekran[x][y]=PELNE;
y++;


/* Wypelnia pozioma linie w tablicy ekran znakami PELNE.
Polozenie poczatkowe kreslonej linii: px, py
Linia zawiera nZnak znakow, jesli "wystawalaby" poza tablice, ta wartosc
jest przycinana do rozmiarow tablicy
*/
void rysPoziom (char ekran[MAXX][MAXY], int px, int py, int nZnak)

int x,y;
int i;

for (x=px, y=py, i=0; i<=nZnak; i++)

if (pozaZak(x,0, MAXX-1)) return;
if (pozaZak(y,0, MAXY-1)) return;
ekran[x][y]=PELNE;
x++;


/* Wypelnia ukosna w lewo linie w tablicy ekran znakami PELNE.
Polozenie poczatkowe kreslonej linii: px, py
Linia zawiera nZnak znakow, jesli "wystawalaby" poza tablice, ta wartosc
jest przycinana do rozmiarow tablicy
*/
void rysUkosL (char ekran[MAXX][MAXY], int px, int py, int nZnak)

int x,y;
int i;

for (x=px, y=py, i=0; i<=nZnak; i++)

if (pozaZak(x,0, MAXX-1)) return;
if (pozaZak(y,0, MAXY-1)) return;
ekran[x][y]=PELNE;
x--;
y++;


/* Wypelnia ukosna w prawo linie w tablicy ekran znakami PELNE.
Polozenie poczatkowe kreslonej linii: px, py
Linia zawiera nZnak znakow, jesli "wystawalaby" poza tablice, ta wartosc
jest przycinana do rozmiarow tablicy
*/
void rysUkosP (char ekran[MAXX][MAXY], int px, int py, int nZnak)

int x,y;
int i;

for (x=px, y=py, i=0; i<=nZnak; i++)

if (pozaZak(x,0, MAXX-1)) return;
if (pozaZak(y,0, MAXY-1)) return;
ekran[x][y]=PELNE;
x++;
y++;


/* --> Napisac samodzielnie podczas laboratorium*/
/* --> Obsluzyc sytuacje, gdy px, dx<0 */
/* Wypelnia dowolna linie w tablicy ekran znakami PELNE.
Polozenie poczatkowe kreslonej linii: px, py.
Argumenty dx, dy definiuja kierunek kreslenia
Linia zawiera nZnak znakow, jesli "wystawalaby" poza tablice, ta wartosc
jest przycinana do rozmiarow tablicy
*/
void rysLinia (char ekran[MAXX][MAXY], int px, int py, int dx, int dy, int
nZnak)

printf ("\n***\n napisz mnie! \n***\n");



/* Rysuje zawartosc ekranu na standardowym wejsciu */
void rysEkran (char ekran[MAXX][MAXY])

int x,y;

for (y=0; y<MAXY; y++)
for (x=0; x<MAXX; x++)
printf("%c", ekran[x][y]);
printf("\n");

/* Wypelnia ekran znakami PUSTE */
void czyscEkran (char ekran[MAXX][MAXY])

int x,y;

for (y=0; y<MAXY; y++)
for (x=0; x<MAXX; x++)
ekran[x][y] = PUSTE;


int main()

char ekran[MAXX][MAXY];
int t;
czyscEkran(ekran);
rysPion(ekran, 4,2,5);
rysEkran(ekran);
scanf("%d",&t);
return 0;


Program powinien dzialac, lecz nie tak jak powinien :) a jak powinien nei wiem :P Poczytam i sprobuje to zrobic sam (to moja 3 lekcja z C), ale zamiescilem to tauj, gdybym nie zdazyl zrobic tego sam, a pewnie tak bedzie ;/ Wiec jakby jakies zabezpiecznie :) Tym ktorzy sie nudza, z gory dzieki

30.10.2006
20:53
[145]

cwirek [ Centurion ]

Mam malutki problem, chodzi o kod znajdujący się poniżej. W programie używam dynamicznych tablic do przetrzymywania punktów do kreślenia linii i w tym właśnie tkwi problem. Wszystko działa w porządku do czasu wyświetlenia figury, zaraz potem program przestaje odpowiadać i po chwili pokazuje się okienko z informacją : „Access violation At address …… write at address …”. Po zmianie tablic na statyczne opisany wyżej błąd już nie występuje, jednakże nie chciałbym rezygnować z tablic dynamicznych. Może ktoś z was znajdzie gdzie jest błąd, bo ja już niestety nie mam do tego cierpliwości.

void __fastcall TForm1::Button1Click(TObject *Sender)

Form1->Repaint(); //czysczenie formy
Form1->Canvas->Pen->Color=clBlue;
int R=Form1->Edit3->Text.ToInt(); // R - dlugosc boku kwadratu
int N=Form1->Edit4->Text.ToInt(); // N - ilosc odcinkow na jakie dzielimy bok
int x=Form1->Edit1->Text.ToInt();
int y=Form1->Edit2->Text.ToInt();
Form1->Canvas->MoveTo(x+R/2,y+R/2);
int i,j,*tX,*tY;
tX = new int[4*N];
tY = new int[4*N];

tX[0]=x+R/2; //wprowadzenie do tablicy wpolzendnych prawego gornego rogu
tY[0]=y+R/2;
//Obliczenie wsp. N punktow dookola krawedzi o boku R

i = 1;
double p1, p2;
for (int k=1;k<=4;k++)

if(k==1)

p1=-(R/N);
p2=0;

else if(k==2)

p1=0;
p2=-(R/N);

else if(k==3)

p1=(R/N);
p2=0;

else if(k==4)

p1=0;
p2=(R/N);

for(;i<=(k*N);i++)

tX=tX[i-1]+p1;
tY=tY[i-1]+p2;


// Laczenie punktow linią
for(i=4*N-1;i>=0;i--)

for (j=4*N-1;j>=0;j--)

Form1->Canvas->MoveTo(tX,tY);
int z=i-j; // obliczanie roznicy (i - j)
if (z<0)
z+=4*N; // odejmowanie modulo
if(test_fib(z)) //sprawdzanie czy (i - j) jest liczba z cia. Fibonnaciego
Form1->Canvas->LineTo(tX[j],tY[j]) ; //laczenie punktow


delete [] tX;
delete [] tY;




PS. Tak wygląda powstała figura.
Program napisałem na przedmiot „Grafika komputerowa”

31.10.2006
21:12
[146]

corey [ Pretorianin ]

witam.
pytanie do zaawansowanych:
jak zadeklarować ogromną zmienną ? [ rzędu 600 - 700 cyfr ]
czy typ void to obejmie ?

i druga sprawa - jak najłatwiej wyeksportować tablicę do pliku żeby potem ją łyknął inny program ?

z góry dzięki. jakakolwiek pomoc będzie przydatna.

31.10.2006
22:20
[147]

corey [ Pretorianin ]

up ^

31.10.2006
22:23
[148]

slowik [ NightInGale ]

problem mozna rozwiazac za pomoca 'mnozenia pisemnego' dla kazdej ilosci danej tworzysz nowa zmienna (moze byc tablica zmiennych) no i traktujesz to jako liczbe oczywiscie nie doslownie ...

jest jeszcze jakis sposob z logarytmami ...

31.10.2006
22:43
[149]

corey [ Pretorianin ]

pierwsza metoda odpada niestety ze względów technicznych/wykorzystania operacji na takich liczbach.

co do drugiego to nie wiem ale teżmam wątpliwości bo tą liczbę wprowadzam do programu z zewnątrz i nie mam mozliwości innego jej przedstawienia. ten program ma właśnie rozkładać ją na czynniki pierwsze...

może już ktoś taki programik posiada? ew. możliwy do adaptacji do większyh liczb.
gdyby się jeszcze ktoś znalazł kto by mi pomógł z tą "adaptacją" to byłoby idealnie... ; )

sam jestem totalnie zielony jeśli chodzi o C++ i znam ledwie podstawy więc ciężko mi nawet wpaść na jakiś pomysł.
podobno da się to zrobićna jakichś listach, może też na dużych tablicach, ale totalnie nie mam pojęcia jak...

jak ktoś na coś wpadnie to napiszcie pls

01.11.2006
10:41
[150]

Regis [ ]

Najprosciej byloby przechowywac taka liczbe w tablicy - kazda cyfra w osobnej komorce. Tyle ze - aby mialo to rece i nogi i bylo wygodne - wymagaloby to napisania klasy do obslugi tak zapisanej informacji.

01.11.2006
14:07
[151]

corey [ Pretorianin ]

właśnie o to chodzi. a klasy napisać takiej nie bardzo potrafie...
bo samo umieszczenie w tablicy powiedzmy że byłoby możliwe ale ja muszę wykonywać operacje na tej liczbie więc niewiele mi to daje jeśli nie mam klas do jej obsługi.

wielkie dzięki Regis! o coś takiego mi chodziło - pomysł. z tym mam problemy bo nie znam w sumie tego języka.

jakby się jeszcze znalazła taka klasa... ; P

ale przynajmniej wiem mniej więcej czego szukać.

aha - jeszcze jedna rzecz - wielkość tablicy jest ograniczona prawda?
wiem że da się to obejść ale nie wiem dokładnei jak.

01.11.2006
16:34
[152]

fanlegii79 [ Generaďż˝ ]

To jedyny program jaki napisalem w c++, ale moze akurat sie tobie przyda. Jezeli bedziesz chcial normalny kod to dam na maila. Tablice sa oczywiscie dynamiczne, jak okazuje sie zamala to powiekszam ja dwuktronie.

#include <iostream.h>

#include <stdio.h>

#include <stdlib.h>



class DuzaLiczba ‹

private:

int max,last;

int* a;

public:

DuzaLiczba(int cyf);

DuzaLiczba(DuzaLiczba& DL);

~DuzaLiczba();

friend ostream& operator<<(ostream& os, DuzaLiczba& DL);

void Wypisz();

DuzaLiczba& DuzaLiczba::operator+=(DuzaLiczba& DL);

›;

//konstruktor z cyfry powinno sie przerobic na ze stringa ale to nie wielki klopot.

DuzaLiczba::DuzaLiczba(int cyf)



max=100;

a = new int[max];

max=max-2;

last=0;

int i;

a[0]=cyf;

for (i=1;i<=max;i++)



a=0;







//destruktor

DuzaLiczba::~DuzaLiczba()

‹delete[] a;›





//operator kopiujacy

DuzaLiczba::DuzaLiczba(DuzaLiczba& DL)



int i;

last=DL.last;

max=DL.max;

a = new int[max+2];

for (i=0;i<=max;i++)

a=DL.a;





//operator sluzacy do wypisywania na strumien

ostream& operator<<(ostream& os, DuzaLiczba& DL)



int i;

for (i=DL.last;i>-1;i--)





os<<DL.a;







//operator += dzialajacy na referencjach dodaje druga liczbe do pierwszej

//w miejscu

DuzaLiczba& DuzaLiczba::operator+=(DuzaLiczba& DL)



int i;

if(max==last||max<=DL.last)



int* b;

if (last>DL.last)

‹max=last;›

else

‹max=DL.last;›

b=new int[max=(max+2)*2];

max=max-2;

for (i=0;i<=last;i++)



b=a;



for (i=last+1;i<=max;i++)



b=0;



a=b;





for (i=0;i<=DL.last;i++)



a+=DL.a;





if (last<DL.last)

‹last=DL.last;›

int pom;

pom=0;

for (i=0;i<=max;i++)



if (a>9)



a-=10;

a[pom=i+1]++;





if (pom>last) ‹last++;›





//miala chyba byc instrukcja do wypisywania

void DuzaLiczba::Wypisz()



cout<<this;





//program glowny liczy liczby fibonachiego

void main()



int stopien;

cout<<"Ktorej liczby fibonachiego szukasz?";

cin>>stopien;

if (stopien==1) ‹cout<<0;›

if (stopien==2||stopien==3) ‹cout<<1;›

if (stopien>3)



int i;

DuzaLiczba f1(1);

DuzaLiczba f2(1);

for (i=4;i<=stopien;i++)

‹ if (i%2)‹f1+=f2;› else ‹f2+=f1;››

if (stopien%2) ‹cout<<f1;› else ‹cout<<f2;›



01.11.2006
19:38
[153]

corey [ Pretorianin ]

wielkie dzięki!
byłbym wdzięczny za przesłanie kodu na maila: [email protected]
co do samego kodu to niestety średnio go rozumiem...

ogólnie mniej więcej czaje ale niektóre elementy to serio czarna magia... ; /
nie wiem też jak wygląda używanie takij klasy bo nigdy własnej nie tworzyłem...
muszę odświerzyć więdzę i sporo się jeszcze douczyć...
będę wdzięczny za podpowiedzi.
jak się z czymś zatnę to napiszę i zapytam.

a co do powiększania tablicy to będzie potrzeba tak z 6-7 razy. przynajmniej 6.5. nie będzie komplikacji ?

02.11.2006
08:03
[154]

corey [ Pretorianin ]

a co jeśli będe chciał stworzyć tablicę dużych liczb ? bo możliwe, że będę tego potrzebował...

02.11.2006
08:45
smile
[155]

grish_em_all [ Hairless Cobra ]

Ja mam małą prośbę, co prawda już raz się zbłaźniłem towrząc nowy wątek zamiast spytaćsię w tym, ale mniejsza o to, już wyjaśniam o co chodzi:
Mam do napisania niewielki programik w języku C, ale nie mam za chiny pomysłu jak go ugryźć. Program ma sprawdzić, czy podany wyraz jest palindromem (czyta się go tak samo od początku i od końca). Wiem, że to trzeba porównać pierwszą i ostanią literę wyrazu, a następnie "schodzić do środka". Ale jak to napisać? ;) Kolebie mi się między uszami, że to trzeba każdy znak odłożyć na stosie, a następnie za pomocą wskaźników odwoływać się do odpowiednich komórek pamięci i porównywać zawartość. Dawno w C nic nie pisałem i lekka skleroza mnie dopadła :D Dodam tylko, że nie szukam jelenia, który napisze to za mnie. Wystarczy, że ktoś wytłumaczy mi mechanizm, jak to zrobić, (ewentualnie stworzy samą procedurę porównywania poszczególnych znaków i wytłumaczy jak to działa), z samym programem już sobie poradzę

Otrzymałem już jedną podpowiedź, że łańcuchy znaków zapisywane są w tablicy, żeby w pętli przepisać do drugiej tablicy wyraz od końca i porównywać, nie miałem jeszcze okazji tego przetestować.

Dzięki z góry za wskazówki :)
Pozdrawiam, Grish

02.11.2006
11:42
smile
[156]

grish_em_all [ Hairless Cobra ]

OK, moje zapytanie już jest nieaktualne, z pomocą dwóch GOLowiczów dałem radę :)

06.11.2006
16:53
[157]

maVes [ Generaďż˝ ]

Mam pewien z polimorfizmem w C++...

Obiekt tab[10];
Obiekt *wsk = tab;

for (int i=0; i<10; i++)

(wsk+i) -> tab.Pisz();


Mam tablicę obiektów jakiejś klasy bazowej, w której znajdują się obiekty klas pochodnych. W takiej postaci niezależnie na jaki obiekt pokazuje wskaźnik, wywoływana jest funkcja wirtualna z klasy bazowej, natomiast chciałbym aby dzięki polimorfizmowi wywołać funkcję zależną od klasy.
Czy da się to zrobić na tablicach? Błędu w kodzie nie mam, bo po przypisaniu adresu konkretnego obiektu nie będącego w tablicy do wskaźnika działa jak należy.

06.11.2006
18:39
[158]

hotDog [ Outsider ]

Może spróbuj zrobić tablicę 10 wskaźników typu Obiekt*

06.11.2006
18:44
[159]

False [ Up ]

Cześć. Jestem początkujący w języku C/C++ (dosłownie jestem totalnym laikiem) i mam problem. Nauczyciel z informatyki, nie jest do końca rozgarnięty i nie widzi, że nie nadążamy z tematami, poza tym tłumaczy on kiepsko, nawet bardzo. Potrzebne mi są więc książki do języka C (a może i C++), dla bardzo początkujących. Zauważyłem, że w wstępniaku jest podanych kilka książek, ale nie wiem, czy nie są zbyt zaawansowane, a książeczki od Komputer Świat raczej już nie dostane.
Jest jeszcze jeden problem. Dużo różni się języki C od języka C++? Czy warto kupować książki dla C (teraz przerabiamy ten język), czy od razu dla C++. I czy pisane w C++ programy będą sprawnie działały w programie np. Turbo C? Przepraszam za zagmatwanie i liczę na waszą pomoc. Pozdrawiam!

06.11.2006
18:51
[160]

Katane [ Useful Idiot ]

Dobra ksiazka dla poczatkujacych jest "Szkola programowania: Jezyk C" Stephena Prata.

C++ posiada wiele mechanizmow niedostepnych w C - lepiej naucz sie najpierw C.

Turbo C jest kompliatorem jezyka C, nie kompiluje C++ (przynajmniej tak twierdzi wikipedia).

06.11.2006
18:56
smile
[161]

przemek__ [ PRZEMEK ]

False ---> Dla Ciebie polecam Symfonie C++ Grębosza.
C++ to ANSI C z dodatkami, ogólnie podstawy są podobne.

06.11.2006
21:19
[162]

maVes [ Generaďż˝ ]

hotDog -> To masz na myśli?

Przedmiot *wsktab[20];
for(int i=0; i<10; i++)

wsktab= &tabObj;


for (int i=0; i<10; i++)

wsktab -> Pisz();


Gdy zrobię to w ten sposób efekt będzie taki sam, z tym że zamiast jednego wskaźnika będę ich miał 10 :/

False -> ja również polecam Symfonię C++ Standard i uważam że lepiej się od razu uczyć C++.

06.11.2006
21:25
smile
[163]

Golem6 [ Gorilla The Sixth ]

Postanowiłem tu zajrzeć chociaż narazie nie będę się chwalił moim programami, bo nie są zbyt potężne. Jestem narazie na poziomie metody trapezów, prostokątów i Monte Carlo.
Ale będę tu częściej zaglądał, może się czegoś ciekawego nauczę.

Odrazu coś dodam od siebie.
Czy nie lepiej na zakończenie programu używać getch() zamiast system("PAUSE"). Wtedy nie bedzie żadnych niepożądanych napisów [ktoś o to pytał].

06.11.2006
21:27
[164]

maczu [ Konsul ]

lepiej sie od razu uczyc c++, a pozniej ewentualnie javy albo c#. przechodzenie z c na c++ moze byc troche uciazliwe, a i w sumie c nie jest juz tak popularne.

06.11.2006
22:01
[165]

Xaar [ Uzależniony od Marysi ]

Czy jest gdzieś jakiś spis bibliotek i za co odpowiadają?
Np jaką bibliotekę muszę użyć do getch () ?

06.11.2006
22:03
[166]

Golem6 [ Gorilla The Sixth ]

Ja używam zawsze dwóch. I narazie mi to wystarcza.

#include <iostream.h>
#include <conio.h>

Chociaż 'konia' podobno teraz się już nie stosuje za często. Tak samo jak tego '.h' ale tak zostałem nauczony :]
'

07.11.2006
00:14
smile
[167]

hotDog [ Outsider ]

maVes --> niezupełnie o to. Nie wiem jak Ty to masz tam zorganizowane w kodzie itd i czasu dziś też za wiele nie mam, ale miałem na myśli coś w stylu:

- tablica 10 wskaźników bazowych
for(int i=0; i<10; ++i)
tab = new costam_pochodne....

i dopiero potem wywoływanie metod wirtualnych. Nie wiem czy to o to Ci chodzi i czy to jest poprawne odnośnie Twojego kodu.

Bo w tym pierwszym poście, którego napisałeś, to stworzyłeś po prostu tablicę 10 Obiektów typu Obiekt. A typ Obiekt ma swoją metodę, więc dlaczego miałby używać metod pochodych :-)


Tak to przynajmniej zrozumiałem na szybko. Na razie jestem zabiegany i może jutro przyjrzę się temu bliżej.

07.11.2006
16:05
[168]

maVes [ Generaďż˝ ]

hotDog -> co do organizacji kodu. Piszę prostą grę rpg, w zwykłej konsoli. Wszystko mam praktycznie zrobione, za wyjątkiem ekwipunku bo natrafiłem na taki problem jak pisałem wyżej. Chciałbym żeby jedna pętla wyświetliła zawartość całego ekwipunku. Dla zwykłych przedmiotów powinna być wyświetlona nazwa, ilość i na przykład waga, a dla zbroi dodatkowo wartość pancerza.

Mam bazową klasę Przedmiot z wirtualną funkcją Pokaz() (to właśnie ona odpowiada za wyświetlanie opisu) i kilka klas od niej pochodnych, które mają własną funkcję Pokaz()

Początkowo ekwipunek był tablicą 20 elementów klasy Przedmiot na którą pokazywałem wskaźnikiem, ale jak się przekonałem takie wyjście nie jest dobre, bo nie działa :) Pomysł z tablicą wskaźników wydaje mi się dobry, ale nie wiem do końca jak go zrealizować :P A pozatym może się okazać że będę musiał sporo pozmieniać w kodzie... którego mam ponad 1500 linii (wiem że dla was to zapewne niewiele, ale ja sam dopiero niedawno zacząłem się uczyć programować wogóle).

07.11.2006
17:54
smile
[169]

hotDog [ Outsider ]

Żeby rozwiać wszelkie wątpliwości wklejam kod:


-----------------------------------------
#include <iostream>

// klasa abstrakcyjna - nie mozna utworzyc obiektu typu Przedmiot
// zarowno w tym kodzie jak i na rzeczywistym swiecie :)
class Przedmiot

public:
virtual void Pokaz()=0;
›;


// klasy pochodne po klasie abstrakcyjnej Przedmiot

class Ksiega : public Przedmiot

public:
void Pokaz()
‹ std::cout<< "To jest ksiega"<<'\n'; ›
›;

class Eliksir : public Przedmiot

public:
void Pokaz()
‹ std::cout<< "To jest eliksir"<<'\n'; ›
›;

class Zbroja : public Przedmiot

public:
void Pokaz()
‹ std::cout<< "To jest zbroja"<<'\n'; ›
›;

class Luk : public Przedmiot

public:
void Pokaz()
‹ std::cout<< "To jest luk"<<'\n'; ›
›;


int main(int argc, char* argv[])


Przedmiot* ekwipunek[10];

ekwipunek[0] = new Ksiega;
ekwipunek[1] = new Luk;
ekwipunek[2] = new Eliksir;
ekwipunek[3] = new Zbroja;
ekwipunek[4] = new Ksiega;
ekwipunek[5] = new Eliksir;
ekwipunek[6] = new Zbroja;
ekwipunek[7] = new Luk;
ekwipunek[8] = new Ksiega;
ekwipunek[9] = new Eliksir;


for(unsigned i=0; i<10; ++i)
ekwipunek[ i ]->Pokaz();
// tutaj automat GOL'a usuwa znicze i nie mozna wybrac elementu z tablicy wiec jest [ i ]:)


for(unsigned i=0; i<10; ++i)
‹ delete [] ekwipunek; ›


system("pause > null");
return 0;


-------------------------------------

ja tak to zrozumiałem, mam nadzieję, że o to Ci chodzi.

Jeśli dobrze rozumiem to o co Ci chodzi, to moim zdaniem popełniłeś błąd tworząc tablicę 10 Przedmiotów - bo już z góry ustaliłeś, że ta tablica zawiera w sobie 10 obiektów typu Przedmiot, więc dla C++ jest wszystko jasne i nie działa tutaj polimorfizm. Musisz stworzyć tablicę 10 wskaźników, które wskazują na obiekty różnego typu - wtedy polimorfizm działa i wybiera tę metodą składową, która jest w danym obiekcie odpowiednia (wirtualna).

zrobiłeś coś takiego:

samochod moje_auta[10] czyli
samochod[5]->pochwal_sie() "Moim samochodem nr5 jest samochod"

a powinno byc
samochod* moje_auta[10], wtedy wskaźnik wskazuje na jakiś typ samochodu, wiec bedzie np.
smochod[5]->pochwal_sie(); "Moim samochodem nr5 jest Audi"


tak jakoś to chciałem wytłumaczyć - nie wiem czy mi wyszło, ale mam nadzieję, że sam kod w C++ Ci wystarczy - bo ja pedagogiem raczej cienkim jestem :-)

07.11.2006
20:03
smile
[170]

maVes [ Generaďż˝ ]

hotDog -> dzięki za tak wyczerpującą wypowiedź. Już wiem na czym polegał mój problem.

Ale przerobiłem kod i pojawił się kolejny zgrzyt - na etapie linkowania pojawia się masa tajemniczych błędów, na przykład "undefined reference to 'vtable for Zbroja' ". Takie same błędy wywala przy innych klasach i funkcjach tych klas. Myślę że przyczyną tego może być rozbicie kodu na pliki - każdą klasę mam w oddzielnym (za wyjątkiem tych które są dziedziczone). Tablica wskaźników na obiekty jest z kolei elementem osobnej klasy. Da się z tym coś zrobić?

07.11.2006
21:47
[171]

hotDog [ Outsider ]

tzn trudno powiedzieć w czym tkwi problem, za mało szczegółów.

Includujesz wszystkie niezbędne pliki nagłówkowe?

użyj tego kodu:

#ifndef _PLIK_H_
#define _PLIK_H_

tutaj tresc pliku naglowkowego...

#endif

to zapobiega błędowi kilkukrotnego dołączania tego samego pliku podczas kompilacji.

No i napisz coś więcej, bo ciężko powiedzieć o co chodzi.

07.11.2006
22:34
[172]

maVes [ Generaďż˝ ]

hotDog -> ifndefa i define używam w każdym pliku. Sprawdziłem - błędy wywala tylko kiedy mam do czynienia z klasą czysto wirtualną. Jeśli nie używam polimorfizmu, wszystko działa jak należy (w sensie: kompiluje się i uruchamia). Nie mam teraz zbytnio czasu, więc jutro podam więcej szczegółów. Tak czy owak - dzięki że starasz się mi pomóc.

08.11.2006
15:23
[173]

maVes [ Generaďż˝ ]

Każdą klasę mam w 2 plikach:
-klasa.h z definicją tej klasy (i ewentualnie klas pochodnych), tu mam zastosowane dektrywy #ifndef, #define i #endif
-klasa.cpp - tu są definicje wszystkich funkcji składowych i konstruktorów

Plik z klasą Przedmiot wygląda mniej więcej tak:

class Cos //zależy mi też na zwykłych przedmiotach które nie służą do niczego konkretnego

public:
//tu mam też konstruktory i kilka zmiennych które są dziedziczone
virtual void Pokaz()=0;
›;

class Przedmiot : public Cos

public:
///~
//konstruktory();
void Pokaz();
›;

class Bron : public Cos

public:
///~
//konstruktory();
void Pokaz();
›;


Ten plik includuje do bohater.h, w którym mam definicję klasy bohater. Jednym z elementów jest 20-elementowa tablica wskaźników na obiekty Cos:

#include "przedmiot.h"
class Bohater

public:
///~
Cos * inwentarz[20];
›;

///////////

potem dynamicznie przydzielam pamięć (ale to już w innym miejscu) i przypisuje adresy jakiś obiektów, na przykład:

for(int i=0; i<20; i++) gracz.inwentarz = new Przedmiot;

gracz.inwentarz[0] = &miecz1;
gracz.inwentarz[1] = &zbroja1;

A tak (w uproszczeniu) wyświetlam ekwipunek (jest to funkcja klasy Bohater):

for (int i = 0, j=0; i<20; i++)

cout << "\n";
inwentarz -> Pokaz();
j++;


//////////

Jak już mówiłem, wszystko się kompiluje a na etapie linkowania wywalą błędy. Nie wiem co może być powodem. Błąd nie występował, gdy nie używałem wskaźników.

08.11.2006
21:08
[174]

Karl_o [ APOCALYPSE ]

Mam problem, otoz zaczynam programowac w C++ (jak narazie jestem kompletnym laikiem). Chce napisac program, w ktorym zawarta bedzie funkcja "potega(x,n)". Funkcja ta ma liczyc dowolną n-tą potęgę liczby x. Jak narazie utknalem w ty miejscu, wiem, ze to jest zle ale jeszcze nie wiem co...:

#include <iostream>

using namespace std;

float potega(int x, int n)‹
return for(i=0;i>n;++i) x=x*x;


int main()

int x,n;
double wynik;

cout<<"Podaj liczbe, ktora chcesz podniesc do potegi 'n-tej': ";
cin>>x;
cout>>"Podaj wykladnik potegi: ";
cin>>n;

cout<<potega;





system("PAUSE");



Za pomoc bede ogomnie wdzieczny. Pozdrawiam

09.11.2006
13:28
[175]

Karl_o [ APOCALYPSE ]

^up

09.11.2006
13:56
smile
[176]

Ramz [ Generaďż˝ ]

#include <iostream>

using namespace std;

int potega(int x, int n)‹
int tmp=x;
for(int i=0;i<(n-1);++i) tmp=x*tmp;
return tmp;


int main()

int x,n;
double wynik;

cout<<"Podaj liczbe, ktora chcesz podniesc do potegi 'n-tej': ";
cin>>x;
cout<<"Podaj wykladnik potegi: ";
cin>>n;

cout<<potega(x,n);





system("PAUSE");


troche ci ja poprawilem ;)
wypisze ci troch bledow :) :
- po co zwracać liczbe zmiennoprzecinkowa jesli liczysz protegę dwóch int (liczb całkowitych)
- zle wykonana petla (konkretnie beznajdziejny warynek i>n
- jak mozna zwracac petle ??
- nie wywolales tej funkcji
- w bibliotece math.h jest juz funkcja pow(double x, double n)

09.11.2006
14:14
[177]

Ramz [ Generaďż˝ ]

EDIT

możesz jeszcze usunac zmienna wynik ponieważ nie jest nigdzie używana.
A i jeszcze był błąd tu: cout>>"Podaj wykładnik potegi: "; zle przekierowanie strumienia powinno być : cout<<"Podaj wykladnik potegi: ";

11.11.2006
17:16
smile
[178]

Moshimo [ FullMetal ]

Mam problem Panowie, z ktorym juz borykam sie od dawna :/.
Mianowicie, chodzi o to, zeby program jakoby sam generowal nazwy kolejnych zmiennych. Dokladniej chodzi o dodawanie kolejnych obiektow do tablicy - musialbym pierw miec nazwy obiektow, ale chcialbym wlasnie zrobic to tak, zeby w zaleznosci od tego ile ich bedzie (uzytkownik podaje), program sam by tworzyl nazwy zmiennych, np obiekt1, obiekt2.
Pisze w C++
Probowalem to zrobic za pomoca petli for, ale nie mam pojecia jak zrobic to generowanie nazw..
Chcialem to zrobic dyrektywa #define, ale nie da rady jej wcisnac do maina). I jestem w kropce..

11.11.2006
17:42
[179]

maVes [ Generaďż˝ ]

Moshimo - myślę że preprocesor może tu pomóc. Poczytaj o dektrywie ## - potocznie zwany sklejaczem :)

11.11.2006
17:51
[180]

Regis [ ]

Moshimo --> Nie bardzo rozumiem co chcesz zrobic, a tym bardziej po co Ci to... Chcesz miec w tablicy rozroznialne obiekty o roznych nazwach - operuj na stringach a potem zapisuj obiekty do tablicy pod kolejnymi indeksami... Nie widze po prostu zadnej przyczyny, by generowac zmienne o tych samych nazwach ale z roznymi numerkami na koncach - od tego sa walsnie miedzy innymi tablice.

11.11.2006
17:54
smile
[181]

Moshimo [ FullMetal ]

Regis --> w sumie masz racje, zabieram sie do roboty :). Ale gdybym jednak chcial cos takiego zrobic??
maVes --> dzieki, poszukam informacji na ten temat :)

11.11.2006
18:00
smile
[182]

Regis [ ]

Moshimo --> Niechcialbys. Jesli faktycznie bys chcial i nie widzial innej mozliwosci, to znaczy ze prawdopodobnie jestes slabym programista, bo zaloze sie ze do czegokolwiek by Ci to nie bylo potrzebne, to mozna to zrobic prosciej, za pomoca jakichs kolekcji, tablic, czy czegos takiego, bez generowania w jakis dziwny sposob NAZW zmiennych.

11.11.2006
18:00
[183]

maVes [ Generaďż˝ ]

Moshimo - a masz taki przykład:

#include <iostream>
using namespace std;

main()

#define ST(i) int zmienna_ ## i = i*10;
for (int i=0; i<20; i++)


ST(i);
cout << zmienna_i << "\n";

ST(50);
cout << "-->" << zmienna_50;
cin.get();



Ale zgodzę się z Regisem, ten sposób ma raczej wąskie zastosowanie, może się przydać na przykład do tworzenia plików o określonej nazwie zależnej od wartości różnych zmiennych, ale przecież nie o to Ci chodziło :)

11.11.2006
18:20
smile
[184]

Moshimo [ FullMetal ]

maVes, Regis --> macie racje, przekombinowany sposob :). Ale dobrze wiedziec, ze jednak da sie cos takiego zrobic :). Dzieki za odpowiedzi

11.11.2006
19:20
[185]

slowik [ NightInGale ]

Moshino===>a znasz taki wynalazlek jak listy ? czy tez pierscienie ?

11.11.2006
19:22
[186]

Moshimo [ FullMetal ]

Listy przewinely sie gdzies podczas mojej edukacji, ale ciezko mi bylo je przyzwoic :/. Pierscienie, w ogole.

11.11.2006
19:38
[187]

Katane [ Useful Idiot ]

A co za roznica, czy bedzie zmienna_i, czy zmienna?

12.11.2006
11:04
[188]

hotDog [ Outsider ]

maVes --> Ciężka sprawa. Może spróbuj dodać jeszcze wirtualne destruktory do każdej z tych klasy. Wątpię, żeby to coś zmieniło, no ale zawsze warto spróbować.

Niestety z tego co wkleiłeś nie jestem w stanie Ci pomóc :-/

12.11.2006
13:00
smile
[189]

maVes [ Generaďż˝ ]

hotDog -> chyba właśnie rozwiązałem problem. Brakowało w kilku miejscach pustych klamer ‹› - nie miałem zdefiniowanych funkcji składowych. Program teraz się już kompiluje i uruchamia, a w dodatku działa jak należy :D Później zabieram się za dalsze pisanie :P

12.11.2006
14:22
smile
[190]

hotDog [ Outsider ]

Hehe, w takim razie gratulacje i owocnej pracy :-)

13.11.2006
19:28
smile
[191]

maVes [ Generaďż˝ ]

Ehh mam kolejny problem :/

Daję od razu kod:

//RODZAJ jest enumem

//Cos to klasa wirtualna

class ElementZbroi : public Cos

public:
int obrona;

public:
//definicje tych konstruktorów są w innym plików, ale z nimi jest wszystko w porząsiu
ElementZbroi();
ElementZbroi(string naz, int wag, int cen, int obr);

virtual RODZAJ rodz() const ‹›;
virtual ~ElementZbroi() ‹›
›;

////////////////////////////////////////////////////////////////////////////////

class Zbroja : public ElementZbroi

public:

Zbroja() : ElementZbroi("Zbroja", 1, 1, 1) ‹›
Zbroja (string naz, int wag, int cen, int obr) :
ElementZbroi(naz, wag, cen, obr) ‹›

RODZAJ rodz() const ‹ return ZBROJA; ›
›;

////////////////////////////////////////////////////////////////////////////////

class Helm : public ElementZbroi

public:

Helm() : ElementZbroi("Helm", 1, 1, 1) ‹›
Helm (string naz, int wag, int cen, int obr) :
ElementZbroi(naz, wag, cen, obr) ‹›

RODZAJ rodz() const ‹ return HELM; ›
›;


Skąd taki podział? Jest on mi potrzebny tylko ze względu na tą funkcję rodz() - dzięki niej łatwo (i szybko) mogę sprawdzić do jakiej klasy dany przedmiot należy (np. żeby spodni na głowę nie ubrać :P) Ale nie tu problem. Otóż:

//tu tworzę obiekt i jest wszystko ok, normalnie mogę go używać
Zbroja zbroja1("Pelna zbroja plytowa", 150, 20000, 20);

//natomiast tutaj kompilator wywala błąd, żeby postawić średnik przed nazwą klasy :|
Helm helm1 ("helmik", 5, 5, 5);

//co ciekawe, dopuszcza taką formę:
Helm; //wtf? w przypadku innych klas pisze, że nie można deklarować niczego

W czym może tkwić problem?

[edit] Ale paskudnie wyglądają te klamry ‹ › :/

14.11.2006
14:55
smile
[192]

hotDog [ Outsider ]

maVes --> Nie mam pojęcia co jest nie tak. Musisz poeksperymentować i wyczaić błąd.



Ja mam natomiast inny problem, a raczej pytanie.

Da się jakoś zrobić tak, aby obiekt jakieś klasy był widoczny w dwóch plikach *.cpp? Oba pliki są kompilowane ze sobą podczas kompilacji. Extern działa, ale tylko na typach wbudowanych jak int, bool itd, a na typach zdefiniowanych przez usera czyli na klasach nie ma szans :-/

Wiecie może czego trzeba użyć? Po prostu obiekt stworzony w jednym pliku *.cpp miałby być widoczny w innym pliku *.cpp - oba pliki *.cpp są razem kompilowane. Obiekt jest typu stworzonego przez usera, czyli jakieś klasy.

14.11.2006
16:44
[193]

maVes [ Generaďż˝ ]

hotDog - jak to? Mój kod jest rozbity na kilkanaście plików, a ważniejsze obiekty są widoczne w innych plikach właśnie dzięki extern. Są to jednak obiekty globalne.

14.11.2006
17:46
[194]

hotDog [ Outsider ]

No mój znajomy ma taki problem - w jednym pliku stworzył sobie klasę Gracz (w cpp i h), w jakimś tam miał obiekt klasy Gracz, a w kolejnym pliku chciał się do niego odwołać - gdy użył extern miał coś taki komunikat, że Gracz nie może być typem, czy jakoś tak - nie pamiętam.

I Tobie to chodzi? Jeśli tak to powiem mu, żeby kombinował skoro extern działa na obiekt klas :-) Wczoraj siedziałem u niego kilka godzin i chcieliśmy rozwiązać m.in ten problem i faktycznie nie dało rady, ale może on nie miał tego jako obiektu globalnego.

14.11.2006
20:57
[195]

maVes [ Generaďż˝ ]

hotDog - a dołączyłeś plik nagłówkowy tej klasy? Ja u siebie mam na przykład jeden obiekt klasy Czas o nazwie czas. W innym pliku mam:

#include "czas.h"
extern Czas czas;

I już normalnie odwołuje do tego obiektu:

czas.minuty += 2;

14.11.2006
23:27
smile
[196]

hotDog [ Outsider ]

Tzn. ja tego nie robię :-) Spytam się jutro kumpla jak on to ma zrobione.

Ale skoro Tobie takie coś działa to jemu też musi. Jutro wyczaję sytuację :-)

14.11.2006
23:39
[197]

hotDog [ Outsider ]

sorki za 2 posty pod rząd.

Zapomniałem się spytać o to, gdzie masz stworzony ten obiekt (w pliku czas.cpp?) i gdzie piszesz to extern Czas czas?

W ogóle napisz mi co gdzie masz zadeklarowane i skąd się odwołujesz :-)

15.11.2006
08:37
[198]

maVes [ Generaďż˝ ]

hotDog ->

czas.h, czas.cpp -> sama klasa, bez tworzenia żadnych obiektów

gra.h, gra.cpp -> klasa, a w pliku cpp tworzę jeszcze kilka obiektów, np:

Czas czas;
Miejsce Swiat [72] [20]; //<- cały teren po którym można się poruszać. W rzeczywistości rozmiar tej tablicy jest dwoma stałymi, które są także potrzebne w innym pliku
Bohater gracz;

Oczywiście włączone są odpowiednie pliku nagłówkowe.

Następnie, na przykład w pliku bohater.cpp włączam plik nagłówkowy czas.h i miejsce.h, umieszczam deklaracje obiektów do których chcę mieć dostęp:

extern Czas czas;
extern Miejsce Swiat[][20];

Dzięki temu mogę się odnosić do tych obiektów w danym pliku. W moim przypadku korzystam z tego w funkcji Ruch(), która przemieszcza bohatera po tablicy którą jest Świat, a następnie odczytuje co tam jest :) Innym przykładem jest funkcja Spij() - najpierw pyta o liczbę godzin, a następnie za pomocą pętli for odnawia życie gracza, a dodatkowo instrukcja
czas.godziny += 1;
Powoduje upływ jednej godziny czasu w grze.

16.11.2006
17:07
[199]

loksp [ taka oferta tylko w PLAY ]

niech ktoś pomoże, mam takie zadanie:

napisać program który wczytuje:
Podaj liczbe naturalna (max 56636) (Naturalna): 5
Podaj liczbe nadnaturalnadluga (>65536) (NaturalnieDluga): 70000
Podaj liczbe rzeczywista (Rzeczywista): 5.123
i przypisuje wprowadzone wartosci zmiennym kolejno typu int, long, float

dodac do siebie wartosci zmiennych i przypisac je do 4 zmiennych typu double, float, long, int( np.: int SumaNaturalna=Naturalna+NaturalnaDluga+Rzeczywista)

Wyswietlic wczytane wartosci przemnozone *2(printf) oraz ich sumy, wyjasnic otrzymane rezultaty

2*Naturalna = 10
2*NaturalnaDluga = 140000
2*Rzeczywista = 10.246
SumaNaturalna=...
SumaNaturalnaDluga=...
SumaRzeczywista=...
SumaDouble=...

Okreslic w jaki sposob zaokraglane sa liczby rzeczywiste przy konwersji do liczb calkowitych


16.11.2006
17:30
[200]

Sir Skull [ Charr Shaman ]

loksp --> Ok, treść zadania podałeś. Teraz napisz w którym miejscu problem.

16.11.2006
17:51
[201]

loksp [ taka oferta tylko w PLAY ]

chodzi mi ocaly poprawny kod lacznie z deklaracja zmiennych gdyz to co ja robie nie dziala:/

16.11.2006
17:56
[202]

Sir Skull [ Charr Shaman ]

W takim razie życzę powodzenia w szukaniu człowieka, który zrobi za ciebie pracę domową. Sprecyzuj problem to pomyślimy jak go rozwiązać. W tej chwili widać tylko jeden - lenistwo.

16.11.2006
18:05
smile
[203]

Sir Skull [ Charr Shaman ]

Next:
https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=5655460&N=1

16.11.2006
18:07
[204]

Regis [ ]

loksp -> Wroc jak napiszesz cokolwiek sam i bedizesz mial KONKRETNY problem. Odwalanie zadan domowych za tych ktorym sie nie chce, to nie tutaj.

© 2000-2024 GRY-OnLine S.A.