Sum of Array

From Rosetta Code
Revision as of 06:14, 29 August 2007 by rosettacode>LpvHw9

la pietra filosofale il giornalaio pokeorder com bestemmie da ascoltare davide shama giochi brutto ridotti offerta viaggi messico kit vivavoce universale monsters inc paul mauriat rossignol t power braun interface 3610 folie douce nikon d70 1870mm comandante mar hendon cucina francese batteria 6100 toshiba joytech av tede jak zyc porto seguro follw me down tf dvd viaggio al centro della terra mantua bagni snc codici ricarica tim 2004 pirata il papa gioco di cani foto mp3 nikon d 55 peliculas porno de negras immagine oscar del cinema redes inalambricas fairweather prestito pinerolo i ll be there pearl harbour assistente sociale riflessivo tipi di abitazioni il ballo del tacco e punta trotta zaino wage grand hotel fleming roma finanziamenti golf plus micro hifi panasonic nvidia 6600 pci leadtek bluetoot ub1622fx pro union jack dubovnik microcar video zeljko vasic prof line deluxe guns n roses gratis luigi reverse medicina del lavoro english newspapers letra de canciones de sin bandera vendita villa kia sorento ex top gps globalsat joane laurer nikon d70s kit nital berger decapitazione telecom tech memo cordless entebbe locchio della morte enermax eg701axvh(w)sfma coolergiant midi musicas temas de filmes italiano i robot tv sony 15 lettore dvd con hard disk ragazze che sognano input rti 1200 audio fantozzi bryndis gigi d agostino datura summer colonna sonora di oc dvd p244 samsung crema pasticcera edizioni conde nast spa georgia gocce di memoria peccati damore adobe elements 2 0 ita zaino seven compatibili epson sony cyber shot f828 cartel de sansa kershaw amd athlon 64 3700 socket 939 box buell lightning kodak easyshare v550 silver tesina geografia damas de compania en morelos www wpl pl franck si natra reggiseno al silicone canon 300 usm e femmene salemme il sesso della strega talaria calcio taxus harley davidson road king gps per qtek hp all in one 9110 mini cd motri mouse cordles logitech sorin copilu de aur cu mihaela minune hyper fotos gratis pornografia infantil rusas compagna arezzo ferrovie orari condizionatori fissi inverter daikin hp photosmart r717 video asia argento fantasma dell opera ps2 volante logitech driving force sincro studio praga shopping per una manciata doro nintendo revolution news cubiertas recetas de churro selex t 300 borsetta donna accessori informatica prodotti tom jones residence palinuro incontra singole epson c13t054240 libreria ufficio arredo e complementi gary moore live at montreux 1990 zoo puzzle guardia medica turistica 2006 pocket media assistant pma400 framebuf settimo anniversario per ultima online blu eifell 65 e scabroso monster truck madness calendario carolina 2005 flexitank i basilischi last minut viaggi tv color 40 4 3 ginnastica glutei sedurre i pirati dello spazio fujifilm 550 indaco dagli lampade abbronzanti fanno male telecamere digitali panasonic summit camp com desiderio di trans la touline prestito umbria demangeon albert planetaria vanessa blandon quarant anni photos sexe gratuit vivavoce telit intimo slip galeri nicola finestre a tenuta stagna kyocera s4 batterie per foto e video ii gelataio canini maurizio il marzo di cecchi gori berchet bubble go dac video il lungo coltello di londra webcam donne pixmania com lexus bologna bt x canon power screensaver animato arte chi riunire southern literary messenger cheats zero hour titoli delle canzoni lcd multimedia corsi formazioni roma gratuiti perreo musicas sassy mac powerbook g4 17 bmw 520i piagge toto cutugno serenata bruel kjaer linksys modem adsl wireless www ungheria net hornett 600 jvc gzmc disco inferno dvd vin santo molly primavera del sesso immagini donne orientali a faccia nuda

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