Home
Username:
Password:
C++ (Español) Tutorials

El tipo de Dato 'string'; Ecuaciones / Escritura Ecuaciones/Casting de Tipo

Subtitles of the Movie

ÿþ [00:00:00.0] Este programa demostrará ecuaciones simples en lenguaje C. [00:00:04.0] Tomaré cada ecuación, una operación de adición, una de sustracción, división y multiplicación y demostraré cada una de ellas. [00:00:12.0] El programa, como está ahora, aceptará dos variables, 'sumA' y 'sumB', con valores iniciales. [00:00:20.0] La expresión de asignación simplemente sumará 'sumA' más 'sumB' y almacenará la respuesta en la variable 'total'. [00:00:29.0] Notará que cada una de estas variables ha sido declarada como 'short'. [00:00:32.0] Al compilar el programa no aparecen ni errores ni advertencias, y luego al ejecutarlo mostrará el total que esperabamos: 250, [00:00:45.0] que es simplemente la adición de 100 más 150. [00:00:50.0] Si cambio este cálculo a una resta cambiando el signo más por el signo menos, restará 'sumA' menos 'sumB'. [00:00:59.0] Debo volver a compilar el programa y volverlo a ejecutar y, [00:01:05.0] como puede ver, la respuesta se almacena en total como un menos 50. De nuevo, está restando 100 menos 150. [00:01:12.0] Ahora cambio esto a un signo de multiplicación, que es el asterisco (*). De nuevo, tengo que volver a compilar y a ejecutar el programa y [00:01:25.0] como puede ver, obtengo 15000 como respuesta, [00:01:30.0] que de nuevo es 150 por 100. [00:01:34.0] Por último haré de esta una expresión de división, que va a dividir 100 en 150 - después de una compilación limpia lo ejecutamos. [00:01:50.0] Notará que en este caso la respuesta es cero. [00:01:53.0] Eso ocurre porque estamos dividiendo a 'sumA' (100) en 'sumB' (150), que da como resultado algo como 0,666. [00:02:01.0] Ese número es una fracción decimal y no es un número entero, y la variable total es un número entero de tipo 'short'. [00:02:11.0] Por lo tanto todos los decimales están siendo truncados y la respuesta sencillamente se muestra como cero. [00:02:17.0] Para resolver este problema podríamos cambiar el tipo de dato de 'total' de 'short' a 'float'. [00:02:25.0] Veamos el efecto que esto tiene. [00:02:28.0] Después de volver a compilarlo, note que obtengo una advertencia que dice "conversion from 'int' to 'float' - possible loss of data". [00:02:39.0] Al hacer doble click en ese mensaje, él me lleva a la expresión de asignación, que está realizando la operación 'sumA' dividido 'sumB'. [00:02:47.0] El problema acá es que tenemos a dos enteros dividiéndose entre sí, y el resultado se está almacenando en una variable de tipo 'float', como lo es 'total'. [00:02:58.0] El compilador reconoce que cuando usted realiza esta operación es muy posible que se pierdan datos. [00:03:06.0] De hecho, si ejecutamos el programa, notará que la respuesta seguirá siendo cero. [00:03:11.0] La manera adecuada de resolver esto es la siguiente: cuando una ecuación contiene tipos de datos mezclados i.e. en este caso con enteros y flotantes, [00:03:22.0] usted debe hacer uso del 'casting' de tipos, para hacer que cada item de datos que aparece a la derecha del signo igual sea del mismo tipo de dato del que aparece en el lado izquierdo. [00:03:30.0] Para hacerlo podemos realizar una conversión de tipo colocando la palabra 'float' entre paréntesis inmediatamente antes de 'sumA' y 'sumB'. [00:03:43.0] Cuando usted le hace casting a una variable, C++ crea una copia temporal de ella usando el nuevo tipo de dato. [00:03:53.0] El casting no altera ni el tipo de dato ni el contenido de la variable original, [00:03:58.0] simplemente lo cambia temporalmente. No tenemos que hacerle 'casting' a 'total', pues él ya es de tipo 'float'. [00:04:06.0] Volvamos a compilar el programa para ver si elimina la advertencia, y como de hecho lo hace, vamos a volver a ejecutar el programa. [00:04:14.0] Puede ver ahora que ahora aparece 0,666667, que es la respuesta a 100 dividido 150. [00:04:29.0] Hacer casting de tipos puede ser un poco confuso, y por ello le dedicaremos más tiempo más adelante. [00:04:31.0]

Tutorial Information

Course: C++ (Español)
Author: Arthur L. Lee
SKU: 33572
ISBN: 1-932808-26-4
Release Date: 2004-11-03
Duration: 5 hrs / 44 lessons
Work Files: Yes
Captions: Available on CD and Online University
Compatibility: Vista/XP/2000, OS X, Linux
QuickTime 7, Flash 8

VTC Sign up & Benefits

  • Unlimited Access
  • 98,729 Video Tutorials (23,265 free)
  • Video Available as Flash or QuickTime
  • Over 1026 Courses
  • $30 for One Month Access
  • Multi-User Discounts Available