C++.
Wersja do druku
C++ ma jakieś specjalne predyspozycje do tego? Pytam bardziej w kontekście ewentualnej ingerencji w pamięć.
Mi się wydaje że jeden pies jaki język ;d
Zalezy. Jak bedzie osadzal dllki w pamieci Tibii to C++ ma wieksza kontrole nad tym co sie dzieje w pamieci
Mozesz sobie np. przypisac funkcje z klienta do funkcji w kodzie czyli tak:
typedef void MEM_SAY(char* text);
MEM_SAY *umiemmowic = (MEM_SAY*)0xADRESFUKCJI;
i potem robisz sobie umiemmowic("Martwy ciag niszczy plecy"); i włala ziomek z tibii gada
A jaka oszczednosc kodu
Torgdevsy, halp!
Otóż mam sobie aplikacje: zwykła webowa aplikacja. W aplikacji jest zaimplementowane logowanie przez OpenID od zawnętrznego dostawy. Gdy dostawca openid 'odeśle' nam dane zalogowanego użytkownika mogę ustawić sobie sesje i na tej podstawie później identyfikować użytkownika. Chciałbym teraz odejść od sesji i przejść na stateless api po tokenach i do tego wykorzytać angulara. Czyli zalogowany użytkownik dostaje token który sobie zapisuje i wysyła go w każdym requescie w headerze. O ile sprawa przy zwykłym logowaniu po haśle jest dosyć prosta, to tutaj nie wiem jak to ogarnąć czyli jak przekazać wygenerowany token do użytkownika. Jakieś pomysły?
Na IRCu padł pomysł żeby ustawić ciacho. I to w sumie jest spoko rozwiązanie :)
Pisze ktos w Scali ? Szukam fajnych blogow albo innych tresci ktore wychwytuja jakies ciekawostki jezyka. Bycie codzienna javowa-konserwa juz mnie troche meczy ;<
I jeszcze ten pytong, kutas straszny
Ja pisze :)
Całkiem przyjemny język, ale na początku robiłem wielkie wtf gdy widziałem składnie i cuda które można tam robić. W sumie teraz czasami też tak mam xD Co do blogów to polecam zapisać się do scalatimes.com do newslettera. W tym roku też sporo o scali było na confiturze.
ciacho to malo restowe rozwiazanie - w callbacku openid wygeneruj userowi api token, zapisz go w swojej bazie danych i przy kazdym requescie sprawdzaj, i w sumie juz???
Lista dwukierunkowa cykliczna, klucze się nie powtarzają i są posortowane, a tu nie :/ warunki są dobre debugowałem go kilka razy i nie rozumiem czemu tak się dzieje.
http://pastebin.com/Fy8UZsRR
Liczby zawarte w pliku txt, [ 1009 67802 5 76261 -1 ]. Ja sztucznie ustawiałem 10, żeby posprawdzać funkcjonalność.
hej torgi, mam pytanie związane z przeciążaniem operatorów
mam klasę macierzy, przeciążyłem w niej operator () w taki sposób, by zapis m(1,2) - gdzie m to obiekt klasy Matrix - zwracał element umieszczony w 1 wierszu i 2 kolumnie macierzy. potrzebuję jednak zapewnić funkcjonalność, która pozwoli mi na podmiankę dowolnego elementu macierzy tak, by zapis m(1,2) = 3.4 był równoznaczny z wpisaniem w 1 wiersz i 2 kolumnę wartości 3.4. nie wiem w jaki sposób mogę zrobić to tak, by program odróżniał zapis od odczytu - będę wdzięczny za wszelkie wskazówki.
#edit
@2cztery7 ;
xDD jestem debilem, cpp
#edit2
nie pomyślałem o referencji, działa pięknie. dzięki wielkie :D
siedzę tak już pół godziny
http://1.bp.blogspot.com/-VS97kqRSLb...klana_kula.jpg
ale dalej nie wiem w jakim języku to robisz ;/
jedyne, co mi przychodzi do głowy (dawno w cpp nie pisałem więc może jest lepszy sposób):
@Pietro18 ;Kod:#include <iostream>
class Matrix
{
public:
Matrix()
{
for (int i = 0; i < 9; i++)
{
elements[i / 3][i % 3] = i;
}
}
int elements[3][3];
int* operator()(int i, int j)
{
return &(elements[i][j]);
}
};
int main()
{
Matrix m;
*m(1, 1) = 15;
std::cout << *m(1, 1) << std::endl;
system("PAUSE");
return 0;
}
@edit2
o, w ten sposób masz nawet identycznie jak tego chciałeś:
Kod:#include <iostream>
class Matrix
{
public:
Matrix()
{
for (int i = 0; i < 9; i++)
{
elements[i / 3][i % 3] = i;
}
}
int elements[3][3];
int& operator()(int i, int j)
{
return elements[i][j];
}
};
int main()
{
Matrix m;
m(1, 1) = 15;
std::cout << m(1, 1) << std::endl;
system("PAUSE");
return 0;
}
To była druga funkcja na którą rzuciłem okiem. W pogrubionych 2 linijkach pewnie chcesz zamienić wskaźniki prev i next? Jeżeli tak to teraz je sobie nadpisujesz a druga pogrubiona linijka przypisuje ten sam adres, potrzebna ci jest dodatkowa zmienna na tymczasowy wskaznik.Kod:void del(Lista* head, int key) {
Lista* tmp = head;
do {
if ( tmp->key == key ) {
tmp->prv = tmp->next;
tmp->next = tmp->prv;
free(tmp);
return;
}
if ( tmp->key != key ) {
printf("\nBlad usuwania elementu. Element o kluczu = %d nie istnieje.!\n\n",key);
return;
}
tmp = tmp->next;
}while ( tmp != head );
}
Dodatkowo w pętli do while masz dwa ify tmp->key == key oraz if ( tmp->key != key ) a w każdym z nich masz instrukcję return. Wiec jaki jest cel opakowania tego w funkcję do while skoro nigdy to nie przejdzie dwa razy?
A po polsku?Cytuj:
Lista dwukierunkowa cykliczna, klucze się nie powtarzają i są posortowane, a tu nie :/ warunki są dobre debugowałem go kilka razy i nie rozumiem czemu tak się dzieje.
Dodatkowo gorzej opisac programu niz ty to zrobiles sie chyba nie da. Nawet nie napisałeś co to ma robić po kolei a te komentarze w kodzie to chyba prowokacja xD
I dlaczego stworzyles ta liste jako zmienna globalna a nie zrobiłeś tego w funkcji main, a potem jeszcze z funkcji main przekazujesz ją jako parametr do każdej z funkcji skoro jest ona tam widoczna bez tego?Cytuj:
Kod://struktura
typedef struct Lista {
//klucz
int key;
//pola typu double(brelok)
double d1;
double d2;
double d3;
//wskaźnik na następnika i poprzednika
struct Lista *next, *prv;
}Lista;
//ustawienie heada na null
Lista* head = NULL;
https://i.imgur.com/x2IxRel.png
xD przez chwile głowiłem sie o co chodzi, a potem popatrzyłem na adres
swoja droga, gdzie teraz pracujesz i jako kto?
bo kojarze ze kiedys chyba byłeś typem z pragi xD
@Alex Fortune ;
korzystałeś moze z solra?
wiem ze elastic vs solr jest do troche innych zastosowan, w projekcie mam solra ale cos mnie kusi zeby obcykac elastica w domu, chociaz podstawy jakies, warto?
@Alex Fortune ;
:(
Ogarnia ktos Jave na sredniawym poziomie? Potrzebuje zrobic chat internetowy gdzie 4 ludzi moze sie polaczyc i pisac do siebie wiadomosci, moga tez pisac prywatne wiadomosci, musza sie zalogowac i wtedy moga pisac miedzy soba:
https://i.gyazo.com/fb8e75bb3a63cc55...0182a9aade.png
https://i.gyazo.com/5435ac59ea870214...5ceb61ef48.png
Za pomoc moglbym zaplacic paypalem lub cos przez steam, po prostu potrzebuje to zrobic na poniedzialek a niestety mialem problemy zdrowotne i troche kuleje
@Raijn ;
Może napisz ile dajesz
Opisuje program tak żebym ja się w tym łapał :). Wszystko zrobiłem już dzięki za wskazówki, duży błąd był właśnie przypisaniem headowi NULL-a, bo wtedy on cały czas jest Nullem ? Bo jak przechodziła pętla na dodawaniu elementów to dodawało jakby heada, tzn sprawdzany został tylko jeden warunek. Zadeklarowałem head'a w mainie potem go używałem jako argumentu następnych wywołań funkcji i tu moje pytanie, czemu muszę tak zapisać funkcje. Przecież w C nie ma referencji, a inaczej nie działa kappa.Cytuj:
void initialize(Lista* &head)
Potrzebuje jakiegos dobrego materialu o wskaznikach w cpp
Ucze sie ich juz trzeci rok i dalej nie ogarniam
A jak jest niby? xD
W C nie można przekazać argumentu do funkcji przez referencję, można jedynie przez wartość. Można przekazać sam wskaznik ale to też jest przekazywanie przez wartość. Nie możesz też operatorem & utworzyć aliasów jakiejś zmiennej więc gdzie niby jest referencja w c? Wez mi ją pokaż.
Ty piszesz to w C czy C++? Nie mam pojęcia co taka deklaracja robi w C bo nie napisałem w C ani 1 linii kodu. Ale w C++ powoduje że tworzy się zmienna wskaźnikowa będącą referencją do oryginału wskaźnika do obiektu przekazywanego do funkcji i na 99.9% robi nie to co ty chcesz xDCytuj:
. Przecież w C nie ma referencji, a inaczej nie działa kappa.Cytuj:
oid initialize(Lista* &head)
Powiedz co ma ta funkcja robić to będzie łatwiej powiedzieć co jest nie tak.
może to kwestia nomenklatury, ale w moim rozumieniu słowa "referencja" używa się tylko przy opisie funkcji, która operuje na obiekcie podanym jako argument, a nie kopii tego obiektu. operator & w c/c++ nie zwraca żadnej referencji ani nią nie jest, oznacza on nie mniej, nie więcej, niż adres zmiennej.
No i to jest właśnie referencja do wartości zmiennej a.
Ale masz rację, może to kwestia nomenklatury.
A co do tego tam up, to jak chcesz zmienić wartość jakiejś zmiennej przekazanej jako argument (nie wiem co to jest "Lista*"), a jak rozumiem o to chodzi(?) to napisz tak:
Ofc nie jest to to samo, co "przekazanie przez referencję", bo int *a; to deklaracja wskaźnika, więc tak jak pumpkin napisał, w initialize(&a); de facto przekazujemy wartość (wskaźnika).Kod:void initialize(int *a)
{
*a = 8;
}
int main()
{
int a;
initialize(&a);
return 0;
}
jeśli dobrze rozumiem, to jest to różnica czysto konceptualna i referencje są implementowane przez zwykłe wskaźniki, z tym, że nie można ich zmienić i ot tyle. @szulak ; potwierdź?
A co ma w takim razie operator wyłuskania adresudo referencji? Równie dobrze mogłeś napisać że jak by w C nie było tego operatora to i tak by była referencja bo:Cytuj:
&
^- to może być wartość mówiąca o położeniu czegos w pamięciCytuj:
0xFF;
A że jeden chuj czy to jest liczba w systemie szesnastkowym czy jakimkolwiek innym to również
^- to może być wartość mówiąca o położeniu czegos w pamięciCytuj:
255;
No ale najlepiej typkowi który próbuje przekazać argument do funkcji przez referencję ale wydaje mu się że nie jest to możliwe w C, powiedzieć że jak to, że przecież referencje w C istnieją.
No tak, ale w przypadku tych wartości, to nie wiesz o położeniu czego mówią. To są jakieś z dupy wartości, więc w zasadzie to nie mówią nam nic. A przy &a wiesz, że chodzi o adres pod którym masz wartość zmiennej a.
W każdym razie, napisz jaka jest twoja definicja referencji, bo jeśli posługujemy się inną, to dyskusja o tym, co jest, a co nie jest, nie ma żadnego sensu.
xD Co za bzdury.
Tak samo jak pod adresem jakiegoś miejsca w pamięci będzie jakieś z dupy wartości to tak samo niezainicjalizowana zmienna będzie miała jakieś z dupy wartości które w zasadzie to nie mówią nam nic. Można sobie przypisać pod ten adres co się komu podoba. Co więcej można sobie zarezerwować dużą pulę pamięci i trzymać w niej co tylko chcemy i dostając się do tego bezpośrednio za pomocą adresu. Bez użycia zmiennych sobie zapisujemy i odczytujemy wartości z pamięci! Ale to super i ciekawe co nie tibia? A, nie zapomniałem że dla ciebie ciekawsze są rozważania dotyczące definicji referencji :D
Definicja jest definicją i jest pewnie poprawna. Radzę przeczytać jeszcze raz mój poprzedni post.Cytuj:
W każdym razie, napisz jaka jest twoja definicja referencji, bo jeśli posługujemy się inną, to dyskusja o tym, co jest, a co nie jest, nie ma żadnego sensu.
Przecież to, co piszesz, nie ma związku z tematem. Referencji nie możesz sobie dowolnie zmieniać, za &a nic nie podstawisz. A ty wymyśliłeś jakieś z dupy 0xFF, z którym możesz zrobić cokolwiek i interpretować jakkolwiek.
A rozważania dotyczące definicji referencji są istotne, bo przecież rozmawiamy o tym, czy w C jest referencja, więc jak ty chcesz na to odpowiedzieć z pominięciem jej definicji? Widzę, że dyskusja nie ma sensu.
I nawiasem mówiąc, to nie wiem, czy akurat pod tym adresem możesz sobie ot tak wpisać co ci się podoba.
śmieszny obrazek na rozluźnienie
https://i.imgur.com/0Rjskjg.jpg
Wg mnie w pytke
http://helion.pl/ksiazki/wskazniki-w...ese,wskazc.htm
mogę C/C++, program działa wg mnie idealnie, udało się zaliczyć xD.
Jaka ksiazke do C polecacie? Czy jednak Prata króluje? Najbardziej an ten moment nie ogarniam wskaźników i tablic dynamicznych wielowymiarowych.
poczytaj sobie jak są przechowywanie zmienne (i tablice) w pamięci, co robi funkcja malloc. jak to zrozumiesz to wskaźniki nie będą takie straszne.
Ktoś z was ma doświadczenie lub pojęcie o jakichś dobrych materiałach/książkach związanych z tworzeniem aplikacji mobilnych? Kompletnie nie ogarniam jak ogarnąć temat aplikacji na Androidzie na przykład. Coś tam kiedyś robiłem na Windows Phone ale przydało by się coś co pomoże z Android Studio i samym projektowaniem aplikacji na tą platformę.
Jezu, głupota powinna być karana... Dzięki wielkie za link.
@up
To może sam sobie poszukasz informacji zamiast narzekać?
@down
Myślalem, że do niego, bo dał ci notabene pierwszy link z googli.
Hm? Tamte słowa kierowałem do siebie, narzekam na własną głupotę, że nie sprawdziłem strony Google jako punktu zaczepnego.
@up
Ez, nikomu się krzywda przecież nie stała, a ja mógłbym czasem wysilić jednak swoje szare komórki jak czegoś szukam xD
Ile uczyliscie się samemu zanim znalezliscie pierwszą prace?
Siema, mam taki problem, (język C)
tutaj wszystko fajnie linia się zapisuje do żądanej zmiennej i jest ok, problem jest tu:Kod:while(fgets(tekst,60,plik))
{
switch(nr_linii)
{
case 1: strcpy(temat,tekst) ; break;
case 2: strcpy(nick,tekst) ; break;
case 3: strcpy(tresc,tekst) ; break;
nr_pytania to int. Generalnie chodzi mi o to że chciałbym uzyskać taki efekt iż fgets będzie działał na pliku do momentu jego końca, mam 8 case'ów w momencie dojścia do 8 działa mi if , który inkrementuje mi nr_pytania a nr_linii wraca do np.4 case'a. Tylko nie mogę zrobić tego kopiowania, próbowałem sprintf ale coś mi też nie wychodzi.Kod:case 5: strcpy(odpB[nr_pytania],tekst) ; break;