Sum of Array

From Rosetta Code
Revision as of 22:44, 19 August 2007 by rosettacode>YkxCky

basti (distretto) kalat vacanza studio in spagna mandaryna drifting juliana paz annuncio 15889 merdo no perditempo bejewlled telecom 187 sirio la comessa sailor moon s da scaricare recavo hd 160 gb esterno hard disk e floppy giannetto giuseppe paul marshal johnson jr sistema babilonico www figclnd it la strana societa primi dettagli su crackdown per xbox 360 lcd 17 tv televisori everybody gotta principe coraggioso modelle nude rebuffo bah7 tristeza vai via abbreviatura famiglie a canazei la voce del diavolo garou esmeralda houston tapis roulant black or white kotto, basse- amstrad dvix anticipazioni sul telefilm the o c sound blaster usb canon ef 24-85mm f 3 5-4 5 usm escort spagna last minute lignano mamme porche gratis escuchar la hormiguita acer travelmate tablet pc voli croazia effetti sonori per teatro airline69 renault clio 1994 san mateo denon avr 2105 inglesina emma hotel lignano scaricare disco di ripristino i feel you operazione segreta - operazione droga panis angelicus di haendel societa di lavoro interinale kasprzycki bambole gonfiabili val belluna lbp 1120 galleria colombo vocabolario sarazza resident evil 4 oggetti the sims julian beck ricerca cuochi blenders quattro mosche di velluto grigio argento description realtek rtl8139 810x family tavoli sedia o pson e cas e 380 d g profumi pagate condizionatori 3 split keys 007c00 deux freres nissan 4x4 prolunga scart router wireless pre-n video porrno kuch bhi g4 ibook leggi liguria coronation anthem testo italiano this love maroon5 giochi shangai roma casablanca biglietti aerei dtv 1007 software 3d costi cellulari samsung polti vaporettino power potocki, jan la dieta dei fotomodelli ufficio sorrento morcheba eros clamour foto di sesso con animali esa annuncio incontro torino ego sexamerica lancome impactive ragazza di campagnia athlon hp testo degli scugnizzi zaria cowboy bebop kit vivavoce bluethoot motorola goldenarrow tarocchi carte tarocchi gratuiti rom varia super nintendo hotel flora parigi hotel milano sala riunioni lcd tv 37 pollici lignina panasonic - nv gs140 perline colorate stand by me lennon ligabue a san siro film dvd za twe oczy solo mezz ora zero assoluto le nonne la bancarella aeronautica sonata kv 448 annuncio personali piacenza retratamento la valse d amelie marz fiat panda selecta olimpiadi atene 2004 ginnastica ritmica pornoshow davila sempron 3100 64 bit emma watson naked vos veiz carmen baby - carmen 13 luca carboni bella stronza trucchi pokemon versione cristallo volvo c70 cabrio brescia roma ossezia video monitor lcd sony 17 decor gesso temporary internet files juliana rubinstein midi canzone dragostea di tei b d s m nomi per uccelli gioco simulazione see it in a boy driver 2 spleen larousse, pierre silvstedt thai airways international wwww latinchat dove sei sei caccini giulio massaggio erotici le anguille del po f g paulito home theater divx sony giustizia senza legge cuffie sennheiser px-100 ho voglia di te di federico moccia stau singur in gara desmodium test ammissione facolta giurisprudenza hotel a positano angel devil dat to 3gp converter dacqua dakar roma ce ce rogers stay monitor lcd 17 digitale poly salute donna di torino un giorno di pioggia batteria panasonic gd70 memorex 8x premi letterari video pam tommy kodak - easyshare z740 crema opacizzante in the usa testina colore e nero canon kazdy ponad kazdym my happi ending tariffa estimo racconti sadomaso bdsm video concejala merida nokia 7270 europa la tassazione delle rendite finanziarie iliona cristiano ronaldo gem wk1 contratti turismo

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