KochamChemie Napisano Grudzień 22, 2014 Share Napisano Grudzień 22, 2014 Tak przy okazji: to zadanie było na programowaniu 2 jako praca domowa i prawie nikt go nie zrobił, a ci którzy zrobili, gadali coś o wektorach. A nie dało by się tego załatwić za pomocą iloczynu mieszanego wektorów? http://www.matematyka.pl/206480.htm Daję linka do stronki z teorią, bo zapomniałem jak się to konkretnie liczyło. Ale wiem, że posiadając wektor podstawy, drugi wektor podstawy oraz wektor wysokości można to spokojnie obliczyć. Bez całek też się da jak widać. Link do komentarza Udostępnij na innych stronach More sharing options...
Maklak2 Napisano Grudzień 22, 2014 Autor Share Napisano Grudzień 22, 2014 W tę stronę też próbowałem kombinować, ale do iloczynu mieszanego trzeba mieć te wektory. Wektory można by policzyć ze współrzednych wierzchołków, ale problem w tym, że nie ma współrzędnych -- tylko długości wszystkich krawędzi. Współrzędne pierwszych trzech wierzchołków mogę sobie wyznaczyć, np. przyjmujac że pierwszy to A(0, 0, 0), drugi to B(a, 0, 0), a trzeci sobie policzyć jako C(x, y, 0), wyznaczajac współrzędne z długości boków b i c. Schody są przy ostatnim. Link do komentarza Udostępnij na innych stronach More sharing options...
Maklak2 Napisano Grudzień 23, 2014 Autor Share Napisano Grudzień 23, 2014 Chemik, odpiszę na to tutaj, bo w tym wątku bardziej pasuje: http://mlppolska.pl/watek/3011-sesje-roleplaying-is-magic-w-warszawie/page-7#entry625469 Dla kogoś kto lubi Javę i programowanie obiektowe to trochę herezje Jeśli chodzi o programiki na kilkaset linii kodu, to nie trzeba zawracać sobie głowy klasami i innymi sprawami, które bardzo przydają się w większych programach. Ewentualnie w Matlabie warto rozbić sobie nawet mały program na osobne pliki z funkcjami, ale generalnie robisz tak: 1) Includy / import / use, itp - na początek deklaracje z jakich bibliotek korzystasz. 2) Deklaracje i inicjalizacje zmiennych globalnych. W większych programch używa się tego jak najmniej, ale w małym skrypcie są OK. Pomagają też zmniejszyć ilość parametrów wielu funkcji, co generalnie jest mocno złą praktyką. 3) Deklaracje funkcji. Funkcje przydają się zawsze, nawet w małych programach. No i możesz sobie zrobić coś w rodzaju własnej biblioteki, to znaczy jakiś plik z funkcjami, z którego korzystasz w różnych programach. Akurat w Perlu to jest zderipone, więc jesli tylko mogę, najchętniej trzymam cały kod w jednym pliku. 4) Funkcja main. Nawet w skrypcie wykonywane instrukcje ładniej jest opakować sobie w funkcję, którą wywołujesz raz. 5) Różne funkcje z których korzystasz. Najczęściej mam tam coś do inicjalizacji opcji (ustawia zmienne globalne na podstawie opcji programu), coś do wczytania danych z pliku lub wykonania obliczeń i coś do wypisania wyniku. Czyli main często wygląda tak: sub main { init_options(); read_data(); compute(); print_result(); } Jeśli chodzi o obliczenia statystyczne na wynikach rzutu kostką, to można do tego podejść po pierwsze tak: A) Wyczerpanie wszystkich mozliwości. Wchodzi w grę, jeśli możliwych kombinacji jest powiedzmy 10^10 lub mniej. Ta metoda jest dokładna, zakładając że w rzeczywistości używamy idealnych kostek (nie używamy, ale to dobre przybliżenie). B) Obliczenia metodą Monte Carlo: Generujemy powiedzmy 10^8 losowych wyników i dla nich liczymy statystyki. Najlepiej uzyć do tego jakiegoś lepszego generatora liczb pseudolosowych niż ten standardowy. Statystycznie to zbiega do poprawnego wyniku z szybkością pierwiastka z liczby próbek. Są jeszcze dwa sposoby jak wkomponować w kod pobieranie nowej kombinacji: Sposób 1) sub main { for (int i=1; i<=6; i++) { for (int j=1; j<=6; j++) { for (int k=1; k<=6; k++) { # Wybierz odpowiednie kostki i policz statystyki } } } # Wyświetl statystyki } Czyli zagnieżdżamy sobie pętle z wynikami z kostek i w środku coś z tym robimy. To rozwiązanie jest szybsze, ale trochę bardziej bałaganiarskie Można też zrobić osobną funkcję, która generuje następna kombinację, zwraca kolejny ciąg znaków z czytanego pliku, itp. Dla kostek zaczynasz od (1, 1, 1), dodajesz 1 i przenosisz nadmiar na następną kostke, czyli (7, 1, 1) zmienia się w (1, 2, 1), itp. Sposób 2) -- przy Monte Carlo to jedyna możliwość. my $state; sub main { $state = init(); do { # compute statistics on current state } while ($state = next_state($state)) # Wyświetl wynik. } Jest wolniej, choćby dlatego że tutaj tak jakby w najbardziej wewnętrznej pętli masz wywołanie funkcji. 1 Link do komentarza Udostępnij na innych stronach More sharing options...
Maklak2 Napisano Grudzień 26, 2014 Autor Share Napisano Grudzień 26, 2014 (edytowany) Jak zrobić, żeby mi się w HTMLu wyświetlały polskie znaki, a nie "ĄżĘęÅłÓ󯿏ź"? Nagłówek w postaci "<content-type: text/html charset=\"UTF-8\">\n\n" nie działa. EDIT: Już nieważne. Do html wystarczy nagłówek "<!DOCTYPE html> <meta charset=\"utf-8\">" i już wtedy nie trzeba używać tych HEAD, HTML i BODY. Więcej info tutaj: http://www.sitepoint.com/a-minimal-html-document-html5-edition/ Edytowano Grudzień 26, 2014 przez Maklak2 Link do komentarza Udostępnij na innych stronach More sharing options...
Gość PervKapitan Napisano Styczeń 13, 2015 Share Napisano Styczeń 13, 2015 Umie ktoś tutaj język C# i chciałby mi pomóc z zadaniami? Link do komentarza Udostępnij na innych stronach More sharing options...
Arpegius Napisano Styczeń 14, 2015 Share Napisano Styczeń 14, 2015 (edytowany) Umie ktoś tutaj język C# i chciałby mi pomóc z zadaniami? Nie. Poco komu ten substytut jedynego języka prawdziwego programowania Nie no bardziej nie lubię tego że nic nie działa pod Mono :-D Może i Unity3D korzysta z Mono, ale wiem że zawsze są problemy, po za tym do dzisiaj nie zrobili WebPlayera na Linuksa (A wtedy mógłbym hejcić tych co piszą w Unity tak, że nawet pod osx nie działa). A tak na serio to Maklak powinien coś ogarniać, bo ostatnio stwierdził że w tym pracuje. Że też się z ciekawości spytam, o czym te zadanka i dlaczego C#? Jak coś to zadanka możesz je tutaj przedstawić. Tematem przewodnim wątku jest głównie sama algorytmika, co jest ortogonalne do pojęcia samego języka programowania. PS. W tym wątku nie zamierzam hejcić nikogo za to jakiego języka używa. Edytowano Styczeń 14, 2015 przez Arpegius Link do komentarza Udostępnij na innych stronach More sharing options...
Gość PervKapitan Napisano Styczeń 14, 2015 Share Napisano Styczeń 14, 2015 (edytowany) Ehh.. właściwie na studia. Wiem, że powinnam sama robić, ale nie każdy informatyk musi być programistą. Też nie lubię poza tym C# A tutaj są kody programów z tych zadań: http://pastebin.com/u/agace Ona nam daje listy i każe rozwiązywać samemu, na lekcjach przedstawiamy. Tłumaczy nam może 10 minut na czym to polega, a ja nie mam pojęcia co robić. Pierwsze listy były banalne, bo było to programowanie strukturalne, ale obiektowego całkowicie nie roumiem. Edytowano Styczeń 14, 2015 przez PervKapitan Link do komentarza Udostępnij na innych stronach More sharing options...
Maklak2 Napisano Styczeń 14, 2015 Autor Share Napisano Styczeń 14, 2015 (edytowany) Meh, to są podstawowe rzeczy i wyglądają nudno. Programowania obiektowego i tak będziesz musiała się nauczyć. Na kiedy masz to zrobić i dlaczemu nie masz kolegów na uczelni? Dziewczyny zwykle dostawały takie rzeczy rozwiązane, ot tak po prostu. > Poco komu ten substytut jedynego języka prawdziwego programowania Tja, Javy Dobra, na zachętę zrobiłem 10.1, ale na odwal się i nawet nie wiem czy się skompiluje, a w domu mam gcc a nie Visual Studio. http://pastebin.com/RthGtKDX Po powrocie z pracy nie chce mi się rozwiązywac takich zadań. Edytowano Styczeń 14, 2015 przez Maklak2 Link do komentarza Udostępnij na innych stronach More sharing options...
Gość PervKapitan Napisano Styczeń 14, 2015 Share Napisano Styczeń 14, 2015 Wiem, że będę musiała. Ale ona nie tłumaczy nam tego. A ja na googlach nie potrafię nic sensownego znaleźć. Na poniedziałek to mam mieć. Koledzy... meh... dziewczyny dostawały jak nie wyglądały jak babo-chłopy może Link do komentarza Udostępnij na innych stronach More sharing options...
Gość PervKapitan Napisano Styczeń 14, 2015 Share Napisano Styczeń 14, 2015 Ogólnie nie chcę, byście "odje*ali" za mnie całą robotę. Tylko chciałam by ktoś mi to zrobił, ale też wytłumaczył co jest czym i dlatego tak a nie inaczej. Link do komentarza Udostępnij na innych stronach More sharing options...
Maklak2 Napisano Styczeń 14, 2015 Autor Share Napisano Styczeń 14, 2015 1) Klasa ostateczna to taka, której nie można odziedziczyć, a metoda ostateczna to taka, która przestaje być wirtualna. W C# uzywa sie do tego słowa kluczowego "sealed". O dziedziczeniu i metodach wirtualnych raczej sama sobie poszukaj, ale tak w skrócie to każda instancja klasy ma vtable, ukryty wskaźnik na tablicę wskaźników do funkcji. Przy dziedziczeniu część z tych wskaźników może pokazywać na metody z nowej klasy. 2) Konstruktory przeciążone to konstruktory z różnymi argumentami, np. class Statek { // pola tej klasy static int counter = 0; Statek(int arg1, float arg2, String arg3) { counter++; ... } Statek(float arg1) { counter++; ... } } Żeby mieć liczbę obiektów trzeba mieć w klasie statyczną zmienną i inkrementować ją w konstruktorach. W C++ dekrementuje się ją w destruktorach, w C# można co najwyżej dekrementować ją w metodzie Dispose, która działa kiedy ruszy garbage collector (i trzebaodziedziczyc interfejs Idisposable). Do zmiennej statycznej można się odwołać z każdej metody klasy, więc dodaj sobie: public static int GetCounter { return counter;} albo public static int Counter { get { return counter; } } i wywołaj np. Statek.Counter w main. 3) To będzie w sumie podobne do przykładowego kodu. Musisz mieć klasę abstrakcyjną Zwierz z jakimiś polami i metodami, np do wagi, długości, czy kiedy się urodził oraz jakieś metody do obsługi tego i najlepiej konstruktor z parametrami. Dziedziczysz z tego klasę Ptak z metodami Przylot(), Odlot() i pewnie dwa pola na czas przylotu i odlotu i dodajesz jakąś metodę main, któa wypisze rzeczy na ekran. 4) Więcej zmiennych i więcej metod i więcej rzeczy do wypisania na ekran. Taka tam głupiego robota. O obiektach, dziedziczeniu, itp. trzeba napisac naprawdę sporo, żeby to jako-tako wytłumaczyć. Nie oczekuj, że zrobię to w jednym poście na forum. Link do komentarza Udostępnij na innych stronach More sharing options...
Gość PervKapitan Napisano Styczeń 14, 2015 Share Napisano Styczeń 14, 2015 I tak wielkie dzięki, że chciało Ci się napisać to. Na pewno mi to pomoże w zrobieniu tych zadań. A nasza babka to tłumaczyła w dwie minuty i na tym skończyła Link do komentarza Udostępnij na innych stronach More sharing options...
Arpegius Napisano Styczeń 16, 2015 Share Napisano Styczeń 16, 2015 (edytowany) > Poco komu ten substytut jedynego języka prawdziwego programowania Tja, Javy Gratulacje, mój ból dupy właśnie przekroczył zakres uint64_t. Teraz jest równy zero. Edytowano Styczeń 16, 2015 przez Arpegius Link do komentarza Udostępnij na innych stronach More sharing options...
Arpegius Napisano Styczeń 16, 2015 Share Napisano Styczeń 16, 2015 (edytowany) Ehh.. właściwie na studia. Wiem, że powinnam sama robić, ale nie każdy informatyk musi być programistą. Też nie lubię poza tym C# No ja bym raczej powiedział że nie każdy programista musi być informatykiem. A sama umiejętność programowania przydaje się praktycznie wszędzie gdzie mamy doczynienia z automatyzacją, czyli praktycznie wszędzie. Tylko że patrząc na te zadanka to ciebie nie uczą programować, tylko uczą cię znajomości jezyka C♯ (nie C#). O ile ta wiedza jest niezbędna aby tworzyć prawidłowo oprogramowanie w .NETcie, to jednak jest tylko drobnym wycinkiem wiedzy jaki architekt oprogramowania (wyspecjalizowany informatyk) powinien posiąść o technologii w której pracuje. Ogólnie nie chcę, byście "odje*ali" za mnie całą robotę. Tylko chciałam by ktoś mi to zrobił, ale też wytłumaczył co jest czym i dlatego tak a nie inaczej. No cóż ja mogę tylko ponarzekać, chyba że chcesz posłuchać skąd to się wzieło i jak może być inaczej ale to raczej długa rozmowa i nie na to forum. Zresztą podstawowa wiedza z wzorców programowania była by chyba tu konieczna by to zrozumieć, no i jeszcze matematyka, ta mocno abstrakcyjna. Edytowano Styczeń 16, 2015 przez Arpegius Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Chcesz dodać odpowiedź ? Zaloguj się lub zarejestruj nowe konto.
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto
Zarejestruj nowe konto, to bardzo łatwy proces!
Zarejestruj nowe kontoZaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się