Dsof 1070 PDF
Dsof 1070 PDF
Dsof 1070 PDF
y a Distancia
CCCCCCC CC
Tecnologías de la información
Área Técnica
MODALIDAD ABIERTA Y A DISTANCIA
Carrera Ciclo
Tecnologías de la información I
Autoras:
María del Carmen Cabrera L.
Gladys Alicia Tenesaca L.
4.0, CC BY-NY-SA
Primera edición
ISBN digital - 978-9942-25-297-5
La versión digital ha sido acreditada bajo la licencia Creative Commons 4.0, CC BY-NY-SA:
Reconocimiento-No comercial-Compartir igual; la cual permite: copiar, distribuir y comunicar
públicamente la obra, mientras se reconozca la autoría original, no se utilice con fines comerciales
y se permiten obras derivadas, siempre que mantenga la misma licencia al ser divulgada. https://
creativecommons.org/licenses/by-nc-sa/4.0/deed.es
27 Febrero, 2018
2. Índice
2. Índice 4
3. Introducción 6
4. Bibliografía 8
4.1. Básica 8
4.2. Complementaria 8
PRIMER BIMESTRE
1.2. Algoritmo 15
1.3. Sistema 20
Autoevaluación 1 38
2.4. Operadores 45
2.5. Expresiones 54
Autoevaluación 2 65
UNIDAD 3. CICLO DE DESARROLLO Y PRIMITIVAS ALGORÍTMICAS 68
Autoevaluación 3 86
SEGUNDO BIMESTRE
Autoevaluación 4 102
Autoevaluación 5 133
Autoevaluación 6 154
7. Solucionario 157
8. Glosario 179
3. Introducción
Al iniciar esta asignatura hay mucho por descubrir y aprender, lo que cada uno
quiera dar hace la diferencia. Si del tiempo planificado para sus estudios invierten
el 101% y no el 99% en los 365 días del año, se darán cuenta que el 1% de
dedicación adicional será su impulso para culminar con éxitos su carrera.
4. Bibliografía
4.1. Básica
4.2. Complementaria
PRIMER BIMESTRE
Estimado estudiante:
Lógica es una rama de la filosofía que estudia de manera formal las deducciones
válidas que se derivan de un sistema de razonamiento fundamentado en un
¿Cómo le fue con la lectura? Espero haya sido un buen comienzo. Podemos,
entonces, seguir con el siguiente tema de la página 2 del texto básico que es muy
interesante y le permitirá avanzar en su estudio.
1.2. Algoritmo
1 2
1 Reglas de Entrada Reglas intermedias "
- Punto inicial - Proceso
- Cálculo
4 3
%
Reglas de finalización Proceso lógico
- Punto final - Respuesta de usuario
Ejemplo 1.1 Crear las reglas en las que permita crear un barco de papel.
La Figura 2 muestra los pasos enunciados en el apartado anterior del ejemplo 1.1
Análisis para construir un barco de papel, el ejercicio es desarrollado con el fin de
comprender el término de algoritmo como “secuencia de instrucciones”.
Sean a y b los lados del rectángulo, cuyos lados son a= 30 metros (alto) y b= 40
metros (largo), diseñe un conjunto de reglas para determinar el área del terreno.
Análisis:
Figura 3. Rectángulo
Elaboración: Cabrera, M.; Tenesaca, G., (2018)
El área A del rectángulo se determina con A = ancho x alto, en este caso tenemos
A = a x b.
Solución:
R = a x b = 30 x 40 = 120
El valor de 120 induce que de acuerdo a los primeros datos de entrada a = 30, b =
40 , la respuesta del Área es exacta = 120
Finalmente podemos ver en la Tabla 1. Un resumen del algoritmo para determinar
el área de rectángulo
Recursos de apoyo
Para fortalecer los conocimientos adquiridos se recomienda
revisar el siguiente recurso audiovisual.
• http://purl.org/taw-sbc-utpl/algorithm/unit1/v1_algortimos
algoritmo debe tener siempre inicio y fin, entre el inicio y el fin debe estar las
instrucciones o pasos.
1.3. Sistema
Existen muchos puntos de vista para definir un sistema, entre ellas una definición
genérica de sistema es que debe ser capaz de ser absorbido por un sistema
mayor como una de sus partes.
1 Bloque de código: conjunto de líneas de código que pueden ser consideradas como unidad
independiente de ejecución
import java.lang.*;
import java.io.*;
import java.util.*;
public class Sumas {
public static void main(String[] args) {
int a=0, b=0;
int sum;
Scanner Teclado= new Scanner (System.in);
System.out.println("Ingrese el primer número");
a=Teclado.nextInt();
System.out.println("Ingrese el segundo valor");
b=Teclado3.nextInt();
sum=a+b;
Recursos de apoyo
Para fortalecer los conocimientos adquiridos se recomienda
revisar el siguiente recurso audiovisual.
• http://purl.org/taw-sbc-utpl/algorithm/unit1/v2_programacion
¿Qué es un programa?
¿Qué es programación?
Los diagramas de flujo generalmente son elaborados en las fases iniciales del
ciclo de vida de desarrollo (análisis, diseño), dado que facilitan la comunicación
entre los desarrolladores y los clientes; una de sus mayores virtudes es que
Apoyan al proceso de
depuración de programas,
Son aceptados como
Sirven como referencia sobre todo en la solución
documentación técnica
para los de problemas relacionados
para los programas y
programadores. con la lógica del programa,
desarrollos.
mismos que el compilador
es incapaz de detectar.
El estándar propone símbolos para todos los tipos de diagramas, pero hace la
distinción respecto a los símbolos que aplican para cada tipo de diagrama en
particular. Desde luego, para nuestro interés nos centramos en los diagramas de
flujo de programas. Un diagrama de flujo de programa contiene los siguientes
elementos:
Nro Miniespecificación
1 Inicio
2 //se solicita preguntar
Diagrama de flujo
No Si
No Si
No Si
Nro Miniespecificación
1 Inicio
2 //declaración de variables
No
Si
No
Si
Si
No
En primer lugar todo diagrama de flujo debe iniciar con el símbolo de inicio, de la
de siguiente manera:
Recursos de apoyo
Para fortalecer los conocimientos adquiridos se recomienda
revisar el siguiente recurso audiovisual.
• http://purl.org/taw-sbc-utpl/algorithm/unit1/v3_diagramas
¿Para qué sirve los diagramas de flujo?, Los diagramas de flujo son
considerados como un entregable en la fase de diseño, y ayudan a
esquematizar de mejor manera un algoritmo. Son de mucha ayuda para
que los programadores puedan entender el problema a codificar. Estimado
estudiante, si tiene más inquietudes puede consultar a su Docente mediante el
chat de tutoría permanente. ¡Continuamos con la asignatura!
Autoevaluación 1
a. Ficheros
b. Información
c. Programas
2. Traslada el control del programa a otra parte dentro del mismo diagrama.
a. Símbolo conector
b. Símbolo de línea de flujo
c. Proceso
a. Sistema
b. Lenguaje de programación
c. Algoritmo
a. Diagramas de flujo
b. Miniespecificación
c. Sistema
a. Sistema computacional
b. Computadora
c. Lenguaje de programación
a. Variables
b. Palabras reservadas
c. Símbolos especiales
a. Diagramas de flujo
b. Lenguajes de programación
c. Símbolo de datos
a. Petición de datos
b. Proceso definido
c. Operación de decisión
1. Conector a
2. Límite de bucle b
3. Decisión c
4. Terminador d
5. Proceso e
10. Complete el siguiente diagrama de flujo, para que permita pedir un mensaje
al usuario y luego presente el mismo en pantalla.
a. Diagrama de flujo a
b. Diagrama de flujo b
c. Diagrama de flujo c
0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1
Los múltiplos del byte son: Word (Palabra), Half Word (Media Palabra), Double
Word (Doble palabra). Un Word es el número máximo de bits con los que trabaja
un procesador de manera simultánea.
Los únicos submúltiplos del byte son el nibble y el bit. Un nibble es un conjunto
de cuatro bits, conocido también como “cuarteto o semiocteto”, que permite
representar un número binario de cuatro dígitos.
Los múltiplos del byte más conocidos por la frecuencia que se utiliza cuando se
especifica la capacidad de almacenamiento de los dispositivos como son: kilobyte,
megabyte, gigabyte y terabyte. Los prefijos (kilo, mega, giga, tera) están definidos
Bit(b) 2-3 20
Nibble 2-1 22
Byte(B) 20 23
Half Word / Media Palabra 21 24
Word / Palabra (P) 22 25
Double Word / Doble Palabra 23 26
Kilobyte (KB) 210 213
Megabyte (MB) 220 223
Gigabyte (GB) 230 233
Terabyte (TB) 240 243
Petabyte (PB) 250 253
Exabyte (EB) 260 263
Zetabyte(ZB) 270 273
Yottabyte(YB) 280 283
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)
2.4. Operadores
Se utilizan para formar expresiones cuyo resultado será un valor numérico. Junto
con las variables de tipo numérico dan lugar a las expresiones aritméticas.
Acción Operador
Suma +
Resta, negación -
Multiplicación .,*
Potenciación ^
División real /
División real DIV
MOD Residuo de la división entera
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)
Recuerde:
El operador DIV es la parte entera del cociente de una división y el
operador MOD el residuo de esta división. Por ejemplo
7/2 = 3.5 entonces...
7 DIV 2 = 3
y para los residuos 7/2 deja de residuo 1
entonces para representarlo 75 MOD 2 = 1
En el caso de los datos de tipo cadena, tome en cuenta que las letras
mayúsculas, para efectos de comparación para efectos de comparación, tienen un
valor en código ASCII menor a las minúsculas, y por tanto, son menores. Siendo
así, la “A” es menor que la “ a”, pero “z” es mayor a “A”.
Los operadores lógicos son aquellos que sirven para unir o negar condiciones,
produciendo un valor lógico. Combinan sus operandos (proposiciones simples
o compuestas) de acuerdo con las reglas del Álgebra de Boole. El objetivo es
producir un nuevo valor (FALSO o VERDADERO) que se convierta en el valor de
la expresión. Las condiciones para control de flujo son expresiones de este tipo.
Exp. Lógica
Nombre Operador Comportamiento
simbólica
Negación Not Niega el resultado de una condición. Revierte el valor; ¬
si la condición que afecta es True producirá False, y
viceversa.
Disyunción And Cuando de entre dos condiciones, las dos deben ser ^
True para que en su conjunto la expresión sea True.
Conjunción Or Cuando de entre dos condiciones, al menos una debe v
ser True para que en su conjunto la expresión sea True.
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)
Variable = Valor
Donde “Variable” es una variable y Valor, una expresión válida para el tipo de
dato de Variable. Desde el punto de vista de la lógica simbólica, la asignación se
representa con el símbolo “←”, que indica que una expresión pasa a una variable.
La Tabla 9 muestra los símbolos del operador de asignación y la expresión lógica
simbólica.
Precedencia implícita
Aritméticos Lógicos
Exponenciación Not
Multiplicación And
División Or
Adición y substracción Negatividad
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)
Imagine que se quiere comprar dos productos, uno por 200 pesos y otro de 500
pesos, a los cuales habrá que aplicarles el 15% de impuestos. Vea como se
resolvería la siguiente expresión compuesta.
Expresión Solución
200+500*1 + 0,15 Se resuelve primero las expresiones que involucran la multiplicación
200 + 500 + 0,15 Luego se resuelve las sumas, en orden de izquierda a derecha
700 + 0,15
700,15 Expresión resuelta
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)
Precedencia posicional
Precedencia explícita
Ejemplo: Imagine que se quiere comprar dos productos, uno por 200 pesos y otro
de 500 pesos, a los cuales habrá que aplicarles el 15% de impuestos. Vea como
se resolvería la siguiente expresión compuesta.
Expresión Solución
(200 + 500) * (1 + 0,15) Se resuelve primero las expresiones que se encuentren
700* (1 + 0,15) entre paréntesis. Como son sumas, se resuelven atendiendo
precedencia posicional
(700)* 1,15 Finalmente queda la multiplicación que realmente
pretendemos
805 Expresión resuelta
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)
NOTA: No olvide que por más larga que parezca una expresión, todos los
operadores actúan sobre dos expresiones, y de dos en dos, hasta dejar un solo
valor final.
2+25*1+12/1
Expresión Solución
2+ 25*1 + 12/1 Se resuelve primero las expresiones que tiene prioridad como la
multiplicación y luego la división.
2 + 25*1 + 12/1 Se realiza la multiplicación
2 + 25 + 12/1
2 + 25 + 12/1 Se realiza la división
2 + 25 + 12
2 + 25 + 12 Finalmente queda la suma que realmente pretendemos
39 Expresión resuelta
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)
Expresión Solución
((“A”=”aA”) or (2*5*40<40) and (1^2=2*1)) Se resuelve primero las expresiones que
¿Cómo le fue con los ejercicios propuestos?. Si todavía tiene inquietudes respecto
a la temática, a continuación lo invitamos a revisar los siguientes recursos de
apoyo que se enfocan en el uso de operaciones y reglas de precedencia.
Recursos de apoyo
Para fortalecer los conocimientos adquiridos se recomienda
revisar los siguientes recursos.
• http://purl.org/taw-sbc-utpl/algorithm/unit2/v1_operadores
• http://purl.org/taw-sbc-utpl/algorithm/unit2/v2_precedencia
2.5. Expresiones
Una vez revisados los contenidos propuestos en el texto básico, vamos a reforzar
los conocimientos adquiridos en el uso de expresiones. A continuación se
presenta la definición de expresión:
Ejercicios propuestos
Para a = 3, b = 2 y c = 7, resolver lo siguiente:
• ( a + b) / (b *( c/3)) > (b (a * c))
• ((a > b) v (a < c)) ˄ ((a = c) v (a > = b))
2.6.1. Variables
El valor de una variable puede ser modificado en cualquier momento, bien por una
asignación directa o bien como resultado de alguna expresión.
• Nombre
• Tipo de dato y dominio: numérico, carácter, cadena de caracteres o
booleano.
• Un valor inicia (opcional)
Recuerde:
Cuando una variable se ha declarado de un cierto tipo de dato,
solamente puede asignársele datos del mismo tipo.
Una vez que tenemos claro cómo definir una variable, podemos continuar con la
siguiente temática: naturaleza de los datos.
La naturaleza de los datos nos hace referencia a los tipos de valores que se
pueden asignar a una variable. Para esto debemos considerar las siguientes
propiedades de los datos:
Tipos de datos
Los tipos de datos son clasificados en tres grandes grupos: numéricos, cadena
y lógicos. En la siguiente Figura 15 observamos los diferentes tipos de datos por
cada grupo y un ejemplo por cada uno de ellos.
Datos numéricos: Este tipo de dato pertenece al conjunto de los números, y son
de longitud fija. Los datos numéricos son: Enteros y Reales.
Datos cadena: Los datos del tipo carácter están contenidos en el conjunto finito
de caracteres: alfabéticos, numéricos y especiales. Y por otro lado, los datos tipo
cadena de caracteres son sucesiones de caracteres con longitud finita y variable.
Datos lógicos: Los datos tipo lógico pueden tomar uno de los dos valores
booleanos: VERDADERO (true) o FALSO (false). La correspondencia binaria para
estos dos valores es: 1 para VERDADERO y 0 para FALSO.
Tipos predefinidos
Cada uno de los lenguajes de programación tienen tipo de datos predefinidos para
ser usados por los desarrolladores. En la Tabla 17 podemos observar los tipos
predefinidos más utilizados en los lenguajes de programación C++ y Java.
Una vez aprendidos los diferentes tipos de datos, a continuación se presentan los
dominios de lo datos que puede tomar un tipo de dato asociado a una variable.
Si aún tenemos dudas sobre esta temática, lo invitamos a revisar la sección 2.3 –
Variables y tipos predefinidos del texto básico. Y para reforzar lo aprendido vamos
a realizar los siguientes ejercicios.
<nombre_variable>, <tipoDato>[<dominio>]
Ejemplo 2.6 Declarar una variable para determinar el sueldo mensual de una
persona.
Declaración en Miniespecificación
sueldo_mensual, d[1 - n]
sueldoMensual, d[1 - n]
Ejemplo 2.7 Declara una variable para almacenar la siguiente información, “El
usuario ha sido registrado”.
Declaración en Miniespecificación
informacion, x(50)
Ejemplo 2.8 Declara una variable que permita almacenar una clave compuesta
por 6 letras y 4 números.
Declaración en Miniespecificación
clave, x(10) [6{A-Z}, 4{0-9}]
Para fortaleces esta temática, ahora lo invitamos a revisar los siguientes recursos
de apoyo sobre: ¿qué es una variable?, su representación y uso.
Recursos de apoyo
Para fortalecer los conocimientos adquiridos se recomienda
revisar los siguientes recursos audiovisuales.
• http://purl.org/taw-sbc-utpl/algorithm/unit2/v3_variables
• http://purl.org/taw-sbc-utpl/algorithm/unit2/v4_variables
Por ejemplo, llevando esto a la vida real, supongamos que queremos guardar
en la refrigeradora leche, debemos primero buscar un recipiente que permita
realizar esta acción, y debe ajustarse a los requerimientos de lo que se desea
almacenar. Un requerimiento sería que el recipiente no debe tener agujeros,
o sino la leche se derramaría. Una vez encontrado el recipiente idóneo,
almacenamos la leche y cuando necesitemos la leche accedemos al lugar
donde fue guardada dentro de la refrigeradora. Haciendo una equivalencia,
podemos decir que en este ejemplo la variable es el recipiente, la leche es el
valor que almacenamos y la refrigeradora es la memoria de la computadora
donde almacenamos cada variable. ¡Mucho más claro, verdad!.
Autoevaluación 2
a. Bit
b. Double Word
c. Nibble
a. Byte
b. Decimal
c. Entero
a. “C” = “c”
b. 7 >= 7
c. 4+5=9-1
a. b[0-110]
b. b[0-10]
c. b[18-100]
a. Posicional
b. Implícita
c. Explícita
a. 1,5,6
b. 1,2,5,6
c. 1,4,5
a. costoProducto = 100
b. precioProducto = “24.95”
c. costoProducto = precioProducto - 10
♦♦ Un identificador.
♦♦ Una prioridad.
♦♦ Una obligatoriedad.
♦♦ Sencilla de entender.
♦♦ De uso intuitivo.
♦♦ Diseñada bajo estándares.
♦♦ Validar los dominios.
♦♦ Tener una secuencia lógica de sus elementos.
♦♦ Preguntar la cantidad mínima, suficiente y necesaria para el
procesamiento o almacenamiento.
Algo importante en esta fase es que no se deben modificar los requerimientos del
cliente, ni agregar ni eliminar los requerimientos.
Recursos de apoyo
En los siguientes enlaces se presentan un ranking de los lenguajes de
programación:
• http://purl.org/taw-sbc-utpl/algorithm/unit2/programmingLanguages1
• http://purl.org/taw-sbc-utpl/algorithm/unit2/programmingLanguages2
Recuerde:
Un programa que no tiene errores de sintaxis no necesariamente
está libre de errores lógicos.
Recuerde:
Si el programa original requiere una cantidad considerable de
modificaciones, es recomendable dar de baja el programa y
empezar el ciclo de desarrollo para uno nuevo.
Para revisar con mayor profundidad las actividades que se realizan en cada una
de las fases del ciclo de desarrollo, así como también los entregables que se
deben generar en cada fase, es recomendable revisar los apartados del capítulo 6
del recurso bibliográfico complementario (Ramírez, 2007)
Una vez comprendida cada una de las fases, a continuación iniciamos la temática
de primitivas algorítmicas.
Análisis:
b h
El área de un triángulo (AT) se define por la expresión matemática AT= *
2
donde b es la base del triángulo y h su altura. Para calcular la expresión AT, se
requiere necesariamente de su base y altura.
Primitivas de inicio y fin: Son las primitivas que delimitan el inicio y fin de
un algoritmo. A continuación se puede observar su representación a nivel de
algoritmo y diagrama de flujo.
b h b*h
AT= * AT
2 2
Fin
Una vez comprendidas las primitivas básicas, ingresar al siguiente recurso para
revisar la codificación del ejercicio propuesto con un lenguaje de programación.
Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
http://purl.org/taw-sbc-utpl/algorithm/unit3/coding
Algoritmo Miniespecificación
Inicio Inicio
//declaración de variables //declaración de variables
Decimal: AT, b, h AT, d[0 – n]
Leer b b, d [0 – n ]
Leer h h, d [0 – n ]
b*h //inicialización de variables
Calcular el área: AT
2
AT ← 0, b ← 0, h ← 0
Algoritmo Miniespecificación
Inicio Inicio
//declaración de variables //declaración de variables
Decimal: AT, b, h AT, d[0 – n]
//lectura de datos b, d [0 – n ]
Leer b h, d [0 – n ]
Leer h //inicialización de variables
b*h AT ← 0, b ← 0, h ← 0
Calcular el área: AT
2
//lectura de datos
>> b
Escribir “El área es:”, AT
>> h
Fin
Algoritmo Miniespecificación
Inicio Inicio
//declaración de variables //declaración de variables
Decimal: AT, b, h AT, d[0 – n]
b, d [0 – n ]
//lectura de datos h, d [0 – n ]
Leer b //inicialización de variables
Leer h AT ← 0, b ← 0, h ← 0
//lectura de datos
//proceso >> b
b*h >> h
Calcular el área: AT
2
//proceso
b*h
Escribir “El área es:”, AT AT
2
Fin
Fin
Algoritmo Miniespecificación
Inicio Inicio
//declaración de variables //declaración de variables
Decimal: AT, b, h AT, d[0 – n]
b, d [0 – n ]
//lectura de datos h, d [0 – n ]
Leer b //inicialización de variables
Leer h AT ← 0, b ← 0, h ← 0
//lectura de datos
//proceso >> b
b*h >> h
Calcular el área: AT
2
//proceso
b*h
//escritura de datos AT
2
Escribir “El área es:”, AT
//escritura de datos
Fin
<< “El área es:”, +AT
Fin
Recuerde:
Una aspecto importante en el diseño de algoritmos y
miniespecificaciones es la identación. Indentar significa dar
tabulaciones a la derecha conforme se lo requiera para ir
ordenando y agrupando cada línea en base a lógica diseñada. La
identación es utilizado para mejorar la legibilidad al momento de
leer y analizar un algoritmo, miniespecificación o código fuente.
Ejemplo:
Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
http://purl.org/taw-sbc-utpl/algorithm/unit3/coding
Para realizar la prueba de escritorio se debe crear una tabla con todas las
variables del algoritmo. De esta forma se irá visualizando los cambios de valor
dentro de cada una de ellas.
Variables
valo nombre r_correctas p_correctas r_incorrectas p_incorrectas r_blanco p_total
res 0 0 0 0 0 0
Juan 13 7 2
Ríos
52 -7 45
Recursos de apoyo
Para comprender de mejor manera el diseño de
miniespecificaciones revisar el siguiente recurso:
• http://purl.org/taw-sbc-utpl/algorithm/unit3/v1_miniespecificacion
¿Ya realizó los ejercicios propuestos y reviso los recursos de apoyo? ¡Qué bien!.
Ahora, para medir la comprensión de las temáticas estudiadas, realice la siguiente
autoevaluación.
Autoevaluación 3
a. Diseño
b. Pruebas e Implementación
c. Análisis
a. Pruebas e Implementación
b. Codificación
c. Diseño
a. Diseño
b. Codificación
c. Análisis
a. Análisis
b. Diseño
c. Pruebas e Implementación
El algoritmo es el siguiente:
1. Inicio
2. Se solicita las dimensiones del terreno (largo y ancho)
3. Se calcula el área del terreno.
4. Se calcula el valor del terreno.
5. Se calcula el valor del impuesto.
6. Se calcular el total sumando el valor del terreno + el impuesto calculado
7. Fin.
a. 1) Inicio
2) Se pregunta la tabla del número que se desea
3) Si la tabla está entre 5 y 20, entonces se procede a imprimir la tabla
de restar indicada
4) Si la tabla no está en el rango, entonces se procede a mostrar un
mensaje de error en pantalla
5) Fin
b. 1) Inicio
2) Se pregunta la tabla del número que se desea
3) Si la tabla está entre 5 y 19, entonces se procede a imprimir la tabla
de restar indicada
4) Si la tabla no está en el rango, entonces se procede a mostrar un
mensaje de error en pantalla
5) Fin
c. 1) Inicio
2) Se pregunta la tabla del número que se desea
3) Si la tabla está entre 5 y 20, entonces se procede a mostrar un
mensaje de error en pantalla
SEGUNDO BIMESTRE
Recuerde:
Cuando la condición lógica es verdadera (True) realiza la
ejecución de la instrucción.
Miniespecificación
Nro Miniespecificación
1 Inicio
2 <<”Ingrese el número” //Leer el número en la variable entera
3 >>numero
4 Si (numero %2 ≠0) entonces //Condicional que verifica si el número dado es impar
5 //Instrucción o instrucción que se ejecuta si la condición es verdadera
6 <<"El número leído es impar", numero
7 Fin si //Cierre del condicional Si
8 Fin
Prueba de escritorio
Variables
num Salida presentar
5 Número es impar
8
17 Número es impar
Valores
49 Número es impar
50
2
11 Número es impar
¿Cómo le fue con los ejercicios propuestos?. Si todavía tiene inquietudes respecto
a la temática, a continuación lo invitamos a revisar el siguiente recurso de apoyo.
Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
http://purl.org/taw-sbc-utpl/algorithm/unit5/coding
Miniespecificación
Nro Miniespecificación
1 Inicio
2 (temperatura, i[1..n])
3 << ”Ingrese la temperatura ambiental” //Leer la variable entera temperatura
4 >> temperatura
5 Si (temperatura > 25) entonces //Valida si la temperatura es mayor a 25
6 //Instrucción o primitiva que se ejecuta si la condición es verdadera
7 <<“Ir a la playa!!!”
8 Sino
9 //Instrucción o primitiva que se ejecuta si la condición es falsa
10 << “Esperando al buen tiempo…”
11 Fin Si //Cierre del condicional Si
12 Fin
Prueba de escritorio
Variables
temperatura Salida presentar
27 Ir a la playa
10 Esperando al buen tiempo
26 Ir a la playa
Valores
28 Ir a la playa
29 Ir a la playa
11 Esperando al buen tiempo
30 Ir a la playa
Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
http://purl.org/taw-sbc-utpl/algorithm/unit5/coding
Recuerde:
La estructura condicional compuesta a su vez puede anidar otra
estructura simple o compuesta.
Fin
Caso 3 <Instrucciones>
Opción 3:
Instrucción para opción 3
Fin
.
.
.
Opción n:
Instrucción para opción n
Fin
Fin Dependiendo_ De
Ejemplo 4.3 Se desea determinar qué vocal se ingresa y la letra que representa.
Nro Algoritmo
1 Inicio
2 //declaración de variables
3 vocal, char[a…u] // Variable para determinar la vocal que corresponde
4 Leer vocal //se ingresa la letra para evaluar a vocal corresponde
5 //Evalúa el caso
6 Dependiendo_De (vocal) haga
7 Opción a:
8 Escriba “La vocal que ingreso es a”
9 break;
10 Opción e:
11 Escriba “La vocal que ingreso es e”
12 break;
Nro Algoritmo
13 Opción i:
16 Escriba “La vocal que ingreso es i”
17 break;
18 Opción o:
19 Escriba “La vocal que ingreso es o”
20 break;
21 Opción u:
22 Escriba “La vocal que ingreso es u”
23 break;
25 default:
27 Escriba “Ha ingresado datos incorrectos”
28 Fin Dependiendo_De
29 Fin
30 //presenta el resultado de la evaluación
Diagrama de flujo
Miniespecificación
Nro Miniespecificación
1 Inicio
2 (vocal, char [a…u])
3 <<”Ingrese la vocal ” // Leer la vocal
4 Dependiendo De (vocal) haga //Pregunta condicional si la temperatura es mayor a
5 25
6 Opción ‘a’:
7 Escriba “Se ha ingresado la letra a”
8 break;
9 Opción ‘e’:
10 Escriba “Se ha ingresado la letra e”
11 break;
12 Opción ‘i’:
13 Escriba “Se ha ingresado la letra i”
14 break;
15 Opción ‘o’:
16 Escriba “Se ha ingresado la letra o”
17 break;
18 Opción ‘u’:
19 Escriba “Se ha ingresado la letra u”
20 break;
21 Default;
22 Escriba “Error”
23 Fin Dependiendo_De
24 Fin
Prueba de escritorio
Variables
Opción Salida presentar
a La letra que escribió es a
e La letra que escribió es e
i La letra que escribió es i
Valores
a La letra que escribió es a
L Ha ingresado datos incorrectos
o La letra que escribió es o
u La letra que escribió es u
¿Cómo le fue con los ejercicios propuestos?. Si todavía tiene inquietudes respecto
a la temática, a continuación lo invitamos a revisar el siguiente recurso de apoyo.
Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación, del ejercicio propuesto:
http://purl.org/taw-sbc-utpl/algorithm/unit4/coding
Ejercicios propuestos
Mida su avance realizando los ejercicios del capítulo 3
sección 3.10 – Ejercicio propuestos del texto básico.
¿Cómo le fue con los ejercicios propuestos?. Si todavía tiene inquietudes respecto
a la temática, a continuación lo invitamos a revisar el siguiente recurso de apoyo
sobre estructuras condicionales.
Recursos de apoyo
Revisar el siguientes recurso:
http://purl.org/taw-sbc-utpl/algorithm/unit4/v1_estructuras-
condicionales
¿Revisó el recurso de apoyo? ¡Muy bien!. Con este recurso hemos reforzado
algunos aspectos muy importantes en el uso de estructuras condicionales, a
continuación hacemos un resumen de estos aspectos:
• Con el operador OR, al menos una de las dos condiciones debe ser
verdadera para que se presente una acción resultante.
Autoevaluación 4
a. Condicional simple
b. Condicional compuesta
c. Bucle Para
a. Condicional simple
b. Condicional compuesta
c. Dependiendo_De
a. Alternativa 1
Si salario >= 750 entonces
salario = (salario * 0.25)
Fin Si
b. Alternativa 2
Si salario >= 750 entonces
salario = salario + (salario * 0.25)
Fin Si
c. Alternativa 3
Si (salario > 750) entonces
salario = salario + (salario * 0.25)
Fin Si
b. Alternativa 2
Si edad >= 18 entonces
>> edad
Sino
<< “incorrecto”
Fin Si
c. Alternativa 3
Si edad >= 18 entonces
<< edad
Sino
<<“incorrecto”
Fin Si
a. Alternativa 1
Inicio
Ingrese precio de 3 productos
>>prod1,
>>prod2,
>>prod3
total = prod1 + prod2 + prod3
Si (total > 200) entonces
desc = total x 15%
Fin si
total = total - desc
<<”El total es”, total
<<”El descuento por su compra es”, desc
Fin
b. Alternativa 2
Inicio
Ingrese precio de 3 productos
>>prod1,
>>prod2,
>>prod3
total = prod1 + prod2 + prod3
Si (total > 200) entonces
desc = total x 15%
Fin si
Total = Total + desc
<<”El total es”, total
<<”El descuento por su compra es”, desc
Fin
c. Alternativa 3
Inicio
Ingrese precio de 3 productos
>>prod1,
>>prod2,
>>prod3
total = prod1 + prod2 + prod3
Si (total < 200) entonces
desc = total x 15%
total = total - desc
Fin si
<<”El total es”, total
<<”El descuento por su compra es”, desc
Fin
a. Acumulador
b. Condicional compuesta
c. Condicional simple
Sentencia 1
Si numero < 60 entonces
cuadrado <-- numero ^ 2
<< cuadrado
Sino
cubo <-- numero ^ 3
<< cubo
Fin Si
Sentencia 2
Si numero < 60 entonces
cuadrado <-- numero ^ 3
<< cuadrado
Sino
cubo <-- numero ^ 2
<< cubo
Fin Si
Sentencia 3
Si numero <= 60 entonces
cuadrado <-- numero ^ 3
<< cuadrado
Sino
cubo <-- numero ^ 2
<< cubo
Fin Si
c. Si edad == 20 entonces
<< “ingreso exitoso”
Sino
<< “edad incorrecta”
Fin Si
a. Condicional simple
b. Condicional DD
c. Condicional compuesta
Antes de iniciar con las estructuras lógicas repetitivas, se debe conocer los
conceptos de dos elementos importantes para definir estas estructuras: contador
y acumulador.
Contador
Un contador es una variable cuyo valor se incrementa o decrementa en una
cantidad constante con la finalidad de contar sucesos o acciones internas de
un ciclo repetitivo. Por lo general un contador es inicializado desde 0 o 1 y va
incrementado de uno en uno. Tanto la inicialización y el incremento del contador
dependen también del problema a resolver.
contador ← 1 → Inicialización
contador ← contador + 1 → Incremento
Acumulador
Un acumulador es una variable que suma sobre sí misma un conjunto de valores,
para de esta forma almacenar la suma de todos ellos en una sola variable.
suma ← 0 → inicialización
suma ← suma + expresión → acumulador
Recuerde:
La diferencia entre un contador y un acumulador es que mientras
el primero va aumentando en una cantidad fija que por lo general
es de uno en uno, el acumulador va aumentando en una cantidad
variable.
6! = (1 * 2 * 3 * 4 * 5 * 6) = 720
16 Sino
17 Mientras (cont ≤ num) entonces
18 factorial ← factorial * cont
19 cont ← cont + 1
20 Fin_Mientras
21 Fin Si
22 //presenta el factorial del número
23 ingresado
24 Escribir factorial
25 Fin
Nro Miniespecificación
1 Inicio
2 //declaración de variables
3 cont, i[0 - n] //contador del ciclo repetitivo
4 num, i[0 - n] //número a obtener el factorial
5 factorial, i[0 - n] //variable que almacena el factorial
6 //inicialización de variables
7 cont ← 1, num ← 0, factorial ← 1
8 //se solicita que se ingrese el número para obtener su factorial
9 << "Ingrese el número a obtener el factorial"
10 >> num
11 //calcula el factorial
12 Si (num ≤ 0) entonces
13 Escriba "El número no es un entero positivo"
14 Sino
15 Mientras (cont ≤ num) entonces
16 factorial ← factorial * cont
17 cont ← cont + 1
18 Fin_Mientras
19 Fin Si
20 //presenta el factorial del número ingresado
21 << “El factorial de”, +num, “es”, +factorial
22 Fin
Prueba de escritorio
Variables
num cont factorial
6 1 1
1
2 2
Valores
3 6
4 24
5 120
6 720
Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
http://purl.org/taw-sbc-utpl/algorithm/unit5/coding
Recuerde:
Cuando no se conoce el número de veces que tiene que repetirse
el ciclo repetitivo, este se convierte en un dato de entrada y
se tiene que pedir al usuario que lo ingrese. Además se debe
considerar que las condición debe llegar en algún momento a ser
Falsa sino se convertiría en un LOOP (ciclo repetitivo infinito, es
decir que nunca termina).
Recuerde:
La estructura lógica repetitiva Hacer – Hasta se ejecuta al menos
una vez, aunque la condición no se cumpla.
Nro Miniespecificación
1 Inicio
2 //declaración de variables
3 cont, i[0 - n] //contador del ciclo repetitivo
4 num, i[0 - n] //número a obtener el factorial
5 factorial, i[0 - n] //variable que almacena el factorial
6 //inicialización de variables
7 cont ← 1, num ← 0, factorial ← 1
8 //se solicita que se ingrese el número para obtener su factorial
9 << "Ingrese el número a obtener el factorial"
10 >> num
11 //calcula el factorial
12 Si (num ≤ 0) entonces
13 Escriba "El número no es un entero positivo"
14 Sino
15 Hacer
16 factorial ← factorial * cont
17 cont ← cont + 1
18 Hasta (cont > num)
19 Fin Si
20 //presenta el factorial del número ingresado
21 << “El factorial de”, +num, “es”, +factorial
22 Fin
Prueba de escritorio
Variables
num cont factorial
6 1 1
1
2 2
Valores
3 6
4 24
5 120
6 720
Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
• http://purl.org/taw-sbc-utpl/algorithm/unit5/coding
Recuerde:
Cuando el contador es inicializado en 1 la condición en la
estructura repetitiva Mientras debe ser menor e igual (≤) que el
límite. Y cuando el contador es inicializado en 0 la condición de la
estructura repetitiva Mientras debe ser únicamente menor (<) al
límite.
¿Cómo le fue con el análisis del ejercicio planteado?. Para solventar alguna duda
revisar la sección 3.8 – Estructura lógica repetitiva Hacer – Hasta, del texto base.
Una vez comprendida la temática, podemos pasar al siguiente tema de estudio:
estructura lógica repetitiva Para.
8 factorial
F
9 //inicialización de variables
10 num ← 0, factorial ← 1 F
12 obtener su factorial
V
13 Leer num
14 Si (num ≤ 0) entonces //
15 calcula el factorial
16 Escriba "El número no es
17 un entero positivo"
18 Sino
19 Para (cont ← 0, num, 1)
20 factorial = factorial *
21 cont
22 Fin Para
23 Fin Si
24 //presenta el factorial del
25 número ingresado
26 Escribir factorial
27 Fin
Nro Miniespecificación
1 Inicio
2 //declaración de variables
3 cont, i[0 - n] //contador del ciclo repetitivo
4 num, i[0 - n] //número a obtener el factorial
5 factorial, i[0 - n] //variable que almacena el factorial
6 cont ← 1, num ← 0, factorial ← 1 //inicialización de variables
7 << "Ingrese el número a obtener el factorial" // se ingrese el número para obtener
8 su factorial
9 >> num
10 Si (num <= 0) entonces
11 Escriba "El número no es un entero positivo"
12 Sino
13 Para (cont ← 1, cont <= num, cont++) entonces
14 factorial ← factorial * cont //calcula el factorial
15 Fin_Para
16 Fin Si
17 << “El factorial de”, +num, “es”, +factorial //presenta el factorial del número
18 ingresado
19 Fin
Prueba de escritorio
Variables
num cont Factorial
6 1 1
1
2 2
Valores
3 6
4 24
5 120
6 720
Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
• http://purl.org/taw-sbc-utpl/algorithm/unit5/coding
Se conoce como estructuras anidadas cuando una estructura está dentro de otra
estructura. Se pueden anidar estructuras lógicas de decisión así como estructuras
lógicas de repetición. Para una mayor comprensión de esta sección, se desarrolla
el siguiente ejercicio.
Ejemplo 5.4 Diseñe un algoritmo que sume todos los número primos que hay
entre 1 a N. El límite de números a verificar lo ingresa el usuario.
Nro Miniespecificación
1 Inicio
2 //declaración de variables
Diagrama de flujo
F V
Nro Miniespecificación
1 Inicio
2 //declaración de variables
3 cont, i[0 - n] //contador del primer ciclo repetitivo
4 cont1, i[0 - n] //contador del segundo ciclo repetitivo
5 lim, i[0 - n] //limite de número a verificar
6 num, i[0 - n] //número a verificar si es primo
7 divisor, i[0 - n] //variable que almacena el número de divisores
8 suma, i[0 - n] //variable que almacena la suma de los números primos
9 cont ← 1, cont1 ← 1, num ← 0, divisor ← 1, suma ← 0 //inicialización de variables
10 // se ingrese el limite de números
11 << "Ingrese el límite de los números a verificar si son primos"
12 >> lim
13 Mientras (cont ≤ lim) entonces
14 num ← cont
15 Si (num = = 1) entonces
16 << "El número", +num, "es primo"
17 suma ← suma + num
18 Sino
19 Mientras (cont1 ≤ num) entonces
20 Si ((num % cont1) == 0) entonces
21 divisor ← divisor + 1
22 Fin_Si
23 cont1 ← cont1 + 1
24 Fin_Mientras
25 Si (divisor == 2) entonces
26 << "El número", +num, "es primo"
27 suma ← suma + num
28 Sino
29 << "El número", +num, "no es primo"
30 Fin_Si
31 cont1 ← 1
32 divisor ← 0
33 Fin_Si
34 cont ← cont + 1
35 Fin_Mientras
36 << "El suma de los números primos entre 1 y", +lim, "es:", +suma //presenta la
37 suma de los primos
38 Fin
Prueba de escritorio
Variables
lim cont num cont1 divisor suma salida
7 1 1 1 0 1 “El 1 es primo”
2 2 2 1
2
0 3 “El 2 es primo”
3 3 1 1
2 -
3 2
4 0 6 “El 3 es primo”
4 4 1 1
2 2
3 -
4 3
5 5 1 1
2 -
3 -
4 -
5 2
6 0 11 “El 5 es primo”
6 6 1 1
2 2
3 3
4 -
5 -
6 4
7 0 - “El 6 no es primo”
Variables
7 7 1 1
2 -
3 -
4 -
Valores
5 -
6 -
7 2
8 0 18 “El 7 es primo”
Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
• http://purl.org/taw-sbc-utpl/algorithm/unit5/coding
1 + 2 + 4 + 3 + 7 + 4 + 10 + 5 + … + n
Nro Algoritmo
1 Inicio
2 //declaración de variables
3 Entero: cont, lim, t_par, t_imp, s_par, s_imp, suma
4 //inicialización de variables
5 cont ← 1, t_par ← 1, t_imp ← -2, s_par ← 0, s_imp ← 0, suma ← 0
6 //entrada de datos
7 Escribir “Ingrese el limite de la serie”
8 Leer lim
9 Mientras (cont ≤ lim) entonces //proceso
10 Si (cont % 2 == 0) entonces
11 Calcular: t_par ← t_par + 1
12 Calcular: s_par ← s_par + t_par
13 Sino
14 Calcular: t_imp ← t_imp + 3
15 Calcular: s_imp ← s_imp + t_imp
16 Fin_Si
17 cont ← cont + 1
18 Fin_Mientras
19 Calcular: suma ← s_par + s_imp
20 //salida
21 Escribir “La suma total de la serie es:”, +suma
22 Fin
Diagrama de flujo
Nro Miniespecificación
1 Inicio
2 //declaración de variables
3 cont, i[0 - n] //contador del ciclo repetitivo
4 lim, i[0 - n] //limite de la serie
5 t_par, i[0 - n] //término par de la serie
6 t_imp, i[0 - n] //término impar de la serie
7 s_par, i[0 - n] //suma de los términos pares
8 s_imp, i[0 - n] //suma de los términos impares
9 suma, i[0 - n] //suma total de la serie
10 //inicialización de variables
11 cont ← 1, t_par ← 1, t_imp ← -2, s_par ← 0, s_imp ← 0, suma ← 0
12 //entrada de datos
13 << “Ingrese el limite de la serie”
14 >> lim
15 //proceso
16 Mientras (cont ≤ lim) entonces
17 Si (cont % 2 == 0) entonces
18 t_par ← t_par + 1
19 s_par ← s_par + t_par
20 Sino
21 t_imp ← t_imp + 3
22 s_imp ← s_imp + t_imp
23 Fin_Si
24 cont ← cont + 1
25 Fin_Mientras
26 suma ← s_par + s_imp
27 //salida
28 << “La suma total de la serie es:”, +suma
29 Fin
Prueba de escritorio
Variables
lim cont t_par s_par t_impar s_imp suma
5 1 1 0 -2 0 0
1 1
2 2 2
Valores
3 4 5
4 3 5
5 7 12
6 17
Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
http://purl.org/taw-sbc-utpl/algorithm/unit5/coding
Ejercicios propuestos
• Desarrolle de los ejercicios propuestos 3.10.2 del texto
básico, los ejercicios pares entre el 22 al 40.
Recursos de apoyo
Revisar los siguientes recursos:
• http://purl.org/taw-sbc-utpl/algorithm/unit5/v1_mientras-hacer
• http://purl.org/taw-sbc-utpl/algorithm/unit5/v2_bucles
• http://purl.org/taw-sbc-utpl/algorithm/unit5/v3_estructuras-control
Autoevaluación 5
a. Reiniciar
b. Incrementar
c. Decrementar
i←0
limite ← 5
Mientras i <= limite hacer
I←i+1
Fin_Mientras
<< i
a. 4
b. 5
c. 6
i←0
limite ← 24
Mientras i < limite hacer
Si i%6 == 0 entonces
<< i
Fin Si
i=i+3
Fin mientras
a. 0, 6, 12, 18, 24
b. 6, 12, 18, 24
c. 0, 6, 12, 18
1 Inicio
2 numero1, i[1 – n]
3 numero1 ← 1
4 Mientras numero1 <= 20 hacer
5 << numero1
6 numero1 ← numero1 + 1
7 Fin_Mientras
8 Fin
10. Cuál es el concepto apropiado para describir una estructura lógica repetitivas
o bucle?
La Figura 19 presenta los atributos que tiene un arreglo, entre ellos el tamaño n, el
índice j, de igual forma, como toda variable un arreglo tiene características cómo
Nombre, tipo, dirección y contenido.
Las direcciones, o posiciones, del vector son subíndices, para este caso
dispuestos de una forma lineal, o sea, unos a continuación de otros, denotados
por 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 para este caso. Los subíndices son totalmente
diferentes a los contenidos de informaciones, los cuales se identifican así: A [1]
= 10; en la primera (1) dirección del vector se encuentra la información 10, en
tanto que en la quinta (5) dirección del vector se encuentra la información 50. Se
recalca que en la dirección siete (7) del vector o A [7] se encuentra la información
7, pero su semántica es diferente, porque un concepto es el subíndice y otro
concepto totalmente diferente es la información que direcciona el subíndice del
vector.
Recuerde:
En base a la identidad del vector y teniendo en cuenta su
subíndice asociado, las estructuras de control lógicas Mientras
que, Para o Haga Hasta se utilizan para controlar los subíndices
del vector desde el contenido de la posición inicial hasta la
posición final del contenido almacenado dentro del vector.
Ejemplo 6.1 Diseñe un algoritmo que rellene un vector A con los números pares
comprendidos entre 1 y 20 y los muestre en pantalla en ascendente.
Nro Algoritmo
1 Inicio
2 // Declarar de variables
3 (A[10]) // Declarar el arreglo A con 10 elementos debido que si ingresamos números
4 pares de del 1 a 20 van a existir 10 números pares.
5 (i, i[0..n]) // Declarar el arreglo A
6 i<-0; // Inicializa i=0, será utilizado como contador
7 (x, i[1..n]) // Declarar variable x que genera lo números de 1 al 20
8 Para (x ← 1, x ≤ 20, x++) // Inicia bucle para, que trabaja con variable x inicia en
9 1 hasta 20
10 Si((x mod 2)==0) // Condición que evalué si el valor de x es par
11 A[i] = x; // Si es par entonces el valor de x se almacena en el arreglo A[i],
12 cuando i inicia en la posición o
13 i = i + 1; // Cada vez que se repite una interacción de número par i se
14 incrementa
15 fin Si // Finaliza la condición
16 fin Para // Finaliza bucle para,
17 // Finaliza el ciclo ya que gira hasta llegar a x=20 y tendrá almacenados
18 // Imprimir en pantalla en orden ascendente al arreglo A
19 Para(x ← 0, (x = i - 1), x++) // Inicia bucle para, con la variable x que inicia desde 0
20 hasta (i-1) por qué? Debido que i tienen la contabilización exacta de cuantos números
21 pares existen, necesita repetir la cantidad de veces el iterador para que imprima todos
22 los números que se encuentran dentro del arreglo A
23 << presentar “A[x]”; //Imprimir en pantalla en orden ascendente al arreglo A
24 Fin_para // Finaliza bucle para
25 Fin
Miniespecificación
Nro Miniespecificación
1 Inicio
2 // Declarar de variables
12 i=i+1; // Cada vez que se repite una interacción de número par i se incrementa
13 finSi // Finaliza la condición
14 fin_para // Finaliza bucle para,
15 // Finaliza el ciclo ya que gira hasta llegar a x=20 y tendrá almacenados
17 Para(x=0 hasta (x=i-1)) // Inicia bucle para, con la variable x que inicia desde 0 hasta
18 (i-1) por qué? Debido que i tienen la contabilización exacta de cuantos números pares
19 existen, necesita repetir la cantidad de veces el iterador para que imprima todos los
23 Fin
Prueba de escritorio
Variables
A[10] i x
0 1 (1 mod 2)==0 no
A[0] = 2 1 2 (2 mod 2)==0 si
3 (3 mod 2)==0 no
A[1]=4 2 4 (4 mod 2)==0 si
5 (5 mod 2)==0 no
A[2]=6 3 6 (6 mod 2)==0 si
7 (7 mod 2)==0 no
A[3]=8 4 8 (8 mod 2)==0 si
9 (9 mod 2)==0 no
Valores A[4]=10 5 10 (10 mod 2)==0 si
11 (11 mod 2)==0 no
A[5]=12 6 12 (12 mod 2)==0 si
13 (13 mod 2)==0 no
A[6]=14 7 14 (14 mod 2)==0 si
15 (15 mod 2)==0 no
A[7]=16 8 16 (16 mod 2)==0 si
17 (17 mod 2)==0 no
A[8]=18 9 18 (18 mod 2)==0 si
19 (19 mod 2)==0 no
A[9]=20 10 20 (20 mod 2)==0 si
¿Cómo le fue con los ejercicios propuestos?. Si todavía tiene inquietudes respecto
a la temática, a continuación lo invitamos a revisar el siguiente recurso de apoyo.
Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
• http://purl.org/taw-sbc-utpl/algorithm/unit6/coding
i, j
Importante:
Para leer, realizar operaciones y recorrer un arreglo bidimensional
se requiere de estructuras de control repetitivas que permitan
avanzar por cada una de las posiciones de la matriz. Se puede
utilizar las estructuras de control: Para, Mientras que o Hacer
Hasta.
Ejemplo 6.1 Leer las matrices A y B, obtener la suma en una nueva matriz C y
presentar la matriz C.
Análisis:
C = A + B
3 6 14 2 3 9 1 3 5
19 12 24 = 12 7 15 + 7 6 9
10 8 21 8 0 11 2 8 10
C (i, j) = A(i, j) + B(i, j), donde i y j son menor o igual a n. En el ejemplo, para
obtener las filas de la matriz C se realiza lo siguiente:
Fila 1
Fila 2
Fila 3
Algoritmo
Inicio
//declaración de variables
Entero: A [100, 100], b [100, 100], C [100, 100] //declaración de matrices
Entero: n //tamaño de las matrices
Entero: i //subíndice para las filas
Entero: j // subíndice para las columnas
//inicialización de variables
i ← 1, j ← 1, n ← 0
//se solicita el tamaño de las matrices
Escribir "Ingrese el tamaño para las matrices A, B y C"
Leer n
//Ingreso de la matriz A
Para (i ← 1, n, 1) entonces
Escribir “Ingrese los elementos de la fila”, i
Para (j← 1, n, 1) entonces
Leer A[i,j]
Fin_Para
Fin_Para
//Ingreso de la matriz B → Con la estructura Para no es necesario reiniciar el contador
Para (i ← 1, n, 1) entonces
Escribir “Ingrese los elementos de la fila”, i
Para (j← 1, n, 1) entonces
Leer B[i,j]
Fin_Para
Fin_Para
//Calcular la suma de las matrices A y B en una matriz resultante C
Para (i ← 1, n, 1) entonces
Para (j← 1, n, 1) entonces
Calcular: C[i,j] ← A[i,j] + B[i,j]
Fin_Para
Fin_Para
//Presentar la matriz resultante C
Para (i ← 1, n, 1) entonces
Para (j← 1, n, 1) entonces
Escribir “El elemento de la matriz C en”, i, “,”, j, “es”, C[i, j]
Fin_Para
Fin_Para
Fin
Diagrama de flujo
F
V V
F V
Nro Miniespecificación
1 Inicio
2 //declaración de variables
3 A [100, 100], i [1 – n] //declaración de matriz A
4 B [100, 100], i [1 – n] //declaración de matriz B
5 C [100, 100] , i [1 – n] //declaración de matriz C
6 n, i[1 - n] //tamaño de las matrices
7 i, i[1 - n] //subíndice para las filas
8 j, i[1 - n] //subíndice para las columnas
9 //inicialización de variables
10 i ← 1, j ← 1, n ← 0
11 //se solicita el tamaño de las matrices
12 << "Ingrese el tamaño para las matrices A, B y C"
13 >> n
14 //Ingreso de la matriz A
15 Para (i ← 1, n, 1) entonces
16 Escribir “Ingrese los elementos de la fila”, i
17 Para (j← 1, n, 1) entonces
18 >> A[i, j]
19 Fin_Para
20 Fin_Para
21 //Ingreso de la matriz B → Con la estructura Para no es necesario reiniciar el contador
22 Para (i ← 1, n, 1) entonces
23 Escribir “Ingrese los elementos de la fila”, i
24 Para (j← 1, n, 1) entonces
25 >> B[i,j]
26 Fin_Para
27 Fin_Para
28 //Calcular la suma de las matrices A y B en una matriz resultante C
29 Para (i ← 1, n, 1) entonces
30 Para (j← 1, n, 1) entonces
31 C[i,j] ← A[i,j] + B[i,j]
32 Fin_Para
33 Fin_Para
34 //Presentar la matriz resultante C
35 Para (i ← 1, n, 1) entonces
36 Para (j← 1, n, 1) entonces
37 << “El elemento de la matriz C en”, +i, “,”, +j, “es”, +C[i, j]
38 Fin_Para
39 Fin_Para
40 Fin
Prueba de escritorio
Variables
n i j A [i, j] B [i, j] C [i, j]
3 1 1 2
2 3
3 5
2 1 12
2 7
3 15
3 1 8
2 0
3 11
1 1 1
2 3
3 5
2 1 7
Valores
2 6
3 9
3 1 2
2 8
3 10
1 1 3
2 6
3 14
2 1 19
2 13
3 24
3 1 10
2 8
3 21
Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
http://purl.org/taw-sbc-utpl/algorithm/unit6/coding
Ejercicios propuestos
De los ejercicios propuestos en la sección 4.4 – Ejercicios
propuestos, del texto básico, desarrolle los ejercicios
impares entre el 1 al 20.
¿Ha desarrollado con éxito los ejercicios propuestos?. Si tiene alguna inquietud
todavía, los siguientes recursos de apoyo sobre estructuras de datos le ayudarán
a fortalecer las temáticas planteadas en esta unidad.
Recursos de apoyo
Revisar el siguiente recurso:
http://purl.org/taw-sbc-utpl/algorithm/unit6/v1_matrices
Autoevaluación 6
1. Un subíndice es:
a. Tipo de dato
b. Subíndice
c. Elemento
a. Arreglo bidimensional
b. Arreglo unidimensional
c. multidimensional
a. Para (i ← 1, n, 1) entonces
Para (j← 1, n, 1) entonces
<< A[i, j]
Fin_Para
Fin_Para
b. i←1
Para (j← 1, n, 1) entonces
A[i, j] ← 0
Fin_Para
c. Para (i ← 1, n, 1) entonces
j← 1
<< A[i, j]
Fin_Para
1. Inicio
2. A [100, 100], i [1 – n]
3. n, i, j, i[1 – n]
4. n ← 3
5. Para (i ← 1, n, 1) entonces
6. Para (j← 1, n, 1) entonces
7. A[i, j] ← 0
8. Fin_Para
9. Fin_Para
10. Fin
1. Inicio
2. n, i, j, i[1 – n], A [100, 100]
3. n←3
4. Para (i ← 1, n, 1) entonces
5. Para (j← 1, n, 1) entonces
6. Si (i + j) == (n + 1) entonces
7. A[i, j] ← 1
8. Fin_Si
9. Fin_Para
10. Fin_Para
11. Fin
7. Solucionario
Autoevaluación 1
Pregunta Respuesta Retroalimentación
1 b La opción correcta es la b, dado que la Informática como
ciencia estudia el tratamiento de la información a través de
máquinas de procesamiento electrónico de datos al servicio
de una sociedad digital y global, se basa tanto en la tecnología
como en la capacidad racional humana.
Revisar el texto básico, sección 1.1 – Concepto de lógica.
2 a La opción correcta es la a, el símbolo conector. Este es un
símbolo especial dentro de los diagramas de flujo y tiene como
función trasladar el control del programa a otra parte dentro
del mismo diagrama. Cada conector deberá contar con un
identificador único.
Revisar la guía didáctica, sección 1.7.2 – Estándar ANSI/ISO
5807 – 1985 para diagramas de flujo.
3 c La opción correcta es la c porque un algoritmo es un conjunto
finito de reglas bien definidas en su lógica de control que
permiten la solución de un problema en una cantidad finita
de tiempo. En la resolución del problema con las reglas
mencionadas, el algoritmo realiza un conjunto de pasos
cuya ejecución para dar la solución del problema puede ser
ejecutada manualmente, mecánicamente o utilizando una
máquina de procesamiento electrónico de datos.
Revisar el texto básico, sección 1.2.2 – Algoritmos.
4 a Esta ventaja corresponde a los diagramas de flujo, debido
a que un diagrama de flujo es uno de los entregables más
comunes en la fase de análisis de un programa y sirven como
referencia para que sean interpretados por los programadores.
Por lo tanto la opción correcta es la a.
Revisar la guía didáctica, sección 1.7.1 – Ventajas de los
diagramas de flujo.
Autoevaluación 1
Pregunta Respuesta Retroalimentación
5 b La opción correcta es la b, debido a que una computadora es
un dispositivo electrónico, utilizado para procesar información
y obtener resultados, capaz de ejecutar cálculos y tomar
decisiones a velocidades millones o cientos de millones más
rápidas que puedan hacerlo los seres humanos.
Revisar el texto básico, sección 1.5 – Máquinas de
procesamiento electrónico de datos.
6 c Esta definición corresponde a los símbolos especiales, la
opción c. A la categoría de símbolos especiales pertenecen
típicamente los operadores aritméticos (+,-,*, /) y de
comparación (<,>, <>,=).
Revisar la guía didáctica, sección 1.6 – Lenguajes de
programación – sintaxis básicas.
7 a Los diagramas de flujo es uno de los entregables en la fases
de análisis y diseño en el ciclo de desarrollo de un programa,
dado que facilitan la comunicación entre los desarrolladores y
los clientes. Por lo tanto la opción correcta es la a.
Revisar la guía didáctica, sección 1.7 – Diagramas de flujo y su
representación
8 a La opción a es la correcta dado que un paralelogramo es un
símbolo de datos que representa los datos de entrada y salida.
Y soporta las operaciones de petición y muestra de datos.
Revisar la guía didáctica, sección 1.7.3 – Símbolos utilizados
en los diagramas de flujo.
Autoevaluación 1
Pregunta Respuesta Retroalimentación
9 b La relación de los términos con su símbolos quedaría:
Autoevaluación 1
Pregunta Respuesta Retroalimentación
10 a Los pasos a seguir para resolver el problema son:
1. Mostrar en pantalla un mensaje donde se solicite que el
usuario ingrese el mensaje a mostrar.
2. Se lee el mensaje ingresado por el usuario
3. Se presenta el mensaje en pantalla.
El algoritmo para resolver el problema es:
1. Inicio
2. Escribir “Ingresar el mensaje a mostrar en pantalla”
3. Leer mensaje
4. Escribir mensaje
5. Fin
A continuación se presenta la solución en diagrama de flujo,
por lo tanto la opción correcta es la a:
Autoevaluación 2
Pregunta Respuesta Retroalimentación
1 c La opción correcta es c porque el Nibble es conocido como
“cuarteto o semiocteto”, que permite representar un número
binario de cuatro dígitos. Estos números van desde el 0000
(016) al 1111 (F16) y corresponden a un carácter del sistema
numérico hexadecimal.
Las opciones a y b son incorrectas.
Revisar la guía didáctica, sección 2.3 – Múltiplos y
submúltiplos del byte. Y del texto básico, la sección 2.2
Múltiplos y submúltiplos.
2 b La opción correcta es b porque el tipo de dato que se puede
usar es decimal porque debe almacenar el valor de un
producto y puede contener valores de 0 a 10; la opción a no es
correcta, byte por que recuerde solo almacena un conjunto de
ocho bits; la opción c es un tipo de variable que admite todos.
Revisar el sección 2.2 – Múltiplos y submútiblos del byte. de
la guía didáctica. Y del texto básico, la sección 2.2 Múltiplos y
submúltiplos.
3 b La opción b es correcta debido que 7 >= 7 retorna valor True
porque haciendo razonamiento sabemos que 7 es mayor
igual a 7; la opción a no es correcta ya que el carácter C
(mayúscula) no es igual c (minúscula); la opción c no es
correcta ya que desarrollando las operaciones matemáticas 9
no es igual 8.
Revisar la guía didáctica, sección 2.5 – Expresiones. Y el texto
básico, sección 2.5 – Expresiones.
4 a La opción a es correcta, porque la edad de una persona es de
0 hasta 110 años de edad; la opción b no puede ser ya que el
rango de edad es muy bajo desde de 0 a 10; la opción c no es
correcta, una persona no puede tener edad desde los 18 hasta
los 100 años de edad.
Revisar la guía didáctica, sección 2.6.2 – Naturaleza de los
datos. Y la bibliografía complementaria (Ramírez, 2007),
capítulo 4 – Naturaleza de los datos.
Autoevaluación 2
Pregunta Respuesta Retroalimentación
5 c La opción correcta es c, precedencia explícita se provoca
mediante el uso de paréntesis, aquello que se encierra en
un paréntesis en una expresión es obligado a resolverse sin
respetar otras reglas de precedencia respecto a lo que está
afuera de los paréntesis; la opción a no es correcta porque
la procedencia posicional se presenta cuando tiene varias
expresiones; la opción b no es correcta porque la precedencia
implícita es aquella inherente a los operadores y la categoría a
la que pertenecen.
Revisar la guía didáctica, sección 2.4.5 Reglas de precedencia.
Y la bibliografía complementaria (Ramírez, 2007), capítulo 4.
6 b La expresión (a - b < 3 - c) and (c * 1 == a - b) es Falso, porque
reemplazando los valores de a = 2 , b = 4 , c = 6 genera en la
primera parte (-2 <4 == -2), lo cual genera inconsistencia de
valor. Por lo tanto la opción b es la correcta.
7 a La reglas para definir correctamente el nombre de una variable
son las numerales:
1) Siempre iniciar con letra, 5) Máximo 32 caracteres de
longitud, y 6) Representativo al valor que guarda.
Además se debe considerar las siguientes: Se recomienda
que debe componerse de letras y números, No contener
espacios en blanco ni caracteres generales (incluyendo letras
acentuadas y signos regionales) a excepción del guión bajo ( _
).
Revisar la guía didáctica, sección 2.6.1 – Variables. Y el texto
básico, sección 2.3 – Variables y tipos predefinidos.
Autoevaluación 2
Pregunta Respuesta Retroalimentación
8 c La opción correcta es c porque la clave formada por una letra
“Z” y 5 números con regla de ningún número puede ser 0 es
X(6) [1 {Z}, 5 {1-9}], debido qué solicita una sola letra Z, 5
números no puede haber 0 entonces el rango es de 1 a 9.
La opción a no es correcta porque en el rango de números
incluye el valor de 0 y la opción b no es correcta por que el
rango de letras incluye más de una letra todo el alfabeto de
A-Z solo necesita 1 letra ”Z”.
Revisar la guía didáctica, sección 2.6.2 – Naturaleza de los
datos. Y la bibliografía complementaria (Ramírez, 2007),
capítulo 4 – Naturaleza de los datos.
9 c No describe el tipo de dato de una variable opción c porque
indica un contexto ambiguo sin relación a tipo de dato.
Revisar la guía didáctica, sección 2.6.2 – Naturaleza de los
datos. Y la bibliografía complementaria (Ramírez, 2007),
capítulo 4 – Naturaleza de los datos.
10 b No es una declaración válida la opción b porque la variable
precioProducto es una variable numérica y se le esta
asignando el valor ”24.95” que es una cadena.
La opción a es una declaración válida porque costoProducto
=100 variable y valor de asignación correcto. Y la opción
c es también una declaración válida porque a la variable
costoProducto le asigna precioProducto -10 que son del mismo
tipo numérico.
Revisar la guía didáctica, sección 2.6.1 – Variables. Y el texto
básico, sección 2.3 – Variables y tipos predefinidos.
Autoevaluación 3
Pregunta Respuesta Retroalimentación
1 c La opción c es la correcta, dado que el ciclo de desarrollo de
un programa nos proporciona cuatro fases que nos permiten
dar solución a un problema de forma más precisa. Estas fases
se siguen de acuerdo al siguiente orden.
1. Fase de análisis
2. Fase de diseño
3. Fase de codificación
4. Fase de pruebas e implementación.
Revisar la guía didáctica, sección 3.1 – Ciclo de desarrollo
de un programa. Y la bibliografía complementaria (Ramírez,
2007), capítulo 6 – Algoritmos para el análisis de casos reales.
2 c La fase de análisis consiste en descomponer el todo en sus
partes, con el fin de comprender y dar solución a problemas de
la vida real. El objetivo es analizar detalladamente el problema
planteado para determinar las posibles soluciones y levantar
los requerimientos necesarios para resolver el mismo. Por lo
tanto la opción c es la correcta.
Revisar la guía didáctica, sección 3.1.1 – Fase de análisis. Y
la bibliografía complementaria (Ramírez, 2007), capítulo 6 –
Algoritmos para el análisis de casos reales.
3 a La opción correcta es la a, debido a que en el ciclo de
desarrollo de un programa, el cliente se involucra en la fase de
pruebas e implementación. En esta fase el cliente puede medir
si el programa cumple con todos los requerimientos solicitados
desde el inicio en la fase de análisis. De no ser así, se debe
revisar nuevamente las fases previas.
Revisar la guía didáctica, sección 3.1.4 – Fase de pruebas e
implementación. Y la bibliografía complementaria (Ramírez,
2007), capítulo 6 – Algoritmos para el análisis de casos reales.
Autoevaluación 3
Pregunta Respuesta Retroalimentación
4 a La opción a es la correcta porque en la fase de diseño se
da respuesta a esta pregunta, y el objetivo de esta fase es
traducir técnicamente los requerimientos del cliente obtenidos
en la fase de análisis a una forma abstracta y estandarizada.
Revisar la guía didáctica, sección 3.1.2 – Fase de diseño. Y
la bibliografía complementaria (Ramírez, 2007), capítulo 6 –
Algoritmos para el análisis de casos reales.
5 a Un algoritmo es un conjunto ordenado y finito de asignaciones,
procesos, cálculos y decisiones que permiten a un programa
satisfacer una unidad de funcionalidad dada.
Un algoritmo no puede estar sin orden, ya que para la
resolución de problemas se necesita seguir una secuencia
lógica de pasos. Y no puede ser infinito dado que nunca se
llegaría a resolver el problema planteado. Por lo tanto la opción
a es la correcta.
Revisar la guía didáctica, sección 3.2 – Primitivas algorítmicas.
Y el texto básico, capítulo 3 – Primitivas algorítmicas.
6 c La opción c es la correcta, dado que la aceptación del
programa se realiza en la fase pruebas e implementación. Es
en esta fase donde el cliente valida si el programa cumple con
los requerimientos solicitados, de ser así acepta el programa,
caso contrario se debe evaluar en las fases anterior porque no
se cumplen todos los requerimientos dados.
Revisar la guía didáctica, sección 3.1.4 – Fase de pruebas e
implementación. Y la bibliografía complementaria (Ramírez,
2007), capítulo 6 – Algoritmos para el análisis de casos reales.
Autoevaluación 3
Pregunta Respuesta Retroalimentación
7 b Para resolver el problema planteado se debe identificar los
datos de entrada, los del proceso y los de salida.
Los datos de entrada son: largo, ancho y costo por metro
cuadrado.
Autoevaluación 4
Pregunta Respuesta Retroalimentación
1 b La opción correcta es b Condicional compuesta por que solo
ejecuta las primitivas de control cuando es verdadera y cuando
la condición es falsa; la opción a no es correcta porque solo
ejecuta la condición solo cuando es verdadera; la opción c es
un ciclo repetitivo.
Revisar la guía didáctica, sección 4.2 – Estructura lógica
condicional compuesta. Y el texto básico, sección 3.4 –
Estructura lógica condicional compuesta.
2 c La opción c es correcta ya que Dependiendo_De es una
estructura condicional compuesta que permite la ejecución
de un conjunto de primitivas de control(pi), en la que el
cumplimiento de la condición de la estructura en mención
hace posible la ejecución de las instrucciones entre muchas
alternativas no solo por el cumplimiento verdadero de la
condición, punto por el cual se ejecutan las primitivas p1..
pn sino el cumplimento de la condición cuando es falsa; la
opción a no es correcta porque condicional simple permite
ejecuciones de las primitivas p1…pn si las condición es
verdadera o se cumple; la opción b no es correcta porque solo
ejecuta las primitivas de control cuando es verdadera y cuando
la condición es falsa
Revisar la guía didáctica, sección 4.2 – Estructura lógica
condicional compuesta. Y el texto básico, sección 3.5 –
Estructura lógica Dependiendo De.
Autoevaluación 4
Pregunta Respuesta Retroalimentación
3 b La respuesta correcta es opción b alternativa 2 porque el
problema requiere solucionar el incremento del salario de un
empleado en un 25% siempre y cuando gane 750 dólares o
más, por ello, se aplica una condición simple en la que controla
si el salario es mayor o igual a 750 entonces a la variable
salario se le asigna el valor de salario + (salario *0.25); la
opción a no es correcta porque en la condición simple indica
que si el salario es mayor o igual a 750 entonces a la variable
salario le asigna el valor de (salario *0.25) sin embargo no
almacena el valor de salario; la opción c no es correcta porque
si la condición simple salario es mayor a 750 entonces a
la variable salario le almacena salario +(salario *0.25) y no
almacenaría cuando la variable salario sea igual a 750.
Revisar la sección 4.1 – Estructura lógica condicional, de la
guía didáctica y el texto básico en la sección 3.2 – Concepto
de primitivas básicas.
4 c Respuesta correcta opción c porque en la condición simple Si
la edad es mayor o igual a 18 presenta la edad, caso contrario
presentar incorrecto, la opción a no es correcto porque la
condición indica si la edad es mayor a 18 años presentar
la edad, caso contrario ingresar “incorrecto”, lo que aquí no
realizaría la solución adecuada ya que solo evalúa edad mayor
a 18 o sea puede ser desde 18.1 y no desde igual a 18 y es
cuando también es mayor de edad; la opción b no es correcta
porque la condición indica si la edad es mayor o igual a 18
años presentar la edad, caso contrario ingresar “incorrecto”,
lo que aquí no realizaría la solución adecuada porque lo que
debe hacer es presentar la palabra incorrecto y no ingresar.
Tomar en cuenta los operadores >>, <<.
Revisar la sección 4.1 – Estructura lógica condicional, de la
guía didáctica y el texto básico en la sección 3.2 – Concepto
de primitivas básicas.
Autoevaluación 4
Pregunta Respuesta Retroalimentación
5 b La respuesta correcta es b porque se solicita resolver el
siguiente problema si un usuario que adquiere 3 productos su
costo final es mayor a 200 dólares se realiza un descuento
de 15%, el algoritmo debe mostrar el total, descuento y el
algoritmo los que hace es primero ingresar los 3 productos y
los almacena en 3 variables diferentes, luego a variable total le
asigna la suma de los 3 productos (total= prod1+prod2+prod3)
con ello con la condición simple Si controla (total es mayor a
200) entonces a la variable descuento le asigna total * 15%
de descuento, finalizado el control a la variable total asigna
la suma de total y descuento total=(Total+desc), finalmente
presental los valores de total y descuento.
Las opciones a y c no son correctas.
Revisar la sección 4.1 – Estructura lógica condicional, de la
guía didáctica y el texto básico en la sección 3.2 – Concepto
de primitivas básicas.
6 V, F El primer enunciado es V porque en efecto la condición se
refiere a una decisión que se debe tomar en la lógica de
control y el segundo enunciado es F porque La “decisión”
implica la solución a una pregunta que se estructura en la
condición, no en un ciclo repetitivo.
Revisar la sección 4.1 – Estructura lógica condicional, de la
guía didáctica y el texto básico en la sección 3.3 – Estructura
lógica condicional simple.
7 c La opción correcta es c porque la condición controla el área
según su expresión y presenta el área y sale del ciclo de
control, por tanto es una condicional simple; la opción a no es
correcta; la opción b no es correcta.
Revisar la sección 4.1 – Estructura lógica condicional, de la
guía didáctica y el texto básico en la sección 3.3 – Estructura
lógica condicional simple.
Autoevaluación 4
Pregunta Respuesta Retroalimentación
8 b La opción correcta es b porque se desea resolver un programa
que permite obtener y presentar el cubo de un número,
siempre y cuando el número sea menor a 60, caso contrario
debería obtener y presentar el cuadrado del número indicado,
por ello, la condición simple con la variable número controla
si numero es menor a 60 entonces a la variable cuadrado le
asigna numero elevado a 3(cuadrado <-- numero ^ 3), luego
presentar el valor de cuadrado, sino se cumple la condición
a la variable cubo le asigna numero elevado a 2 (cubo <--
numero ^ 2) y presentar el valor de cubo y finalizar; la opción a
no es correcta; la opción c no es correcta.
Revisar la sección 4.1 – Estructura lógica condicional, de la
guía didáctica y el texto básico en la sección 3.4 – Estructura
lógica condicional compuesta.
9 c La opción de respuesta correcta es c porque se desea dar
solución a un programa que permita determinar si alguien
tiene la edad para entrar a la universidad en un país (el
país tiene como ley que los estudiantes pueden ingresar a
la universidad sólo si tienen 20 años, en ningún otro caso).
Si la persona cumple con la edad presentar un mensaje de
“ingreso exitoso”, en caso que no tenga la de edad presentar
un mensaje de “edad incorrecta”, por ello la solución correcta
es con la condicional simple en la variable edad controla si la
edad es igual a 20 (Si edad == 20 entonces) presentar el texto
“ingreso exitoso” sino se cumple entonces presentar “edad
incorrecta” y finalizar el ciclo de control.
La opción a y b es incorrecta.
Revisar la sección 4.2 – Estructura lógica condicional
compuesta, de la guía didáctica y el texto básico en la sección
3.4 – Estructura lógica condicional compuesta.
Autoevaluación 4
Pregunta Respuesta Retroalimentación
10 b La respuesta correcta es opción b, condicional DD
(Dependiendo_De) compuesta que permite la ejecución de un
conjunto de primitivas de control(pi), en la que el cumplimiento
de la condición de la estructura en mención hace posible la
ejecución de las instrucciones entre muchas alternativas no
solo por el cumplimiento verdadero de la condición, punto por
el cual se ejecutan las primitivas p1..pn sino el cumplimento de
la condición cuando es falsa.
La opción a y c es incorrecta.
Revisar la sección 4.3 – Estructura lógica Dependiendo De, de
la guía didáctica y el texto básico en la sección 3.5 – Estructura
lógica Dependiendo De.
Autoevaluación 5
Pregunta Respuesta Retroalimentación
1 c La opción c es la correcta dado que un contador es una
variable cuyo valor se incrementa o decrementa en una
cantidad constante con la finalidad de contar sucesos o
acciones internas de un ciclo repetitivo. Por lo general un
contador es inicializado desde 0 o 1 y va incrementado de uno
en uno.
Revisar la guía didáctica, unidad 5 – Estructuras lógicas
repetitivas.
2 b Se llama incrementar al proceso de agregar el valor de 1 a
una variable denominada contador. Generalmente se utiliza
para trabajar con estructuras lógicas repetitivas. Por lo tanto la
opción b es la correcta.
Revisar la guía didáctica, unidad 5 – Estructuras lógicas
repetitivas.
3 c La opción c es la correcta debido a que un acumulador es una
variable que suma sobre sí misma un conjunto de valores,
para de esta forma almacenar la suma de todos ellos en una
sola variable. Los valores a almacenar varían en base a los
procesos y operaciones.
Revisar la unidad 5 de la guía didáctica.
4 a, d La diferencia entre la estructura Mientras que – Hacer y la
estructura lógica repetitiva Hacer – Hasta, es que la primera se
ejecuta únicamente si se cumple la condición, mientras que la
segunda se ejecuta al menos una vez, aunque la condición no
se cumpla.
Revisar la sección 5.1 y 5.2 de la guía didáctica. Y la sección
3.7 y 3.8 del texto básico.
5 c La opción c es la correcta, dado que se conoce como
estructuras anidadas cuando una estructura está dentro de
otra estructura. Se pueden anidar estructuras lógicas de
decisión así como estructuras lógicas de repetición.
Revisar la guía didáctica, la sección 5.4 – Estructuras lógicas
repetitivas anidadas.
Autoevaluación 5
Pregunta Respuesta Retroalimentación
6 c Para obtener el valor de la variable i de la miniespecificación
se debe realizar una prueba de escritorio.
1 i ← 0
2 limite ← 5
3 Mientras i <= lim hacer
4 I ← i + 1
5 Fin_Mientras
6 << i
Variables
limite i
5 1
2
Valores 3
4
5
6
Autoevaluación 5
Pregunta Respuesta Retroalimentación
8 c Para obtener la serie de la siguiente miniespecificación se
realiza la prueba de escritorio correspondiente.
1 i ← 0
2 limite ← 24
3 Mientras i < 24 hacer
4 Si i%6 == 0 entonces
5 << i
6 Fin Si
7 i=i+3
8 Fin mientras
Prueba de escritorio
Variables Salida
limite i << i
24 3 0
6
9 6
Valores 12
15 12
18
21 18
24
Autoevaluación 5
Pregunta Respuesta Retroalimentación
9 b Para que la estructura Mientras de la siguiente
miniespecificación se convierta en un bucle infinito, se debe
eliminar la línea 6. Para verificar esto se realiza la prueba de
escritorio.
1 Inicio
2 numero1, i[1 – n]
3 numero1 ← 1
4 Mientras numero1 <= 20 hacer
5 << numero1
6 numero1 ← numero1 + 1 //Eliminar esta línea
7 Fin_Mientras
8 Fin
Prueba de escritorio
Variables Salida
limite numero1 numero1 <= 20 <<numero1
20 1 1 <= 20 → Si 1
1 <= 20 → Si 1
1 <= 20 → Si 1
Valores 1 <= 20 → Si 1
1 <= 20 → Si 1
…
1 <= 20 → Si 1
…
Autoevaluación 6
Pregunta Respuesta Retroalimentación
1 c Un subíndice es el número que indica la posición de un
elemento dentro de un arreglo.
En los arreglos unidimensionales se utiliza un solo subíndice
→ A[i], donde i es el subíndice. Y en los bidimensionales se
utilizan dos A[i, j], donde i y j son los subíndices.
Revisar la guía didáctica, sección 6.1 – Arreglos
unidimensionales y la sección 6.2 – Arreglos bidimensionales o
matrices.
2 c Uno de los componentes de un arreglo es el elemento, que
es el valor de dato en una posición específica. Por lo tanto la
opción correcta es la c.
Revisar la guía didáctica, sección 6.2 – Arreglos
bidimensionales o matrices.
3 b La opción b es la correcta debido que un arreglo
unidimensional es un tipo de estructura de datos compuesta
por un conjunto de elementos, de tamaño fijo y homogéneos
(del mismo tipo), los cuales son direccionados por un único
subíndice. Caso contrario de los arreglos bidimensionales y
multidimensionales que están dirigidos por 2 o más índices.
Revisar la guía didáctica, sección 6.2 – Arreglos
bidimensionales o matrices.
4 a La opción correcta para presentar los elementos de una matriz
es la opción a.
Para (i ← 1, n, 1) entonces
Para (j← 1, n, 1) entonces
<< A[i, j]
Fin_Para
Fin_Para
La opción b es incorrecta debido a qué únicamente recorre
y presenta los elementos de la primera fila. Y la opción c,
únicamente recorre y presenta los elementos de la primera
columna.
Autoevaluación 6
Pregunta Respuesta Retroalimentación
5 c Para identificar la opción de respuesta correcta se debe realizar la
prueba de escritorio de la miniespecificación.
1Inicio
2 A [100, 100], i [1 – n]
3 n, i, j, i[1 – n]
4 n ← 3
5 Para (i ← 1, n, 1) entonces
6 Para (j← 1, n, 1) entonces
7 A[i, j] ← 0
8 Fin_Para
9 Fin_Para
0Fin
Prueba de escritorio
Variables Salida
n i j A [i, j]
3 1 1 0
2 0
3 0
Valores 2 1 0
2 0
3 0
3 1 0
2 0
0 0 0
0 0 0
0 0 0
Autoevaluación 6
Pregunta Respuesta Retroalimentación
6 c Para identificar a qué elementos de la matriz A se esta
asignando el valor de 1, se debe realizar la prueba de
escritorio de la siguiente miniespecificación
1 Inicio
2 n, i[1 – n]
3 n ← 3
4 Para (i ← 1, n, 1) entonces
5 Para (j← 1, n, 1) entonces
6 Si (i + j) == (n + 1) entonces
7 A[i, j] ← 1
8 Fin_Si
9 Fin_Para
10 Fin_Para
11 Fin
Variables
n i j (i + j) (n + 1) A [i, j]
3 1 1 2 4 --
2 3 4 --
3 4 4 1
2 1 3 4 --
Valores
2 4 4 1
3 5 4 --
3 1 4 4 1
2 5 4 --
3 6 4 --
-- -- 1
-- 1 --
1 -- --
8. Glosario
ciclo anidado: Estructura de ciclo dentro de otra; son ciclos dentro de ciclos.
ciclo de desarrollo del programa: Pasos que ocurren durante la vida de un pro-
grama, entre los que se encuentran: planeación, codificación, traducción, prueba,
producción y mantenimiento del programa.
ciclo hacer – hasta: Ciclo después de la prueba que itera hasta que la pregunta
que lo con- trola es falsa.
ciclo interno: Cuando los ciclos están anidados, el ciclo que está contenido
dentro del otro.
cláusula si – sino: Parte de una decisión que contiene la acción o acciones que
se ejecutan sólo cuando la expresión booleana en la decisión es falsa.
declaración Para: Declaración que puede usarse para codificar ciclos definidos;
también llamada ciclo para. La declaración contiene una variable de control de
ciclo que se inicializa, evalúa y altera en forma automática.
estructura dependiendo de: Aquella que evalúa una sola variable contra
múltiples valores, proporcionando acciones separadas para cada ruta lógica.
inicializar una variable: Acto de asignar el primer valor a una variable, a menudo
al mismo tiempo en que ésta se crea.
variable de cadena: Aquella que puede contener texto que incluya letras, dígitos
y caracteres especiales como signos de puntuación.
9. Referencias bibliográficas
Iconografía
• https://commons.wikimedia.org/wiki/File:Crystal_Clear_app_kedit_
green-pencil.svg
• https://commons.wikimedia.org/wiki/File:Nlyl_reading_man_with_
glasses.svg
• https://commons.wikimedia.org/wiki/File:Stop_hand_orange.svg
• https://commons.wikimedia.org/wiki/File:Stop_hand_nuvola_blue.svg
• https://commons.wikimedia.org/wiki/File:Start_hand.svg
• https://commons.wikimedia.org/wiki/File:Antu_istanbul.svg
• http://aminfotrix.com/wp-content/uploads/2016/12/software.png
• https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/External-
link-02-12x12.svg/2000px-External-link-02-12x12.svg.png
• https://gregschiller.files.wordpress.com/2015/06/imagebot-
com-2012042714194724316.png
10. Anexos
Miniespecificación:
1 Inicio
2 (Mensaje, x(30))
3 <<”Escribir el texto que desea mostrar”
4 >>”Soy UTPL”
5 Fin
Diagrama de flujo
Ejercicio 2: Muestra el mayor de dos números num1 y num2 y si son iguales los
muestra a ambos.
Miniespecificación:
1 Inicio
2 (num1, i([0-n])
3 (num2, i([0-n])
4 <<”<Ingrese el primer número”
5 >>num1
6 <<”<Ingrese el segundo número”
7 >>num2
8 Si(num1 = num2) entonces
9 << “Primer número es igual a número 2”
10 Sino
11 Si(num1>num2)
12 << “Primer número es mayor”
13 Sino
14 <<”Segundo número es mayor”
15 Fin si
16 Fin
Diagrama de Flujo
Expresión Solución
((“A”=”aA”) or (2*5*40<40) and (1^2=2*1)) Se resuelve primero las expresiones que
tiene prioridad como la multiplicación.
((“A”=”aA”) or (400 < 40) and (1^2=2)) Se realiza la multiplicación, se resuelve
la potencia
((“A”=”aA”) or (400 < 40) and (1=2)) Se resuelve el contenido de paréntesis
((“A”=”aA”) or (400 < 40) and (1=2)) Se resuelve los valores booleanos,
F F F primer operador or
Se resuelve los valores booleanos,
F and F operador and Finalmente queda F or F
que realmente pretendemos
F Expresión resuelta
Expresión Solución
not((“D”==”D”) and (-1 * 3 * 40 >= 2 * -40)) Se resuelve primero las expresiones que
tiene prioridad como la multiplicación.
((“A”=”aA”) or (400 < 40) and (1^2=2)) Se realiza la multiplicación, se resuelve la
potencia
((“A”=”aA”) or (400 < 40) and (1=2)) Se resuelve el contenido de paréntesis
((“A”=”aA”) or (400 < 40) and (1=2)) Se resuelve los valores booleanos, primer
F F F operador or
Se resuelve los valores booleanos,
F and F operador and Finalmente queda F or F que
realmente pretendemos
F Expresión resuelta