Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Dimitar Stefanov en 09 de Julio 2016, 12:59
-
Buenos días. Dejo una posible solución de la entrega CU00553F del curso elemental de programación en lenguaje C desde cero.
EJERCICIO
a) Busca información sobre qué es un struct en programación C. Explica el concepto tratando de poner un ejemplo de la vida real de algo que pueda ser similar a un struct en programación.
En la creacion de soluciones para algunos problemas surge la necesidad de agrupar datos de diferente tipo o de manejar datos que serian muy dificil de describir en los tipos de datos primitivos, esta es la situacion en la que debemos aprovecharnos de las caracteristicas que hacen al lenguaje C especial, o sea el uso de estructuras, uniones y punteros.
Una estructura contiene varios datos. La forma de definir una estructura es haciendo uso de la palabra clave struct.
Un ejemplo de declarar una estructura sería el siguiente:
struct mystruct
{
int int_member;
double double_member;
char string_member[25];
} variable;
"variable" es una instancia de "mystruct" y no es necesario ponerla aquí. Se podria omitir de la declaracion de "mystruct" y más tarde declararla usando:
struct mystruct variable;
La estructura misma no tiene nombre (por la ausencia de nombre en la primera linea), pero tiene de alias "Mystruct". Entonces se puede usar así:
Mystruct variable;
Note que es una convencion, y una buena costumbre usar mayúscula en la primera letra de un sinónimo de tipo.
Un comparación de la vida real, para explicar un struct en programación, podría ser con una marca comercial. Por ejemplo, la marca "bosch" fabrica: neveras, batidoras, planchas de pelo, etc. "bosch" sería la estructura (struct) y todo lo que pertenece a esa marca: neveras, batidoras, planchas de pelo, serían las variables dentro de la misma. Para referirnos a todos esos electrodomésticos utilizaríamos la marca, la estructura (struct).
b) Busca información sobre qué es un puntero en programación. Explica el concepto tratando de poner un ejemplo de la vida real de algo que pueda ser similar a un puntero en programación.
Un puntero es una variable que contiene la dirección de memoria de un dato o de otra variable que contiene al dato en un arreglo. Ésto quiere decir, que el puntero apunta al espacio físico donde está el dato o la variable. Un puntero puede apuntar a un objeto de cualquier tipo, como por ejemplo, a una estructura o una función. Los punteros se pueden utilizar para referencia y manipular estructuras de datos, para referenciar bloques de memoria asignados dinamicamente y para proveer el paso de argumentos por referencias en las llamadas a funciones.
Muchas de las funciones estandares de C, trabajan con punteros, como es el caso del scanf o strcpy. Estas reciben o devuelve un valor que es un puntero. Por Ej. A scanf se le pasa la dirección de memoria del dato a leer (esto es un puntero)...
Para explicar lo que es puntero con un ejemplo de la vida real podríamos utilizar el símil de una llave para un apartamento. Para vender un piso no hace falta coger el piso y entregarlo (literalmete) sino con las entregas de las llaves ya basta. Jugando a poquer con unos amigos, si queremos apostar el piso, no hace falta dejar encima de la mesa el piso, sino que puniendo las llaves del piso ya se sabe a que "apuntan" las mismas, apuntan al piso en sí, al espacio físico.
Unos comentarios sobre el curso "lenguaje C desde cero".
Quería expresar mi más sincero agradecimiento a todo el equipo de aprenderaprogramar.com por ofrecernos la gran oportunidad de adquirir una conocimientos sólidos en programación, a Mario R. Rancel por impartir el curso presente y por su tiempo y dedicacion, y a todos los campañeros que han ido corregiéndome y aconsejándome durante el curso.
Después de acabar unos cuantos cursos (de modo gratuito), a parte de sentirme muy agradecido, hacia el equipo de aprenderaprogramar.com, por haberme brindado la oportunidad de estudiar de este modo, me siento seguro programando. Sé que me faltan muchos conceptos y prácticas más por aprender pero sin los conociementos básicos adquiridos aquí sería poco probable haber llegado al nivel que estoy.
Atentamente,
Dimitar (dimiste).
-
Hola! Enhorabuena por haber completado otro curso más ;D
-
Buenos días, César.
Gracias a vosotros por estar allí y por darnos la oportunidad de aprender. Ahora estoy haciendo un curso de C# (CSharp) y estoy trabajando con Visual Studio. Ojalá tuvieráis vosotros un curso así, porque me encanta la manera que tenéis de explicar y hacer los ejercicios. Os voy contando como me va.
Sólo quería decir que muchas de las cosas que nos enseñan allí ya las hemos visto aquí debido a que los lenguajes son muy parecidos.
Saludos y un placer estar con vosotros. Seguiré corregiendo ejercicios de mis compañeros de aquí.
-
Hola! Si quieres puedes ir pegando ejercicios de C# en los foros para que nos sirvan de referencia a todos como hizo este usuario: https://www.aprenderaprogramar.com/foros/index.php?action=profile;area=showposts;u=4848
Saludos!
-
Buenas tardes, César.
Me parece una ídea grandísima. Lo voy a hacer.
Saludos.
-
Hola! Ya veo que has empezado a compartir ejercicios resueltos en C#. Gracias!
-
Buenas tardes, César.
Sí, cierto es. He empezado a compartir los ejercicio. Y más que voy a subir :) Voy un pelín lento porque he empezado 2 cursos a la vez y tengo bastante faena, pero al ritmo que pueda compartiré los ejercicios resueltos.
Gracias a vostros.
Saludos.
-
Te pediría un favor, para no "acaparar" los foros, no subas más de 5 ejercicios seguidos, ya que si subes muchos seguidos desplazas todos los mensajes de los demás usuarios hacia abajo. Gracias!
-
Buenos días, César.
Me parece una solicitud totalmente aceptable y razonable. Pido disculpas por haber provocado semejante molestia. Y se me había ocurrido, ¿si subo varios ejercicios en un hilo? Así no desplazaré las soluciones de mis compañeros.
Saludos.
-
Es otra opción, pero es algo que ya hemos tratado anteriormente en los foros. Subir varios ejercicios simultáneamente tiene la ventaja de que no desplaza los otros hilos, pero la desventaja de que mezclamos en un mismo hilo cosas distintas, y luego a la hora de hacer consultas o buscar con el buscador resulta más complicado y las cosas quedan más desordenadas. Por ello en principio es preferible subir un solo ejercicio por hilo. La idea puede ser simplemente ir guardando los ejercicios en un archivo txt y luego irlos publicando a razón de por ejemplo 5 ejercicios los lunes y 5 ejercicios los jueves. A medida que se van publicando se van borrando del archivo txt. De esa manera proseguir hasta culminar la publicación de todos los ejercicios.
Otra opción que se ha planteado es crear más foros (lo cual permitiría una mejor subdivisión), pero esto por el momento no se ha concretado...
Saludos!
-
Buenas tardes, César.
No había pensado en esta opción. Es interesante. Lo voy a hacer así, conforme vaya subiendo ejercicios los voy borrando del archivo. txt.
Saludos.
-
Ok!