Retrieving an Element of an Array

From Rosetta Code
Revision as of 07:48, 27 August 2007 by rosettacode>Bp4Avl

sexparty tv sex violent chicas sexis con musica adriana asti porno forum sesso sesso over50 sexo con negras janet jackson playboy finite element analysis evangelion hentai fotografias porno jorge correa porno passatempi gratis www immagini gay com gratis porno george sanders www porno con calendari sexy ver fotos pornos gratis adult webcam chat shaw george bernard diana ross e marvin gaye totally spies hentai porno al rojo italiano sesso video gratuiti porno eros glamour zona adulti free filmati erotici giochi da tavolo gratis adult sex com pictur sexi film gratis senza scaricare base midi ultima canzone gratis trovare donne disponibile amalia di uomini e donne sesso di gruppo veronica lake www eros sat tv emon fuckit videosporno cratis mi sex 2004 sfondi per cellulari gratis gena lee nolin fuck foto porno di adrian mutu foto gratis tette giganti foto donne collant krieger anima nuda fuck right you back bad girls sexy shop milano druuna xxx animation eros per adulti virtualgirl2 sms d amore ed erotici le donne del pianeta preistorico giochi per adulti sexy analoque foto sesso cn animali sex vibration piedi con ciabatte gratis foto ex pornostar moana pozzi concrete girl veronica private adulti porno kragujevac fuck versione italiana di emon video sesso mixxx testo in italiano della canzone fuck it ca donne in mini gonna video pornovideo porno gay italia chat gratis in veb free sex dawn lawd spiagge nudisti piemonte ragazze cam gratuita sesso gratuiti foto ragazze di colore gratis loredana lecciso figa nuda la porno villeggiante sex video di pompini gratis pornostars italiane porno zip colegialas gratis gay e lesbo le tette piu grandi masturbazioni gay gratis donne transex george winson harry potter nudo praga ragazze eros ramazoti sexy al neon bis racconti animalsex video adulti gay napoletani foto sexi black eyed peace sesso maturo bmx xxx donne porche donne e animali tette spears fsex pamela anderson pecorina transex modena registro gratis do brasfoot 2005 eros 9 bisex tutto film da scaricare gratis calendario sexy calendario de desnudos video donne nere george michael amzing giovani donne lesbo coppie animalsex vaginas super grandes sexy games carton xxx film adulti dvd professoresse gratis giochi erotici x donne samantha degrenet nuda tette al gf5 oriental girls annunci porno verona fontana delle tette famosas desnudas vedere film lesbo gratis porno xuxa transex gallery sexs free www sexyfoto com pornos calientes free russia nud girls luoghi di incontro per nudisti pornographie maroc escort a roma ragazze racconti incesto famiglia sexpi com sesso di donne con animali mejores traseros poze porno donne a reggio calabria donne vogliose della basilicata katia pedrotti nuda al mare final fantasy 8 porno vieo porno gratuiti foto sesso animale yugioh roms gratis shakira desnuda video gratis pamela anderson sexo zoofilie matura anal roberta giarusso nuda analisi delle componenti principali porno francese cratis mature fuck racconti porno sesso donne mature analogico video girlie not out bisex roma juegos pornograficos notti senza donne hentai sex galerias gays sexy vietnam cover girls - ragazze di tutti sex girls www webcamporno it pissing lesbo foto ragazze discoteche lupen sexi suicide girl girls mant to have fun www anale it coppie piacenza donne singole piacenza free nudist videos pornomotore scarica video mature gratis decodificatore dvd gratis incesto nonna nipote fotografie nudi foto racconto porno sesso sano sexo y religion lecomte, georges scaricare gioco pc gratis george gershwin sesso immagini lesbo cerco ebony girl videos couperose prodotti per il viso ragazze parma le donne hanno sempre ragione www sexy games com video sexy original sin fuck in eros ramazzoti biografia

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