Programowanie - ciekawe sytuacje:)

0

Pisalem program na badania operacyjne - zadanie transportowe. Mialem jakas funkcje ktora robila cos na dwuwymiarowej tabeli. Wewnatrz funkcji byla petla:

for (i = 1; i <= 20; i++);
{
// tutaj jakies super instrukcje :)
}

Dziwilem sie czemu nie dziala jak powinno. Po okolo godzinie, zobaczylem srednik :)

0
kierowca :) napisał(a)

Po okolo godzinie, zobaczylem srednik :)

miałem coś podobnego kiedyś na informatyce. Pan profesor zadał nam abyśmy napisali dwa programy z zastosowaniem składni while. Wpierw odpowiednik Pascalowskiego while a potem until. Na początku zrobiłem pętle:
{
...
}while(warunek);

a potem moją ulubioną techniką ( CRTL+C -> CRTL + V ) przekopiowałem warunek i przez 15 minut zastanawiałem sie, dlaczego program zawiesza sie w jednym miejscu. Ba, próbowałem nawet dodawać w różnych miejscach printf("test") w celu debugowania :D Dopiero po jakimś czasie nauczyciel zauważył ten niecny średnik. Tak to bywa, że niekiedy poprzez jakiś badziew można sobie rwać pióra ze łba ;)

0

To akurat dość częsty przypadek :) Osobiście mi się przytrafiło coś podobnego w PHP (ta sama składnia) w czymś w stylu:

while($array=$db->Fetch_Array($db_result));
{
  //Tutaj cośtam na rekordach z bazy
}

I za cholerę nie mogłem dojść co jest (tutaj żeby było ciekawiej się nie zapętlało, tylko zachowywało się, jakby był tylko jeden rekord zwrócony w zapytaniu :D)

0

kiedyś jedno z moich 'dzieł' 'niechcący' usunęło mi 1.5 GB danych z dysku. (:

dziś za to straciłem 3h na szukanie błędu w kodzie, a tym błędem był 'return null' generowany na końcu przez eclipse, o którym zapomniałem. (:

0
Adam.Pilorz napisał(a)

To akurat dość częsty przypadek :) Osobiście mi się przytrafiło coś podobnego w PHP (ta sama składnia) w czymś w stylu:

while($array=$db->Fetch_Array($db_result));
{
  //Tutaj cośtam na rekordach z bazy
}

I za cholerę nie mogłem dojść co jest (tutaj żeby było ciekawiej się nie zapętlało, tylko zachowywało się, jakby był tylko jeden rekord zwrócony w zapytaniu :D)

[!!!]
kur.... czesto mialem taki problem, ale nigdy nie doszedlem dlaczego tak sie dzieje, zazwyczaj przepisywalem skrypt od nowa :D

0
Arune napisał(a)

kiedyś jedno z moich 'dzieł' 'niechcący' usunęło mi 1.5 GB danych z dysku. (:

Skąd ja to znam... Pare ładnych latek temu zrobiłem programik do ukrywania partycji. A że moja wiedza o partycjach była wtedy niewielka to moje dzieło potrafiło ukryć i z powrotem przywrócić pierwsze 2 wpisy dotyczące partycji. Ale to nie był główny problem. Otóż zabrałem mój programik do kolegi aby przetestować go na jego kompie i okazało się, że działa zbyt dobrze: ukrył partycję tak, że nie dało się jej nijak przywrócić [rotfl]

0

kiedyś na infie kazał nam gość napisać strony, wszyscy mieliśmy takie same ale koledze wyświetlało pustą stronę, z gościem od infy szukaliśmy błędu prawie całą lekcję, strona była robiona w notatniku, nie działała zapisana pod żadną nazwą, skopiowana też nie działała, przepisana - tak, jaki z tego morał ? nie wiem, zachowaliśmy tą stronę jako że uzyskaliśmy dwa pliki nie różniące się pod żadnym względem, z tym samym rozmiarem i bajt w bajt tą samą zawartością ale jeden który ja przepisałem działał a ten kolegi - nie :| szkoda że sobie nie skopiowałem tego, normalnie do archiwum X sprawa

teraz jak robiłem projekt tak się przejąłem że podczas prezentacji pracy nagle mi wyskoczy błąd niczym na konferencji Gatesa że praktycznie wszystko mam w try, jak przypisałem jakiś obiekt do zmiennej to za 20 linii jak mam się do niej odwołać to najpierw sprawdzam czy istnieje, teraz jak na to patrzę to mi się śmiać chce ;) no ale chodzi o to że tak obsłużyłem wszelkie błędy, wyjątki i wszystko że mimo że cały czas miałem wieeeelki bug w programie i dane nie powinny się w żadnym razie zgadzać to mimo to program działał całkowicie poprawnie :)

0
Adamo napisał(a)

kiedyś na infie kazał nam gość napisać strony, wszyscy mieliśmy takie same ale koledze wyświetlało pustą stronę, z gościem od infy szukaliśmy błędu prawie całą lekcję, strona była robiona w notatniku, nie działała zapisana pod żadną nazwą, skopiowana też nie działała, przepisana - tak, jaki z tego morał ? nie wiem, zachowaliśmy tą stronę jako że uzyskaliśmy dwa pliki nie różniące się pod żadnym względem, z tym samym rozmiarem i bajt w bajt tą samą zawartością ale jeden który ja przepisałem działał a ten kolegi - nie :| szkoda że sobie nie skopiowałem tego, normalnie do archiwum X spraw

Trzeba było diffem porównać i by wyszło co jest nie tak :)

0

Mi sie zdazylo takie cos jak pisalem quicksorta, ze przy testowaniu czasami wywalal polowe tablicy jako zera po sortowaniu :( nameczylem sie z tym dobre 2h :) po czym okazalo sie, ze mialem funkcje

inline void swap(int &a, int &b) {a^=b; b^=a; a^=b;} 

a algo wywalal sie gdy mial zamienic pierwszy element z tablicy z nim samym (algo Lomuto).
[soczek]

0

gdy zaczynalem prace ze skryptami basha zrobilem:
cat /dev/radnom > /dev/hdc5

wszystko poszlo sie je... :)

0
Dryobates napisał(a)

Trzeba było diffem porównać i by wyszło co jest nie tak :)

porównywaliśmy fc'em binarnie :|

0

Ja ostatnio pisalem funkcje usuwajaca dll z pamieci, zeby sie go dalo podmienic. Napisalem, sprawdzilem 10x process explorerem i hula. Wysylam kolezance z pracy, zeby tez zobaczyla i u niej nie dziala. No i siedzimy 2h myslac, czemu u mnie dziala a u niej nie...
Nastepnego dnia polapalem sie, ze patrzymy na dwie rozne rzeczy - process explorer ma widok zaladowanym dllek (na ten patrzylem ja) i otwartych plikow (na ten patrzyla ona).
Moja funkcja usuwala z pamieci dll, ale nie zamykala pliku... Pol nocy przez to nie spalem..

pozdrawiam
johny

0

dobra, to może nie z programowania ale tak ogólnie, byłem u kumpla, naprawialiśmy mu kompa, po jakimś czasie mówi "dobra odsuń się" po czym wlazł w command i wpisał "ping" - gapi się z 5 minut na opis tej komendy, pytam się go:

  • co robisz ?
  • sprawdzam czy jest net
  • aha ...
    kilka minut później zamknął to okno stwierdzając że nie ma. to było bardzo ciekawe ;)
0

Kiedyś jedna moja koleżanka z wydziału postanowiła w końcu (3 semestr elektroniki i telekomunikacji) zabrać się za naukę programowania. Usiadła przed komputerem i zaczęła kodować 'Hello World' lub coś podobnego. Po piętnastu minutach przybiegła z krzykiem do naszego pokoju : 'O la boga, ratujcie. Komputer nie działa!'. Rzeczywiście komputer stał wyłączony i nie reagował na przycisk POWER. Wyjeliśmy kabel od zasilania i włożyliśmy jeszcze raz mówiąc przy tym dla żartu: 'Podnieś kabel do góry, żeby prąd szybciej płynął' i ona ku naszemu ździwieniu jak gdyby nigdy nic podniosła kabel i ze słodkim uśmiechem patrzyła na zapalający się monitor :d

0

Miałem taki oto kod w Javie:

void funkcja() {
String S;
....
.... // dużo kodu działającego na S
....
if (S == null) {
   zrobCos();
   return;
}
zrobCosInnego(S);
}

Po uruchomieniu wywalało mniej więcej taki wyjątek:
NullPointerException
at zrobCosInnego:980
at funkcja:930

Dopałem kod debugujący, bo pomyślałem, że coś nie tak ze zmienną S:

void funkcja() {
....
System.out.println("S = ", S);
if (S == null) {
   zrobCos();
   return;
}
zrobCosInnego(S);
}

Rezultat:
S = null
NullPointerException
at zrobCosInnego:980
at funkcja:930

Zaraz, ale czemu on nie wchodzi w warunek? Java się popsuła czy co?
Kolejne debugi:

void funkcja() {
....
System.out.println("S = ", S);
if (S == null) {
   System.out.println("Jestem wewnatrz IF");
   zrobCos();
   return;
}
System.out.println("Jestem za IF");
zrobCosInnego(S);
}

Rezultat:
S = null
Jestem za IF
NullPointerException
at zrobCosInnego: JakasKlasa.java:980
at funkcja: JakasKlasa.java:930

Koledzy popatrzyli i pokiwali głowami, że czegoś takiego nie widzieli.
Na innej JVM podobny efekt. Po dwóch godzinach dochodznia okazało się, że feralna zmienna S zawierała łańcuch znaków "null".

0

Instrukcja w skrypcie PHP która wpływa na instrukcje wcześniejsze. To było coś w stylu

if($_SESSION['test'])
{
...
}
...
$_SESSION['test']=true;

I miałem gwarancję, że ta zmienna sesji nie była ustawiana wcześniej. Dodanie tego przypisania powodowało wejście do warunku. Totalnie oszalałem i zbudowałem rewolucyjną teorię, że interpreter PHP jest dwuprzebiegowy i w pierwszym przebiegu wykonuje wszystkie przypisania do sesji.

Prawdziwym powodem było javascriptowe przeładowanie ramki z tym skryptem, przez co przy drugim wywołaniu zmienna była faktycznie ustawiona (a przeładowanie było tak szybkie, że go nie wychwyciłem wzrokiem)

Również należę do osób, które straciły około 6 godzin z powodu średnika:

foreach(...);
{
  ...
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.