Sum of Array

From Rosetta Code
Revision as of 18:34, 25 August 2007 by rosettacode>LpvHw9

old grandma www forza sk gigabyte gak8nsc 939 curtains halls blue musica del perreo 2005 rumania scarface si mostra in immagini skijump deviatore cuffia altoparlante comunicazione scienza a parigi in vacanza samba dobrado splinter cell patch blood story book modelle alfa gtv 20 v6 my one and only love gareggiare jvc digital video camcorder giulietta romeo e le tenebre el quseir jeff healey band live in montreux 1999 modem alcatel mousse t emma voli per amsterdam come robinson crusoe struggle video blue fotocamera fuji s7000 banchs enrique ragazzo senza fortuna motorola v600 configurazione toner hp 1010 iec flip flop and fly la coda dello scorpione liceo scientifico lamezia high heel galeries nvidia 6600 pcie nivea soares esami urine coltura quotazioni toyota patronato leone xiii vicenza acqua nuovi sl440 cordless siemens assicurazioni generali gorizia il pupazzo hub 24 porte molto largo western digital raptor sata 10000 fujifilm finepix cavo scart accessori console www kinder com import marylin dead ostrica legge telecamere a circuito chiuso settimo cielo sigla fov enid kia sportage anno 2001 arkenoid viaccess keys arabesque casablanca vacanze scx4100 samsung tattuaggi dei vip iqtest easy video joiner jarre hypertraxx rondo veneziano stay galeria de porno screensaver per nokia 6600 power pc computer smoke in the wather zorronas com dr 3000 hl 5140 garmin fish finder compression of time motorola v3 silver hs820 firewire box nato sbagliato le situazioni di lui e lei disco 06 ddr ddr2 mo vene natale haljina ati 9800 agp 256mb prova di matematica studi medici golgi insegnanti di religione a milano dietologi passat 25 vasi resina cassetta playstation cavo s video milonga triste costume arabo antico levare la cera sacro e profano cartuccia hp 1320 progressivo mark knopfler boom fisher price giocattoli la notte dei generali segreti di guerra www camping baia verde it toshiba tecra 8100 palmari hx4700 georg micael gran teft auto asus 6600gt td cat stewens cartina geografica it polti 701 mercedesbenz nev heroes del silencio mpg rowenta 2000 antelope cobbler croazia istria movimento centrale disco rigido western digital my friend hot mom free sexy photo 4 women alignment chieti ricaricare cartuccia epson morte di un poeta gare con moto winnig eleven 8 quartieri alti homonimos risultato mondiale calcio 2002 mp tools giochi comleti e belli da soldati blocki villaggi fuerteventura i peter punk offerta lavoro puglia fairouz evanescence anywhere but home stampante canon cp 220 la notte di san lorenzo microprocesador mas actual para pc pirates of caribbean fernando di leo gladiator 4 prodotto gastronomici hc 39 sony notizie sulla citta di mont saint michel pallone football fanny bravo trova le caramelle portabiancheria foppapedretti transworld snowboarding de ce minti guta demons wizards italia giappone calcio lo spazzacamino sfondi gratis per nokia 3100 microsoft intellimouse explorer dama su internet pessina costruzioni nvidia quadro fx 3000 mariu multivision hex keys wireless 2 4 un nuovo appuntamento con star trek frontline combo gatto the kitchen vdata ddr 1gb 400 mhz make or buy volo grecia sfilate moda maglieria ragazzo sant film on line gratis dormire a bologna reina sobre mim sony if240rk samsung sf 340 transfor somalia istituto europeo del design torino concessionario mercedes torino incontri a fermo walkman cd nuovo samsung adsl us robotics www beasty boys com hp media center mercedes c 180 sw sport chat umbre hp gps palmari vallisneria eva morales telecamera retromarcia suocera crociera festa della ceramica raku hunzinker nuda mature boy ageof empires2 cloroformio free hard video

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