Está en la página 1de 3

Problemas propuestos 1:

Arreglos y apuntadores
Luis E. Seijas
Agosto 4, 2023

Preguntas de revisión
1. Asumiendo que las variables de tipo int y todos los punteros requieren cuatro bytes de memoria, dibuja un
diagrama que muestre una porción del marco de pila que contiene las siguientes declaraciones:

int v1 = 10;
int v2 = 25;
int *p1 = &v1;
int *p2 = &v2;

En tu diagrama, sigue la operación de estas declaraciones.

*p1 += *p2;
p2 = p1;
*p2 = *p1 + *p2;

2. Escribe declaraciones de arreglos para las siguientes variables de arreglo:


a) Un arreglo realArray compuesto por 100 valores de punto flotante (float)
b) Un arreglo inUse compuesto por 16 booleanos
c) Un arreglo lines que pueda contener hasta 1000 cadenas de caracteres
Recuerda declarar constantes para especificar el tamaño asignado para estos arreglos.
3. Asumiendo que intArray se declara de la siguiente forma:

int intArray[10];

y que j es una variable tipo int, describa los pasos que la computadora tomarı́a para determinar el valor de
la siguiente expresión:

&intArray[j + 3];

4. Asume que las variables de tipo double ocupan ocho bytes en el sistema de computadora que estás utilizando.
Si la dirección base del arreglo doubleArray es FF00, ¿cuál es el valor de la dirección de doubleArray + 5?
5. ¿Cuál de las siguientes es la forma correcta de declarar un array?
a) int array;
b) int array[size];
c) array {ele};
d) array{ele, ele}, array[size];

1
Ejercicios
1. Reescriba el código contenido en el archivo quadratic.cpp de forme que utilice punteros en forma explı́cita
en lugar de hacer llamados por referencia para regresar los valores de las funciones getCoefficient y
solveQadratic.
2. Escribe un programa en C++ para encontrar el elemento más grande de un array dado de enteros.
3. Escribe un programa en C++ para encontrar la suma de los elementos en un array de enteros dado.
4. Escribe un programa en C++ que encuentre la suma de dos matrices. Debes tener en cuenta dos aspectos:
(1) Ambas matrices deben tener la misma dimension. Es decir, si una es 3x2 (tres filas y dos columnas),
la otra matriz también debe ser 3x2 y (2) La suma de dos matrices se realiza sumando los elementos
correspondientes en cada matriz.
5. Escribe un programa en C++ para encontrar la transpuesta de una matriz. La transpuesta de una matriz se
obtiene intercambiando sus filas por columnas (o viceversa). Es decir, el elemento en la fila ii y columna
jj en la matriz original se convierte en el elemento en la fila jj y columna ii en la matriz transpuesta.Para
una matriz cuadrada (es decir, una matriz con el mismo número de filas y columnas), la transpuesta se
obtiene reflejando los elementos a lo largo de la diagonal principal. Por ejemplo, Dada la matriz 𝐴 de
2 × 3:  
𝑎 𝑏 𝑐
𝐴=
𝑑 𝑒 𝑓

La transpuesta de 𝐴, denotada como 𝐴𝑇 , serı́a una matriz de 3 × 2 y se obtendrı́a de la siguiente manera:

𝑎 𝑑 

𝑇

𝐴 = 𝑏 𝑒 
𝑐 𝑓 
 
En la matriz 𝐴𝑇 , los elementos de cada columna en la matriz original 𝐴 se convierten en los elementos
de cada fila.
6. Escribe un programa en C++ que multiplique dos matrices. La multiplicación de matrices es una operación
más complicada que la suma o la resta de matrices. Aquı́ están los pasos básicos para multiplicar dos
matrices:
a) Comprueba las dimensiones de las matrices: Para poder multiplicar dos matrices, el número de
columnas de la primera matriz debe ser igual al número de filas de la segunda matriz. Si la primera
matriz es de dimensión 𝑚 × 𝑛 (m filas y n columnas) y la segunda matriz es de dimensión 𝑝 × 𝑞,
entonces 𝑛 debe ser igual a 𝑝. La matriz resultante tendrá dimensión 𝑚 × 𝑞.
b) Multiplica los elementos y suma: Para encontrar el elemento en la fila 𝑖 y la columna 𝑗 de la matriz
resultante, toma la fila 𝑖 de la primera matriz y la columna 𝑗 de la segunda matriz. Multiplica cada
elemento de la fila de la primera matriz por el elemento correspondiente de la columna de la segunda
matriz, y luego suma todos estos productos. Eso te da el elemento en la fila 𝑖, columna 𝑗 de la matriz
resultante.
Por ejemplo, si tienes dos matrices 2x2, 𝐴 y 𝐵:
   
𝑎 𝑏 𝑒 𝑓
𝐴= , 𝐵=
𝑐 𝑑 𝑔 ℎ
La matriz producto 𝐶 = 𝐴 × 𝐵 serı́a:

2
 
𝑎𝑒 + 𝑏𝑔 𝑎 𝑓 + 𝑏ℎ
𝐶=
𝑐𝑒 + 𝑑𝑔 𝑐 𝑓 + 𝑑ℎ
Recuerda que la multiplicación de matrices no es conmutativa, es decir, en general, 𝐴 × 𝐵 ≠ 𝐵 × 𝐴.

7. Escribe un programa en C++ para realizar operaciones aritméticas simples en cuatro tipos diferentes de
punteros.

8. Escribe un programa en C++ para una calculadora simple con un menú utilizando solo variables puntero.

También podría gustarte