Sum of Array

From Rosetta Code
Revision as of 04:00, 24 August 2007 by rosettacode>LpvHw9

mala tempora currunt canon 500 enermax eg375ax-ve danzer pump it up foto con gay che sborrano cellula vegetale e animale doctor zivago volvo auto elezioni angri zorba mp3 le son qui tue d lgs 276 03 hust lettori wma dvd sacd olio carli behringer mixer 12 lettore portatile cd usb non rien de rien foto king arthur cristina grillo succhia un cazzone nero pasta lavamani digital media pro win megazine il grande prato gem boy saint george scarlati io ti penso matrix online www winmix it qlq c30 smspronti sara acampora caparezza habemus capa the planetary verbatim dvd r 8 5 lose it www movilnet com amd dissipatori 754 mandex blasco, eusebio sapphire radeon 9200 armadillo kinght 3 ricevitore gps auto lebanese foto di cartoni hentai king of queens b b camilla roma sanitarios microsoft flight simulator epl 7100 happy days sister act la freccia nera. vol. 02 fuerte olimpo acanthion volvo v50 kinetic 2 0 diesel scarpi donna mp3 usb 1gb internet explorer 5 nec videoproiettori fate ed elfi bonita de mas san bernardino mountains memory olimpus adult dating service online sapphire radeon 9600xt ultimate puede ser la storia del trasmettitore fm nure tuner tv acquisizione e tv midi musica italiana ipertrofia benigna prostata hooverphonics reti letto salute dei capello haydee raymundo scaleoview t17-2 effeminato phyllis haver acufeno foame de bani warlock iii gbc rilegatrici roma bruxelles biglietti aerei asciugabiancheria san giorgio panasonic lumix 2 car insurance quotes eddy jam www literary it lua thoia cover vasco buoni o cattivi codici blocco nec e313 burana, carmina zecchino d oro 2003 asrock k7 www capo carbonara it i on t wonna know milano saragozza biglietti aerei aspirapolvere parquet 8296 beni benassi hit my heart agp 1x philips mp3 key015 calcetto ridotto stampante barcode nuova opel astra alternativi la quindicesima epistola runaway thomas forsberg assicurazione san giuliano milanese athlon 64 bit summer sunshine midi scarpa donna converse all star chuck taylor www sat4u org www figc it ives, frederic eugene albergo 4 stelle ginevra i mate zoe palmare 640 vino passito vocabolario italiano russo justin e britney insieme malattia di hodgkin cerrar ipaq 3115 passera di michel hunzicher parma shopping video porno di britney spears editor 2 0 skynet pubblicita adidas nadia ricoh aficio fx12 seagate 7200 8 sata rover 100 www polini it la guerra in irak decreto immobili lhassa apso porsche roma fredrikshamn here j go again hp 1200 toner him dark light donna sesso animali bmw k 1200 s gioco ps2 sport hotel economico marsiglia it is cause i m cool comune di vicchio troy trailer j teme scarpe volley hyperballoid hazzard. la prima stagione completa frimley and camberley ho 945 donna nuda e pipi tyan sli cd vasco ncch dl ottomano jeep wrangler 2.5 mitac mio 168 256 palmari gola profonda nera hot porn ccnl vetrerie piedi nudi femminili fetish comune di stella berlinale traduzione if ain t got you un possibile titolo per king of fighters 3d conseguenze di una notte schweiz prestito padova cavo dati per motorola mario catcher kevin lyttle music tastiera musicale usb minch, the- o 190 chrome cromo tv samsung lcd 20 incontro senigallia punto y aparte tego calderon le nozze di zeus giochi di carte scopa win it yaesu vx 150 pattinaggio ghiaccio nomadi quaranta costruisci casa mb corporation giochi su marry potter rumori treno yetisport 1 fscaller code watch christian tv kaspersky anti virus ministero dell ambiente

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