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

El tipo de Dato 'string'; Ecuaciones / Demostración de depuración

Subtitles of the Movie

ÿþ [00:00:00.0] Incluido en su CD hay un programa de demostración con nombre demo6 - es un programa de práctica de depuración. [00:00:07.0] Como puede ver cuando lo ejecutamos, el programa compila normalmente pero no produce los resultados correctos. [00:00:14.0] Antes que nada, permitame ambientarlo un poco acerca del código. [00:00:17.0] Las variables que se han declarado e inicializado [00:00:23.0] son en su mayoría enteros de tipo 'short'. Como puede ver, todos lo son excepto la variable 'averageWorkerHours', que es de tipo 'float'. [00:00:31.0] Se le ha dado un valor inicial a cada uno de los enteros, como en el caso de las variables 'worker' y 'hours'. [00:00:39.0] Las variables 'totalWorkers' y 'averageWorkerHours' han sido inicializadas a cero. [00:00:44.0] El siguiente segmento del programa es hacer un cálculo sumando las dos figuras de trabajadores ('worker') para obtener un total de trabajadores ('totalWorkers') [00:00:57.0] y sumar las horas, 'hours1' más 'hours2', para obtener las horas totales, 'totalHours'. [00:01:01.0] El tercer cálculo que se realiza es calcular el promedio, 'averageWorkerHours', que corresponde al total de horas, 'totalHours', dividido en el número total de trabajadores, 'totalWorkers'. [00:01:08.0] Por último se hace uso de una expresión 'cout' para mostrar los resultados de nuestro cálculo. [00:01:12.0] Antes de compilar y ejecutar el programa, usted debe tener claro que la respuesta correcta debe ser 8,33 en la variable 'averageWorkerHours'. [00:01:26.0] Al compilar el programa [00:01:28.0] vemos que no produce errores ni advertencias, pero que luego produce un resultado incorrecto. [00:01:36.0] Como puede ver, el promedio de horas trabajadas fue 8, pero al verificar todo el proceso a mano, sé que la respuesta debe ser 8.83. [00:01:44.0] Regresando al programa - puede ver en donde está el problema? Puede ser prudente que usted se tome un par de minutos para revisar este programa de práctica [00:01:53.0] y ver si puede determinar cuál es el problema en el código. [00:01:56.0] Ahora, después de que tuvo la oportunidad de examinar el código, pudo encontrar el problema? [00:02:06.0] Bueno, el problema está en el cálculo del promedio. [00:02:09.0] Se tiene una variable con nombre 'averageWorkerHours' que es de tipo 'float', [00:02:14.0] que se calcula como la división de dos variables enteros de tipo 'short'- 'totalHours' y 'totalWorkers'. [00:02:22.0] Y como puede ver, los resultados son incorrectos. [00:02:27.0] Para corregir esto, haga 'casting' de tipo colocando la palabra 'float' entre paréntesis inmediantemente antes de la variable a la que le queremos cambiar temporalmente el tipo. [00:02:36.0] Repito, hacer 'casting' no cambia el tipo de dato, solo lo hace temporalmente. [00:02:43.0] Ahora tenemos un cálculo que involucra un flotante igual a un flotante dividido en otro flotante. [00:02:53.0] Volvamos a compilar el programa para ver si nos da los resultados correctos. [00:03:00.0] Y como puede ver, nuestra respuesta es 8,8333. [00:03:05.0] Es importante que siempre verifique los resultados con algunos datos de prueba para asegurarse que sus cálculos en realidad están funcionando. [00:03:16.0] Como lo ha demostrado este ejemplo, un programa podría compilar sin errores y sin embargo producir resultados incorrectos. [00:03:24.0] Depende de usted como programador verificar que su código funciona. [00:03:29.0] Recuerde, en vez de dejar que el compilador de C realice conversión de tipos implícita, que puede llevar a resultados inesperados, [00:03:40.0] es mejor hacer casting de tipos, que es a lo que nos referimos como conversión de tipos explícita. [00:03:47.0] Usted le hace casting de tipos a un ítem de datos precediéndolo con el nombre del tipo de datos deseado. [00:03:52.0] Cuando usted hace esto, C crea una copia temporal de esa variable usando el nuevo tipo de dato, [00:03:59.0] y el hacerlo no cambia ni los contenidos ni el tipo de la variable original. [00:04:04.0] Cuando una ecuación contiene tipos de datos entremezclados usted debe hacer 'casting' para hacer que cada uno de los ítems que aparecen a la derecha del signo igual [00:04:12.0] sean del mismo tipo que la variable que aparece a la izquierda del él. [00:04:16.0] Esta es una realidad de C que puede llegar a ser engorrosa, y por ello usted debe practicar y estar pendiente de ella siempre que realice cálculos. [00:04:26.0] [00:04:28.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
  • 81,350 Video Tutorials (20,800 free)
  • Video Available as Flash or QuickTime
  • Over 782 Courses
  • $30 for One Month Access
  • Multi-User Discounts Available