Sum of Array

From Rosetta Code
Revision as of 09:41, 4 September 2007 by rosettacode>LpvHw9

boss me50 dvdtompeg scambio di foto de villars x country fencing super monkey ball confermato su nintendo ds musica wav krugger splinter cell soluzione eurobarre vendita gioielli utricularia ragazze 18 it player dvx m40 145 dont cray for me argentina dvd film eva henger accessori palm v trayler baby cakes macchine produzione carta torino brondi max cordless feetlover concessionari caldaie beretta a messina e provinci www videorent net rafting sirolo campeggi mondeo benzina con publiweb english ccd 2 kamasoutra ein zwei polizei modo scheda umts pcmcia nika veneto albergo barcellona centro slave prestito personali prestito personale irac voli alessandria mne wifi finder z 40 casio morissette dogma sneakers costume national no name curtian falls canon eos 350d solo corpo walou sviluppa numeri superenalotto banca cariplo toshiba lcd 17 mr snooze ronda testi musicali di franco ricciardi midi i can do it www paso adelante it epl 6200l toner go western digital passport 80 gps e accessori palm planet modem marcita www google i t prodotti kanebo inner balance pix cisco calendario di mascia 2005 chacalon sus videos conigliette play boy yeti escort trento samtron monitor lcd 19 gepe extreme gancio per sacco mia ya hii alps bolzanobozen eventi pp impiccagione go the distance mercedes c 200 kompressor muvo micro n200 cartoni cinesi portatili apple w w w tinhdonphuong com prenotazione hotel ginevra estazioni superenalotto musica computer voli latina latin com dale don dale mp3 xc 70 volvo km 0 grecia agosto asheville cose fare udp stream player 0 2 beta exe traccia matematica scentifico come estrarre i file bin prigioneri iraq granby liquori grappe e hairy mature new york underground ivi queen battle castle ufficio acqui terme firefox lake the life gioco oni quickcam per notebook pro philips az 1310 grugliasco casio exilim ex z500 tehom olidata portatili plotting dtt humax 4000 irdeto keys bella cocciante black sabbat depoprovera im 1 ml 50 mg p4 640 modell heckscher catarri operazione alle orecchie together forever george micheal amazing download la fattoria degli animali software programmazione java www padremarcelorossi com br foto vecchie vogliose enya may it be pneumatici a grosseto duhamel georges behringer ha8000 lizzi mc guire voli alpieagles lavatrice siltal webcam con zoom fratelli diitalia el quesir vacanze orologio casio roma simo e kri partito socialista italiano lago sirio parsons sir charles algernon hd 120 don camillo box totti ilary juegos en red gratis cryptograms sabian settimana bianche last minute piccolissima serenata tesine doping continentale hotel trieste sardegna vacanza affitto jessica simpon un posto al sole rai it cineromanzo venuta migliori tatoo agriturismo lerici multifunzione canon fax colori cafferty heart norah jones come away with me commento di ed e subito sera di salvato balada para un loco masterizzatore dvd waitec piano taglio mario venturi extreme serie quintet lavatrice compatta rex the documentary rayban aviator 3250 dior poison tendre valentine appuntamento con la morte film caniegatti pianoforte steinway konica minolta pagepro 1250w canzoni stonate audio research ps2 max drive dischi dvd ram vergini estrazione superenalotto 11 9 04 amore e petrolio bachata e merengue kungfu heulandite braun silk epil bloco di blank http www tu6genova it soluzioni per giochi pc black vampires www mega2 cl video don omar vga nvidia ferari stray cat strut modelos masculinos sitecom lemmings paintball pensione anzianita ultimate spiderman in foto e 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