Arrays

From Rosetta Code
Revision as of 22:23, 5 August 2009 by Eriksiers (talk | contribs) (oops... forgot dynamic arrays)
Task
Arrays
You are encouraged to solve this task according to the task description, using any language you may know.

This task is about arrays. For hashes or associative arrays, please see Creating an Associative Array.

In this task, the goal is to show basic array syntax in your language. Basically, create an array, assign a value to it, and retrieve an element. (if available, show both fixed-length arrays and dynamic arrays, pushing a value into it.)

Please discusss at Village Pump: Arrays.

BASIC

Static: <lang qbasic>DIM staticArray(10) AS INTEGER

staticArray(0) = -1 staticArray(10) = 1

PRINT staticArray(0), staticArray(10) </lang>

Dynamic (Note that BASIC dynamic arrays are not stack-based; instead, their size has to be changed via REDIM. QBASIC lacks the PRESERVE keyword found in some modern BASICs; resizing an array without PRESERVE zeros it): <lang qbasic>REDIM dynamicArray(10) AS INTEGER

dynamicArray(0) = -1 PRINT dynamicArray(0)

REDIM dynamicArray(20)

dynamicArray(20) = 1 PRINT dynamicArray(0), dynamicArray(20) </lang>

C++

<lang cpp>int* myArray = new int[10];

myArray[0] = 1; myArray[1] = 3;

cout << myArray[1] << endl;</lang>

Dynamic

<lang cpp>vector<int> myArray2;

myArray2.push_back(1); myArray2.push_back(3);

myArray2[0] = 2;

cout << myArray2[0] << endl;</lang>

C#

<lang csharp>int[] array = new int[10];

array[0] = 1; array[1] = 3;

Console.WriteLine(array[0]);</lang>

Dynamic

<lang csharp>using System; using System.Collections;

ArrayList<int> array = new ArrayList<int>();

array.Add(1); array.Add(3);

array[0] = 2;

Console.WriteLine(array[0]);</lang>

Common Lisp

<lang lisp>(let ((array (make-array 10)))

 (setf (aref array 0) 1
            (aref array 1) 3)
 (print array))</lang>

Dynamic

<lang lisp>(let ((array (make-array 0 :adjustable t :fill-pointer 0)))

 (vector-push-extend 1 array)
 (vector-push-extend 3 array)
 (setf (aref array 0) 2)
 (print array))</lang>

Perl

Dynamic

<lang perl>my @arr;

push @arr, 1; push @arr, 3;

$arr[0] = 2;

print $arr[0];</lang>

Python

Dynamic

<lang python>array = []

array.append(1) array.append(3)

array[0] = 2

print array[0]</lang>

Ruby

Dynamic

<lang ruby>arr = Array.new

arr << 1 arr << 3

arr[0] = 2

puts arr[0]</lang>

Tcl

Tcl's lists are really dynamic array values behind the scenes. (Note that Tcl uses the term “array” to refer to an associative collection of variables.) <lang tcl>set ary {}

lappend ary 1 lappend ary 3

lset ary 0 2

puts [lindex $ary 0]</lang> Note also that serialization is automatic on treating as a string: <lang tcl>puts $ary; # Print the whole array</lang>