Está en la página 1de 17

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL

FACULTAD DE INGENIERIA DE SISTEMAS

ALUMNO: ISRAEL HERMENEGILDO MARCAS VIVAR

COD. ALUMNO: 2016704838

CICLO: II

CURSO: ESTRUCTURA DE DATOS

TEMA: TRABAJO

LIMA ABRIL DEL 2016


EJERCICIO N° 01:

Dado el siguiente arreglo lineal, elaborar el algoritmo y calcular


los valores correspondientes de lo solicitado en A), B), C) y D):

A) Utilizando el algoritmo de Búsqueda


Biela Secuencial,
Cardán ¿Cuántas comparaciones
Lubricaci serán necesarias para
ón localizar al
Válvula elemento “Generador”
Direcció
n Frenos
B) Si aplica el
Pedal
Generador
algoritmo de Búsqueda
Alternad Binaria para buscar
or a “Dirección”,
Batería calcular los valores
Anillos de INICIO, FINAL y
Carburado MITAD en cada
r iteración.
Monoblock
Culata C) Si se elimina el
elemento “Pedal” del
arreglo indique los
cambios realizados en
cada iteración.

D) Asumiendo que el arreglo


se encuentra ordenado
ascendentemente y se
elimina a “Culata”,
modificar el algoritmo
de búsqueda binaria
para que se convierta
en uno de búsqueda y
eliminación.
EJERCICIO N° 02:

Dado el siguiente arreglo lineal llamado CIUDAD:

A) Utilizar el algoritmo del método de


LIMA la burbuja para ordenar el arreglo
CHICLAYO en forma ascendente considerando
PIURA cada ciudad es una cadena de
TUMBES caracteres
AREQUIPA
TRUJILLO
B) Aplicar el algoritmo de Búsqueda
CUZCO
Binaria para buscar a los elementos
IQUITOS
HUÁNUCO “TRUJILLO” y “HUANCAVELICA” e indique
CHIMBOTE los valores que sumen las variables
ICA INICIO, FINAL y MITAD en cada
TACNA iteración.
HUANCAYO
TARAPOTO C) Adicione el elemento “UCAYALI”, sin
ZARUMILLA alterar el ordenamiento ascendente del
arreglo.

D) Debido a que el arreglo ya se encuentra


ordenado en forma ascendente, se debe
eliminar “HUANCAYO”. Modificar el
algoritmo de búsqueda binaria para
que se convierta en uno de búsqueda y
eliminación.

EJERCICIO N° 03:

Sea PRODUCTO un arreglo lineal almacenado en la memoria del


computador con un total de M direcciones de memoria de las cuales
existen actualmente N direcciones ocupadas. Elaborar el algoritmo
que permita modificar los elementos de PRODUCTO, considerando al
proceso de modificación con los siguientes pasos: Se ingresa el valor
del elemento que se desea modificar junto con el nuevo valor,
se busca el elemento en el arreglo utilizando la búsqueda
binaria, y si lo encuentra en una posición, entonces se ejecutará
primero la acción de eliminación y luego la acción de inserción en
la posición encontrada. En caso de que el elemento no se
encuentre, se debe emitir el mensaje: ”Error... Elemento no
existe en el Arreglo”.

EJERCICIO N° 04:

Preparar el algoritmo que permita almacenar en memoria principal,


utilizando arreglos, una tabla de frecuencias a partir de la lectura
de los datos contenidos en un archivo de texto valores.txt, de tal
manera que los valores (todos comprendidos entre 0 y 10, ambos
incluidos) estarán agrupados en cinco intervalos:

[0, 5[ [5, 7[ [7, 8.5[ [8.5, 9.5[ [9.5, 10]

La tabla generada por el algoritmo almacenará la cantidad de


valores incluidos en cada intervalo que hay dentro del archivo. Es
decir, el algoritmo deberá calcular la frecuencia absoluta
correspondiente a cada clase de valores. El algoritmo, además,
mostrará en pantalla y escribirá en un archivo de texto una tabla
simple de frecuencias formada por dos columnas: una para los
intervalos y otra para las frecuencias absolutas. Por ejemplo, si el
archivo valores.txt contiene estos datos:

1.3, 2.4, 1.2, 5.0, 7.2, 9.3, 6.5, 5.5, 10, 8.5

la tabla mostrada en pantalla podría tener este aspecto:

Calificaciones ni
[0, 5[ 3
[5, 7[ 3
[7, 8.5[ 1
[8.5, 9.5[ 2
[9.5,10] 1
SOLUCIÓN

EJERCICIO N° 01
RESPUESTA:
A.- PSEUDOCODIGO BUSQUEDA SECUENCIAL, COMPARACIONES NECESARIAS
PARA LOCALIZAR EL ELEMENTO “GENERADOR”

DIM DATOS [1, 14]


ENTERO POS, J
CHAR NOMELE
INICIO
POS=14
LEER NOMELE
PARA J = 1 HASTA QUE J <= POS, J++ HACER
SI DATO[J] = NOMELE ENTONCES
PRINT “ENCONTRADO” NOMELE
PRINT “POSISION” J
FINSI
FINPARA
FIN
B.- BUSQUEDA BINARIA, BUSCAR “DIRECCION”
DIM DATOS [1, 14]
ENTERO POS, INI, FIN, MIT
CHAR NOMELE, SW
INICIAR
POS = 14
INI = 1
FIN = POS
SW = "F"
LEER NOMELE
MIENTRAS (SW ="F") Y (INI<=FIN) HACER
MIT = (INI + FIN)/2
SI DATO[MIT] = NOMELE ENTONCES
SW = "V"
DE LO CONTRARIO
SI DATO[MIT] > NOMELE ENTONCES
FIN = MIT + 1
DE LO CONTRARIO
INI = MIT + 1
FINSI
FINSI
FINMIENTRAS

SI SW = "V" ENTONCES
PRINT "ELEMENTO ENCONTRADO
DE LO CONTRARIO
PRINT "NO SE ENCONTRO ELEMENTO
FINSI
FIN
C.- ELIMINAR ELEMENTO
DIM DATOS[1, 14]
CHAR NOMELE
INTEGER POS, J, K
INICIAR
POS=14
LEER NOMELE
PARA J=1 HASTA QUE J<= POS, CON INCREMENTO 1 HACER
SI DATOS[J] = NOMELE ENTONCES
PRINT “SE ENCONTRO EL ELEMENTO” NOMELE
PRINT “POSICION ACTUAL” J
DATOS[K]= DATOS[J+1]
POS=POS-1
MIENTRAS (K > POS) HACER
DATOS[POS]=DATOS[K]
FINMIENTRAS
FINSI
FINPARA
FIN
D.- BUSCAR Y ELIMINAR
DIM DATOS [1, 14]
CHAR NOMELE
BOLEANO SW
ENTERO J, K, POS
INICIAR
LEER NOMELE
J=1
POS=14
SW="F"
MIENTRAS (I < = POS) Y(SW="F") HACER
SI DATOS[J]=NOMELE ENTONCES
SW="V"
K=J
MIENTRAS (K <= POS) HACER
DATOS[K]=DATOS[K+1]
K=K+1
FINMIENTRAS
DATOS[POS]=-1
CASO CONTRARIO
J=J+1
FINSI
FINMIENTRAS
SI SW="F" ENTONCES
IMPEIMIR "NO HAY DATOS"
FIN-SI
PARA J=1 HASTA POS, CON INCREMENTO 1 HACER
IMPRIMIR DATOS[J]
FINPARA
FIN
EJERCICIO N° 02
RESPUESTA:
A.- ORDENAR EL ARREGLO, MEDIANTE EL METODO DE LA BURBUJA
DIM DATOS [1, 15]
CHAR NOMELE
INTEGER I, K, J, M, POS
INICIO
POS=15
DESDE I=1 HASTA I> POS CON INCREMENTO 1 HACER
LEER DATOS[I]
FIN DESDE

DESDE J=1 HASTA J > POS HACER


DESDE M =1 HASTA J>(POS-1) HACER
SI DATOS[J]>DATOS[J+1] ENTONCES
TEM=DATOS[J]
DATOS[J]=DATOS[J+1]
DATOS[J+1]= TEM
FINSI
FIN DESDE
FIN DESDE

DESDE J=1 HASTA J > POS HACER


PRINT DATOS[J]
FINDESDE
FIN
B.- BUSQUEDA BINARIA
DIM DATOS [1, 15]
ENTERO POS, INI, FIN, MIT, C
CHAR NOMELE, NOM1, NOM2
BOOLEANA SW
INICIAR
POS = 14
INI = 1
FIN = POS
SW = "F"
C = 0
LEER NOM1, NOM2
MIENTRAS (SW="F") Y (INI<=FIN) HACER
MIT = (INI+FIN)/2
SI (DATOS[MIT]=NOM1) ENTONCES
C=C+1
SI C>1 ENTONCES
SW="V"
FIN-SI
DE LO CONTRARIO
SI (DATOS[MIT]=NOM2) ENTONCES
C = C + 1
SI C > 1 ENTONCES
SW="V"
FIN-SI
DE LO CONTRARIO
SI DATOS[MIT]>NOM1 ENTONCES
FIN=MIT + 1
DE LO CONTRARIO
SI DATOS[MIT]>NOM2 ENTONCES
FIN = MIT+1
DE LO CONTRARIO
INI=MIT+1
FINSI
FINSI
FINSI
FINSI
FINMIENTRAS
SI SW = "V" ENTONCES
PRINT "ELEMENTO ENCONTRADO
DE LOS CONTRARIO
IMPRIMIR "NO SE ENCONTRO NADA
FINSI
FIN
C.- ADICIONAR SIN ALTERAR EL ORDENAMIENTO ASCENDENTE
DIM DATOS [1, 15]
ENTEROS J, POS, K
BOLEANO SW
CHAR NOMELE
INICIO
POS=15
SW="F"
LEER NOMELE
DESDE J=1 HASTA J > POS CON INCREMENTO 1 HACER
LEER DATOS[J]
FINDESDE
HACER
J=0
J=J+1
HASTA QUE (DATOS[J]>= NOMELE) O (J = POS)
SI DATOS[I]=NOMELE ENTONCES
IMPRIMIR "ENCONTRADO” J
DE LO CONTRARIO
SI POS<50 ENTONCES
PARA K=POS; J; K HACER
DATOS[K+1]=DATOS[K]
FINPARA
DATOS[I]=NOMELE
POS=POS+1
IMPRIMIR "INSERTADO EN LA OSICION” J
FINSI
DESDE J = 1 HASTA J > POS HACER
PRINT DATOS[J]
FINDESDE
FINSI
FIN DESDE
FIN
D.- BUSQUEDA Y ELIMINACION
DIM DATOS[1, 15]
CHAR NOMELE
BOLENO SW
ENTERO J, POS, K
INICIO
LEER NOMELE
J=1
POS=15
SW="F"
MIENTRAS(J<=POS)Y(SW="F") HACER
SI DATOS[J]=NOM ENTONCES
SW="V"
K=J
MIENTRAS (K<=POS) HACER
DATOS[K]=DATOS[K+1]
K=K+1
FIN MIENTRAS
DATOS[POS]=-1
DE LO CONTRARIO
J=J+1
FINSI
FINMIENTRAS
SI SW="F" ENTONCES
PRINT "NO HAY DATOS"
FINSI
DESDE J=1 HASTA POS CON INCREMENTO 1HACER
PRINT DATOS[J]
FINPARA
FIN
EJERCICIO N° 03
PRODUCTO
RESPUESTA:
DIM PRODUCTO []
CHAR NOMPROD, TEM
BOLEANO SW
ENTERO I, J, P, U, M, C, K, N, CN
INICIO
LEER NOMPROD, N
I=1
M=1
C=0
SW="F"
HACER
LEER PRODUCTO[M]
SI PRODUCTO[M]=" " ENTONCES
M=0
DE LO CONTRARIO
M=M+1
FINSI
HASTA QUE (M=0)
MIENTRAS(I<=M)Y(SW="F") HACER
SI PRODUCTO[I]=NOMPROD ENTONCES
SW="V"
K=I
MIENTRAS (K<=M) HACER
PRODUCTO[K]=PRODUCTO[K+1]
K=K+1
FIN-MIENTRAS
DESDE J=K HASTA J>N HACER
TEM=PRODUCTO[J]
P=1
U=J-1
MIENTRAS P <= U HACER
C=(P+U) DIV 2
SI TEM<PRODUCTO[C] ENTONCES
U=CN-1
DE LO CONTRARIO
P=CN+1
FIN-SI
FIN-MIENTRAS
DESDE R=J-1; R>P; J--
PRODUCTO[R+1]=PRODUCTO[R]
FINPARA
PRODUCTO[P]=TEM
FIN-PARA
DE LO CONTRARIO
I=I+1
FIN-SI
FIN-MIENTRAS
SI SW="F" ENTONCES
PRINT "NO HAY ELEMENTOS"
FINSI
DESDE I=1 HASTA I > M HACER
PRINT PRODUCTO[I]
FINPARA
FIN
EJERCICIO N° 04
CALCULO DE FRECUENCIA ABSOLUTA DE CADA CLASE DE VALORES
DIM DATOS [1, 11]
ENTEROS I, K, J POS
BOOLEANA SW
INICIO
POS=11
SW="F"
DESDE I=0 HASTA I>POSCON INCREMENTO 1 HACER
LEER DATOS[I]
FINDESDE

DESDE J=0 HASTA J>POS HACER


DESDE M=0 HASTA J>(POS-1) HACER
SI DATOS[J]>DATOS[J+1] ENTONCES
TEM=DATOS[J]
DATOS[J]=DATOS[J+1]
DATOS[J+1]= TEM
FIN-SI
FINDESDE
FINDESDE

DESDE J=0; HASTA J>POS HACER


IMPRIMIR DATOS[J]
FINDESDE
K=0
LEER DATOS[K]
TEM1=DATOS[K]
MIENTRAS(K<=10) HACER
SI TEM=<5 ENTONCES
C1=C1+1
FINSI
SI K>5 O K=<7 ENTONCES
C2=C2+1
FINSI
SI K>7 O K=<8.5 ENTONCES
C3=C3+1
FINSI
SI K>8.5 O K=<9.5 ENTONCES
C4=C4+1
FINSI
SI K>9.5 O K=<10 ENTONCES
C5=C5+1
FIN-SI
K=K+1
SI K>10 ENTONCES
IMPRIMIR '[0, 5[ ' C1
IMPRIMIR '[5, 7[ ' C2
IMPRIMIR '[7, 8.5[ ' C3
IMPRIMIR '[8.5, 9.5[ ' C4
IMPRIMIR '[9.5, 10] ' C5
DE LO CONTRARIO
AUX1=DATOS[K]
FINSI
FINMIENTRAS
FIN