0% encontró este documento útil (0 votos)
129 vistas8 páginas

Ti

Este documento presenta ejercicios resueltos sobre vectores para la asignatura Algoritmos y Programación 1, dictada por la Dra. Sandra Mateus. Incluye problemas como encontrar el mayor valor y su posición en un vector, sumar elementos de un vector que cumplan ciertas condiciones, crear un vector resultado con elementos coincidentes de dos vectores de entrada, e intercambiar posiciones de elementos en un vector si su tamaño es par. Se proveen algoritmos detallados con análisis y pseudocódigo para resolver cada problema planteado.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
129 vistas8 páginas

Ti

Este documento presenta ejercicios resueltos sobre vectores para la asignatura Algoritmos y Programación 1, dictada por la Dra. Sandra Mateus. Incluye problemas como encontrar el mayor valor y su posición en un vector, sumar elementos de un vector que cumplan ciertas condiciones, crear un vector resultado con elementos coincidentes de dos vectores de entrada, e intercambiar posiciones de elementos en un vector si su tamaño es par. Se proveen algoritmos detallados con análisis y pseudocódigo para resolver cada problema planteado.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Facultad de Ingenierías

Ingeniería Informática
Asignatura: Algoritmos y Programación 1
Docente: Sandra Mateus, Ph.D

EJERCICIOS RESUELTOS

TI8: EJERCICIOS SOBRE VECTORES


4. Crear un vector de 20 elementos con valores numéricos diferentes. Hallar el mayor
valor y su posición y el valor promedio.

Análisis:
Datos de Entrada: n20, vec[20]
Datos de Salida: mayor, pos, promedio
Proceso:
- Un ciclo para llenar el vector con un ciclo anidado y un condicional que controle
que no se repitan los datos.
- Un procedimiento que busca el mayor valor y su posición y el valor promedio.

10 40 70 20 50 60 15 30 28 80 25 35 55 45 5 65 75 12 22 32
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

mayor  80 posicion 9 promedio  38.7

Algoritmo:

Inicio
Real: vector[20]
Entero: N20
Inicializar (vector, N) //Este procedimiento llenaría el vector de ceros.
Calculos (vector, N)
Fin

Procedimiento Inicializar (Real: vec[], Entero: n)


Entero: i
Para (i=0, N-1, 1) haga
vec[i]0
Fpara
Fin_Procedimiento

Procedimiento Calculos (Real: vec[], Entero: n)


Entero: con, i, pos, ban 1
Real: mayor, promedio
Escriba:”Digite el primer valor: ”
Lea: vec[0]
promedio  mayor  vec[0]

Para (con=1, n-1, 1) haga


Escriba:”Digite un valor: ”
Lea: vec[con]
1 ban  1
Facultad de Ingenierías
Ingeniería Informática
Asignatura: Algoritmos y Programación 1
Docente: Sandra Mateus, Ph.D

1
Para (i=0, con-1, 1) haga
Si (vec[con] = vec[i]) ent
i  con
ban  0
Fsi
Fpara
Si (ban = 1) ent
promedio  promedio + vec[con]

Si (vec[con]>mayor)ent
mayor vec[con]
pos  con
Fsi
sino
Escriba: ”El valor ingresado está repetido. Por favor ingrese
otro diferente”
concon-1
Fsi
Fpara

promedio  promedio / n
Escriba: ”El valor mayor es”, mayor, “y está en la posición: ”,pos
Escriba: ”El valor promedio es”, promedio
FinProcedimiento

7. En un vector de 40 elementos numéricos llamado totales, se requiere ir sumando y


mostrando cada elemento, siempre y cuando sea mayor al primer elemento y menor
al elemento 25. Finalmente, muestre la suma.

Análisis:
Datos de Entrada: totales[40] (ya no los dan), n40
Datos de Salida: suma
Proceso:
- Una función que devuelva la suma.
- Un ciclo para recorrer el vector y una condición que controle que cada elemento a
mostrar y sumar, sea mayor al primer elemento y menor al 25.

3 7 9 10 11 8
0 1 2 3 4 …................. 24 …................. 39
......... .........
Por ejemplo, comparando el segundo elemento sería:
Si (7>3) ∧ (7<8) ent
acumuladoracumulador+7
Fsi
Facultad de Ingenierías
Ingeniería Informática
Asignatura: Algoritmos y Programación 1
Docente: Sandra Mateus, Ph.D

Algoritmo:
Para los casos en que los vectores ya no los den llenos, solo hacemos el subprograma
que haga lo que pide el problema y asumimos que a ese subprograma, nos envían el
vector y el número de elementos.

Funcion sumatotal (Real: vec[], Entero: n)


Entero: i
Real: suma  0

Escriba: “Los elementos mayores a”, vec[0], “y menores a”, vec[24], “son:”

Para (i=1, n-1, 1) haga


Si (vec[i] > vec[0]) ∧ (vec[i] < vec[24]) ent
suma  suma + vec[i]
Escriba: vec[i]
Fsi
Fpara

Retorne suma
Fin_Funcion

10. Cargar 2 vectores, uno con los códigos de los estudiantes que perdieron C, el segundo
con los códigos de los estudiantes que perdieron Java. Se pide crear otro arreglo
formado por los códigos de los estudiantes que perdieron ambas materias. Mostrar el
arreglo resultante.

Análisis:
Datos de Entrada: c[], nc, java[], nj
Datos de Salida: vecresultante[]
Proceso:
- Un procedimiento para llenar o cargar los vectores, al que se llama dos veces (una
para los de C y otra para los de Java).
- Otro procedimiento para llenar un vector resultante con los estudiantes que
perdieron las dos materias y luego mostrarlo.
- Dentro de este último procedimiento, se debe comparar un elemento de un vector
con todos los elementos del otro vector, para chequear que coincidan.

c 10 20 30 40 50
0 1 2 3 4

java 10 80 70 20 90
0 1 2 3 4

vecresultante 10 20
0 1
Facultad de Ingenierías
Ingeniería Informática
Asignatura: Algoritmos y Programación 1
Docente: Sandra Mateus, Ph.D

Algoritmo:

Inicio
Entero: nc, nj
Real: c[100], java[100]

Inicializar (c, 100)


Inicializar (java,100)

Escriba:”Digite el número de estudiantes que perdieron C”


Lea: nc
Escriba: “Ahora digite uno por uno, los códigos de los”, nc, “estudiantes que
perdieron C”
Llenar (c, nc)

Escriba:”Digite el número de estudiantes que perdieron Java”


Lea:nj
Escriba: “Ahora digite uno por uno, los códigos de los”, nj, “estudiantes que
perdieron Java”
Llenar (java, nj)

Resultado (c, java, nc, nj)


Fin

Procedimiento Inicializar (Real: vec[], Entero: n)


Entero: i
Para (i=0, N-1, 1) haga
vec[i]0
Fpara
Fin_Procedimiento

Procedimiento Llenar (Real: vec[], Entero: n)


Entero: i
Para (i=0, n-1, 1) haga
Escriba: “Digite el código”, i+1
Lea: vec[i]
Fpara
Fin_Procedimiento

Procedimiento Resultado (Real: vectorc[], vectorj[], Entero: NC, NJ)


Real: vecresultante[100]
Entero: i, j, conv0
Facultad de Ingenierías
Ingeniería Informática
Asignatura: Algoritmos y Programación 1
Docente: Sandra Mateus, Ph.D

Para (i=0, NC-1, 1) haga


Para (j=0, NJ-1, 1) haga
Si (vectorc[i] = vectorj[j])
vecresultante[conv] vectorc[i]
convconv+1
Fsi
Fpara
Fpara

Si (conv=0) ent
Escriba:” Ningún estudiante perdió las dos materias”
sino
Escriba: “Los códigos de los estudiantes que perdieron las dos materias
fueron:”
Para(i=0, conv-1, 1)
Escriba: vecresultante[i]
Fpara
Fsi
Fin Procedimiento

13. Elabore un algoritmo que lea un vector de N elementos. Si el número de elementos es


par intercambiar, partiendo de la última posición, el elemento i‐ésimo por el elemento
i‐ésimo – 1 y así hasta el primer elemento. Mostrar el vector final. Si el número de
elementos es impar, indicar en un mensaje que no es posible hacer el intercambio y
forzar al usuario hasta que digite un número de elementos par.

Análisis:
Datos de Entrada: N, vector[]
Datos de Salida: vector[]
Proceso:
- Un ciclo para controlar que el usuario solo ingrese un número de elementos par.
- Un procedimiento para intercambiar el elemento de la última posición con el
elemento de la penúltima posición y así sucesivamente decrementando.

1 2 3 4 5 6 8 7
0 1 2 3 4 5 6 7

1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7

Vector Resultante: 8 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
Facultad de Ingenierías
Ingeniería Informática
Asignatura: Algoritmos y Programación 1
Docente: Sandra Mateus, Ph.D

Algoritmo:

Inicio
Entero: N
Real: vector [100]
Caracter: ban’s’

Inicializar (vector, 100)

Mq(ban=’s’)
Escriba: ”Digite el número de elementos a guardar en el vector”
Lea: N
Si (N%2=0) ent
Llenar (vector, N)
Intercambio (vector, N)
ban’n’
sino

Escriba: “No es posible hacer el intercambio por favor ingrese un


número de elementos par”
Fsi
FMq
Fin

Procedimiento Inicializar (Real: vec[], Entero: n)


Entero: i
Para (i=0, N-1, 1) haga
vec[i]0
Fpara
Fin_Procedimiento

Procedimiento Llenar (Real: vec[], Entero: n)


Entero: i
Para (i=0, n-1, 1) haga
Escriba: “Digite el elemento”, i+1
Lea: vec[i]
Fpara
Fin_Procedimiento

Procedimiento Intercambio (Real: vec[], Entero: n)


Entero: i
Real: aux
Para (i=n-1, 1, -1) haga
aux  vec[i]
vec[i]vec[i-1]
vec[i-1]aux
Fpara
Facultad de Ingenierías
Ingeniería Informática
Asignatura: Algoritmos y Programación 1
Docente: Sandra Mateus, Ph.D

Escriba:”El vector final es:”


Para (i=0, n-1, 1) haga
Escriba: vec[i]
Fpara
Fin_Procedimiento

15. Se tiene un vector de 125 elementos con valores numéricos enteros, realice lo
siguiente:
• Leer un valor x y buscar en qué posición del vector se encuentra.
• Llene otro vector con los elementos de las posiciones impares del vector dado.
• En este último vector, busque cuántos elementos son múltiplos de 3 y positivos.

Análisis:

Datos de Entrada: n125, vec[125], x


Datos de Salida: x, posx, mulypos3
Proceso:
- Un procedimiento para hallar la posición del valor x y mostrar ambos.
- Una función para llenar al vector con los elementos de las posiciones impares y
que retorne el número de múltiplos de 3 y positivos (en este punto, se debe tener
en cuenta que el módulo representa un número entero).

8 9 3 7 6
0 1 2 ……………. 124
.
x3 posx2

vectorimpar 9 7
0 1

mulypos3  1

Algoritmo:
Como ya nos dan el vector lleno, solo hacemos los respectivos subprogramas que
haga lo que pide el problema y asumimos que a esos subprogramas, nos envían el
vector y el número de elementos.

Procedimiento Buscar (Entero: vec[], Entero: n)


Entero: i0, x
Escriba: ”Digite un valor para buscarlo y decirle dónde está en el vector”
Lea: x
Mq (i<n) ∧ (x <> vec[i]) haga
i i + 1
FMq
Facultad de Ingenierías
Ingeniería Informática
Asignatura: Algoritmos y Programación 1
Docente: Sandra Mateus, Ph.D

Si (i<n) ent
Escriba: “El valor”, x, “está en la posición”, i
sino
Escriba: “El valor no se encuentra en el grupo de datos”
Fsi
FinProcedimiento

Funcion Llenarposimpar (Entero: vec[], Entero: n)

Entero: i, j  0, mulypos30, vectorimpar[n/2]

Para (i=1,n-1,2) haga


vectorimpar [j]vec[i]
jj+1
Fpara

Para (i=0, j-1,1) haga


Si (vectorimpar [i]%3=0) ∧ (vectorimpar [i]>0) ent
mulypos3mulypos3+1
Fsi
Fpara

Retorne mulypos3
FinFuncion

También podría gustarte