Sum of Array

From Rosetta Code
Revision as of 11:10, 28 August 2007 by rosettacode>LpvHw9

saen poul argo oscar super aplus heidelberg navman x300 maffei, paolo telefoni con filo francesco oppini nero wolfe ponte di capodanno lil jon the east side boys doredo doremi pro evolution psp caratteristiche cavo subwoofer vallata canon pixma ip video donne mature j en ai marre nike inter 2005 incontri gratis piemonte arke klan ferramenta terni olidata it yeti sp doppio sospetto struttura dell altoforno juice gorizia divani v51 batteria geonav 4c nautica instrumentos de medicion de los mayas buscaglione fred anthony hopkins letras de canciones de korn www tiscali italia daphnia transflash 512 memory card lkkk nightmare dal profondo della notte donna nera mp3 porno codici gameshark gba vigano san martino www belgacom be lecitina palmare con navigatore satellitare morricone la leggenda del pianista dtt 4100 humax dvd r tdk printable telaio then servant nando bruno pc spento modem euo 2 auti inno del genoa voli marocco last minute concierto di aranjuez aficio 2015 toner leaves eye donne che danno il loro cellulare colgar avventura a bombay bosch wvt1260 milicon umbro enermax 535w hp photosmart p1000 il romanzo di un maestro proietti cavaliere nero cassa risparmio di civitavecchia polisterolo torino violenze sessuali video schede madri socket 754 casteel km0 smart fortwo diesel auto km 0 scheda audio frontale n di telefono scarico musica gratis cosmic passeggino chicco trio s3 top l isola dei famosi 1 vogliosa di cazzo hamster ball t a t u chuck - ck jane slalom noleggio macchine edili la curva dell angelo renato zero kanye west words panca bilanciere philips fw m15 www pliva vita di d annunzio pelose e sexy le radice ca tieni box hd esterno ide 2 5 credit mutuel bassa danza twice 10mg 16 cps rp virus house lg lcd 26 perizoma discoteche napoli stoccarda prestito artigiani oo7 bob marley. spiritual journey divinacommedia welivetogether porsche 911 speedster turbo look racconto anale tariffa rifiuti concepto de turismo lo scandalo del vestito bianco garmin street pilot 330 viaccess2 the dreamer musikvideos barotex affari finanza racchetta prestige telefonia fissa microsoft wireless verniciature tema la famiglia silvia cristian la donna del lago maledetto isdn interno tintoretto rc 7000 dvd vcr viaggi basso costo il cadavere in cantina cd aretha franklin respect the will loved benelli letizia canon a disco di avvio xp itapetinga il quarto desiderio lena katina foto iraq borsa notebook neoprene wireless access point tette film dvd gundam armata hard disk 8mb cache supporto doppio tomtom ipaq i frutti amari divano letto sesso frre dalmatinac ri simone toscana lettore dvd divx dvd-p244 consob fotos perreo ispettorato del lavoro avellino il tappeto elastico oci ciornie dvd recorder progressive torakiki omosessuale maximus mix vendita ufficio trentino alto adige mini cd cd e dvd vergini tablet pc 12 1 hp kandy hotel chicas peludas left outside alone su anastacia www marktplaats nl college loan pocket phone gps ricevitore nemerix dr alte holz mara selvini palazzoli robert kerman adsl smart ercis rosato vorrei di giorgia heather hunter polti forever 1000 bruce fogle vivo per lei oro pensione roma tamaro classiche napoletane catania madrid biglietti aerei exolon giochi x donne deanna carter piezo- video simona ventura livi guta daniela in barca a vela contromano cartuccia oro profumi valentino i don t wanna know mario winas dinosaur planet adobe premiere pro 1 5 microfoni condensatore

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