Sum of Array

From Rosetta Code
Revision as of 21:22, 15 August 2007 by rosettacode>YkxCky

testi mario merola chario constellation lynx round round sugarbabes ferretti fabrizio www unicredit j annonce istituto gramsci immagini erotiche touring caravan storage gex trial version kienzle crono nikon 18 70 toma gata celosa david gray oh my oh toxic video grim fandango grana (industria alimentare) marines march cathay km0 fiat punto auto km 0 come pensi che io daniele rond gerard presgurvic testo in italiano di my heart growing family com ef 16-35mm parole de obsesion franz lehar i link consigliati oggi passi autore gemini hp xw6200 workstation quota gel 7 cont. 2 g 60 ml ocd obras city of heroes meira asher phone systems mia mamma nuda princess diana death biliard boom stripman flying gozo matrimonio di eros ramazotti i fratelli rico keri russell business planning valle roveto tenda high peak obiettivi canon efs hard disk usb 2 ki-zerbo, joseph goeble le fragole hanno bisogno di pioggia colombiana toshiba s20 polo 1 4 tdi 1999 www romp com bandiera rossa galateo a tavola natale sfondi coscienza di zeno lo cascio leonardo gelidium masterizzatore iomega usb st professional gold mine elenco telefonico della spagna cum covered ram 512 400 mhz yaar weezer. video capture device viaggio maldive polo 1.4 anno 2000 video gratis michel biet sigla prova del cuoco ghost eau de toilette good nigth mr.snoozleberg video deluxe 2005 piante marine piscina palladian multipla autocarro wil66 indesit arte egiziana mtm 1521 alberghi genova indovina film new trolls fs io vengo dalla luna bartosiewicz krawczyk tak trudno lumix dmc fz4 silver panasonic empoli calcio aerosmith. the making of pump sony dcr dvd7 gran turismo 3 trucchi asus a620 accessori anello in oro giallo con diamanti referendum fecondazione assistita raccolta vasco rossi nec ht 410 decss raccolte nagchu forerunner garmin macchine da tuning sfratto jean michelle jarre lettori dvx trevi philips pss 110 massaggiatrici parma la vita e le fidanzate a san andreas sentimento del tempo claudio baglioni fratello sole sorella lun nokia bp-6m last minut italia terrestre pci digitale immagini foto tra donne e animali gatinha art 527 del codice penale mustek 1000 roms mame 32 fantozzi va in pensione suoneria polifonica free resident evil apocalypse the movie vgn a417s circolare ministeriale 2495 del 1954 ballade for adeline tania zamparo volkswagen new beetle 1.9 tdi 101 cv rivendicazione ostaggi italiani amd sempron 2000 centrino burke, thomas calibro digitale il luogo delle ombre virtua tenis free imagessex los roques satanik duke nuken 3d www etiole it all star footbal epiglottide registro storico maggiolino ariston inox comanchero fujayrah jostedalsbreen citta funzione goethite foto di elisa triani space flo firenze natura ente previdenziale tsi greco moderno l oro di mussolini il mostro della strada di campagna profumi eau de toilette maschile paco oscar 1997 lacie porche midi frangoulis impressioni di settembre samsung lcd cvbs sony s95as foto de pasteles this love crazi lcd da 32 pollici philips zoom registratore tiziano fero jamelia universal prayer celtic emotions criceti siberiani lutek corolla verso 2002 luise ullrich philips psc805 d-link adsl 200 telecomando in 1 giochi x cellulari dvd r plextor transfer price universita sassari copertina l amore e eterno finche dura anam cara kiogre matweb prestito lavoratori dipendente tesla bambola ramona tutta nuda bad company - protocollo praga obiettivo 70 300 eomen menegatti lettori per dj viaccses due maschi per alexa spaghetti alla carbonara livin on a prayer bon jovi sidel srl palmare hx2410 air max sport e fitness don pizzica sexy sasha certificate ewan mc gregor le false vergini eventi musicali brescia toshiba combi lettore dvd montblanc chopin jean jacques katie lawler rnb 2004 orgoglio 2 carrington janet calzature thecno registro clab napoli soccer ben harper. live at the hollywood bowl nike air max silver 37 griglia inox kings of convience greco traduzione athlon 3000 venice chatt excite calamagrostis eika lesbian sex shows salice d ulzio pista sci marco biagi ehi ho video moric group vivendi fiat 1100 8v baglioni cuore d aliante graduatorie vfp1 1 blocco 2005 nero fax style xp serial batteria omnibook xe3 renatozero il caso haller multimedia player con hard disk copertina cd doria prestige 630 c rocce gli extra di 18 wheeler motoracer 2 primissime confessioni di scrittori interviste a se rav 4 2004 canon wc dc58a rimax usb 303 miles davis nuovi gioielli srl mercedes verona microonde a incasso whirlpool web design udine bilancia bambino find it 2 saab 900 2.0i turbo 16v 5p. s www kimianet com haggard, sir henry rider hp digitale uomo in frack stampante epson stylus photo hd scsi 36 gb hp media center hp m7191 alloggi ferrara racconti di scopate magazzino logistici hentai big tits volo per rodi wwwregione campania it dimm 256 acer italy escort lamore di una donna olio per sapone hotel bodrum fronte del palco mi sono innamorato di dio riccardo wagner salt lake city shopping foretrex 201 rio garnde do sul nokia n80 moto razr v3 www marce militari esercito it frankfurt leave get out di jojo ray ban 3220 porta firewire obispo pascal tafuri manfredo lg rz 37lz30 apple combo carlotta frena friends. stagione 6 sapphire radeon x700 agp nike shox nz black suoneria bombolo toner aculaser c1100 www missitalia it foto coppie italiane austen, jane cavaliere delle tasse alberghi di stresa www latinmail com pe launch music video com amd manchester file v7 word seks ticali dogtown and z-boys citroen saxo 1.4 acer as don t speak accessori 12 volt puebla praga rodolfo ii cervia albergo dj headphones il vento di santiago hong video in mediaplayer nicholas berg sony trinitron crt yakumo mega-image x mercedes (provincia di san luis) kit home theatre amstrad operazione overlord musica e canzoni sharp z12000 batterie ericsson bst-15 punto edu jimi hendrix. blue wild angel. live at the isle of wight club privee lombardia gps treo 650 videos hector y tito baila morena nuova citroen c2 diesel auto nuove palmari wifi hillingdon gesu zeffirelli immagini papaya fermentata la paga reprise punk macchinina mixer portatile agriturismo ortisei slr gare cavalli tutti la pattuglia servany voyeur sito frasi per battesimi l ultima tentazione di cristo giochi su auto moto una ragazza per due uneasy riders xoa litio nokia 3310 thai lady chesky david mamet video di eminem i quattro filibustieri wireless home samsung paura di me canon mvx 200 i lg 4163b dvd ram biancheria sexy indirizzi delle scuole di estetica la pulce foto hasta siempe bali polinesia picc petriano mediolanum belleville rendez vous firewire a usb2 guerra alla guerra condizionatori pompa di calore la principessa nuda bernard, michel (romanziere f... nuova mazda mx-5 auto nuove ji xian occhiali da sole john richmond caillois, roger cadasil la pantera rosa colpisce ancora moto yamaha r1 ricambi caldaie un secondo personaggio giocabile in zelda vaio bluetooth father tornio apple cuffie inquadramento ruolo agente unico agriturismo chianti microsoft - remote keyboard winxp mce ir mp3 player micro galleria vin diesel dama srl arezzo

Task
Sum of Array
You are encouraged to solve this task according to the task description, using any language you may know.

Compute the sum of the elements of an Array

4D

ARRAY INTEGER($list;0)
For ($i;1;5)
       APPEND TO ARRAY($list;$i)
End for
$var:=0
For ($i;1;Size of array($list))
   $var:=$var $list{$i}
End for

Ada

Int_Array : array(1..10) of Integer := (1,2,3,4,5,6,7,8,9,10);
Sum : Integer := 0;
for I in Int_Array'range loop
   Sum := Sum   Int_Array(I);
end loop;

AppleScript

set array to {1, 2, 3, 4, 5}
set product to 0
repeat with i in array
    -- very important -- list index starts at 1 not 0
    set product to product   i
end repeat

BASIC

 10 REM Create an array with some test data in it
 20 DIM ARRAY(5)
 30 FOR I = 1 TO 5: READ ARRAY(I): NEXT I
 40 DATA 1, 2, 3, 4, 5
 50 REM Find the sum of elements in the array
 60 SUM = 0
 70 FOR I = 1 TO 5: SUM = SUM   ARRAY(I): NEXT I
 80 PRINT "The sum is ";SUM

C

Compiler: gcc 4.0.2

int
main( int argc, char* argv[] )
{
 int list[] = { 1, 2, 3 } ;
 int sum = 0 ;
 for( int i = 0 ; i < 3 ; i   )
 {
  sum  = list[i];
 }
}


Alternate

#include <numeric>
int
main( int argc, char* argv[] )
{
 int list[] = { 1, 2, 3 } ;
 std::accumulate(list, list   3, 0);
 return 0;
}

template alternative

template <typename T> T sum (const T *array, const unsigned n)
{
    T accum = 0;
    for (unsigned i=0; i<n; i  )
        accum  = array[i];
    return accum;
}
#include <iostream>
using std::cout;
using std::endl;
int main (void)
{
    int aint[] = {1, 2, 3};
    cout << sum(aint,3) << endl;
    float aflo[] = {1.1, 2.02, 3.003, 4.0004};
    cout << sum(aflo,4) << endl;
    return 0;
}

C#

 int value = 0;
 int[] arg = { 1,2,3,4,5 };
 int arg_length = arg.Length;
 for( int i = 0; i < arg_length; i   )
    value  = arg[i];


Alternate

 int sum = 0;
 int[] arg = { 1, 2, 3, 4, 5 };
 foreach (int value in arg) sum  = value;

Clean

array = {1, 2, 3, 4, 5}
Start = sum [x \\ x <-: array]

ColdFusion

 <cfset myArray = listToArray("1,2,3,4,5")>
 #arraySum(myArray)#

Common Lisp

(defparameter *data* #(1 2 3 4 5))
(reduce #'  *data*)

Delphi

[[Category:Delphi]

Compiler: All

 var
   Ints   : array[1..5] of integer = (1,2,3,4,5) ;
   i,Sum  : integer = 0 ;
 begin
   for i := 1 to length(ints) do inc(sum,ints[i]) ;
 end;

E

pragma.enable("accumulator")
accum 0 for x in [1,2,3,4,5] { _   x }

Erlang

Using the standard libraries:

% create the list:
L = lists:seq(1, 10).
% and compute its sum:
S = lists:sum(L).

Or defining our own versions:

-module(list_sum).
-export([sum_rec/1, sum_tail/1]).
% recursive definition:
sum_rec([]) ->
    0;
sum_rec([Head|Tail]) ->
    Head   sum_rec(Tail).
% tail-recursive definition:
sum_tail(L) ->
    sum_tail(L, 0).
sum_tail([], Acc) ->
    Acc;
sum_tail([Head|Tail], Acc) ->
    sum_tail(Tail, Head   Acc).

Forth

 : sum ( addr cnt -- n )
   0 -rot
   cells bounds do i @   cell  loop ;


FreeBASIC

 dim array(4) as integer = { 1, 2, 3, 4, 5 }
 dim sum as integer = 0
 for index as integer = lbound(array) to ubound(array)
   sum  = array(index)
 next

Haskell

 let values = [1..10]
 sum values          -- the easy way
 foldl ( ) 0 values  -- the hard way

IDL

 result = total(array)

Java

 int value = 0;
 int[] arg = new int[] { 1,2,3,4,5 };
 for (int i: arg)
   value  = i;

JavaScript

var array = [1, 2, 3, 4, 5];
var sum = 0;
for(var i in array)
  sum  = array[i];

Perl

Interpeter: Perl

my $var;
my @list = (1, 2, 3);
$var  = $_ for (@list);

Alternate

Libraries: List::Util

use List::Util 'sum';
my @list = (1, 2, 3);
my $var = sum @list;

Alternate

# TMTOWTDI

my $acc = 0;
my @list = qw(1 2 3)
map { $acc  = $_ } @list

PHP

 $list = array(1,2,3,4,5,6,7,8,9);
 echo array_sum($list);

Pop11

Simple loop:

lvars i, sum = 0, ar = {1 2 3 4 5 6 7 8 9};
for i from 1 to length(ar) do
    ar(i)   sum -> sum;
endfor;

One can alternativly use second order iterator:

lvars sum = 0, ar = {1 2 3 4 5 6 7 8 9};
appdata(ar, procedure(x); x   sum -> sum; endprocedure);

Prolog

sum([],0).
sum([H|T],X) :- sum(T,Y), X is H   Y.

test

:- sum([1,2,3,4,5,6,7,8,9],X).
X =45;

Python

Interpeter: Python 2.5

 total = sum([1, 2, 3, 4, 5, 6, 7, 8, 9])

Ruby

 ary = [1,2,3,4,5]
 sum = ary.inject{|currentSum,element|currentSum element}
 # => 15

Scala

   val array = Array(1,2,3,4,5)
   val sum = array.foldLeft(0)(_   _)

This is a shortcut for

 val sum = array.foldLeft(0){(currentSum, element) => currentSum   element}

Seed7

const func integer: sumArray (in array integer: valueArray) is func
  result
    var integer: sum is 0;
  local
    var integer: value is 0;
  begin
    for value range valueArray do
      sum  := value;
    end for;
  end func;

Call this function with:

writeln(sumArray([](1, 2, 3, 4, 5)));

Standard ML

 val array = [1,2,3,4,5];
 foldl op  0 array;

Tcl

Assuming the values are in a list named listname:

 set result [expr [join $listname  ]]

Toka

[ ( array size -- sum )
  >r 0 r> [ over i swap get-element   ] iterate nip ] is sum-array

UNIX Shell

Interpreter: NetBSD 3.0's ash

From an internal variable, $IFS delimited:

 sum=0
 list="1 2 3"
 for n in $list
 do sum="$(($sum   $n))"
 done
 echo $sum

From the argument list (ARGV):

 sum=0
 for n
 do sum="$(($sum   $n))"
 done
 echo $sum

From STDIN, one integer per line:

 sum=0
 while read n
 do sum="$(($sum   $n))"
 done
 echo $sum

Interpreter: GNU bash, version 3.2.0(1)-release (i386-unknown-freebsd6.1)

From variable:

 LIST='20 20 2';
 SUM=0;
 for i in $LIST; do
   SUM=$[$SUM   $i];
 done;
 echo $SUM