# TI-Basic Z80 Programming/Basic Variables

## What are Variables?

Variables are the meat of any programming language as they are used to store and work with data. With variables, the outcomes of programs can differ depending on the user's input or the purpose of the program. Variables in the TI calculators can store different types of data, whether it be numbers, lists of numbers, strings, mathematical functions, etc. However, each data type has its own type of variable that it can be stored in and the rules must be followed fairly strictly.

TI-BASIC is unusual among programming languages in that it does not support actual variables. Instead, all data are treated like files; there is no distinction between an ordinary number and an image, for example. TI refers to all files as "variables." Henceforth, "variable" will refer to a file usable by a program.

## Types of Basic Variables

There are many types of variables, but in this chapter, only the most common ones will be dealt with. The Advanced Variables section will deal with the more complex variable types and uses. The following sections will deal with:

• Number — numbers (e.g., 1, -0.5, 3.14, i, 3i+2)
• List — array of numbers (e.g., [1,2,3,4,5])
• String — text (e.g., "HELLO, WORLD")

## Storing and Recalling Variables

Variables can be stored and recalled at the home screen, or within a program by simply using that variables name. The method for recalling variables varies depending on the type of variable:

• To type a number, press ALPHA, then the corresponding key for that letter.
• To type a list, press 2ND:LIST(STAT), then select the desired list in the list.
• To type a string, press VARS:7, then select the desired string in the list.

To recall the value of X, enter X, then push ENTER:

```X
10
```

or to recall Str1:

```Str1
HELLO WORLD
```

or to recall L1:

```L1
{1 2 3 4}
```

### Numbers

Numbers are stored into variables labelled A through Z and θ and can be real or complex numbers (complex numbers can only be used if the calculator is not in real mode).

Number variables store both the integer and decimal part of a number. Examples of number variables are 0, 2.1, 5, 7.212, 3i, or 3.1415926. Number variables are accurate up to eight significant digits and can be in the range of -9ᴇ99 to 9ᴇ99 (that is ${\displaystyle 9*10^{99}}$). If an attempt is tried to evaluate or store a value outside of the range, the calculator returns an error.

The calculator can update X, Y, R, θ, and T during graphing, so you may want to avoid using these variables to store non-graphing data.

#### Syntax

To store a number to a number variable, the syntax is as follows:

```value→variable
```
• Where value is a literal value, a variable, or an expression
• Where variable is the variable to store value to

#### Examples

Ex: Literals

```5.32→X
```

Ex: Variable

```A→X
```

Ex: Equation

```10/2+36+89/A→X
```

*Note: In this example, if A was 89, X would be 42, not the actual equation. Only the result of an equation is stored to X (the equation is 5+36+89/89 = 42, so X is 42)

### Lists

Lists are essentially an array: they store an array of numbers. The individual numbers of a list are named elements. The maximum number of elements in a list is 999.

#### Syntax

```{value1,value2,...,valueN}→listName
```
• Where value1,value2 through valueN are number elements
• The minimum number of elements a list can contain is 0.
• Where listName is the name of a list. This can be one of two types:
• Calculator defined: L1,L2,L3,L4,L5,L6
• User defined: L (2ND:LIST(STAT):OPS:B) followed by characters denoting the name, maximum of 6 tokens, letters only
• The amount of elements in a list may not exceed 999.

To instantiate a list, the following code is used:

```:DelVar L1
:n→dim(L1)```

*Where the first line deletes L1 if it exists, and the second line instantiates L1 with a size of n.

It is important to first instantiate a list before attempting to access it so that the size is appropriate for usage. The dim command stands for dimension, and in this case, we have set 10 as the dimension (or size) of the list.

To access a single element in a list, use the format `L1(N)`, where N is the N-th element in the list. The index is 1-indexed, so to reference the first element in the list, use `L1(1)`.

#### Examples

Ex: Literals

```{15,20,30}→L1
```

Ex: Custom Named list

```{1,2,3,4,5}→LMYLIST
```

Ex: List to List

```L1→L2
```

Ex: Equations

```{15,20,30}+5→L1
```

*Note: In this example, L1 would consist of {20,25,35} because each element was increased by five then stored to L1

### Strings

Strings hold text.

#### Syntax

```string→strN
```
• Where string is the string literal, or some other form of string to store to strN and
• Where strN is one of the predefined strings for the calculator.

#### Examples

Ex: Literals

```"BOB SMITH"→Str1
```

Ex: Str to Str

```Str1→Str2
```

Ex: Concatenation/Combination

```"MY NAME IS "+Str1+" AND YOU KNOW IT!"→Str2
```

## Incompatible Types

It should be noted that variables can only contain their respective data type. For example, trying to store a number to a string object (`0→Str1`) will result in an error:

```ERR:DATA TYPE
1:Quit
2:Goto
```

When approached with this error, you have to the option to quit and return to the home screen, or go to the line in the program that contains this error.

## You try it!

Try these examples to practice using the different data types.

### Arithmetic

Use variables to store numbers, then perform simple operations on them. Make variables A and B equal to 3 and 7, respectively. Then output ${\displaystyle A/B}$, ${\displaystyle (AB)^{A}}$, and ${\displaystyle B+(A^{2+4B})}$.

### List Operation

Create a simple list using these numbers: 3,6,8. Now, using Disp, output each value to the screen, then output the average of the values of the list by accessing them from the list. Remember, to type a list, press 2ND then a number from 1-6.

### String Concatenation

Set Str1 to your first name and set Str2 to your last name. Then, using string concatenation, print your first and last names on two lines, with preceding text `FIRST:` and `LAST:`. For example, your output would appear as follows:

```FIRST: JOHN
LAST: DOE
```

Previous: Hello, World!
Next: Output