matematykaszkolna.pl
C++ Ambitny: C++ Jak działa tak zadeklarowana zmienna w c++? to jest coś w rodzaju tablicy dwuwymiarowej z intami? jak z tego odczytać wartość? std::vector<std::vector<int>> wartosci;
19 lis 14:20
kat: Zadeklarowanej zmiennej możesz używać w całym programie, nie możesz zmieniać jej wartości. Przypisujesz jej wartość na początku programu i tyle.
19 lis 18:04
Ambitny: std::vector<std::vector<int>> v1(10,10) ; może mi ktoś powiedzieć dlaczego to nie działa? chce stworzyć tablice dwuwym. 10 na 10
19 lis 18:10
Ambitny: kat − nie rozumiem co napisałeś, ale pęwnie ma to głębsze dno można uzyskac dostep do elementu za pomoca operatora [] i zmienic wartosc, to nie stala
19 lis 18:11
Ambitny: #include <iostream> #include <string> #include <vector> int main() { std::vector<std::vector<int>> v1(10,10) ; v1[0][0] = 11; cout << v1[0][0]; } same błędy wyskakują
19 lis 18:13
Ambitny: ||=== Build: Release in wqeqwe (compiler: GNU GCC Compiler) ===| \Desktop\Nowy folder (3)\wqeqwe\wwda.cpp||In function 'int main()' Desktop\Nowy folder (3)\wqeqwe\wwda.cpp|9|error: no matching function for call to 'std::vector<std::vector<int> >::vector(int, int)'| Desktop\Nowy folder (3)\wqeqwe\wwda.cpp|9|note: candidates are C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|401|note: template<class InputIterator, class> std::vector<Tp, Alloc>::vector(InputIterator, InputIterator, const allocatortype&)| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|401|note: template argument deduction/substitution failed C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|373|note: std::vector<Tp, Alloc>::vector(std::initializerlist<Tp>, const allocatortype&) [with Tp = std::vector<int>; Alloc = std::allocator<std::vector<int> >; std::vector<Tp, Alloc>::allocatortype = std::allocator<std::vector<int> >]| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|373|note: no known conversion for argument 1 from 'int' to 'std::initializerlist<std::vector<int> >'| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|348|note: std::vector<Tp, Alloc>::vector(std::vector<Tp, Alloc>&&, const allocatortype&) [with Tp = std::vector<int>; Alloc = std::allocator<std::vector<int> >; std::vector<Tp, Alloc>::allocatortype = std::allocator<std::vector<int> >]| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|348|note: no known conversion for argument 1 from 'int' to 'std::vector<std::vector<int> >&&'| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|339|note: std::vector<Tp, Alloc>::vector(const std::vector<Tp, Alloc>&, const allocatortype&) [with Tp = std::vector<int>; Alloc = std::allocator<std::vector<int> >; std::vector<Tp, Alloc>::allocatortype = std::allocator<std::vector<int> >]| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|339|note: no known conversion for argument 1 from 'int' to 'const std::vector<std::vector<int> >&'| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|335|note: std::vector<Tp, Alloc>::vector(std::vector<Tp, Alloc>&&) [with Tp = std::vector<int>; Alloc = std::allocator<std::vector<int> >]| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|335|note: candidate expects 1 argument, 2 provided| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|318|note: std::vector<Tp, Alloc>::vector(const std::vector<Tp, Alloc>&) [with Tp = std::vector<int>; Alloc = std::allocator<std::vector<int> >]| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|318|note: candidate expects 1 argument, 2 provided| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|289|note: std::vector<Tp, Alloc>::vector(std::vector<Tp, Alloc>::sizetype, const valuetype&, const allocatortype&) [with Tp = std::vector<int>; Alloc = std::allocator<std::vector<int> >; std::vector<Tp, Alloc>::sizetype = unsigned int; std::vector<Tp, Alloc>::valuetype = std::vector<int>; std::vector<Tp, Alloc>::allocatortype = std::allocator<std::vector<int> >]| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|289|note: no known conversion for argument 2 from 'int' to 'const valuetype& {aka const std::vector<int>&}'| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|277|note: std::vector<Tp, Alloc>::vector(std::vector<Tp, Alloc>::sizetype, const allocatortype&) [with Tp = std::vector<int>; Alloc = std::allocator<std::vector<int> >; std::vector<Tp, Alloc>::sizetype = unsigned int; std::vector<Tp, Alloc>::allocatortype = std::allocator<std::vector<int> >]| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|277|note: no known conversion for argument 2 from 'int' to 'const allocatortype& {aka const std::allocator<std::vector<int> >&}'| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|264|note: std::vector<Tp, Alloc>::vector(const allocatortype&) [with Tp = std::vector<int>; Alloc = std::allocator<std::vector<int> >; std::vector<Tp, Alloc>::allocatortype = std::allocator<std::vector<int> >]| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|264|note: candidate expects 1 argument, 2 provided| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|253|note: std::vector<Tp, Alloc>::vector() [with Tp = std::vector<int>; Alloc = std::allocator<std::vector<int> >]| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\stlvector.h|253|note: candidate expects 0 arguments, 2 provided| ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
19 lis 18:14
Metis: Pozbądź się tego * CodeBlocks'a i nie oglądaj Zelenta jeśli myślisz poważnie o swojej karierze programisty.
19 lis 18:16
Ambitny: Metis, projektuje procesy biznesowe i zajmuje się PL/SQLem (oracle database) +analizą danych Niestety zmieniły się warunki zaliczenia na PiO. Niby ugadałem z prowadzącym że projekt ma być w Javie. Na koniec wywinął mi numer, że musi być to jednak C++, więc muszę chcąc czy nie przejść szybki kurs programowania w tym języku XD. A co do codeblocksa − jak najbardziej wystarczy do jednorazowego projektu
19 lis 18:19
Ambitny: std::vector<std::vector<int>> v1; << to już działa, ale jak mam podać rozmiar tablicy
19 lis 18:23
Metis: emotka Pomógłbym ale jestem programistą Python'a / System Adminem emotka
19 lis 18:34
Ambitny: spoko, rozumiem
19 lis 18:35
Mariusz: Tak tylko czytaj jego bzdury typu zacznij od zera nawet jeśli u ciebie brakuje jednej linijki kodu Czy wpis z 18:34 to zwykłe przechwałki ? Mnie takie bzdury pisał i widzę że u ciebie też nic sensownego nie napisał Co do Pythona to mogłyby ci przeszkadzać takie rzeczy jak Jest to język interpretowany Ma dziwne instrukcje iteracyjne np nie ma pętli repeat until która czasem może się przydać pętla for działa raczej jako for each Tylko pętla while działa w miarę normalnie (tak jak w innych językach) blok=wcięcie to może być uciążliwe bo co jeśli nie trafisz z wcięciem Co do Code::Blocksa to zgadza się jest błędnie napisany Może zamiast tego zainstalować gcc , pisać w notatniku a kompilować i konsolidować z linii poleceń Widziałem że Dziadek był dostępny na forum i nic ci nie odpisał
19 lis 19:47
Pytający: int rows = 10, columns = 10; std::vector<std::vector<int>> v1(rows,std::vector<int>(columns)) ; I możesz używać v1[x][y] dla 0≤x≤rows, 0≤y≤columns.
19 lis 20:07
Mariusz: Jak uruchomiłem w Dev Cpp twój programik to działał Chciał tylko spacji przy delearacji tego zagnieżdżonego wektora Ty masz std::vector<std::vector<int>> v1(10,10) ; Po wpisaniu spacji std::vector<std::vector<int> > v1(10,10) ; i dopisaniu przestrzeni nazw do console outa skompilował i uruchomił mi twój program Skoro to jest wektor to powinien dynamicznie alokować pamięć i kopiować dane
19 lis 20:12
Ambitny: W code block nie chciała mi się uruchomić powyższa linijka, nawet po dodaniu spacji i przestrzeni nazw. Zmienie środowisko na DevCpp, skoro u ciebie Mariusz działa , to dobrze.
20 lis 01:34
jc: Możesz usunąć 4 linie i dopisać, gdzie potrzeba std:: #include <iostream> #include <string> #include <vector> using namespace std; int main(){ vector <vector <int> > v; vector <int > w; w.pushback(11); v.pushback(w); cout << v[0][0] << endl; }
20 lis 08:48
sata: Ależ Mariusz jak można tobie pomóc naczelnemu "kopiaczowi" kodu, to sie mija z celememotka
20 lis 11:22
Mariusz: O spamer napisał przydałoby się jakoś go zablokować żeby nie zaśmiecał wątków Ambitny JC i Dziadek Mróz potrafią pomóc Kiedyś dałem takie zadanie : Mamy dane dwa pliki, plik A oraz pik B i chcemy wypisać linie które występują w pliku A ale nie występują w pliku B Ja zastosowałbym algorytm naiwny czyli sprawdzanie dla każdej linii pliku A czy nie występuje ona w pliku B i nawet w językach które posiadają gotowe struktury danych to nawet działało Gdy chciałem to zapisać w C to dostawałem błąd Segmentation Fault wtedy Dziadek pomógł mi ten błąd usunąć Później jc sprowadził to zadanie do sortowania co pozwoliłoby przyspieszyć algorytm bo ten naiwny którego chciałem użyć był nieco wolniejszy Trochę dziwne czemu Dziadek ci nie odpowiedział skoro był dostępny na forum po tym jak zadałeś to pytanie
20 lis 12:02
Mariusz: Kolejny przykład Jakiś czas temu Benny dał kod sortowania stogowego JC podesłał mu wtedy działający kod i Benny mógł sobie porównać kody Ja wtedy też wykryłem błąd a po wczytaniu się w kod nawet wiedziałem kiedy on wystąpi Programik wyglądał tak void Przesiewanie(int l, int p, int A[100]) { int x,i,j; x=A[l]; i=l; j=(2*i)+1; while(j<=p) { if(j<p && A[j]<A[j+1]) j++; if(x<A[j]) { A[i]=A[j]; i=j; j=(2*i)+1; } } A[i]=x; } void BudujStog(int n, int A[100]) { for(int i=(n−2)/2;i>=0;i−−) Przesiewanie(i,n−1,A); } void SortowanieStogowe(int n, int A[100]) { BudujStog(n,A); int x; for(int i=n−1;i>=1;i−−) { x=A[0]; A[0]=A[i]; A[i]=x; Przesiewanie(0,i−1,A); } } " i nie oglądaj Zelenta " to niech nakręci kurs o Pythonie wtedy będzemy wiedzieli jak według niego powinny wyglądać kursy
20 lis 12:38
Dziadek Mróz: >> oraz << są operatorami strumieniowymi, dlatego należy użyć spacji między strzałkami aby kompilator uznał je za szablon klasy emotka
20 lis 12:41
jc: Dziadku Mrozie, jak sobie z tym poradzić ? vector <vector <int> > v; // o.k. vector <vector <int> > v(10,10); // błąd Jak zapisać, że wstępnie chcemy mieć wektor 10x10?
20 lis 12:59
Dziadek Mróz: Drugi vector zawiera vector a nie int vector <vector <int> > v(10, vector<int>(4));
20 lis 17:28
Dziadek Mróz: Sorry, zamiast 4 jest 10
20 lis 17:29
jc: Dziękuję emotka
20 lis 20:35
Ambitny: to ja dziękuję
21 lis 02:05
Ambitny: Mariusz, pisałeś kiedyś algorytm MCTS?
21 lis 02:05
Mariusz: Nie pisałem , piszesz pewnie jakąś grę ? Wrócę jeszcze do wpisu "i nie oglądaj Zelenta" Problem w tym że on jako jedyny podjął próbę nakręcenia kursu o C++ Co prawda brakuje u niego kilku tematów ale i tak po polsku nikt nie nakręcił nic lepszego Gdy jednemu napisałem że u jego "źródeł programowania" brakuje takich podstawowych tematów jak 1. Ogólna struktura programu , pojęcia takie jak instrukcja czy blok instrukcji 2. Typy zmiennych i zmienne 3. Pisanie po ekranie, czytanie zmiennych z klawiatury 4. Instrukcje warunkowe 5. Instrukcje iteracyjne 6. Własne funkcje czy procedury (tutaj warto też omówić temat zasięgu zmiennych) 7. Rekurencja 8. Wskaźniki lub referencja 9. Statyczna i dynamiczna alokacja pamięci 10. Rekordy (struct w C) 11. Operacje na łańcuchach 12. Czytanie i pisanie do pliku 13. Podstawy programowania grafiki 14. Własne moduły (w C mamy możliwość jedynie podziału kodu na pliki nagłówkowe i źródłowe) oraz jeśli pogramujemy dla Windows biblioteki łączone dynamicznie 15. Wstęp do programowania obiektowego (ten punkt można by rozbić na podpunkty) Już Niklaus Wirth zauważył że bez algorytmów i struktur danych wiele programów nie napiszesz Mamy tutaj takie tematy jak Złożoność obliczeniowa algorytmów np notacja O , Ω, Θ Sortowanie wewnętrzne i zewnętrzne (Wewnętrzne gdy dane zmieszczą się w pamięci RAM, sortujemy głównie tablice czasami listy Zewnętrzne gdy dane nie zmieszczą się w pamięci RAM i musimy korzystać z pamięci masowej np z dysków magnetycznych, sortujemy głównie pliki) Wyszukiwanie liniowe i binarne (Binarne szybsze ale zakłada że ciąg jest posortowany i nie nadaje się do przeszukiwania list) Algorytmy z nawrotami (Znajdowanie rozwiązania problemu metodą prób i błędów) Podstawowe struktury danych jak stos, kolejka, listy Algorytmy geometrii obliczeniowej jak np otoczka wypukła Algorytmy na łańcuchach jak np wyszukiwanie wzorca Algorytmy kryptograficzne takie jak np szyfr RSA Nieco bardziej zaawansowane struktury danych jak drzewa czy grafy Algorytmy grafowe Szukanie cykli , najkrótszych dróg, kolorowanie grafu Problem komiwojażera Algorytmy inne np problem plecakowy Jeżeli algorytmów i struktur danych uczymy (się) równolegle do wstępu do programowania to przydatne mogą być schematy blokowe oraz pseudokod Gdy stwierdziłem że u jego "źródeł programowania" brakuje tych tematów to nazwał mnie "hejterem" Twierdził że kręci filmiki dla swoich uczniów problem jednak w tym że u tych jego "źródeł programowania" nie było podstaw Wpisy tego sata to spam ciekawe czy jakiś program w życiu napisał, nawet taki łatwy jak narysowanie krzywej
 5 
x2+(

y−|x|)2=1
 4 
czy chociażby ten mój przykład z plikami
21 lis 08:31
sata: Mariusz nic nie napisał( prócz tego bełkotu wyżej) on całe życie kopiuje cudze programy i spamuje na forum co widać
21 lis 08:48
Mariusz: Powtarzasz się dzieciaku To może ty zapiszesz mu ten algorytm MCTS w C++ ? Jak dotąd twoje wpisy to spam dzieciaku Wystarczy kliknąć w nick tego sata aby sprawdzić kto spamuje Jakub powinien go zablokować aby nie zaśmiecał tematów Ten spis tematów to tematy wymaganie na zaliczenie wstępu do programowania oraz algorytmów i struktur danych Ja od siebie dodałbym sposoby zapisywania algorytmów rekurencyjnych w sposób iteracyjny Jeżeli chodzi o kursy które wymagają odbioru bodźców zarówno wzrokowych jak i słuchowych to po polsku nie znajdziemy nic lepszego niż ten kurs Zelenta Gdybyśmy ograniczyli się do materiałów które wymagają odbioru bodźców wzrokowych to znaleźlibyśmy np stronę Wałaszka czy wyłady Woźnej Wałaszek nawet nie kryje tego że jego algorytmy nie uwzględniają przypadków brzegowych ani nie uwzględniają obsługi błędów Co do Woźnej to np jej lista jednokierunkowa po drobnych poprawkach będzie dobrze działała ale już lista dwukierunkowa jest już całkiem źle napisana Jakiś czas temu pytałeś mnie o Dasguptę , otóż widziałem tę książkę i jakoś nie przypadła mi ona do gustu . Może dlatego jej nie zapamiętałem Metis chwalił się że pisze w Pythonie Co do tego Pythona to jeszcze garbage collector mógłby ci przeszkadzać chociażby dlatego że uczy aby po alokacji pamięci nie zwalniać jej przez co po przesiadce na inny język mogą wystąpić wycieki pamięci jak się do tego garbage collectora przyzwyczaimy
21 lis 17:57
Ambitny: Mariusz, dzięki za listę zagadnień z algorytmów. Część już z nich przerobiłem m.in. stos, kolejki, drzewa. Co do MCTS − chcę się tego nauczyć, mam zamiar zaimplementować go do gry Kółko−Krzyżyk. Problem jest taki, że teorię w całości rozumiem ale implementacja taka prosta nie jest, w każdym razie dla mnie, bo doświadczenia dużego nie mam w tym zakresie. Ostatnio zrozumiałem i napisałem algorytm MiniMax dla wspomnianej gry. Z algorytmami masz dużo racji, bez algorytmów niewiele da się zdziałać w programowaniu. Piszę sporo kodu w Javie, tam też jest garbage collector, ale zacząłem ostatnio w C++, i już przyzwyczaiłem się do tego aby zwalniać pamięć , bo w Javie tego nie robię.
21 lis 21:51
Ambitny: Ponadto doszedłem do wniosku, że książka Dasgupty jest beznadziejna. Wystarczy ją przejrzeć, raczej więcej tam algebry niż treści związanej ze strukturami i algorytmami.
21 lis 21:54
Ambitny: @DziadekMróz "Aby zadeklarować tablicę dwuwymiarową o wymiarze 10 na 10 należy na przykład wpisać: vector< vector<double> > v1(10,10); " z tego pdfa się uczyłem http://www.ee.pw.edu.pl/~ksiezyk/teksty/dydaktyka/InfE/stl-opis.pdf niestety kod nie chciał się kompilować, chyba tam jest własnie błąd. Dzięki za wyjąsnienie z tą tablicą wektorów.
21 lis 22:05
jc: Mnie się akurat Dasgupta podoba, ale tak to jest z podręcznikami, jednemu pasuje to, drugiemu coś innego.
21 lis 22:10