Forum > Beginners

Single deminision arrays(Solved)

**JLWest**:

I don't understand. You defined the array as a Const.

Do they have to be a Const?

I'll try it.

Const Deck : Array[1..52] of Integer;

Const South : Array[1..13] of integer;

Const North : Array[1..13] of integer;

Const East : Array[1..13] of integer;

Const West : Array[1..13] of integer;

**JLWest**:

That didn't work. Got an error 'unit1.pas(334,38) Fatal: Syntax error, "=" expected' but ";" found on Const Deck : Array[1..52] of Integer; It looks like it looking for values in the array elements.

Deck : Array[1..52] of CardRecords;

South : Array[1..13] of integer;

North : Array[1..13] of integer;

East : Array[1..13] of integer;

West : Array[1..13] of integer;

The Deck array holds a record with card attributes, suit, position ect.

The North, South,East and West represent the hands at a bridge table. The integers

in the hand arrays could be an integer value of 1..52 and would be a card of the Deck.

I need to change the values in al 5 arrays while playing a hand of bridge.

Is there a way to have a static array that is 1 based as opposed to 0 based?

**wp**:

You declare a static array like any other variable and specify the index limits in the declaration; in this case you must enter the values one by one:

--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---var South: array[1..3] of Integer;begin South[1] := 10; South[2] := 32; South[3] := 41;

You can also initialize the array element immediately in the declaration by calling

--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---var South:array[1..3] of Integer = (10, 32, 41);// orconst South: array[1..3] of Integer = (10, 32, 41);Although in the second case, the array is declared as "const", it still can be changed in the default settings of FPC/Lazarus. A pecularity of the Pascal language. Read about "typed constants" in https://www.freepascal.org/docs-html/ref/refse10.html.

**jamie**:

--- Quote from: JLWest on June 18, 2022, 11:30:53 pm ---That didn't work. Got an error 'unit1.pas(334,38) Fatal: Syntax error, "=" expected' but ";" found on Const Deck : Array[1..52] of Integer; It looks like it looking for values in the array elements.

Deck : Array[1..52] of CardRecords;

South : Array[1..13] of integer;

North : Array[1..13] of integer;

East : Array[1..13] of integer;

West : Array[1..13] of integer;

The Deck array holds a record with card attributes, suit, position ect.

The North, South,East and West represent the hands at a bridge table. The integers

in the hand arrays could be an integer value of 1..52 and would be a card of the Deck.

I need to change the values in al 5 arrays while playing a hand of bridge.

Is there a way to have a static array that is 1 based as opposed to 0 based?

--- End quote ---

You answered your own question.

what you are looking for is a fixed. Dynamic arrays are 0 based. just use a fixed array somewhere.

--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---Var South :Array[1..13] of integer; ....

If you are having problems passing that to functions then create a type.

--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} --- Type TMyCompasArray = Array[1..13] of integer; // when you define it some where. Var South : TMyCompasArray;

When passing these to functions create the function to accept this type as a Reference so you make changes to it.

For example

Function AcceptMyCompasArrays(Var aCompasArray:TMyCompasArray);.....

if you stick with using this type you can pass a reference to the array of any procedure or function.

Hoped that gave you a little more insight.

**JLWest**:

Yea, That did it. Declaring as a type.

Thanks all.

Navigation

[0] Message Index

[#] Next page

[*] Previous page