Está en la página 1de 3

Ejercicio 76

ALGORITMO calif_media
calif_media.. 2.[Mostrar el resultado]
CONSTANTES
ESCRIBIR('La media es ',media)
N=20
ESCRIBIR('Los alumnos por encima de la
VARIABLES
media son los siguientes')
media:REAL
PARA i=1 HASTA N HACER
nota:ARRAY[1..N]
nota:ARRAY [1..N] DE REALES
nombre:ARRAY[1..N] DE CADENAS SI ( nota[i ]>media) ENTONCES

EJERCICIOS i: ENTERO
1.[Entrada de datos]
media ß 0.0
FIN_SI
FIN_PARA
ESCRIBIR(nombre[i],
ESCRIBIR(nombre[i ], nota[i
nota[i]] )

Tema 6. Arrays
PARA i=1 HASTA N HACER 3.[Fin]
ESCRIBIR('Introduzca nombre del
alumno ',i, ': ')
LEER(nombre[i]] )
LEER(nombre[i
REPETIR
ESCRIBIR('Introduzca la nota
número',i, ': ')
LEER(nota[i ])
HASTA (nota[i
(nota[i ]>0.0) AND ( nota[i
nota[i]<10.0)
]<10.0)
media ß media+nota[i]/N
FIN_PARA
Tema 6. Vectores y Matrices 2

Ejercicio 78 Ejercicio 79
ALGORITMO mayor_1_2. 3.[Cálculo de los dos datos mayores]
CONSTANTES SI (A[1]>A[2]) ENTONCES
MAX=500 mayor1ßA[1] ALGORITMO menor_diferencia. 3.[Cálculo de la menor diferencia]
VARIABLES mayor2ßA[2] CONSTANTES dif_minß abs(A[1]-A[2])
mayor1,mayor2:REAL SINO MAX=500 PARA i=2 HASTA N- 1 HACER
A:ARRAY[1..MAX] DE REALES mayor1ßA[2] VARIABLES SI (abs(A[i]-A[i+1])<dif_min ) ENTONCES
N,i: ENTERO mayor2ßA[1] dif_min:REAL dif_minß abs(A[i]-A[i+1])
1.[Entrada del número de datos N] FIN_SI A:ARRAY[1..MAX] DE REALES FIN_SI
REPETIR PARA i=3 HASTA N HACER N,i: ENTERO FIN_PARA
ESCRIBIR('Introduzca el nº de datos') SI (A[i]>mayor1) ENTONCES
LEER(N) mayor2ßmayor1 1.[Entrada del número de datos N] 4.[Mostrar el resultado]
HASTA ((N>=2) AND (N<=MAX)) mayor1ßA[i] REPETIR ESCRIBIR('La mínima diferencia es ',dif_min)
2.[Entrada de los N datos] SINO ESCRIBIR('Introduzca el nº de datos ') 5.[Fin]
PARA i=1 HASTA N HACER SI (A[i]>mayor2) ENTONCES LEER(N )
ESCRIBIR('Introduzca el dato mayor2ßA[i] HASTA ((N>=2) AND N<= M A X) )
número ',i,': ') FIN_SI 2.[Entrada de los N datos]
LEER(A[i]) FIN_SI
PARA i=1 HASTA N HACER
FIN_PARA FIN_PARA
4.[Mostrar el resultado] ESCRIBIR('Introduzca el dato número ',i,': ')
ESCRIBIR('Los dos valores mayores del array LEER(A[i] )
son', mayor1,mayor2) FIN_APRA
5.[Fin]

Tema 6. Vectores y Matrices 3 Tema 6. Vectores y Matrices 4

Ejercicio 80 Ejercicio 81
ALGORITMO media_array.
PARA i=3 HASTA N HACER
CONSTANTES
N=20 SI (A[i]>mayor) ENTONCES
ALGORITMO ordenar_array. 3.[Creación de un array ordenado] mayorßA[i]
CONSTANTES PARA j=1 HASTA N HACER VARIABLES
mayor,menor, media:REAL i_maxßi
MAX=500 mayorß-1 A:ARRAY[1..N] DE REALES SI (A[i]<menor) ENTONCES
VARIABLES PARA i=1 HASTA N HACER I,i_max,i_min: ENTERO menorßA[i]
A,B:ARRAY[1..MAX] DE ENTEROS SI (mayor<A[i]) ENTONCES 2.[Entrada de datos] i_minßi
N,i,j,ind_mayor,mayor: ENTERO mayorßA[i] media ß0.0 FIN_SI
1.[Entrada del número de datos N] ind_mayorßi PARA i=1 HASTA N HACER FIN_PARA
REPETIR B[j ]ßmayor ESCRIBIR('Introduzca el dato número ',i,': ') 4.[Mostrar el resultado]
LEER(A[i])
ESCRIBIR('Introduzca el nº de datos ') A[ind_mayor]ß-1 media ßmedia+A[i]
ESCRIBIR('La media es ', media)
LEER(N) FIN_SI FIN_PARA ESCRIBIR('El elmento mayor es el ',i_max, ' con valor', mayor)
HASTA ((N>0) AND (N<=MAX)) FIN_PARA 3.[Cálculo del mayor, el menor y la media] ESCRIBIR('El elmento menor es el ',i_min, ' con valor', menor)
2.[Entrada de los N datos] FIN_PARA media ßmedia/N 5.[Fin]
PARA i=1 HASTA N HACER 4.[Mostrar el array ordenado] SI (A[1]>A[2]) ENTONCES
REPETIR ESCRIBIR('El array ordenado es') mayorßA[1]
menorßA[2]
ESCRIBIR('Introduzca el dato PARA i=1 HASTA N HACER i_maxß1
número ',i,':') ESCRIBIR(B[i]) i_minß2
LEER(A[i]) FIN_PARA SINO
HASTA (A[i]>=0) 5.[Fin] mayorßA[2]
FIN_PARA menorßA[1]
i_maxß2
i_minß1
FIN_SI

Tema 6. Vectores y Matrices 5 Tema 6. Vectores y Matrices 6

1
Ejercicio 82 Ejercicio 83
ALGORITMO matriz_traspuesta.
CONSTANTES
Ejercicio 84
ALGORITMO determinante3x3. F=3 ALGORITMO sumayresta_matrices . 2.[Calcular la matriz suma y la matriz resta]
VARIABLES C=4 PARA i=1 HASTA N HACER
CONSTANTES
A:ARRAY[1..F,1..C] DE REALES VARIABLES PARA j=1 HASTA M HACER
N=3
det:REALES A:ARRAY[1..F,1..C] DE REALES M=3 S[i,j]ßA[i,j]+B[i,j]
i,j: ENTERO R[i,j]ßA[i,j]-B[i,j]
T:ARRAY[1..C,1..F] DE REALES VARIABLES
1.[Lectura de la matriz] A,B,S,R:ARRAY[1..N,1..M] DE REALES FIN_PARA
i,j: ENTERO
i,j: ENTERO FIN_PARA
PARA i=1 HASTA 3 HACER 1.[Lectura de la matriz] 1.[Lectura de los datos] 3.[Mostrar resultado]
PARA j=1 HASTA 3 HACER PARA i=1 HASTA F HACER ESCRIBIR('Suma de Matrices')
ESCRIBIR('Introduzca la primera matriz')
ESCRIBIR('Elemento ', i,j,':') PARA j=1 HASTA C HACER PARA i=1 HASTA N HACER
PARA i=1 HASTA N HACER
LEER(A[i,j]) ESCRIBIR('Elemento ', i,j,':') PARA j=1 HASTA M HACER PARA j=1 HASTA M HACER
FIN_PARA LEER(A[i,j]) ESCRIBIR('Elemento ',i,j,':') ESCRIBIR(S[i,j])
FIN_PARA LEER(A[i,j]) FIN_PARA
T[j,i]ßA[i,j]
FIN_PARA FIN_PARA
2.[Calcular determinante] FIN_PARA
FIN_PARA ESCRIBIR('Resta de Matrices')
detßA[1,1]*A[2,2]*A[3,3]+A[1,2]*A[2,3]*A[3,1]+ FIN_PARA PARA i=1 HASTA N HACER
A[1,3]*A[3,2]*A[2,1]-A[3,1]*A[2,2]*A[1,3] - ESCRIBIR('Introduzca la segunda matriz')
2.[Mostrar la matriz traspuesta] PARA i=1 HASTA N HACER PARA j=1 HASTA M HACER
A[1,1]*A[2,3]*A[3,2]-A[2,1]*A[1,2]*A[3,3] PARA j=1 HASTA C HACER ESCRIBIR(R[i,j])
PARA j=1 HASTA M HACER
2.[Mostrar Resultado] PARA i=1 HASTA F HACER FIN_PARA
ESCRIBIR('Elemento ',i,j,':')
ESCRIBIR('El determinante es ',det) LEER(B[i,j]) FIN_PARA
ESCRIBIR(T[j,i] )
3.[Fin] FIN_PARA 4.[Fin]
FIN_PARA
FIN_PARA FIN_PARA
3.[Fin]
Tema 6. Vectores y Matrices 7 Tema 6. Vectores y Matrices 8

Ejercicio 85 Ejercicio 86
ALGORITMO matriz_simetrica. 2.[Comprobar si es simétrica]
CONSTANTES simetrica ßVERDAD
ALGORITMO prod_escalar_matrices. 2.[Calcular producto escalar del número
MAX=500 iß1 por la matriz]
CONSTANTES
VARIABLES MIENTRAS (simetrica AND (i<= N)) HACER PARA i=1 HASTA N HACER
N=3
A:ARRAY[1..MAX,1..MAX] DE REALES jß1 PARA j=1 HASTA M HACER
M=3
N,i,j: ENTERO MIENTRAS (simetrica A N D ( j <=N)) HACER
VARIABLES P[i,j]ßA[i,j]*num
simetrica : LOGICO SI (A[i,j ]<>A[j,i]) ENTONCES FIN_PARA
A,P:ARRAY[1..N,1..M] DE REALES
1.[Lectura de la matriz] simetrica ßFALSO FIN_PARA
num:REAL
REPETIR SINO
i,j: ENTERO 3.[Mostrar resultado]
ESCRIBIR('Nº de filas y columnas: ') jßj+1 ESCRIBIR('El producto escalar es')
1.[Lectura de los datos]
LEER(N ) FIN_SI PARA i=1 HASTA N HACER
ESCRIBIR('Introduzca la matriz')
HASTA ((N>0) AND (N< = M A X) ) FIN_MIENTRAS
PARA i=1 HASTA N HACER PARA j=1 HASTA M HACER
PARA i=1 HASTA N HACER ißi+1 ESCRIBIR(P[i,j])
PARA j=1 HASTA M HACER
PARA j=1 HASTA N HACER FIN_MIENTRAS FIN_PARA
ESCRIBIR('Elemento ', i,j,':')
ESCRIBIR('Elemento ', i,j,':') 3.[Mostrar resultado] FIN_PARA
LEER(A[i,j])
LEER(A[i,j]) SI (simetrica) ENTONCES 4.[Fin]
FIN_PARA
FIN_PARA ESCRIBIR('La matriz es simétrica') FIN_PARA
FIN_PARA SINO
ESCRIBIR('Introduzca el número')
ESCRIBIR('La matriz NO es simétrica')
LEER(num)
FIN_SI
4.[Fin]
Tema 6. Vectores y Matrices 9 Tema 6. Vectores y Matrices 10

Ejercicio 87 Ejercicio 89
ALGORITMO multiplicacion_matrices. ALGORITMO notas_ponderadas. 3.[Lectura de las ponderaciones correspondientes a cada
CONSTANTES 2.[Calcular la matriz producto] CONSTANTES problema]
MAX_A=500 REPETIR
N=3 PARA i=1 HASTA N HACER MAX_P=100 ESCRIBIR('Las ponderaciones deben sumar 1 en total')
P=3 PARA j=1 HASTA M HACER VARIABLES total_pesosß0.0
M=3 C[i,j]ß0 notas:ARRAY[1.. MAX_A,1.. MAX_P] DE REALES PARA i=1 HASTA M HACER
VARIABLES PARA h=1 HASTA P HACER pesos:ARRAY[1..MAX_P] DE REALES REPETIR
A:ARRAY[1..N,1..P] DE REALES C[i,j]ßC[i,j]+A[i,h]*B[h,j ] alumnos:ARRAY [1..MAX_A] DE REALES ESCRIBIR('Ponderación para problema ',i)
B:ARRAY[1..P,1..M] DE REALES FIN_PARA i,j,N,M: ENTERO LEER(pesos[i])
total_pesos:REAL HASTA ((pesos[i]>=0.0) AND (pesos[i]<=1.0))
C:ARRAY[1..N,1..M] DE REALES FIN_PARA 1.[Lectura del número de datos] total_pesosßtotal_pesos+pesos[i]
i,j,h: ENTERO FIN_PARA REPETIR FIN_PARA
1.[Lectura de los datos] 3.[Mostrar resultado] ESCRIBIR('Número de alumnos') HASTA (total_pesos=1 .0)
ESCRIBIR('Introduzca la primera matriz') ESCRIBIR('La Matriz producto es') LEER(N) 4.[Creación del vector alumnos]
PARA i=1 HASTA N HACER PARA i=1 HASTA N HACER HASTA ((N>0) AND (N< =MAX_A)) PARA i=1 HASTA N HACER
PARA j=1 HASTA P HACER PARA j=1 HASTA M HACER REPETIR Alumno[i]ß0.0
ESCRIBIR('Número de problemas') PARA j=1 HASTA M HACER
ESCRIBIR('Elemento ',i,j,':') ESCRIBIR(C[i,j]) LEER(M) alumno[i]ßalumno[i]+notas[i,j]*pesos[j]
LEER(A[i,j]) FIN_PARA HASTA ((M>0) AND (M< =MAX_P )) FIN_PARA
FIN_PARA FIN_PARA 2.[Lectura de las notas de cada alumno] FIN_PARA
FIN_PARA 4.[Fin] PARA i=1 HASTA N HACER 5.[Mostrar resultado]
ESCRIBIR('Introduzca la segunda matriz') PARA j=1 HASTA M HACER PARA i=1 HASTA N HACER
PARA i=1 HASTA P HACER REPETIR ESCRIBIR('La nota final del alumno ',i,' es ', alumno[i])
ESCRIBIR('Nota para el alumno', i, 'problema', FIN_PARA
PARA j=1 HASTA M HACER j,':')
ESCRIBIR('Elemento ',i,j,':') 6.[Fin]
LEER(notas[i,j])
LEER(B[i,j]) HASTA ((notas[i,j]>=0.0) AND (notas[i,j]<=10.0))
FIN_PARA FIN_PARA
FIN_PARA FIN_PARA

Tema 6. Vectores y Matrices 11 Tema 6. Vectores y Matrices 12

2
ALGORITMO club_dep.
Ejercicio 90
CONSTANTES
MAX=500
VARIABLES
3.[Ordenación del vector de varones]
PARA i=1 HASTA NV-1 HACER
PARA j=i+1 HASTA NV HACER
Ejercicio 93
nombre,varon,mujer:ARRAY[1..MAX] DE CADENAS
sexo:ARRAY[1..MAX] DE CARACTER SI (varon[i]>varon[j]) ENTONCES
i,N,NV,NM: ENTERO auxßvaron[i]
varon[i]ßvaron[j] ALGORITMO repeticiones. 3.[Eliminar repetidos]
1.[Lectura de datos]
varon[j]ßaux CONSTANTES n_modß0
REPETIR
ESCRIBIR('Número de miembros') FIN_SI
N=20 PARA i=1 HASTA N- 1 HACER
LEER(N) FIN_PARA
FIN_PARA VARIABLES PARA j=i+1 HASTA N HACER
HASTA ((N>0) AND (N< =MAX))
PARA i=1 HASTA N HACER 4.[Ordenación del vector de mujeres] A:ARRAY[1..N] DE ENTEROS SI ((A[i] =A[j ]) AND (A[i] < >- 1))
ESCRIBIR('Nombre del miembro', i) PARA i=1 HASTA NM-1 HACER ENTONCES
PARA j=i+1 HASTA NM HACER n_mod,i: ENTERO
LEER(nombre[i]) 2.[Entrada de datos] A[j ]ß- 1
SI (mujer[i]>mujer[j]) ENTONCES
REPETIR
ESCRIBIR('Sexo (V o M)') auxßmujer[i] PARA i=1 HASTA N HACER n_modß n_mod+1
LEER(sexo[i]) mujer[i]ßmujer[j] FIN_SI
mujer[j]ßaux REPETIR
HASTA ((sexo[i]=’M’) OR (sexo[i]=’V’)) ESCRIBIR('Introduzca el FIN_PARA
FIN_PARA FIN_SI
2.[Creación de los dos vectores varon y mujer] FIN_PARA dato número ',i,': ') FIN_PARA
FIN_PARA LEER(A[i] ) 4.[Mostrar el resultado]
NVß0
5.[Mostrar resultado]
NMß0 HASTA (A[i]>=0) ESCRIBIR('Nº de modificaciones ', n_mod)
PARA i=1 HASTA N HACER ESCRIBIR('Miembros varones')
PARA i=1 HASTA NV HACER FIN_PARA PARA i=1 HASTA N HACER
SI sexo[i]=’V’ ENTONCES
ESCRIBIR(varon[i]) ESCRIBIR(A[i] )
NVßNV+1
varon[NV]ßnombre[i] FIN_PARA
ESCRIBIR('Miembros mujeres') FIN_PARA
SINO
PARA i=1 HASTA NM HACER 5.[Fin]
NMßNM+1
mujer[NM]ßnombre[i] ESCRIBIR(mujer[i])
FIN_SI FIN_PARA
FIN_PARA 6.[Fin]

Tema 6. Vectores y Matrices 13 Tema 6. Vectores y Matrices 14

ALGORITMO estadisticas .
Ejercicio 95 REPETIR
CONSTANTES ESCRIBIR('Pelo(1-castaño;2- rubio;3 -resto)')
N=10 LEER(pelo[i] )
VARIABLES HASTA ((pelo[i]>0) AND ( pelo[i]<4))
nombre:ARRAY[1..N] DE CADENAS FIN_PARA
sexo:ARRAY[1..N] DE CARACTER 2.[Imprimir apartado a]
edad,peso,alto,ojos,pelo:ARRAY[1..N] DE ENTERO ESCRIBIR('Mujeres rubias y ojos azules, entre 160 y 170cm, y que pesan
i: ENTERO menos de 60 K g')
1.[Entrada de los N datos] PARA i = 1 H A S T A N H A C E R
PARA i = 1 H A S T A N H A C E R SI ((sexo[i]=’F’) AND ( pelo[i]=2) AND ( ojos[i]=1) AND ( alto[i]>=160)
AND ( alto[i]<=170) AND ( peso[i]<60)) ENTONCES
ESCRIBIR('Individuo número ',i)
ESCRIBIR(nombre[i] )
ESCRIBIR('Nombre ')
FIN_SI
LEER(nombre[i] )
FIN_PARA
REPETIR
3.[Imprimir apartado b]
ESCRIBIR('Sexo (M o F)')
ESCRIBIR('Hombres ni rubios ni castaños de 19 años y con ojos castaños')
LEER(sexo[i] )
PARA i = 1 H A S T A N H A C E R
HASTA ((sexo[i]=’F’) OR ( sexo[i]=’M’))
SI ((sexo[i]=’M’) AND ( pelo[i]=3) AND ( ojos[i]=2) AND ( edad[i]=19))
REPETIR ENTONCES ESCRIBIR(nombre[i] )
ESCRIBIR('Edad') FIN_SI
LEER(edad[i] ) FIN_PARA
HASTA ( edad[i]>0) 4.[Imprimir apartado c]
REPETIR ESCRIBIR('individuos rubios y ojos azules o castaños, entre 25 y 35 años, y
ESCRIBIR('Altura (en cm)') que pesen 65 Kilos o midan 168 c m')
LEER(alto[i] ) PARA i = 1 H A S T A N H A C E R
HASTA ( alto[i]>0) SI ((pelo[i]=2) AND ((ojos[i]=1) OR ( ojos[i]=2)) AND ( edad[i]>=25)
REPETIR AND ( edad[i]<=35) AND ((peso[i]=65) OR ( alto[i]=168)) ) ENTONCES
ESCRIBIR('Peso (en Kg)') ESCRIBIR(nombre[i] )
LEER(peso[i] ) FIN_SI
HASTA ( peso[i]>0) FIN_PARA
REPETIR 5.[Fin]
ESCRIBIR('Ojos (1-azul; 2-castaño; 3- resto)')
LEER(ojos[i] )
HASTA ((ojos[i]>0) AND ( ojos[i]<4))

Tema 6. Vectores y Matrices 15

También podría gustarte