Wpisany przez Tomasz Lubiński,
04 września 2009 19:21
Załóżmy że mamy daną tablicę n-elementów i chcemy obliczyć ich sumę. Niech będzie to tablica a o indeksach od 1 do n. Czyli kolejne jej elementy oznaczymy: a[1], a[2], a[3], ..., a[n-1], a[n].
By obliczyć sumę elementów tej tablicy podejmiemy następujące kroki:
Operację dodawania wszystkich elementów tablicy możemy zapisać następującym schematem blokowym:
Jeżeli chcielibyśmy dodać tylko zakres tablicy od indeksu p do indeksu k wówczas w schemacie powyżej zmienilibyśmy początkową wartość zmiennej iterującej po tablicy i z 1 na p, a warunek zakończenia z i <= n na i <= k.
Niech będzie dana tablica 5-elementowa, a = {4, 1, 6, 1, 3}.
Na początku inicjujemy wynik = 0.
Następnie dodajemy kolejne elementy tablicy:
wynik = wynik + a[1] = 0 + 4 = 4
wynik = wynik + a[2] = 4 + 1 = 5
wynik = wynik + a[3] = 5 + 6 = 11
wynik = wynik + a[4] = 11 + 1 = 12
wynik = wynik + a[5] = 12 + 3 = 15
Zatem ostateczny wynik to 15.
By obliczyć sumę elementów tej tablicy podejmiemy następujące kroki:
- na początku zainicjujemy wynik wartością 0,
- następnie przejdziemy po kolei po wszystkich elementach tablicy i dodamy ich wartość do naszego wyniku,
- po przejściu po wszystkich elementach otrzymamy sumę elementów tablicy.
Operację dodawania wszystkich elementów tablicy możemy zapisać następującym schematem blokowym:
Jeżeli chcielibyśmy dodać tylko zakres tablicy od indeksu p do indeksu k wówczas w schemacie powyżej zmienilibyśmy początkową wartość zmiennej iterującej po tablicy i z 1 na p, a warunek zakończenia z i <= n na i <= k.
Przykład:
Niech będzie dana tablica 5-elementowa, a = {4, 1, 6, 1, 3}.
Na początku inicjujemy wynik = 0.
Następnie dodajemy kolejne elementy tablicy:
wynik = wynik + a[1] = 0 + 4 = 4
wynik = wynik + a[2] = 4 + 1 = 5
wynik = wynik + a[3] = 5 + 6 = 11
wynik = wynik + a[4] = 11 + 1 = 12
wynik = wynik + a[5] = 12 + 3 = 15
Zatem ostateczny wynik to 15.
Przykład w JavaScript:
Implementacje
Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
Tomasz Lubiński | C# | MS Visual Studio .net | .cs | .cs | ***** / 15 |
Tomasz Ponomarów | C# | Prosta implementacja Visual Studio 2010 | .cs | .cs | ***** / 3 |
Tomasz Lubiński | C/C++ | .cpp | .cpp | ***** / 12 | |
Marian | C/C++ | C++ | .cpp | .cpp | ***** / 28 |
Kamil Dębowski | C/C++ | Możliwość wyboru zakresu | .cpp | .cpp | ***** / 3 |
Krzysztof Sośnierz | C/C++ | C++ templates | .cpp | .cpp | ***** / 7 |
Krzysztof Kozłowski | C/C++ | Implementacja bez użycia tablicy | .cpp | .cpp | ***** / 1 |
Adam CZ | C/C++ | Definicja funkcji z przykładem użycia | .cpp | .cpp | ***** / 4 |
Tomasz | C/C++ | C++ liczby zmiennoprzecinkowe | .cpp | .cpp | ***** / 5 |
Magdalena Dziesińska | C/C++ | C z liczbami pseudolosowymi | .cpp | .cpp | ***** / 8 |
Tomasz Lubiński | Delphi/Pascal | .pas | .pas | ***** / 6 | |
Adam Chrapkowski | Haskell | .hs | .hs | ***** / 0 | |
Tomasz Lubiński | Java | .java | .java | ***** / 12 | |
Dominik Goździuk | JavaScript | .js | .js | ***** / 10 | |
Tomasz Lubiński | JavaScript | z automatycznym opisem kroków algorytmu | .js | .js | ***** / 0 |
Tomasz Lubiński | JavaScript | tablica pobierana od użytkownika | .js | .js | ***** / 1 |
Dominik Goździuk | Perl | .pl | .pl | ***** / 2 | |
ddominikp | Php | wykorzystana pętla for | .php | .php | ***** / 4 |
artek | Php | wykorzystana pętla foreach | .php | .php | ***** / 2 |
seveN. | Php | wykorzystana pętla while | .php | .php | ***** / 0 |
Hubert Pietrusiak | Python | Python 2.6 - UTF-8 | .py | .py | ***** / 12 |
Adam Chrapkowski | Python | metoda funkcyjna | .py | .py | ***** / 8 |
Nikodem Solarz | Ruby | metoda obliczająca sumę wartości tablicy | .rb | .rb | ***** / 3 |
Poprawiony: 07 lutego 2013 08:37
- w C/C++/C#/php/ rzeczywiście tablice indeksuje się począwszy od 0
- w Delphi/Ada istnieje możliwość zadeklarowania tablicy od indeksu 0, 1, 2...
W przykładzie rozpatrujemy tablicę a[1], a[2], .... a[n] tak więc liczymy tutaj od elementu [1].
BTW fajna stronka, pozdrowienia dla autora.