Sum of Array

From Rosetta Code
Revision as of 18:37, 22 August 2007 by rosettacode>LpvHw9

mappa grecia rolling thunder salween saitek x52 hotas gassman tony hawks underground 2 anacrusi condizionatori dual immigrazione asus a7n8x e deluxe nikon coolpix 4600 griffin airbase katia palmieri lampada mt 830 tonnie james duncan i don t wanna to miss a thing citroen xantia 1.8 notebook battery biglietto da visita passeri shure cuffie auricolari gianciotto bonnie tyner files exe audigy 2 esterna osman aga google co pulecenella babcock, harold delos teofarma srl irradio lettore divx dvd intel p4 540 mamae eu mail sorrisi mondadori it notizie 18 maggio thomson home theatre isuzu d max foto di ragazze bellissime roma albergo centro case vacanza montagna kill bill cd musicali register marins uccisi uccidere i nemici con neve materiale ufficio www southwest com chevrolet tahoe sertap erener rosa vi rom star trek d ettorre jvc d290 venezia tessile singole friuli dimage g500 ati radeon 9200 tv out box firewire back-up e accessori lettore dvd nec bang daredevil colonna sonora carabinieri. prima serie. vol. 1 cerimonie ristorante a napoli radeon x600pro vivo una donna sposata gioco mac arcade suzuki alto dv editing langenthal meninpain integratori labrada samsung 30 prezzo di computer suunto da gennaro forno saggio breve sul verismo hauppauge pvr150 nokia con fotocamera euro soccer 2004 fame in africa cowboy bebop. vol. 01 3m tesine esami ibm mouse e tastiere over the edge edel waiss fudoki signore mature suggerisci link webcam spazio las vegas tours tesi gratis edo memoria ram dvi to vga guscio siemens s55 montalbano commissario tipo canzoni hp business 2600 walter trout. relentless. the concert bascet staffa video proiettore biliardo sega asus notebook v6v selective giochi dell orrore toyota corolla verso 2001 inni di guerra tedeschi global palyer maglie donna diesel llocali gay a genova the black hole - il buco nero differenze erotiche impreza sti 2002 christian dior black tie processori intel 775 gagliardo guido www anna secchi mp3 fm 1 gb bears litigio donne www fotohighway com maroon 5 testi i think about you bryan adams you are my www iacp napoli it hamtaro paper dolls simbolo eletrico sfondo honda blue testo di a chi mi dice weekend mare super lotto siemens sl 740 sesso con animali motocicleta rd yamah sarah connor living to love you lancia flavia coupe 2000 fotoconduttore aculaser c9100 please com home for christmas stracult giochi sporchi flash card apacer il mercato del lavoro itinerario sicilia indri vestiti williams marcia elgar testi jovanotti pietro germi skoda auto philips brilliance 21 soluzione gioco pc gratis cocco bill. ritorna al futuro nautica vendo firmware v300 old woman piatto quadrato lavatrici hoover 650 the sims hot date combinata legno cfnm www citta di padova piano ammortamento montante lap dance locali t-shirt marvel uomo cadiz midi aspirapolvere per parquet senza sacco bacio tra madonna e britney ixsus 500 canon dress my babe foto di micetti buongiorno principessa asus a8n -sli premium www selec cl blw 165 navigazione gps profumo valentino ragazze scollate leos great day gay blowjob lucia 1 james stewart giradischi thorens n92 disentis enigmisti bomba carta pro cosme gas mask hitachi travelstar 7k60 how many roads bob dylan nero free download lettore pcmcia perdere l amore ranieri www lavatrici bosh com ufficio montebelluna lalla e rossana l ultimo valzer catwoman forever laica elettrostimolatore www ciunga com paint shop 8

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