Title: CS-361: Estructuras de Control Primera Clase
1CS-361 Estructuras de ControlPrimera Clase
- Dr. Jesús Borrego
- Lead Faculty, COS
- Regis University
2Temas
- Instructor
- Introducción y Guía del curso
- Tarea de la primera noche
- Capítulos 1-2
- Actividad 1
- Capítulo 3 (pp.117-148)
- Instalación de DevC
- Ejemplo de programas
- Tarea 1
3Instructor
- Dr. Jesús Borrego
- Educación
- PhD MIS MS CS BS CS BS EE
- Ubicado
- Colorado Springs
- Casado, 5 hijos
- Maestro desde 1989, a nivel de Asociado,
Licenciado y Maestría - En Regis U. desde 1995
4Introducción
- Prerequisitos
- CS 208
- Experiencia en programación no es necesaria
- Acceso a computadora personal
- Compilador Dev C/CodeBlocks
- Pueden usar otros a su propio riesgo
5Guía de curso
- Se obtiene de la página del curso
http//academic.regis.edu/jborrego - Trata sobre los conceptos básicos de la
organización informática. - Desarrolla una metodología precisa y lógica en la
reducción de datos complejos y sin formato en
formato algorítmico. - Presenta los conceptos y metodologías de
programación estructurada y el diseño.
6Guía de curso II
- Demuestra los usos, abusos, y las mejores
prácticas de las estructuras de control. - Usamos los conceptos del lenguaje C para
ilustrar los conceptos. - Se recomienda DevC (open source).
- Se puede usar otro compilador (no se recomienda).
7Materiales de instrucción
- Libro de texto
- Malik, D.S. (2011). C Programming From Problem
Analysis to Program Design (5a edición). Boston,
MA Course Technology/Cengage Learning ISBN-10
0-538-79808-4 ISBN-13 978-0-538-79808-2. - Compilador C
- Por la página del curso
- http//academic.regis.edu/mlotfy/CS208/Computer_fu
ndamentals_classroom.htmSupplemental - Dev C or CodeBlocks
8Sobrevista del curso
Páginas 14-15
9Método de evaluación
Participación 15 Tarea primera noche
5 Tareas en clase 30 Tareas (6
programas) 30 Exámenes (2) 20
10Estándar de código
- Será revisados
- Descripción completa en la página del curso
- Comentarios se requieren
- Indentar apropiadamente
- Espacio en blanco (espacios, líneas en blanco,
indentación) - Constantes globales en vez de valores en el
código - ApellidoNombre_PgmX.cpp
11Documentación de los programas
- Documento requerido
- Siempre en español
- Primera página en APA
- Siguientes páginas sin formato APA
- En Microsoft Word
- Descripción del problema
- Descripción del algoritmo usado
- 10 del grado del programa
- ApellidoNombre_PgmX.doc
12Acerca de sus compañeros
- Nombre
- Carrera que cursan
- Donde trabajan
- Donde viven
- Experiencia en programación
- Que esperan de el curso?
13Instalación del compilador
- Se obtiene de la página del curso
- Guarden a su ordenador
- Ejecuten la aplicación y mantenga las opciones
recomendadas - No cambien opciones a menos que sepan lo que
estan haciendo - Revisen la instalación
14Instrucciones de descarga
15Instrucciones de descarga(II)
16Configuración del compilador
17Verificación del ambiente
18Configuración de el editor
19Vocabulario Clave
- Compiler compilador
- Hard coded variable valor usado en vez de
constante - I/O stream flujo de entradas y salidas
- Linker enlazador
- Object code código objeto
- Server ordenador, servidor, estación de trabajo
- Source code código fuente
- Syntax and semantics sintaxis y semántica
- Whitespace líneas en blanco, espacio, indentar
20Tarea de la primera noche
- Leer las páginas 1 a 148 y el apéndice E páginas
1248 y 1249 del texto. - Escoja una actividad que usted hace diariamente,
como las que están escrita arriba, y escriba un
algoritmo especifico, claro y preciso para la
misma, en Español. Si es necesario, enumere los
diferentes pasos a seguir.
21Algoritmo
- una descripción precisa de un método para
resolver un problema particular con las
operaciones o acciones de un repertorio bien
entendido. Algoritmos están en todas partes.
Cuando cambiamos los neumáticos de un auto,
cortar el césped, aspirar la alfombra, o seguir
las instrucciones a un restaurante, se utiliza
algoritmo. Una persona puede resolver los
problemas por medio de algoritmos expresados en
inglés, siempre y cuando la persona entienda
inglés. Y una computadora puede resolver
problemas por medio de algoritmos expresados en
un lenguaje de programación, siempre que el
ordenador "entienda" el lenguaje. - De John Shore, The Sachertorte Algorithm, 1985
22Para que usamos algoritmos?
- Programas Algoritmos Estructuras de datos
- (Niklaus Wirth)
- Experimentaremos con algoritmos y control de
datos en esta clase - La próxima clase (CS 362) cubre estructuras de
datos - Antes de escribir un programa, necesitamos una
idea de como resolver el problema - Esto requiere un algoritmo
23Capítulo 1
24C Programming From Problem Analysis to Program
Design, Fifth Edition
- Chapter 1 An Overview of Computers and
Programming Languages
25Objectives
- In this chapter, you will
- Learn about different types of computers
- Explore the hardware and software components of a
computer system - Learn about the language of a computer
- Learn about the evolution of programming
languages - Examine high-level programming languages
26Objectives (cont'd.)
- Discover what a compiler is and what it does
- Examine a C program
- Explore how a C program is processed
- Learn what an algorithm is and explore
problem-solving techniques - Become aware of structured design and
object-oriented design programming methodologies - Become aware of Standard C and ANSI/ISO
Standard C
27Introduction
- Without software, the computer is useless
- Software developed with programming languages
- C is a programming language
- C suited for a wide variety of programming
tasks - Before programming, it is useful to understand
terminology and computer components
28A Brief Overview of the History of Computers
- Early calculation devices
- Abacus, Pascaline
- Leibniz device
- Babbage machines difference and analytic engines
- Hollerith machine
29A Brief Overview of the History of Computers
(cont'd.)
- Early computer-like machines
- Mark I
- ENIAC
- Von Neumann architecture
- UNIVAC
- Transistors and microprocessors
30A Brief Overview of the History of Computers
(cont'd.)
- Categories of computers
- Mainframe computers
- Midsize computers
- Micro computers (personal computers)
31Elements of a Computer System
- Hardware
- CPU
- Main memory
- Secondary storage
- Input/Output devices
- Software
32Hardware
- CPU
- Main memory RAM
- Input/output devices
- Secondary storage
33Central Processing Unit and Main Memory
- Central processing unit
- Brain of the computer
- Most expensive piece of hardware
- Carries out arithmetic and logical operations
34Central Processing Unit and Main Memory (cont'd.)
35Central Processing Unit and Main Memory (cont'd.)
- Random access memory
- Directly connected to the CPU
- All programs must be loaded into main memory
before they can be executed - All data must be brought into main memory before
it can be manipulated - When computer power is turned off, everything in
main memory is lost
36Secondary Storage
- Secondary storage device that stores information
permanently - Examples of secondary storage
- Hard disks
- Flash drives
- Floppy disks
- Zip disks
- CD-ROMs
- Tapes
37Input/Output Devices
- Input devices feed data and programs into
computers - Keyboard
- Mouse
- Secondary storage
- Output devices display results
- Monitor
- Printer
- Secondary storage
38Software
- Software programs that do specific tasks
- System programs take control of the computer,
such as an operating system - Application programs perform a specific task
- Word processors
- Spreadsheets
- Games
39The Language of a Computer
- Digital signals sequences of 0s and 1s
- Machine language language of a computer
- Binary digit (bit)
- The digit 0 or 1
- Binary code
- A sequence of 0s and 1s
- Byte
- A sequence of eight bits
40The Language of a Computer (contd.)
41The Language of a Computer (cont'd.)
- ASCII (American Standard Code for Information
Interchange) - 128 characters
- A is encoded as 1000001 (66th character)
- 3 is encoded as 0110011
42The Language of a Computer (cont'd.)
- EBCDIC
- Used by IBM
- 256 characters
- Unicode
- 65536 characters
- Two bytes are needed to store a character
43The Evolution of Programming Languages
- Early computers were programmed in machine
language - To calculate wages rates hours in machine
language - 100100 010001 //Load
- 100110 010010 //Multiply
- 100010 010011 //Store
44The Evolution of Programming Languages (cont'd.)
- Assembly language instructions are mnemonic
- Assembler translates a program written in
assembly language into machine language
45The Evolution of Programming Languages (cont'd.)
- Using assembly language instructions, wages
rates hours can be written as - LOAD rate
- MULT hour
- STOR wages
46The Evolution of Programming Languages (cont'd.)
- High-level languages include Basic, FORTRAN,
COBOL, Pascal, C, C, C, and Java - Compiler translates a program written in a
high-level language machine language - The equation wages rate hours can be written
in C as - wages rate hours
47Processing a C Program
- include ltiostreamgt
- using namespace std
- int main()
-
- cout ltlt "My first C program." ltlt endl
- return 0
-
- Sample Run
- My first C program.
48Processing a C Program (cont'd.)
- To execute a C program
- Use an editor to create a source program in C
- Preprocessor directives begin with and are
processed by a the preprocessor - Use the compiler to
- Check that the program obeys the rules
- Translate into machine language (object program)
49Processing a C Program (cont'd.)
- To execute a C program (cont'd.)
- Linker
- Combines object program with other programs
provided by the SDK to create executable code - Loader
- Loads executable program into main memory
- The last step is to execute the program
50Processing a C Program (cont'd.)
51Programming with the Problem AnalysisCodingExecu
tion Cycle
- Programming is a process of problem solving
- One problem-solving technique
- Analyze the problem
- Outline the problem requirements
- Design steps (algorithm) to solve the problem
- Algorithm
- Step-by-step problem-solving process
- Solution achieved in finite amount of time
52The Problem AnalysisCodingExecution Cycle
(contd.)
- Step 1 Analyze the problem
- Outline the problem and its requirements
- Design steps (algorithm) to solve the problem
- Step 2 Implement the algorithm
- Implement the algorithm in code
- Verify that the algorithm works
- Step 3 Maintenance
- Use and modify the program if the problem domain
changes
53The Problem AnalysisCodingExecution Cycle
(contd.)
54The Problem AnalysisCodingExecution Cycle
(cont'd.)
- Thoroughly understand the problem
- Understand problem requirements
- Does program require user interaction?
- Does program manipulate data?
- What is the output?
- If the problem is complex, divide it into
subproblems - Analyze each subproblem as above
55The Problem AnalysisCodingExecution Cycle
(cont'd.)
- If problem was broken into subproblems
- Design algorithms for each subproblem
- Check the correctness of algorithm
- Can test using sample data
- Some mathematical analysis might be required
56The Problem AnalysisCodingExecution Cycle
(cont'd.)
- Once the algorithm is designed and correctness
verified - Write the equivalent code in high-level language
- Enter the program using text editor
57The Problem AnalysisCodingExecution Cycle
(cont'd.)
- Run code through compiler
- If compiler generates errors
- Look at code and remove errors
- Run code again through compiler
- If there are no syntax errors
- Compiler generates equivalent machine code
- Linker links machine code with system resources
58The Problem AnalysisCodingExecution Cycle
(cont'd.)
- Once compiled and linked, loader can place
program into main memory for execution - The final step is to execute the program
- Compiler guarantees that the program follows the
rules of the language - Does not guarantee that the program will run
correctly
59Example 1-1
- Design an algorithm to find the perimeter and
area of a rectangle - The perimeter and area of the rectangle are given
by the following formulas - perimeter 2 (length width)
- area length width
60Example 1-1 (cont'd.)
- Algorithm
- Get length of the rectangle
- Get width of the rectangle
- Find the perimeter using the following equation
- perimeter 2 (length width)
- Find the area using the following equation
- area length width
61Example 1-3
- Every salesperson has a base salary
- Salesperson receives 10 bonus at the end of the
month for each year worked if he or she has been
with the store for five or less years - The bonus is 20 for each year that he or she has
worked there if over 5 years
62Example 1-3 (cont'd.)
- Additional bonuses are as follows
- If total sales for the month are 5,000-10,000,
he or she receives a 3 commission on the sale - If total sales for the month are at least
10,000, he or she receives a 6 commission on
the sale
63Example 1-3 (cont'd.)
- Get baseSalary
- Get noOfServiceYears
- Calculate bonus using the following formula
- if (noOfServiceYears is less than or equal to
five) - bonus 10 noOfServiceYears
- otherwise
- bonus 20 noOfServiceYears
- Get totalSales
64Example 1-3 (cont'd.)
- Calculate additionalBonus as follows
- if (totalSale is less than 5000)
- additionalBonus 0
- otherwise
- if (totalSale is greater than or equal to
- 5000 and totalSale is less than 10000)
- additionalBonus totalSale (0.03)
- otherwise
- additionalBonus totalSale (0.06)
65Example 1-3 (cont'd.)
- Calculate payCheck using the equation
- payCheck baseSalary bonus
- additionalBonus
66Example 1-5
- 10 students in a class
- Each student has taken five tests and each test
is worth 100 points - Design an algorithm to calculate the grade for
each student as well as the class average - Design an algorithm to find the average test
score - Design an algorithm to determine the grade
- Data consists of students names and their test
scores
67Example 1-5 (cont'd.)
- Algorithm to determine the average test score
- Get the five test scores
- Add the five test scores
- Suppose sum stands for the sum of the test scores
- Suppose average stands for the average test
score - average sum / 5
68Example 1-5 (cont'd.)
- Algorithm to determine the grade
-
- if average is greater than or equal to 90
- grade A
- otherwise
- if average is greater than or equal to 80 and
less than 90 - grade B
- otherwise
- if average is greater than or equal to 70 and
less than 80 - grade C
- otherwise
- if average is greater than or equal to 60 and
less than 70 - grade D
- otherwise
- grade F
69Example 1-5 (cont'd.)
- Main algorithm is as follows
- totalAverage 0
- Repeat the following for each student
- Get students name
- Use the algorithm to find the average test score
- Use the algorithm to find the grade
- Update totalAverage by adding current students
average test score - Determine the class average as follows
- classAverage totalAverage / 10
70Programming Methodologies
- Two popular approaches to programming design
- Structured
- Object-oriented
71Structured Programming
- Structured design
- Dividing a problem into smaller subproblems
- Structured programming
- Implementing a structured design
- The structured design approach is also called
- Top-down (or bottom-up) design
- Stepwise refinement
- Modular programming
72Object-Oriented Programming
- Identify components called objects
- Specify relevant data and possible operations to
be performed on that data - Each object consists of data and operations on
that data - An object combines data and operations on the
data into a single unit
73Object-Oriented Programming (cont'd.)
- A programming language that implements OOD is
called an object-oriented programming (OOP)
language - Learn how to represent data in computer memory,
how to manipulate data, and how to implement
operations - Write algorithms and implement them in a
programming language
74Object-Oriented Programming (cont'd.)
- Learn how to combine data and operations on the
data into a single unit called an object - C was designed to implement OOD
- OOD is used with structured design
75ANSI/ISO Standard C
- C evolved from C
- C designed by Bjarne Stroustrup at Bell
Laboratories in early 1980s - C programs were not always portable from one
compiler to another - In mid-1998, ANSI/ISO C language standards were
approved
76Summary
- Computer electronic device that can perform
arithmetic and logical operations - Computer system has hardware and software
- Central processing unit (CPU) brain
- Primary storage (MM) is volatile secondary
storage (e.g., disk) is permanent - Operating system monitors the overall activity of
the computer and provides services
77Summary (cont'd.)
- Various kinds of languages, such as machine
language, assembly, high-level - Algorithm step-by-step problem-solving process
solution in finite amount of time - Problem-solving process has three steps
- Analyze problem and design an algorithm
- Implement the algorithm in code
- Maintain the program
78Summary (cont'd.)
- Structured design
- Problem is divided into smaller subproblems
- Each subproblem is solved
- Combine solutions to all subproblems
- Object-oriented design (OOD) a program is a
collection of interacting objects - Object data and operations on those data
79Capítulo 2
80C Programming From Problem Analysis to Program
Design, Fifth Edition
- Chapter 2 Basic Elements of C
81Objectives
- In this chapter, you will
- Become familiar with the basic components of a
C program, including functions, special
symbols, and identifiers - Explore simple data types
- Discover how to use arithmetic operators
- Examine how a program evaluates arithmetic
expressions
82Objectives (cont'd.)
- Learn what an assignment statement is and what it
does - Become familiar with the string data type
- Discover how to input data into memory using
input statements - Become familiar with the use of increment and
decrement operators - Examine ways to output results using output
statements
83Objectives (cont'd.)
- Learn how to use preprocessor directives and why
they are necessary - Learn how to debug syntax errors
- Explore how to properly structure a program,
including using comments to document a program - Learn how to write a C program
84Introduction
- Computer program
- Sequence of statements whose objective is to
accomplish a task - Programming
- Process of planning and creating a program
85A C Program
- include ltiostreamgt
- using namespace std
- int main()
-
- int num
- num 6
- cout ltlt "My first C program." ltlt endl
- cout ltlt "The sum of 2 and 3 " ltlt 5 ltlt endl
- cout ltlt "7 8 " ltlt 7 8 ltlt endl
- cout ltlt "Num " ltlt num ltlt endl
- return 0
86The Basics of a C Program
- Function collection of statements when
executed, accomplishes something - May be predefined or standard
- Syntax rules that specify which statements
(instructions) are legal - Programming language a set of rules, symbols,
and special words - Semantic rule meaning of the instruction
87Comments
- Comments are for the reader, not the compiler
- Two types
- Single line
- // This is a C program. It prints the sentence
- // Welcome to C Programming.
- Multiple line
- /
- You can include comments that can
- occupy several lines.
- /
88Special Symbols
? , lt ! gt
89Reserved Words (Keywords)
- Reserved words, keywords, or word symbols
- Include
- int
- float
- double
- char
- const
- void
- return
90Identifiers
- Consist of letters, digits, and the underscore
character (_) - Must begin with a letter or underscore
- C is case sensitive
- NUMBER is not the same as number
- Two predefined identifiers are cout and cin
- Unlike reserved words, predefined identifiers may
be redefined, but it is not a good idea
91Identifiers (cont'd.)
- Legal identifiers in C
- first
- conversion
- payRate
92Whitespaces
- Every C program contains whitespaces
- Include blanks, tabs, and newline characters
- Used to separate special symbols, reserved words,
and identifiers - Proper utilization of whitespaces is important
- Can be used to make the program readable
93Data Types
- Data type set of values together with a set of
operations - C data types fall into three categories
94Simple Data Types
- Three categories of simple data
- Integral integers (numbers without a decimal)
- Floating-point decimal numbers
- Enumeration type user-defined data type
95Simple Data Types (cont'd.)
- Integral data types are further classified into
nine categories - char, short, int, long, bool
- unsigned char, unsigned short, unsigned int,
unsigned long
96Simple Data Types (cont'd.)
- Different compilers may allow different ranges of
values
97int Data Type
- Examples
- -6728
- 0
- 78
- 763
- Positive integers do not need a sign
- No commas are used within an integer
- Commas are used for separating items in a list
98bool Data Type
- bool type
- Two values true and false
- Manipulate logical (Boolean) expressions
- true and false
- Logical values
- bool, true, and false
- Reserved words
99char Data Type
- The smallest integral data type
- Used for characters letters, digits, and special
symbols - Each character is enclosed in single quotes
- 'A', 'a', '0', '', '', '', ''
- A blank space is a character
- Written ' ', with a space left between the single
quotes
100Floating-Point Data Types
- C uses scientific notation to represent real
numbers (floating-point notation)
101Floating-Point Data Types (cont'd.)
- float represents any real number
- Range -3.4E38 to 3.4E38 (four bytes)
- double represents any real number
- Range -1.7E308 to 1.7E308 (eight bytes)
102Floating-Point Data Types (cont'd.)
- Maximum number of significant digits (decimal
places) for float values is 6 or 7 - Maximum number of significant digits for double
is 15 - Precision maximum number of significant digits
- Float values are called single precision
- Double values are called double precision
103Arithmetic Operators and Operator Precedence
- C arithmetic operators
- addition
- - subtraction
- multiplication
- / division
- modulus operator
- , -, , and / can be used with integral and
floating-point data types - Operators can be unary or binary
104Order of Precedence
- All operations inside of () are evaluated first
- , /, and are at the same level of precedence
and are evaluated next - and have the same level of precedence and are
evaluated last - When operators are on the same level
- Performed from left to right (associativity)
- 3 7 - 6 2 5 / 4 6 means
- (((3 7) 6) ((2 5) / 4 )) 6
105Expressions
- If all operands are integers
- Expression is called an integral expression
- Yields an integral result
- Example 2 3 5
- If all operands are floating-point
- Expression is called a floating-point expression
- Yields a floating-point result
- Example 12.8 17.5 - 34.50
106Mixed Expressions
- Mixed expression
- Has operands of different data types
- Contains integers and floating-point
- Examples of mixed expressions
- 2 3.5
- 6 / 4 3.9
- 5.4 2 13.6 18 / 2
107Mixed Expressions (cont'd.)
- Evaluation rules
- If operator has same types of operands
- Evaluated according to the type of the operands
- If operator has both types of operands
- Integer is changed to floating-point
- Operator is evaluated
- Result is floating-point
- Entire expression is evaluated according to
precedence rules
108Type Conversion (Casting)
- Implicit type coercion when value of one type is
automatically changed to another type - Cast operator provides explicit type conversion
- static_castltdataTypeNamegt(expression)
109Type Conversion (cont'd.)
110string Type
- Programmer-defined type supplied in ANSI/ISO
Standard C library - Sequence of zero or more characters
- Enclosed in double quotation marks
- Null a string with no characters
- Each character has relative position in string
- Position of first character is 0
- Length of a string is number of characters in it
- Example length of "William Jacob" is 13
111Input
- Data must be loaded into main memory before it
can be manipulated - Storing data in memory is a two-step process
- Instruct computer to allocate memory
- Include statements to put data into memory
112Allocating Memory with Constants and Variables
- Named constant memory location whose content
cant change during execution - The syntax to declare a named constant is
- In C, const is a reserved word
113Allocating Memory with Constants and Variables
(cont'd.)
- Variable memory location whose content may
change during execution - The syntax to declare a named constant is
114Putting Data into Variables
- Ways to place data into a variable
- Use Cs assignment statement
- Use input (read) statements
115Assignment Statement
- The assignment statement takes the form
- Expression is evaluated and its value is assigned
to the variable on the left side - In C, is called the assignment operator
116Assignment Statement (cont'd.)
117Saving and Using the Value of an Expression
- To save the value of an expression
- Declare a variable of the appropriate data type
- Assign the value of the expression to the
variable that was declared - Use the assignment statement
- Wherever the value of the expression is needed,
use the variable holding the value
118Declaring Initializing Variables
- Variables can be initialized when declared
- int first13, second10
- char ch' '
- double x12.6
- All variables must be initialized before they are
used - But not necessarily during declaration
119Input (Read) Statement
- cin is used with gtgt to gather input
- The stream extraction operator is gtgt
- For example, if miles is a double variable
- cin gtgt miles
- Causes computer to get a value of type double
- Places it in the variable miles
120Input (Read) Statement (cont'd.)
- Using more than one variable in cin allows more
than one value to be read at a time - For example, if feet and inches are variables of
type int, a statement such as - cin gtgt feet gtgt inches
- Inputs two integers from the keyboard
- Places them in variables feet and inches
respectively
121Input (Read) Statement (cont'd.)
122Variable Initialization
- There are two ways to initialize a variable
- int feet
- By using the assignment statement
- feet 35
- By using a read statement
- cin gtgt feet
123Increment and Decrement Operators
- Increment operator increment variable by 1
- Pre-increment variable
- Post-increment variable
- Decrement operator decrement variable by 1
- Pre-decrement --variable
- Post-decrement variable
- What is the difference between the following?
x 5 y x
x 5 y x
124Output
- The syntax of cout and ltlt is
- Called an output statement
- The stream insertion operator is ltlt
- Expression evaluated and its value is printed at
the current cursor position on the screen
125Output (cont'd.)
- A manipulator is used to format the output
- Example endl causes insertion point to move to
beginning of next line
126Output (cont'd.)
- The new line character is '\n'
- May appear anywhere in the string
-
- cout ltlt "Hello there."
- cout ltlt "My name is James."
- Output
- Hello there.My name is James.
- cout ltlt "Hello there.\n"
- cout ltlt "My name is James."
- Output
- Hello there.
- My name is James.
127Output (cont'd.)
128Preprocessor Directives
- C has a small number of operations
- Many functions and symbols needed to run a C
program are provided as collection of libraries - Every library has a name and is referred to by a
header file - Preprocessor directives are commands supplied to
the preprocessor - All preprocessor commands begin with
- No semicolon at the end of these commands
129Preprocessor Directives (cont'd.)
- Syntax to include a header file
- For example
- include ltiostreamgt
- Causes the preprocessor to include the header
file iostream in the program
130namespace and Using cin and cout in a Program
- cin and cout are declared in the header file
iostream, but within std namespace - To use cin and cout in a program, use the
following two statements - include ltiostreamgt
- using namespace std
131Using the string Data Type in a Program
- To use the string type, you need to access its
definition from the header file string - Include the following preprocessor directive
- include ltstringgt
132Creating a C Program
- C program has two parts
- Preprocessor directives
- The program
- Preprocessor directives and program statements
constitute C source code (.cpp) - Compiler generates object code (.obj)
- Executable code is produced and saved in a file
with the file extension .exe
133Creating a C Program (cont'd.)
- A C program is a collection of functions, one
of which is the function main - The first line of the function main is called the
heading of the function - int main()
- The statements enclosed between the curly braces
( and ) form the body of the function - Contains two types of statements
- Declaration statements
- Executable statements
134Creating a C Program (cont'd.)
135Creating a C Program (cont'd.)
- Sample Run
- Line 9 firstNum 18
- Line 10 Enter an integer 15
- Line 13 secondNum 15
- Line 15 The new value of firstNum 60
136Debugging Understanding and Fixing Syntax Errors
- Compile a program
- Compiler will identify the syntax error
- Specifies the line numbers where the errors occur
- Example2_Syntax_Errors.cpp
- c\chapter 2 source code\example2_syntax_errors.cp
p(9) error C2146 syntax error - missing '' before identifier 'num'
- c\chapter 2 source code\example2_syntax_errors.cp
p(11) error C2065 'tempNum' - undeclared identifier
- Learn how to spot and fix syntax errors
137Program Style and Form
- Every C program has a function main
- Programs must also follow syntax rules
- Other rules serve the purpose of giving precise
meaning to the language
138Syntax
- Errors in syntax are found in compilation
- int x //Line 1
- int y //Line 2 error
- double z //Line 3
- y w x //Line 4 error
139Use of Blanks
- In C, you use one or more blanks to separate
numbers when data is input - Used to separate reserved words and identifiers
from each other and from other symbols - Must never appear within a reserved word or
identifier
140Use of Semicolons, Brackets, and Commas
- All C statements end with a semicolon
- Also called a statement terminator
- and are not C statements
- Commas separate items in a list
141Semantics
- Possible to remove all syntax errors in a program
and still not have it run - Even if it runs, it may still not do what you
meant it to do - For example,
- 2 3 5 and (2 3) 5
- are both syntactically correct expressions, but
have different meanings
142Naming Identifiers
- Identifiers can be self-documenting
- CENTIMETERS_PER_INCH
- Avoid run-together words
- annualsale
- Solution
- Capitalize the beginning of each new word
annualSale - Inserting an underscore just before a new word
annual_sale
143Prompt Lines
- Prompt lines executable statements that inform
the user what to do - cout ltlt "Please enter a number between 1 and 10
and " - ltlt "press the return key" ltlt endl
- cin gtgt num
144Documentation
- A well-documented program is easier to understand
and modify - You use comments to document programs
- Comments should appear in a program to
- Explain the purpose of the program
- Identify who wrote it
- Explain the purpose of particular statements
145Form and Style
- Consider two ways of declaring variables
- Method 1
- int feet, inch
- double x, y
- Method 2
- int feet,inchdouble x,y
- Both are correct however, the second is hard to
read
146More on Assignment Statements
- C has special assignment statements called
compound assignments - , -, , /, and
- Example
- x y
147Programming Example Convert
Length
- Write a program that takes as input a given
length expressed in feet and inches - Convert and output the length in centimeters
- Input length in feet and inches
- Output equivalent length in centimeters
- Lengths are given in feet and inches
- Program computes the equivalent length in
centimeters - One inch is equal to 2.54 centimeters
148Programming Example Convert Length (cont'd.)
- Convert the length in feet and inches to all
inches - Multiply the number of feet by 12
- Add given inches
- Use the conversion formula (1 inch 2.54
centimeters) to find the equivalent length in
centimeters
149Programming Example Convert Length (cont'd.)
- The algorithm is as follows
- Get the length in feet and inches
- Convert the length into total inches
- Convert total inches into centimeters
- Output centimeters
150Programming Example Variables and Constants
- Variables
- int feet //variable to hold given feet
- int inches //variable to hold given inches
- int totalInches //variable to hold total inches
- double centimeters //variable to hold length in
- //centimeters
- Named Constant
- const double CENTIMETERS_PER_INCH 2.54
- const int INCHES_PER_FOOT 12
151Programming Example Main Algorithm
- Prompt user for input
- Get data
- Echo the input (output the input)
- Find length in inches
- Output length in inches
- Convert length to centimeters
- Output length in centimeters
152Programming Example Putting It Together
- Program begins with comments
- System resources will be used for I/O
- Use input statements to get data and output
statements to print results - Data comes from keyboard and the output will
display on the screen - The first statement of the program, after
comments, is preprocessor directive to include
header file iostream
153Programming Example Putting It Together (cont'd.)
- Two types of memory locations for data
manipulation - Named constants
- Usually put before main
- Variables
- This program has only one function (main), which
will contain all the code - The program needs variables to manipulate data,
which are declared in main
154Programming Example Body of the Function
- The body of the function main has the following
form - int main ()
-
- declare variables
- statements
- return 0
-
155Programming Example Writing a Complete Program
- Begin the program with comments for documentation
- Include header files
- Declare named constants, if any
- Write the definition of the function main
156Programming Example Writing a Complete Program
(contd.)
157Programming Example Sample Run
Enter two integers, one for feet, one for inches
15 7 The numbers you entered are 15 for feet and
7 for inches. The total number of inches
187 The number of centimeters 474.98
158Summary
- C program collection of functions where each
program has a function called main - Identifier consists of letters, digits, and
underscores, and begins with letter or underscore - The arithmetic operators in C are addition (),
subtraction (-),multiplication (), division (/),
and modulus () - Arithmetic expressions are evaluated using the
precedence associativity rules
159Summary (cont'd.)
- All operands in an integral expression are
integers and all operands in a floating-point
expression are decimal numbers - Mixed expression contains both integers and
decimal numbers - Use the cast operator to explicitly convert
values from one data type to another - A named constant is initialized when declared
- All variables must be declared before used
160Summary (cont'd.)
- Use cin and stream extraction operator gtgt to
input from the standard input device - Use cout and stream insertion operator ltlt to
output to the standard output device - Preprocessor commands are processed before the
program goes through the compiler - A file containing a C program usually ends with
the extension .cpp
161Actividad 1
- En un grupo de 2 personas cada uno
- Ver el programa en páginas 140-141
- Escribir y correr el programa
- Revisen las salidas contra el Sample Run
- Tiempo 30 minutos
162Capítulo 3
- 163-212
- Programas simples 213-215
- Ayuda
- Primera tarea
163C Programming From Problem Analysis to Program
Design, Fifth Edition
164Objectives
- In this chapter, you will
- Learn what a stream is and examine input and
output streams - Explore how to read data from the standard input
device - Learn how to use predefined functions in a
program - Explore how to use the input stream functions
get, ignore, putback, and peek
165Objectives (cont'd.)
- Become familiar with input failure
- Learn how to write data to the standard output
device - Discover how to use manipulators in a program to
format output - Learn how to perform input and output operations
with the string data type - Learn how to debug logic errors
- Become familiar with file input and output
166I/O Streams and Standard I/O Devices
- I/O sequence of bytes (stream of bytes) from
source to destination - Bytes are usually characters, unless program
requires other types of information - Stream sequence of characters from source to
destination - Input stream sequence of characters from an
input device to the computer - Output stream sequence of characters from the
computer to an output device
167I/O Streams and Standard I/O Devices (cont'd.)
- Use iostream header file to extract (receive)
data from keyboard and send output to the screen - Contains definitions of two data types
- istream input stream
- ostream output stream
- Has two variables
- cin stands for common input
- cout stands for common output
168I/O Streams and Standard I/O Devices (cont'd.)
- To use cin and cout, the preprocessor
directive include ltiostreamgt must be used - Variable declaration is similar to
- istream cin
- ostream cout
- Input stream variables type istream
- Output stream variables type ostream
169cin and the Extraction Operator gtgt
- The syntax of an input statement using cin and
the extraction operator gtgt is -
- The extraction operator gtgt is binary
- Left-side operand is an input stream variable
- Example cin
- Right-side operand is a variable
170cin and the Extraction Operator gtgt (cont'd.)
- No difference between a single cin with multiple
variables and multiple cin statements with one
variable - When scanning, gtgt skips all whitespace
- Blanks and certain nonprintable characters
- gtgt distinguishes between character 2 and number 2
by the right-side operand of gtgt - If type char or int (or double), the 2 is treated
as a character or as a number 2
171cin and the Extraction Operator gtgt (cont'd.)
- Entering a char value into an int or double
variable causes serious errors, called input
failure
172cin and the Extraction Operator gtgt (cont'd.)
- When reading data into a char variable
- gtgt skips leading whitespace, finds and stores
only the next character - Reading stops after a single character
- To read data into an int or double variable
- gtgt skips leading whitespace, reads or - sign
(if any), reads the digits (including decimal) - Reading stops on whitespace non-digit character
173cin and the Extraction Operator gtgt (cont'd.)
174cin and the Extraction Operator gtgt (cont'd.)
175cin and the Extraction Operator gtgt (cont'd.)
176Using Predefined Functions in a Program
- Function (subprogram) set of instructions
- When activated, it accomplishes a task
- main executes when a program is run
- Other functions execute only when called
- C includes a wealth of functions
- Predefined functions are organized as a
collection of libraries called header files
177Using Predefined Functions in a Program (cont'd.)
- Header file may contain several functions
- To use a predefined function, you need the name
of the appropriate header file - You also need to know
- Function name
- Number of parameters required
- Type of each parameter
- What the function is going to do
178Using Predefined Functions in a Program (cont'd.)
- To use pow (power), include cmath
- Two numeric parameters
- Syntax pow(x,y) xy
- x and y are the arguments or parameters
- In pow(2,3), the parameters are 2 and 3
179Using Predefined Functions in a Program (cont'd.)
180Using Predefined Functions in a Program (cont'd.)
- Sample Run
- Line 1 2 to the power of 6 64
- Line 4 12.5 to the power of 3 1953.13
- Line 5 Square root of 24 4.89898
- Line 7 u 181.019
- Line 9 Length of str 20
181cin and the get Function
- The get function
- Inputs next character (including whitespace)
- Stores in memory location indicated by its
argument - The syntax of cin and the get function
- varChar
- Is a char variable
- Is the argument (parameter) of the function
182cin and the ignore Function
- ignore function
- Discards a portion of the input
- The syntax to use the function ignore is
-
- intExp is an integer expression
- chExp is a char expression
- If intExp is a value m, the statement says to
ignore the next m characters or all characters
until the character specified by chExp
183putback and peek Functions
- putback function
- Places previous character extracted by the get
function from an input stream back to that stream
- peek function
- Returns next character from the input stream
- Does not remove the character from that stream
184putback and peek Functions (cont'd.)
- The syntax for putback
-
- istreamVar an input stream variable (cin)
- ch is a char variable
- The syntax for peek
-
- istreamVar an input stream variable (cin)
- ch is a char variable
185The Dot Notation Between I/O Stream Variables and
I/O Functions A Precaution
- In the statement
- cin.get(ch)
- cin and get are two separate identifiers
separated by a dot - Dot separates the input stream variable name from
the member, or function, name - In C, dot is the member access operator
186Input Failure
- Things can go wrong during execution
- If input data does not match corresponding
variables, program may run into problems - Trying to read a letter into an int or double
variable will result in an input failure - If an error occurs when reading data
- Input stream enters the fail state
187The clear Function
- Once in a fail state, all further I/O statements
using that stream are ignored - The program continues to execute with whatever
values are stored in variables - This causes incorrect results
- The clear function restores input stream to a
working state -
188Output and Formatting Output
- Syntax of cout when used with ltlt
-
- Expression is evaluated
- Value is printed
- Manipulator is used to format the output
- Example endl
189setprecision Manipulator
- Syntax
- Outputs decimal numbers with up to n decimal
places - Must include the header file iomanip
- include ltiomanipgt
190fixed Manipulator
- fixed outputs floating-point numbers in a fixed
decimal format - Example cout ltlt fixed
- Disable by using the stream member function
unsetf - Example cout.unsetf(iosfixed)
- The manipulator scientific is used to output
floating-point numbers in scientific format
191showpoint Manipulator
- showpoint forces output to show the decimal point
and trailing zeros - Examples
- cout ltlt showpoint
- cout ltlt fixed ltlt showpoint
192setw
- Outputs the value of an expression in specific
columns - cout ltlt setw(5) ltlt x ltlt endl
- If number of columns exceeds the number of
columns required by the expression - Output of the expression is right-justified
- Unused columns to the left are filled with spaces
- Must include the header file iomanip
193Additional Output Formatting Tools
- Additional formatting tools that give you more
control over your output - setfill manipulator
- left and right manipulators
- unsetf manipulator
194setfill Manipulator
- Output stream variables can use setfill to fill
unused columns with a character - Example
- cout ltlt setfill('')
195left and right Manipulators
- left left-justifies the output
- Disable left by using unsetf
- right right-justifies the output
196Types of Manipulators
- Two types of manipulators
- With parameters
- Without parameters
- Parameterized require iomanip header
- setprecision, setw, and setfill
- Nonparameterized require iostream header
- endl, fixed, showpoint, left, and flush
197Input/Output and the string Type
- An input stream variable (cin) and gtgt operator
can read a string into a variable of the data
type string - Extraction operator
- Skips any leading whitespace characters and
reading stops at a whitespace character - The function getline
- Reads until end of the current line
198Understanding Logic Errors and Debugging with
cout statements
- Syntax errors
- Reported by the compiler
- Logic errors
- Typically not caught by the compiler
- Spot and correct using cout statements
- Temporarily insert an output statement
- Correct problem
- Remove output statement
199File Input/Output
- File area in secondary storage to hold info
- File I/O is a five-step process
- Include fstream header
- Declare file stream variables
- Associate the file stream variables with the
input/output sources - Use the file stream variables with gtgt, ltlt, or
other input/output functions - Close the files
200Programming Example Movie Ticket Sale and
Donation to Charity
- A theater owner agrees to donate a portion of
gross ticket sales to a charity - The program will prompt the user to input
- Movie name
- Adult ticket price
- Child ticket price
- Number of adult tickets sold
- Number of child tickets sold
- Percentage of gross amount to be donated
201Programming Example I/O
- Inputs movie name, adult and child ticket price,
adult and child tickets sold, and percentage of