http://fizyka.pisz.pl/forum/
Wenera: http://fizyka.pisz.pl/forum/
Uprzejmie przypominam, że istnieje także forum poświęcone fizyce. Niestety nie cieszy się ono
szczególną popularnością w porównaniu do tego poświęconego matematyce. Pragnę więc zachęcić
wszystkich bywalców i gości tego forum do odwiedzenia
http://fizyka.pisz.pl/forum/. Dlaczego mamy
ograniczać się jedynie do samej matematyki? Przecież jest ona jedynie narzędziem, za pomocą
którego możemy opisać zjawisko przyrodnicze. Czyż na prawdę nie chcecie tych zjawisk poznać?
Czemuż to nie chcecie poszerzać swoich horyzontów? Widzę, że większość z was jest zamknięta
jedynie w takiej ciasnej, skurczonej bańce niechcącej przeprowadzić wewnętrznej ekspansji.
Wasze wąskotorowe myślenie sprawia, że nie możecie otworzyć się w stronę nowych możliwości.
Fizyka być może odmieni wasze życie. Może się zdarzyć, że ta dziedzina nauki zmieni sposób
waszego spojrzenia chociażby na matematykę.
Sprawmy, by forum
http://fizyka.pisz.pl/forum/ odżyło i stało się fundamentem nowej wiedzy.
Z poważaniem
Wenera
16 mar 21:38
oper:
A kto i co upoważnia cię do oceny i pouczania innych
? Takie zidiociałe bufony nikogo do
niczego nie zachęcą a i sobie chwały nie przysporzą.
17 mar 11:56
Wenera: 1) Mam prawo do oceny
2) Nie pouczam nikogo. Mój apel jest jedynie zachętą do zapoznania Państwa z czymś innym.
Przepraszam jeżeli moje oświadczenie jest w jakiś sposób krzywdzące lub obraźliwe.
17 mar 15:50
Mariusz:
A na informatyka.pisz.pl nie ma co liczyć bo
Dziadek Mróz rzadko wchodzi , Vax wcale , z tych co wchodzą to jedynie
Pytający i jc zdaje się że coś wiedzą
17 mar 16:46
iteRacj@: Twoje oświadczenie nie jest obraźliwe (ani tym bardziej krzywdzące).
Jest zabawnym przykładem użycia stylu podniosłego (wysokiego) w sprawie, którą można by opisać
jednym zdaniem.
Może służyć jako ćwiczenie dla maturzystów: wskaż funkcje tak sformułowanej wypowiedzi i użyte
środki stylistyczne. Ale to akurat nie jest celem tego forum.
17 mar 16:47
Wenera: Święta prawda, święta prawda. "Lepsze ziarno w oczy kole, co twe żądło w serce me się wbiło"
17 mar 16:54
Mariusz:
Ilu fizyków jest na forum ?
Poza tym jeśli użytkownicy będą dostawać odpowiedzi takie jak np szukaj w google czy
lub odpowiedzi jakie otrzymałem w przypadku jednego z zadań informatycznych
Kiedyś jak dałem zadanie z programowania to odpisali daj mię kod
a jak kiedyś dostali kod to pisali napisz od zera
Od razu wyczułem że koleś który to napisał nie zna się na temacie ale reszta go broniła
Jeszcze inny zaśmiecał wątki wpisami typu nudny jesteś itp
Myślę że najlepszą reklamą będzie udzielanie sensownych odpowiedzi
17 mar 17:21
Adamm:
"Czemuż to nie chcecie poszerzać swoich horyzontów?
Widzę, że większość z was jest zamknięta jedynie w takiej ciasnej,
skurczonej bańce niechcącej przeprowadzić wewnętrznej ekspansji.
Wasze wąskotorowe myślenie sprawia, że nie możecie otworzyć się w
stronę nowych możliwości. Fizyka być może odmieni wasze życie. Może
się zdarzyć, że ta dziedzina nauki zmieni sposób waszego spojrzenia
chociażby na matematykę. "
Nie, to wcale nie jest obraźliwe
17 mar 17:21
oper:
Adam ... szkoda słów ... toto i tak nie pojmie. Toto przywykło, że ono zawsze wie lepiej
ono jest naj... naj.. i ono ma prawo.
Nawet nie rozumie tych swoich bredni.
17 mar 17:58
Mariusz:
Adam lubi ironizować
Ja wymieniłem to co mogłoby wpłynąć na brak zainteresowania forum
17 mar 18:04
Dziadek Mróz:
Nie ma zadań stricte informatycznych to nie udzielam się
17 mar 18:10
Mariusz:
Dziadek gdy znalezioną w sieci listę próbowałem przepisać z Javy na C++
z użyciem klasy szablonowej to prawdopodobnie źle napisałem część związaną
z zarządzaniem pamięcią bo gdy tę samą listę zapisałem na strukturkach
to już błąd nie występował
Stronki takie jak ideone.com podawały takie błędy jak double free or corruption
czy sigsegv
17 mar 21:47
Dziadek Mróz:
Pewnie zwalniałeś już zwolnioną pamięć lub odnosiłeś się do złego adresu we wskaźniku typu:
#include <iostream>
using namespace std;
int main() {
int a = 5;
int b = 4;
int *ptr = &a;
std::cout << "a: " << &a << " " << a << std::endl;
std::cout << "b: " << &b << " " << b << std::endl;
std::cout << "ptr: " << &ptr << " " << ptr << " " << *ptr << std::endl;
ptr++;
std::cout << "ptr: " << &ptr << " " << ptr << " " << *ptr << std::endl;
// ewentualne delete lub free na ptr zwolniłoby nam b zamiast pierwotnie a
return 0;
}
17 mar 22:26
17 mar 22:47
Pytający:
Dorzucone parę znaczków i się nie wywaliło (acz nie gwarantuję, że więcej ewentualnych
"niespodzianek" tam nie ma):
https://ideone.com/qDhW0w
Generalnie błąd polegał na tym, że funkcja Select (i nie tylko ona) przyjmowała listę przez
wartość (argument S), więc przy wywołaniu funkcji był wywoływany domyślny konstruktor
kopiujący tejże klasy (DoublyLinkedList<Point>), który to z automatu oczywiście skopiował
sobie wskaźniki. Funkcja Select operowała zatem na swej prywatnej kopii S (wskaźniki odnosiły
się do tych samych lokalizacji co wcześniej, tu wszystko było ok), więc po zakończeniu funkcji
Select siłą rzeczy uruchomiony został destruktor tejże lokalnej kopii listy, który to z kolei
opróżnił całą listę (wywołał delete dla poszczególnych węzłów) i tym samym miejsca wskazywane
przez pierwotną listę (czyli lokalną zmienną S w funkcji Solve) stały się nieprawidłowe
(konkretniej odwołania do nich w funkcji Split).
18 mar 01:21
Mariusz:
Dobrze że napisałeś komentarz do tych poprawek
Odrobinę powinno się wyjaśnić
Ja chyba jednak powinienem sobie jeszcze powtórzyć programowanie obiektowe
Tej liście jeszcze brakuje kilku funkcji np sortowania czy usuwania powtórzeń
Listę zawsze przekazywać przez referencję niezależnie od tego czy
na pozór wydawałoby się że funkcja nie modyfikuje listy
18 mar 07:50
Pytający:
Jeśli funkcja nie modyfikuje argumentu, to można go przekazać przez stałą referencję (const
X&), ale wtedy nie można na rzecz tak zadeklarowanego argumentu wywołać funkcji nie const,
więc musiałbyś to uwzględnić przy pisaniu klasy i oznaczać niektóre funkcje jako const (lub
dopisać przeciążone wersje dla const).
Przykładowo aby w wyżej podlinkowanym kodzie można było w Select argument S przekazać przez
stałą referencję (const DoublyLinkedList<Point>&), funkcję getFirst musi dać się wywołać dla
stałego obiektu, dlatego po dopisaniu funkcji:
Link<T>* getFirst() const;
program się skompiluje i będzie hulać:
https://ideone.com/PvEv59
Jednak nie będzie zbyt poprawny ideowo, przecież chyba niezbyt sensowne jest zwracanie
wskaźnika do węzła będącego składnikiem stałej (const) listy?
Nie bez powodu w std::list (
https://en.cppreference.com/w/cpp/container/list ) funkcja begin zwraca
stały iterator w takim przypadku (
https://en.cppreference.com/w/cpp/container/list/begin ).
Generalnie kolejne poprawki będą wymagały kolejnych i możesz się w to bawić, ale chyba nie ma
to większego sensu i nie jest sednem tego programu. Jeśli chcesz przyzwoitej architektury to
pewnie dobrze wzorować się właśnie na std:list, na pewno pisali ją ludzie dobrze się na tym
znający i rozważający znacznie więcej niuansów, niż Tobie czy mi kiedykolwiek przyszłoby do
głowy.
Na koniec dodam tylko, że to chyba najczytelniejszy Twój kod, jaki czytałem (o ile jesteś jego
autorem
).
18 mar 21:22
Mariusz:
Listę znalazłem w książce o algorytmach w Javie
a algorytm w jakimś tekście sprzed trzydziestu lat
gdzie przykładowy kod pisany był w Pascalu
Dodatkowo ich lista wymagała poprawy
Pamiętasz jak kiedyś pisaliśmy o otoczce wypukłej
Ta lista którą tu wkleiłem wystarczy do napisania algorytmu Jarvisa i QuickHulla
ale brakuje jej funkcyj do realizacji punktu 2. w pseudokodzie umieszczonym
w CLRS Introduction to algorithm
(Na ważniaku został ten pseudokod mniej lub bardziej dokładnie przetłumaczony na polski)
Do tej listy przydałoby się dopisać jedynie sortowanie − myślałem o łączeniu naturalnym
i usuwanie powtórzeń (dla potrzeb otoczki wystarczy aby powtórzenia wstawić na koniec listy)
Myślałem też aby funkcję będącą komparatorem umieścić jako argument funkcyj
sortujących i funkcji usuwającej powtórzenia
Co do tematu o otoczce to twój pomysł na realizację punktu 1
w pseudokodzie algorytmu Grahama zaoszczędził mi trochę czasu
inaczej musiałbym się wczytywać w kod znaleziony na tej rosyjskiej stronie
albo samemu dojść do tego jak szukać minimum jednocześnie ze względu na
dwa pola kluczowe
Przydatna też była funkcja porównująca kąty
Na tablicy udało mi się już wcześniej napisać programik np w Javie bo tam
mogłem wyklikać te punkty i zobaczyć jak ta otoczka wygląda
W Javie mam jedynie problemy z tym aby dodać menu do JFrame i Canvasa
18 mar 23:07