Está en la página 1de 12

UNIVERSIDAD DE LAS FUERZAS ARMADAS

“ESPE”
DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA

FUNDAMENTOS DE PROGRAMACIÓN

PRACTICA

TEMA: PROBLEMAS RESUELTOS

NOMBRE: CARLOS VELOZ, HENRY ACOSTA

NRC: 7676

FECHA: 03/06/2020
PROBLEMAS PROPUESTOS

1) De los siguientes identificadores determinar ¿Cuáles son válidos y explicar por qué?.

a) registro1 d) return g) nombre


b) 1registro e) $impuesto dirección
h) nombre_direcci
ón
c) archivo_3 f) nombre i) 123-45-6789

a) valido: no tiene espacios ni es una palabra reservada


c) valido: empieza por letra minúscula y sin espacios
f) valido: empieza con letra y no es palabra reservada
h) valido: empieza con letra y sin espacios

3) 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 e) 12345678 i) 018CDF


b) 27,822 f) 12345678L j)
OXBCFDAL
c) 9.3e12 g) 08 k) 0515
d) 0x87e3ha h) 9.3e-12 l) 0.8e8

a) Valida: tipo flotante (DECIMAL)


e) Valida: tipo entero (DECIMAL)

5) Determinar ¿Cuáles de las siguientes cadenas de caracteres son constantes válidas?

a) '8:15 P.M.'
b) "Rojo, Blanco y Verde"
c) "Nombre:
d) "Capítulo 3 (cont\'d) "
e) "1.3e-12"
f) "28018 QUITO"
g) "El Profesor dijo, "Por favor, no se duerman en clases"
h) "Este es un \"ejemplo\""
i) "\\¿Qué es esto?\\"

d) Valido: está dentro de comillas


e) Valido: está dentro de comillas
f) Valido: está dentro de comillas
i) Valido: está dentro de comillas

7) 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 Variables enteras: x = 129, y = 87, z =
-22 Variables de caracter: c1 = 'w', c2 = 'g'

float a,b;
int x,y,z;
char: c1,c2;

a= -8.2; b=0.005;
x = 129; y = 87; z = -22;
c1 = “w”; c2 = “g”;

b. Variables de doble precisión: d1 = 2.88e-8, d2 =


-8.4e5 Variables enteras: u = 711 (octal), v = fff
(hexadecimal) Variables enteras: i = 1000 (entera
larga), j = 1 (entera)

double d1,d2;
int u,v,i,j;

u= int(OCT, 711);
v=int(HEX, fff);
i = 1000;
j = 1;

c. Variable de entero largo: grande = 123456789


Variable de doble precisión: c = 0.33333333
Variable de caracter: eol = caracter de nueva línea

long grande;
float c;
char eol;
grande = 123456789;
c = 0.33333333;
eol = “caracter de nueva línea”;

d. Cadena de caracteres: error = "ERROR, no hay memoria"


Cadena de caracteres: aviso = "El archivo está lleno\n"
Cadena de caracteres: mensaje = "\n\"FIN\" de entrada\n"

char error;
char aviso;
char mensaje;

error = "ERROR, no hay memoria";


aviso = "El archivo está lleno\n";
mensaje = "\n FIN de entrada\n";

9) 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 del 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.
13) Explicar el propósito de cada una de las siguientes expresiones:

a. a - b && a + b e) d = a * (b + c)
b) (a % 5) == 0 f) a * (b + c)
c) a >= t g) a < (b / c)
d) --a h) (a = 6) * b

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.
15) 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;
b) x = 2 % 2 + 2 * 2 – 2 / 2;
c) x = (3 * 9 * (3 + (9 * 3 / (3))));

17) 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:
b) x + y + z d) x % y g) 2 *x / 3 * y
b) 2 * y + 3 * (x - z) e) x / (y + z) h) 2 * x / (3 * y)
c) x / y f) (x / y) + z i) x + y / z

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
-6
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

19) Un programa en lenguaje C contiene las siguientes declaraciones:

int i, j;
long ix;
short s;
float x;
double dx;
char c;

Determinar el tipo de datos de cada una de las expresiones mostradas a


continuación:

a) i + c d) ix + j g) ix + c
b) x + c e) i + x h) s + c

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

21) Un programa en lenguaje C contiene las siguientes declaraciones y asignaciones


iniciales:

int = 8, j = 5, k;
float x = 0.0005, y = -0.01,
z; char a, b, c ='c' ,d ='d';

Determinar el valor de cada una de las expresiones de asignación, utilizando para


cada expresión el valor inicial asignado a las variables.

a) k = (i + j) h) z = k = x o) i += (j - 2)
b) z = (x + y) i) k = z = x p) k = (j == 5) ? i :
j
c) i = j = 1.1 j) i += 2 q) k = (j > 5) ? i : j
d) k = (x + y) k) y -= x r) z = (y >= 0) ? x :
0
e) k = c l) x += 2 s) z = (y >= 0) ? x :
0
f) z = i / j m) i /= j t) a = (c < d) ? c : d
g) a = b = d n) i %= j u) i -= (j > 0)? j : 0
23) 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.

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


b) (*q > y) && (*q > 0 || y < 5) * (--j % 2)
}
25) Un programa contiene las declaraciones y asignaciones

iniciales: int i = 4, j = 3;
float x = 0.1, y = -0.2;
char c = 'A', d = 'D';

Determinar el valor de cada una de las siguientes expresiones, desarrollando el


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

a) (3 * i - 2 * j) % (2 * d - c) + j != 6 - c > d + (i > 0) || (j < 5)


b) 2 * ((i / 5) + (4 *(j - 3))) - c == 9 + x < y + (x > y) && (i > 0)
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) + i++ % 2 * x + y == 0 + !(x > 0

También podría gustarte