Ejercicios resueltos Arreglos C++
1) Dada una matriz A[1....4][1....5] ordénala
pasándola a vector.
ALGORITMO
VARIABLES
PARA indice = 1 HASTA 20
INCREMENTO 1
ESCRIBIR ( “Introduce un
numero” ) ;
LEER ( numero[indice] ) ;
FIN_PARA
ESCRIBIR ( “Introduce un
numero” ) ;
LEER (numero) ;
indice = 1;
MIENTRAS ( indice < 21
) AND (numero <> A[indice] ) HACER
indice = indice + 1;
FIN_MIENTRAS
SI (indice = 21) ENTONCES
ESCRIBIR ( “No existe”
) ;
SINO
ESCRIBIR ( “Existe” ) ;
FIN_INICIO
FIN_ALGORITMO
3) Dado un vector de 5 celdas, CARGAR NUMEROS EN cada posición de dicho vector con un número
leído. El vector esta declarado como
valor entero.
ALGORITMO
VARIABLES
ENTERO numero
[1....5];
ENTERO indice;
INICIO
PARA indice = 1 HASTA 5
INCREMENTO 1
ESCRIBIR (
“Introduce un numero” );
LEER (
numero[indice] );
FIN_PARA
FIN
FIN_ALGORITMO
4) Leer una secuencia de 20 números almacenados en
un vector y mostrar la posición donde se encuentra el mayor leído.
ALGORITMO
VARIABLES
ENTERO indice;
ENTERO mayor ;
ENTERO mayor_indice;
ENTERO numero
[1....20];
INICIO
PARA indice = 1 HASTA
20 INCREMENTO 1
ESCRIBIR (
“Introduce un numero” ) ;
LEER (
numero[indice] ) ;
FIN_PARA
mayor = numero [1] ;
mayor_indice = 1;
PARA indice = 2 HASTA
20 INCREMENTO 1
SI (
numero[indice] > mayor ) ENTONCES
mayor =
numero[indice] ;
mayor_indice
= indice;
FIN_SI
FIN_PARA
ESCRIBIR ( “El mayor
ocupa la posición:” + mayor_indice ) ;
FIN
FIN_ALGORITMO
5) Dado dos vectores A y B de 15 elementos cada uno
obtener un vector C donde la posición i se almacena la suma de A[i] + B[i]
y mostrar el mayor de los C[i].
ALGORITMO
VARIABLES
ENTERO A[1....15] ;
ENTERO B[1....15] ;
ENTERO C[1....15] ;
ENTERO indice;
ENTERO suma;
INICIO
(* Cargar valores al
arreglo A *)
PARA indice = 1 HASTA
15 INCREMENTO 1
ESCRIBIR (
“Introduce un numero” ) ;
LEER (
numero[indice] ) ;
FIN_PARA
(* Cargar valores al
arreglo B *)
PARA indice = 1 HASTA
15 INCREMENTO 1
ESCRIBIR (
“Introduce un numero” ) ;
LEER (
numero[indice] ) ;
FIN_PARA
(* Sumar los valores
del arreglo A y B en C *)
PARA indice = 1 HASTA
15 INCREMENTO 1
C[indice] =
A[indice] + B[indice] ;
FIN_PARA
PARA indice = 1 HASTA
15 INCREMENTO 1
ESCRIBIR (
C[indice] ) ;
FIN_PARA
mayor = C[1] ;
mayor_indice = 1;
(* Buscar el mayor
valor cargado en el arreglo C *)
PARA indice = 2 HASTA
15 INCREMENTO 1
SI (
C[indice] > mayor ) ENTONCES
mayor =
C[indice] ;
mayor_indice = indice;
FIN_PARA
ESCRIBIR ( “El mayor
ocupa la posición:” + mayor_indice ) ;
FIN
FIN_ALGORITMO
6) Dado una secuencia de números leídos y
almacenados en un vector A mostrar dichos números en orden.
ALGORITMO
VARIABLES
ENTERO intercambio ;
ENTERO
vector[1....5] ;
ENTERO intermedio;
ENTERO indice;
FIN_VARIABLES
INICIO
PARA indice = 1 HASTA 15
INCREMENTO 1
ESCRIBIR (
“Introduce un numero” ) ;
LEER (
vector[indice] ) ;
FIN_PARA
REPETIR
intercambio = 0
PARA indice = 1 HASTA
14 INCREMENTO 1
SI
(vector[indice] > vector[indice + 1]) ENTONCES
intermedio =
vector[indice] ;
vector[indice] = vector[indice +
1] ;
vector[indice + 1 ] = intermedio;
intercambio
= 1;
FIN_SI
FIN_PARA
HASTA (intercambio = 0)
PARA indice = 1 HASTA
15 INCREMENTO 1
ESCRIBIR (
“El vector ordenado es:” + vector[indice] ) ;
FIN_PARA
FIN_INICIO
FIN_ALGORITMO
7) Dada dos matrices A y B obtener la suma.
ALGORITMO
VARIABLES
ENTERO matrizA[1....20][1....5] ;
ENTERO matrizB[1....20][1....5] ;
ENTERO matrizC[1....20][1....5] ;
ENTERO fila;
ENTERO columna;
FIN_VARIABLES
INICIO
PARA
fila = 1 HASTA 20 INCREMENTO 1
PARA columna = 1 HASTA 5 INCREMENTO 1
ESCRIBIR ( “Introduce un numero” ) ;
LEER ( matrizA[fila][columna] ) ;
FIN_PARA
FIN_PARA
PARA
fila = 1 HASTA 20 INCREMENTO 1
PARA columna = 1 HASTA 5 INCREMENTO 1
ESCRIBIR ( “Introduce un numero” ) ;
LEER ( matrizB[fila][columna] ) ;
FIN_PARA
FIN_PARA
PARA
fila = 1 HASTA 20 INCREMENTO 1
PARA columna = 1 HASTA 5 INCREMENTO 1
matrizC[fila][columna] = matrizA[fila][columna] +
matrizB[fila][columna] ;
LEER ( matrizA[fila][columna] ) ;
FIN_PARA
FIN_PARA
FIN_INICIO
FIN_ALGORITMO
8) Leer una secuencia de 20 números almacenados en un vector
A[1....20] y mostrar la suma de los
elementos que ocupan posición pares, y
el mayor de los que ocupan posición impares.
ALGORITMO
VARIABLES
ENTERO
vector[1....20] ;
ENTERO mayor ;
ENTERO indice;
ENTERO suma;
FIN_VARIABLES
INICIO
(*
Cargar el arrreglo Vector, de valores enteros *)
PARA (indice = 1) HASTA 20
INCREMENTO 1
ESCRIBIR ( “Introduce
un numero” ) ;
LEER (vector[indice])
;
FIN_PARA
suma = 0;
(*
Sumar los números de aquellos que ocupan posiciones pares *)
PARA (indice = 2) HASTA
20 INCREMENTO 2
suma = suma +
vector[indice] ;
FIN_PARA
(* Buscar
el número mayor de aquellos valores que ocupan posiciones impares *)
mayor = vector[1] ;
PARA (indice = 1)
HASTA 20 INCREMENTO 2
SI (vector [indice] > mayor) ENTONCES
mayor = vector[indice] ;
FIN_SI
FIN_PARA
ESCRIBIR ( “La suma
es:” + suma) ;
ESCRIBIR ( “El mayor
es:” + mayor ) ;
FIN
FIN_ALGORITMO
9) Leer 20 números y mostrar la suma de todos. Se utiliza arreglos.
ALGORITMO
VARIABLES
numero [1....20] de
arreglos: ENTEROS
indice, suma: ENTERO
INICIO
suma = 0;
[* Cargar un número
en arreglo numero *]
PARA indice = 1 HASTA 20 INCREMENTO 1
ESCRIBIR (
“Introduce un numero” );
LEER (
numero[indice] );
FIN_PARA
[* Imprimir un
número cargado de un arreglo numero *]
[* Se acumula en SUMA
*]
PARA indice = 1
HASTA 20 INCREMENTO 1
suma = suma +
numero[indice];
FIN_PARA
ESCRIBIR ( “La suma
total es:” + suma );
FIN
FIN_ALGORITMO
10) Dado dos vectores A y B de 15 elementos cada uno
obtener un vector C donde la posición i se almacena la suma de A[i] + B[i]
y mostrar el mayor de los C[i].
ALGORITMO
VARIABLES
ARREGLO [1....15] DE ENTERO: A, B, C,
Índice, suma: ENTERO
INICIO
(* Cargar o introducir
datos en el arreglo A*)
PARA indice = 1 HASTA 15
INCREMENTO 1
ESCRIBIR (
“Introduce un numero” ) ;
LEER (
A[indice] ) ;
FIN_PARA
(* Cargar o introducir
datos en el arreglo B*)
PARA indice = 1 HASTA 15
INCREMENTO 1
ESCRIBIR (
“Introduce un numero” ) ;
LEER (
B[indice] ) ;
FIN_PARA
(* Sumar dos arreglos y
cargarlos en el arreglo C *)
PARA indice = 1 HASTA 15
INCREMENTO 1
C[indice] =
A[indice] + B[indice] ;
FIN_PARA
(* Escribir el contenido
del arreglo C *)
PARA indice = 1 HASTA 15
INCREMENTO 1
ESCRIBIR (
C[indice] ) ;
FIN_PARA
(* Buscar el número mayor
del arreglo y reflejar el indice *)
mayor = C[1] ;
mayor_indice = 1;
PARA indice = 2 HASTA 15
INCREMENTO 1
SI ( C[indice] > mayor ) ENTONCES
mayor =
C[indice]
mayor_indice
= indice
FIN SI
FIN_PARA
ESCRIBIR ( “El mayor
NÚMERO ocupa la posición:” , mayor_indice ) ;
FIN
FIN_ALGORITMO
11) Dado una matriz, determinar la posición [i,j]
del mayor número.
ALGORITMO ejercicio 13
VARIABLE
ARREGLO A[1..5, 1..4] DE
ENTERO
Fila, columna, mayor,
posición_fila, posición_columna: ENTERO
Mayor, posicion_fila,
posición_columna: ENTERO
INICIO
PARA fila = 1 HASTA 5 INCREMENTO 1
PARA columna = 1 HASTA 4
INCREMENTO 1
ESCRIBIR
(“Introduce un numero”);
LEER (A[fila,
columna]);
FIN_PARA
FIN_PARA
Mayor = A[1, 1];
Posición_fila = 1;
Posición_columna = 1;
PARA fila = 1 HASTA 5 INCREMENTO 1
PARA columna = 1 HASTA 4
INCREMENTO 1
SI (A[fila,
columna] > mayor) ENTONCES
Mayor
= A[fila, columna];
Posición_fila
= [fila];
Posición_columna
= [columna];
FIN_SI
FIN_PARA
ESCRIBIR (“El
mayor es:mayor”);
ESCRIBIR (“La
posición es:”, posición_fila,
Posición_columna)
FIN_PARA
FIN_INICIO
FIN_ALGORITMO
12.- Dado una
matriz, determinar la posición [i,j] del mayor y menor número. ALGORITMO ejercicio 14
VARIABLE
ARREGLO A[1..5, 1..4] DE
ENTERO
Fila, columna, mayor,
posicion_fila, posición_columna: ENTERO
ENTERO menor
ENTERO posición_fila1;
ENTERO posición_columna1;
INICIO
PARA fila = 1 HASTA 5 INCREMENTO 1
PARA columna = 1 HASTA 4
INCREMENTO 1
ESCRIBIR
(“Introduce un numero”);
LEER (A[fila,
columna]);
FIN_PARA
FIN_PARA
[* Hallar el mayor de los números cargados
en la matriz *]
Mayor = A[1, 1];
Posición_fila = 1;
Posición_columna = 1;
PARA fila = 1 HASTA 5 INCREMENTO 1
PARA columna = 1 HASTA 4
INCREMENTO 1
SI (A[fila,
columna] > mayor) ENTONCES
Mayor =
A[fila, columna];
Posición_fila
= [fila];
Posición_columna
= [columna];
FIN_SI
FIN_PARA
ESCRIBIR (“El mayor
es:”, mayor”);
ESCRIBIR (“La
posición es:”, posición_fila, Posición_columna”);
FIN_PARA
[* Hallar el menor de los números cargados
en la matriz *]
Menor = 1;
Posición_fila1 = 1;
Posición_columna1 = 1;
PARA fila = 1 HASTA 5 INCREMENTO 1
PARA columna = 1 HASTA 4
INCREMENTO 1
SI (A[fila,
columna] < menor) ENTONCES
Menor =
A[fila,columna];
Posición_fila1
= [fila];
Posición_columna1
= [columna];
FIN_SI
FIN_PARA
ESCRIBIR (“El menor
es:”, menor);
ESCRIBIR (“La
posición es:”, posición_fila1, Posición_columna1”);
FIN_INICIO
FIN_ALGORITMO