Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bibliografía
Introducción
El presente curso ha sido desarrollado con el propósito de atender las necesidades
de los aspirantes provenientes del nivel medio superior, poniendo énfasis en reafirmar
conceptos básicos del área de lógica de programación. Por consiguiente, en este espacio se
te proporcionarán los conocimientos mínimos necesarios para poder iniciar tu carrera de
Técnico Superior Universitario (TSU) en Tecnologías de la Información (TI) dentro de la UTEZ.
Este curso está diseñado para que lo tomes en dos semanas de forma consecutiva,
proporcionándote los conocimientos y herramientas que se vayan requiriendo. Al finalizar
el curso, habrá una evaluación final que determinará los conocimientos que hayas adquirido
durante este curso.
Aunque se piense que realizar un análisis previo del problema y diseño del algoritmo
es una pérdida de tiempo, resulta un buen hábito para los desarrolladores aplicar la
metodología de la programación sin importar si se trata de problemas complejos o sencillos.
Un algoritmo puede ser considerado como un “plan”, pues indica qué se va a hacer y cómo
se va a hacer. Por ejemplo:
1
• Proceso: Pasos o acciones que se deben realizar para dar solución al
problema (orden lógico).
• Salida: Resultado que se obtiene al realizar el proceso (tipo y valor).
Figura 1.1
Representación
gráfica de un
algoritmo. ¿Qué recibo? ¿Qué hago? ¿Qué obtengo?
Inicio.
Vaciar el agua en un recipiente.
Agregar azúcar al gusto
Mezclar el agua hasta disolver el azúcar
Vaciar el jugo de limón en el recipiente que contiene el agua.
Mezclar el agua y el jugo de limón.
Fin.
Con este algoritmo es posible notar una situación de la vida cotidiana, donde por
medio de cinco pasos se obtiene un resultado: un vitrolero lleno de agua de limón.
Inicio.
Insertar la tarjeta en el cajero.
Ingresar el NIP.
Elegir la opción “retirar efectivo”.
Escoger el monto a retirar.
Confirmar transacción.
Retirar tarjeta.
Tomar el efectivo.
Finalizar transacción.
Fin.
Con este algoritmo es posible notar que tenemos una entrada, esta es la tarjeta que
se está insertando en el cajero y el NIP, posteriormente, se selecciona el monto a retirar y
2
termina la transacción. Por último, se retira la tarjeta y la salida es el efectivo que está
retirando la persona que usó el cajero.
Tipos de Conjunto de valores que una variable o constante puede tomar durante
datos la codificación y ejecución de un programa.
Figura 1.2
Clasificación
general de los
tipos de datos.
3
Los tipos de datos restringen los valores que podemos almacenar dentro de una
variable o constante. Por consiguiente, también limitan las operaciones que podemos
realizar con ellos.
Cada lenguaje de programación tipado trabaja con sus respectivos tipos de datos.
No obstante, todos ellos se clasifican en dos categorías: los primeros conocidos como tipos
de datos simples o primitivos y los tipos de datos compuestos o complejos. De igual forma,
los tipos de datos simples o compuestos presentan algunas subclasificaciones, como se
muestra en la Figura 1.2.
4
1.6. Ejercicios de algoritmos
Precio de un producto
Velocidad de la luz
Salario de un trabajador
Talla de ropa
Total de artículos
vendidos en una tienda
5
2. Conceptos básicos de
pseudocódigo
2.1. Concepto de pseudocódigo
2.2. Sintaxis
Proceso NombreDelPseudocodigo
Definir [variables] como [tipo de dato]
Instrucciones Parámetros;
FinProceso
6
Pseudocódigo DespliegaMensaje
1 //Pseudocódigo que imprime un mensaje
2 Proceso ImprimeMensaje
3 Escribir “¡Hola mundo!”;
4 FinProceso
Pseudocódigo AreaTriangulo
1 //Pseudocódigo que solicita la base y altura de un triángulo para calcular su área
2 Proceso AreaTriangulo
3 Definir base, altura como Entero;
4 Definir area como Real;
5 base ← 0;
6 altura ← 0;
7 area ← 0.0;
8 Escribir “Introduce la base: ";
9 Leer base;
10 Escribir ”Introduce la altura: ";
11 Leer altura;
12 area ← base * altura / 2;
13 Escribir “El área del triángulo es ”, area;
14 FinProceso
7
• Si ... Entonces. Es una pregunta para una estructura de selección, donde
si la respuesta es verdad se realizan unas tareas específicas y cuando es
falso se pueden realizar otras.
• SiNo. Indica el comienzo de las instrucciones a realizar cuando la
respuesta a la pregunta Si...Entonces es falsa.
• FinSi. Indica el término de la estructura condicional Si...Entonces.
Prueba de
Comprobación lógica de un algoritmo (pseudocódigo o programa).
escritorio
Con este tipo de prueba podemos saber 1) si el programa hace lo que debería hacer
y 2) si NO hace lo que debería hacer. La prueba de escritorio permite detectar errores como:
Es muy importante saber elegir los datos apropiados para realizar la prueba de
escritorio. La prueba de escritorio consiste en efectuar un proceso de simulación con el
algoritmo desarrollado (conocer que haría la computadora). Este trabajo se realiza con base
en una tabla, la cual tiene como encabezado las variables que se usan en el pseudocódigo.
Debajo de cada variable se colocan los valores que adoptan al seguir el flujo de ejecución
del algoritmo hasta llegar al final.
8
Las líneas 1, 2 y 3, realizan la inicialización (asignar un valor inicial) de las variables
base, altura y area respectivamente. Para este ejemplo, no es necesario realizar su
inicialización, puesto que a estas variables se les asignará un valor especificado por el usuario
antes de ser utilizadas para realizar una operación.
Pseudocódigo ProductoDescuento
1 //Pseudocódigo que muestra el descuento y total a pagar por una prenda
2 Proceso ProductoDescuento
3 Definir costo, descuento, total como Real;
4 Escribir ”Ingresa el costo de la prenda: “;
5 Leer costo;
6 descuento ← costo * 0.15;
7 total ← costo – descuento;
8 Escribir “El descuento es: “, descuento;
9 Escribir “El total a pagar es: “, total;
10 FinProceso
9
Ejemplo 2. Elabore un pseudocódigo que solicite el nombre, edad y dirección al usuario y
después muestre la siguiente salida en pantalla: “Hola <<nombre>>, tienes <<edad>> años
y vives en <<dirección>>”.
Pseudocódigo DatosPersonales
1 //Pseudocódigo que solicita al usuario sus datos personales
2 Proceso DatosPersonales
3 Definir nombre, direccion como Cadena;
4 Definir edad como Entero;
5 Escribir “Ingresa tu nombre: ";
6 Leer nombre;
7 Escribir “Ingresa tu edad: “;
8 Leer edad;
9 Escribir ”Ingresa tu dirección: “;
10 Leer direccion;
11 Escribir "Hola ", nombre,", tienes ", edad," años y vives en ", direccion;
12 FinProceso
Si comparación_verdadera Entonces
accion1
SiNo
accion2
FinSi
Observa que la sección “si no” es opcional, esto permitirá ejecutar acciones
cuando solamente se cumpla una condición y NO se requiere realizar otra
acción en caso contrario.
10
Ejemplo 3. Realice un pseudocódigo que solicite el nombre y la edad del usuario e indique
si es menor o mayor de edad. El mensaje para mostrar en caso de ser menor de edad es
“Hola <<nombre>>, eres menor de edad”, y en caso contrario “Hola <<nombre>>, eres
mayor de edad”.
Pseudocódigo MenorMayorEdad
1 //Pseudocódigo que determina si una persona es mayor de edad
2 Proceso MenorMayorEdad
3 Definir nombre Como Caracter;
4 Definir edad Como Entero;
5 Escribir “Ingresa tu nombre: “;
6 Leer nombre;
7 Escribir “Ingresa tu edad: ";
8 Leer edad;
9 Si edad < 18 Entonces
10 Escribir “Hola “, nombre, “ eres menor de edad”;
11 SiNo
12 Escribir “Hola “, nombre, “ eres mayor de edad”;
13 FinSi
14 FinProceso
Pseudocódigo NumeroMayor
1 //Pseudocódigo que determina el número mayor de tres números ingresados
2 Proceso NumeroMayor
3 Definir num1, num2, num3, mayor como Real;
4 Escribir “Ingresa primer número: ";
5 Leer num1;
6 Escribir “Ingresa segundo número: “;
7 Leer num2;
8 Escribir “Ingresa tercer número: “;
9 Leer num3;
10 Si num1 > num2 Entonces
11 Si num1 > num3 Entonces
12 mayor ← num1;
13 SiNo
14 mayor ← num3
15 FinSi
11
16 SiNo
17 Si num2 > num3 Entonces
18 mayor ← num2
19 SiNo
20 mayor ← num3
21 FinSi
22 FinSi
23 Escribir “Dados los números: “, num1, “, ”, num2, " y ", num3, " el mayor es el ",
24 mayor
FinProceso
Para que este pseudocódigo muestre un mensaje de salida coherente, los números
proporcionados deben tener diferentes valores.
12
3. Expresiones
Las expresiones son una parte fundamental de la programación ya que sirven para
realizar una o varias operaciones sobre un dato o un conjunto de datos, obteniéndose otro
dato como resultado. Los operadores definen las operaciones que pueden realizarse dentro
de una expresión.
Una expresión está formada por operandos y operadores. Los datos u operandos
pueden ser constantes, variables y llamadas a funciones. Además, dentro de una expresión
pueden encontrarse expresiones internas encerradas entre paréntesis. Por ejemplo, la
expresión algebraica:
𝑢3 + (𝑣 − 5)2 ∙ 𝜋
Cuando se ejecuta una sentencia de código que contiene una expresión, ésta se
evalúa tomando en cuenta el valor o valores asignados previamente a las variables y/o
constantes, los operadores, las funciones utilizadas y la secuencia de la ejecución de las
operaciones correspondientes. El valor resultante de la evaluación de la expresión será de
un determinado tipo de dato. Por ejemplo, de un tipo numérico entero, de un tipo real o de
un tipo lógico o booleano.
Se utilizan para elaborar una expresión o fórmula en una sola línea de código,
utilizando operadores, operandos y unos criterios de ejecución llamados reglas de
precedencia. Se puede dividir el conjunto de todos los operadores en tres grupos:
• Operadores Aritméticos
• Operadores Relacionales
• Operadores Lógicos
13
Figura 3.1
Operaciones y
operadores
aritméticos.
Los operadores aritméticos son del tipo binario; es decir, necesitamos de dos
operandos, uno a la izquierda y otro a la derecha para realizar una operación.
Las expresiones aritméticas se deben escribir en una línea continua, considerando las
reglas de precedencia de operadores mostradas en la Figura 3.2. Estas reglas son guías de
acción que permiten calcular las expresiones en el orden correcto y son:
14
Figura 3.2
Precedencia de
operadores
aritméticos.
Son operadores binarios en los que los operandos son enteros, reales o de cadena.
Todos ellos dan lugar a resultados de tipo booleano (falso o verdadero). Los operadores
relacionales se resumen en la Figura 3.3.
Figura 3.3
Operadores
relacionales.
No todos los operadores relacionales están al mismo nivel de precedencia entre ellos.
Los operadores <, <=, >, >=, tienen mayor precedencia que los operadores de == y !=. En
la Figura 3.4 se muestra el nivel de precedencia de los operadores relacionales.
Figura 3.4
Precedencia de
operadores
relacionales.
15
En las expresiones, se pueden omitir el uso de paréntesis y proceder a resolverla de
acuerdo con las reglas de precedencia. Por ejemplo, considere evaluar la expresión:
Figura 3.5
Evaluación de la
expresión.
Figura 3.6
Operadores
lógicos.
En PSeInt los operadores lógicos son Y, O y NO. Para efectos de hacer las
expresiones más legibles, en este manual se usará AND, OR y NOT para
referirse a Y, O y NO correspondientemente.
Estos operadores son utilizados para soportar las operaciones básicas lógicas AND
(Y), OR (O) y NOT (NO) con datos verdaderos y falsos, de acuerdo con la Figura 3.7, Figura
3.8 y Figura 3.9.
Figura 3.7
Tabla de verdad
AND (Y).
16
Figura 3.8
Tabla de verdad
OR (O).
Figura 3.9
Tabla de verdad
NOT (NO).
Figura 3.10
Precedencia de
operadores
lógicos.
Figura 3.11
Precedencia de
los tipos de
operadores:
aritméticos,
relacionales y
lógicos.
17
3.2. Ejemplos del uso de operadores
Los siguientes ejemplos evalúan expresiones que resaltan la operación que se realiza
de acuerdo con el orden de precedencia.
Ejemplo 2. Dada la expresión: z ← 4 <= 2 == 8 > 10, obtén el valor que genera
como resultado.
18
3.3. Ejercicios de expresiones
a. x ← 4 * 2 / 5;
b. x ← 3 + 5 * (10 - (2 + 4));
c. x ← 3.5 + 6.09 - 14.0 / 40;
b. w ← 4, r← 3, u ← 5, z ← 2;
x ← (u + w) * z / w == u * r - 4 / 2 ;
x ← NOT(( u * u + w - u ) * z / w >= u * r + 12 / 3) ;
c. w ← 9, r ← 2, u ← 5, z ← 8;
x ← w >= r == u > 6 AND NOT(z != r AND z > 20);
x ← r <= w == (u*3) > 12 AND z * r * 2 != r AND z < 11;
19
4. Introducción al desarrollo de
diagramas de flujo
Es una representación gráfica mediante símbolos especiales, de los
Diagrama de
pasos o procedimientos de manera secuencial y lógica que se deben
flujo
realizar para solucionar un problema.
Los diagramas de flujo son una herramienta que permite representar visualmente
qué operaciones se requieren y en qué secuencia se deben efectuar para solucionar un
problema dado. Desempeñan un papel vital en la programación de un problema, puesto
que facilitan la comprensión de problemas complejos y sobre todo aquellos en que sus
procesos son muy largos; generalmente, los diagramas de flujo se dibujan antes de
comenzar a programar el código fuente, que se ingresará posteriormente a la computadora.
Símbolo Significado
Inicio / Final
Se utiliza para indicar el inicio y el final de un
diagrama. Del inicio sólo puede salir una línea
de flujo y al final sólo una línea debe llegar.
Definición de datos
Representa el material o la información que
entra o sale (variables y constantes) del sistema.
Entrada Manual
Corresponde a la entrada de datos por teclado.
Indica que la computadora se queda a la espera
de que el usuario ingrese un dato que se
guardara en una variable o constante
Operación
Corresponde al procesamiento de información.
Indica cualquier operación o acción que se debe
realizar.
20
Símbolo Significado
Decisión
Indica la comparación de información y
dependiendo del resultado lógico (falso
o verdadero) se tomará un camino del
diagrama u otro.
Decisión múltiple
Indica la comparación de información,
dependiendo del resultado o caso se
tomará solo un camino del diagrama.
Imprimir en pantalla
Se utiliza para representar la salida de
datos en pantalla.
Flujo de datos
Indica el sentido de la ejecución de las
operaciones
Tabla 4.1
Símbolos
utilizados en la
construcción de
diagramas de
flujo.
21
4.1. Ejemplos del uso de diagramas de flujo
22
Ejemplo 2. Se desea encontrar la solución para determinar el volumen de un cubo
de dimensiones A, B y C, utilizando un diagrama de flujo.
C
B
23
Ejemplo 3. Se desea saber si una persona es mayor de edad. Cree el diagrama de
flujo correspondiente.
Se declaran las
variables a
utilizar.
Se imprime en pantalla el
mensaje para ingresar la
edad y se lee la entrada. Si es verdadero se
imprime “Eres mayor
de edad”.
24
4.2. Ejercicios de diagramas de flujo
25
5. Estructuras Selectivas
Las estructuras selectivas sirven para representar la toma de decisiones. En este tipo
de estructura se evalúa una condición y, en función del resultado, se realiza la ejecución de
uno o varios bloques de código. Existen dos tipos básicos de estructuras condicionales:
simples y múltiples.
Sintaxis:
Si <expresion_logica> Entonces
// acciones_por_verdadero
FinSi
Existe una variante para la estructura, en la cual existen dos opciones posibles, pero
únicamente se realiza una de ellas. Si la condición evaluada es verdadera, se ejecutará la
instrucción o instrucciones para la condición verdadera y si la condición es falsa, se
ejecutarán las instrucciones para la condición falsa.
Sintaxis:
Si <expresion_logica> Entonces
// instrucciones_por_verdadero
SiNo
// instrucciones_por_falso
FinSi
26
Proceso Supermercado
Definir total, subtotal, descuento Como Real;
Escribir "Introduce la cantidad gastada: ";
Leer subtotal;
Si subtotal > 1000 Entonces
descuento <- subtotal * 0.10;
total <- subtotal - descuento;
SiNo
total <- subtotal;
FinSi
Escribir "El total a pagar es: ", total;
FinProceso
27
Ejemplo 2. Se requiere un sistema que reciba tres calificaciones parciales de un
alumno y posteriormente genere su promedio. Se debe tener en cuenta que, si el promedio
es menor a 8, se le indicará que está reprobado. En caso contrario, el mensaje será que está
aprobado.
Proceso PromedioAlumno
Definir promedio, cal1, cal2, cal3 Como Real;
Escribir “Dame la calificación del primer parcial: ”;
Leer cal1;
Escribir “Dame la calificación del segundo parcial: ”;
Leer cal2;
Escribir “Dame la calificación del tercer parcial: ”;
Leer cal3;
promedio <- (cal1 + cal2 + cal3) / 3;
Si promedio < 8 Entonces
Escribir “Estás reprobado”;
SiNo
Escribir “Estás aprobado”;
FinSi
FinProceso
28
5.2. Estructuras Selectivas Múltiples
Las estructuras selectivas múltiples son aquellas en las que únicamente se permite
elegir una de n opciones posibles. Al seleccionar una opción, se ejecutarán las instrucciones
que se encuentren dentro de ella.
Sintaxis:
29
Proceso MenuPerimetros
Definir perimetro, lado Como Real;
Definir opcion Como Entero;
Escribir "Menú de perímetros, selecciona una opción:";
Escribir "1.- Cuadrado, 2.- Triángulo, 3.- Círculo";
Leer opcion;
Segun opcion Hacer
1:
Escribir "Dame el valor de un lado del cuadrado: ";
Leer lado;
perimetro <- lado * 4;
2:
Escribir "Dame el valor de un lado del triángulo: ";
Leer lado;
perimetro <- lado * 3;
3:
Escribir "Dame el valor del diámetro del círculo: ";
Leer lado;
perimetro <- lado * (2* 3.1416);
De Otro Modo:
Escribir "Opción no válida";
FinSegun
Escribir "El perímetro es: ", perimetro;
FinProceso
30
31
Ejemplo 2. Una tienda de videojuegos realiza una tómbola solo con aquellos clientes
que realizaron una compra superior a $2000 pesos. De esta tómbola se debe obtener una
bolita que tiene un número grabado en ella. Dependiendo del número que se tome, los
premios otorgados son:
Proceso TiendaVideoJuegos
Definir compra Como Real;
Definir noBolita Como Entero;
Escribir "Ingresa tu compra ";
Leer compra;
Si compra > 2000 Entonces
Escribir "Ingresa el número de tu bolita";
Leer noBolita;
Segun noBolita Hacer
1:
Escribir "Ganaste: Gorra de Mario Bros";
2:
Escribir "Ganaste: Termo de Halo 3";
3:
Escribir "Ganaste: Juego de FIFA 20";
4:
Escribir "Ganaste: Funko pop : Groot";
De Otro Modo:
Escribir "Opción no valida";
FinSegun
SiNo
Escribir "Lo siento no alcanza tu compra";
FinSi
FinProceso
32
33
5.3. Ejercicios de estructuras selectivas
34
6. Estructura repetitiva Mientras
La estructura repetitiva Mientras (o hacer mientras) es una estructura que indica que
un conjunto de instrucciones se debe repetir mientras que la expresión revisada sea
verdadera. Este tipo de estructura necesita evaluar una expresión booleana, mientras ésta
sea cierta, se repetirá el bloque de código que tiene de manera interna. Debido a su
estructura, es muy posible que nunca se ejecute el ciclo debido a varias circunstancias:
Sintaxis:
Proceso CalcularPromedio
Definir promedio, calificacion Como Real;
Definir continuar Como Entero;
promedio <- 0;
continuar <- 1;
Mientras contador <= 5 Hacer
Escribir "Introduce calificación: ";
Leer calificacion;
promedio <- promedio + calificacion;
continuar <- continuar + 1;
FinMientras
Escribir "Tu promedio es: ", (promedio/5);
FinProceso
35
36
Ejemplo 2. Realice un programa que solicite nombres de personas hasta que se
ingrese el nombre Bruce Willis. Cuando termine la ejecución del programa se mostrará un
listado con 3 películas del actor.
Proceso NombreActor
Definir nombre Como Caracter;
Mientras nombre <> "Bruce Willis" Hacer
Escribir "Ingresa un nombre";
Leer nombre;
FinMientras
Escribir "Armageddon, Duro de matar, Sin City";
FinProceso
37
6.2. Ejercicios
38
7. Ejercicios del curso
E.1 Realice un pseudocódigo y diagrama de flujo para leer las
calificaciones de 30 alumnos y determine el número de aprobados y
reprobados, sabiendo que la calificación mínima aprobatoria es de
80. Realice el pseudocódigo y diagrama de flujo correspondientes al
algoritmo.
E.2 Realice el diagrama de flujo y pseudocódigo para representar el
algoritmo encargado de realizar el corte de caja en una tienda
departamental, donde se conoce el número de billetes (20, 50, 100,
200, 500 y 1000) y monedas (1, 2, 5, 10).
E.3 Los directivos de una primaria requieren determinar cuál es la edad
promedio de cada uno de los 10 salones (donde cada salón contiene
20 estudiantes) y de toda la escuela. Realice un algoritmo que
determine estos promedios y represente la solución mediante
pseudocódigo y un diagrama de flujo.
E.4 Realice un algoritmo que determine el sueldo semanal de 150
trabajadores de una empresa privada, considerando que se les
descuenta 5% de su sueldo si ganan entre 0 y 150 pesos. Se les
descuenta 7% si ganan más de 150 pero menos de 300, y 9% si ganan
más de 300 pero menos de 450. Los datos son horas trabajadas,
sueldo por hora y nombre de cada trabajador. Represéntelo mediante
pseudocódigo y un diagrama de flujo.
E.5 El gerente de una compañía automotriz desea determinar el impuesto
que va a pagar por cada uno de los 100 automóviles que posee en su
resguardo, además del total que va a pagar por cada categoría y por
todos los vehículos, basándose en la siguiente clasificación:
39
Bibliografía
Joyanes Aguilar, L. (2008). Fundamentos de programación: algoritmos, estructura de datos y
objetos. Madrid: McGrawHill.
López García, J. (2009). Algoritmos y programación. eduteka.org.
40