Przecież to prosta rekurencja :(
Mi sie nie podoba jak ludzie zadaja pytania a wy im gotowe kody dajecie ;/
Moim zdaniem to bardzo głupie rozwiązanie, bo nie nauczą się myśleć tylko będą wklejać kolejne zadania i czekać na kody.
Wersja do druku
Przecież to prosta rekurencja :(
Mi sie nie podoba jak ludzie zadaja pytania a wy im gotowe kody dajecie ;/
Moim zdaniem to bardzo głupie rozwiązanie, bo nie nauczą się myśleć tylko będą wklejać kolejne zadania i czekać na kody.
ja odpowiedziałem ładnie, ale się okazało, że już 50 strona tematu się zaczęła i sa tam gotowce :/
Da się w JS zasymulować gest bardzo szybkiego pociągnięcia palcem (albo szybkiego scrolla) na Chrome fur Android?
Bo ofc nie da sie fullscreena załączyć normalnie, a bardzo potrzebuje tego ficzera
Pozdrawiam
Oczywiscie ze sie da :P
https://github.com/mattbryson/TouchSwipe-Jquery-Plugin
Cytuj:
Ogarniam podstawy typu zmienne, pętle, funkcje, tablice, wskaźniki i podejscie obiektowe, przeciążenia operatorów, funkcji, klasy, dziedziczenie itp. Czy ktoś może wypunktować kolejne w kolejności najważniejsze rzeczy których powinno się uczyć?
Cytuj:
Dodałem sobie ostatnio ten pierwszy link z zadaniami i porobiłem po kilka zadań tydzień temu i dzisiaj też trochę i w sumie większość zrobiona, ale niektóre mimo tego że dobrze zrobione to analiza na stronce podaje że problemy z kompilacją np jak robie dynamiczne tablice wielowymiarowe albo tablice własnych struktur to są problemy.
Chciałbym żeby ktoś coś polecił co teraz robić , chciałbym stopniowo zacząć robić coś trudniejszego ale żeby od razu nie rzucać się na głęboką wodę i nie zniechęcić. W tym drugim linku jest lista projektów ale jakoś mnie ona nie przekonuje. Chce zrobić coś ciekawego i żeby skupiać się na jakichś istotnych rzeczach i uczyć się nowych a nie tracić kupę czasu na tworzenie tekstowych menu, pól klas i metod do programów typu "automat biletowy" jako aplikacja konsolowa.
od tego czasu przejrzałem jeszcze z dwa kody gierek zrobionych przez innych ludzi i porobiłem trochę zmian, dodałem pare nowych funkcji ale w ogóle jakoś mnie to nie jara i raczej musiałem się zmuszać żeby to robić niż z przyjemności.Cytuj:
oczywiście wszystko w 100% obiektowoCytuj:Cytuj:
eee to znowu ja, ostatnio zrobiłem w SFML 2.1 arkanoida, pong i snejka
tylko ze mną jest taki problem że nie bardzo lubię czytać gotowe kody innych ludzi i pisząc nawet proste gierki próbuje to robić po swojemu co zwykle się kończy tragicznie bo źle sobie zaplanuje schemat programu a potem się męcze próbując poprawiać i dużo czasu mi na to schodzi na grzebaniu co jest źle w moim kodzie i nie uczę się zbytnio nowych rzeczy ;/
Chciałbym się dowiedzieć jak wykorzystywać c++ tak żeby pracować z innymi aplikacjami. Pamiętam jak kiedyś pisałem w jakimś autoit rozbudowane skrypty do tibi i widząc efekty szybko się uczyłem nowych funkcji języka tego programu. Tylko że tam danymi wejściowymi dla skryptów były współrzędne myszki na ekranie, wciśnięte klawisze i kolory odczytywane z odpowiednich współrzędnych. Teraz chciałbym analogicznie używać c++ (może tylko że już nie do tibi xd) ale zamiast korzystać tylko z paru prostych funkcji które oferował autoit chciałbym mieć samemu możliwość tworzenia takich funkcji lub wykorzystywania już istniejących biblotek i ich modyfikowaniu lub 'odczytu danych z pamięci innych programów'. Na początku bym próbował robić coś w stylu bota do gadu gadu i np za pomocą odpowiednich wiadomości na gg z innego urządzenia mógł bym sterować zdalnie komputerem, zapisywać coś do plików lub go wyłączać.
Tylko czy takie coś ma sens, czy może będzie bardzo czasochłonne i za trudne dla początkującego?
Juz nic, mniejsza
Pumpkin: do bota gg możesz użyć gotowej libki do obsługi proto (bo implementacja proto to sporo roboty), ale wtedy to ograniczy się do prostego drzewka else if, imo słaby pomysł
Prawda jest taka, że pisanie programu w praktyce, to jest w iluś tam procentach, ja bym nawet określił że nawet w 30% przepisywanie przykładów z dokumentacji, gdzie podmienia się przykładowe wartości, na te których ty używasz. Jak jakiejś wartości nie znasz, to przed tym robisz nową zmienną, i szukasz jak tą wartość uzyskać.
Wczytujesz biblioteke, otwierasz dokumentacje biblioteki, szukasz potrzebnej ci funkcji i jej uzywasz :D
Programista to nie magik że wie wszystko, po prostu potrafi wyszukać to czego mu brakuje. Chcesz np. zrobić menu w tray? Google -> c++ windows tray menu. I otwierasz jakiś link ze stackoverflow i czytasz, tam masz link do głębszej dokumentacji, którą też analizujesz.
To jak robienie budowli z klocków, tylko że te klocki są bardzo różne, i nie kompatybilne ze sobą nawzajem :D Zadaniem programisty jest zrobić dla nich łącznik. O kurwa ale poleciałem
:D
Kawał o programistach SAP:
Cytuj:
Przychodzi facet do sklepu zoologicznego i przygląda się zwierzakom na wystawie. W międzyczasie wchodzi inny klient i kupuje małpę z klatki obok.
Facet słyszy cenę: 5 000 USD.
- Czemu ta małpa taka droga?
- Ona programuje biegle w C… wie pan… szybki, czysty kod, nie robi błędów… warta jest tej ceny.
Obok stała druga klatka, a tam cena: 10 000 USD
- A ta małpa czemu taka droga?
- Bo ta małpa programuje obiektowo w C++, może też pisać w Visual C++, trochę w Javie… wie pan… tego typu. Bardzo przystępna cena.
- A ta małpa? – pyta facet wskazując na klatkę z ceną 50 000 USD
- Taaaa? Nigdy nie widziałem, by coś robiła, ale mówi, że jest konsultantem
Kumpel z roboty robi na własną rękę też zlecenia, poza naszą firmą. I zainwestował w best reklamę EVER :D Śmiechłem w chuj xd
https://cdn.fbsbx.com/hphotos-xap1/v...bc&oe=549A7CE6
Załącznik 325821
#takapraca
Siema, jaką książkę polecilibyście do poczytania w święta o C++? Ogólnie studiuje 3ci rok informatykę na wydziale elektroniki niestety. Głównie zajmujemy się tutaj pisaniem różnych algorytmów, a jedyne zajęcia gdzie były jakieś aplikacje okienkowe mieliśmy w 2gim semestrze. Oczywiście trafiłem na prowadzącego któremu na zaliczenie programowania obiektowego wystarczyło napisać klasę z konstruktorem, destruktorem i metodą zwracającą jakąś wartość. Tak więc z chęcią zabrałbym się za jakąś lekturę, która ma w miarę ludzkie podejście do programowania, ale też nie uczy jak zrobić program typu "Hello world".
down#
zapytałem o książkę nie bez powodu akurat ;) myślałem o pisaniu takiej gry, jednak po prostu w trakcie semestru od rana do nocy siedzę przed komputerem; cały czas na uczelni, w domu przygotowanie się do zajęć, pisanie projektów. Do tego i tak przez święta będę miał dużo zabawy z javą i projektami w C++ więc i tak będę sporo pisał. Z chęcią przez święta po prostu bym siadł do papierowej wersji Gry o Tron czy czegoś podobnego, jednak nie bardzo mogę sobie na to pozwolić (zbyt dużo rzeczy odkładałem na ostatnią chwilę... ;D ). Dlatego też myślałem, żeby choć trochę się oderwać od kompa i poczytać coś z papieru. Wiem, że samo czytanie o C++ niczego mnie nie nauczy, ale lepsza godzina przy książce i godzina przy Visual'u niż cały czas klepać kod ;)
@up
Napisz sobie sam w pełni obiektowo jakąś grę - scrabble albo statki lub warcaby
Na takich rzeczach sie wiecej nauczysz niż po przeczytaniu jakiejkolwiek książki
http://www.bottega.com.pl/pdf/materialy/sdj-ddd.pdf
nie czytałem ale wydaje się fajne,
jakbym teraz zaczął czytać to by mi eksplodował mózg
Czy jedyny sposób w C, żeby stworzyć dwuwymiarową tablicę dynamiczną to deklaracja z pętlą(tablica wskaźników i wskaźniki na tablice)?
Ja się nie znam na C, ale @szulak ; pewnie chętnie odpowie :D
OFFTOP:
xDCytuj:
Jakiś śmieszek napisał
http://www.amazon.com/Domain-Driven-.../dp/0321125215
http://www.amazon.com/Implementing-D.../dp/0321834577
Dwie fenomenalne książki na ten temat. Evans to po prostu podstawa - to ten koleś "wymyślił" DDD ;). DDD to oprócz tzw. wzorców strategicznych (których Alex Fortune z pewnością używa w swojej grze) cała filozofia wytwarzania oprogramowania - m.in. bardzo ważna koncepcja domeny, języka i w jaki sposób język eksperta powinien kształtować kod.
Powiedziałbym nawet, że najprawdopodobniej to o czym Alex mówi to jakiś wzorzec architekturalny utożsamiany często z DDD - np. Hexagonal, Layered Architecture, Clean Architecture, CQRS, DCI... trochę tego jest. Do wszystkiego są świetne książki - ale zabawę z architekturami polecam po napisaniu co najmniej kilku dużych aplikacji - w przeciwnym wypadku może się okazać, że po prostu będą nudne. Jak koleś może Cię przekonać, że "tak jest lepiej jak projekt się dalej rozwija" jeżeli nie siedziałeś kiedyś w bagnie złej architektury w czymś większym?
W C tablice mają zagwarantowany zwarty blok pamięci - podobnie malloc. Tablicę dwuwymiarową od biedy możesz wytworzyć mallocując pierwszy_wymiar * drugi_wymiar * sizeof(<typ>).Cytuj:
Czy jedyny sposób w C, żeby stworzyć dwuwymiarową tablicę dynamiczną to deklaracja z pętlą(tablica wskaźników i wskaźniki na tablice)?
Pozdrawiam
Killavus
+1 za literaturę. Absolutny kanon jeśli chodzi o DDD.
Kolejny +1 za info o ogólnopojętej filozofii wytwarzania oprogramowania - ubiquitous language i jego odzwierciedlenie w kodzie naprawdę robią robotę, gdy domena robi się naprawdę trudna.
@Killavus ; o jaką grę Ci chodzi? Ja nie piszę gry atm ;) ale dałem taki przykład, bo można łatwo wymodelować domenę dla takich gier jak np, nie wiem, warcaby, kółko i krzyżyk :D w paczce beberlei/LiteCQRS na packagist jest bardzo fajna implementacja DDD + CQRS właśnie dla TicTacToe w exampleach, polecam.
Generalnie pozostaje mi tylko upvotnąć to co napisał kolega Killavus.
W PHP ogólnie jest mała garstka ludzi, którzy w ogóle przejmują się tym, że architektura i metodologia tworzenia aplikacji istnieje (pomijając tą, którą ewentualnie narzuca im framework)... zawodowo wywodzę się z PHP i nie chciałbym już tam nigdy wracać :).
Polecam eksperyment z CQRS i Event Sourcing jako 'nośnik' DDD - niesamowicie zmienia myślenie o pisaniu softu. Bardzo mocne dragi ;). Tutaj przyjacielem w zgłębieniu tematu może się okazać Greg Young i Udi Dahan (prowadzą mega dobre blogi oscylujące wokół tej tematyki).
Pozdrawiam
Killavus
Hm, ale wtedy nie będę za bardzo wiedział jak się po niej poruszać, bo służy w moim przypadku do przechowywania info o obrazie, który sobie przerabiam. W zwykłej dwuwymiarówce to mam podwójne for zagnieżdżone jedno w drugim dla każdego wymiaru jeden for. No nic, pomyślę po świętach, dzięki za odpowiedź.
Od biedy możesz:
malloc oprócz czystej pamięci alokuje kilka bajtów przed samą tablicą - gdzie jest m.in. rozmiar. Stąd też możesz spokojnie zrobić:Kod:int *picture = (int*) malloc(resX * resY * 3 * sizeof(int));
na takim wskaźniku. A przynajmniej na pewno byłem w stanie tak kiedyś robić w C99.Kod:picture[x][y][1]
Pozdrawiam
Killavus
Kurde, bzdurę powiedziałem, przepraszam Cię bardzo :(. Nie wiem co tutaj ogarnąłem. Wiem, że coś takiego jest możliwe - zawsze możesz się odwoływać za pomocą (branie tab[i][j] tab[w][y]) *(tab + i * w + j) - podstawowa matma, a załatwia sprawę :).
Tutaj chłopaki sporo wiedzą:
http://stackoverflow.com/questions/9...al-arrays-in-c
Pozdrawiam
Killavus
O, ślicznie dziękuję za link. Jest tam bardzo fajny sposób z tempem, który myślę, że może zadziałać. Za pomoc też dziękuję ;)
@edit
W sumie jak masz czas to jeszcze bym Cię wykorzystał. Na wykładzie mój facet od programowania wymyślił coś takiego i jak dla mnie nie ma to większego sensu, bo albo jest niezgodność typów, a jak zmienię typ na int **piksele to znowu odwołanie piksele[i][j] nie działa.
Załącznik 325883
Killavus widzę z retirementa wróciłeś.
Pozwól, że przywitam się słowami, "Yaboomaster to pi*da masońska". Używałem zdaje się twoich toolsów do otsów dawno, dawno temu.
btw, panowie jest jakiś patent aby nadpisać wartość na stosie w jakiś mało inwazyjny sposób?
@EDIT
To akurat tyci problemCytuj:
i jak dla mnie nie ma to większego sensu, bo albo jest niezgodność typów, a jak zmienię typ na int **piksele to znowu odwołanie piksele[i][j] nie działa.
@Yaboomaster ;
Norbert, wyzywajo Cie xD
A o co poszło? ;]
@LordCompi ; którą konkretniej? MOV DWORD PTR DS:[ESP],int32 nie może być? :D
paru bajtów nie masz?
a personalne pojazdy bez powodów na publicznym forum to sobie daruj bo zalatuje gimbazą ;p wołam @zakius ; niech ogarnie
No nie mam, w tym sęk. Bede musiał jakiegos externala napisać.
Co do tematu, Yaboomaster to pi*da masońska, kazdy o tym wie. Spytaj bikstope, xyllo albo czepka.
Yaboo traktowal ludzi jak gowno, wiem bo sam mnie uczyl. Jakos na przestrzeni lat bardziej go nie lubilem.
Tak sobie poprostu zaczalem temat o nim, bo patrze Killavus, gość z epoki gdy trolle wygladaly jak gowno, zaczne malym zarcikiem.
Mode nie bij, plis
To lekka modyfikacja mojego pomysłu. Nie obliczasz pozycji ręcznie, tj. dodając do adresu początkowego tablicy odpowiednią wartość, tylko pozwalasz C zrobić to za Ciebie.
to wartość wskazująca na pozycję (adres), lecz nie zawierająca żadnej informacji o typie. Aby wziąć z tablicy pod wskaźnikiem np. 4-tą liczbę (bo tylko TY wiesz w przypadkuKod:void*
, że trzymasz tam liczby), trzebaby do adresu początkowego dodaćKod:void*
.Kod:(4 - 1) * sizeof(int)
Prosimy więc system operacyjny o danie nam kawałka pamięci za pomocą funkcji malloc. Funkcja ta po uzyskaniu tej pamięci od systemu operacyjnego zwraca adres do początku tej pamięci. Więc tutaj:Kod:tab = 0x...00 (adres w pamięci)
(popatrzmy na kolejne bajty od tego adresu)
0 1 2 3 4 5 6 7
x x x x y y y y
x x x x to bajty pierwszej liczby w tablicy
y y y y to bajty drugiej liczby w tablicy
i tak dalej
W polu piksele masz adres do początku tej pamięci. Wiesz, że to spójny kawałek mającyKod:obraz->piksele = malloc(obraz->wym_x * obraz->wym_y * sizeof(int));
bajtów.Kod:obraz->wym_x * obraz->wym_y * sizeof(int)
Dodaniesprawia, że masz informację o tym, co przechowujesz w tym zwartym kawałku pamięci - są to inty. Stąd też C będzie potrafiło się przesuwać po 'pełnej długości typu' zamiast pojedynczych bajtów jak to w przypadkuKod:int*
.Kod:void*
Definiujemy tutajKod:int (*piksele)[obraz->wym_x];
wskaźników do miejsc w naszej tablicy - dokładnie tyle ile mamy 'wierszy' w tablicy dwuwymiarowej. To co jest interesujące to to przypisanie:Kod:obraz->wym_x
[code]
piksele = (int(*)([obraz->wym_x])) które inicjalizuje wszystkie wskaźniki na raz wartościami przesuniętymi o kolejne wielokrotności obraz->wym_x... zakładam, że tak skonstruowana jest semantyka C w tym wypadku.
Mam nadzieję, że nie zasłoniłem Ci obrazu, tylko raczej rozjaśniłem ;).
@up:
Szybko przestaję nienawidzić ludzi - zazwyczaj zapominam. W dodatku jestem na to zbyt leniwy - dużo energii idzie na denerwowanie się ;).
Pozdrawiam
Killavus
@up
<3<3<3
Wielkie dzięki, teraz w końcu ogarnąłem co on miał na myśli. No i tym sposobem zyskałem świadomość tego co ja w ogóle dokładnie robię, a bez tego w C ani rusz. Świetne wytłumaczenie ;)
Patrzcie na to, przez Norberta bęcki dostaje chociaż tamten dawno w grobie xD
No cóż panowie, wesołych świąt, oby przyszły rok był obfitszy w działające kody.
Nawzajem
// panie, luźna rozmowa nie znaczy, że można sobie na takie rzeczy pozwalać
o jak śmiechłem xD
https://i.imgur.com/KMM8q.jpg
dana jest tablica slownik zawierajaca pewien zbior wyrazow oraz lancuch tekst zawierajacy zdania z tymi wyrazami
napisac funkcje ktora wylicza w ilu zdaniach tekstu wystepuje kazdy z wyrazow z osobna
do napisania w ansi c; w jaki sposób można najłatwiej porównywać wyrazy ze słownika z tymi umieszczonymi w zdaniu? nie mogę wykorzystywać żadnych funkcji z biblioteki <string.h>
napisz sobie najpierw funkcje ktora zlicza ilosc tych wyrazow w lancuchu znakow (pobiera 1 wyraz a lancuch mozesz dac jako zmienna globalna i zwraca int)
potem wsadz to do fora po tej tablicy wyrazow
jak bedziesz mial dalej problem to pisz, gotowego kodu nie dostaniesz.