Documentos de Académico
Documentos de Profesional
Documentos de Cultura
i=0;
Imprimir “numero”;
Imprimir “nombre”;
Imprimir “pateno”;
Imprimir “materno”;
Imprimir “nacimiento”;
Imprimir “edad”;
Imprimir “lugar”;
Imprimir “correro”;
Imprimir “telefono” } }
Leer “nombre”;
Leer “paterno”;
Leer “materno”;
Imprimir “Fecha de nacimiento:”;
Leer “nacimiento”;
Leer “lugar”;
Leer “correo”;
Imprimir “Teléfono:”;
Leer “teléfono”; }
int I;
ax[i]=x[i+1] } }
Variables:
Int primero, centro, posición=-1, ultimo;
Primero=0
Ultimo=n-1
centro=(primero+ultimo)/2;
Si (x[mitad].numero == numerox){
Sino {
Sino
prim=centro+1;} }
Regresar a (posición); };
int posicion=-1;
prim=0;
ult=n-1;
Mientras (prim<=ult) {
Centro=(prim+ult)/2;
Si (char(a[centro].apaterno, nom);== 0) {
posicion=centro;
prim=n+1;}
Sino{
Si(char(a[centro].aPaterno, nom);< 0)
ult=centro-1;
Sino
prim=centro+1; } }
return (posicion);
Leer “buscado”
otro=1; }
Sino {
Imprimir "Contacto";
otro=0; } } mientras(otro==1); }
min=paso;
Si (x[i].nombre, x[min].nombre)<0
Min=1; } }
Procedimiento para ordenar los contactos por apellido paterno: Se declaran el vector x
de tipo contacto y la variable n que referencia el tamaño del vector. Posteriormente, se
declaran las variables a utilizar para el ordenamiento por selección y se ordenan los
contactos de acuerdo al apellido paterno (alfabéticamente).
min=paso
parai=paso hasta n
Si (x[i].paterno, x[min].paterno)<0
min=i; }
temp=x[paso];
x[paso]=x[min];
x[min]=temp; } }
Procedimiento para ordenar los contactos por apellido materno: Se declaran el vector x
de tipo contacto y la variable n que referencia el tamaño del vector. Posteriormente, se
declaran las variables a utilizar para el ordenamiento por selección y se ordenan los
contactos de acuerdo al apellido materno (alfabéticamente).
min=paso;
min=i; }
temp=x[paso];
x[paso]=x[min];
x[min]=temp; } }
Procedimiento para ordenar los contactos por número: Se declaran el vector x de tipo
contacto y la variable n que referencia el tamaño del vector. Posteriormente, se declaran
las variables a utilizar para el ordenamiento por selección y se ordenan los contactos de
acuerdo con el número.
void ordenarpornumero (struct contacto x[], int n) {
int i,paso,min;
min=paso;
Si (x[i].numero< x[min].numero)
min=i; }
temp=x[paso];
x[paso]=x[min];
x[min]=temp; } }
Procedimiento para ordenar los contactos por edad: Se declaran el vector x de tipo
contacto y la variable n que referencia el tamaño del vector. Posteriormente, se declaran
las variables a utilizar para el ordenamiento por selección y se ordenan los contactos por
edad (del menor al mayor).
int j, paso,min;
min=paso;
min=i; }
temp=x[paso];
x[paso]=x[min];
x[min]=temp; } }
Procedimiento para ordenar los contactos por lugar de nacimiento: Se declaran el vector
x de tipo contacto y la variable n que referencia el tamaño del vector. Posteriormente, se
declaran las variables a utilizar para el ordenamiento por selección y se ordenan los
contactos por lugar de nacimiento (alfabéticamente).
int w, paso;
int min;
min=paso;
min=i; }
temp=x[paso];
x[paso]=x[min];
x[min]=temp; }
3. Pseudocódigo del programa principal y explicación
int main() {
Si(archivo == NULL)
LeerArchivo contactos[i].apaterno;
LeerArchivo contactos[i].amaterno;
LeerArchivo contactos[i].fnacimiento;
LeerArchivo contactos[i].edad;
LeerArchivo contactos[i].lugar;
LeerArchivo contactos[i].correo;
LeerArchivo contactos[i].tel;
i=i+1; }
n=i;
Hacer {
Cambiar (opciones){
salir;
n=n+1;
ordenarpornumero(contactos,n);
desplegar(contactos, n);
salir;
Leer “numero”;
n=n-1;
ordenarpornumero(contactos,n);
salir;
salir;
salir;
salir;
salir;
salir;
Leer número
Leer número
Leer número
Leer correo
salir; }
Mientras (otra==1);
contactos[i].numero,contactos[i].nombre,contactos[i].paterno,contactos[i].materno,conta
ctos[i].nacimiento, contactos[i].edad, contactos[i].lugar ,
contactos[i].correo,contactos[i].telefono); }
Regresar 0;