Creating an Array

From Rosetta Code
Revision as of 00:06, 26 August 2007 by rosettacode>XqyKre

harry potter 53 rosita celentano accessori per palm vanoni paolo ti ricordi simon paul percorsi autostradali europa sex termometer telecamera dvd happy funny fuchunjiang saggio breve esempio ollastra proxify freno diomedes perle di ghiaccio incontrare ragazze inizia il beta test pubblico di world of warcraft tagliaerba motore tour dei cantanti scheda memoria secure digital golf gt special schiller mit heppner mercedes 190 d maglieria davoli ati sapphire radeon x800 256mb pcie balli di gruppo 2004 la preparazione fisica al ciclismo how came dei d12 fax globo dj tommy stay aziente tessili lecco code arabesque olympus 300 olimpus c480 zoom vgn sony portatili www cartoons samanta degre samsung sp2014n mp3 gigione nikon enel2 digital receiver bach aria iv corda passo rapido ozoe macchine usate in sicilia fasciatoio rimini crack toca racer driver 2 no cd guernica e la gurra verbatim dvd r 8 5 gb nora roberts pc con monitor lcd 17 costi oh mami tv sony lcd 32 twenty centuri fox soundtrack wait until sexygirl renault twingo helios benny benasi satisfaction televisore 10 pollici radio www filosofia com giochi per scaricare cascos stanton cd love songs unbreak my heart t mask of zorro mp3 new day har come valparaiso incontro amico patch update www balena holiday it frigorifero a a londra intrattenimento dj casper midi files lorenzo baldoni canzoni tommy vee storia anni 60 globet tv finanziamento teramo mk 16v la donna che non voleva perdere freestile seaman software internet linux one shot 80 disco music is on down caratteri del settecento dollari athlon 64 gigabyte schede madri ievel quest s5n pentax kapucyni videoregistratore philips vr550 mobile computer carmen russo nuda impostazioni configurazione java ff7 screensaver royal gigolos the dj il navigatore gps mitac 269 hd 32 lcd tv samsung poesie sentimentale wwe giocattoli danza moderna il maresciallo rocca stagione 2 vol 3 placebo meds video porno britney spears annunci girls senza dialer gratis hotel verbania wolfenstein enemy territory akira kurosawa 2 hakim egipto blak jak femmes noires puma sport www erositalia net adolescienti lg u8360 nokia 6280 foto camera digitale fuji coniugi scambisti fertilizzanti www case vacanze it budda bar love streams scia damore imperial marce foto porno aria giovanni lidea fissa frigorifero liebherr fotos transexuales hong nhung ca si anh khoa than sf chapman x700 pro nave in bottiglia libri abiti lunghi donna www modelle de baby controllo chicco la francesita anno 1503 game pc marcia nuziale mendellsohn dvd record samsung grassottelle budda bar iv cd ripper oliastro materasso ferrino testo della canzone dragostea milano bergamo budapest biglietti aerei maroon 5 pics moto ps2 www michele it the class room modelky lara croft maisha ya parte el galgo terrible bulgari accessori estiva castellina errori dolce jeans te suelto el pelo deyssel lodewijk van manuale 3dstudiomax diciassettenne littlewood john edensor nelly fortado forca mirc download valtur 2004 canto a te maria foto leica fotocamere reflex vhs schaub lorenz toner 3522 vinicio capossela video musicale la danzatrice del messico abiti corti errt streghe fitness sport volo aereo romavenezia angel mugler crema www sapo com universita di latina tastiera per notebook finalment ps2 7004 ergonomia lavoro sicurezza e nuove compilazione successione testamentaria modellini aerei prestitempo case mare barbara contini torino cinema samsung 214t sasser siciliane lunghe navi giostra saracino whirlpool amb sesso in acqua sony tv plasma 37

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

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

In this task, the goal is to create an array. Mention if the array base begins at a number other than zero.

ActionScript

//  ActionScript arrays are zero-based
// 
//  creates an empty array
var arr1:Array = new Array();
//  creates an array with 3 numerical values
var arr2:Array = new Array(1,2,3);
// 
// or just use the shorthand
var u:Array = [];
var v:Array = [1,2,3];

Ada

Compiler: GCC 4.1.2

Ada array indices may begin at any value, not just 0 or 1

type Arr is array (Integer range <>) of Integer;
Uninitialized : Arr (1 .. 10);
Initialized_1 : Arr (1 .. 20) := (others => 1);
Initialized_2 : Arr := (1 .. 30 => 2);
Const         : constant Arr := (1 .. 10 => 1, 11 .. 20 => 2, 21 | 22 => 3);
Centered      : Arr (-50..50) := (0 => 1, Others => 0);

Ada arrays may be indexed by enumerated types, which are discrete non-numeric types

type Days is (Mon, Tue, Wed, Thu, Fri, Sat, Sun);
type Activities is (Work, Fish);
type Daily_Activities is array(Days) of Activities;
This_Week : Daily_Activities := (Mon..Fri => Work, Others => Fish);

AppleScript

AppleScript supports "arrays" as "lists," and they are not limited by a single type.

set array1 to {}
set array2 to {1, 2, 3, 4, "hello", "world"}

BASIC

Interpeter: QuickBasic 4.5, PB 7.1

REM Force index to start at 1..n
OPTION BASE 1
REM Force index to start at 0..n
OPTION BASE 0
REM Specify that the array is dynamic and not static
'$DYNAMIC
DIM SHARED myArray(-10 TO 10, 10 TO 30) AS STRING
REDIM SHARED myArray(20, 20) AS STRING
myArray(1,1) = "Item1"
myArray(1,2) = "Item2"

C

Compiler: GCC, MSVC, BCC, Watcom

Libraries: Standard Dynamic

#include <stdlib.h> /* for malloc */
#include <string.h> /* for memset */
int n = 10 * sizeof(int);
int *myArray = (int*)malloc(n);
if(myArray != NULL)
{
  memset(myArray, 0, n);
  myArray[0] = 1;
  myArray[1] = 2;
  free(myArray);
  myArray = NULL;
}

Static

 int myArray2[10] = { 1, 2, 0}; /* 3..9 := 0 */

C

Compiler: GCC, Visual C , BCC, Watcom


Using dynamically-allocated memory:

 const int n = 10;
 int* myArray = new int[n];
 if(myArray != NULL)
 {
   myArray[0] = 1;
   myArray[1] = 2;
   delete[] myArray;
   myArray = NULL;
 }

Using fixed memory:

 int myArray2[10] = { 1, 2, 0}; /* 3..9 := 0 */

Libraries: STL

 // STL
 std::vector<int> myArray3(10);
 myArray3.push_back(1);
 myArray3.push_back(2);

Libraries: Qt

 // Qt
 QVector<int> myArray4(10);
 myArray4.push_back(1);
 myArray4.push_back(2);

Libraries: Microsoft Foundation Classes

 // MFC
 CArray<int,int> myArray5(10);
 myArray5.Add(1);
 myArray5.Add(2);

C#

Example of array of 10 int types:

 int[] numbers = new int[10];

Example of array of 3 string types:

 string[] words = { "these", "are", "arrays" };

You can also declare the size of the array and initialize the values at the same time:

 int[] more_numbers = new int[3]{ 21, 14 ,63 };


For Multi-Deminsional arrays you declare them the same except for a comma in the type declaration.

The following creates a 3x2 int matrix

 int[,] number_matrix = new int[3,2];

As with the previous examples you can also initialize the values of the array, the only difference being each row in the matrix must be enclosed in its own braces.

 string[,] string_matrix = { {"I","swam"}, {"in","the"}, {"freezing","water"} };

or

 string[,] funny_matrix = new string[2,2]{ {"clowns", "are"} , {"not", "funny"} };

Clean

Array denotations are overloaded in Clean, therefore we explicitly specify the types. There are lazy, strict, and unboxed array.

Lazy array

Create a lazy array of strings using an array denotation.

array :: {String}
array = {"Hello", "World"}

Create a lazy array of floating point values by sharing a single element.

array :: {Real}
array = createArray 10 3.1415

Create a lazy array of integers using an array (and also a list) comprehension.

array :: {Int}
array = {x \\ x <- [1 .. 10]}

Strict array

Create a strict array of integers.

array :: {!Int}
array = {x \\ x <- [1 .. 10]}

Unboxed array

Create an unboxed array of characters, also known as String.

array :: {#Char}
array = {x \\ x <- ['a' .. 'z']}

ColdFusion

Creates a one-dimensional Array

<cfset arr1 = ArrayNew(1)>

Creates a two-dimensional Array in CFScript

<cfscript>
  arr2 = ArrayNew(2);
</cfscript>

ColdFusion Arrays are NOT zero-based, they begin at index 1

Common Lisp

Creates a one-dimensional array of length 10.

(make-array 10)

Creates a two-dimensional array with dimensions 10x20.

(make-array '(10 20))

make-array may be called with a number of optional arguments.

(make-array 4 :element-type 'fixnum :initial-contents '(1 2 3 4) :adjustable t)

D

Compiler: DMD,GDC

// dynamic array
int[] numbers = new int[5];

// static array
int[5] = [0,1,2,3,4];

Forth

Forth has a variety of ways to allocate arrays of data, though it has no built-in array handling words, favoring pointer manipulation.

Static array of 200 cells, uninitialized:

create MyArray 200 cells allot
here MyArray - cell / constant MyArraySize

Static array containing the numbers 1 to 5

create MyArray   1 , 2 , 3 , 4 , 5 ,
here MyArray - cell / constant MyArraySize

Dynamic array allocation:

0 value MyArray
200 cells allocate throw to MyArray

Dynamic array free:

MyArray free throw
0 to MyArray

Fortran

Default case:

      integer a(10)

this will have ten elements. Counting starts at 1. If a zero-based array is needed, declare like this:

      integer a(0:9)

this mechanism can be extended to any numerical indices, and allowed number of dimensions (and of course to other data types than integers). For example

      real*8 (25:29,12)

will be an two-dimensional, 5x12-array of 8-byte floats, where the first dimension can be addressed numerically as 25, 26, 27, 28 or 29 (and the second dimension as 1 .. 12).


IDL

IDL doesn't really distinguish between scalars and arrays - the same operations that can create the one can usually create the other as well.

 a = 3
 help,a
 A               INT       =        3
 print,a^2
      9
 a = [3,5,8,7]
 help,a
 A               INT       = Array[4]
 print,a^2
      9      25      64      49

Java

For example for an array of 10 int values:

 int[] intArray = new int[10];

Creating an array of Strings:

 String[] s = {"hello" , "World" };

JavaScript

 var myArray = new Array();
 var myArray2 = new Array("Item1","Item2");
 var myArray3 = ["Item1", "Item2"];

MAXScript

Interpreter: 3D Studio Max 8

 myArray = #()
 myArray2 = #("Item1", "Item2")

mIRC Scripting Language

Interpeter: mIRC Script Editor Libraries: mArray Snippet

alias creatmearray { .echo -a $array_create(MyArray, 5, 10) }

OCaml

Using an array literal:

 let array = [| 1; 2; 3; 4; 5 |];;

To create an array of five elements with the value 0:

 let num_items = 5 and initial_value = 0;;
 let array = Array.make num_items initial_value

To create an array with contents defined by passing each index to a callback (in this example, the array is set to the squares of the numbers 0 through 4):

 let callback index = index * index;;
 let array = Array.init 5 callback


Perl

Interpreter: Perl 5

my @empty;
my @empty_too = ();
my @populated   = ('This', 'That', 'And', 'The', 'Other');
print $populated[2];
# And

my $aref = ['This', 'That', 'And', 'The', 'Other'];
print aref->[2];
# And
# having to quote like that really sucks, and that's why we got syntactic sugar
my @wakey_wakey = qw(coffee sugar cream);

push @wakey_wakey, 'spoon';
# add spoon to right-hand side
my $cutlery = pop @wakey_wakey;
# remove spoon

unshift @wakey_wakey, 'cup';
# add cup to left-hand side
my $container = shift @wakey_wakey;
# remove cup
my @multi_dimensional = (
    [0, 1, 2, 3],
    [qw(a b c d e f g)],
    [qw(! $ %

Toka

Toka allows creation of an array using is-array. Access to the elements is done using get-element, put-element, get-char-element, and put-char-element functions. You can not initialize the values automatically using the core array functions.

 100 cells is-array foo
 100 chars is-array bar