• No se han encontrado resultados

Universidad Rafael Urdaneta Facultad de Ingeniería Escuela de Ingeniería de Computación Cátedra: Programación I - Semestre 2012-1 (Sección “G”) Profesor: Jaime Soto Examen 1 - Fecha: 27-02-2012

N/A
N/A
Protected

Academic year: 2019

Share "Universidad Rafael Urdaneta Facultad de Ingeniería Escuela de Ingeniería de Computación Cátedra: Programación I - Semestre 2012-1 (Sección “G”) Profesor: Jaime Soto Examen 1 - Fecha: 27-02-2012"

Copied!
8
0
0

Texto completo

(1)

Universidad Rafael Urdaneta

Facultad de Ingeniería

Escuela de Ingeniería de Computación

Cátedra:

Programación I

- Semestre 2012-1 (Sección “G”)

Profesor: Jaime Soto

Examen #1 - Fecha: 27-02-2012

Cédula :

Nombre :

1.- Defina que es un Lenguaje de Programación y nombre un mínimo de 3 [2]

Respuesta:

Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora.

Es un lenguaje artificial, diseñado para representar algoritmos de forma inteligible por el computador

Tres lenguajes de programación: C, Java y Visual FoxPro (cualquier otro Visual Basic, Delphi, Pascal, Cobol, entre otros).

2.- ¿Qué es un algoritmo? Describa tres (3) propiedades o características de un algoritmo [2]

Respuesta:

Un Algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa (traduce a un lenguaje de programación concreto) un algoritmo. Nótese que es la secuencia de instrucciones en sí la que debe ser finita, no el número de pasos realizados como la ejecución de ellas.

Un Algoritmo es el medio por el que se explica cómo puede resolverse un problema, mediante aproximaciones paso a paso. Se puede formular de muchas formas con el cuidado de que no exista ambigüedad.

Propiedades de un algoritmo (solo era necesario nombrar tres (3) de estas):

1. Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos". 2. Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a

cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".

3. Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".

4. Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".

(2)

3.- ¿Cuántos bits debe tener un computador para representar 3000 símbolos diferentes? [2]

Respuesta:

Un bit puede estar en un estado de dos posibles: 0 ó 1

Un bit puede representar dos (2) símbolos: 0 ó1. El “0” puede ser la letra “a” y el “1” la letra “b”

Las combinaciones de dos (2) bit pueden representar 4 símbolos diferentes, en el siguiente ejemplo las primeras cuatro letras del abecedario

0 0 a 0 1 b 1 0 c 1 1 d

Las combinaciones que se pueden obtener con tres (3) bit, serían 2^3 = 8 Las combinaciones que se pueden obtener con cuatro (4) bit, serían 2^4 =16 Las combinaciones que se pueden obtener con cinco (5) bit, serían 2^5 =32 Las combinaciones que se pueden obtener con seis (6) bit, serían 2^6 =64 Las combinaciones que se pueden obtener con siete (7) bit, serían 2^7 =128 Las combinaciones que se pueden obtener con ocho (8) bit, serían 2^8 =256 Las combinaciones que se pueden obtener con nueve (9) bit, serían 2^9 =512 Las combinaciones que se pueden obtener con diez (10) bit, serían 2^10 =1024 Las combinaciones que se pueden obtener con once (11) bit, serían 2^11 =2048 Las combinaciones que se pueden obtener con doce (12) bit, serían 2^12 =4096

Como se puede observar, cada vez que se agrega un bit, se duplica la cantidad de símbolos que podemos representar con las combinaciones de 0s y 1s.

El problema actual requiere saber la cantidad de bits, como mínimo, que debe tener un computador ideal para representar “por lo menos” 3000 símbolos diferentes. Si se observa la tabla anterior, con once (11) bits se obtenían 2048 combinaciones o diferentes símbolos y con doce (12) se obtienen 4096; por lo tanto, se requiere un computador que tenga como mínimo DOCE (12) BITS.

4- ¿Cuántos bits debe tener un computador que requiera simplemente contar números enteros positivos hasta un máximo de 3000? (tip: el número más grande, no las combinaciones) [2]

Respuesta:

En el anterior ejercicio se requería determinar el número de bits que debía tener un computador que estuviera en capacidad de representar un mínimo de 4000 símbolos (combinaciones de 0s y 1s). Para determinar ese número es suficiente identificar el exponte al que se debe elevar el número 2 (base binaria) y encontrar tal número o el que lo sobrepase inmediatamente. En este ejercicio, se requiere determinar el número de bits necesarios para contar números desde 0 hasta 3000. Para un (1) bit, 1 x 2^0 =1 (todo número elevado a la “0” da uno (1). Observemos la siguiente tabla con el valor de posición de cada número binario:

Número de bit 12 11 10 9 8 7 6 5 4 3 2 1 Posición

Valor del exponente 11 10 9 8 7 6 5 4 3 2 1 0

Bit 1 1 1 1 1 1 1 1 1 1 1 1

Operación exponencial 2^11 2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA

Sumatoria para 11 bits 1024 512 256 128 64 32 16 8 4 2 1 2047

Sumatorio para 12 bits 2048 1024 512 256 128 64 32 16 8 4 2 1 4095

(3)

5.- Calcule la siguiente expresión aritmética: [2]

a. 1 + (5 * 2) + 8 / 2 * 2 + 12 - 6 + 5 + 1 + 1,5 b. 1 + (5 * 2) + 8 / 2 * 2 + 12 % 6 + 5 + 1 + 1,5 Respuesta:

La regla de prioridad de operaciones aritmética es la siguiente: 1. SeOperaciones entre paréntesis, se evalúan primero los más internos. 2. Operadores (*, /)

3. Operadores (%) – Residuo 18 % 6 = 0 . Cuando la división es exacta como este caso el residuo es 0. Cuando no es exacta, es diferente a 0. Ejemplo, (14 MOD 4) o ( 14 % 4) = 2 (residuo de la división)

4. Operadores (+, -)

a. 1 + (5 * 2) + 8 / 2 * 2 + 12 - 6 + 5 + 1 + 1.5 Paréntesis

1 + 10 + 8 / 2 * 2 + 12 - 6 + 5 + 1 + 1.5 Multiplicación/División.

En este caso se encuentran dos operadores de igual prioridad (*,/). Por lo tanto se evalúa de izquierda a derecha, primero la división y después la multiplicación.

1 + 10 + 8 / 2 * 2 + 12 - 6 + 5 + 1 + 1.5 División.(se resuelve izq a der).

1 + 10 + 4 * 2 + 12 - 6 + 5 + 1 + 1.5 Multiplicación

1 + 10 + 8 + 12 – 6 + 5 + 1 + 1.5 Sumas

38.5 – 6 Restas

32.5 Resultado

b. 1 + (5 * 2) + 8 / 2 * 2 + 12 % 6 + 5 + 1 + 1.5 Paréntesis

1 + 10 + 8 / 2 * 2 + 12 % 6 + 5 + 1 + 1.5 Multiplicación/División.

1 + 10 + 8 / 2 * 2 + 12 % 6 + 5 + 1 + 1.5 División (se resuelve izq a der)

1 + 10 + 4 * 2 + 12 % 6 + 5 + 1 + 1.5 Multiplicación

1 + 10 + 8 + 12 % 6 + 5 + 1 + 1.5 Residuo (MOD %) división exacta

1 + 10 + 8 + 0 + 5 + 1 + 1.5 Sumas

26.5 Resultado

(4)

6.- Realice las siguientes conversiones [2]

a. binario: 11011001 a decimal b. binario: 11000011 a hexadecimal c.- hexadecimal: FA01 a decimal d. hexadecimal: E9 a binario

a. Para convertir un binario en decimal

Posición 8 7 6 5 4 3 2 1

Exponente 7 6 5 4 3 2 1 0

1 x 2^7 1 x 2^6 0 x 2^5 1 x 2^4 1 x 2^3 0 x 2^2 0 x 2^1 1 x 2^0

BINARIO

1

1

0

1

1

0

0

1

128 64 0 16 8 0 0 1

DECIMAL

217

b. Para convertir un binario en hexadecimal (cada 4 bits es un nibble)

Posición 4 3 2 1 4 3 2 1

Exponente 3 2 1 0 3 2 1 0

1 x 2^3 1 x 2^2 0 x 2^1 0 x 2^0 0 x 2^3 0 x 2^2 1 x 2^1 1 x 2^0

BINARIO

1

1

0

0

0

0

1

1

DECIMAL 8 4 0 0 0 0 2 1

12

3

HEXADECIMAL

C

3

HEXADECIMAL

C3

c. Para convertir un hexadecimal en decimal

Posición 4 3 2 1

Exponente 3 2 1 0

15 x 16^3 10 x 16^2 0 x 16^1 1 x 16^0

HEXADECIMAL

F

A

0

1

BINARIO

1111

1010

0000

0001

DECIMAL 61440 2560 0 1

DECIMAL

64001

d. Para convertir un hexadecimal en binario

HEXADECIMAL

E

9

BINARIO

1110

1001

BINARIO

11101001

Tabla de conversión

Dec Hex Bin Dec Hex Bin Dec Hex Bin

0 0 0000 5 5 0101 10 A 1010

1 1 0001 6 6 0110 11 B 1011

2 2 0010 7 7 0111 12 C 1100

3 3 0011 8 8 1000 13 D 1101

4 4 0100 9 9 1001 14 E 1110

(5)

7.- Cuantos bytes se requieren para almacenar los siguientes datos (cada dato y el total): [2] Edad = 45 Nombre = “Kepler” Temperatura = 12.5

Respuesta:

Variable Tipo Tipo en C Número de bytes

Edad Entero int 2

Nombre Cadena de caracteres char Nombre[6] 6

Temperatura Real float 4

TOTAL 12

8.- Elabore una tabla con los resultados de este algoritmo. [4]

x = 1; y = 2; c = 2; mientras (c < 6) hacer

x = x+y

si (c > 3) entonces

y = y+2 x = x+1 fin_si

x = x-1

imprimir(c,x,y) c++

fin_mientras

Respuesta:

Regla de parada o condición para terminar el ciclo “cuando c deje de ser menor que 6”. Los valores en la tabla durante los ciclos son los del momento de imprimir

Ciclos x y c x=x+y y=y+2 x=x+1 x=x-1 C < 6 C > 3

Inicial 1 2 2 -- -- -- -- V F

1 2 2 2 X=1+2=3 -- -- X=3-1=2 V F

2 4 2 3 X=2+2=4 -- -- X=4-1=3 V F

3 6 4 4 X=4+2=6 y=2+2=4 X=6+1=7 X=7-1=6 V V

4 10 6 5 X=6+4=10 y=4+2=6 X=10+1=11 X=11-1=10 V V

(6)

9.- Un turista se dirige al aeropuerto para viajar de Maracaibo a Caracas. Elabore un diagrama de flujo que calcule el costo del viaje. Datos: 2 taxis (para ir al aeropuerto y del aeropuerto al destino), tasa de salida, costo del boleto (cancela extra por primera clase, si así lo desea) y costo por sobrepeso de equipaje (si lleva equipaje y este es mayor de 40kg). [4]

Respuesta:

Datos:

Costo Taxi en Maracaibo al aeropuerto La Chiníta taxi_mcbo Costo taxi desde el aeropuerto de Maiquetía a Caracas taxi_ccs

Tasa de salida aeroportuaria tasa

Costo boleto boleto

Costo extra en caso de viajar en 1ra clase boleto_extra Costo sobrepeso de equipaje si lleva equipaje y pasa de los 40 kg. peso_equipaje

Costo de Kilo de sobrepeso costo_kilo

Kilos de sobrepeso sobre_peso

Costo total del viaje total

Fin

IMPRIMIR/ESCRIBIR

total Inicio

CALCULAR

total = taxi_mcbo + taxi_ccs + tasa + boleto

INGRESAR/LEER

taxi_mcbo, taxi_ccs,

tasa, boleto, peso, costo_kilo

CALCULAR

total = total + boleto_extra ¿Va en 1ra

clase? SI

NO

¿Tiene sobrepeso?

CALCULAR

sobre_peso = (peso – 40 kg) * costo_kilo total = total + sobre_peso SI

(7)

10.- Escriba una porción de código en lenguaje C que sume los números entre 10 y 20 (incluidos ambos) e imprima la suma obtenida. [6]

Código fuente:

/*

* Archivo: main.cpp

* Autor: Ing. Jaime Soto

* Ejercicio: Problema nro. 10 - Examen

* Plataforma: Netbeans + compilador C++ cygwin */

#include <cstdlib> #include <stdio.h>

using namespace std; /* */

int main() {

int nro_inf = 10; int nro_sup = 20; int suma = 0;

for (int k=nro_inf; k<= nro_sup; k++) { suma = suma + k;

printf("\nNumero / Suma acumulada: %2i / %3i ", k, suma); }

printf("\n\nSuma numeros entre %i y %i es: %i", nro_inf, nro_sup, suma); return 0;

}

SALIDA:

Número / Suma acumulada: 10 / 10 Número / Suma acumulada: 11 / 21 Número / Suma acumulada: 12 / 33 Número / Suma acumulada: 13 / 46 Número / Suma acumulada: 14 / 60 Número / Suma acumulada: 15 / 75 Número / Suma acumulada: 16 / 91 Número / Suma acumulada: 17 / 108 Número / Suma acumulada: 18 / 126 Número / Suma acumulada: 19 / 145 Número / Suma acumulada: 20 / 165

(8)

BONO: En el ejercicio 10, modifique el programa para sumar solo números impares. (tip: función MOD podría serle útil) [2].

Respuesta:

En color amarillo se encuentra la porción de código necesaria para permitir la suma de solamente números pares. Se puede observar el operador MOD “%” que calcula el residuo de una operación de división. Si la división no es exacta, el residuo es diferente a “0”. Esto indica que se trata de un número impar ya que en este caso la división se hizo entre el número “2”.

Código fuente: /*

* Archivo: main.cpp

* Autor: Ing. Jaime Soto

* Ejercicio: Problema nro. 10 - Examen

* Plataforma: Netbeans + compilador C++ cygwin */

#include <cstdlib> #include <stdio.h>

using namespace std; /* */

int main() {

int nro_inf = 10; int nro_sup = 20; int suma = 0;

for (int k=nro_inf; k<= nro_sup; k++) {

if (k%2 ¡=0) {

suma = suma + k;

printf("\nNumero / Suma acumulada: %2i / %3i ", k, suma);

} }

printf("\n\nSuma numeros impares entre %i y %i es: %i",nro_inf,nro_sup,suma); return 0;

}

SALIDA:

Numero / Suma acumulada: 11 / 11 Numero / Suma acumulada: 13 / 24 Numero / Suma acumulada: 15 / 39 Numero / Suma acumulada: 17 / 56 Numero / Suma acumulada: 19 / 75

Figure

Tabla de conversión

Referencias

Documento similar

La Normativa de evaluación del rendimiento académico de los estudiantes y de revisión de calificaciones de la Universidad de Santiago de Compostela, aprobada por el Pleno or-

Los resultados que se obtuvieron indican que el gobierno local no realiza actividades que tengan como fin hacer tomar conciencia a los comerciantes sobre la forma de manejar

La Tabla 2 muestra un promedio de eficiencia del 74% en el área de acondicionado de la empresa Medical Concept S.A.C sin llegar a las metas de producción por hora, con

Posteriormente, se presentan las conclusiones de la investigación, conjuntamente con las principales recomendaciones que los autores proporcionan al lector, a fin de contribuir en

La invalidez en el MMPI por no respuestas no se considera criterio positivo (sólo se puede considerar tal posibilidad en caso de daño neurológico que justifique tal estilo

Bethencourt Mendoza, Ismael Alfredo: “Infraestructura Tecnológica Para Las Zonas Urbanas De La Ciudad De Maracaibo Utilizando Tecnología De Banda Ancha Inalámbrica - Caso

Quienes suscriben, miembros del jurado designado por el Director del Departamento de Investigación, Extensión y Post- grado, de fecha ________________, reunidos para evaluar

Pero antes hay que responder a una encuesta (puedes intentar saltarte este paso, a veces funciona). ¡Haz clic aquí!.. En el segundo punto, hay que seleccionar “Sección de titulaciones