Wpis z mikrobloga

Cześć Wykopki, pomożecie? :< Napisałam prosty program, który ma obliczać całkę z funkcji wielomianowej maksimum szóstego stopnia metodą prostokątów. Nie wiem dlaczego, ale program podaje mi bardzo dziwne wyniki dla najprostszych wielomianów (np. dla wielomianu zerowego stopnia f(x)=3 w przedziale <0;5> podaje wynik 1.65) Nie wiem, gdzie robię błąd... #pascal #informatyka #matematyka

poprawka: http://pastebin.com/gAkEXXmg
  • 34
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@tell_me_more: chyba mamy tutaj podobny problem, jak u mnie ostatnio - na moim komputerze transformacja boxa-mullera zaprogramowana w C++ działa znakomicie i daje liczby o pięknym rozkładzie normalnym na całej prostej rzeczywistej, a u kumpla (co prawda na Windowsie, a u mnie na Macu) obcina je do dodatnich i rozwala cały rozkład :)
  • Odpowiedz
@aniu_ta: a nie masz przypadkiem w swojej wersji w dolnej pętli zamiast "i:=1 to n" zrobione "i:=0 to n"? Bo to by tłumaczyło 16.5 zamiast 15

A 16.5 w notacji naukowej (jakiej fpc używa dla reali) to 1.65...E+001 i by się zgadzało :) łątwo się machnąć w odczytywaniu tej notacji i odczytać jako 1.65
  • Odpowiedz
@aniu_ta: Wybacz offtop, ale Pascal? Uczysz się do matury z infy i popełniasz mój błąd czyli pisanie w Pascalu zamiast w C++ czy może jakiś dinozaurowaty nayczuciel/profesor wymaga znajomości tego języka?
  • Odpowiedz
@Sebaall: Raczej spodziewałem się, że

long double
może szkodzić ;)

Jeśli kolega kompilował to w VS, to być może trzeba tam dodać jakiś przełącznik (nie pamiętam już jaki), bo była jakaś różnica w precyzji zmiennoprzecinkowych.
  • Odpowiedz
@tell_me_more: zamieniłam 1 na 0 i o dziwo nadal pokazuje 16.5, nie wiem, może na zajęciach na innym komputerze zadziała.

@Marmite: Wiem, że to język wymarły ;) ale cały czas w nim tylko programujemy, choć chętnie nauczyłabym sie czegoś innego :<
  • Odpowiedz
@aniu_ta: nie no - powinno być 1. Ale jak u siebie zmieniłem na 0 to był efekt taki, jak opisujesz, dlatego sugeruję, że o to może chodzić.

A przekompilowywałaś? Może masz daty plików zkaszanione i się nie przekompilowuje binarka? skasuj binarkę i spróbuj jeszcze raz...
  • Odpowiedz
@almafater: VS? Visual Studio? To programowanie nie jest jakieś zaawansowane, ot takie pierdółki matematyczne i starcza do tego proste IDE, ja sam pracuję na edytorze, który od notatnika różni się podświetlaniem składni i wbudowanym przyciskiem Run :) Z tego co wiem, to kumpel DevC++ używa. Z resztą sam pod nim kompilowałem i ten sam efekt
  • Odpowiedz
@tell_me_more: A gdzie tam, do dzisiaj żałuję że do matury uczyłem się Pascala zamiast C++, przynajmniej nauczyłbym się języka który potem się na studiach przydaje. Zresztą jak uczyłem się go to czasem aż tylko łapałem się za głowę widząc jakie dziwne rozwiązania stosowano :P (ponieważ nie był to pierwszy język programowania w moim życiu). Może jako "Mój Pierwszy Język Programowania" Pascal się sprawdzi, ale jak się liznęło już w życiu
  • Odpowiedz
@Marmite: z językami programowania jest jak z normalnymi - każdy kolejny wchodzi dużo szybciej. C nauczyłem się w kilka tygodni, jak już umiałem pascala. C++ też myślałem, że się nauczyłem (bo to posrany język, i teraz po 5 latach używania dalej nie uważam, żebym go umiał na 100%, ale na studiach w nim prace zaliczeniowe pisałem i myślałem, że go umiem ;) ).

Nie ma sensu się skupiać na języku
  • Odpowiedz
To nie jest język do nauki programowania, tylko do pisania gier :)


@tell_me_more: To prawda. A które są dobre do nauki? Hm, wg mnie do nauki programowania nadaje się PHP ze względu na jego swobodę. Oczywiście obowiązkowo należy się też uczyć dobrych praktyk, żeby nie uczyć się pisania shitcode'u.
  • Odpowiedz
@Marmite: @tell_me_more: @Sebaall: Kod z dzisiaj: http://pastebin.com/2ZdRYr6V jedyna zmiana w stosunku do początkowego kodu to wyzerowanie tablicy i inna notacja wyniku, ale i tak wczoraj po tych zmianach pisał mi, że pole pod prostą y=3 od 0 do 5 to 16.5, a dzisiaj normalnie, że 15.00. Sprawdzałam kilka wielomianów stopnia zerowego i też dobrze. Nie robiłam nic z datami plików, chyba że się samo naprawiło, nie
  • Odpowiedz