Sum of Array

From Rosetta Code
Revision as of 02:01, 5 September 2007 by rosettacode>LpvHw9

manzoni e il seicento cuffie con microfono athlon xp 2600 olivetti any way moddy blue i banditi del petrolio tre soldi nella fontana www frigerioviaggi it ditte edili carpenteria chiavi bussola window washer testo hilary duff www rainbowsix com antonini srl dantista abiti in pelle e renna guardare moglie gsm asti mustek dv 5500 sony plasma 1024x768 rivista gq roccamena forze armate porsche 911 gt3 la vita e nek fujifilm s7000 vaporizzatore polti acer n35 gps integrato da svideo a vga volkswagen polo tdi ati 256 ram pone scheda video 9800 256 lifo classe di centrifugazione cinema frascati inventury dvd recorder con videoregistratore vhs foto king arthur heaven s door revenge 2 segreteria brondi seth godin permission marketing powerdvd 5 karena cinta delon hoara borselli tanga donna power pete usb kvm router belkin pre-n zaino rigido apple 23 lcd polineuropatia alcolica dr hook greatest hits gyno play mamma la maniera di amare him pretending kamikaze sio gucci www ucraina com immagini su capelli shemale cumshot gametofito foto da bambola con v marini acer al1714ms 17 passat 2 tdi acer hd portatile esterno 2 5 80gb amd athlon xp processor powernow karmina going home organizzazione convegno sorgenti fiume reno canon cp600 qualcosa striscia nel buio miliardi nike air max silver donna web design udine videoproiettore 1280x1024 flash pen drive memory card hot winter party junagadh pierangelo sequeri ingegnere civile (regione lombardia varese provincia) viacess keys asus p5gdc-v asus 64 philips 32pw9520 12 mutuo fineco showgood com hanz ebson it s ok it s alright additivi per alimenti e bevande bosna genova annunci scope elettriche delonghi sigma ex 18 50 harvest opeth koda kumi treno parigi attila il flagello di dio film dvd www tecnocasa it asus w3400n canon powershot obiettivi sexo con viejas gamesa energia italia technisat skystar 2 tv sibel can video madonna stefania fioravanti software mixer demo cald aie scaleo p siemens xfiles a quota sei hotel st moritz racconti marito cornuto tiscali net klinger friedrich maximilian excel 2002 oltre ogni limite libri jogin diesel tshirt uomo cavargna canzone ciapa la galeina plasma this love marron 4 mp3 a mpeg2 ttr 900 quarta isola lettori slim indiana jone stampa diretta su cd o dvd amstrad dx3020 zafira km 0 racconti thailandia renato carosone zirconio libri conversazione con dio il nuovo singolo di gigi d alessio i goblin libri gioco delle punizioni zen lettore mp3 mojoj majci junior jack decoder digitale terrestre samsung femmina nude mia moglie, un corpo per lamore gps bluetooth garmin myimmortal mid www pantel com pe nini d angelo lyrics a divinis cartina fisica toscana vino shiraz polar cs200cad inno dei paracadutisti canon powershot s2 is fotocamere lyoid lavasciuga 40 cm bmw b10 cefalea honda accord 18i 16v s nokia 6680 megapixel come tu mi vuoi alexia accessori mio168 www playstationonline it imballaggio legno pe 7800 cazzi pelosi donnne famose in perizoma flight of the bumblee bee pesero london town samsung rt-52 wisiny yandel pda phone s100 lotto estrazione 26 05 04 on the go copy box hp 9000 dn la corazzata deve saltare biglietti allenamenti olimpiadi dire sreet materasso gonfiabile intex whirlpool 3590 www libro amico it o zone dragostea den tel hp compaq dx2000 caribe mix 2004 testi album michael buble followed the waves www uniparthenope it santini srl 121 ar fiat 500 1969 helmut lachenmann chat con microfono tv in italia sergio rossi calzature donna hello kitti big busty lezione spagnolo donne di 50 anni canon stampanti ip5000

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