Sei sulla pagina 1di 150

Portafolio de Estructura de Datos

Universidad Tcnica De Manab Facultad De Ciencias Informticas Carrera De Ingeniera En Sistemas Informticos

Portafolio De Estructura De Dato


Primer ciclo

Segundo Semestre

Paralelo B Shirley Alexandra Murillo Cabrera


Docente:
Ing.: Cristian Torres

Perodo Acadmico: Mayo-Septiembre 2013

Facultad De Ciencias Informticas Misin:

Ser una unidad con alto prestigio acadmico, con eficiencia, Transparencia y calidad en la educacin, organizada en sus actividades, protagonistas del progreso regional y nacional.

Formar profesionales eficientes e innovadores en el campo de las ciencias informticas, que con honestidad, equidad y solidaridad, den respuestas a las necesidades de la sociedad elevando su nivel de vida.

Visin:

Universidad Tcnica De Manab


Formar acadmicos, cientficos y profesionales responsables, humanistas, ticos y solidarios, comprometidos con los objetivos del desarrollo nacional, que contribuyan a la solucin de los problemas del pas como universidad de docencia con investigacin, capaces de generar y aplicar nuevos conocimientos, fomentando la promocin y difusin de los saberes y las culturas, previstos en la Constitucin de la Repblica del Ecuador.

Misin:

Ser institucin universitaria, lder y referente de la educacin superior en el Ecuador, promoviendo la creacin, desarrollo, transmisin y difusin de la ciencia, la tcnica y la cultura, con reconocimiento social y proyeccin regional y mundial.

Visin:

Syllabus
Prontuario Del Curso

Carta De Presentacion Autorretrato


Diario Meta Cognitivo
Articulo De Revistas Profesionales

Trabajo De Ejecucion Tareas

Materiales Relacionados Con La Clase

Anexos
*

Resumen De Cierre

UNIVERSIDAD TCNICA DE MANAB


FACULTAD DE CIENCIAS INFORMTICAS
CARRERA DE INGENIERA EN SISTEMAS INFORMTICOS

SYLLABUS I.- INFORMACIN GENERAL FACULTAD DE CIENCIAS INFORMTICAS CARRERA: INGENIERA EN SISTEMAS INFORMTICOS CDIGO: OF-0201 ESTRUCTURA DE DATOS Nivel / Semestre: 2 N de Crditos:5 Modalidad : Presencial Paralelo: 2do. B Perodo Acadmico: Sept. 25/2012 Feb 14/2013 rea Acadmica: SOFTWARE PRERREQUISITO (S): CORREQUISITO (S):
CONTENIDOS DISCIPLINARES DEBEN SER APROBADAS ANTES CURSAR ESTE CDIGO CONTENIDOS QUE DEBEN SER CURSADOS MISMO TIEMPO QUE CONTENIDO

PROGRAMACIN I

OC-0100

DOCENTE: Ing. CHRISTIAN RONALD TORRES MORN Ttulo: MAGITER EN GERENCIA EDUCATIVA E-mail: crtorres@utm.edu.ec Datos personales: Profesor contratado a tiempo completo de la asignatura Estructura de Datos, y Herramientas Web
Director de Tesis de Ingeniera en Sistemas Informticos, miembro de los equipos de Vinculacin con la sociedad, Docente Tutor de pasantas pre profesionales, coautor del manual de Estructura de Datos junto a la Ing. Esthela San Andrs Lz, coautor del folleto de flujogramas para NBU.

II.- RUTA FORMATIVA a.- DEL PERFIL DE EGRESO: Competencia/Resultado de Aprendizaje: Competencia:
3. Construye soluciones informticas de calidad que mejoren la eficiencia y eficacia de una organizacin haciendo uso correcto de la tecnologa.

Resultado de Aprendizaje:
a. Capacidad de planificar, disear, conducir e interpretar resultados de experimentos orientados a la informtica.

b.- OBJETIVO GENERAL DE LA ASIGNATURA:


Capacitar al estudiante con los conocimientos significativos en administracin de memoria dinmica y herramientas tiles en los diseos, construcciones y usos principales de algoritmos en la estructuracin de datos lineales y no lineales

c.- DESCRIPCIN DE LA ASIGNATURA:


La materia introduce al estudiante a los conceptos y aplicacin en la administracin de memoria, aplicando programacin estructurada y orientada a objetos, permite conocer la estructura bsica operacional de la memoria RAM y de los grandes diseos de software, aplicando C++ el estudiante desarrollar proyectos cientficos tanto con interfaces en modo grfico y en modo texto, tomando como referencia aplicaciones en el campo general de otras carreras.

III.- RESULTADOS DE APRENDIZAJE DE LA ASIGNATURA Resultados del Aprendizaje (Objetivos Especficos) Formas Niveles del resultado de aprendizaje Ponderacin

Describir la definicin de la estructura de datos, los tipos de datos simples, bsicos y compuestos en un ensayo tcnico con: descripcin general del tema clara; ideas que tienen relacin, claridad y objetividad con el tema; y una conclusin clara con aporte personal.

NIVEL ALTO: 86-100

1.- Identificar los tipos estructurados de datos estticos y dinmicos empleados en la creacin de aplicaciones, considerando los lenguajes de programacin. (Nivel Taxonmico: Conocimiento)

1.- Pruebas escritas, orales (fotos), talleres, informes de ensayo, investigacin y Prcticas en el Lenguaje de programacin C++.

Describir la definicin de la estructura de datos, los tipos de datos simples, bsicos y compuestos en un ensayo tcnico con: descripcin general del tema confusa; pocas ideas que tienen relacin, claridad y objetividad con el tema; y una conclusin confusa con aporte personal.

NIVEL MEDIO 71-85

Describir la definicin de la estructura de datos, los tipos de datos simples, bsicos y compuestos en un ensayo tcnico con: descripcin general del tema confusa; poca o ninguna idea que tienen relacin, claridad y objetividad con el tema; y una conclusin confusa sin aporte personal.

NIVEL BSICO 70

2.- Elaborar aplicaciones dinmicas de estructura lineal, almacenamiento y recuperacin de los mismos en unidades de almacenamiento, aplicarn soluciones de administracin de memoria mediante el desarrollo de aplicaciones cientficas y comerciales. (Nivel Taxonmico: Aplicacin)

Comparar con la utilizacin de un cuadro comparativo tres semejanzas y tres diferencias entre los tipos de datos que permiten almacenar ms de un dato; reflejando las relaciones de las comparaciones con ideas claras.

NIVEL ALTO: 86-100

2.- Pruebas escritas, orales (fotos), talleres, informes de ensayo, investigacin y Prcticas en el Lenguaje de programacin C++.

Comparar con la utilizacin de un cuadro comparativo tres semejanzas y tres diferencias entre los tipos de datos que permiten almacenar ms de un dato; reflejando las relaciones de las comparaciones con ideas pocos claras.

NIVEL MEDIO 71-85

Comparar con la utilizacin de un cuadro comparativo dos semejanzas y dos diferencias entre los tipos de datos que permiten almacenar ms de un dato; reflejando las relaciones de las comparaciones con ideas confusas.

NIVEL BSICO 70

3.Implementar aplicaciones dinmicas de estructura Lineal, almacenamiento y recuperacin de los mismos en unidades de almacenamiento, aplicarn soluciones de administracin de memoria mediante el desarrollo de aplicaciones cientficas y comerciales (Nivel Taxonmico: Aplicacin)

Implementar aplicaciones dinmicas de estructura Lineal, almacenamiento y recuperacin de los mismos en unidades de almacenamiento, aplicarn soluciones de administracin de memoria mediante el desarrollo de aplicaciones cientficas y comerciales.

NIVEL ALTO: 86-100

3.- Pruebas escritas, orales (fotos), talleres, informes de ensayo, investigacin y Prcticas en el Lenguaje de programacin C++.

Implementar aplicaciones dinmicas de estructura Lineal, almacenamiento y recuperacin de los mismos en unidades de almacenamiento, aplicarn soluciones de administracin de memoria mediante el desarrollo de aplicaciones comerciales.

NIVELMEDIO 71-85

Implementar aplicaciones dinmicas de estructura No Lineal, almacenamiento y recuperacin de los mismos en unidades de almacenamiento.

NIVEL BSICO 70

NIVEL ALTO:

4.Implementar aplicaciones dinmicas de estructura no Lineal, almacenamiento y recuperacin de los mismos en unidades de almacenamiento, aplicarn soluciones de administracin de memoria mediante el desarrollo de aplicaciones cientficas y comerciales (Nivel Taxonmico: Aplicacin)

Elaborar un programa con estructuras dinmicas no lineales bien detallado.

86-100

4.- Pruebas escritas, orales (fotos), talleres, informes de ensayo, investigacin y Prcticas en el Lenguaje de programacin C++.

Elaborar un programa con estructuras dinmicas no lineales con poca claridad.

NIVEL MEDIO 71-85

Elaborar un programa con estructuras dinmicas no lineales de forma confusa.

NIVEL BSICO 70

Elaborar un programa que emplee estructuras arborescentes de forma AVL uso de forma clara.

NIVEL ALTO: 86-100

5.- Pruebas escritas, orales (fotos), talleres, 5.- Organizar la informacin en informes de ensayo, algoritmos y estructuras AVL y su investigacin y relacin con los gestores de Base de Prcticas en el Datos (Nivel Taxonmico: Aplicacin) Lenguaje de programacin C++.

Elaborar un programa que emplee estructuras arborescentes de forma AVL de forma poco clara.

NIVEL MEDIO 71-85

Elaborar un programa que emplee estructuras arborescentes de forma AVL de forma confusa.

NIVEL BSICO 70

IV.- PROGRAMACIN
PROGRAMA DEL DISCIPLINAR (ASIGNATURA, CURSO, TALLER, OTRO) POR
46 23 Experiencia: Aplicando concretar lluvia de ideas

HORAS PRESENCIALES

HORAS AUTNOMAS

ESTRATEGIAS PARA EL TRABAJO AUTNOMO

1.

UNIDAD I: GENERALIDADES Y
DEFINICIONES DE ESTRUCTURA DE DATOS

conocimientos

Definicin Variables, Tipos de datos. Representacin Grfica de las estructura de datos Acceso a las estructura de Datos (Estticas)

relativo a la memoria y sus diferentes importancias en el funcionamiento computador Reflexin: En equipos de trabajo, analizar el funcionamiento general del computador y de los del

Tipos de Estructuras de Datos Diferencia entre gestin

programas, considerando las siguientes aplicaciones: Procesadores de texto, Hojas

Esttica y Dinmica Operaciones punteros Asignacin memoria Liberacin memoria La constante NULL Ventajas punteros
Resolucin demostrativos de y ejercicios de

con

varios

23 Tareas extraclases. Investigacin del tema de la unidad Tareas en el lenguaje de programacin C++. CD. interactivo libros PDF. Apoyo para el estudiante, Espacio virtual de la Universidad Tcnica de Manab, Internet. Guardar la evidencia en el Portafolio Digital.

-Formarn equipos de 2 estudiantes -Del taller o tarea respectivas se escogern ejercicios representativos de acuerdo al resultado de aprendizaje -Se aplicar la tcnica de procesos. -Al final de la tarea se interrogarn, as: Qu cosas fueron difciles? Qu cosas fueron fciles? Qu aprend hoy da? Qu aporte a mi equipo? -Aplicarn un ASAT. (Aporte Significativo de Aprendizaje de la Tarea o Taller). -Para el ensayo del tema respetivo se Tomarn lo lineamientos ms importantes de la introduccin llamativa, fundamentacin y conclusin crtica.

de

clculo,

Reproductores,

Tareas del sistema operativo

dinmica

de

como Impresin, etc. Conceptualizacin:

dinmica

de

Elaboracin conceptuales,

de

mapas de

cuadros

funcionamiento y estructurales de la memoria.

desventajas

de
Aplicacin:

planteamiento de problemas.

2.

UNIDAD II: ESTRUCTURAS SIMPLES


Y COMPUESTAS

60

30

Listas Abiertas

30 Tareas extraclases. Aplicando lluvia de ideas Investigacin del concretar conocimientos tema de la unidad en el relativo a problemas Tareas lenguaje de
Experiencia:

-Formarn equipos de 2 estudiantes -Del taller o tarea respectivas se escogern ejercicios representativos de acuerdo al resultado de aprendizaje -Se aplicar la tcnica de procesos. -Al final de la tarea se

Definicin de listas abiertas Declaracin e implementacin de una lista

informticos planteados

Reflexin: Operaciones con Listas En grupos de trabajo, analizar Insercin de un nodo Bsqueda de un nodo Recorridos de una lista Eliminacin de un nodo Listas y Archivos Variaciones de listas Pilas y Colas Conceptualizacin: Elaboracin conceptuales, de conclusiones cuadros de el funcionamiento general de los diferentes las algoritmos diferentes

considerando aplicaciones.

programacin C++. CD. interactivo libros PDF. Apoyo para el estudiante, Espacio virtual de la Universidad Tcnica de Manab, Internet. Guardar la evidencia en el Portafolio Digital.

interrogarn, as: Qu cosas fueron difciles? Qu cosas fueron fciles? Qu aprend hoy da? Qu aporte a mi equipo? -Aplicarn un ASAT. (Aporte Significativo de Aprendizaje de la Tarea o Taller). -Para el ensayo del tema respetivo se Tomarn lo lineamientos ms importantes de la introduccin llamativa, fundamentacin y conclusin crtica.

funcionamiento y alternativas Listas circulares o cerradas Declaracin e implementacin de una lista circular Aplicacin: Resolucin demostrativos Bsqueda de un nodo Recorridos de una lista Eliminacin de un nodo de y ejercicios de estructurales de solucin.

Operaciones con Listas Insercin de un nodo

planteamiento de problemas.

Listas doblemente enlazadas abiertas y cerradas Declaracin e implementacin de una lista doblemente enlazada

Operaciones con Listas Insercin de un nodo Bsqueda de un nodo Recorridos de una lista Eliminacin de un nodo

3.

UNIDAD

III:

ESTRUCTURAS

26

13

ARBORESCENTES

Definicin, implementacin

13 Tareas extraExperiencia: clases. Aplicando debates Investigacin del definir la importancia de tema de la unidad en el aplicar algoritmos generales de Tareas

-Formarn equipos de 2 estudiantes -Del taller o tarea respectivas se escogern ejercicios representativos de acuerdo al resultado de aprendizaje -Se aplicar la tcnica de procesos.

rboles Tipos de PreOrden InOrden PostOrden recorridos:

binarios

su

importancia en la agilidad y seguridad de los datos en el campo empresarial en general. Reflexin:

Operaciones con rboles Binarios de Bsqueda

trabajo,

En

grupos analizar

de el

funcionamiento general de los Bsqueda de Insercin de Borrado de * Nodo hoja. *Nodo rama. Movimiento a travs del rbol. Comprobacin de rboles vacos. Comprobacin del nodo hoja. Clculo de: Nmero de nodos. Altura del rbol. Altura de un nodo. elementos. elementos. elementos. principales sistemas

informticos, considerando el avance tecnolgico del

lenguaje de programacin C++. CD. interactivo libros PDF. Apoyo para el estudiante, Espacio virtual de la Universidad Tcnica de Manab, Internet. Guardar la evidencia en el Portafolio Digital.

-Al final de la tarea se interrogarn, as: Qu cosas fueron difciles? Qu cosas fueron fciles? Qu aprend hoy da? Qu aporte a mi equipo? -Aplicarn un ASAT. (Aporte Significativo de Aprendizaje de la Tarea o Taller). -Para el ensayo del tema respetivo se Tomarn lo lineamientos ms importantes de la introduccin llamativa, fundamentacin y conclusin crtica.

software en la base de datos Conceptualizacin: propuestas Elaboracin de

algortmicas,

prcticas y de alternativas de resolucin. Aplicacin: Resolucin de

ejercicios demostrativos y de planteamiento de problemas.

rboles degenerados. 28 14 Experiencia: Aplicando el planteamiento de problemas, dificultades y de identificar generar la

4.

UNIDAD IV: TIPOS DE RBOLES


ESPECIALES rboles equilibrados. Definicin. Operaciones en AVL. Factor de equilibrio. Rotacin simple de nodos. Rotacin simple a la derecha. Rotacin simple a la izquierda. Rotacin doble de nodos a la derecha. Rotacin doble de nodos s la izquierda. Reequilibrados de rboles AVL. Reequilibrados en rboles AVL por insercin de un nodo.

necesidad

encontrar

soluciones algortmicas. Reflexin: En grupos de trabajo, analizar el funcionamiento de los

diferentes propuestos. Conceptualizacin:

algoritmos

Elaboracin de propuestas de funcionamiento y alternativas

14 Tareas extraclases. Investigacin del tema de la unidad Tareas en el lenguaje de programacin C++. CD. interactivo libros PDF. Apoyo para el estudiante, Espacio virtual de la Universidad Tcnica de Manab, Internet. Guardar la evidencia en el Portafolio Digital.

-Formarn equipos de 2 estudiantes -Del taller o tarea respectivas se escogern ejercicios representativos de acuerdo al resultado de aprendizaje -Se aplicar la tcnica de procesos. -Al final de la tarea se interrogarn, as: Qu cosas fueron difciles? Qu cosas fueron fciles? Qu aprend hoy da? Qu aporte a mi equipo? -Aplicarn un ASAT. (Aporte Significativo de Aprendizaje de la Tarea o Taller). -Para el ensayo del tema respetivo se Tomarn lo lineamientos ms importantes de la introduccin llamativa, fundamentacin y conclusin crtica.

estructurales de solucin. Aplicacin:

Reequilibrados en rboles AVL por borrado de un nodo.

Resolucin demostrativos

de y

ejercicios de

planteamiento de problemas.

V.- METODOLOGA Y RECURSOS


Se aplicar un PEA, Dinmica de integracin y socializacin, documentacin, presentacin de los temas de clase y objetivos, lectura de motivacin y video del tema, tcnica lluvia de ideas, para interactuar entre los receptores, aplicando el ciclo del aprendizaje. Se aplicaran talleres con ASAT (aporte significativos de los aprendizajes de tareas o talleres) Revisin de la clase programada antes del da sealado para la sesin correspondiente (blog-docente) Consultas, tareas y talleres se entregarn en archivo escrito al docente y en archivo lgico al rea de contacto del curso. Los recursos disponibles para el curso sern: pizarra tiza lquida(4), proyector, internet inalmbrico, dispensador de agua, aire acondicionado, mesas de trabajo en equipo, proyector para equipos de trabajos en su lugar respectivo, sistema de audio, impresora de ltima generacin, computadores(2) del aula,1 porttiles por equipo del estudiante, libros-CD-interactivo- pdf., blog. del estudiante y del docente para interactividad y fortalecimiento contino.

VI.- PLANEACIN DE LA EVALUACIN


Las evaluaciones estarn orientadas a los procesos, lo que conlleva a que ninguna evaluacin tenga una ponderacin determinante para la acreditacin. Durante el periodo acadmico, el estudiante de la Universidad Tcnica de Manab, se someter obligatoriamente a los siguientes parmetros de evaluacin de los aprendizajes: evaluacin de medio ciclo, evaluacin de final de cic lo, evaluacin de actividades varias y evaluaciones de investigaciones.

ACREDITACIN
MEDIO CICLO
EXMENES (30%) ACT. EN EL AULA (40%) Tareas Ejercicios de aplicacin Lecciones orales Pruebas escritas Participacin Exposiciones ACTIVIDADES DE INVESTIGACIN PORTAFOLIO PROYECTO INFORME FINAL (30%) TOTAL 15 5 2.5 2.5 5 2.5 2.5 5 10

FINAL DE CICLO
15 5 2.5 2.5 5 2.5 2.5 5 10

EXAMEN DE RECUPERACIN

ASISTENCIA

VI.- BIBLIOGRAFA a.- Bibliografa Bsica:


AUTOR TTULO DE LIBRO EDICIN AO PUBLICACIN EDITORIAL

MARTNEZ, Romn

TORRES, Christian

Estructura de Datos, Referencia practica con objetos orientados a objetos Manuales de estructura de Datos en C++
TTULO DE LIBRO EDICIN

2008

Elda Quiroga

2010

Estudiantil-FCI-UTM. Ecuador
EDITORIAL

b.- Bibliografa Recomendada:


AUTOR AO PUBLICACIN

Garrido Antonio

Abstraccin y Estructura de Datos en C++

2006

Delta Publicaciones S. L.

c.- Lecturas complementarias:


http://c.conclase.net/edd/. http//www.utm.edu.ec http://evirtual.utm.edu.ec/course/view.php?id=25 robotica.uv.es/pub/Libro/PDFs/CAPI5.pdf www.dc.uba.ar ... Algoritmos y Estructuras de Datos II http://www.programacion.com/articulo/estructuras_de_datos_y_algoritmos_en_java_309/2 http://www.youtube.com/watch?v=tOOEff1r-tk

VII.- COMPROMISO TICO


Escuchar y respetar democrticamente el criterio de los dems. Hacer silencio cuando alguien est haciendo uso de la palabra. Mantener el aula limpia, evitando botar basura en el piso No deteriorar ni rayar, las paredes, mesas y sillas. Procurar en todo momento la correcta manipulacin y utilizacin de los equipos informticos. La asistencia es obligatoria a todas las actividades programadas en esta asignatura. El estudiante ingresar a clase a la hora establecida y solo por una ocasin se aceptar el retraso de 10 minutos. El estudiante por ningn concepto utilizar celulares en el aula, igual comportamiento tendr el docente. El intento de copia de cualquier estudiante ser sancionado con la calificacin de cero y no habr oportunidad de recuperacin, independiente de las sanciones establecidas por la universidad. Los trabajos se entregarn en la fecha establecida y no se recibir en otra oportunidad. El estudiante ingresar al aula sin gorra y no consumir alimentos dentro del aula. El trabajo escrito ser realizado con las propias palabras e ideas del estudiante. Si se descubre la copia textual de un prrafo o un texto se calificar con cero.

Lugar y fecha: Portoviejo, 6 de Mayo del 2013

Ing. Christian Ronald Torres Morn (f) Docente ANEXO. N 1

(f) Coordinador

RESULTADOS DE APRENDIZAJE DE LA CARRERA ESPECFICOS A LOS QUE APUNTA LA MATERIA (ABET).


a. b. c. Capacidad de realizar anlisis, sntesis y aplicacin de las matemticas y ciencias bsicas en la solucin de problemas de ingeniera en sistemas informticos. Capacidad de planificar, disear, conducir e interpretar resultados de experimentos orientados a la informtica. La capacidad de disear sistemas, procesos, modelos y componentes informticos que cumplan los estndares nacionales o internacionales, tomando en cuenta las limitaciones econmicas, ambientales, sociales, polticas, de salud y seguridad del entorno, y cumpliendo satisfactoriamente con las especificaciones y restricciones existentes o indicadas por los interesados o por los criterios de sostenibilidad. Capacidad para funcionar como parte de un equipo de profesionales de distintas reas del conocimiento, demostrando una efectiva cooperacin, comunicacin, con habilidades para resolver conflictos y contribuyendo proactivamente en la propuesta de lneas estratgicas desde el punto de vista informtico, para la solucin de problemas. Capacidad para identificar, formular, evaluar y resolver tcnicamente problemas de ingeniera planteados de acuerdo a las necesidades del medio. Capacidad para comprender, reconocer y aplicar valores y cdigos de tica profesional, que le permitan desenvolverse sin perjudicar a sus clientes y contribuyendo al desarrollo de la sociedad. Habilidad para presentar efectivamente, ideas, proyectos, informes de investigaciones, documentos de trabajo de manera escrita, oral y digital, utilizando las herramientas de las nuevas tecnologas de la informacin. Habilidad y capacidad para comprender el impacto de las soluciones informticas a la realidad local, nacional e internacional en un contexto econmico global, ambiental y social. Habilidad y aptitud para ser un profesional con el compromiso del aprendizaje continuo, con capacidad para reconocer las oportunidades para mejorar en su campo profesional. Habilidad para identificar temas y problemas de actualidad con respecto al entorno local, regional y global, con el fin de relacionarlos con propuestas de soluciones creativas y eficientes. Capacidad y destreza para utilizar tcnicas, habilidades y herramientas en el desarrollo de software y hardware para implementar soluciones a problemas de su profesin.

d.

e. f.

g.

h.

i.

j.

k.

Contribucin de la materia a los resultados de aprendizaje de la carrera:

Informacin General
Programa Codificacin del curso: c++ Ttulo del curso: estructura de dato Nmero crditos: cinco (5) crditos Total de Horas del Curso: 80 horas Descripcin Del Curso
La materia introduce al estudiante a los conceptos y aplicacin en la administracin de memoria, aplicando programacin estructurada y orientada a objetos, permite conocer la estructura bsica operacional de la memoria RAM y de los grandes diseos de software, aplicando C++ el estudiante desarrollar proyectos cientficos tanto con interfaces en modo grfico y en modo texto, tomando como Referencia aplicaciones en el campo general de otras carreras.

Carta de presentacin

Mi nombre es Shirley Alexandra murillo cabrea vivo en Portoviejo y estudio en la Facultad de Ciencias Informticas de la Universidad Tcnica de Manab, soy alumno de la asignatura de estructura de datos y me gusta ser responsable y cumplir de buena manera mis deberes. Entre mis metas estn el convertirme en un gran profesional y cumplir a cabalidad con todos mis sueos.

Autorretrato

Mi

nombre

es soy

SHIRLEY estudiante

ALEXANDRA de la

MURILLO de

CABRERA

asignatura

estructura de datos, pertenezco al segundo semestre paralelo B en la facultad de Ciencias Informticas de la universidad Tcnica de Manab. Soy una persona responsable, amigable, organizada y me gusta

trabajar en equipo. Mi meta es culminar mi carrera universitaria y ser una gran ingeniera en sistemas para as poder sacar adelante a mi hijo

Estructura de datos

Que son las estructuras de datos

Es una coleccin de datos ordenados que permiten el manejo de datos ordenados Estructura struct [etiqueta] nombre q se le va a dar a la estructura { Campo 1; campos o miembros de la Campo 2; estructura (no variables) Campo 3; . . . }; ->termina en punto y coma

Asignar

se puede asignar en cualquier lugar del programa usa el = algunos casos como el string se una strcpy , strcat los mecanismos de i/o son partes de esta asignacin, get, printf, y cin.

Aqu no es importante el orden Inicializar solo es posible cuando se crea la variable se usa el = y las { }; detallando cada elemento y separado por la coma debe tener en cuenta al ser usado por la estructura por la variedad de datos cadena de formato para el printf

Ejercicio
#include<stdio.h> #include<conio.h> #include<iostream.h> struct empleados{ int long cedula; char nombre[15],apellido[30],ciudad[18],depa[20]; float sueldo; }; char mat[1][6][35]={"Shirley","Murillo","1312863895","Portoviejo","700.50","Ventas"}; void main() { clrscr(); struct empleados e={1313152345,"Richard","Moreira","Portoviejo","Ventas",700.50}; int c; cout<<"\nMatriz="<<mat<<"\n"; cout<<"\nV. estructurada="<<&e<<"\n"; printf("\nDireccion de memoria de la matriz:\n\n") ; for(c=0;c<6;c++) cout<<&mat[0][c]<<"\t"; printf("\n***************************************************\nDirecciones de memoria de la variable estructurada:\n\n"); cout<<&e.nombre<<"\t"; cout<<&e.apellido<<"\t"; cout<<&e.cedula<<"\t"; cout<<&e.ciudad<<"\t"; cout<<&e.sueldo<<"\t"; cout<<&e.depa<<"\t\n"; getch(); }

Ejercicio
#include<conio.h>

#include<stdio.h> #include<iostream.h>

struct empresa { char nombre[30]; float sueldo; float ventas; };

void ingreso(struct empresa &dato); void mostrar(struct empresa dato); void bono(float sue);

void main() { clrscr(); struct empresa A[5];

for(int x=0;x<5;x++) ingreso(A[x]); for(x=0;x<5;x++) {mostrar(A[x]); bono(A[x].ventas); }

getch(); }

void mostrar(struct empresa dato)

{clrscr(); printf("\nCliente: %s\nSueldo: %.2f\nVentas: %.2f\n", dato.nombre, dato.sueldo, dato.ventas); }

void ingreso(struct empresa &dato) {

printf("\n****DATOS DEL EMPLEADO****\n"); printf("\nNombre: "); cin>>dato.nombre; printf("Sueldo: "); fflush(stdin); cin>>dato.sueldo; printf("Ventas: "); fflush(stdin); cin>>dato.ventas;

void bono(float sue) { if(sue>800) printf("\nRecibe bono\n"); else printf("Continue trabajando de mejor forma\n"); }

Ejercicio
#include<conio.h> #include<iomanip.h>

struct fecha { int dia; int mes; int anio;

};

void Pidefecha(struct fecha &f); void Verfecha(struct fecha f); void Suma(int d);

void Verfecha(struct fecha f) //para dar el formato a la fecha {cout<<setfill('0')<<setw(2)<<f.dia<<'/'<<setw(2)<<f.mes<<'/'<<setw(4)<<f.anio; }

void Pidefecha(struct fecha &f) {char ch; cout<<"Escriba fecha de la forma dd/mm/aa: "; cin>>f.dia>>ch>>f.mes>>ch>>f.anio; }

void main() { clrscr(); struct fecha f1; Pidefecha(f1); cout<<"\nFecha ingresada: "; Verfecha(f1); cout<<"\nhe terminado..."; getch(); }

Clase 3
#include<stdio.h> #include<conio.h> #include<iostream.h> struct empleados{ int long cedula; char nombre[15],apellido[30],ciudad[18],depa[20]; float sueldo; }; char mat[1][6][35]={"Richard","Moreira","1313152345","Portoviejo","700.50","Ventas"}; void main() { clrscr(); struct empleados e={1313152345,"Richard","Moreira","Portoviejo","Ventas",700.50}; int c; printf("Informacion de la matriz:\n\n") ; for(c=0;c<6;c++) printf("%s\n",mat[0][c]); printf("\nInformacion de la variable estructurada:\n\n"); cout<<e.nombre<<"\t"; cout<<e.apellido<<"\t"; cout<<e.cedula<<"\t"; cout<<e.ciudad<<"\t"; cout<<e.sueldo<<"\t"; cout<<e.depa<<"\t"; getch();

Clase 4
#include<conio.h> #include<stdio.h> #include<iostream.h> struct almacenar { char nombre[30]; float sueldos; float val_vent; }; void main() {clrscr(); //ingreso de datos a la variable estructurada struct almacenar A[5]; for(int x=0;x<5;x++) { printf("Ingrese nombre:\n"); scanf("%s",A[x].nombre); printf("Ingrese sueldo:\n"); fflush(stdin); cin>>A[x].sueldos; //scanf("%f",&A[x].sueldos); printf("Ingrese valor de ventas:\n"); fflush(stdin); scanf("%f",&A[x].val_vent); } //imprimir la informacion de la variable estructurada. clrscr(); for(x=0;x<5;x++) printf("Su informacion es:\n************************\nNombre: %s\nSueldo: %.2f\nValor de ventas: %.2f\n************************\n",A[x].nombre,A[x].sueldos,A[x]. val_vent); getch(); }

Clase 5
1: #include<conio.h> #include<stdio.h> #include<iostream.h> struct empresa { char nombre[30]; float sueldo; float ventas; }; void ingreso(struct empresa dato[]); void mostrar(struct empresa dato[]); void bono(float sue); void main() { clrscr(); struct empresa A[TMAX]; { ingreso(A); mostrar(A); //bono(A.ventas); } getch(); } void mostrar(struct empresa dato[]) {clrscr(); //falta printf("\nCliente: %s\nSueldo: %.2f\nVentas: %.2f\n", dato.nombre, dato.sueldo, dato.ventas); } void ingreso(struct empresa dato[]) {int i;

printf("\n****DATOS DEL EMPLEADO****\n"); for(i=0;i<5;i++) { printf("\nNombre[%i]: ",i+1); cin>>dato[i].nombre; printf("Sueldo[%i]: ",i+1); fflush(stdin); cin>>dato[i].sueldo; printf("Ventas[%i]: ",i+1); fflush(stdin); cin>>dato[i].ventas; } } void bono(float sue) { if(sue>800) printf("\nRecibe bono\n"); else printf("Continue trabajando de mejor forma\n"); }

2: #include<iostream.h> #include<conio.h> #include<stdio.h> //Estructura Anidada Externa struct notas{float lecciones; float tareas; float consultas; float tgrupal; float evaluacion; }; struct SISTEMA{char nombre[50]; char nivel[30]; struct notas NMC_MAT,NMC_PRO,NMC_ESD; }; void main()

{clrscr(); struct SISTEMA A; printf("\nNombre: "); fflush(stdin); cin>>A.nombre; printf("Nivel: "); fflush(stdin); cin>>A.nivel; printf("\n****Notas de Matematicas****\n"); do{printf("\nLecciones: "); fflush(stdin); cin>>A.NMC_MAT.lecciones;}while(A.NMC_MAT.lecciones<1||A.NMC_M AT.lecciones>10); do{printf("Tareas: "); fflush(stdin); cin>>A.NMC_MAT.tareas;}while(A.NMC_MAT.tareas<1||A.NMC_MAT.tar eas>8); do{printf("Consultas: "); fflush(stdin); cin>>A.NMC_MAT.consultas;}while(A.NMC_MAT.consultas<1||A.NMC_M AT.consultas>5); do{printf("Trabajos Grupales: "); fflush(stdin); cin>>A.NMC_MAT.tgrupal;}while(A.NMC_MAT.tgrupal<1||A.NMC_MAT.t grupal>12); do{printf("Evaluacion: "); fflush(stdin); cin>>A.NMC_MAT.evaluacion;}while(A.NMC_MAT.evaluacion<1||A.NMC_ MAT.evaluacion>15); getch(); }

Clase 6
#include<conio.h> #include<stdio.h> #include<iostream.h> void main() { clrscr(); int mat[5]={20,3,8,90,10}; int *p; int i; q=mat; //q=&mat[0]; cout<<"Direccion ---- Contenido"<<"\n"; for(i=0;i<5;i++) {cout<<q<<"----"<<*(q) /* for(i=0;i<5;i++) { p=&mat[i]; cout<<p<<"----"<<*p<<"\n"; }*/ getch(); }

Clase 7
#include<conio.h> #include<iostream.h> struct empleado { char nombre[50]; int nht; float vht,vhe,sal; }; void ingreso(struct empleado *emp); void calculo(struct empleado *emp); void mostrar(struct empleado *emp); void main() { struct empleado E[5]; struct empleado *p=E; int i; clrscr(); for(i=0;i<5;i++) { ingreso(p); p++; } p=E; for(i=0;i<5;i++) { calculo(p); p++; }

p=E; for(i=0;i<5;i++) { mostrar(p); p++; } getch(); } void ingreso(struct empleado *emp) { cout<<"Ingrese nombre: ";cin>>emp.nombre; cout<<"Ingrese numero de horas trabajadas: ";cin>>E.nht; cout<<"Ingrese valor de horas trabajadas: ";cin>>E.vht; cout<<"Ingrese valor de horas extras: ";cin>>E.vhe; } void calculo(struct empleado *emp) { if(E.nht>40) { he=(E.nht-40)*E.vhe; E.sal=40*E.vht+he; } else E.sal=(E.nht*E.vht); } void mostrar(struct empleado *emp) { cout<<"Salario: "<<*p<<endl; }

Clase 8
#include<conio.h> #include<stdio.h> #include<iostream.h> #include<iomanip.h> #include<string.h> struct control_asistencia{ char est[45]; char nivel[30]; char paralelo; char aula[8]; char hinicio[6]; char hfin[6]; int dia; int mes; int anio; }; void registrar(control_asistencia *c,char e[],char n[],char p, char a[],char hi[],char hf[],int d,int m,int anio); void imprimir(control_asistencia c); //implementacion void registrar(control_asistencia c[],int n) {clrscr(); for(int i=0;i<n;i++) { printf("\nIngreso de Informacion"); printf("\n Ingrese el nombre del estudiante: "); cin>>c[i].est; printf("\n Ingrese el nivel del estudiante: "); cin>>c[i].nivel;

printf("\n Ingrese el paralelo del estudiante: "); cin>>c[i].paralelo; printf("\n Ingrese el aula del estudiante: "); cin>>c[i].aula; printf("\n Ingrese la hora de inicio: "); cin>>c[i].hinicio; printf("\n Ingrese la hora final: "); cin>>c[i].hfin; char ch; printf("\nIngrese la fecha en formato dd/mm/yyyy: "); cin>>c[i].dia>>ch>>c[i].mes>>ch>>c[i].anio; cout<<"Ingreso finalizado...\n"; getch(); } } void imprimir(control_asistencia c[],int n) {clrscr(); cout<<"Datos Ingresados\n"; cout<<"Estudiante"<<"\t"<<"Nivel"<<"\t"<<"Paralelo"<<"\t"<<"Aula"<<"\t "<<"Hora Inicio"<<"\t"<<"Hora Fin"<<"\t"<<"fecha"<<"\n"; for(int i=0;i<n;i++) cout<<c[i].est<<"\t\t"<<c[i].nivel<<"\t"<<c[i].paralelo<<"\t"<<c[i].aula<<"\ t"<<c[i].hinicio<<"\t"<<c[i].hfin<<"\t"<<c[i].dia<<"/"<<c[i].mes<<"/"<<c[i]. anio<<endl; } void main() {control_asistencia E[5]; registrar(E,2); // se hara dos ingresos imprimir(E,2); // se imprimira dos ingresos getch();

Clase 9

#include<iostream.h> #include<conio.h> #include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct _alumnos { char nom[25]; struct _alumnos *sig; }tipoAlumno; // Se renombra tipoAlumno a punteros... typedef tipoAlumno *pnodo; typedef tipoAlumno *Lista;

// Funciones prototipos // se pone *l porque es un paso por referencia y asi se puede cambiar su posicion en memoria. void almacenar(Lista *l, char c[]) {pnodo nodo; nodo=(pnodo)malloc(sizeof(tipoAlumno)); if(nodo==NULL) {cout<<"\n Sin espacio de memoria"; return; } // Se llena la informacion del nodo strcpy(nodo->nom,c); // Procedo hacer los enlaces if (!*l) {// Es el primer nodo que va a ingresar a la lista nodo->sig=NULL;

*l=nodo; } else {nodo->sig=*l; *l=nodo; } } void ver_lista(Lista l) {pnodo n=l; while(n) {cout<<"\n"<<n->nom; n=n->sig; } } void main() { clrscr(); Lista L1=NULL; // L1 no es una variable es un puntero porque Lista es un puntero, y hereda su tipo. int op; do{ printf("\n1. Registrar Nombre"); printf("\n2. Mostrar Lista"); printf("\n3. Salir"); do{cin>>op; }while((op>3)) //op mayor a 3 y op menor a 1 almacenar(&L1,"Ana Maria"); almacenar(&L1,"Carlos Bravo"); almacenar(&L1,"shirley murillo"); almacenar(&L1,"richi moreira"); ver_lista(L1); cin.get(); }

Clase 10
#include<conio.h> #include<stdio.h> #include<iostream.h> #include<stdlib.h> typedef struct _alumnos{ char nom[25]; struct _alumnos *sig; }tipoAlumno; typedef tipoAlumno *pnodo; typedef tipoAlumno *Lista; //funciones prototipos void almacenar(Lista *l, char c[]); void almacenar_fin(Lista *l, char c[]); void ver_lista(Lista l); void main() {Lista L1=NULL; int op; do{ clrscr(); printf("\n1. Registrar Nombre al inicio"); printf("\n2. Registrar Nombre al final"); printf("\n3. Mostrar Lista"); printf("\n4. Salir\n"); do{ cin>>op; }while ((op>4) ||(op<1)); if (op<=2) { char nombre[25]; clrscr(); printf("\nREGISTRO DE NUEVO CLIENTE\n");

printf("\n Ingrese un Nombre: "); fflush(stdin); gets(nombre); if(op==1) almacenar(&L1,nombre); else almacenar_fin(&L1,nombre); } else if(op==3) {clrscr(); ver_lista(L1); } }while(op!=4); } void almacenar(Lista *l, char c[]) {pnodo nodo; nodo=(pnodo)malloc(sizeof(tipoAlumno)); if (nodo==NULL) { cout<<"\n Sin espacio de memoria"; return; } //Se llena la informacion del nodo strcpy(nodo->nom,c); //Procedo hacer los enlaces nodo->sig=*l; *l=nodo; } //****** void almacenar_fin(Lista *l, char c[]) {pnodo nodo; nodo=(pnodo)malloc(sizeof(tipoAlumno));

if (nodo==NULL) { cout<<"\n Sin espacio de memoria"; return; } //Se llena la informacion del nodo strcpy(nodo->nom,c); //Procedo hacer los enlaces if(!*l) {nodo->sig=*l; *l=nodo; } else {pnodo aux=*l; while(aux->sig!=NULL) // (aux->sig) aux=aux->sig; aux->sig=nodo; nodo->sig=NULL; } } //****** void ver_lista(Lista l) {pnodo n=l; while (n) {cout<<"\n"<<n->nom; n=n->sig; } getch(); }

Clase 11
#include<conio.h>

#include<stdio.h> #include<iostream.h> #include<stdlib.h> #include<string.h>

typedef struct _alumnos{ char nom[25]; struct _alumnos *sig; }tipoAlumno; typedef tipoAlumno *pnodo; typedef tipoAlumno *Lista; //funciones prototipos void almacenar(Lista *l, char c[]); void almacenar_fin(Lista *l, char c[]); void almacenar_ord(Lista *l, char c[]); void ver_lista(Lista l); void main() {Lista L1=NULL; clrscr(); almacenar_ord(&L1,"Vargas N."); almacenar_ord(&L1,"Espinales A."); almacenar_ord(&L1,"Delgado S."); almacenar_ord(&L1,"Murillo S."); almacenar_ord(&L1,"Molina K."); almacenar_ord(&L1,"Balda J."); ver_lista(L1); }

void almacenar(Lista *l, char c[]) {pnodo nodo; nodo=(pnodo)malloc(sizeof(tipoAlumno)); if (nodo==NULL) { cout<<"\n Sin espacio de memoria"; return; } //Se llena la informacion del nodo strcpy(nodo->nom,c); //Procedo hacer los enlaces

//pasos para almacenar al inicio de la lista //******************************** nodo->sig=*l; *l=nodo; //********************************

} //****** void almacenar_fin(Lista *l, char c[]) {pnodo nodo; nodo=(pnodo)malloc(sizeof(tipoAlumno)); if (nodo==NULL) { cout<<"\n Sin espacio de memoria"; return; } //Se llena la informacion del nodo strcpy(nodo->nom,c); //Procedo hacer los enlaces if(!*l) {nodo->sig=*l; *l=nodo;

} else {pnodo aux=*l; while(aux->sig!=NULL) // (aux->sig) aux=aux->sig;

//pasos para almacenar al final de la lista //******************************** aux->sig=nodo; nodo->sig=NULL; //********************************

} } //****** void almacenar_ord(Lista *l, char c[]) {pnodo nodo,aux=*l; nodo=(pnodo)malloc(sizeof(tipoAlumno)); if (nodo==NULL) { cout<<"\n Sin espacio de memoria"; return; } //Se llena la informacion del nodo strcpy(nodo->nom,c); //Procedo hacer los enlaces

//pasos para almacenar ordenadamente //******************************** if(!*l) //1A { nodo->sig=*l; *l=nodo;

} else {if(strcmp(aux->nom,c)>0) //2A { nodo->sig=*l; *l=nodo; } else //2B { while((aux->sig!=NULL)&&(strcmp(aux->sig->nom,c)<0)) aux=aux->sig; nodo->sig=aux->sig; aux->sig=nodo; }} //********************************

} void ver_lista(Lista l) {pnodo n=l; while (n) {cout<<"\n"<<n->nom; n=n->sig; } getch(); }

Clase 12
#include<conio.h> #include<stdio.h>

#include<iostream.h> #include<stdlib.h> #include<string.h> typedef struct _alumnos{ char nom[25]; struct _alumnos *sig; }tipoAlumno; typedef tipoAlumno *pnodo; typedef tipoAlumno *lista; //funciones prototipos void almacenar(lista *l, char c[]); void almacenar_fin(lista *l, char c[]); void almacenar_ord(lista *l, char c[]); void ver_lista(lista l); void eliminar(lista *l); void eliminar_nodo(lista *l, char[]); void eliminar_copia(lista *l); void main() { lista l1=NULL; int op; char nombre[25]; do{ clrscr(); printf("\n1. Registrar Nombre al inicio"); printf("\n2. Registrar Nombre al final"); printf("\n3. Registrar ordenadamente"); printf("\n4. Mostrar Lista"); printf("\n5. Eliminar un elemento"); printf("\n6. Eliminar lista"); printf("\n7. Eliminar copias");

printf("\n8. Salir\n"); do{ cout<<"Opcion: ";cin>>op; }while ((op>8) ||(op<1));

if (op<=3) { //char nombre[25]; clrscr(); printf("\nREGISTRO DE NUEVO CLIENTE\n"); printf("\n Ingrese un Nombre: "); fflush(stdin); gets(nombre); if(op==1) almacenar(&l1,nombre); else if(op==2) almacenar_fin(&l1,nombre); else almacenar_ord(&l1,nombre); } else if(op==4) {clrscr(); ver_lista(l1); } else if(op==5) { clrscr(); printf ("\nIngrese el nombre a eliminar: "); scanf("%s",nombre); eliminar_nodo(&l1,nombre); } else if(op==6) { clrscr(); eliminar(&l1);

printf ("\nLista eliminada completamente"); getch(); } else if(op==7) { clrscr(); eliminar_copia(&l1); printf ("\nCopias eliminadas completamente"); getch(); } } while(op!=8); } void almacenar(lista *l, char c[]) {pnodo nodo; nodo=(pnodo)malloc(sizeof(tipoAlumno)); if (nodo==NULL) { cout<<"\n Sin espacio de memoria"; return; } //Se llena la informacion del nodo strcpy(nodo->nom,c); //Procedo hacer los enlaces //pasos para almacenar al inicio de la lista nodo->sig=*l; *l=nodo; } void almacenar_fin(lista *l, char c[]) {pnodo nodo; nodo=(pnodo)malloc(sizeof(tipoAlumno)); if (nodo==NULL) { cout<<"\nSin espacio de memoria";

return; } //Se llena la informacion del nodo strcpy(nodo->nom,c); //Procedo hacer los enlaces if(!*l) {nodo->sig=*l; *l=nodo; } else {pnodo aux=*l; while(aux->sig!=NULL) // (aux->sig) aux=aux->sig; //pasos para almacenar al final de la lista aux->sig=nodo; nodo->sig=NULL; } } void almacenar_ord(lista *l, char c[]) {pnodo nodo,aux=*l; nodo=(pnodo)malloc(sizeof(tipoAlumno)); if (nodo==NULL) { cout<<"\n Sin espacio de memoria"; return; } //Se llena la informacion del nodo strcpy(nodo->nom,c); //Procedo hacer los enlaces //pasos para almacenar ordenadamente if(!*l) //1A { nodo->sig=*l; *l=nodo; }

else if(strcmp(aux->nom,c)>0) //2A { nodo->sig=*l; *l=nodo; } else //2B { while((aux->sig!=NULL)&&(strcmp(aux->sig->nom,c)<0)) aux=aux->sig; nodo->sig=aux->sig; aux->sig=nodo; } getch(); } void ver_lista(lista l) {pnodo n=l; while (n) {cout<<"\n"<<n->nom; n=n->sig; } getch(); } void eliminar_nodo(lista *l,char c[]) { pnodo nodo,aux; if(!*l) printf("\nLista vacia....\nImposible eliminar elementos"); else { if(strcmp((*l)->nom,c)==0) { aux=*l; *l=aux->sig;

free(aux); } else { aux=*l; while((aux->sig)&&(strcmp(aux->sig->nom,c))!= 0) aux=aux->sig; if(aux->sig) { nodo=aux->sig; aux->sig=nodo->sig; free(nodo); printf("\nSe elimino elemento %s con exito",c); } } } } void eliminar(lista *l) {pnodo aux; while(*l) { aux=*l; *l=aux->sig; free(aux); } } void eliminar_copia(lista *l) { pnodo aux, aux2, nodo; aux=*l; while(aux->sig) { aux2=aux; while(aux2->sig) { if (strcmp(aux->nom,aux2->sig->nom)==0) { nodo=aux2->sig;

aux2->sig=nodo->sig; free(nodo); } else aux2=aux2->sig; } aux=aux->sig; } }

Clase 13
El Ministerio del Interior ha elaborado para el Segundo semestre del ao

2013 una lista de los delincuentes mas buscados por la justicia ecuatoriana, los datos que contienen esta lista son: Apellidos, Nombre, Lugar de procesamiento, Delito, Valor de recomensa y Numero de ao de sentencia. Se necesita que el listado este en funcion de los mas peligrosos, esto esta determinado por el valor de recompensa. Elabore un programa con el siguente menu: 1. Registrar a los mas buscados. 2. Capturar y en dicho proceso debe ser retirado de la lista de mas buscados y llevarlo a la lista de capturados. 3. Mostrar la lista de mas buscados. 4. Mostrar la lista de los capturados. 5. Mostrar monto que invierte el estado en la captura de los mas buscados. 6. Salir del programa. */ #include<iostream.h> #include<conio.h> #include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct nodo { char apellido[20]; char nombre[20]; char lugar_proceso[20]; char delito[20]; float valor_recompensa; int anio_sentencia; struct nodo *sig; }tipo_nodo;

typedef tipo_nodo *Lista; typedef tipo_nodo *pnodo; //prototipos // *l, el * quiere decir paso por referencia void registrar(Lista *l, char apellido[],char nombre[],char lugar_proceso[],char delito[],float valor_recompensa,int anio_sentencia); void mostrar(Lista l); float monto(Lista l); void eliminar(Lista *l, char apellido[],char nombre[],char lugar_proceso[],char delito[],float valor_recompensa,int anio_sentencia); void main() {clrscr(); Lista lmd=NULL; Lista lca=NULL; char apellido[20],nombre[20],lugar_proceso[20],delito[20]; float valor_recompensa; int anio_sentencia; int opc; do {clrscr(); printf("\n** Lista de los mas buscados **\n"); printf("\n1. Registrar"); printf("\n2. Capturar"); printf("\n3. Mostrar lista de los mas buscados"); printf("\n4. Mostrar lista de los capturados"); printf("\n5. Mostrar monto que invierte el estado"); printf("\n6. Salir"); printf("\n\nOpcion: "); do {scanf("%d",&opc); }while((opc>6)||(opc<1));

if((opc==1)||(opc==2)) {clrscr(); printf("\nIngrese Apellido: "); fflush(stdin);scanf("%s",&apellido); printf("Ingrese Nombre: "); fflush(stdin);scanf("%s",&nombre); printf("Ingrese Lugar de procesamiento: "); fflush(stdin);scanf("%s",&lugar_proceso); printf("Ingrese Delito: "); fflush(stdin);scanf("%s",&delito); printf("Ingrese Valor de recompensa: "); scanf("%f",&valor_recompensa); printf("Ingrese ao de sentencia: "); scanf("%d",&anio_sentencia); } //fin if }while(opc!=6); } //fin main void registrar(Lista *l, char ape[],char nom[],char lugar[],char de[],float valor,int anio) {pnodo nodo,aux=*l; nodo=(pnodo)malloc(sizeof(tipo_nodo)); if(nodo==NULL) {cout<<"\n Sin espacio de memoria"; return; } strcpy(nodo->apellido,ape); strcpy(nodo->nombre,nom); strcpy(nodo->lugar_proceso,lugar); strcpy(nodo->delito,de); nodo->valor_recompensa=valor;

nodo->anio_sentencia=anio; if(!*l) {nodo->sig=NULL; *l=nodo; } else {if(aux->valor_recompensa<valor) {nodo->sig=*l; *l=nodo; } else {while((aux->sig)&&(aux->)) { } } } } //fin registrar

void mostrar(Lista l) float monto(Lista l) void eliminar(Lista *l, char apellido[],char nombre[],char lugar_proceso[],char delito[],float valor_recompensa,int anio_sentencia)

Clase 14
1. la federacion deportiva de manabi ha iniciado el reclutamiento de jovenes atletas para participar en los juegos nacionales, para ello ha efectuado las pruebas fisicas a un x grupo de aspirantes. se han receptado lo nombres,

peso, talla y tiempos que han alcanzado en las primeras pruebas para atletismo, elabore un programa que cree una array de estructuras para al menos 50 participantes, permita ingresar los datos mencionados y muestre los nombres de las tres primeras personasque alcanzaron las pruebas en el minimo tiempo (tiempo corresponde a minutos; horas, minutos y segundos). */ #include<iostream.h> #include<conio.h> struct atletas { char nombre[40]; float peso, talla, tiempo; }; // prototipos void ingresar(atletas &a); void mostrar(atletas a); // funcion principal; void main() {clrscr(); struct atletas A[50]; int x; for(x=0;x<50;x++) { cout<<"\n**** Aspirante "<<(x+1)<<" ****"<<endl; ingresar(A[x]); } for(x=0;x<50;x++) clrscr();

{ cout<<"\n**** Datos de Aspirante "<<(x+1)<<" ****"<<endl; mostrar(A[x]); } getch(); } void ingresar(atletas &a) { cout<<"Ingrese nombre: ";cin>>a.nombre; cout<<"Ingrese peso en kilogramos: ";cin>>a.peso; cout<<"Ingrese talla centimetros: ";cin>>a.talla; cout<<"Ingrese tiempo en horas: ";cin>>a.tiempo; } void mostrar(atletas a) { cout<<"Nombre: "<<a.nombre; cout<<"\nPeso: "<<a.peso; cout<<"\nTalla: "<<a.talla; cout<<"\nTiempo: "<<a.tiempo<<endl; }

Reflexin:
Esta asignatura es de carcter terico prctico. Se encuentra dentro del rea de Formacin Profesional especializada, Sub rea de Informtica. Tiene como propsito que el alumno domine las tcnicas y algoritmos ms eficientes para la solucin de mltiples problemas del mundo real, a travs de tcnicas como: diagramas de flujo, ejercicios estructurados. Los tpicos a tratar son: repetitivos, bsqueda y ordenacin en una estructura y tipos abstractos de datos, arboles abb, arboles avl.

UNIVERSIDAD TECNICA DE MANABI FACULTAD DE CIENCIAS INFORMATICAS

NOMBRE:
MURILLO CABRERA SHIRLEY ALEXANDRA

NIVEL: SEGUNDO B

PROFESOR: ING. CHRISTIAN TORRES

ESTRUCTURA DE DATOS

#include <conio.h> #include<stdio.h> Main () { Chars*10+*10+=,r,s,m,a,r,i,p,o,s,a,s,z,d,g,f,u,i,d,g,f,t,i,t,u,e,u,y, l ,d,s,a,t,y,s,l,l,d,s,e,s,s,z,d,a,f,r,a,t,o,n,t,i,t,n,e,u,y,f,d,s,a ,t,i,o,l,f,d,s,d,s,s,z,d,g,f,u,i,d,g,f,t,i,g,u,a,n,a,l,d,s,a,c,o,n, e,j,o,s,e,s}; For (int x=0; x<=9; x++) { For (int y=0; y<=9; y++) { Printf (%c,s*x+*y+); } Printf (\n); } Getch (); Return (0); } En la siguiente sopa de letras encontrar las palabras: mariposa, ratn, iguana,

gusano, conejo.

UNIVERSIDAD TECNICA DE MANABI FACULTAD DE CIENCIAS INFORMATICAS

NOMBRE:
MURILLO CABRERA SHIRLEY ALEXANDRA

NIVEL: SEGUNDO B

PROFESOR: ING. CHRISTIAN TORRES

ESTRUCTURA DE DATOS

Arrays con parmetros de funciones


Cuando pasamos un array como un parmetro en realidad es como si estuviramos pasando un puntero al primer elemento del array. Aunque modifiquemos los elementos del array, dentro de la funcin ser permanente aun despus de retornar. Si pasamos el nombre del array de ms de una dimensin no se podr acceder a los elementos del array mediante subndices ya que dicha funcin no tendr informacin sobre el tamao de cada una de las dimensiones. Tambin la declaracin del parmetro de la funcin debe ser de un tipo puntero compatible al puntero del array. La estructura es la siguiente:

#include <iostream> using namespace std;

#define N 10 #define M 20 int main () { Int Tabla[N][M]; ... Funcin (Tabla); ... return 0; } void funcin (int tabla [N][M]) { ... cout << tabla [2][4] << endl; ... }

Conclusin:
Al momento de pasar un array a parmetro de funcin tenemos q tener en cuenta que estas sean del mismo tipo para q as no tengamos inconvenientes en el programa. Cuando se emplea el nombre de un array, como argumento de una funcin este usa el puntero real del array que llamo la funcin por lo tanto se pueden realizar cambios en el array original del programa del cual parti la llamada

UNIVERSIDAD TECNICA DE MANABI FACULTAD DE CIENCIAS INFORMATICAS

NOMBRE:

MURILLO CABRERA SHIRLEY ALEXANDRA

NIVEL: SEGUNDO B

PROFESOR: ING. CHRISTIAN TORRES

ESTRUCTURA DE DATOS

Estructuras Anidadas
Una estructura puede estar dentro de otra estructura a esto se le conoce como anidamiento o estructuras anidadas. Ya que se trabajan con datos en estructuras si definimos un tipo de dato en una estructura y necesitamos definir ese dato dentro de otra estructura solamente se llama el dato de la estructura anterior. Tambin est permitido anidar superestructuras muy elaboradas. Ejemplo:
struct stDireccion { char Calle[64]; int Portal; int Piso; char Puerta[3]; char CodigoPostal[6]; char Poblacion[32]; }; struct stPersona { struct stNombre { char Nombre[32]; char Apellidos[64]; } NombreCompleto; stDireccion Direccion; char Telefono[10]; }; ...

estructuras, con lo cual se pueden conseguir

En general, no es una prctica corriente definir estructuras dentro de estructuras, ya que tienen un mbito local, y para acceder a ellas se necesita hacer referencia a la estructura ms externa.

UNIVERSIDAD TECNICA DE MANABI FACULTAD DE CIENCIAS INFORMATICAS

NOMBRE:
MURILLO CABRERA SHIRLEY ALEXANDRA

NIVEL: SEGUNDO B

PROFESOR: ING. CHRISTIAN TORRES

ESTRUCTURA DE DATOS

Con el ltimo ejercicio realizado en la clase del da 20 de mayo del 2013 y apoyndose en la investigacin de la Tarea 3. Elija un tipo de estructura anidadas para aplicar y completar el ejercicio, realizar el pdf con la captura de las pantallas y el cdigo empleado.
#include <iostream.h> #include <stdio.h> #include <conio.h>

struct notas{ float lecciones; float tareas; float consultas; float tgrupal; float evaluacion; };

struct SISTEMA { char nombre[50]; char nivel[30]; struct notas NMC_MAT,NMC_PRO,NMC_ESD; };

void ingreso(struct SISTEMA A);

void mostrar(struct SISTEMA A);

void main() {clrscr(); struct SISTEMA A; printf("\nNombre:"); fflush(stdin); cin>>A.nombre; printf("Nivel:"); fflush(stdin); cin>>A.nivel; ingreso(A); mostrar(A);

getch(); }

void ingreso(struct SISTEMA A) { printf("\n****Ingreso de Notas de Matematicas****\n"); do{printf("\nIngrese nota de Lecciones: "); fflush(stdin); cin>>A.NMC_MAT.lecciones;}while(A.NMC_MAT.lecciones<1||A.NMC_MAT.lecciones>10); do{printf("Ingrese nota de Tareas: "); fflush(stdin); cin>>A.NMC_MAT.tareas;}while(A.NMC_MAT.tareas<1||A.NMC_MAT.tareas>8); do{printf("Ingrese nota de Consultas: "); fflush(stdin); cin>>A.NMC_MAT.consultas;}while(A.NMC_MAT.consultas<1||A.NMC_MAT.consultas>5); do{printf("Ingrese nota de Trabajos Grupales: "); fflush(stdin); cin>>A.NMC_MAT.tgrupal;}while(A.NMC_MAT.tgrupal<1||A.NMC_MAT.tgrupal>12); do{printf("Ingrese nota de Evaluacion: "); fflush(stdin);

cin>>A.NMC_MAT.evaluacion;}while(A.NMC_MAT.evaluacion<1||A.NMC_MAT.evaluacion>15 );

void mostrar(struct SISTEMA) { printf("\n****Notas de Matematicas****\n"); printf("\nLecciones: "); cout<<A.NMC_MAT.lecciones; printf("Tareas: "); cout<<A.NMC_MAT.tareas; printf("Consultas: "); cout<<A.NMC_MAT.consultas; printf("Trabajos Grupales: "); cout<<A.NMC_MAT.tgrupal; printf("Evaluacion: "); cout<<A.NMC_MAT.evaluacion;

UNIVERSIDAD TECNICA DE MANABI FACULTAD DE CIENCIAS INFORMATICAS

NOMBRE:
MURILLO CABRERA SHIRLEY ALEXANDRA

NIVEL: SEGUNDO B

PROFESOR: ING. CHRISTIAN TORRES

ESTRUCTURA DE DATOS

#include<conio.h> #include<stdio.h> #include<iomanip.h> struct fecha { int dia; int mes; int anio; }; void Pidefecha(struct fecha &f); void Verfecha(struct fecha f); void Suma(int d); void calcular_edad(struct fecha &f); void Verfecha(struct fecha f)

{ cout << setfill('0') << setw(2) << f.dia << '/'<< setw(2) << f.mes << '/' << setw(4) << f.anio; } void Pidefecha(struct fecha &f) { char ch; cin >> f.dia >> ch >> f.mes >> ch >> f.anio; } void Suma(int d, struct fecha &f) { f.dia+=d; } void calcular_edad(struct fecha &f) { f.dia-=29; f.mes-=5; f.anio-=2013; } void main() { clrscr(); struct fecha f1; int d; cout << "Escriba fecha de la forma dd/mm/aa: "; Pidefecha(f1); cout << "\nFecha ingresada: "; Verfecha(f1); cout<<"\nIngrese dias a agregar: ";cin>>d; Suma(d,f1); cout<<"Nueva fecha: "; Verfecha(f1); cout<<"\nIngrese fecha de nacimiento de la forma dd/mm/aa: "; Pidefecha(f1); calcular_edad(f1); cout<<"\nSu edad es: "; Verfecha(f1); cout << " \nHe terminado..."; getch(); }

UNIVERSIDAD TECNICA DE MANABI FACULTAD DE CIENCIAS INFORMATICAS

NOMBRE:

MURILLO CABRERA SHIRLEY ALEXANDRA

NIVEL: SEGUNDO B

PROFESOR: ING. CHRISTIAN TORRES

ESTRUCTURA DE DATOS

Con la implementacin de la funcin suma, sustituya su ejercicio para que emplee punteros para agregar a los miembros de la estructura de datos fecha y poder obtener la nueva fecha.
CODIGO:

#include<conio.h> #include<stdio.h> #include<iomanip.h> struct fecha { int dia; int mes; int anio; }; void Pidefecha(struct fecha &f); void Verfecha(struct fecha f); void Suma(int d); void Verfecha(struct fecha f) { cout << setfill('0') << setw(2) << f.dia << '/'<< setw(2) << f.mes << '/' << setw(4) << f.anio; } void Pidefecha(struct fecha &f) { char ch; cin >> f.dia >> ch >> f.mes >> ch >> f.anio; } void Suma(struct fecha &f) { int d; int *p; p=&d; cout<<"\nIngrese dias a agregar: ";cin>>d; f.dia+=*p; if(f.dia>30) {f.dia-=30;f.mes+=1;} if(f.mes>12) {f.mes=1;f.anio+=1;} } void main() { clrscr(); struct fecha f1; cout << "Escriba fecha de la forma dd/mm/aaaa: "; Pidefecha(f1); cout << "\nFecha ingresada: "; Verfecha(f1); Suma(f1); cout<<"\nNueva fecha: "; Verfecha(f1); cout << " \nFin del programa...\n"; getch(); }

CAPTURAS DE PANTALLA:

UNIVERSIDAD TECNICA DE MANABI FACULTAD DE CIENCIAS INFORMATICAS

NOMBRE:
MURILLO CABRERA SHIRLEY ALEXANDRA

NIVEL: SEGUNDO B

PROFESOR: ING. CHRISTIAN TORRES

ESTRUCTURA DE DATOS

ALMACENAR ORDENADAMENTE
Paso 1: Lista vaca A. El primer nodo se inserta: Su punto siguiente es la lista y la lista es el nuevo nodo nodo->sig=*l; *l=nodo; Paso 2: Lista con elementos A. Si el contenido de la cabecera es mayor al que estamos por ingresar, debemos hacer la insercin al inicio. nodo->sig=*l; *l=nodo; B. Usar un auxiliar para avanzar mientras el nodo siguiente exista y el contenido de ese nodo sea menor al que est por insertar: aux=aux->sig; nodo->sig=aux->sig; aux->sig=nodo;

CDIGO FueNTE:
#include<conio.h> #include<stdio.h> #include<iostream.h> #include<stdlib.h> #include<string.h> typedef struct _alumnos{ char nom[25];

struct _alumnos *sig; }tipoAlumno; typedef tipoAlumno *pnodo; typedef tipoAlumno *Lista; //funciones prototipos void almacenar(Lista *l, char c[]); void almacenar_fin(Lista *l, char c[]); void almacenar_ord(Lista *l, char c[]); void ver_lista(Lista l); void main() {Lista L1=NULL; int op; do{ clrscr(); printf("\n1. Registrar Nombre al inicio"); printf("\n2. Registrar Nombre al final"); printf("\n3. Registrar Nombre ordenadamente"); printf("\n4. Mostrar Lista"); printf("\n5. Salir\n"); do{ cin>>op; }while ((op>5) ||(op<1)); if (op<=3) { char nombre[25]; clrscr(); printf("\nREGISTRO DE NUEVO CLIENTE\n"); printf("\n Ingrese un Nombre: "); fflush(stdin); gets(nombre); if(op==1) almacenar(&L1,nombre); else if(op==2) almacenar_fin(&L1,nombre); else almacenar_ord(&L1,nombre); } else if(op==4) {clrscr(); ver_lista(L1); }}while(op!=5); } void almacenar(Lista *l, char c[]) {pnodo nodo; nodo=(pnodo)malloc(sizeof(tipoAlumno));

if (nodo==NULL) { cout<<"\n Sin espacio de memoria"; return; } //Se llena la informacion del nodo strcpy(nodo->nom,c); //Procedo hacer los enlaces //pasos para almacenar al inicio de la lista //******************************** nodo->sig=*l; *l=nodo; //******************************** } //****** void almacenar_fin(Lista *l, char c[]) {pnodo nodo; nodo=(pnodo)malloc(sizeof(tipoAlumno)); if (nodo==NULL) { cout<<"\n Sin espacio de memoria"; return; } //Se llena la informacion del nodo strcpy(nodo->nom,c); //Procedo hacer los enlaces if(!*l) {nodo->sig=*l; *l=nodo; } else {pnodo aux=*l; while(aux->sig!=NULL) // (aux->sig) aux=aux->sig; //pasos para almacenar al final de la lista //******************************** aux->sig=nodo; nodo->sig=NULL; //******************************** } } //****** void almacenar_ord(Lista *l, char c[]) {pnodo nodo,aux=*l; nodo=(pnodo)malloc(sizeof(tipoAlumno));

if (nodo==NULL) { cout<<"\n Sin espacio de memoria"; return; } //Se llena la informacion del nodo strcpy(nodo->nom,c); //Procedo hacer los enlaces //pasos para almacenar ordenadamente //******************************** if(!*l) //1A { nodo->sig=*l; *l=nodo; } else {if(strcmp(aux->nom,c)>0) //2A { nodo->sig=*l; *l=nodo; } else //2B { while((aux->sig!=NULL)&&(strcmp(aux->sig->nom,c)<0)) aux=aux->sig; nodo->sig=aux->sig; aux->sig=nodo; }} //******************************** } void ver_lista(Lista l) {pnodo n=l; while (n) {cout<<"\n"<<n->nom; n=n->sig; } getch(); }

CAPTURAS DE PANTALLA:

UNIVERSIDAD TECNICA DE MANABI FACULTAD DE CIENCIAS INFORMATICAS

NOMBRE:
MURILLO CABRERA SHIRLEY ALEXANDRA

NIVEL: SEGUNDO B

PROFESOR: ING. CHRISTIAN TORRES

ESTRUCTURA DE DATOS

ELIMINACIN DE NODOS

CDIGO FUENTE:
#include<iostream.h> #include<string.h> #include<conio.h> #include<stdio.h> #include<stdlib.h> typedef struct _alumnos{ char nom[25]; struct _alumnos *sig; }tipoAlumno; typedef tipoAlumno *pnodo; typedef tipoAlumno *Lista; //funciones prototipo void almacenar(Lista *l,char c[]); void almacenar_fin(Lista *l,char c[]); void almacenar_ord(Lista *l,char c[]); void eliminar_uno(Lista *l,char c[]); void eliminar_todo(Lista *l); void ver_lista(Lista l); void main () {clrscr(); Lista L1=NULL; int op; char nombre[25]; do{ clrscr();

printf("\n1. Registrar Nombre al inicio"); printf("\n2. Registrar Nombre al final"); printf("\n3. Registrar Nombre ordenadamente"); printf("\n4. Eliminar un nodo de la lista"); printf("\n5. Eliminar toda la lista"); printf("\n6. Mostrar lista"); printf("\n7. Salir"); printf("\n\nOpcion: "); do{cin>>op; }while ((op>7) || (op<1)); if (op<=3) {clrscr(); printf("\nREGISTRO DE NUEVO CLIENTE\n"); printf("\n Ingrese un Nombre: "); fflush(stdin); gets(nombre); if(op==1) almacenar(&L1,nombre); else if(op==2) almacenar_fin(&L1,nombre); else if(op==3) almacenar_ord(&L1,nombre); } else if(op==4) {clrscr(); printf ("\nIngrese Nombre a eliminar\n"); gets(nombre); eliminar_uno(&L1,nombre); } else if(op==5) {clrscr(); eliminar_todo(&L1); printf ("\n******************************"); printf ("\n* La lista ha sido eliminada *"); printf ("\n******************************"); getch(); } else if(op==6) {clrscr(); ver_lista(L1); }}while (op!=7); } void almacenar(Lista *l, char c[]) {pnodo nodo;

nodo=(pnodo)malloc(sizeof(tipoAlumno)); if (nodo==NULL) {cout <<"\n Sin espacio de memoria"; return ; } //Se llena la informacion del nodo strcpy (nodo->nom,c); //Procedo hacer los enlaces //pasos para almacenar al inicio de la lista //******************************** nodo->sig=*l; *l=nodo; //******************************** } void almacenar_fin(Lista *l, char c[]) {pnodo nodo; nodo=(pnodo) malloc(sizeof(tipoAlumno)); if (nodo==NULL) {cout <<"\n Sin espacio de memoria"; return ; } //Se llena la informacion del nodo strcpy (nodo->nom,c); //Procedo hacer los enlaces if(!*l) {nodo->sig=*l; *l=nodo; } else {pnodo aux=*l; while(aux->sig!=NULL) // (aux->sig) aux=aux->sig; //pasos para almacenar al final de la lista //******************************** aux->sig=nodo; nodo->sig=NULL; //******************************** }} void almacenar_ord(Lista *l, char c[]) {pnodo nodo,aux=*l; nodo=(pnodo)malloc(sizeof(tipoAlumno)); if (nodo==NULL)

{cout <<"\n Sin espacio de memoria"; return ; } //Se llena la informacion del nodo strcpy (nodo->nom,c); //Procedo hacer los enlaces //pasos para almacenar ordenadamente //******************************** if(!*l) //1A { nodo->sig=*l; *l=nodo; } else {if(strcmp(aux->nom,c)>0) //2A { nodo->sig=*l; *l=nodo; } else //2B { while((aux->sig!=NULL)&&(strcmp(aux->sig->nom,c)<0)) aux=aux->sig; nodo->sig=aux->sig; aux->sig=nodo; }} //******************************** } void eliminar_uno(Lista *l,char c[]) {pnodo nodo,aux; if(!*l) printf("\nLista vacia....\nNo hay elementos a eliminar"); else { if(strcmp((*l)->nom,c)==0) { aux=*l; *l=aux->sig;free(aux); } else { aux=*l; while((aux->sig)&&(strcmp(aux->sig->nom,c))!= 0) aux=aux->sig;

if(aux->sig) { nodo=aux->sig; aux->sig=nodo->sig;free(nodo); printf("\nSe elimino elemento %s con exito",c); getch(); }}} } void eliminar_todo(Lista *l) {pnodo aux; while(*l) { aux=*l; *l=aux->sig;free(aux); } } void ver_lista(Lista l) {pnodo n=l; if(!n) { cout<<"Lista vacia..."; } else { while (n) { cout<<"\n" <<n->nom; n=n->sig; }} getch(); }

CAPTURAS DE PANTALLA:

UNIVERSIDAD TECNICA DE MANABI FACULTAD DE CIENCIAS INFORMATICAS

NOMBRE:
MURILLO CABRERA SHIRLEY ALEXANDRA

NIVEL: SEGUNDO B

PROFESOR: ING. CHRISTIAN TORRES

ESTRUCTURA DE DATOS

#include<iostream.h> #include<string.h> #include<conio.h> #include<stdio.h> #include<stdlib.h>

typedef struct _alumnos{ char nom[25]; struct _alumnos *sig; }tipoAlumno; typedef tipoAlumno *pnodo; typedef tipoAlumno *Lista;

//funciones prototipo void almacenar(Lista *l,char c[]); void almacenar_fin(Lista *l,char c[]); void almacenar_ord(Lista *l,char c[]); void eliminar_uno(Lista *l,char c[]);

void eliminar_todo(Lista *l); void ver_lista(Lista l); void filtro_nombre(Lista *l);

void main () {clrscr(); Lista L1=NULL; int op; char nombre[25]; do{ clrscr(); printf("\n1. Registrar Nombre al inicio"); printf("\n2. Registrar Nombre al final"); printf("\n3. Registrar Nombre ordenadamente"); printf("\n4. Eliminar un nodo de la lista"); printf("\n5. Eliminar toda la lista"); printf("\n6. Eliminar copias"); printf("\n7. Mostrar lista"); printf("\n8. Salir"); printf("\n\nOpcion: "); do{cin>>op; }while ((op>8) || (op<1));

if (op<=3) {clrscr(); printf("\nREGISTRO DE NUEVO CLIENTE\n"); printf("\n Ingrese un Nombre: ");

fflush(stdin); gets(nombre); if(op==1) almacenar(&L1,nombre); else if(op==2) almacenar_fin(&L1,nombre); else if(op==3) almacenar_ord(&L1,nombre); }

else if(op==4) {clrscr(); printf ("\nIngrese Nombre a eliminar\n"); gets(nombre); eliminar_uno(&L1,nombre); } else if(op==5) {clrscr(); eliminar_todo(&L1); printf ("\n******************************"); printf ("\n* La lista ha sido eliminada *"); printf ("\n******************************"); getch(); } else if(op==6) {clrscr(); filtro_nombre(&L1);

printf("Copias eliminadas"); getch(); } else if(op==7) {clrscr(); ver_lista(L1); }}while (op!=8); }

void almacenar(Lista *l, char c[]) {pnodo nodo; nodo=(pnodo)malloc(sizeof(tipoAlumno)); if (nodo==NULL) {cout <<"\n Sin espacio de memoria"; return ; }

//Se llena la informacion del nodo strcpy (nodo->nom,c); //Procedo hacer los enlaces

//pasos para almacenar al inicio de la lista //******************************** nodo->sig=*l; *l=nodo; //******************************** }

void almacenar_fin(Lista *l, char c[]) {pnodo nodo; nodo=(pnodo) malloc(sizeof(tipoAlumno)); if (nodo==NULL) {cout <<"\n Sin espacio de memoria"; return ; } //Se llena la informacion del nodo strcpy (nodo->nom,c); //Procedo hacer los enlaces if(!*l) {nodo->sig=*l; *l=nodo; } else {pnodo aux=*l; while(aux->sig!=NULL) // (aux->sig) aux=aux->sig;

//pasos para almacenar al final de la lista //******************************** aux->sig=nodo; nodo->sig=NULL; //******************************** }}

void almacenar_ord(Lista *l, char c[]) {pnodo nodo,aux=*l; nodo=(pnodo)malloc(sizeof(tipoAlumno)); if (nodo==NULL) {cout <<"\n Sin espacio de memoria"; return ; }

//Se llena la informacion del nodo strcpy (nodo->nom,c); //Procedo hacer los enlaces

//pasos para almacenar ordenadamente //******************************** if(!*l) { nodo->sig=*l; *l=nodo; } else {if(strcmp(aux->nom,c)>0) { nodo->sig=*l; *l=nodo; } else //2B {

while((aux->sig!=NULL)&&(strcmp(aux->sig->nom,c)<0)) aux=aux->sig; nodo->sig=aux->sig; aux->sig=nodo; }} //******************************** }

void eliminar_uno(Lista *l,char c[]) {pnodo nodo,aux; if(!*l) printf("\nLista vacia....\nNo hay elementos a eliminar"); else { if(strcmp((*l)->nom,c)==0) { aux=*l; *l=aux->sig;free(aux); } else { aux=*l; while((aux->sig)&&(strcmp(aux->sig->nom,c))!= 0) aux=aux->sig; if(aux->sig) { nodo=aux->sig;

aux->sig=nodo->sig;free(nodo); printf("\nSe elimino elemento %s con exito",c); getch(); }}} }

void eliminar_todo(Lista *l) {pnodo aux; while(*l) { aux=*l; *l=aux->sig;free(aux); } }

void ver_lista(Lista l) {pnodo n=l; if(!n) { cout<<"Lista vacia..."; } else { while (n) { cout<<"\n" <<n->nom; n=n->sig;

}} getch(); }

void filtro_nombre(Lista *l) {pnodo aux,aux2,nodo; aux=*l; while(aux->sig) {aux2 = aux; while(aux2->sig) {if(strcmp(aux->nom,aux2->sig->nom)==0) {nodo=aux2->sig; aux2->sig=nodo->sig; free(nodo); } else aux2=aux2->sig; } aux=aux->sig; }}

//NOMBRE: Murillo Cabrera Shirley Alexandra //PROGRAMA: REGISTRO-DELINCUENTE //FECHA:26/06/2013

#include <iostream> #include <conio.h> #include <stdlib.h> #include <ctype.h>

//*************ESTRUCTURA DEL RECLUSO*************// typedef struct nodo { char nombre[40]; char apellido[40]; char lugar_procesamiento[40]; char delito[40]; float valor_recompensa; struct nodo *sig; }typo_nodo;

//**********************************************//

//******TIPOS DE DATOS******//

typedef typo_nodo *lista;

typedef typo_nodo *p_nodo;

//*************************//

//*******************PROTOTIPOS DE LAS FUNCIONES***********************//

void registrar(lista *lmb, char nom[], char apelli[], char lugar_proces[], char d_lito[], float v_recompensa); void capturar(lista *lcap, char nom[], char apellido[], char lugar_procesamiento[]); void mostrar(lista lmb); void mostrar_capturados(lista lcap); float mostrar_monto_invertir(lista *lmb); void eliminar(lista *lmb,char nom[], char apellido[], char lugar_procesamiento[]);

//**********************************************************************//

//**********************FUNCION QUE REGISTRA A LOS MAS BUSCADOS*********************//

void registrar(lista *lmb, char nom[], char apelli[], char lugar_proces[], char d_lito[], float v_recompensa) { p_nodo nodo, anterior = *lmb;

nodo = new typo_nodo;

strcpy(nodo->nombre,nom); strcpy(nodo->apellido,apelli);

strcpy(nodo->lugar_procesamiento,lugar_proces); strcpy(nodo->delito,d_lito); nodo->valor_recompensa=v_recompensa;

if(nodo==NULL) { cout << "NO HAY MEMORIA SUFICIENTE" << endl; return; } else { if(!*lmb || anterior->valor_recompensa > v_recompensa) { nodo->sig = *lmb; *lmb = nodo; } else { while((anterior->sig)&&anterior->sig->valor_recompensa < v_recompensa) { anterior = anterior->sig; nodo->sig = anterior->sig; anterior->sig =nodo; } } }

cin.get(); system("cls"); }

//**************************************************************************** ***//

//*************FUNCION QUE REGISTRA A LOS CAPTURADOS*****************//

void capturar(lista *lcap, char nom[], char apelli[], char lugar_proces[]) { p_nodo nodo;

nodo = new typo_nodo;

if(nodo==NULL) { cout << "NO HAY MEMORIA SUFICIENTE" << endl; return; }

strcpy(nodo->nombre,nom); strcpy(nodo->apellido,apelli); strcpy(nodo->lugar_procesamiento,lugar_proces);

nodo->sig = *lcap; *lcap = nodo;

cin.get(); system("cls"); }

//**************************************************************************** ****************//

//*************ELIMINA A UNA PERSONA DE LA LISTA MAS BUSCADOS********************//

void eliminar(lista *lmb, char nom[], char apelli[], char lugar_proces[]) { p_nodo lista_mb = *lmb, aux;

if(strcmp(lista_mb->nombre,nom)==0&&strcmp(lista_mb>apellido,apelli)==0&&strcmp(lista_mb->lugar_procesamiento,lugar_proces)==0) { aux = *lmb; *lmb = aux->sig; delete(aux); } else {

aux = *lmb;

while((lista_mb->sig)&&(strcmp(lista_mb->nombre,nom)==0)&&(strcmp(lista_mb>apellido,apelli)==0)&&(strcmp(lista_mb->lugar_procesamiento,lugar_proces)==0)) lista_mb = lista_mb->sig;

if(lista_mb->sig) { aux = lista_mb->sig; lista_mb->sig = aux->sig; delete(aux); } } }

//*************MOSTRAR MONTO A INVERTIR POR EL GOBIERNO**********************//

float mostrar_monto_invertir(lista *lmb) { p_nodo aux = *lmb; float Monto_total = 0;

if(!*lmb) { return 0; }

else { while(aux->sig!=NULL) { Monto_total = Monto_total+aux->valor_recompensa; aux = aux->sig; } }

return Monto_total; } //**********************************************************************//

//***********************NOS MUESTRA LA LISTA DE LOS MAS BUSCADOS*************************//

void mostrar(lista lmb) { if(!lmb) { cout << "<<<<>>>>LA LISTA ESTA VACIA<<<<>>>>>>"; } else { while(lmb) { cout << lmb->nombre << " " << lmb->apellido << endl;

lmb = lmb->sig; } }

cin.get(); system("cls"); }

//**************************************************************************** ************//

//******************NOS MUESTRA LA LISTA DE LOS CAPTURADOS*****************//

void mostrar_capturados(lista lcap) { if(!lcap) { cout << "<<<<>>>>LA LISTA ESTA VACIA<<<<>>>>>>"; } else { while(lcap) { cout << lcap->nombre << " " << lcap->apellido << endl; lcap = lcap->sig; }

cin.get(); system("cls"); } //***************************************************************************/ /

//******************* FUNCION PRINCIPAL**************************//

int main() { lista lmb = NULL; lista lcap = NULL;

char nombre[20]; char apellido[20]; char lugar_procesamiento[20]; char delito[20]; float valor_recompensa;

char opc;

do {

cout << "<<<<<<>>>>>CENTRO DE REHABILITACION LA ROCA<<<<<<<<>>>>>>\n\n\n";

cout << "(A) Registrar" << endl; cout << "(B) Capturar" << endl; cout << "(C) Mostrar lista de los mas buascados " << endl; cout << "(D) Mostrar lista de capturarlos " << endl; cout << "(E) Mostrar dinero a invertir por el gobierno" << endl; cout << "\n\nIngrese opcion: ";

do { do { opc = toupper(getche()); }while(!isalpha(opc)); }while(opc < 'A' || opc > 'F');

switch(opc) { case 'A': { system("cls"); cout << "Registrar mas buscados..." << endl; cout << "Nombre: ";cin >> nombre; cout << "Apellido: ";cin >> apellido; cout << "Lugar de procesamiento: ";cin >>lugar_procesamiento; cout << "Delito: "; cin >> delito; cout << "Recompensa por su captura: ";cin >> valor_recompensa; registrar(&lmb,nombre,apellido,lugar_procesamiento,delito,valor_recompensa);break;

} case 'B': { system("cls"); cout << "Registrar capturados..." << endl; cout << "Nombre: ";cin >> nombre; cout << "Apellido: ";cin >> apellido; cout << "Lugar de procesamiento: ";cin >>lugar_procesamiento; capturar(&lcap,nombre,apellido,lugar_procesamiento); eliminar(&lmb,nombre,apellido,lugar_procesamiento);break; } case 'C': { system("cls"); cout << "Mostrando lista de los mas buscados " << endl << endl; mostrar(lmb); break; } case 'D': { system("cls"); cout << "Mostrando lista de los capturados " << endl; mostrar_capturados(lcap); break; } case 'E': {

system("cls"); cout << "Mostrando el mondo a invertir por el Gobierno" << endl; cout << "\n\nEl Monto total que el Gobierno invierte es de "<< mostrar_monto_invertir(&lmb) << " $"; }

} }while(opc!='F');

return 0; } //**************************************************************************** ****//

Potrebbero piacerti anche