Zaloguj się, aby obserwować  
Bartuc

Język C / C++ / C# / Java - pytania, problemy...

1979 postów w tym temacie

Dnia 06.03.2013 o 22:45, Dregorio napisał:

Dzięki, ale zrobiłem to już nadpisywaniem i pętlą while(1>0).


Czemu tak skomplikowana pętla? XD
Nie lepiej po prostu while(1)? XD

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 06.03.2013 o 22:49, ziptofaf napisał:

> Dzięki, ale zrobiłem to już nadpisywaniem i pętlą while(1>0).

Czemu tak skomplikowana pętla? XD
Nie lepiej po prostu while(1)? XD

Jakoś tak się nauczyłem.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

/.../
Zapomniałem dodać. Robiłem to na tablicy, bo robię gre ''samochodziki'' takie jak na starych konsolach. Więc chciałem by trasa wyglądała jakby się ruszało, by samochód stał w miejscu ^^

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Robię sobie kurs C i mam mały problem. Jako ćwiczenie muszę wypisać jakikolwiek łańcuch w polu o 3 dłuższym niż jego długość. Jak to zrobić? Zakładam że muszę jakoś użyć strlen, ale nie wiem jak i gdzie to zaimplementować.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 04.04.2013 o 10:48, JayL napisał:

Robię sobie kurs C i mam mały problem. Jako ćwiczenie muszę wypisać jakikolwiek łańcuch
w polu o 3 dłuższym niż jego długość. Jak to zrobić? Zakładam że muszę jakoś użyć strlen,
ale nie wiem jak i gdzie to zaimplementować.

Sposób1 (zaawansowane formatowanie):
char* string = "abcdefg";
printf("%*s\n", strlen(string) + 3, string);

Sposób2 (tradycyjny):
char* string = "abcdefg";
char format[5];
ssprintf(format, "%%%ds\n\0", strlen(string) + 3);
printf(format, string);

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

W szkole mieliśmy na zajęciach kompilator do C od Borlanda. Czy moglibyście polecić jakiś darmowy kompilator lub środowisko programistyczne do programowania w C++?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 04.04.2013 o 20:34, Gromo napisał:

W szkole mieliśmy na zajęciach kompilator do C od Borlanda. Czy moglibyście polecić jakiś
darmowy kompilator lub środowisko programistyczne do programowania w C++?


Na Windowsa? To chyba najpopularniejszy jest Dev C++. Albo Visual.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 04.04.2013 o 21:17, Harrolfo napisał:

Jak kolega wyżej - Dev C++ (według mnie najlepszy) albo Visual Studio.

Teraz tylko pytanie, jak Dev C++ pobrać z oficjalnej strony? Sorry, ale kompletnie się tam gubię. Nie wiem co pobrać.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 04.04.2013 o 21:30, Gromo napisał:

Wszystkie linki jakie podali na stronie nie działają.


Bo Dev jest głupi i nierozwijany. Stare wersje gdzieś może znajdziesz, ale generalnie nie polecam, zwłaszcza że mają zaimplementowane starą wersję kompilatora gcc. Bodaj tutaj http://sourceforge.net/projects/orwelldevcpp/ masz wersję rozwijaną już przez kogoś innego, z uaktualnionym kompilatorem (chociaż u mnie się aplikacja wykrzaczała jeżeli odpalałem jako user).
Możesz jeszcze spróbować Code::Blocks (chociaż nie wiem jak tam wygląda z wersją gcc) i Visual Studio (polecam, zwłaszcza jak dłużej zamierzasz w tym siedzieć, bardzo duża wygoda pracy).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeśli podaję w pętli for dwa warunki jej zakończenia, to który będzie traktowany priorytetowo? Ten, który zakończy pętlę szybciej, czy ten, który zakończy ją później?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 08.04.2013 o 19:02, JayL napisał:

Jeśli podaję w pętli for dwa warunki jej zakończenia, to który będzie traktowany priorytetowo?
Ten, który zakończy pętlę szybciej, czy ten, który zakończy ją później?


Daj przykład. Bo jeśli chodzi ci o coś takiego:

int switch1=0;
int switch2=0;

for (; ;)
{
jakieś instrukcje.
}

To możliwości są takie:
for (; switch1!=1 && switch2!=1;) - oba warunki muszą być spełnione
for (; switch1!=1 or switch2!=1;) - tylko jeden z nich musi być spełniony.
for (; switch1!=1, switch2!=1;) - liczy się bodajże tylko wartość ostatniego argumentu po prawej. Bądź ładniej to ujmując:
(2+1, a*30, 2<9, 15+5)=20

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nawet nie wiedziałem, że można to rozdzielić inaczej niż przecinkiem. ;p Ale w takim razie or pewnie załatwi sprawę. Dzięki.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czy jest ktoś w stanie pomóc mi z takim problemem:

Napisałem prostą grę w c++ za pomocą biblioteki SFML 2, korzystam ze środowiska Visual C++ 2010.
Generalnie pierwszy raz takie coś robię i miałem spory problem żeby zrobić poprawie wersję Release, skorzystałem z jakiś tutoriali ale gra nadal nie chce się uruchomić a wyskakuje mi jakiś dziwny błąd, widać go na screen poniżej:

Przyjmę wszelką pomoc w sprawie tworzenia wersji Release w Visual c++ 2010, jak coś mogę się kontaktować nie tylko przez forum:P

20130408230413

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

W końcu studia mnie zmusiły, więc wziąłem się za tą Javę.
Mam więc pytanie.
Chciałem aby do zmiennej "i" dodana została wcześniej zdefiniowana przez użytkownika "różnica" w funkcji:
for (double i=pierwszy; i<wyraz; i+różnica)
{
wyraz = pierwszy + różnica;
System.out.print(", ");
}


Okazało się jednak, że wywali mi błąd złego użycia operatora "+".
Powie mi ktoś jak dodaje się dwie wartości do siebie?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ja widzę błąd już w forze.
Przypisujesz zmiennej i wartość "pierwszy". Jeśli miałaby być równość, to pisze się ==. = to przypisanie, a == to przyrównanie.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Z jakiegoś powodu wywala komunikat, że zamiast "==" oczekuje wpisania "=". Nie wiem dlaczego.

Poza tym znam już odpowiedź na moje pytanie :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 14.04.2013 o 22:47, Sigu napisał:

Z jakiegoś powodu wywala komunikat, że zamiast "==" oczekuje wpisania "=". Nie wiem dlaczego.

a == b, to wartość typu boolean o wartości true jeżeli ''a'' jest tego samego typu co ''b'' i wartość ''a'' oraz ''b'' jest taka sama; w przeciwnym wypadku wartością jest false.
a = b, to wartość typu takiego jakim typem jest ''a'' po skonwertowaniu i przypisaniu wartości ''b'' do zmiennej ''a''.

Pętla for(a; b; c) { instrukcja; } , to skrót od
a;
while(b)
{
instrukcja;
c;
}
Wyjątki:
1. W Javie (i w C/C++ również) jest możliwość, aby ''a'' oraz ''c'' były złożeniem instrukcji (np. przypisania) rozdzielonych przecinkiem np.
for(int a = 0, b = a+10, c = b+100; a < b && b < c; a += 2, b += 21) instrukcja;

2. Instrukcja dla for (i while też) nie musi być koniecznie instrukcją złożoną { }, ale może też być pojedynczą instrukcją wyrażeniową (w tym przypisanie, inkrementacja i dekrementacja). Mimo poprawności kompilator wygeneruje ostrzeżenie ponieważ taka pojedyncza instrukcja jest trudna do wychwycenia w listingu i nierzadko okazuje się przeoczonym błędem (wtedy dużo zależy od użytego formatowania).

Kompilator może wygenerować ostrzeżenie jeżeli wykryje, że ''c'' nie modyfikuje zmiennej sterującej utworzonej w ''a''. W Twoim wypadku i+różnica, to wyrażenie o wartości sumy 'i' oraz 'różnica', ale wynik nie jest nigdzie przypisany, lecz jest jest gubiony. Prawidłowo powinno być i += różnica lub i = i + różnica. Oba wyrażenia robią to samo, ale pierwsze powoduje mniej błędów bo wartość ''i'' jest użyta tylko raz.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Utwórz konto lub zaloguj się, aby skomentować

Musisz być użytkownikiem, aby dodać komentarz

Utwórz konto

Zarejestruj nowe konto na forum. To jest łatwe!


Zarejestruj nowe konto

Zaloguj się

Masz już konto? Zaloguj się.


Zaloguj się
Zaloguj się, aby obserwować