Sum of Array

From Rosetta Code
Revision as of 18:13, 5 September 2007 by rosettacode>YkxCky

blur no distance left to run ex alcamo marilynmanson sxga dvd rw famiglie analisi dei reati in famiglia misuratore glicemia hot granny videogiochi hentai gratis microsoft multimedia keyboard uni 5076 danzel punp it up dvd kubrick eyes il gigante di boston latina sex siglo xv y xvi silm games vitt seconda prova scentifico 2004 gare dicase in classic ipaq navigatori mr driller drill spirits langite linda cerabolini cobar ntchisi midland nautico nun sa opteron 242 accessori toshiba e800 nokia batteria 970 pc ipaq hx2110 parei rosa kodak macchina fotografica digitale www glasuj zame offerte stampanti laser abreu casimiro de testi paolo meneguzzi pentium 4 skt 775 bayadere classica ei condor pasa filmato tutte le decapitazioni accordi canzoni chitarra frasi autore amore jennifer lopez videos porn una sexy giapponese de que manera te olvido franco battiato fleurs god mine assistenza e riparazione home theatre teac hard disk cooler 7200 rpm ricerche tesine maturita shox nike turbo oz crowded house lavatrici thermaltake big water se testi chicago bella ma pericolosa little city sarcelles goulburn software modello f24 giornali atrapani risultati partite calcio 15 02 04 ventole per dissipatori uno nessuno centomila jvc dvd autoradio tv lcd 16 9 26 eau de toilette puma mtb 24 the dark side of the moon zafira 22 left outside alone remix lettore memorie flash software sony ericsson altar viaggi del ventaglio catalogo bugel dalcin myth makers super kart gp la squadra stagione 1 episodio 19 avril langue massaggiatrici torino numero maglia stam mosa ocean avanue rex fi160fa bmw 320 d berlina agriturismo bollate t630 lexmark toner rete ferroviaria italiana tariffario lanci prodotti 3m la ragazza di mille mesi tognazzi e la minorenne la fossa dei serpenti igor cassina lamore che ci incatena josh hindi oswego ciber orario treni verbania milano fiat bravo gt siti porno evolution theme hard disk esterno 80 gb advanced email parser televisore daewoo kodak easyshare dx 7590 il dicembre di cecchi gori harumi nemoto fiat panda multijet km 0 emotion free fumetto manga porno il candidato testo canzone minuetto nuove immagini da project gotham racing 3 humax ricevitore digitale terrestre m fabio nesti trasloco arredamento climatizzatore quotazione bnl azione sigma 18125 canon digital video creator 150 prezzi videocamere jvc hp ipaq phone tacchinardi sexviet com terratec grabster av400 aaa nimh enea volare mezzo il labrador puo rimanere solo in casa ragazzi proibiti i due pericoli pubblici helene svedin nude sotto la minaccia idropulsore braun digital cinema sound sparkle 6600 sli ballata dell amore vero mazda b 2500 cover raf ouch mestiere principi di medicina interna harrison vogue sfilate fax crystal cerimonia infernale masterizzatori dvd plextor 16x dual gunni jimi hendrix live at woodstock dvd il mare intorno a noi franco tortora ricetta cucina hotel notre dame de fourviere operazione diabolica aereo pazzo del mondo iu ci penso gtanetwork meltdown 2 videocamere sony digitale castries film terra di confine wintvpvr 150 mce legalita quinta hotel parigi francia big circo pt cruiser 1 6 lettore bluetooth le furie del cinema fiat panda km zero fear famiglia adams spyarsenal com www jb seks com oss 117 furia a bahia dvd divx recorder hard samsung pernau decoder dtt humax 4100 film oscar disegno zodiacale fantasia disney eye toy ostaggi italiani liberati lubricants the loco motion foto camera cellulari xerox solid ink ragazzo praga quintana totti che sputa trucchi gta sant andres trucchi paradisi esotici film dvd rodi grecia renault scenic 1 6 16v ercolano scavi antichita la moglie di giorno descar videos gratis cosmi batteria percussione nickberg com abadla chandler

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