0% encontró este documento útil (0 votos)
40 vistas11 páginas

Examen de Algoritmos y Lógica de Programación

Cargado por

Nicol Tablet
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
40 vistas11 páginas

Examen de Algoritmos y Lógica de Programación

Cargado por

Nicol Tablet
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ

CAMPUS UNIVERSITARIO VICTOR LEVI SASSO


FACULTAD DE INGENIERÍA DE INGENIERÍA DE SISTEMAS
COMPUTACIONALES
DEPARTAMENTO DE PROGRAMACIÓN

DESARROLLO LÓGICO Y ALGORITMOS

PARCIAL N°1
Nombre: Karen Sánchez Cédula: 8-1032-432 Grupo: 1IL- 708 Fecha:
Docente: Ing, Antoine J. Villarreal O. Puntos totales: 100 puntos Calificación:

INSTRUCCIONES.
• Lea con cuidado antes de responder las preguntas. No tache ni use líquido corrector.
• Escriba el algoritmo completo en la resolución de los problemas.
• Tenga cuidado con los detalles de sintaxis y formato.

I PARTE. Cierto o Falso. Indique si cada afirmación es cierta (C) o falsa (F). 20 puntos (2 puntos
c/u)

1. La prueba de escritorio es un instrumento para validar la lógica de un algoritmo en


pseudocódigo. C
2. En presencia de múltiples operaciones con la misma prioridad en una expresión
aritmética, se resolverían dichas operaciones una a una en sentido derecha-izquierda. F
3. Los identificadores de variable admiten espacios vacíos en al momento de declarar las
variables en el algoritmo. F
4. Las estructuras de alternativa requieren de la evaluación de una condición lógica
C
obtenida a partir de operaciones relacionales u relacional-lógicas.
5. Los comentarios de bloque, bajo el estándar de escritura de algoritmos en C
pseudocódigo, se inician con el símbolo /*.
6. El operador = es un operador relacional, y se utiliza para evaluar si un valor “es igual F
a” otro valor.
7. El operador lógico AND arroja como resultado TRUE sí al menos uno de los operandos F
que evalúa es TRUE.
8. No es necesario declarar una constante para utilizarla en operaciones dentro de un C
algoritmo, ya que puede colocarse directamente su valor en dichas operaciones.
C
9. El operador aritmético / obtiene el cociente de la división entre dos operandos
numéricos. C
10. La declaración de variables puede ocurrir en cualquier punto del algoritmo, siempre y
cuando no se haya utilizado previamente.
.
II PARTE. Escoger la mejor respuesta. Analice los siguientes algoritmos y marque con una X la
casilla que corresponde al resultado correcto de la ejecución. 30 puntos (6 puntos c/u)

1. ¿Qué hará el siguiente algoritmo? Asuma que se lee por teclado un valor de 7 para la variable a,
y un valor de 4 para la variable b.

Algoritmo AModB
{
entero a, b, mod; imprimir(“Ingrese un
número: ”); leer(a);
imprimir(“Ingrese otro número: ”);
leer(b);
mod = a % b;
imprimir(“El resultado es: ”, mod);
}

Imprimirá: “El resultado es: 3”. Imprimirá: “El resultado es: 1.75”.
Imprimirá: “El resultado es: 7”. Imprimirá: “El resultado es: 1”.

2. ¿Cuál sería la salida de este algoritmo? Asuma que se lee por teclado un valor de 11 para la
variable a, y un valor de 2 para la variable b.

Algoritmo CalcExpArit
{
entero num1, num2, calc;
imprimir(“Ingrese un número: ”);
leer(num1);
imprimir(“Ingrese otro número: ”);
leer(num2);
calc = num1 % num2 * 2 + num1 / num2;
imprimir(“El cálculo es de: ”, calc):
}

Imprimirá: “El cálculo es de: 8”. Imprimirá: “El cálculo es de: 7”.
Imprimirá: “El cálculo es de: 6”. Imprimirá: “El cálculo es de: 11”.

3. ¿Qué resultado se observará en pantalla al ejecutar el siguiente algoritmo?

Algoritmo PruebaAsigYExpArit
{
entero a = 7, b, c; b = a - 2; c = b
+ 6 / 3 - a;
imprimir(“c = ”, c);
}
Se muestra “c = 4”. Se muestra “c = -2”. Se muestra “c = -6”.
Se muestra “c = 0”.

4. Dado el siguiente algoritmo pseudocódigo, ¿qué error presenta?

Algoritmo MostrarNumMayor
{
entero num1, num2;
imprimir(“Ingrese un número: ”);
leer(num1);
imprimir(“Ingrese otro número: ”);
leer(num2); si(Num1 > num2)
imprimir(“El primer número es el mayor”); de
otro modo
imprimir(“El segundo número es el mayor”);
}

No se leyó un tipo de dato válido en las No se colocó las llaves de inicio y fin a la variables.
estructura if.
La variable Num1 no está declarada. Hace falta un ; a la instrucción del if.

5. Al ejecutarse el siguiente algoritmo, siempre sale el mensaje de “Usted no es mayor de edad”,


independientemente de la edad que se lea por teclado. ¿Cuáles serían las causas?

Algoritmo DeterminarSiMayorEdad
{
entero edad;
imprimir(“Ingrese su edad: ”);
leer(edad); si(edad >=
18)
imprimir(“Usted es mayor de edad.”); de
otro modo
imprimir(“Usted no es mayor de edad.”); }

La instrucción imprimir(“Usted no es La condición dentro de la estructura si no mayor


de edad.”) no está bien ubicada. está bien definida.
Hacen falta las llaves de apertura y cierre Se leyó edad como un tipo de dato en las
estructuras si y de otro modo. diferente.
III PARTE. Pareo. Empareja cada concepto con su descripción adecuada. 20 puntos (2 puntos c/u)

a) Descripción secuencial y lógica de pasos requeridos 1. Datos de entrada c para dar


solución a un problema.
b) Nombres que el programador define para declarar y 2. Lenguaje máquina llamar a una g
variable, función o algoritmo.
a
c) Proveen la información necesaria para que el 3. Algoritmo algoritmo realice su
trabajo.
m
d) Etapa del desarrollo de problemas en la cual se 4. Booleano traduce un algoritmo a un
lenguaje de programación. k
e) Etapa del desarrollo de problemas en la cual se 5. Operador = identifican y corrigen
los errores en el código. l
f) Estructura que se utiliza para realizar una selección 6. Datos de salida condicional
entre dos opciones. f

g) Lenguaje de combinaciones secuenciales de 1s y 0s 7. Estructura si - de entendible e


solo por la computadora. otro modo
h) Operadores que evalúan únicamente dos valores 8. Depuración booleanos para generar b
una condición.
i) Operadores que evalúan dos valores numéricos o de 9. Identificador tipo carácter para h
generar una condición.
j) Etapa del desarrollo de problemas donde se detalla el 10. Operadores lógicos proceso de
resolución dentro del código.
k) Permite almacenar en memoria un valor dentro de una variable determinada.
l) Información que se obtiene a partir de instrucciones dentro del algoritmo a desarrollar.
m) Tipo de dato que solo puede tomar como valores
TRUE o FALSE.
IV PARTE. Desarrollo. Elabore un código que resuelva los siguientes problemas. 30 puntos

1. Escriba un algoritmo pseudocódigo que lea un número e indique si es positivo, negativo o es cero.
10 puntos

2. Escriba un algoritmo pseudocódigo que lea dos números e imprima su suma si los números leídos
son pares, y su multiplicación si son impares. 10 puntos

3. Escriba un algoritmo pseudocódigo que lea la masa (en kg) y la altura (en m) de una persona,
calcule su índice de masa corporal (IMC), e imprima la condición de la persona. Tome en
consideración que la fórmula para el IMC es la siguiente:

𝐼𝑀𝐶 = 𝑚𝑎𝑠𝑎/𝑎𝑙𝑡𝑢𝑟𝑎2

Los rangos para los mensajes son los siguientes: Si el IMC es menor que 18.5, la persona está
“baja de peso”. Si el IMC está entre 18.5 y 25, entonces la persona está en un peso “normal”. Si
el IMC es mayor a 25 pero menor a 30, la persona está “En sobrepeso”. Y por último, si el IMC
es mayor o igual a 30, la persona está “obesa”. 10 puntos
“El éxito no se logra solo con cualidades especiales. Es, sobre todo, un trabajo
de constancia, de método y de organización”
- Victor Hugo
PARCIAL N°1 – PRUEBAS DE ESCRITORIO
Algoritmo: AModB

N Memoria Unidad Aritmética / Lógica


Pantalla Observación
a b mod Aritmética Lógica
Declaración de
1 ? ? ? variables a, b, y
mod
Ingrese un Solicitud del valor
2
número: de la variable a
Lectura por teclado
3 7 7 del valor de la
variable a
Ingrese otro Solicitud del valor
4
número: de la variable b
Lectura por teclado
5 4 4 del valor de la
variable b
Cálculo del residuo
mod = a % b mod y asignación del
6 3
= 7 % 4 mod = 3 valor del resultado a
la variable mod
Mensaje de salida
7 El resultado es: 7 en pantalla del
resultado obtenido

Algoritmo: CalcExpArit

N Memoria Unidad Aritmética / Lógica


Pantalla Observación
num1 num2 calc Aritmética Lógica
Declaración de
1 ? ? ? variables num1,
num2, y calc
Ingrese un Solicitud del valor
2
número: de la variable num1
Lectura por teclado
3 11 7 del valor de la
variable num1
Ingrese otro Solicitud del valor
4
número: de la variable num2
Lectura por teclado
5 2 4 del valor de la
variable num2
calc = num1 % num2 * 2 + num1 / num2
calc = 11 % 2 * 2 + 11 / 2 Cálculo del residuo
calc = 1 * 2 + 11 / 2 y asignación del
6 7 calc = 2 + 11 / 2 valor del resultado a
calc = 2 + 5 calc = la variable calc
7
Mensaje de salida
7 El cálculo es de: 7 en pantalla del
resultado obtenido
Algoritmo: PruebaAsigYExpArit

N Memoria Unidad Aritmética / Lógica


Pantalla Observación
A b c Aritmética Lógica
Declaración de
variables A, b, y c.
1 7 ? ?
Asignación de valor
a la constante A
b=A–2
Cálculo del valor de
2 5 b=7–2b
la variable b
=5
c =b+6/3 –A
c=5+6/3–7
Cálculo del valor de
3 0 c=5+2–7
la variable c
c=7–7c=
0
Mensaje de salida
4 c=0 en pantalla del
resultado obtenido
PARCIAL N°1

ENUNCIADO #1:

Escriba un algoritmo pseudocódigo que lea un número e indique si es positivo, negativo o es cero.

DESARROLLO:

algoritmo Numeros
{
entero num;
imprimir(“Por favor lea un número: ”);
leer(num);
si(num > 0)
imprimir(“El número es positivo.”);

de otro modo si(num < 0)


imprimir(“El número es negativo.”);
de otro modo
imprimir(“El número es cero.”);
}
ENUNCIADO #2:

Escriba un algoritmo pseudocódigo que lea dos números e imprima su suma si los números leídos son pares, y
su multiplicación si son impares.

DESARROLLO:

algoritmo NumerosParesImpares
{ entero num1, num2, operacion;
imprimir(“Por favor lea un número: ”);
leer(num1);
imprimir (“Por favor lea otro número: ”);
leer(num2);
si((num1 % 2) == 0 && (num2 % 2) == 0)
{
operacion = num1 + num2;
imprimir(“Los dos números son pares!”); imprimir(“La
suma de los dos números es: ”, operacion);
}
de otro modo si((num1 % 2) != 0 && (num2 % 2) != 0)
{
operacion = num1 * num2;
imprimir(“Los dos números son impares!”);
imprimir(“La multiplicación de los dos números es: ”, operacion);
}
}
ENUNCIADO #3:

Escriba un algoritmo pseudocódigo que lea la masa (en kg) y la altura (en m) de una persona, calcule su índice
de masa corporal (IMC), e imprima la condición de la persona. Tome en consideración que la fórmula para el
IMC es la siguiente:

𝐼𝑀𝐶 = 𝑚𝑎𝑠𝑎/𝑎𝑙𝑡𝑢𝑟𝑎2

Los rangos para los mensajes son los siguientes: Si el IMC es menor que 18.5, la persona está “baja de peso”. Si
el IMC está entre 18.5 y 25, entonces la persona está en un peso “normal”. Si el IMC es mayor a 25 pero menor
a 30, la persona está “En sobrepeso”. Y por último, si el IMC es mayor o igual a 30, la persona está “obesa”.

DESARROLLO:

Algoritmo IMC
{ flotante masa, altura, imc;
imprimir(“Por favor ingrese su masa (en kg): ”);
leer(masa);
imprimir(“Por favor ingrese su altura (en m): ”);
leer(altura);
imc = masa / (altura * altura);
si(imc < 18.5)
imprimir(“Su imc es: ”, imc, “. Usted está bajo de peso.”);
de otro modo si(imc <= 25)
imprimir(“Su imc es: ”, imc, “. Usted está en un peso normal.”);
de otro modo si(imc < 30)
imprimir(“Su imc es: ”, imc, “. Usted está en sobrepeso.”);
de otro modo
imprimir(“Su imc es: ”, imc, “. Usted está obeso.”);
}

También podría gustarte