2.17k likes | 2.38k Views
CS-361: Estructuras de Control Primera Clase. Dr. Jesús Borrego Lead Faculty, COS Regis University. Temas. 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.
E N D
CS-361: Estructuras de ControlPrimera Clase Dr. Jesús Borrego Lead Faculty, COS Regis University
Temas 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
Instructor • 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
Introducción • Prerequisitos • CS 208 • Experiencia en programación no es necesaria • Acceso a computadora personal • Compilador Dev C++/Code::Blocks • Pueden usar otros a su propio riesgo
Guí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.
Guí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).
Materiales 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_fundamentals_classroom.htm#Supplemental • Dev C++ or Code::Blocks
Sobrevista del curso Páginas 14-15
Método de evaluación Participación 15% Tarea primera noche 5% Tareas en clase 30% Tareas (6 programas) 30% Exámenes (2) 20%
Está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
Documentació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
Acerca de sus compañeros: Nombre Carrera que cursan Donde trabajan Donde viven Experiencia en programación ¿Que esperan de el curso?
Instalació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
Vocabulario 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
Tarea 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.
Algoritmo ‘una descripción precisa de un método para resolver un problemaparticular 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]
¿Para que usamos algoritmos? • Programas = Algoritmos + Estructuras de datos (Niklaus Wirth) • Experimentaremos con algoritmos y control de datos en estaclase • La próximaclase (CS 362) cubreestructuras de datos • Antes de escribir un programa, necesitamosuna idea de como resolver el problema • Estorequiere un algoritmo
Capítulo 1 23-78
C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 1: An Overview of Computers and Programming Languages
Objectives 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
Objectives (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++
Introduction • 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
A Brief Overview of the History of Computers • Early calculation devices • Abacus, Pascaline • Leibniz device • Babbage machines: difference and analytic engines • Hollerith machine
A Brief Overview of the History of Computers (cont'd.) • Early computer-like machines • Mark I • ENIAC • Von Neumann architecture • UNIVAC • Transistors and microprocessors
A Brief Overview of the History of Computers (cont'd.) • Categories of computers • Mainframe computers • Midsize computers • Micro computers (personal computers)
Elements of a Computer System Hardware CPU Main memory Secondary storage Input/Output devices Software
Hardware CPU Main memory: RAM Input/output devices Secondary storage
Central Processing Unit and Main Memory • Central processing unit • Brain of the computer • Most expensive piece of hardware • Carries out arithmetic and logical operations
Central 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
Secondary Storage • Secondary storage: device that stores information permanently • Examples of secondary storage: • Hard disks • Flash drives • Floppy disks • Zip disks • CD-ROMs • Tapes
Input/Output Devices • Input devices feed data and programs into computers • Keyboard • Mouse • Secondary storage • Output devices display results • Monitor • Printer • Secondary storage
Software • 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
The 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
The 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
The Language of a Computer (cont'd.) • EBCDIC • Used by IBM • 256 characters • Unicode • 65536 characters • Two bytes are needed to store a character
The 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
The Evolution of Programming Languages (cont'd.) • Assembly language instructions are mnemonic • Assembler: translates a program written in assembly language into machine language
The Evolution of Programming Languages (cont'd.) • Using assembly language instructions, wages = rates • hours can be written as: LOAD rate MULT hour STOR wages
The 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;
Processing a C++ Program #include <iostream> using namespace std; int main() { cout << "My first C++ program." << endl; return 0; } Sample Run: My first C++ program.
Processing 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)
Processing 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