Documente Academic
Documente Profesional
Documente Cultură
1
return(op); system("pause");
} exit(1);
void crearVector(ALUMNO x[Max], int *dx) }
{ }
*dx=-1;
} void Encabezado1()
{
void LeerVector(ALUMNO x[Max], int *dx) system("cls");
{ printf("\t\tREPORTE DE ALUMNOS\n\n");
int i, n, val; gotoxy(1,4);Raya58();
printf("\n\nNumero de ALUMNOS ---> "); gotoxy(1,5);printf(" Numero\t Codigo\t N o m b
scanf("%d", &n); r e \t\t\t Nota");
if(n < Max){ gotoxy(1,6);Raya();
for(i=0;i<n;i++){ }
printf("\tAlumno: %d\n", i+1);; void Raya58()
cout <<" Codigo ---> "; {
cin >>x[i].cod;
cout <<" Nombre ---> "; printf("===============================
cin >>x[i].nom; ==========================\n");
cout <<" Nota ---> "; }
cin >>x[i].nota; void Raya()
} {
*dx = i; printf("--------------------------------------------------
} -------\n");
else{ }
printf(" %d dimension fuera de RANGO es
mayor a Max = %d\n\n", n, Max);
Aplicando la programación incremental, agregue cada una de las siguientes operaciones básicas del vector de
registros.
1. Implemente en lenguaje C la siguiente especificación mostrar el vector de registros:
ACCION mostrarVector(Vector x, ENTERO dx)
//Muestra los elementos del vector de registros con un determinado formato
PRE: x = < > x = <e1, e2 ...,en>
POS: “Vector vacio” e1, e2 ...en
Solución:
//Muestra los elementos del vector de registros con un determinado formato. Analice si cumple con la
especificacion
void MostrarVector(ALUMNO x[Max], int dx)
{
int i;
if(dx>0){
Encabezado1();
for(i=0;i<dx;i++){
gotoxy(5,7+i);printf("%d",i+1);
gotoxy(10,7+i);printf("%d",x[i].cod);
gotoxy(20,7+i);printf("%s",x[i].nom);
gotoxy(50,7+i);printf("%6.1f\n",x[i].nota);
}
Raya();
cout <<"\n\n";
system("pause");
}
else{
printf("Vector vaciooo...\n\n");
}
}
2. Implemente en lenguaje C la siguiente especificación buscar la posición de un elemento en el vector:
ACCION BuscarDato(Vector x,ENTERO dx, ENTERO dato, ENTERO pos)
//Busca el elemento dato y retorna la posición adecuada que le corresponde en el vector ordenado.
2
PRE: x = < > x = <e1, e2 ...,en> dato Vector
POS: dato < x[0] pos= 0, dato > x[dx-1] pos= dx, dato > x[0] y dato < x[dx-1] pos [0, dx-1]
Solución:
//¿El subprograma cumple con la implementación especificada?. Tenga presente, lo que usted especifica es
lo que debe implementar y funcione eficientemente.
int BuscarDato(ALUMNO x[Max], int dx, int dato)
{
int i=0, Hallado=0, Posi, Posiv;
//Analice la condicion Porque ?
while((dato<x[0].Cod && dato>x[dx-1].Cod)||(i<dx && Hallado==0)){
Posi = i;
if(x[i].Cod==Dato){
Posiv = i;
Hallado = 1;
}
i=i+1;
}
if(Hallado){
return(Posiv);
}
else
if(dato<x[0].Cod)
return(0); //Esta en el extremo inferior
else
if(dato>x[dx-1].Cod)
return(dx); //Esta en el extremo superior
else
return(Posi); //Esta dentro
}
3
//Elimina el elemento de la posición pos del vector.
PRE:
POS:
Solución:
// Analice, podemos ver que le falta la consistencia de existencia. Especifique adecuadamente y corrija el
código.
void EliminarxPos(ALUMNO x[Max], int *dx, int posi)
{
int i, n;
printf(" ALUMNO ha sido ELIMINADO de posicion %d \n ", posi-1);
i = posi-1;
while(i<*dx){
x[i] = x[i+1];
i = i + 1;
}
//N = N - 1;
//*dx = N;
*dx = *dx-1;
}
Analice las especificaciones e implemente adecuadamente.
5. Implemente en lenguaje C la siguiente especificación ordenar vector:
ACCION ordenarxCodigo(Vector x, ENTERO dx)
//Ordena los elementos del vector por el campo código en forma ascendente
PRE: x = < > x= <e1, e2 ..., ei , ..., en>
POS: “Vacío” x = <e1, e2 ..., ei , ..., en> i [0, dx-1] / ei - 1,<= ei <= ei + 1
Donde ei = x[i]. cod / i [0, dx-1]
4
Después de haber implementado todas y cada una de las operaciones básicas, especifique e implemente
lo siguiente:
10. Implemente una aplicación para optimizar espacios de almacenada de una matriz “hueca” o “poca densa” ,
debe implementar lo analizado en clase y adaptar todas las operaciones sobre vectores que conoce.
11. Implemente una aplicación para las operaciones básicas de una agenda.
12. Implemente un programa para gestión de una agencia matrimonial. Por cada cliente se almacenaran los
siguientes datos: Nombre, edad, sexo (M, F), aficiones (lectura, viajes, deportes, cine, gastronomía,
computadoras, juegos de rol, modelismo, mascotas). Una persona puede tener ninguna, una o más
aficiones. Se desea la estructura, las operaciones básicas el procedimiento casar dado el nombre de una
persona, esto es, se busca a una persona afín a ella.
13. Se tienen tres vectores de registros todos ordenados por código. El vector alumnos tiene los campos de
código, nombre, dirección y teléfono, el vector de Exámenes tiene los campos de código de alumno,
examen parcial, final y sustitutorio y por último el vector de prácticas que tiene los campos de código de
alumno y 5 practicas calificadas. Construya una aplicación para crear un vector de calificaciones cuyos
campos son código, nombre y nota que es el promedio final de las prácticas y exámenes también
ordenado por código.
14. Construya una aplicación con las operaciones básicas de números racionales.
15. Crear una aplicación con las operaciones básicas de números complejos.
16. Crear una aplicación con las operaciones básicas de un conjunto de caracteres.
17. Crear 4 problemas de la realidad aplicando registros –investigue- dichos problemas deben tener enunciado
del problema y la su solución.
18. Construya una aplicación para crear un diccionario español-español
Registros
Una estructura o registro es un conjunto de variables, del mismo tipo o no, agrupadas bajo un mismo nombre,
con fin de facilitar el trabajo con ellas. A cada dato dentro de la estructura la llamamos miembro, campo o
elemento.
struct PERSONA {
int dni;
char nombre[30];
char apellido[40];
char telefono[10];
char edad;
};