viernes, 14 de marzo de 2014

Estructuras Anidadas - Sección 01BM

Estructuras Anidadas


Las estructuras en Lenguaje C permiten estar anidadas una dentro de otra, todo esto permite mantener la información organizada y además poder reutilizar los modelos de estructuras que ya tengamos definidos.

Veamos algunos ejemplos:

La fecha (Ejemplo: 15/02/2005) si la desagrupamos podemos obtener lo siguiente:
  • El día.
  • El mes.
  • El año.

Estos son tres campos que tenemos en la fecha.

La hora (Ejemplo: 05:30 am o 5:30:03) la podemos desagrupar en horas, minutos y segundos u horas, minutos, segundos y am-pm.

Comencemos entonces a utilizar las estructuras anidadas.

Debemos saber que:


  1. La estructura que va a estar anidada dentro de la otra, debe ser definida antes de ser utilizada.
  2. Una estructura puede estar anidada dentro de una misma estructura más de una vez.
  3. Una estructura anidada puede contener otra estructura anidada.
  4. Para acceder a los campos de la estructura anidada debemos también utilizar el operador punto (.) tantas veces como sea necesario.
  5. Un modelo de estructura puede ser utilizado por varias estructuras a la vez sin que esto represente algún problema.    

Punto 1. La estructura anidada debe ser definida antes de ser utilizada


Se desea definir una estructura fecha que va a formar parte de la estructura cedula:

//Debemos definir el modelo de la estructura fecha antes de utilizarla

struct fecha {
    int dia;
    int mes;  //En este caso el mes es entero pero será caracter si lo tomamos completo (ejemplo: Febrero)
    int annio;
};

//veamos entonces como se anida la estructura fecha dentro de la estructura cedula

struct cedula{
   char nombres [50];
   char apellidos [50];
   longint nro_cedula;
   struct fecha fecha_nacimiento; //Aqui se define la estructura fecha anidada en la estructura cedula
   char edo_civil;

};

main ( ){


}



Actividad


  • Defina una estructura tiempo (hora, minutos, segundos) la cual debe estar anidada dentro de otra estructura que guarde la siguiente información de un empleado: Nombre, Cedula, Departamento en que labora y la hora de entrada del empleado (utilice en este campo la estructura tiempo).

Punto 2. Una estructura anidada más de una vez en una misma estructura


Vamos a utilizar la estructura fecha varias veces en la estructura cedula:

//Definimos el modelo de la estructura fecha antes de utilizarla

struct fecha {
    int dia;
    int mes;  //En este caso el mes es entero pero puede ser caracter si lo tomamos completo (ejemplo: Febrero)
    int annio;
};

//veamos entonces como se anida la estructura fecha dentro de la estructura cedula

struct cedula{
   char nombres [50];
   char apellidos [50];
   longint nro_cedula;
   struct fecha fecha_nacimiento;  //Estructura fecha en la estructura cedula para la fecha de nacimiento
   struct fecha fecha_expedicion;  //Estructura fecha en la estructura cedula para la fecha de expedicion
   struct fecha fecha_vencimiento; //Estructura fecha en la estructura cedula para fecha de vencimiento
   char edo_civil;
};

main ( ){


}

Por qué utilizamos la misma estructura fecha?

Se utiliza la misma estructura fecha para fecha de nacimiento, fecha de expedicion y fecha de vencimiento, ya que las tres contienen dia, mes y año al igual que la estructura fecha que definimos.  Debemos tener en cuenta que al llamarlas de forma diferente, cada una permite guardar la información a la que hace referencia su nombre.

Actividad


  • Ahora en el ejercicio de la actividad anterior, "Defina una estructura tiempo (hora, minutos, segundos) la cual debe estar anidada dentro de otra estructura que guarde la siguiente información de un empleado: Nombre, Cedula, Departamento en que labora y la hora de entrada del empleado (utilice en este campo la estructura tiempo)"; 
  • Vamos a agregar también la hora de salida del empleado, recuerda utilizar la misma estructura tiempo.

Veamos como les va con estas actividades, hagan su mayor esfuerzo, quiero ver lo que pueden hacer con su gran ingenio.

Ya saben, las dudas en los comentarios o en mi correo.

Si alguno pueda dar respuesta certera a los comentarios realizados por sus compañeros, tiene la plena libertad de hacerlo, sus compañeros sabrán agradecerlo.

Continuaremos en una próxima oportunidad.

Unidad 9 - Introducción a las Estructuras de registros (Secciones 02AT y 02GT)

Buenas tardes, en esta oportunidad vamos a recordar la investigación sobre esta unidad, la cual fue asignada con anterioridad en el presente blog (Revisar la entrada del blog acerca de Repaso de Matrices).

Debemos saber: 

  • Qué es una estructura (struct) en Lenguaje C?.
  • Cómo se define y declara una variable de tipo struct?
Una variable de estructura (struct) está compuesta de varios campos que pueden ser de diferentes tipos de datos.

Ejemplo: En nuestra CÉDULA hay varios CAMPOS: Nombres, Apellidos, Nro. de Cédula, Fecha de Nacimiento, entre otros.  Podemos decir entonces que la cédula es una ESTRUCTURA (STRUCT) ya que contiene varios CAMPOS y cada uno puede ser de diferentes tipo de datos.




Veamos y analicemos la imágen ...
Responda para ud.

Qué otros campos encontramos?

  • _______________________
  • _______________________
  • _______________________




Cómo definir el modelo de mi estructura?


El modelo de la estructura debe ir SIEMPRE antes de la función main ( ), veamos la forma de hacerlo:


struct nombre_estructura//Se utiliza la palabra reservada struct

tipo_de_dato campo1 //Se define el tipo de dato de cada campo (entero,caracter,otro)

tipo_de_dato campo2//Cada campo representa una variable que pertenece a la estructura

tipo_de_dato campo3; //Se pueden tener tantos campos como sea necesario

tipo_de_dato campoN

 };        //Debe terminar con un punto y coma (;) despues de la llave de cierre de la estructura


 Veamos un ejemplo:

 

struct cedula {   //Mi estructura se va a llamar cedula

       char nombres [50];  //Tiene un campo de tipo char (caracter) llamado nombres

       char apellidos [50];  //Tiene otro campo char (caracter) llamado apellidos

       longint nro_cedula; //Otro campo es nro_cedula, el campo longint es para números muy grande 

                                                           //(la cedula puede ser mas de 30 millones - 30000000)

      char edo_civil//Otro campo que tenemos de tipo char el Estado cívil como soltero, casado (S/C/V/D)

} ;

 

main ( ) {  //No vamos a colocar nada en el main hasta aprender a 

                 // definir y declarar las variables con las estructuras vistas

...
...
...
}


Actividad para publicar en los comentarios del blog.


Definir el modelo de la estructura alumno que tenga la siguiente información:
  1. Nombre del Alumno
  2. Apellido del Alumno
  3. Cédula del Alumno
  4. Edad del Alumno
  5. Fecha de Nacimiento (Recuerden que las fechas serán tratadas como una cadena de carateres hasta que vean Estructuras Anidadas). La fecha de nacimiento quedaría de la siguiente forma: char fecha_nacimiento [11];  (Ejemplo: 12/01/1999 OJO! si contamos cada caracter tenemos 10 caracteres, pero en las cadenas de caracteres SIEMPRE debemos tener un espacio libre para guardar el caracter de fin de cadena representado por el siguiente símbolo o información '/0'.

PARA TENER EN CUENTA

Repasando entonces tenemos lo siguiente. La estructura se llama alumno, tiene cinco (5) campos: 3 campos son de tipo char, 1 campo de tipo entero y 1 campo de tipo entero largo (longint:  Investigar este nuevo tipo de dato). 



Repasemos con otros modelos de estructuras que se nos pueda ocurrir;


En la siguiente clase veremos como declarar las variables de tipo estructura (struct) de los modelos planteados.


Mucho ánimo, tratemos de adaptarnos a los cambios que se nos presentan cada día de nuestras vidas!

Hasta la próxima oportunidad!.


INFORMACIÓN GENERAL PARA TODAS LAS SECCIONES

Buenas tardes, me preocupa desconocer la situación de cada uno de los estudiantes de cada sección, hago referencia a esto ya que he visto poca participación de los estudiantes en este blog.

Es necesario que tomemos conciencia y hagamos un GRAN ESFUERZO para darle continuidad a este proceso momentáneo donde se trata de avanzar en el proceso de enseñanza-aprendizaje a distancia y no presencial como hasta fechas pasadas habiamos llevado a cabo.

Es bueno hacer la aclaratoria que el PNF plantea las clases de tipo semipresencial y a distancia, sin embargo, no se habían puesto en práctica hasta que la NECESIDAD que se nos presentó nos llevó a TOMARLO en cuenta con cierta premura y desorganización.  No es un cambio fácil, ni para acostumbrarse rapidamente  pero debemos hacer nuesto mejor esfuerzo.

A cada uno de los voceros y voceras les pido encarecidamente que hagan saber a sus compañeros la importancia de esta etapa que estamos viviendo de forma virtual, si hay algún impedimento para trabajar a distancia o por internet, que lo hagan saber para tener un estimado de los problemas que cada uno pueda presentar con esta metodología de trabajo.  Busquemos colaboración ya sea con vecinos, familiares, compañeros de clase u otros, para lograr al menos realizar las actividades planteadas.

Recordemos que la peor lucha es aquella que no se hace.

Se despide de uds. Delsy Carvallo

POSDATA:  Revisen detallamente para no confundir la información, aclaro que tengo tres (3) secciones y en una de las entradas del blog les indico cual fase debe desarrollar cada una de las secciones. 
En este momento la sección 01BM debe dar inicio a las Estructuras Anidadas.
Las secciones 02AT y 02GT van a dar inicio a la Unidad 9 - Introducción a las Estructuras de registros, este tema se va a publicar el día de hoy.


domingo, 9 de marzo de 2014

Matrices (arreglos bidimensionales) Secciones 02AT - 02GT

Realizar los ejercicios de repaso de arreglos bidimensionales.

 

Aquí les dejo un video con las 3 (tres) láminas de los ejercicios para entregar y la siguiente actividad a realizar. Tomen nota de los ejercicios y de la actividad.

 


 


Cualquier duda consultar en los comentarios o por otra via de comunicación que considere.

IMPORTANTE LEER - Secciones 01BM - 02AT - 02GT

HACIENDO UN RECUENTO - ALGORITMICA Y PROGRAMACIÓN


Buenas noches, haciendo un recuento de los contenidos vistos, tenemos lo siguiente:

La sección 01BM continúa con el tema de la Unidad 9 Estructuras de Registros.

La sección 02AT queda pendiente la evaluación de Arreglos Bidimensionales. 

La sección 02GT queda pendiente con el recuperativo de Arreglos Bidimensionales.

Qué debemos hacer?


Para las secciones 02AT y 02GT la evaluación será vía internet y se les darán las indicaciones acerca de la evaluación en el transcurso de la semana (10 de Marzo al 14 de Marzo de 2014), si durante estas fechas no se ha normalizado el acceso a la institución (Iutval).

Las secciones 02AT y 02GT deberán comenzar a estudiar el contenido de la Unidad 9 Estructuras de Registros, para lo cual encontrarán en este blog la Introducción a esta unidad.  

La sección 01BM le corresponde realizar los ejercicios indicados en la Unidad 9 de este blog y realizar la investigación y el resumen correspondiente a las Estructuras Anidadas.

Para cualquier duda o información al respecto deberán utilizar los comentarios del blog, el correo electrónico o los mensajes telefónicos.


Sin más que agregar, se despide de Uds.

Atentamente

Prof. Delsy Carvallo


Unidad 9 - Estructuras de registros (Sección 01BM)

Estructuras - Práctica - Ejercicios

Ejercicios 


En esta fase de práctica tenemos algunos ejercicios similares a los vistos en clases pasadas.

Qué debo hacer?

1- Revisar los ejercicios vistos en clase.
2- Leer los ejercicios planteados en este blog.
3- Realizar los ejercicios planteados para ser entregados cada semana, puede hacerlos en su computadora o en hojas de papel y deberá enviarlos por correo electrónico o por cualquier medio que considere necesario.

Ejercicios:

a) Se desea guardar y mostrar la siguiente información de 5 (cinco) productos de un almacén: Código del Producto (6 caracteres que pueden ser letras y/o números), Nombre del Producto, Precio del Producto y Cantidad del Producto.

b) Ahora debemos ampliar el ejercicio anterior, es necesario calcular y mostrar el impuesto (IVA) que corresponde al 12% del precio del producto.

Cualquier duda debe ser consultada a través de los comentarios de este blog, por correo electrónico o por mensaje telefónico.

Nota:   Los ejercicios serán entregados semanalmente


IMPORTANTE

  • Las actividades serán publicadas en este blog cada 2 o 3 días.  
  • La siguiente actividad será investigar sobre las Estructuras Anidadas y hacer un resumen de 15 líneas máximo y publicarlo en los comentarios de este blog.