Beruflich Dokumente
Kultur Dokumente
Len, Nicaragua
Lenguaje de Programacin II
Unidad I: Estructuras y Uniones
Objetivos Generales
Manipular y procesar las diferentes instrucciones de un
lenguaje estructurado.
Conocer los pasos del diseo y desarrollo de programas
orientados a objetos que resuelvan problemas de
ingeniera.
Aplicar los tpicos de la programacin orientada a objetos
en un lenguaje de programacin, que sirvan de base para
el desarrollo de software.
Plan Temtico
Medios Didcticos
DEV C/C++
Visual Studio 2010+
Gua de Estudios
Classroom Cdigo: ht3ecin
SISTEMA DE EVALUACION
Clases Prcticas
Laboratorios
Pruebas
Examen Parcial
+ Asistencia y Participacin
20
20
20
40
100
20
25
25
30
100
Bibliografa
Joyanes Aguilar, Luis. Programacion en C:
Metodologia, Algoritmos y Estructuras de Datos.
Segunda Edicin. Editorial McGraw-Hill, 2005.
Kernighan Brian, R. (1991). El lenguaje
programacin C. Mxico. Ed. Pearson Educacin.
de
Prueba Diagnostica
Desarrolle un programa que tenga la siguiente entrada:
Primero, el usuario ingresa un nmero entero n, que indica
cuntas palabras ingresar a continuacin;
Despus el usuario ingresa n palabras.
La salida del programa debe mostrar la palabra ms larga y la ms
corta que fueron ingresadas por el usuario.
ESTRUCTURAS
Un arreglo, que es una estructura de datos cuyos elementos son todos del
mismo tipo.
Una estructura de datos cuyos elementos individuales pueden ser de
distinto tipo
Enteros
Coma flotante
A los elementos individuales de una
Caracteres
estructura se les denomina miembros.
Punteros
Arrays y otras estructuras
miembro m;
} ;
fecha
mes;
dia;
anio;
struct cuenta
La declaracin de fecha debe preceder a la
{
int num_cuenta;
declaracin de cuenta.
char tipo_cuenta;
char nombre[80];
float saldo;
struct fecha ultimopago;
} antiguocliente, nuevocliente
ESTRUCTURAS
A los miembros de una variable de estructura se le pueden
asignar valores iniciales de la misma forma que a los arrays.
Estructuras
Ejemplo: Asignacin de valores iniciales a los miembros de una
variable estructura.
struct fecha {
int mes;
int dia;
int anio;
};
struct cuenta {
int num_cuenta;
char tipo_cuenta;
char nombre [80];
float saldo;
struct fecha ultimopago;
} ;
static struct cuenta cliente = {12345, 'R', Juan Perez", 586.30,
5, 24, 90};
ULSA- Lenguaje De Programacion II
Ing. Carolina Robelo
Estructuras
struct cuenta {
int num_cuenta;
char tipo_cuenta;
char nombre[80];
float saldo;
struct fecha ultimopago;
} cliente[100];
ULSA- Lenguaje De Programacion II
Ing. Carolina Robelo
Estructuras
Cada estructura, con respecto a las definiciones de miembros,
es una entidad autnoma. As, el mismo nombre de miembro
puede usarse en diferentes estructuras para representar
diferentes datos.
En otras palabras, el mbito de un nombre de miembro est
confinado a la estructura particular dentro de la cual ha sido
struct primera {
definido.
float a;
int b;
char c;
} ;
struct segunda {
char a;
float b, c;
} ;
ULSA- Lenguaje De Programacion II
Ing. Carolina Robelo
struct cuenta {
int num_cuenta;
char tipo_cuenta;
char nombre[80];
float saldo;
struct fecha ultimopago;
} cliente;
ULSA- Lenguaje De Programacion II
Ing. Carolina Robelo
cliente.num_cuenta
++cliente.saldo
cliente.saldo++
--cliente.num_cuenta
&cliente
&cliente.num_cuenta
UNIONES
Las uniones, como las estructuras, contienen miembros cuyos tipos
de datos pueden ser diferentes. Sin embargo, los miembros que
componen una unin comparten el mismo rea de almacenamiento
dentro de la memoria de la computadora, mientras que cada
miembro dentro de la estructura tiene asignada su propia rea de
almacenamiento.
As, las uniones se usan para ahorrar memoria.
Son tiles para aplicaciones que involucren mltiples
miembros donde no se necesita asignar valores a todos los
miembros a la vez.
UNIONES
En trminos generales, la composicin de una unin puede
definirse como: union marca {
miembro 1;
miembro 2;
miembro m;
} ;
UNIONES
Las dos declaraciones pueden ser combinadas, como se hizo
con las estructuras. As, se puede escribir:
union marca {
miembro 1;
miembro 2;
miembro m;
} variable 1, variable 2, . , variable n;
UNIONES
Una unin puede ser un miembro de una estructura y una
estructura puede ser un miembro de una unin. Adems, las
estructuras y las uniones pueden ser mezcladas libremente con
los arrays.
Ejemplo: Un programa en C contiene las siguientes
declaraciones.
Otra forma para declarar las variables de estructura camisa y blusa es combinar
las dos declaraciones.
ULSA- Lenguaje De Programacion II
Ing. Carolina Robelo
UNIONES
Ejemplo de UNIONES
#include <stdio.h>
main ()
{
union id {
char color;
int talla;
} ;
struct {
char fabricante[20];
float coste;
union id descripcion;
} camisa, blusa;
printf ("%d\n", sizeof (union id));
UNIONES
Una variable de unin puede ser inicializada. Recordar, sin
embargo, que slo uno de los miembros de una unin
puede tener un valor asignado en cada momento. La
mayora de los compiladores aceptarn un valor inicial para
uno solo de los miembros de la unin y asignarn este valor
al primer miembro dentro de la unin.
UNIONES
Ejercicios
1. Definir una estructura llamada complejo que conste de dos miembros en
coma flotante llamados real e imaginario.
2. Declarar las variables x1, x2 y x3 como estructuras del tipo complejo, descrita
en el problema anterior.
3. Combinar la definicin y la declaracin de la estructura descritas en los
Problemas anteriores en una sola declaracin.
4. Crea un tipo de dato (estructura) definido por el usuario llamado registro,
que contenga los siguientes tres miembros:
a) una cantidad entera llamada ganados
b) una cantidad entera llamada perdidos
C) una cantidad en coma flotante llamada porcentaje
ULSA- Lenguaje De Programacion II
Ing. Carolina Robelo
Ejercicios
5. Definir una estructura del tipo hms que contenga tres miembros enteros,
llamados hora, minuto y segundo, respectivamente.
Despus definir una unin con dos miembros, cada uno de ellos una
estructura del tipo hms. Llamar a los miembros de la unin local y hogar,
respectivamente.
Declarar una variable de la union llamada hora.
Actividad en Clase
Realizar un programa en C que lea en un array de estructuras los datos de los N
alumnos de la clase de Lenguaje de Programacin II y que imprima los datos
del alumno con mayor y menor nota.
Crear una estructura con los los datos de un alumno (nombre, sexo, edad,
carrera)
Solicitar los datos.
Mostrarlo en pantalla.
Actividad en Clase
Escribir un programa que encuentre un registro de alumno que corresponda
con un numero de carnet especificado. Que el usuario tenga la opcin de
realizar las bsquedas que desee, si no desea seguir buscando que tenga la
opcin de salir.
Definir un tipo de datos estructura llamado registro cuyos miembros
serian los datos de un alumno Nombre (arreglo tipo char de 50
caracteres), Carnet y Nota tipo enteros.
Declarar una variable alumno (array donde N=5) de la estructura registro
e inicializar los miembros de la estructura.
Crear una funcin que busque los datos de un alumno en la estructura a
partir de un nmero de carnet introducido por el usuario.
Mostrar en pantalla la informacin del alumno.
ULSA- Lenguaje De Programacion II
Ing. Carolina Robelo
Actividad en Clase
Recordar:
Una estructura se puede pasar a una funcin:
Envindole los miembros individuales como argumentos.
Envindole la estructura completa (en este caso se debe pasar un
puntero a la estructura como argumento)
Trabajo en Casa
El Tecnico La Salle requiere un Sistema de Facturacion de clientes muy simple.
Necesita que se almacenen los siguientes datos:
Nombre del cliente
Direccin con calle, ciudad y estado, nmero de cuenta, estado de la cuenta (al
da, atrasada o moroso), saldo previo, nuevo saldo y fecha de pago.
El sistema debe permitir introducir cada registro en la computadora, y actualizarlo
tan pronto como sea introducido, para reflejar los pagos actuales. Entonces se
mostrarn todos los registros actualizados con el estado actual de cada cuenta. El
estado de la cuenta se basar en el ltimo pago realizado y el saldo previo del
cliente.
Actividad en Clase
El estado de cada cuenta ser determinado de la siguiente manera:
Si el pago actual es mayor que cero pero menor que el diez por ciento
del saldo previo, la cuenta ser atrasada.
Si hay un saldo previo y el pago actual es cero, la cuenta ser moroso.
En otro caso, la cuenta estar al da.
Actividad en Clase
La estrategia global ser la siguiente:
1. Especificar el nmero de cuentas de clientes (nmero de
estructuras) a procesar.
2. Para cada cliente, leer los siguientes elementos:
Nombre
Calle
Ciudad
Nmero de cuenta
saldo anterior
Pago actual
Fecha de pago
ULSA- Lenguaje De Programacion II
Ing. Carolina Robelo
Actividad en Clase
Actividad en Clase
Declaracion de las estructuras a utilizar
struct fecha {
int mes;
int dia;
int anio;
} ;
struct cuenta {
char nombre [80] ;
char calle[80];
char ciudad[80];
int num_cuenta;
int tipo_cuenta;
float anteriorsaldo;
float nuevosaldo;
float pago;
struct fecha ultimopago;
} cliente [100];
ULSA- Lenguaje De Programacion II
Ing. Carolina Robelo