Universidad Nacional Jorge Basadre Grohmann
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecánica
UNIDAD I: ALGORTIMOS Y TÉCNICAS DE PROGRAMACIÓN
2. Lenguajes algorítmicos
Es una serie de símbolos y reglas que se utilizan para describir de manera explícita un
proceso, estos lenguajes algorítmicos pueden ser:
a. No Gráficos: Representa en forma descriptiva las operaciones que debe realizar un
algoritmo (pseudocódigo).
Ejemplo:
Calcular e imprimir el área de un triángulo a partir de su base y altura.
Pseudocódigo
Inicio
Definir base, altura, Area como real
Leer base, altura
Area=(base * altura)/2
Escribir Area
Fin
b. Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo
(diagrama de flujo y diagrama Nassi shneiderman).
Un diagrama de flujo es la representación gráfica de un algoritmo. También se
puede decir que es la representación detallada en forma gráfica de cómo deben
realizarse los pasos en la computadora para producir resultados. Esta representación
gráfica se da cuando varios símbolos (que indican diferentes procesos en la
computadora), se relacionan entre sí mediante líneas que indican el orden en que se
deben ejecutar los procesos. Los símbolos utilizados han sido normalizados por el
Instituto Norteamericano de Normalización (ANSI).
Ing. Melina Alférez García Asignatura: Fundamentos de Programación
pág. 1
Universidad Nacional Jorge Basadre Grohmann
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecánica
Ing. Melina Alférez García Asignatura: Fundamentos de Programación
pág. 2
Universidad Nacional Jorge Basadre Grohmann
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecánica
Ejemplo:
Calcular e imprimir el área de un triángulo a partir de su base y altura.
Diagrama de flujo
Inicio
Leer
base, altura
Area=(base*altura)/2
Escribir
Area
Fin
Recomendaciones para el diseño de Diagramas de Flujo
- Se deben se usar solamente líneas de flujos horizontales y/o verticales. Se debe
evitar el cruce de líneas utilizando los conectores.
- Se deben usar conectores solo cuando sea necesario. No deben quedar líneas
de flujo sin conectar.
- Se deben trazar los símbolos de manera que se puedan leer de arriba hacia
abajo y de izquierda a derecha. Todo texto escrito dentro de un símbolo deberá
ser escrito claramente, evitando el uso de muchas palabras.
Un diagrama Nassi-Shneiderman (también conocido como diagrama NS o diagrama
de Chapin) es una forma de representar gráficamente un algoritmo o proceso de
programación de manera clara y estructurada. Se utiliza para ilustrar la lógica de
control de un programa.
Ing. Melina Alférez García Asignatura: Fundamentos de Programación
pág. 3
Universidad Nacional Jorge Basadre Grohmann
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecánica
3. Estructura general de un programa
3.1 Programa
Un programa en computadora es un conjunto de instrucciones -órdenes dadas a la
máquina – que producirá la ejecución de una determinada tarea. En esencia, un
programa es un medio para conseguir un fin.
El procso de programación es, por consiguiente, un proceso de solución de
problemas, el desarrollo de un programa requiere las siguientes fases:
- Definición y análisis del problema
- Diseño de algoritmos:
o Pseudocódigo
o Diagrama de flujo
o Diagrama N-S
- Codificación del programa
- Depuración y verificación del programa
- Documentación
- Mantenimiento.
3.2 Partes constitutivas de un programa
El programador debe establecer el conjunto de especificaciones que debe contener
el programa: entrada, salida y algoritmos de resolución (proceso), que incluirán las
técnicas para obtener las salidas a partir de las entradas. El algoritmo de resolución,
en realidad, es el conjunto de códigos que transforman las entradas del programa
(datos) en salidas (resultados).
El programador debe establecer de dónde provienen las entradas al programa. Las
entradas, en cualquier caso, procederán de un dispositivo de entrada —teclado,
disco...—. El proceso de introducir la información de entrada —datos— en la
memoria de la computadora se denomina entrada de datos, operación de lectura o
acción de leer. Las salidas de datos se deben presentar en dispositivos periféricos de
Ing. Melina Alférez García Asignatura: Fundamentos de Programación
pág. 4
Universidad Nacional Jorge Basadre Grohmann
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecánica
salida: pantalla, impresoras, discos, etc. La operación de salida de datos se conoce
también como escritura o acción de escribir.
3.3 Instrucciones y tipos de instrucciones
El proceso de diseño del algoritmo o posteriormente de codificación del programa
consiste en definir las acciones o instrucciones que resolverán el problema. Las
acciones o instrucciones se deben escribir y posteriormente almacenar en memoria
en el mismo orden en que han de ejecutarse, es decir, en secuencia.
Un programa puede ser lineal o no lineal. Un programa es lineal si las instrucciones
se ejecutan secuencialmente, sin bifurcaciones, decisión ni comparaciones.
En el caso del algoritmo las instrucciones se suelen conocer como acciones, y se
tendría:
Un programa es no lineal cuando se interrumpe la secuencia mediante instrucciones
de bifurcación.
Ing. Melina Alférez García Asignatura: Fundamentos de Programación
pág. 5
Universidad Nacional Jorge Basadre Grohmann
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecánica
3.3.1 Tipos de instrucciones
Las instrucciones disponibles en un lenguaje de programación dependen del
tipo de lenguaje. Por ello, en este apartado estudiaremos las instrucciones —
acciones— básicas que se pueden implementar de modo general en un
algoritmo y que esencialmente soportan todos los lenguajes. Dicho de otro
modo, las instrucciones básicas son independientes del lenguaje.
- Instrucciones de inicio/fin
- Instrucciones de asignación
- Instrucciones de lectura
- Instrucciones de escritura
- Instrucciones de bifurcación.
3.3.2 Instrucciones de asignación
Ejemplo 01:
A ← 80 la variable A toma el valor de 80.
Ejemplo 02:
¿Cuál es el significado de N ← N + 5 si N tiene el valor actual de 2?
N←N+5
Se realiza el cálculo de la expresión N + 5 y su resultado 2 + 5 = 7 se asigna a la
Ing. Melina Alférez García Asignatura: Fundamentos de Programación
pág. 6
Universidad Nacional Jorge Basadre Grohmann
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecánica
variable situada a la izquierda, es decir, N tomará un nuevo valor 7.
3.3.3 Instrucciones de lectura de datos (entrada)
Esta instrucción lee datos de un dispositivo de entrada. ¿Cuál será el significado
de las instrucciones siguientes?
a) Leer NÚMERO, HORAS, TASA
Leer del terminal los valores NÚMERO, HORAS y TASAS, archivándolos en la
memoria; si los tres números se teclean en respuesta a la instrucción son
12325, 32, 1200, significaría que se han asignado a las variables esos valores
y equivaldría a la ejecución de las instrucciones.
NÚMERO ← 12325
HORAS ← 32
TASA ← 1200
b) Leer A, B, C
Si se leen del terminal 100, 200, 300, se asignarían a las variables los
siguientes valores:
A = 100
B = 200
C = 300
3.3.4 Instrucciones de escritura de resultados (salida)
Estas instrucciones se escriben en un dispositivo de salida. Explicar el resultado
de la ejecución de las siguientes instrucciones:
A ← 100
B ← 200
C ← 300
Escribir (A, B, C)
Se visualizarían en la pantalla o imprimirían en la impresora los valores 100, 200
Ing. Melina Alférez García Asignatura: Fundamentos de Programación
pág. 7
Universidad Nacional Jorge Basadre Grohmann
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecánica
y 300 que contienen las variables A, B y C.
3.3.5 Instrucciones de bifurcación
El desarrollo lineal de un programa se interrumpe cuando se ejecuta una
bifurcación. Las bifurcaciones pueden ser, según el punto del programa a donde
se bifurca, hacia adelante o hacia atrás.
Las bifurcaciones en el flujo de un programa se realizarán de modo condicional
en función del resultado de la evaluación de la condición.
Bifurcación incondicional: la bifurcación se realiza siempre que el flujo del
programa pase por la instrucción sin necesidad del cumplimiento de ninguna
condición.
Ing. Melina Alférez García Asignatura: Fundamentos de Programación
pág. 8
Universidad Nacional Jorge Basadre Grohmann
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecánica
Fase de la ejecución de un
programa
Bifurcación condicional: la bifurcación depende del cumplimiento de una
determinada condición. Si se cumple la condición, el flujo sigue ejecutando la
acción A. Si no se cumple, se ejecuta la acción B
3.3.6 Elementos básicos de un programa
En programación se debe separar la diferencia entre el diseño del algoritmo y
su implementación en un lenguaje específico. Por ello, se debe distinguir
claramente entre los conceptos de programación y el medio en que ellos se
implementan en un lenguaje específico. Sin embargo, una vez que se
Ing. Melina Alférez García Asignatura: Fundamentos de Programación
pág. 9
Universidad Nacional Jorge Basadre Grohmann
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecánica
comprendan cómo utilizar los conceptos de programación y, la enseñanza de
un nuevo lenguaje es relativamente fácil. Los lenguajes de programación —
como los restantes lenguajes— tienen elementos básicos que se utilizan como
bloques constructivos, así como reglas para las que esos elementos se
combinan. Estas reglas se denominan sintaxis del lenguaje. Solamente las
instrucciones sintácticamente correctas pueden ser interpretadas por la
computadora y los programas que contengan errores de sintaxis son
rechazados por la máquina. Los elementos básicos constitutivos de un
programa o algoritmo son:
- Palabras reservadas (inicio, fin, si-entonces..., etc.),
- Identificadores (nombres de variables esencialmente, procedimientos,
funciones, nombre del programa, etc.),
- Caracteres especiales (coma, apóstrofo, etc.),
- Constantes,
- Variables,
- Expresiones,
- Instrucciones.
Además de estos elementos básicos, existen otros elementos que forman parte
de los programas, cuya comprensión y funcionamiento será vital para el
correcto diseño de un algoritmo y naturalmente la codificación del programa.
Estos elementos son:
- Bucles,
- Contadores,
- Acumuladores,
- Interruptores,
- Estructuras:
o 1. Secuenciales,
o 2. Selectivas o condicionales,
o 3. Repetitivas.
Ing. Melina Alférez García Asignatura: Fundamentos de Programación
pág. 10
Universidad Nacional Jorge Basadre Grohmann
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecánica
El amplio conocimiento de todos los elementos de programación y el modo de
su integración en los programas constituyen las técnicas de programación que
todo buen programador debe conocer.
En la siguiente tabla se detalla la estructura básica de un programa informático:
4. Estructura de control
Llamamos estructuras de control del flujo de las acciones al conjunto de reglas que
permiten controlar el flujo de las acciones de un algoritmo o programa. Las mismas
pueden clasificarse en secuenciales, condicionales y repetitivas.
4.1 Estructura secuencial
Una estructura secuencial es aquella en la que una acción (instrucción) sigue a otra
en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada
de la siguiente y así sucesivamente hasta el final del proceso. La estructura
secuencial tiene una entrada y una salida.
Ing. Melina Alférez García Asignatura: Fundamentos de Programación
pág. 11
Universidad Nacional Jorge Basadre Grohmann
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecánica
Estructura secuencial Diagrama Nassi-Shneiderman /N-S Pseudocódigo
Ejemplo:
Cálculo de la suma y producto de dos números
Pseudocódigo
Inicio
Leer A,B
S<- A+B
P<-A*B
Escribir S,P
Fin
Diagrama de flujo
Ing. Melina Alférez García Asignatura: Fundamentos de Programación
pág. 12
Universidad Nacional Jorge Basadre Grohmann
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecánica
4.2 Estructura condicional o selectiva
Las estructuras de decisión o selección comparan una variable contra otro(s)
valor(es), para que, de acuerdo al resultado de esta comparación, se siga un curso
de Acción dentro del programa. Cabe mencionar que la Comparación se puede
hacer contra otra variable o contra una constante, según sea necesario. Existen
cuatro tipos básicos: Simples, dobles, anidadas y múltiples.
4.2.1 Estructura condicional simple (SI - ENTONCES)
Las estructuras condicionales simples permiten la toma de decisiones dentro
de un programa. Dentro de una estructura selectiva, se incluye una
expresión lógica (que devuelve un valor de verdad) que será la condición que
se evalúa para definir la ruta que se seguirá dentro del programa. Si la
expresión lógica (condición) es verdadera, entonces, se ejecutarán todas las
sentencias dentro del bloque de la estructura condicional simple. Si la
expresión lógica es falsa, no se ejecutará ninguna de estas sentencias.
a. Diagrama de flujo
b. Diagrama Nassi-Shneiderman
c. Pseudocódigo
Ing. Melina Alférez García Asignatura: Fundamentos de Programación
pág. 13
Universidad Nacional Jorge Basadre Grohmann
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecánica
4.2.2 Estructura condicional doble (SI – ENTONCES - SINO)
Otra forma de la estructura condicional, es la estructura selectiva doble, en
la que se incluye una cláusula opcional sino para establecer un grupo de
acciones que se ejecutarán en caso de que la condición sea falsa.
a. Diagrama de flujo
b. Diagrama Nassi Shneiderman
c. Pseudocódigo
4.2.3 Estructura condicional anidada
Las estructuras condicionales pueden anidarse, lo que significa que una
estructura selectiva puede contener a su vez otra estructura selectiva,
dentro de cualquiera de las secciones de una estructura condicional, sea
simple o doble, puede incluirse otra estructura condicional que a su vez
puede ser simple o doble y puede contener también dentro de ella, otras
estructuras condicionales o selectivas.
Ing. Melina Alférez García Asignatura: Fundamentos de Programación
pág. 14
Universidad Nacional Jorge Basadre Grohmann
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecánica
a. Diagrama de flujo
b. Diagrama Nassi Shneiderman
c. Pseudocódigo
Ing. Melina Alférez García Asignatura: Fundamentos de Programación
pág. 15
Universidad Nacional Jorge Basadre Grohmann
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecánica
4.2.4 Estructura múltiple
La estructura de selección múltiple segun_sea o casos, permite elegir una
entre varias rutas posibles, evaluando para ello una expresión que puede
tomar n valores distintos, 1, 2, 3, 4, ... , n.
a. Diagrama de flujo
b. Diagrama Nassi Shneiderman
c. Pseudocódigo
Ing. Melina Alférez García Asignatura: Fundamentos de Programación
pág. 16