Introduction to Programming
CSCE 110
Drawn from James Tams material
Computer Programs
Binary is the language of the computer
________ e.g., gpc
1) A programmer writes a computer program 2) A ___________ converts the program into a form that the computer can understand
3) An _________ program is created
4) Anybody who has this ___________ installed on their computer can run (use) it.
Translators
Convert computer programs to machine language Types
________________
Each time that the program is run the ____________ translates the program (translating a part at a time). If there are any errors during the process of __________ the program, the program will stop running right when the error is encountered.
Translators
Convert computer programs to machine language Types
___________________ ___________________
Before the program is run the _________ translates the program (compiling it all at once). If there are any errors during the ____________ process, no machine language executable will be produced. If there are no errors during _______________ then the translated machine language program can be run.
Compiling Programs: Basic View
Pascal program Pascal compiler filename.p input gpc output Machine language program
a.out
Basic Structure Of Pascal Programs
Program name.p (Pascal source code)
Part I: Header
Program documentation program name (input, output);
Part II: Declarations
const :
Part III: Statements
begin : end.
Header
Program documentation
Comments for the reader of the program (and not the computer)
(* *) Marks the ____________ of the documentation Marks the ____________ of the documentation
Program heading
Keyword: program, Name of program, if input and/or output operations performed by the program.
Example Header
(* * Tax-It v1.0: This program will * electronically calculate your tax * return. * This program will only allow you to * complete a Canadian tax return *) program taxIt (input, output);
Documentation
Heading
Declarations
List of constants More to come later during this term regarding this section
Statements
The instructions in the program that actually gets things done They tell the computer what to do as the program is running Statements are __________________________ Example statements: display a message onscreen, prompt the user for input, open a file and write information to that file etc. Much more to come later throughout the rest of the term regarding this section
The Smallest Pascal Program
program smallest; begin end.
Note: The name in the header "smallest" should match the filename "smallest.pas". You can find an copy of this program here and the compiled version is here.
Creating and Compiling Pascal in the CS Department
Text Editor
PSPad Use a text editor to create file filename.pas
Pacal Program
filename.pas (Unix file)
Pacal Compiler
gpc Machine Language Program
a.out (Unix file)
To compile the program in Unix type gpc filename.pas
To run the program in Unix type a.out
Source Code Vs. Executable Files
Source Code
A file that contains the Pascal program code. It must end with a dot-p or a dot-pas suffix (program name.p). Can be viewed and edited. Cannot be executed.
program smallest; begin : : end.
Source Code Vs. Executable Files
Executable Code
ELF^A^B^A^@^@^@ ^@^@^@^@^@^@^ @^B^@^B^@^@^@^ A^@^A^Zh^@^@^@4 ^@^B\263\370^@^@^ @^@^@4^@ ^@^E^@(^@^]^@^Z^ @^@^@^F^@^@^\ : :
A file that contains machine language (binary) code. By default this file will be called a.out. It cannot be directly viewed or edited (meaningless). It can be executed.
1. Syntax/Compile Errors
Text editor PSPad
Pascal program filename.p (Unix file)
They occur as the program is being compiled
Pascal compiler gpc
Syntax error:
____________ ____________ ___________.
2. Runtime Errors
Text editor PSPad Pascal program filename.p (Unix file)
They occur as the program is running and _____________________________.
Pascal compiler gpc Machine language program a.out (Unix file)
Executing a.out
Runtime error
(________________)
3. Logic Errors
Text editor
PSPad Pascal program filename.p (Unix file)
They occur as the program is running, ______________________________.
Pascal compiler gpc Machine language program
a.out (Unix file)
Program Executing a.out
______________ ______________ ______________
Reserved Words
Have a predefined meaning in Pascal that cannot be changed
and array begin case const div do downto else
end file for foward function goto if in label
For more information on reserved words go to the url: http://www.gnu-pascal.de/gpc/index.html
Reserved Words
Have a predefined meaning in Pascal that cannot be changed
and array begin case const div do downto else
end file for foward function goto if in label
mod nil not of or packed procedure program record
repeat set then to type until var while
For more information on reserved words go to the url: http://www.gnu-pascal.de/gpc/index.html
Standard Identifiers
Have a predefined meaning in Pascal that SHOULD NOT be changed Predefined constants
false true maxint
Predefined types
boolean char integer real text
Predefined files
input output
For more information on standard identifiers go to the url: http://www.gnu-pascal.de/gpc/index.html
Predefined Functions
abs arctan chr cos eof eoln exp ln odd ord pred round sin sqr sqrt succ trunc
Know the ones in Table 3.1 of your book.
Predefined Procedures
dispose get new pack page put read readln reset rewrite unpack write writeln
Variables
Set aside a location in memory
This location can store __________ piece of information
Used to store information (temporary)
At most the information will be accessible _________________________________
Picture from Computers in your future by Pfaffenberger B
Variable Types
integer whole numbers real whole numbers and fractions char alphabetic, numeric and miscellaneous symbols (in UNIX type man ascii) boolean a true or false value
Using Variables
Usage (__________________________!)
Declaration Accessing or assigning values to the variables
Declaring Variables
Sets aside memory Memory locations are addressed through the name of the variable
Declaring Variables
Sets aside memory Memory locations are addressed through ________ _______________
Name of variable
RAM
RESERVED
Declaring Variables
Declare variables between the begin and end.
Part I: Header
Program documentation program name (input, output);
Part II: Declarations
const :
Part III: Statements
begin
: end.
Declare variables just after the begin
Declaring Variables
Format:
var name of first variable : type of first variable; var name of second variable : type of second variable;
Example Declaring Variables
program variableExample1; begin var height : real; var weight : real; var age : integer; end.
Variable Declaration
You can find an copy of this program here and the compiled version is here.
Global Variables
Variables declared outside of the begin-end pair.
program anExample; var num1 : integer; Global variable: DONT DO IT THIS WAY begin var num2 : integer; Non-global variable (local variable): DO IT THIS WAY end.
For now avoid doing this (additional details will be provided later in the course): generally this is regarded as ______ programming style.
Variable Naming Rules
Should be _______________ Any combination of letters, numbers or underscore (________ begin with a number and _________ begin with an underscore) Can't be a reserved word (see the Reserved Words slide)
Variable Naming Conventions (2)
Avoid using _________ identifiers (see the Standard Identifiers slides) Avoid distinguishing variable names only by ________ For variable names composed of multiple words separate each word by __________ _________________________ (except for ___________) or by using ____________.
Variable Naming Conventions
Okay:
tax_rate firstName
Not Okay
(___________________) - 1abc test.msg good-day program
Not okay
(_________________) x writeln
Accessing Variables
Can be done by referring to the name of the variable Format:
name of variable
Example:
num
Assigning Values To Variables
Format:
Destination := Source;
The source can be any ________________ (_______________, ________________ or ________________________)
Example of Assigning Values
program variableExample2; begin var height : real; var weight : real; var age : integer; weight := height * 2.2; end.
NO!
You can find an copy of this program here and the compiled version is here.
Assigning Values To Variables
program variableExample2; begin var height : real; var weight : real; var age : integer; height := 69; weight := height * 2.2; end.
_____________
Important lesson: ALWAYS _____________ your variables to some default starting value before using them.
Assigning Values To Variables
program variableExample;
begin var num1 : integer; var num2 : real; num1 num2 num2 num1 end. := := := := 12; 12.5; num1; num2;
Rare Not allowed!
Avoid assigning ________ types
Reminder
Variables Must First Be Declared Before They Can Be Used!
RAM
The ________ Way
program anExample; begin var num : integer; num := 888; end. num 888
Reminder
Variables Must First Be Declared Before They Can Be Used!
RAM
The __________ Way
program anExample; begin
Compile Error:
Where is num???
num := 888;
var num : integer; end.
Named Constants
A memory location that is assigned a value that ______________________________ Declared in the constant declaration ("const") section The naming conventions for choosing variable names generally apply to constants but the name of constants should be all ____________. (You can separate multiple words with ___________________).
Named Constant Format
const NAME_OF_FIRST_CONSTANT = value of 1st const; NAME_OF_SECOND_CONSTANT = value of 2nd const; etc.
Named Constant Examples
const TAX_RATE = 0.25; SAMPLE_SIZE = 1000; YES = True; NO = False;
Declaring Named Constants
Named constants are declared in the declarations section
Part I: Header
Program documentation program name (input, output);
Part II: Declarations
const :
Declare constants here
Part III: Statements
begin : end.
Named Constants Compilable Ex.
program anExample; const TAX_RATE = 0.25; SAMPLE_SIZE = 1000; YES = True; NO = False; MY_FIRST_INITIAL = J; begin var grossIncome : real; var afterTaxes : real; grossIncome := 100000; afterTaxes := grossIncome (grossIncome * TAX_RATE); end.
Purpose Of Named Constants
Makes the program easier to understand
populationChange := (0.1758 0.1257) * currentPopulation;
Better
const Magic Numbers BIRTH_RATE = 0.1758; (_____________ _____________!) DEATH_RATE = 0.1257; begin populationChange := (BIRTH_RATE DEATH_RATE) * currentPopulation;
What do these mean???
Purpose Of Named Constants
Makes the program __________________
If the constant is referred to _______________ throughout the program, changing the value of the constant _______ will change it throughout the program.
Purpose Of Named Constants
program population (output); const BIRTH_RATE = 0.1758; DEATH_RATE = 0.1257; begin var populationChange : real; var currentPopulation : real; populationChange := (BIRTH_RATE - DEATH_RATE) * currentPopulation; if (populationChange > 0) then writeln(Births: , BIRTH_RATE, Deaths:, DEATH_RATE, Change:, populationChange) else if (populationChange < 0) then writeln(Births: , BIRTH_RATE, Deaths:, DEATH_RATE, Change:, populationChange) end.
Purpose Of Named Constants
program population (output); const BIRTH_RATE = 0.5; DEATH_RATE = 0.1257; begin var populationChange : real; var currentPopulation : real; populationChange := (BIRTH_RATE - DEATH_RATE) * currentPopulation; if (populationChange > 0) then writeln(Births: , BIRTH_RATE, Deaths:, DEATH_RATE, Change:, populationChange) else if (populationChange < 0) then writeln(Births: , BIRTH_RATE, Deaths:, DEATH_RATE, Change:, populationChange) end.
Purpose Of Named Constants
program population (output); const BIRTH_RATE = 0.1758; DEATH_RATE = 0.01; begin var populationChange : real; var currentPopulation : real; populationChange := (BIRTH_RATE - DEATH_RATE) * currentPopulation; if (populationChange > 0) then writeln(Births: , BIRTH_RATE, Deaths:, DEATH_RATE, Change:, populationChange) else if (populationChange < 0) then writeln(Births: , BIRTH_RATE, Deaths:, DEATH_RATE, Change:, populationChange) end.
Performing Calculations
Operation
Addition Subtraction Multiplication Real number division Integer division
Symbol (Operator)
+ * / DIV
Remainder (modulo)
MOD
Priority of Operators
High:
* / DIV MOD
Low:
+ unary + unary -
Program Documentation
It doesnt __________________________ It doesnt __________________________ __________________________________ It is for ____________________________
Program Documentation
What does the program do e.g., tax program. What are its capabilities e.g., it calculates personal or small business tax. What are its limitations e.g., it only follows Canadian tax laws and cannot be used in the US.
Program Documentation
What is the version of the program
If you dont use numbers for the different versions of your program then consider using dates.
How does the program work.
This is often a description in English (or another highlevel) language that describes the way in which the program fulfills its functions. The purpose of this description is to help the reader more quickly understand how the program works