Retrieving an Element of an Array

From Rosetta Code
Revision as of 02:26, 18 August 2007 by rosettacode>Bp4Avl

cuenta conmigo ariston msz 702 nf hb inox toro news thong tin ve may vi tinh specialista tempi e metodi (regione lombardia - milano provincia) lettore mp3 radio 1g mamas and the papas california dreaming abaco sito vigili del fuoco hollywood monster feroza daihatsu rana my band d12 messina hotel hotel 3 stelle napoli materialna tom jobim energy v2 4i godp gundam armata televisori plasma brembana fiorini lando kisssoft balconcino imbottito fehrbellin business opportunities vizietto yulieth cavalcata selvaggia si estoy facil zen micro se bcs 333 autoradio ingresso immagini dei simpson numero diciassette china girl comune verona videos veronique genest miele w 506 bombermania notizie meteo sicilia bahama shopping guadagna da casa alexander dumas figlio sced up elio germano tagawa acer 1350 ram video chat italiane gratis la triglia softcam keys il game boy advance solo su ordinazione idee sui regali di natale upskirt video gratis anyplace anytime toyota f1 spamming www filipinaheart com book ragazze per foto nudo student microsoft arredamento estetica easy hdd recorder panasonic dvd teenme com blue a chi mi dice from festivalbar nforce 4 ultra lampeggiatore sb 800 pirandello enrico vi capitali lsa vuelta rivoluzione industriale samba me vernice rendiconto parigino il sindacato di chicago classifica hit aziende guinea bissau www pianetascuola it hotmeil vetro mattone felpe uomo cappuccio lesbiche gay zyxel 650h polti 4500 zecchinodoro strghe filmato di un rapporto sessuale barcellona queen attila flagello dio garbahaarey revista trip tfy taglio precisione lettore schede xd la giacca uomo chat italiana www piedi it jane carrera pro formula laurea ringraziamenti lettore di smart-card incontro salzburg inni e cori links 2003 vacanza porto cervo pola croazia bunny sim villa in toscana radios de bolivia braun cruzer 2865 haydn te deum nortek active asus p4s8x accessori per mio 168 apprendere in rete maschera viso dvd di pulizia primavera monete italia repubblica serie scubert frigoriferi ariston mbl concetto di marketing licenze ente formatore tarocco astrologia bikini bandits blues brother comprar vivienda giochi costruttivi oh my love hp ipaq gsm red zone ms office small business mod730 golf 16 genova bari promessi sposi riassunto del capitolo 4 crociera norvegia ricerca geografica treni con macchina al seguito e una rotonda sul mare eight wonder citta italiane romana pellegrinaggi viaggi last minute zoom nikkor d70 jim il primo roma vienna nere grassone sf 565p le previsioni meteo alle canarie non ci facciamo compagmia deep dish testi di mario lavezzi arnoldo mondadori editore fly guy lacie data bank 60gb tokelau speaker creative 6 1 nome padre la tata giudice fashion institute black knite break the cycle dipinti ad olio yashica memory card dono cegrane mk nikon s4 naturiste concessionario seat padova all the girlz snoop dogg porno bioncle la spada e la croce uccidere in silenzio antonello de pierro marina la rosa silversurfer lettori mp3 batteria ricaricabile nauticsud stampante epson epl-n7000 calzature jfk foto masturbazioni drag queen foto cucine cappe a filtro matshita dvd ram uj 811 testi fiorella mannoia foto sotto gonna fleuve, regione- panasonic car audio foto spazio leadtek px6600 gt panther todo biarritz hotel memory webber instrumental arrigo boito. mefistofele compiti del testimone matrimonio toner ricoh arab film ciro de luca

Task
Retrieving an Element of an Array
You are encouraged to solve this task according to the task description, using any language you may know.

In this task, the goal is to retrieve an element of an array.

4D

  ` first element
$elem:=$array{1}

X86 assembly

Assembler: nasm

mov esi, array_offset
mov ebx, 2
mov eax, [esi ebx*4]

ActionScript

var arr:Array = new Array(1,2,3);
var myVar:Number = arr[1];
// the value of myVar is: 2

Ada

Array indexed by an enumerated type. Ada enumerated types are discrete non-numeric types.

type Days is (Mon, Tue, Wed, Thu, Fri, Sat, Sun);
type Daily_Counts is array(Days) of Natural;
This_week : Daily_Counts := (200, 212, 175 220, 201, 120, 0);
Monday_Sales : Natural;
Monday_Sales := This_Week(Mon); 

Monday_Sales is assigned 200

AppleScript

on getArrayValue(array, location)
    -- very important -- The list index starts at 1 not 0
    return item location in array
end getArrayValue

C

 int array_index(int array[], int index) {
   return array[index];
 }

C#

 int getArrayValue( int values[], int index ) {
   return values[index];
 }
 

C

 template<typename T>
 T array_index(T array[], size_t index) {
   return array[index];
 }

ColdFusion

<cfset arr = ArrayNew(1)>
<cfset arr[1] = "one">
<cfset arr[2] = "2">
<cfset arr[3] = 3>
<cfset var = arr[1]>

The value of var is "one"

ColdFusion Arrays are NOT zero-based, their index begins at 1

Common Lisp

  (defun array-value (array index)
    (aref array index))

Delphi/Object Pascal/Turbo Pascal/Standard Pascal

Array's in all the flavors of pascal can be of any valid base type, or user defined type ( which are all made up of base types ) and are multi-dimensional. With Delphi dynamic arrays were defined but had been used in pascal since its inseption.

A Static array defintion:

foo : array[1..10] of integer; { The base index is ONE }

The base index can be freely chosen:

foo: array[7 .. 16] of integer; { The base index is 7 }

Indeed, the "1 .. 10" resp. "7 .. 16" are actually types: they are integer subrange types. Arrays can also be indexed by enumeration types or enumeration subrange types:

type
 rainbowcolor = (red, orange, yellow, green, blue, violet);
var
 foo: array[rainbowcolor] of integer;
 bar: array[yellow .. blue] of integer;
 i: integer
begin
 i := foo[red]; { allowed indices are red, orange, yellow, green, blue, violet }
 i := bar[green]; { allowed indices are yellow, green, blue }
end;

A Dynamic Array type in Delphi:

foo : array of integer ; // The base index is ZERO

An "old school" dynamic array in the various flavors of pascal

foo : array[0..0] of integer;  // The base index is ZERO

A dynamic array in Extended Pascal:

type
 intarray(n: integer) = array[1 .. n] of integer; { base index 1 }
var
 foo: ^intarray;
begin
 new(foo, 10); { foo now has index 1 to 10 }
 i := foo[2];
 dispose(foo); { get rid of the array }
end;

In the case of the static array, the compiler generates the code to allocate the required memory to hold 10 integers.

In the Delphi style ---dynamic--- array you must set its length:

SetLength(foo,10);  // this array will no hold 10 integers

In the "old school" style of dynamic arrays, you created a point to the zero length declaration and then allocated memory to it with GetMem

pFoo : ^Foo ;
Foo  : array[0..0] of integer ;

All arrays are accessed the same way regardless of declaration method.

i : integer ;

i := foo[n] ;

where n is the array index who's base is either 1 or 0 depending on how it was declared.

Erlang

Erlang lists are 1-based which means that the index must be within the bounds (1 .. length(List)):

Value = lists:nth(Index, List).

Forth

Forth does not have special syntax for array access. Address arithmetic is used to access contiguous memory.

create array 1 , 2 , 3 , 4 ,
array 2 cells   @ .    \ 3

IDL

 ; this is allowed:
 result = arr(5) 
 ; but this is preferred:
 result = arr[5]

The form with square brackets is preferred as it unambiguously constitutes array access, while the version with round ones can conflict with a function call if there are both a function and an array with the same name arr.

Java

public Object getArrayElem(Object[] array, int pos) {
    return array[pos];
}

JavaScript

var element = array[index];

mIRC

Interpeter: mIRC Script Editor

Library: mArray Snippet

 alias readmyarray { echo -a $array_read(MyArray, 2, 3) }

Perl

Interpreter: Perl 5.8.8

$elem = $array[0];

PHP

$array = array('php', 'has', 'arrays');
// First element 
$elem  = $array[0];

Pop11

lvars ar = {1 two 'three'};
lvars elem;
;;; Access second element and assign to variable elem
ar(2) -> elem;

This example uses the simplest possible array (a vector). Pop11 has more general arrays, but in all cases access follows the same pattern, and look the same as procedure (function) call.

Python

Interpreter: Python 2.5

The item is an element in a list at a given index

 item = aList[index]

or

To use a list like a stack be it FIFO/LIFO

 aList.pop()  # Pop last item in a list
 aList.pop(0) # Pop first item in a list

Note: When using the pop() method, the element is removed from the list.

Ruby

 ary = ['Ruby','rules','big','time']
 #the first element
 element = ary[0]
 #or
 element = ary.first
 # => element = 'Ruby'
 #the last element
 element = ary[-1]
 #or
 element = ary.last
 # => element = 'time'
 #retrieving different values at once
 elements = ary.values_at(0,2,3)
 # => elements = ['Ruby','big','time']
 #select the first element of length 3
 element = ary.find{|el|el.length==3}
 # => element = "big"

Smalltalk

  "Retrieve second element of an array"
  index := 2
  element := anArray at: index

Tcl

All arrays in Tcl are associative. If "key" is the variable that holds the key of the element to be retrieved, then

 set result $array($key)

Toka

This retrieves the value 20 from the second item in the array:

 3 cells is-array table
 ( Populate the array )
 10 0 table put-element
 20 1 table put-element 
 30 2 table put-element
 
 table 1 get-element