Práctica 01 Corregido

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 3

Tópicos de Algoritmos y

Programación

Sección 02

Práctica #1

1. Transcriba y ejecute el código presentado a continuación.


#include <stdio.h>

#include <stdlib.h>

int main() {

char c;

short b;

int i=2;

float f=2;

double d;

printf("char c tiene tamaño de %d bytes\n", sizeof(c));

printf("short b tiene tamaño de %d bytes\n", sizeof(b));

printf("int i tiene tamaño de %d bytes\n", sizeof(i));

printf("float f tiene tamaño de %d bytes\n", sizeof(f));

printf("double d tiene tamaño de %d bytes\n\n", sizeof(d));

printf("El resultado de b+b tiene tamaño de %d bytes\n", sizeof(b+b));

printf("El resultado de i/(i+1) es %f y tiene tamaño de %d bytes\n",

i/(i+1), sizeof((i/(i+1))));

printf("El resultado de f/(f+1) es %f y tiene tamaño de %d bytes\n\n",

f/(f+1), sizeof((f/(f+1))));

c = 47;
printf("El resultado de c+'0' es %d = %c \n\n", c+'0');

return 0;

2. Note que, a pesar de que sizeof(b) es 2bytes, sizeof(b+b) es 4bytes. ¿Es el


resultado de la suma de dos short un short? ¿Ocurre lo mismo con la resta,
producto y división de short?

3. Muestre el tamaño del resultado de las siguientes operaciones:

▪ b/i

▪ i/f

▪ i/d

▪ f/d

4. Note que, a pesar de que i == f == 2, el resultado de i/(i+1) y f/(f+1) no


parecen ser el mismo (aunque ocupan el mismo espacio en memoria). ¿Qué está
ocurriendo?

5. Considere la operación con la variable char c, ¿porqué 47+’0’=’@’?

6. Suponga que las variables declaradas en nuestro programa son ubicadas en la


memoria de forma contigua y a partir de la dirección 1024. Complete la siguiente
tabla:
Variable Dirección Último byte

c 1024 1024

7. Se quiere representar cédulas de ciudadanía y extranjería en Venezuela (rango de


valores desde 1 hasta 100 millones), ¿qué ocupa más espacio en memoria: el tipo
numérico sin signo más pequeño que pueda representar el rango completo o una
cadena de 9 caracteres (ignorando los puntos de separación de miles)?
8. Se quiere implementar un tipo de datos nuevo, llámese ‘placa’, con 3 bytes.

a. ¿Cuántos símbolos o valores distintos se podrán representar?

b. Si se interpretan como números enteros sin signo, ¿qué rango de valores se


puede representar?

c. Si se interpretan como números enteros con signo, ¿qué rango de valores se


puede representar?

d. Si se utilizan los primeros 12 bits para representar 3 caracteres de 4 bits cada


uno: 0000 = ‘A’, …, 1111 = ‘P’; y los siguientes 12 bits para representar números
enteros sin signo, ¿cuál sería el rango de valores que se pueden representar?

9. ¿Cuál es la cantidad mínima de bits necesaria para representar tipo de sangre con
RH? ¿Qué limitaciones tiene un lenguaje de programación como C para permitir el
uso de tal tipo de datos minimalista?

10. Repase el concepto de “precedencia de operadores”: unarios → {*,/,%} → {+,-}

Dentro del mismo nivel de jerarquía o precedencia, los operadores se resuelven de


izquierda a derecha o de derecha a izquierda. Por ejemplo:

16/8*2/4 = 1 (izquierda a derecha)

16/8*2/4 = 4 (derecha a izquierda)

Codifique el resultado de esa operación y determine el orden de ejecución de los


operadores en C.

También podría gustarte