Source Program Divisions

Internet Basic source programs are arranged into three functional divisions.

1. Data Division

The Data Division defines the data variables to be used in the program.

2. I/O Format Division

The I/O Format Division establishes the exact formats and device control codes for all input/output aspects of the program.

3. Procedure Division

The Procedure Division, contains the executable statements of the program, including data initialization and assignment, input and output statements, program flow control, decision making and looping, and exception handling.

So, a typical Internet Basic source program looks like this:

 ```Data Division . . I/O Format Division . . Procedure Division . . ```

Note: Even though the Data Division and I/O Format Division are shown as separate sections of a source program, they may be combined and intermixed. That is, format statements may be used in the Data Division and vice versa. The only requirement is that data elements used in format statements must be defined prior to their use. Other than that, it is sometimes more convenient to think of the Data Division and I/O Format Division as one section of the source program, rather than two.

Here's a sample program (note that this program does not contain any instructions in the I/O Format Division).

 ```! Data Division LENGTH 6.2 LOCAL Fahrenheit,Celsius LENGTH 1 LOCAL Choice\$,Answer\$ ! I/O Format Division ! Procedure Division Top: Print (CS) Print "This program converts between temperature scales." , @(0,3) Print "Enter 1 to convert from Fahrenheit to Celsius, or" , @(0,5) Print "enter 2 to convert from Celsius to Fahrenheit." , @(0,6) Choice: Print "Your choice?" , @(0,8) Input @(14,8),Choice\$ SELECT CASE Choice\$ CASE "" STOP CASE "1" Print "Enter Fahrenheit temperature:" , @(0,10) Input @(30,10),Fahrenheit Celsius = (Fahrenheit - 32) / 1.8 Print "Celsius temperature is:",@(0,12) ; Celsius,@(30,12) CASE "2" Print "Enter Celsius temperature:" , @(0,10) Input @(30,10),Celsius Fahrenheit = Celsius*1.8 + 32 Print "Fahrenheit temperature is:",@(0,12) ; Fahrenheit,@(30,12) CASE ELSE Print "Please enter 1 or 2." , @(0,10) GOTO Choice ENDSELECT Print "Would you like to perform another conversion? (Y/N)" , @(0,14) Input @(52,14),Answer\$ Answer\$ = UCASE(Answer\$) IF Answer\$ = "Y" THEN GOTO Top ELSE STOP ENDIF END ```