C++
Saris: Potrzebuje sposobu:
http://pastebin.com/Mg0Z9H6z
Polecenie w pascalu, piszemy w c++, zadanie jest zrobione, ale masakrycznie okreznym sposobem
PIerwsze 3 ify są na sumowanie po przekatnych tak \\\
Nastepnie obracam tablice o 90 stopni (powalone) i robie to samo na nowych indeksach (tam sobie
zamieniam, jest to chaotyczne troche patrzac z boku)
Pytanie jakie założenia zrobic zeby sumowac po przekatnych tak /// i w ktorym miejscu zaczac.
Da sięto w ogole zrobic anologicznie do 1 czesci?
1 lut 22:54
Saris: Wiem, że się da ale czy analogicznie da się zamknąć to w 3 ifach. Sumuje 2 razy i/j element ale
to nie wazne to wystarczy raz odjac na koncu.
1 lut 22:59
Draghan: "Zakładamy, że zmienna typu tablica jest wypełniona przypadkowymi wartościami. Proszę
napisać procedurę, która dla zmiennej typu tablica zwraca współrzędne i, j elementu T[i, j]
dla którego suma elementów w "ukośnych rzędach" jest największa."
Ma to być element "brzegowy", czy dowolny z tablicy? Jeżeli brzegowy, to pewnie można
kombinować, jak w jednej−dwóch pętlach to zamknąć, żonglując indeksami.
1 lut 23:44
Saris: Hehe. Dowolny.
1 lut 23:52
Draghan: Jak Ci jeszcze będzie potrzebne, to mogę jutro (w sensie że dziś, tylko póóóóźniej) nad tym
pomyśleć.
2 lut 00:32
Draghan: Hej, powinieneś robić chociaż jakieś komentarze w kodzie.
Jak dla mnie to polecenie nadal jest nieprecyzyjne. Jeśli zwrócę element ze środka tablicy, to
skąd będzie wiadomo, po której diagonali sumowanie będzie dawało najwyższy wynik?
Osobiście rozbiłbym to na 3 moduły, chociaż nie wiem, czy nie wyszłoby więcej zamieszania, niż
w Twoim kodzie.
1. Stworzenie tablicy przekątnych (da się to zrobić w jednej iteracji po tablicy wejściowej).
2. Wyliczenie sum w każdej przekątnej (tu najtrudniejszy kawałek, bo trzeba uwzględnić
występowanie liczb ujemnych, które rozbijają nam przekątne na mniejsze ciągi).
3. Wybranie maksymalnej wartości z obliczonych sum i wyliczenie współrzędnej z oryginalnej
tablicy, na podstawie pozycji w tablicy przekątnych.
2 lut 13:29
Saris: ale to do funkcji podajesz tylko indeksy tablicy i przekatne przechodzace przez ten punkt masz
zsumowac. Ich elementy i odjac raz t[i][j], bo go zsumujesz dwa razy chyba, że jakoś
zaznaczysz, żeby tylko w jednej przekątnej był sumowany, ale szkoda na to czasu w takim
zadaniu.
I to będzie jedna funkcja. W innej po prostu lecisz po całej tablicy i szukasz maxa z wartosci
która zwroci funkcja sumująca.
Mi tylko chodziło czy da się te /// przekątne sumować tak samo łatwo jak te \\\, a właściwie
analogicznie porównując tylko I i J i chyba się nie da.
Pewnie jest inny sposób, żeby zrobić 4 przypadki−4petle jakos, ale mi chodzi o takie 2
przypadki rozdzielone ifami.
2 lut 23:56
Draghan: Ups, wygasło. Ja zrozumiałem inaczej to polecenie, ładewa.
3 lut 00:00