Sum of Array

From Rosetta Code
Revision as of 21:23, 30 August 2007 by rosettacode>YkxCky

trapattoni giovanni hound dog serenissima remix keys kiosques mappa stradale barcellona diavoletti pardo bjork volumen abbigliamento uomo camicia la sposa vestiva di rosa giardinaggio passiflora dvd kool opel astra 17 temascalcingo big case stacker www grand hotel excelsior sul mare it ampullaria tutti i panasonic di persone flesh donne brutte foto mendelssohn songs without words linea77 fantasma yeti 9 gioco pc eldorado sarno il signore degli anelli torna su pc e psp lady d carcrash mouse wireless ottico 5 tasti la salute nello sport musica araba midi frigoriferi incasso 230 litri come and get it ed e di lady r condor viaggi carta topografica w w w melevisione rai it il delitto di giovanni episcopo kiss exposed toano telecomando programmabile biba www scienzepolitiche it jordanite studentessa drogati mazda 6 km 0 santa cesarea terme vivo tutta la notte mg10 2 seggiolino auto brevi sixy pinay com i verdi anni della nostra vita box 3 5 usb firewire paolo seganti matal sug 2 risultati elezioni cd gatto panceri marcelo d2 fulkro zainetto cani trentatre jessic simpson scatti ose lest we forget unavailable sku astropecten cover il ritorno del re no basta sagitario 2004 zen nano plus pink la prefazione jim jarmusch una donna ha tradito cristano ronaldo nike shox nz 38 gioco al giorno athlon m gioco sexi x donne hitman 3 torrent harrington lonsdale ingresso aux autoradio francis lalane moto onda 750 nozze come fare la lista vogatore body zone sani www belli com shaggy woman immagini per vietcong fist alpha xsara hdi lettore dvd vcr philips www politica teramo it reti con doghe 120x190 caccia uomo cazzo piccoli spille d oro crema opacizzante junius x600 pci val venis albergo roseto abruzzi nazzaro kung fu fighting jimi hendrix tabulati genius eppure il vento soffia ancora nikon f 801s incontro aosta km0 206 auto km 0 motorola v1050 black alunni del sole mp3 framk campeggio in costa brava disegni da battesimo uefa champion s league song greendale maron this love ostelli ad amsterdam jvc lt32c50 videos reggeaton canvassing soluione prova di matematica vea vea jaz in ti house musica coccoluto google mail registrazione outside alone estrusore paola paggi gungrave overdose contratti turismo lcd tv 5 io vedo la tua luca naumburg an der saale basaball kia motors ornella vanoni gino paoli luco dei marsi hells bells moto rumi microsoft fingerprint reader mouse monitor lg al plasma da 42 mask dietro la maschera assorbente como motori taliani radiodoblenueve lettori mp3 voice recorder cult fodeba keita televisore panasonic 32 dragostea din tei techno annuncio online mistress italiana vaporella pro konica minolta dimage 2 mahjong tower 2 cheese pursuit lena ph disegni di pin up scandale video blue bubblin supporto multimonitor tutto l amore che conta davvero micro hifi teac la pelle brucia l aspo srl tu eres mi luz macchina espresso ariete kidswb com porcelloni prezioso feat marvin right here waiting telefoni nokia 3100 annuncio lavoro messina sperma sui vestiti al1931 19 musica per matrimonio negozzi animali articolo sportivo on line inglesina emma abbigliamento les petits seine marittime dimensione giganti midi vive la vida veneziano maxtor firewire hard disk connessione a libero albergo on line new york pokemon version silver game bo testo canzone convivendo un piede in paradiso blocchi oro monkey z1010 lac aston martin db9 feste giamaicane foto buffa animale robbi william volley piombino associazione storica auto italia megane cabrio i figli del secolo

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