# TI-Basic Z80 Programming/Advanced Variables

The calculator can work with variables of other types in programs. Here, we show some examples of manipulating and accessing all other types of variables from a program. It is assumed you understand basic operation of the variable types.

## Complex[edit]

**Complex numbers** on the calculator use the same variables as Real numbers. So, the *A* variable can hold both `3.14`

and `3`

, but not at the same time. Essentially, you do not have to use different types of variables for real and complex numbers.
*i*+2

## Matrices[edit]

**Matrices** store data in two dimensions, much like a table. To instantiate a matrix:

:DelVar [A] :{x,y}→dim([A])

*Where x and y are the dimensions of the matrix.

To get and set a value in the matrix:

:[A](x,y) // Get a value :3.14→[A](x,y) // Storing a value

*Where x is the row and y is the column.

### Examples[edit]

#### 4x4 Multiplication Table[edit]

:DelVar [A] :{4,4},dim([A]) :For(I,1,4) :For(J,1,4) :I*J→[A](I,J) :End :End :Disp [A]

#### Hadamard Product[edit]

The Hadamard product for two matrices of equal dimension is (in this example 3x3 matrices):

This code performs the Hadamard product of Matrix A and B and stores it into Matrix C:

:DelVar [C] :If sum(dim([A])≠dim([B]))≠0 // Comparing lists :Stop :dim([A])→L1 :L1→dim([C]) :For(X,1,L1(1)) :For(Y,1,L1(2)) :[A](X,Y)*[B](X,Y)→[C](X,Y) :End :End

## Y-Vars[edit]

The **Y-Vars** are special strings that hold the expressions used in graphing. They operate just like normal strings, but are used when graphing and are parsed as expressions. Entering a string into a Y-Var will allow it to be graphed on the screen. Use the letter *X* to denote the variable, just like you would when entering an equation into the *Y=* screen.

### Examples[edit]

#### Simple Graph[edit]

:ZStandard :"3X+2"→Y1 :DispGraph

## Pics[edit]

**Pics** store a snapshot of the graph screen, including all the drawings made to the graph screen. Pics do not store the equations that make up the drawing, but rather just the pixels that are colored.

To store and recall Pics means to write and read pics, respectively:

:StorePicn:RecallPicn

Where *n* is a number from 0–9, or a Pic variable like `Pic1`.

## Graph Databases[edit]

**Graph Databases** (GBD) are used for storing the current graphing information. It includes:

- The current graphing mode (one of
`FUNC`,`PAR`,`POL`, or`SEQ`) - All graphing equations in the current mode
- Window variables excluding zoom and table settings
- Graph formatting

To store and recall GBDs:

:StoreGBDn:RecallGBDn

Where *n* is a number from 0–9, or a GBD variable like `GBD1`.