algorytm.org

Suma elementów tablicy



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Suma elementów tablicy
Ocena użytkowników:***** / 143
SłabyŚwietny 
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:

schemat blokowy - suma elementów tablicy


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:
Tablica liczb (wartości oddzielone przecinkiem, bez spacji):

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Tomasz LubińskiC#MS Visual Studio .net
.cs
.cs
***** / 15
Tomasz PonomarówC#Prosta implementacja Visual Studio 2010
.cs
.cs
***** / 3
Tomasz LubińskiC/C++
.cpp
.cpp
***** / 12
MarianC/C++C++
.cpp
.cpp
***** / 28
Kamil DębowskiC/C++Możliwość wyboru zakresu
.cpp
.cpp
***** / 3
Krzysztof SośnierzC/C++C++ templates
.cpp
.cpp
***** / 7
Krzysztof KozłowskiC/C++Implementacja bez użycia tablicy
.cpp
.cpp
***** / 1
Adam CZC/C++Definicja funkcji z przykładem użycia
.cpp
.cpp
***** / 4
TomaszC/C++C++ liczby zmiennoprzecinkowe
.cpp
.cpp
***** / 5
Magdalena DziesińskaC/C++C z liczbami pseudolosowymi
.cpp
.cpp
***** / 8
Tomasz LubińskiDelphi/Pascal
.pas
.pas
***** / 6
Adam ChrapkowskiHaskell
.hs
.hs
***** / 0
Tomasz LubińskiJava
.java
.java
***** / 12
Dominik GoździukJavaScript
.js
.js
***** / 10
Tomasz LubińskiJavaScriptz automatycznym opisem kroków algorytmu
.js
.js
***** / 0
Tomasz LubińskiJavaScripttablica pobierana od użytkownika
.js
.js
***** / 1
Dominik GoździukPerl
.pl
.pl
***** / 2
ddominikpPhpwykorzystana pętla for
.php
.php
***** / 4
artekPhpwykorzystana pętla foreach
.php
.php
***** / 2
seveN.Phpwykorzystana pętla while
.php
.php
***** / 0
Hubert PietrusiakPythonPython 2.6 - UTF-8
.py
.py
***** / 12
Adam ChrapkowskiPythonmetoda funkcyjna
.py
.py
***** / 8
Nikodem SolarzRubymetoda obliczająca sumę wartości tablicy
.rb
.rb
***** / 3
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język
programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie

Poprawiony: 07 lutego 2013 08:37
Komentarze
photo
-10 # Mateusz 2009-10-28 20:00
Jestem początkującym i czy mógł by mi to jakos jakśniej objaśnic.Prosze o odp z góry dziekuje
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
-9 # Ober 2009-11-28 13:15
Algorytm leci tak, że początkowo sprawdza, czy jest co dodawać, czyli porównuje obecny index tablicy z indeksem końcowym (tablica ma n elementów) stąd i
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
-12 # Tomek 2009-11-29 01:49
Tzn? O co Ci dokładnie chodzi? Postaraj to sobie wyobrazić tak, w pamięci masz, że jakaś zmienna jest równa 0, to nasz wynik na początku. Potem po kolei odkrywaj ułożone na kupce kartki z wartościami, każdą dodaj to pamiętanego wyniku. Gdy skończą się kartki będziesz znał wynik.
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
-8 # Amun 2010-03-24 17:25
Tablic przypadkiem nie liczy się od [0] elementu? ;
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
-10 # Tomasz Lubiński 2010-03-26 13:30
To zależy od języka programowania i tak:
- 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].
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
-11 # G.G 2012-03-19 23:07
Ja mam taka zagadke, co to jest n ?? bo widze ze to w warunku jest ;/
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
-12 # Tomasz Lubiński 2012-03-20 11:22
n to jest liczba elementów tablicy
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
-16 # G.G 2012-03-20 15:52
a okej teraz zalapalem :) dzieki wielkie :)
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
-8 # Paweł123 2016-01-16 09:46
Wszystko w informatyce liczymy od zera, nie tylko indeksy tablicy czy np. adresy sieciowe. Inne rozwiązania prowadzą do niepotrzebnego obciążenia procesora. W warstwie fizycznej występowanie samych jedynek bez systemu kodowania prowadzi do grzania się podzespołów. Temat rzeka. Tutaj jednak zastosowanie zastosowane dla łatwiejszego zrozumienia.
BTW fajna stronka, pozdrowienia dla autora.
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
-2 # Maciejek 2017-03-31 21:47
Wszystko pięknie ładnie, tylko brakuje jednej rzeczy. Gdzie jest bloczek który wypisuje wynik? :)
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
-2 # LucJAN 2017-11-16 16:02
A ja nie rozómiem dla czego w bloku procedury, jest taki zapis - [i=i+1]?
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz