Sum of Array

From Rosetta Code
Revision as of 17:48, 10 September 2007 by rosettacode>LpvHw9

juhnke bond testi canzoni dell album guilty dei blue ragazze puttane intel pentium 4 3 0 ghz box 1mb suite n 7 handel villaggio nuraghe philips 170b5cs sofia marinova nvidia geforce 6600 gt disalberare e ti amo masini escuela montalban evangelista ispettore ambiente serra di compostaggio pentium 4 d tribunale napoli lavoro audi a3 sportback km zero midi mexicana filmer sir robert mp3 gb divx percussionisti frasi auguri matrimonio ingles subaru outback 30 ferro da stiro rowenta con caldaia dial the senza luce e colore prestito personali catania usb sd fm cuffie con radio integrata fm lancia y 2001 elezioni europei taj mahal salon de bahia galleon mix un medico in famiglia 5 inglesina emma paris (francia) di magia videoclip smackdown scarpe onitsuka hp 4p hp toner cd peter gabriel cercasi trans gran turismo 4 in musica viva la pappa col pomodoro stivali collant notebook masterizzatore dvd interno ati radeon 9600 da 256mb 256bit sito sms gratis il motomondiale turbo xt multi tap ps2 wild dance mpe e per te morellino di scansano brandl johann kierra knightly pentax obiettivo il solitario del west babol puzle la finta giardiniera mirabassi telecamera antifurto wireless crea corpi traduzione moondance ufficio delle entrate foto amatoriali di donne spogliate v9999 td 128mb modelli excel di contabilita bergamotti gps nemerix wierni memphis bells senza scampo playstation joystick soap opera confermato il ritorno di indiana jones nel 2007 delibes miguel bertolazzi carlo xevo caccia anatre cieli azzuri pupo amore s scale alluminio deca channel tv rivenditori calabria philips cordless 311 lets go straight lampada da testa decorare torta enola gay calcio a tre microsoft visual basic la donna quale animale si scopa ricette per cucinare il pavone myimmortal mid is it cos i m cod trimone champions league risultati ita siena lacie hard disk divx casting gf5 pioneer dcs 535 opel vectra 25 v6 24v 4p sport renato zero l equilibrista lebrecht danilo auto noleggio faenza powerbook apple sd wi fi silvio gigli lexus rx 400 fighette vergini nokia 5125 porno en dibujos bocelli vivo per lei finanziamento piccola impresa villaggio spagna fellowship benediro il signore traduzione i don t want you bach playstation console ps2 ohne dich rammstein racconti di sesso con i cavalli photo eminem inizio scuole canon mvx 300 scarafaggi before you acuse me scuola di liuteria keynes john neville esecuzione ostaggi ronald reagan bluetooth mini keyboard jeanette hold the line dvd film gratis pajas i vinti lavaggio auto iceberg effusion panasonic nv gs22 forem copertina cd hit mania dance 2006 actua tennis wwww sms it cuore uno zingaro mamma di un angelo webcam live pro piera una demo per airport tycoon 2 decoder usb pc tv plasma 42 phs ubanghi wwww mappy com brother 210c concerto pfm monza premi tesi billinger richard fermata per dodici ore justine una relazione privata wawes of luv midi 2 black alicebusiness it ricette di verdure navigatori car gps eos 1ds canon abbigliamento uomo energie racconti porno gay stampanti hp laserjet 2550n collane vetro hockey ice dvd 1 4gb instant video graz cose fare mobile cristallo plasma furness overlap vfa bleh matrox rtx10 yasmine bleeth nuda cecilia finotti iriver ifp squadra francese nuda harjai pontignano siena lesbianas asus a7n8xla bebe confort iseos stai con meu inglese corso giochi calcio pc garou esmeralda batteria sony t630 paco de lucia light and shade nikon mh53 marlyn manson cosmetico prodotti bellezza gran turismo 4 potrebbe ritardare anche in usa leatherman wave mp3 128mb everybodies change kings panasonic scpm21 dvd rw esterno firewire vampire the masquerade bloodlines video dell attentato in america dell 11 senza far rumore libera professione foto berry white volkswagen golf 1600 monitor lcd dvi 19 liviu vasilica misurini www movilnet com emp 30 dedicato a una stella hotel caesar nuevas normas de trafico due di raf mac speaker e cuffie procedure delle asl testo canzone aicha in italiano tram elenco rivenditori fossil toscana duplex un appartamento per tre week end a parigi athlete il portiere di notte enrico ruggeri o c soundtrack srl studio consulenza tributaria e del lavoro roma fotos di donas colombianas calendari george clooney jennifer hawkins nude kate rose codici tps sviluppa numeri superenalotto macchina per il pane delonghi desiderando giulia ubuntu e ti amo tariffa notaio frasi di ringraziamento per lutto gioco sony ericsson p800 la notte della taranta cd dvd tutto quello che un uomo puo fare jimny suzuki jonni dorelli codice magnum i cavalieri del drago giorgio vanni jeff stryker www gta vice city it

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:

2000

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