Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Universidad Tcnica De Manab Facultad De Ciencias Informticas Carrera De Ingeniera En Sistemas Informticos
Segundo Semestre
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:
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
Anexos
*
Resumen De Cierre
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.
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.
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.
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.
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.
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.
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)
86-100
4.- Pruebas escritas, orales (fotos), talleres, informes de ensayo, investigacin y Prcticas en el Lenguaje de programacin C++.
NIVEL BSICO 70
Elaborar un programa que emplee estructuras arborescentes de forma AVL uso de forma clara.
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.
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
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
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,
dinmica
de
dinmica
de
Elaboracin conceptuales,
de
mapas de
cuadros
desventajas
de
Aplicacin:
planteamiento de problemas.
2.
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
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.
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.
binarios
su
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
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.
algortmicas,
4.
necesidad
encontrar
algoritmos
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.
Resolucin demostrativos
de y
ejercicios de
planteamiento de problemas.
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
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
Garrido Antonio
2006
Delta Publicaciones S. L.
(f) Coordinador
d.
e. f.
g.
h.
i.
j.
k.
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
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>
void ingreso(struct empresa &dato); void mostrar(struct empresa dato); void bono(float sue);
getch(); }
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>
};
void Pidefecha(struct fecha &f); void Verfecha(struct fecha f); void Suma(int d);
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>
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
} //****** 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;
} } //****** 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
} 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; }} //********************************
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");
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;
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.
NOMBRE:
MURILLO CABRERA SHIRLEY ALEXANDRA
NIVEL: SEGUNDO B
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.
NOMBRE:
MURILLO CABRERA SHIRLEY ALEXANDRA
NIVEL: SEGUNDO B
ESTRUCTURA DE DATOS
#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
NOMBRE:
NIVEL: SEGUNDO B
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]; }; ...
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.
NOMBRE:
MURILLO CABRERA SHIRLEY ALEXANDRA
NIVEL: SEGUNDO B
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; };
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;
NOMBRE:
MURILLO CABRERA SHIRLEY ALEXANDRA
NIVEL: SEGUNDO B
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(); }
NOMBRE:
NIVEL: SEGUNDO B
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:
NOMBRE:
MURILLO CABRERA SHIRLEY ALEXANDRA
NIVEL: SEGUNDO B
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:
NOMBRE:
MURILLO CABRERA SHIRLEY ALEXANDRA
NIVEL: SEGUNDO B
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:
NOMBRE:
MURILLO CABRERA SHIRLEY ALEXANDRA
NIVEL: SEGUNDO B
ESTRUCTURA DE DATOS
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 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));
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);
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
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;
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 {
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;
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; }}
//*************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******//
//*************************//
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[]);
//**********************************************************************//
void registrar(lista *lmb, char nom[], char apelli[], char lugar_proces[], char d_lito[], float v_recompensa) { p_nodo nodo, anterior = *lmb;
strcpy(nodo->nombre,nom); strcpy(nodo->apellido,apelli);
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"); }
//**************************************************************************** ***//
void capturar(lista *lcap, char nom[], char apelli[], char lugar_proces[]) { p_nodo nodo;
if(nodo==NULL) { cout << "NO HAY MEMORIA SUFICIENTE" << endl; return; }
cin.get(); system("cls"); }
//**************************************************************************** ****************//
void eliminar(lista *lmb, char nom[], char apelli[], char lugar_proces[]) { p_nodo lista_mb = *lmb, aux;
aux = *lmb;
if(!*lmb) { return 0; }
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"); }
//**************************************************************************** ************//
void mostrar_capturados(lista lcap) { if(!lcap) { cout << "<<<<>>>>LA LISTA ESTA VACIA<<<<>>>>>>"; } else { while(lcap) { cout << lcap->nombre << " " << lcap->apellido << endl; lcap = lcap->sig; }
char nombre[20]; char apellido[20]; char lugar_procesamiento[20]; char delito[20]; float valor_recompensa;
char opc;
do {
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: ";
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');