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

Programa Básico del C / Soluciones del Capítulo 2

Subtitles of the Movie

ÀComo le fue? ÀPudo realizar el ejercicio? Demos un vistazo a la solucionÉ que he creado. A este programa lo he llamado "children.c" y se encuentra en la carpeta "Chapter2" del CD. Veamoslo con detalle. Primero tenemos la linea "studio.h". Como dije, debemos incluirla en todos los programas del C que utilicen las funciones "printf", "scanf", "fflush" o "getchar". Es muy conveniente incluirla. Luego tenemos la funcion "main" con las llaves respectivas. A continuacion tenemos dos variables, una en cada linea. Ambas son numeros enteros y a la primera la he llamado "brosis"É a manera de conjuncion para los hermanos y hermanas. Lo hice para no escribir "brothers and sisters". A la segunda la he llamado "children". Las primeras 4 lineas del programa son muy sencillas. Luego tenemos "printf How many brothers and sisters do you have?". No tenemos una barra diagonal invertida o la letra "n" porque no es necesario. Luego tenemos "scanf", el signo de porcentaje y el ampersand. Enseguida tenemos la primera variable y luego el mismo proceso para la cantidad de hijos. Llegamos a la parte dificil del programa: desplegar ambos resultados en la misma linea. Lo he hecho asi. Tenemos el texto "You have %d brothers and sisters and %d children", una coma y las dos variables. Estas aparecen en la siguiente linea de codigo, pero esto se debe a que esta ventana no es lo suficientemente ancha, asi que las he ubicado en la siguiente linea. Usted puede hacerlo si desea. Veremos esto en el siguiente capitulo. Por ahora digamos que estas variables se encuentran al final de la linea anterior. Tenemos el texto "%d brothers and sisters and a %d children", asi que tenemos dos "%d" y dos variables al final separadas por comas. Esta es una sencilla substitucion. El valor de "brosis" se ubica en este "%d" mientras que el valor de "children" se ubica en este "%d". Si tuvieramos tres "%d", tendriamos que agregar una tercera variable aqui. Esto es asi de sencillo. Incluso podriamos tener 10 o 20 "%d" en la linea y esta aun funcionaria, aunque podria ser un poco dificil de controlar. A continuacion tenemos las funciones "fflush" y "getchar" como antes. Veamos si el programa funciona. Lo compilamos y no obtenemos errores. Excelente. Vamos a ejecutarlo. Obtenemos "How many brothers and sisters do you have?". Por ejemplo ingresamos 2. Aparece el texto "How many children do you have?" Ingresamos 3. Obtenemos la frase "You have two brothers and sisters and three children". El programa funciona. Luego pulsamos la tecla "Enter" para cerrar el programa. ÀQue ocurre con la funcion "scanf" si no ingresamos un numero? Veamos lo que obtenemos si ingresamos algunas letras. Ejecutamos de nuevo el proyectoÉ y aparece de nuevo "How many sisters and brothers do you have?". Ingresamos la palabra "Fred"É y aparece un resultado muy extrano. Aparece la segunda pregunta y el programa no ha esperado la respuesta. Luego se despliega la respuesta a ambas preguntasÉ y la frase "You have 575 brothers and sisters and 65535 children". Esto es bastante extranoÉ y seguramente puede funcionar mejor. Esta es una de las acciones de la funcion "scanf". La funcion "scanf" no es una de las mas comprensibles y por esa razon tendemos a no utilizarla muy a menudo. Esta funciona bien para programas basicos, pero en esta clase de incidentesÉ en los cuales el usuario del programa accidentalmente escribe algo mal, el programa genera resultados inesperados. Por esto no utilizamos a "scanf"É muy a menudo. La funcion "printf" se utiliza con mucha frecuenciaÉ a diferencia de la funcion "scanf". ÀQue pasa si eliminamos el ampersand, ya sea aqui o aqui? No intentaremos ejecutar el programaÉ porque probablemente se bloquearia el sistema y no quiero que eso suceda. ÀComo le fue a usted? ÀFunciono? Se que el programa debio funcionar, pero Àel sistema se bloqueo? Finalmente, veamos el numero mas grande que podemos ingresar. Si usted ha experimentado un poco, sabra que la respuesta es la siguiente: dos billones, ciento cuarenta y siete millones, cuatrocientos ochenta y tres mil seiscientos cuarenta y siete. Tal vez ya lo sabia. Si resolvio lo demas Àpor que no esto? Este numero es 2 a la potencia 31 menos 1, es decir, 5 veces 2 veces el numero 2. Son 31 operaciones y le restamos 1 a la respuesta. ÀPuede descifrar por que lo hacemos? Pienselo durante un momento. Bien, esto tiene que ver con los numeros de 32 bits. De hecho, puede ser que esta no sea la respuesta obtenida por su compilador y que el numero mas grande sea uno diferente. Puede ser que la respuesta en su sistema sea treinta dos mil doscientos sesenta y siete bits de la memoria, es decir, 2 a la potencia 15 menos 1. Esto tiene que ver con el tamano de los numeros enteros en la computadora. Algunas computadoras tienen enteros de 32 bits y otras tienen enteros de 16 bits. Esto depende. En un sistema de 32 bits, este numero es comunmente 2 a la potencia 31 menos 1. Por ahora esto es un poco inexplicable, pero a medida que tenga un mayor entendimiento de la arquitectura de su computadora, entendera las razones. Por ahora observe que existe una limitacionÉ para los numeros enteros que podemos ingresar al ser solicitados.

Tutorial Information

Course: C Programming (Español)
Author: Mark Virtue
SKU: 33759
ISBN: 1-933736-81-X
Release Date: 2007-04-16
Duration: 21.5 hrs / 139 lessons
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