Ejercicios de Lenguaje C (Cap2)

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 23

ESCUELA POLITÉCNICA DEL EJÉRCITO

FACULTAD DE INGENIERÍA EN SISTEMAS

Fundamentos de Programación

TEMA:

Recopilación de todos los ejercicios propuestos del libro de


Lenguaje C

NIVEL:

Primer Nivel “A”

FECHA:

30 de Abril del 2010


PROBLEMAS PROPUESTOS

Ejercicio 1)

Ricardo Delgado

De los siguientes identificadores determinar cuáles son válidos y explicar por que?
a) registro1 es valido mnemónico

b) 1registro no es valido no mnemónico empieza con un numero

c) archivo_3 no es valido no mnemónico tiene un carácter especial

d) return no es valido no mnemónico es una palabra reservada

e)$impuesto no es valido no mnemónico contiene carácter especial

f) nombre es valido mnemónico

g)nombre y direccion no es valido no mnemónico debe contener asta 13 caracteres

h)nombre_y_direccion no es valido no mnemónico debe contener 13 caracteres

i)123-45-6789 no es valido no mnemónico representa un numero

Ejercicio 2)

Cristian Vélez

Si se tiene un programa enlazado determinar cuáles de las siguientes pares de nombres de


identificadores se consideran idénticos y cuales diferentes:

a) nombre, nombres
b) dirección, direcciones
c) identificador1_,identificador2
d) numero, Numero
e) lista 1,lista 2
f) respuesta, RESPUESTA
g) num 1, num_1
h) promedio, promedios

IDENTIFICADORES IDENTICOS

h) promedio, promedios
a) nombre, nombres
b) dirección, direcciones
c) identificador1_,identificador2

IDENTIDFICADORES DIFERENTES

d) numero, Numero
e) lista 1,lista 2
f) respuesta, RESPUESTA
g) num 1, num_1

JUSTIFICACION: SI EL IDENTIFICADOR ESTA ENVUELTO EN EL PROCESO DE ENLAZADO, LOS


SEIS PRIMEROS CARACTERES SON SIGNIFICATIVOS.

EN C LAS LETRAS MINUSCULAS Y MAYUSCULAS SE TRATAN COMO DISTINTAS

Ejercicio 3)

Carlos Sánchez

Determinar cuáles de los siguientes valores numéricos son constantes válidas?. Si una
constante es válida, especificar si es entera o punto flotante. Especificar también la base en
que está escrita cada constante entera válida.
a) 0.5 FLOTANTE BASE 1

b) 27,822 FLOTANTE BASE 1

c) 9.3e12 ENTERO BASE 12

d) O*87e3ha NO

e) 12345678 ENTERO BASE 1

f) 123456789 ENTERO BASE 1

g) 0,8 + 0,8 FLOTANTE BASE 1

h) 9,3e-12 FLOTANTE BASE -12

i) 018cdf NO

j) 0*BCFDAL NO

k) 0515 ENTERO BASE 1

l) 0.8E8 FLOTANTE BASE 8

Ejercicio 4)

Henry Cóndor
¿Determinar cuáles de los siguientes caracteres son constantes válidas?

a) ’a’ Constante válida d) ’\n’ Constante válida g) ’\\’ Constante válida

b) ’xyz’ No es Constante válida e) ’$’ Constante válida h) ’/n’ No es Constante válida

c) ’\a’ Constante válida f) ’\0’ Constante válida i) ’\052’ Constante válida

Ejercicio 5)

Wendy Ayala

¿Determinar cuáles de las siguientes cadenas de caracteres son constantes válidas?

a) ‘8:15 PM’
No es correcta porque está entre apóstrofes no entre comillas.
b) “Rojo, Blanco, Verde”
No es correcta porque siempre va una sentencia por línea
c) “Nombre:
No es válida porque no termina en comillas sino en dos puntos.
d) “Capítulo 3 (cont\’d)”
Sí es válida
e) “1.3e-12”
Sí es válida
f) “28018 QUITO”
Sí es válida
g) “El Profesor dijo, “Por favor, no se duerman en clases”
No es válido porque no se cierran todas las comillas
h) “Este es un \”ejemplo\””
Si es válido.

Ejercicio 6)

Alex Paguay

Escribir las declaraciones apropiadas para cada grupo de variables y cadenas

a) Variables enteras: p, q
int p,q;
Variables de punto flotante: x, y, z
float x,y,z;
Varibles de carácter: a, b, c
char a,b,c;
b) Variables de punto flotante: raizl, raiz2
float raiz1, raiz2;
Variable entera larga: cont
long int cont;
Variable entera corta: indicador
Short int indicador;
c) Variable entera: índice
Int índice;
Variable entera sin signo: cliente_num
Unsigned int cliente_num;
Variable de doble precisión: bruto, impuesto, neto
Doublé bruto, impuesto, neto;
d) Variable de carácter: actual, ultimo
Char actual, ultimo;
Variable entera sin signo: contador
Unsigned int contador;
Variable de punto flotante: error
Float error;
e) Variable de carácter: primero, ultimo
Char primero, ultimo;
Cadenas de caracteres de 80 elementos: mensaje, curso
char mensaje[80];
char curso[80];
Cadena de caracteres de 30 elementos: nombre
char nombre[30];

Ejercicio 7)

Allauca Kevin

Escribir declaraciones apropiadas y asignar los valores iniciales dados para cada grupo de
variables y cadenas.

a) variables de punto flotante: a = -8.2, b = 0.005


float a;
doble b;
scanf (“%f”, a);
sacnf (%df. &b);

variables enteras: x = 129, y = 87, z = -22


int x, y, z;
scanf (“%d%d%%d”, &x,&y,&z);

variables de carácter c1 = ‘w’, c2 = ‘g’


char c1, c2;
scanf (“%c%c” &c1, &c2);
b) variables de doble precisión: d1 = 2.88e-8, d2 = -8.4e5
doble d1, d2;
scanf (“%df”, &d1, &d2);
variables de enteras: u = 711 (octal), v = fff (hexadecimal)
int u, v;
scanf (“%od%xd”, &u, &v);
variables enteras: i = 1000 (entera larga), j = 1 (entera)
long int i;
int j;
scanf (“%ld%d”, &I, &j);
c) variable de entero largo: grande = 123456789
long int grande;
scanf (“%dl”, &grande);
variable de doble precisión: c = 0.33333333
doble c;
scanf (“%df”, %c);
variable de carácter: eol = carácter de nueva línea
char eol;
scanf (“%c”, &eol);
d) cadena de caracteres: error = “ERROR, no hay memoria”
if (error)
printf (“ERROR, no hay memoria”);
cadena de caracteres: aviso = “El archivo está leno\n”
if (aviso)
printf (“el archivo esta lleno\n”);
cadena de caracteres: mensaje = “\n\”FIN\” de entrada\n.”
if (mensaje)
printf (“\n\”FIN\” de entrada\n.”);

Ejercicio 8)

Diana Vaca

ESCRIBIR DECLARACIONES APROPIADAS Y ASIGNAR LOS VALORES INICIALES DADOS PARA


CADA GRUPO DE VARIABLES.

a) VARIABLES DE CARÁCTER:C1= “A”, C2= “B”, pito=carácter alarma

#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
chart c1,c2;

int _tmain(int argc, _TCHAR* argv[])


{
C1= “A”
C2= “B”
scanf("%c", &c1);
scanf("%c", &c2);
printf(“\a);

b) VARIABLES ENTERAS: U=711, v=abcd, w=123, x=35, y=-390, grande=123456789

#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
int u,v,w,x,y,E;

int _tmain(int argc, _TCHAR* argv[])


{

U=711;
v=abcd;
w=123;
x=35;
y=-390;
e=123456789;
scanf("%o", &u);
scanf("%i", &v);
scanf("%i", &w);
scanf("%i", &x);
scanf("%i", &y);
scanf("%li", &e);

c) VARIABLES DE PUNTO FLOTANTE:a=1.2, b=0,005, c=3,1416


#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
float a,b,c;

int _tmain(int argc, _TCHAR* argv[])


{

a=1.2;
b=0,005;
w=123;
x=3,1416;
scanf("%f", &a);
scanf("%f", &b);
scanf("%f", &w);
scanf("%f", &x);

d) VARIABLES DE DOBLE PRESICION: dl=1,22e-4, d2=-2,3e6, c=0,666666

#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
double a,b,c;

int _tmain(int argc, _TCHAR* argv[])


{

dl=1,22e-4;
d2=-2,3e6;
w=0,66666;
scanf("%e", &dl);
scanf("%e", &b);
scanf("%e", &w);
scanf("%f", &x);

Ejercicio 9)

Carlos Rivadeneira

Escribir una definición apropiada para cada una de las siguientes constantes simbólicas:
Constante Texto

a) FACTOR -18
b) ERROR 0.0001
c) BEGIN {
d) END }
e) NOMBRE “Anita”
f) EOLN ‘\n’
g) COSTO “$19.95”
h) PI 3.1416
i) FIN “Fin de programa\n”
j) MENSAJE “No se puede abrir el archivo\n”

a) Sustituirá el identificador por el entero dado


b) Sustituirá el identificador por el flotante dado
c) En lugar de poner llave podemos asignar BEGIN y el compilador sustituirá el
identificador.
d) Para finalizar podemos usar END y el compilador sustituirá el identificador.
e) Cambiara el identificador NOMBRE por la cadena dad.
f) Al escribir ese identificador nos dará un salto de línea
g) Sustituirá el identificador por el precio mostrado
h) Al escribir PI nos mostrara el valor numérico de la constante pi
i) Este identificador se cambiara x la cadena dada.

Ejercicio 10)

Pamela Utreras

Indicar cuáles de los siguientes numerales son verdaderos y cuáles son falsos? Explique sus
respuestas.

a) Los siguientes identificadores de variables son todos nombres válidos: _sobre_bar_,


m928134, t5, j7, aqui_sales, informe_total, a, b, c, z, z2.

* VERDADERO, el primer carácter de un identificador debe ser siempre una letra o un guión
bajo, es decir no puede ser un dígito y se forma con una secuencia de letras (minúsculas de la a
a la z; mayúsculas de la A a la Z; y dígitos del 0 al 9).

b) Los siguientes identificadores de variables son todos nombres inválidos: 3g, 87, 67h2, h22,
2h.

*FALSO, ya que el cuarto ejemplo, no es inválido ya que este empieza con una letra y la
secuencia de los identificadores si puede empezar con una letra y guión, pero no puede
empezar con número.

c) Los operadores de C se evalúan de izquierda a derecha.


* VERDADERO, los operadores aritméticos en C operan de izquierda a derecha como en la
mayoría de lenguajes, y pueden aplicarse a casi todos los tipos de datos predefinidos en C.

d) Una expresión aritmética válida en C que no contenga paréntesis se evalúa de izquierda a


derecha.

* VERDADERO siempre y cuando se tomen en cuenta el orden de ejecución de las operaciones


( -, + * y /)

Ejercicio 11)

Andrés Morales

Un programa en C contiene la sentencia de declaración:

float x, y, z;

Escribir una función printf() para cada uno de los siguientes grupos de variables o expresiones,
utilizando el especificador de formato f para cada cantidad de punto flotante

a) x, y, z

printf(“%f %f %f”, x, y, z);

b) (x+y), (x-z)

printf(“%f %f, (x+y), (x-z));

c) sqrt(x+y), fabs(x-z)

printf(“%f %f”, sqrt(x+y), fabs(x-z));

d) x, y e z, con una longitud de campo mínima de seis caracteres por cantidad

printf(“%6f %6f %6f”, x, y, z);

e) (x+y) y(x-z), con una longitud de campo mínima de ocho caracteres por cantidad

printf(“%8f %8f ”, (x+y),(x-z));

f) sqrt(x+y) y fabs(x-z), con una longitud de campo mínima de 12 para la primera


cantidad y 9 para la segunda

printf(“%12f %9f”, sqrt(x+y), fabs(x-z));

g) x, y e z, con una longitud de campo mínima de ocho caracteres por cantidad, con
cuatro cifras decimales

printf(“%8.4f %8.4f %8.4f”, x, y, z);


h) (x+y) y (x-z), con una longitud de campo mínima de ocho caracteres por cantidad,
con tres cifras decimales

printf(“%8.3f %8.3f”, (x+y), (x-z);

i) sqrt(x+y) y fabs(x-z), con una longitud de campo mínima de 12 para la primera


cantidad y 10 para la segunda. Presentar un máximo de cuatro cifras decimales en
cada cantidad

printf(“%12.4f %10.4f”, sqrt(x+y), fabs(x-z));

Ejercicio 12)

Arie Shweizer Bonilla

Escribir solo un enunciado de c que cumpla con cada uno de los siguientes numerales:

a) Asignar el producto de las variables b y c a la variable a.


a=b*c;
b) Declarar que un programa realiza un reporte alfanumérico de una nomina de
estudiantes, es decir, utilizar un comentario para documentar el programa.
// reporte alfanúmero de la nomina de estudiantes.
c) Exprese la siguiente ecuación matemática en forma computacional.
3 4
𝑥3 − 𝑥3 + + 1
𝑦= 5 3
3 4 2 1
𝑥 +7 𝑥 + 𝑥
5 2

Y=(x*x*x-3/5*x*x*x+3/4+1)/(x*x*x*x*x(4/5+7)+1/2*x)

d) La variable x tiene el valor de 20, ésta debe ser actualizada multiplicándola por el valor
de y; a su vez y se obtiene al asignarle el valor inicial de 10 y luego incrementándole en
50
x=20;
y=10;
x=x*(y+50);

Ejercicio 13)

Gabriela Andrade

Explicar el propósito de cada una de las siguientes expresiones:

a) a- b && a + b realiza una operación lógica entre la resta de la variable a menos b y la


suma de a mas b.
b) (a%5)== 0 saca el residuo de a dividido para 5 y ese valor lo relaciona con cero.
c) a>=t indica q la variable a es mayor igual que la variable t
d) --a indica que se lleve a cabo el decremento en uno antes de utilizar el valor de a.
e) d=a * (b +c) indica q se realice la suma de b + c y a esa suma se le multiplique por a y a
este resultado se lo relaciones o se iguale a d
f) a*(b+c) indica q se realice la suma entre b y c y se multiplique este resultado por a
g) a<(b/c) indica q se divida b para c y a este valor se lo relacione con a, es decir a se
evaluara si es menor que el resultado antes mencionado
h) (a=6)*b indica que a es igual a 6 y que este valor se lo multiplique por b.

Ejercicio 14)

Milton Paredes

CUALES DE LAS SIGUIENTES EXPRESIONES DE C, CORRESPONDIENTES A LA ECUACION y = ax3 +


7, SON CORRECTAS?

a) y = a * x * x * x + 7; CORRECTA

b) y = a*x*x* <x + 7);

c) y = (a * x) * x * (x + 7);

d) y = (a * x) * x * x + 7; CORRECTA

e) y = a * (x * x * x) + 7; CORRECTA

f) y = a * x * (x * x + 7);

Ejercicio 15)

Karen Muñoz

Declarar el orden de cálculo de los operadores en cada una de las siguientes expresiones, y
mostrar el valor de x después de que se ejecute cada una de ellas.

a) x= 7 + 3 * 6 / 2 - 1;

18

16

X = 15

b) x=2 % 2 + 2 * 2 – 2 / 2;

0 4 1

X= 3
c) x= (3 * 9 *(3 + (9 * 3/ (3))));

27 27

12

X =324

Ejercicio 16)

Paul Valladares

Considerando las siguientes declaraciones

Int a = 8

Int b = 3

Int c = -5

Determinar el valor de cada una de las expresiones aritméticas, indicando el orden de cálculo

a) a+b+c b) 2* b + 3 * (a-c)

6 13
11

39
6

45

c) a/b d) a%b e) a + c/b

1
2 1

f) a % (b*c) g) a*b / c h) a * (b/c)

-15 24 0

0
-7 -4
i) (a % c) * b

-2

-6

Ejercicio 17)

Cadena Erick

Dadas las siguientes declaraciones

float x = 1.0;

float y = 3.0;

float z = -2.0;

Determinar el valor de cada una de las expresiones aritméticas indicando el orden de cálculo

a) x+y+z
1.0 + 3.0 + (-2.0)

2.0

b) 2 * y + 3 * (x – z)
2 * 3.0 + 3 * (1.0 – (-2.0))
6.0 + 3 * (3.0)
6.0 + 9.0
15.0

c) x/y

(1.0)/(3.0)

0,333333

d) x%y
1.0

e) x / (y + z)
1.0 / (3.0 – 2.0)
1.0 / 1.0

1.0

f) (x / y) + z
g) 2*x/3*y
2 * 1.0 / 3 * 3.0
2.0 / 3 * 3.0

0.66 * 3.0

2.0

h) 2 * x / (3 * y)
2 * 1.0 / (3 * 3.0)
3.0 / 9.0

0.2222

i) x+y/z
1.0 + 3.0 / (-2.0)
1.0 – 1.5

-0.5

Ejercicio 18)

Andrea Cañizares

Considerar las declaraciones:

char c1 = ‘A’;
char c2 = ‘5’;
char c3 = ‘?’

Determinar el valor numérico de las siguientes expresiones, basándose en el conjunto de


caracteres ASCII.

a) c1 d) c3 + ‘#’ g) 3 * c2
b) c1 – c2+ c3 e) c1 % c3 h) ‘3’ * c2
c) (c1/c2) * c3 f) c2 – 2 i) c2 – ‘2’

1.- ANALISIS.-

Obtener el valor numérico de las declaraciones dadas.


Utilizando el valor numérico de los caracteres ASCII, de acuerdo a lo que nos pide.

2.- Desarrollo.-

‘A’ = 65 ‘#’ = 35
‘5’ = 53 ‘2’ = 50
‘?’ = 63 ‘3’ = 51

a) A = 65 d) ? + ‘#’ = 98 g) 3 * 5 = 159
b) A – 5 + ? = 75 e) A % ? = 2 h) ‘3’ * 5 = 255
c) (A/5) * ? = 77.264151 f) 5 – 2 = 51 i) 5 – ‘2’ = 3
Ejercicio 19)

Sandra Velastegui

Un programa en c contiene las siguientes declaraciones:

int i, j;
long ix;
Short f;
Float x;
double dx;
char c;

Determinar el tipo de dato de cada una de las expresiones mostradas expresiones:

a) i + c 

int + carácter  el resultado sería int, resultado entero. Por Ejemplo:

int i=5, r;
char c=‘a’;
r  i + c = 5 + 97 = 102

b) x + c

float + char  el resultado sería float, es decir real. Por ejemplo:

float x=2.5, r;
char c=‘a’;
r  x + c = 2.5 + 97 = 99.5

c) (int dx + ix)

dx es de tipo double y el mismo es real de manera que double no puede ser por
ninguna razón entero, pero en caso de que vuelva a declarar la variable cambiada de
esta manera:

int + long  el resultado sería long int, es decir un entero largo o grande. Por
ejemplo:

int dx=7;
long ix=24587963;
long int r;
r  dx + ix = 7 + 24587963 = 24587970

d) ix + j

long + int  el resultado sería long int, es decir un entero largo o grande. Por
ejemplo:

int j=6;
long ix=24587963;
long int r;
r  ix + j = 6 + 24587963 = 24587969

e) i + x

int + float  el resultado sería un valor float, es decir un numero real. Por ejemplo:

int i=5;
float x=2.2, r;
r  i + x = 5 + 2.2 = 7.2

f) dx + x

double + float  el resultado sería un valor long double, es decir un valor real
grande. Por ejemplo:

double dx=251478.365154;
float x=2.1
r  dx + x = 251478.365154 + 2.1 = 251480.465154

g) ix + c

long + char  el resultado sería un valor long int, es decir un valor entero grande. Por
ejemplo:

long ix=1254896;
char c=’a’;
long int r;
r  ix + c = 1254896 + 97 = 1254993
h) f + c

short + char  el resultado seria un valor short int, es decir un valor corto entero.
Por ejemplo

short f=2;
char c=’a’;
short int r;
r  f + c = 2 + 97 = 99

i) f+j

short + int  el resultado seria un valor short int, es decir un valor corto entero. Por
ejemplo

short f=2;
int j=3;
short int r;
rf+j=2+3=5
Ejercicio 20)

Esteban Grijalva

Un programa en c contiene las siguientes declaraciones y asignaciones iniciales:

int i=8,j=5;
float x=0.005, y=-0.01;
char c='c', d='d';

Determinar el valor de cada una de las expresiones mostradas a continuación, utilizando para
cada una de ellas los valores asignados inicialmente a las variables:

a) (3*i-2*j)%(2*d-c)*j!=6
b) 2*((i/5)+(4*(j-3)))/c==9
c) (i-3*j)%(c+2*d)+5*(i+j)>'c'
d) -(i+j)/(x/y)%(i+j-2)-(2*x+y)==0
e) ++j/2*x+(y==0)
f) i++%2*x+y==0
g) --j-!(i<=j)
h) ++x*!(c==9)
i) y--+!(x>0)
j) i<=j||(i>0)&&(j<5)
k) c>d||(i>0)||(j<5)
l) x>=0&&(x>y)&&(i>0)||(j<5)
m) x<y||(x>y)&&(i>0)&&(j<5)
n) 2*x>=5*j&&i>j%3<i/j

 Análisis:

Debemos asignar los valores de dichas variables a cada ejercicio para así obtener el
resultado correspondiente. Al hacerlo tendremos que evaluar cada ejercicio
asignándolo a una variable entera, flotante y carácter, para así saber el resultado que
obtenemos.

 Diagrama de flujo:
 Programa:

EJ20PG45

 Captura de Pantalla:
 Prueba de Escritorio:

Prueba de Escritorio
i j x y ent dec car
8 5 0,005 -0,01 4 0,015 FALSO
2 -0,1 FALSO
VERDADERO
FALSO
FALSO
VERDADERO
VERDADERO
FALSO
FALSO

Ejercicio 21)

Carlos Sánchez

Un programa en c contiene las siguientes declaraciones y asignaciones iniciales:

Int I, j, k;
I=8;
J=5;
Float x, y, z;
X=0.005;
Y= 0.01 ;
Char a,b,c;
A=”a”;
B= “b”;
C = “c”;
Determinar el valor de cada una de las expresiones de asignación, utilizando para cada
expresión el valor inicial asignado a las variables:
x<-0.005; z<-k;
y<-0.01; k<-z;
a<-"a"; i<-2;
b<-"b"; y<-x;
c<-"c"; x<-z;
d<-"d"; i/<-j;
i%<-j;
k<-i+j;
z<-x+y; i<-j+2;
i<-j; k<-i;
k<-x+y; k<-i>5;
k<-c; z<-y>=0;
z<-1/i; z<-y>=0;
a<-b; a<-c<d;
i<-i>0;

Ejercicio 22)

No hicieron el ejercicio

Ejercicio 23)

Karen Muñoz

Considerando las siguientes declaraciones, evaluar las expresiones mostradas a


continuación, indicando el orden de cálculo.

int i=8, j=5;

float x=8, y=4;

int *p;

float *q;

p = &i;

q = &x;

Utilizar los valores asignados inicialmente a las variables para cada expresión.

int i
float x
a) !(i -= (j>0) ? j : 0)&&(*p/=j) ll (i=j=1.1)&&(i+=20,*p/j)

!(8 -= (5>0) ? 5 : 0)&&(*p/=5) ll (8=5=1.1)&&(8 +=20,*p/5)

1 (8=8/5) 0 (8=28,8/5)

0 0

b) (*q>y)&&(*q > 0 ll y<5) * ( - -j%2)

(*q>4)&&(*q > 0 ll 4<5) * ( - -5%2)

(8>4) (8>0) 1 (4%2)

1 1 0

Ejercicio 24)

Karen Muñoz

Si no existen errores en las siguientes expresiones, evaluarlas indicando el orden de cálculo.


Considerar la declaración y asignación:

int i = 100, *ip;

ip = &i;

Utilizar los valores asignados inicialmente a las variables para cada expresión.

int i

a) (i = *ip/sizeof(int), i +=(i>50) ? 100 : 200, ++i * 10 – i +1)


(100 = *ip / sizeof (int), 100 += (100>50) ? 100 : 200, ++100 * 10 – 100 + 1)

100 2 1 101

50 100 1010

0 910

100 911

911

b) i++ %2 && (10>5 && !(110 < i) ll 3<=4) ll !(i >100) ll 0

100 ++ %2 && (10>5 && !(110 < 100) ll 3<=4) ll !(100 >100) ll 0

100 1 0 1 0

0 1

1 1

Ejercicio 25)

No hicieron el ejercicio

NOTA: LOS EJERCICIOS 22 Y 25 FALTAN Y NO HICIERON.

También podría gustarte