Sum of Array

From Rosetta Code
Revision as of 05:39, 2 September 2007 by rosettacode>LpvHw9

un altro colore per il game boy advance l aspo srl majestic lcd sborrate trans herpes flares viaggi budapest repuplica cd philips tavolo volume muscolare integratori km0 lancia diesel auto km 0 diario on line dragon ballz scene da un matrimonio ligerie biliardo carambola gps palmare gprs gsm solo scarpe puma micro hi-fi usb rendy trans sex movie ambro consalting dvdshrink new keys arabesque usb ide leonardo dicaprio hoover tc3866 esse music treviso una breve stagione nvidia geforce 6200 256 mb premiere 6 5 linksys amplificatore wireless casino lights 99. live at the montreux jazz festival 1999 cd dennis nikon sb600 occhiali rosa refill inchiostro giochi erotici james last end his orchestra indirizzi parrocchie x 20 www pene televisori al plasma phocus 42 testo anastacia verbatim hi speed 512 mb roger sanchez vip in perizoma moriconi konus telescopi missione eroica - pompieri 2 pyro maniac mp3 kenwood lettori bubblin blue peg - pliko p3 cluedo live red castle legends rochi pnp carolina gf concerto robbie williams oakley sweep banda calypso ao vivo policitemia chistes para bajar gratis wharfedale 9 2 diamond bane buski carrozza di barbie stanza 3 sesso www mirabilandia it la donna del traditore connessione internet flat bebe confort camelia granchi verbatim crystal super azo atlantis isdn pci amplificatori akai ezzolied pvr-a1 mustek trayler testo di mi manchi da morire videoannunci amatoriali giochino produttori bicicletta mp3 smacdown bravo climatizzatore 9000 btu vacanze sangue muf ciao amico ciao ciao ciao addiction puzzle beautiful soundtrack b2k take it to the floor calzature moda delonghi condizionatore pac verbatim cdr ferro stiro rowenta gelada mangiameli stelio webcam live pro viaggi crociere pc gamepad force vibration usb tea kingston 2gb compact flash kartell arredamento dvd-rw usb esterno canon ef 24-85mm f 3 5-4 5 usm ocz alimentatore plotter a1 colori time kid la macchina aspirapolvere vapore con filtro ad acqua la duchessa di santa lucia ragazzo carino luca comap ml370t g4 conizzazione toons porn carola end tommy nude, calde e pure live for today letterina egitto mappa infocus dlp camion da rally integratori per lo sport monitor con box gf 6200 256 mb mondiali di ciclismo penis enlargement playstation 2 fighting jam decapitazione ostaggio turco testi canzoni vasco rossi ti voglio be craigdavid magic system mohamed lamine gli eroi del deserto software windows xp lecce this is the world alcazar lettori xvid amstrad primo aggiornamento per lineage ii video usa decapitato dsc-h1 kia sorento assistenza teramo il signore degli anelli extended version troni garnet ricorso al prefetto wwww porta net gwen stefany what you waiting for doppia sim nokia 3100 tette da latte logitech 230 immagini delle sorelle olsen polti super pro steet to hell eva robin s supporto ventosa geli d mora abbigliamento donna elegante glivec www irene grandi com i prodotti di 4 e 5 gamma calcolo ici 2004 roma toshiba palmari e800 naturismo spagna impronte animali del pit pita del castrocaro terme sito astrologia lcd da 20 burundanga gucci dress scheda madre wifi gena lee nolan sex mogli russi nude www carlino it bejewlled frigorifero 160 cm levico cart mercedes classe c 220 lettorimp3 samsung cosa sono le nuvole crane, hart dildi eukanuba cani maria kerry chefs help panasonic dvd hoover h 3360 numeri per sesso vacanze in agosto bello e impossibile concessionarie abruzzo canzone midi sain seiya yet look what you have done porcellana ceramica altra arredamento garde ednita nazario the cramberris

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