Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zadanie z tablic
damianooo
post
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Mam następujące zadanie do rozwiązania:

Napisz program, który obliczy sumę elementów na obu przekątnych tablicy o wymiarze NxN.

Zrobiłem sumowanie jednej przekątnej, w ten sposób:

  1. $array_test = array(
  2. 0 => array(2, 4, 5, 6),
  3. 1 => array(3, 5, 2, 4),
  4. 2 => array(8, 3, 2, 3),
  5. 3 => array(2, 1, 3, 6)
  6. );
  7.  
  8. $pierwsza_przekatna = 0;
  9. $count_array = count($array_test);
  10.  
  11. for ($i = 0; $i < $count_array; $i++) {
  12. for ($j = $count_array; $j >= 0; $j--) {
  13. if ($i == $j) {
  14. $pierwsza_przekatna += $array_test[$i][$j];
  15. }
  16. }
  17. }


nie potrafię natomiast dodać do tego sumowania drugiej przekątnej.


Mogę prosić o pomoc?

dzięki

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Z tego co da się wyczytać w regulaminie - zadań domowych nie rozwiązujemy ale to rozwiązanie jest dość błahe - od 0 do 4 w drugiej pętli (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
damianooo
post
Post #3





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Zadań domowych nie rozwiązujemy? ... gdzie w regulaminie jest taki punkt ? (IMG:style_emoticons/default/smile.gif) ... poza tym to nie zadanie domowe tylko zadanie znalezione na pewnej stronie.

ja to rozwiązałem tak:

  1. $array_test = array(
  2. 0 => array(2, 4, 5, 6),
  3. 1 => array(3, 5, 2, 4),
  4. 2 => array(8, 3, 2, 3),
  5. 3 => array(2, 1, 3, 6)
  6. );
  7.  
  8. $pierwsza_przekatna = 0;
  9. $count_array = count($array_test);
  10.  
  11. $c = $count_array-1;
  12.  
  13. for ($i = 0; $i < $count_array; $i++) {
  14. for ($j = $count_array; $j >= 0; $j--) {
  15. if ($i == $j) {
  16. $pierwsza_przekatna += $array_test[$i][$j];
  17. }
  18. }
  19.  
  20. $druga_przekatna += $array_test[$c][$i];
  21. $c--;
  22. };



Ten post edytował damianooo 1.11.2012, 21:47:33
Go to the top of the page
+Quote Post
prowseed
post
Post #4





Grupa: Zarejestrowani
Postów: 433
Pomógł: 64
Dołączył: 29.01.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Robisz dwuwymiarową tablicę

Analizujesz: http://www.roseindia.net/tutorial/C/sumofdiagonals.html

Piszesz w php : )


Możesz też strzelić foreach na $array_test i zrobić array reverse na tablicach, a później policzyć tak samo jak wcześniej ; )

Ten post edytował prowseed 1.11.2012, 21:42:59
Go to the top of the page
+Quote Post
amii
post
Post #5





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


Możesz zrobić też tak :
Założenia pierwszy element = 0;
ostani element równy count(tablica) - 1
1 dwie pętle po tablicach i sprawdzasz czy klucz jest równy pierwszemu lub ostaniemu elementowi
2 jeśli tak do dodajesz wartości z tablicy do sumy
3 w petli zewnetrznej zwiekszasz wartosc pierwszego elementu i zmniejszasz wartosc ostatniego

Ten post edytował amii 1.11.2012, 21:47:57
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.12.2025 - 13:20