La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 1.

Presentaciones similares


Presentación del tema: "Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 1."— Transcripción de la presentación:

1 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 1

2 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter Expressions and Interactivity 3

3 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley The cin Object 3.1

4 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 4 El Objeto cin Es el Objeto para el Standard input en C++ Al igual que el cout, requiere el iostream Se utiliza para leer input del teclado La información se captura en el cin utilizando >> El Input se almacena en una o más variables

5 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 5

6 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 6 El Objeto cin cin convierte datos al formato que paree con la variable que recibe el valor: Ejemplo: int height; cout << "How tall is the room? "; cin >> height;

7 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 7 Mostrando el Prompt El prompt es un mensaje que instruye al usuario a entrar datos. Siempre se debe utilizar cout para mostrar el prompt antes del enunciado cin. Ejemplo: cout > height;

8 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 8 El Objeto cin Se puede utilizar para pedir de input más de una valor. Ejemplo: cin >> height >> width; Para separar los valores a nivel del teclado, se debe dejar un espacio en blanco entre uno y el otro. El orden es importante: El primer valor entrado se asigna a la primera variable y así por el estilo.

9 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 9

10 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 10 Lectura de Strings con cin El cin se puede utilizar para leer un string Se debe primero declarar un arreglo que almacene caracteres en un string: Ejemplo: char myName[21]; nyName es el nombre del arreglo, 21 es el número de caracteres máximo que se pueden almacenar (incluyendo el caracter NULL al final) Se puede utilizar con cin para asignar un valor: cin >> myName;

11 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 11

12 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Mathematical Expressions 3.2

13 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 13 Expresiones Matemáticas Se puede crear expresiones complejas utilizando múltiples operadores matemáticos. Una expresión puede ser una literal, una variable o una combinación matemática de constantes y variables. Se puede utilizar en el enunciado cout. Ejemplos : area = 2 * PI * radius; cout << "border is: " << 2*(l+w);

14 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 14 Orden de Operaciones En una expresión con más de un operador, se evalúa en el siguiente orden: - (unary negation), in order, left to right * / %, in order, left to right + -, in order, left to right En la expresión: 2 + 2 * 2 – 2 evaluate first evaluate second evaluate third

15 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 15 Orden de Operaciones

16 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 16 Asociatividad de los Operadores - (unary negation) associates right to left *, /, %, +, - associate right to left parentheses ( ) can be used to override the order of operations: 2 + 2 * 2 – 2 = 4 (2 + 2) * 2 – 2 = 6 2 + 2 * (2 – 2) = 2 (2 + 2) * (2 – 2) = 0

17 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 17 Agrupando con Paréntesis

18 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 18 Expresiones Algebraicas Multiplicación requiere un operador: Area=lw se escribe: Area = l * w; No existe un operador de exponenciación: Area=s 2 se escribe: Area = pow(s, 2); Los paréntesis pueden ser necesários para mantener el orden de las operaciones: se escribe: m = (y2-y1) /(x2-x1);

19 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 19 Expresiones Algebraicas (Cont.)

20 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley When You Mix Apples and Oranges: Type Conversion 3.3

21 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 21 When You Mix Apples and Oranges: Type Conversion Las operaciones se ejecutan entre operandos del mismo tipo (data type). Si no son del mismo, C++ va a convertir (internamente) uno de los operandos al tipo de dato del otro. Esto puede tener un impacto en el resultado de los cálculos.

22 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 22 Jerarquía de los Data Types Highest: Lowest: Se organizan por el número mayor que pueden aguantar long double double float unsigned long long unsigned int int

23 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 23 Type Coercion Type Coercion: Conversión automática de un operando a otro tipo de dato. Promotion: Convierte a un typo de dato de nivel superior. Demotion: Convierte a un typo de dato de nivel inferior.

24 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 24 Coercion Rules 1) char, short, unsigned short automáticamente se promueven a int 2) Cuando se hacen operaciones en valores de diferentes tipos de datos, el tipo de dato inferior se promueve al tipo de dato superior. 3) Cuando se utiliza el operador =, el tipo de expresión que resulte a la derecha se va a convertir al tipo de dato de la variable que está a la izquierda.

25 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Overflow and Underflow 3.4

26 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 26 Overflow y Underflow Ocurre cuando la asignación de un valor es muy largo (overflow) o muy pequeño (underflow) para poderse almacenar en una variable Las Variables contienen valores que deben caer dentro de un rango dependiendo del tipo de dato. Diferentes sistemas pueden; mostrar un mensaje de warning/error, para el programa o continuar la ejecución utilizando el valor incorrecto.

27 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Type Casting 3.5

28 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 28 Type Casting Se utiliza para convertir manualmente el tipo de dato. Útil para división floating point al utilizar enteros: double m; m = static_cast (y2-y1)/(x2-x1); Útil para ver un valor int de una variable char : char ch = 'C'; cout << ch << " is " (ch);

29 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 29

30 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 30 C-Style and Prestandard Type Cast Expressions Otros estilos son: C-Style cast: data type se pone en () cout << ch << " is " << (int)ch; Prestandard C++ cast: el valor se pone en () cout << ch << " is " << int(ch); C++ apoya ambos formatos, sin embargo se prefiere static_cast

31 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Named Constants 3.6

32 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 32 Named Constants Named constant (constant variable): Variable cuyo contenido no puede ser cambiado durante la ejecución del programa. Se utiliza para representar valores constantes con nombres descriptivos: const double TAX_RATE = 0.0675; const int NUM_STATES = 50; El nombre se escribe en letras mayúsculas

33 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 33

34 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 34 Constants and Array Sizes Es una practica común utilizar constantes para indicar el tamaño de un arreglo. Ejemplo: const int SIZE = 21; char name[SIZE];

35 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 35 const vs. #define #define – C-Estilo de nombrar las constantes: #define NUM_STATES 50 OJO  No lleva ; al final Se interpreta por el pre-procesador en lugar del compilador No ocupa una localización de memoria a diferencias de const

36 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Multiple Assignment and Combined Assignment 3.7

37 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 37 Multiple Assignment and Combined Assignment El = se puede utilizar para asignar un valor a múltiples variables: x = y = z = 5; El valor del = es el valor que se asigna La asociación es de derecha a izquierda: x = (y = (z = 5)); value is 5 value is 5 value is 5

38 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 38 Combined Assignment Al mirar el siguiente enunciado: sum = sum + 1; Esto suma uno (1) a la variable sum.

39 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 39 Other Similar Statements

40 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 40 Combined Assignment Los operadores de asignación combinados (Combined Assignment) proveen un atajo para el siguiente tipo de enunciado. The statement sum = sum + 1; is equivalent to sum += 1;

41 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 41 Combined Assignment Operators

42 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Formatting Output 3.8

43 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 43 Formatting Output Se puede controlar como se muestra la salida para datos numéricos: Se controla el: size (tamaño) position (posición) number of digits (número de dígitos) Requiere el header file llamado: iomanip

44 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 44 Stream Manipulators Se utilizan para controlar como un campo de salida se muestra en pantalla. Algunos afectan como se muestra el próximo valor: Ejemplo: setw(x) : Imprime en un campo al menos x espacios de ancho. Usa más espacios si el campo no es lo suficientemente ancho.

45 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 45

46 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 46

47 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 47 Stream Manipulators Algunos afectan valores hasta que se cambien de nuevo: fixed : Utilizan notación decimal para valores floating-point setprecision(x) : Cuando se utiliza con fixed, imprime un valor floating-point utilizando x dígitos después del punto decimal. Sin el fixed, imprime un valor floating-point utilizando x dígitos significativos showpoint : always print decimal for floating- point values

48 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 48

49 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 49

50 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 50 Stream Manipulators

51 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Formatted Input 3.9

52 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 52 Formatted Input Puede aplicar formato al ancho de un campo al usarlo con cin Es útil cuando se desea leer un string que se va a guardar en un arreglo de caracteres: const int SIZE = 10; char firstName[SIZE]; cout << "Enter your name: "; cin >> setw(SIZE) >> firstName; cin – Lee un caracter menos del que se especifica en el manipulador setw() (NULL)

53 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 53 Formatted Input Para leer una línea entera de input(que puede haber espacios en blanco), se utiliza: cin.getline() : const int SIZE = 81; char address[SIZE]; cout << "Enter your address: "; cin.getline(address, SIZE); cin.getline – Usa dos argumentos: Nombre del arreglo en donde se almacena el string Tamaño del arreglo

54 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 54

55 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 55 Formatted Input Para leer un solo caracter: Utilize cin : char ch; cout << "Strike any key to continue"; cin >> ch; Problema: No coge espacio en blanco ni tabs Utilize cin.get() : cin.get(ch); Va a leer el próximo caracter entrado, incluyendo los espacios en blanco

56 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 56 Formatted Input Mezclar cin >> y cin.get() en el mismo programa puede causar errores de input que son difíciles de detectar Para saltar caracteres innecesarios que aún están en el buffer del teclado, utilize cin.ignore() : cin.ignore(); // skip next char cin.ignore(10, '\n'); // skip the next // 10 char. or until a '\n'

57 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley More About Member Functions 3.10

58 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 58 More About Member Functions Member Function: Es un procedure que es parte de un objeto cout, cin son objetos Algunas funciones (member functions) del objeto cin son: getline get ignore

59 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley More Mathematical Library Functions 3.11

60 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 60 More Mathematical Library Functions Requiere el header file cmath Toma double como input, devuelve un double Comúnmente utilizadas en funciones: sin Sine cos Cosine tan Tangent sqrt Square root log Natural (e) log abs Absolute value (takes and returns an int)

61 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 61 More Mathematical Library Functions Estas funciones requieren el header file cstdlib rand() : Devuelve un número al azar ( int ) entre cero ( 0) y el entero mayor que la computadora puede representar. Muestra la misma secuencia de números cada vez que el programa corre. srand(x) : inicializa el generador de números al azar con unsigned int x

62 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Hand Tracing a Program 3.12

63 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 63 Hand Tracing a Program Hand trace a program: Es como si uno fuera la computadora al ejecutar el programa: Se pasa y ejecuta cada instrucción una a una Graba el contenido de las variables después de cada instrucción utilizando un hand trace chart (table) Es muy útil para localizar errores matemáticos y/o lógicos

64 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 64

65 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Introduction to File Input and Output 3.14

66 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 66 Introduction to File Input and Output Se puede utilizar archivos en lugar del teclado para leer y escribir datos. Permite que la data se guarde entre corridas de programas. Pasos: Open the file Use the file (read from, write to, or both) Close the file

67 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 67 Files: What is Needed Utilice el header file fstream para poder acceder el archivo Tipos de File stream: ifstream para input de un file ofstream para output de un file fstream para input/output a un file Definir objetos de file stream: ifstream infile; ofstream outfile;

68 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 68 Opening Files Crea un enlace entre el nombre del archivo (fuera del programa) y el file stream object (dentro del programa) Se utiliza la función llamada open : infile.open("inventory.dat"); outfile.open("report.txt"); Se puede incluir el nombre de la unidad y del directorio (path). El archivo de Output se crea de ser necesario; si ya existía un archivo con el mismo nombre, se borra. El archivo de Input tiene que existir para que el open pueda trabajar

69 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 69 Using Files Se puede utilizar el objeto output file y el operador << para enviar datos a un archivo: Ejemplos: outfile << "Inventory report"; Se puede utilizar el objeto input file y el operador >> para copiar (leer) datos del archivo a las variables: Ejemplos: infile >> partNum; infile >> qtyInStock >> qtyOnOrder;

70 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 70 Closing Files Utilice la función close para cerrar el archivo: infile.close(); outfile.close(); No dependa del sistema operativo para cerrar archivos al final del programa: Puede tener limitaciones en cuanto al número de archivos abiertos Puede haber datos en el buffer esperando a ser enviados al archivo y este quedar incompleto o corrupto

71 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 71

72 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 72

73 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 73

74 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 74


Descargar ppt "Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 1."

Presentaciones similares


Anuncios Google