Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Fundamentos de Programación
FUNDAMENTOS BÁSICOS DE ALGORITMOS Una computadora no tiene capacidad para solucionar problemas más que cuando se le proporcionan los pasos sucesivos a realizar, para ello elaboramos un algoritmo. ¿Qué es un algoritmo? Es un método para resolver un problema mediante una secuencia de instrucciones, cada una de las cuales especifica las operaciones que debe realizar la computadora. Características de un algoritmo Las características fundamentales que debe cumplir todo algoritmo son: Debe ser preciso e indicar el orden de realización de cada paso. Debe estar definido. Si se sigue un algoritmo dos o más veces, con los mismos valores iniciales se debe obtener el mismo resultado. Debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento, es decir, debe tener un número finito de pasos. También hay que tener en cuenta en un algoritmo: El algoritmo sirve de base para generar un programa, pero no es el programa en sí. El algoritmo no es inteligible directamente por el ordenador. El mismo algoritmo puede ser implementado de forma distinta en diversos programas, es decir, dos programadores pueden obtener distintos códigos fuente a partir del mismo algoritmo. El proceso de un algoritmo La definición de un algoritmo debe describir tres partes: Entrada, proceso y salida. Entrada
Proceso
Salida
La información proporcionada al algoritmo constituye su entrada, el procedimiento para la solución del problema constituye su proceso y la información producida por el algoritmo constituye su salida. A continuación ejemplos para un mejor entendimiento: Ejemplo 01: Leer la base y altura de un paralelogramo. Calcular su área. Datos de Entrada Proceso Datos de Salida
---> ---> --->
base y altura área = base x altura El área del paralelogramo
1
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Fundamentos de Programación
Ejemplo 02: Leer el radio de una circunferencia. Calcular su área y longitud. Datos de Entrada Proceso Datos de Salida
---> ---> --->
Radio de una circunferencia. Área = ¶r2 y Longitud = 2¶r El área y longitud de una circunferencia.
Verificación del algoritmo o prueba de escritorio Una vez escrito el algoritmo es necesario asegurarse de que éste realiza las tareas para las que ha sido diseñado, y que por lo tanto produce el resultado correcto y esperado. El modo más normal de comprobar un algoritmo es mediante su ejecución manual usando datos significativos que abarquen todo el posible rango de valores y anotando en una hoja de papel los valores que van tomando en las diferentes fases, los datos de entrada o auxiliares y, por último los valores de los resultados. Este proceso se conoce como prueba del algoritmo o prueba de escritorio. Haremos una prueba de escritorio de los dos problemas anteriores: Elementos
Ejercicio 01
Ejercicio 02
Datos de entrada
● ●
r (radio) = 3 ¶ (pi) = 3.14 (Solo tomaremos hasta dos decimales)
● ●
Base = 5 Altura = 3
Proceso
● ●
A = ¶ r2 L = 2¶r
●
A = base x altura A=5x3
Datos de salida
● ●
A = 28.26 L = 18.84
●
A = 15
= 3.14 x (3)2 = 2 x 3.14 x 3
Elementos básicos de un algoritmo Los elementos básicos que forman parte esencial o fundamental de un algoritmo o programa son:
Palabras reservadas. Identificadores. Variables. Constantes. Instrucciones.
Palabras reservadas Palabras utilizadas por los algoritmos o lenguajes de programación para representar sentencias, órdenes, etc. Ejemplos: ● inicio. ● Fin. ● hacer.
● ● ●
si–entonces-sino. mientras. desde.
2
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Fundamentos de Programación
Identificadores Son nombres usados para identificar a los objetos y demás elementos de un programa: variables, constantes, operadores, funciones, procedimientos, etc. Existen reglas para construir identificadores validos y son los siguientes: El primer carácter debe ser una letra o el carácter subrayado bajo. Los caracteres siguientes pueden ser letras, números o símbolos de subrayado bajo. Las letras mayúsculas y las letras minúsculas se tratan como distintas. Así suma, Suma y SUMA son tres identificadores distintos. ● No pueden ser iguales a ninguna palabra reservada. ● ● ●
Variables Una variable es un objeto a quien se le asigna un valor y cuyo valor puede cambiar durante el desarrollo del algoritmo o ejecución del programa. Si una variable está compuesto por dos palabras, éstas pueden ser juntas o unidos por el subrayado bajo, guión bajo o subguión ‘ _ ’ . Nota: No se deben utilizar como nombres de variables (identificadores) palabras reservadas del algoritmo o del lenguaje de programación. Ejemplos: ● Nota ● Nombre ● Apellidos ● nota_oral
● ● ● ●
Apellido_paterno apellido_materno Nota1 Contador1
● ● ● ●
precios hora prom pi
Los nombres de las variables elegidas deben ser significativos y tener relación con el objeto que representan, como pueden ser los casos siguientes: nombre precios notas
para representar nombres de personas. para representar los precios de diferentes artículos. para representar las notas de una clase.
A continuación se muestra como ejemplos los nombres de variables no adecuados porque tienen otro significado a lo expresado: azucar pan
para representar la nota de una clase. para representar la edad de una persona.
Constantes Una constante toma o recibe un valor que no cambia durante el desarrollo del algoritmo o la ejecución del programa. Instrucciones Las instrucciones especifican las operaciones o acciones que deben ser realizadas o ejecutadas.
3
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Fundamentos de Programación
Expresiones Son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales, que cumplen determinadas reglas. Ejemplos:
a+(b*3)/c 5 * a * b / ( c + d)
1. EXPRESIONES ARITMÉTICAS Son análogas a las formulas matemáticas. Las variables y constantes son numéricas (real o entera) y las operaciones son las aritméticas.
Significado Suma Resta Multiplicación División real División entera Exponenciación Modulo (resto o residuo)
Operadores Aritméticos Operador Algebraico Operador Algoritmico + + x * / / / div -,**,^ mod
Tabla 1: Operadores Aritméticos
A continuación se mostrarán las equivalencias que debe conocer entre expresiones algebraicas y expresiones aritméticas. Ejemplos: Representación Algebraica 12 + 19 a–b 5x7 6 +c 4 37
Representación Algorítmica 12 + 19 a-b 5*7 (6 / 4) + c 3^7
Reglas de prioridad Las expresiones que tienen dos o más operandos en una expresión se evalúan, en general, según el siguiente orden. 1. Las operaciones que están encerradas entre paréntesis se evalúan primero. Si existen diferentes paréntesis anidados (internos unos a otros), las expresiones más internas se evalúan primero. 2. Las operaciones aritméticas dentro de una expresión suelen seguir el siguiente orden de prioridad. a. b. c. d.
Operador exponencial (^,↑ o bien **) Operadores *, /, \ Operadores div y mod Operadores + , 4
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Fundamentos de Programación
Nota: En caso coincidir varios operadores de igual prioridad en una expresión o subexpresión encerrada entre paréntesis, el orden de prioridad en este caso es de izquierda a derecha. Ejemplo 1. ¿Cuál es el resultado de las siguientes expresiones? a) 15 + 9 * 2 – 6 * 2 ^ 2 b) -8 / 4 * 6 + 3 ^ 2 * (10 / 5) Nota: Hacer uso de un tiempo de 5 minutos para resolver el inciso a) y b) del ejemplo 1. Terminado de hacerlo revizar sus respuestas con la solución que a continuación se presenta. Solución: a)
15 + 9 * 2 – 6 * 2 ^ 2
b) -8 / 4 * 6 + 3 ^ 2 * (10 / 5)
15 + 9 * 2 – 6 * 4
-8 / 4 * 6 + 3 ^ 2 * 2
15 + 18
-
24
=9
-8 / 4 * 6 + 9 -2 * 6 +
* 2 18 = 6
Ejemplo 2. Convertir en expresiones aritméticas algorítmicas las siguientes expresiones: a) b) c) d) e)
7(a+b) 8x + 9y + 3z a2 + 2a – 3 x2 – y2 p+q r+s t f) a (cd) b Nota: Hacer uso de un tiempo de 5 minutos para resolver los incisos del a) al f) del ejemplo 2. Terminado de hacerlo revizar sus respuestas con la solución que a continuación se presenta. Solución: a) b) c) d) e)
7(a+b) 8x + 9y + 3z a2 + 2a – 3 x2 – y2 p+q r+s t f) a (cd) b
7 * (a + b) 8*x+9*y+3*z a^2+2*a-3 x^2–y^2 (p + q) / (r + s / t) a/b*c*d
División entera (div) Es la acción de dividir dos números enteros uno viene hacer el dividendo y el otro el divisor, el resultado del operador div es el valor del cociente. En esta división no es de mucha importancia el residuo. Recuerden que para utilizar el div solo se aplica a divisiones de números enteros, veamos 5
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Fundamentos de Programación
el siguiente ejemplo: Ejemplo: 9 div 2 = 4 Dividendo
Residuo Ejemplos: a. 15 div 6 = 2 d. 7 div 9 = 0
9 8 1
Divisor
2
4
b. 14 div 2 = 7 e. 3 div 3 = 1
Cociente c. 0 div 3 = 0 f. 2 div 5 = 0
Reglas de la división real y entera: Los operandos pueden ser enteros(E) o reales(R). Entero Real
División real E/E=R E/R=R R/E=R R/R=R
resultados
División entera E div E = E E div R = No Válido R div E = No Válido R div R = No Válido
operandos Residuo (mod) El operador mod se utiliza para obtener el residuo o resto de una división entera. Igual que para el operador div, para poder hallar el residuo de una división utilizando el operador mod, los operandos deben ser exclusivamente enteros. Reglas del residuo: Residuo E mod E = E E mod R = No Válido R mod E = No Válido R mod R = No Válido Ejemplos: a. 15 mod 6 = 3 d. 7 mod 9 = 7
b. 14 mod 2 = 0 e. 3 mod 3 = 0
c. 19 mod 3 = 1 f. 2 mod 5 = 2
2. EXPRESIONES LÓGICAS Una expresión lógica es una expresión que solo puede tomar dos valores: verdad y falso. Las expresiones lógicas se forman combinando constantes lógicas, variables lógicas y otras expresiones lógicas, utilizando los operadores relacionales (de relación o comparación) y los operadores lógicos not, and y or. Operadores de relación Permiten realizar comparaciones de valores de tipo numérico o carácter. Los operadores de relación sirven para expresar las condiciones en los algoritmos. El resultado de las operaciones de comparación será verdadero o falso.
6
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Fundamentos de Programación
Operadores de Relación Significado Operador Algebraico Operador Algoritmico Menor que > < Mayor que < > Igual que = = Menor o igual que ≤ <= Mayor o igual que ≥ >= Distinto de o ≠ <> Diferente de Tabla 2: Operadores de Relación
Ejemplos: Si P = 7 * 2 y Q = 3 ^ 2 Expresión Lógica P>Q P<Q P <> Q (P-3) = (Q+2) 15 < 14 4+6=9
Resultado Verdad Falso Verdad Verdad Falso Falso
Para realizar comparaciones de datos tipo carácter, se requiere una secuencia de ordenación de los caracteres, similar al orden creciente o decreciente. Esta ordenación suele ser alfabética, tanto mayúsculas como minúsculas, y numérica, considerándolas de modo independiente. A continuación se mostrarán los caracteres situados en el código ASCII en orden creciente: Los caracteres que representan a los digitos. ’0’ <’1’ , ’1’ < ’2’ , ………………, ’8’ < ’9’ Las letras mayúsculas A a Z siguen el orden alfabético. ’A’ < ’B’ , ’B’ < ’C’ , ………………..., ’Y’ < ’Z’ Las letras minúsculas, siguen el mismo criterio alfabético. ’a’ < ’b’ , ’b’ < ’c’ , ………………….., ’y’ < ’z’ Nota Para tener completa seguridad en la ordenación de los caracteres, será preciso consultar el código de caracteres de su computadora, normalmente el ASCII (American Standar Code for Information Interchange) o bien el EBCDIC (Extended Binary-Coded Decimal Interchange Code) utilizado en computadras IBM diferentes a los modelos PC y PS/2. Operadores lógicos Los operadores lógicos o voléanos son not (no), and (y) y or(o). Las definiciones de las operaciones no, y, o se resumen en unas tablas conocidas como las tablas de la verdad. Operador Lógico no (not) y (and) o (or)
Expresión Lógica no P PyQ PoQ
Significado negación de P conjunción de P y Q disyunción de P o Q
Tabla 3: Operadores Lógicos
7
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Fundamentos de Programación
Las tablas de la verdad son las siguientes: Operador ‘No’ P V F
Operador ‘Y’
no P F V
P V V F F
Q V F V F
Operador ‘O’ PYQ V F F F
P V V F F
Q V F V F
POQ V V V F
Nota: Siendo P y Q expresiones booleanas, V valor verdadero, F valor falso. Negación = not Disyunción = and Conjunción = or Ejemplos: ● (7 < 12) y (9 < 21) ● (9 > 15) y (3 < 4) ● (6 = 41) o (13 > 8) ● (16 > 8) o (2 > 5) ● no (18 > 6)
verdad falso verdad verdad falso
Funciones internas Las operaciones que se requieren en los programas exigen en numerosas ocasiones, además de las operaciones aritméticas básicas, ya tratadas, un número determinado de operadores especiales que se denominan funciones internas, incorporadas o estándar. Por ejemplo, la función raiz2 calcula la raíz cuadrada de un número positivo, la función abs devuelve el valor absoluto de un número, la función cuadrado devuelve el valor de un número elevado al cuadrado. Existen otras funciones que se utilizan para determinar las funciones trigonométricas. La siguiente tabla recoge las funciones internas más usuales en algoritmos, siendo ‘x’ el argumento de la función.
8
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Fundamentos de Programación
Las funciones aceptan argumentos reales o enteros y sus resultados dependen de la tarea que realice la función: Ejemplos:
Tabla 5: Ejemplos
9
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Fundamentos de Programación
Tipos de Datos El primer objetivo de toda computadora es el manejo de la información o datos. Estos datos pueden ser las cifras de ventas de una bodega, ticket’s para un encuentro deportivo, ingreso diario de una empresa o las calificaciones de un salón de clase. Los algoritmos y programas correspondientes operan sobre datos. Los tipos de datos definen un conjunto de valores que puede almacenar una variable, junto con un conjunto de operaciones que se pueden realizar sobre esa variable. Los tipos de datos simples son los siguientes: Numéricos (enteros, reales). Lógicos (booleanos). Carácter (char, string). Datos numéricos El tipo numérico es el conjunto de los valores numéricos. Estos pueden representarse en dos formas distintas: Tipo numérico entero (int, integer) Tipo numérico real (float, double) Tipo entero Es el subconjunto finito de los números enteros, no tienen componentes fraccionarios o decimales, y pueden ser negativos o positivos. Ejemplos: 6 -20 5 15
-9 11 19 -1
Tipo reales Subconjunto de los números reales, siempre tiene un punto decimal y pueden ser positivos o negativos. Constan de un entero y una parte decimal. Ejemplos: 9.9 12.24 -123.11 0.89 1470.274 -0.99 54.77 3.0 Nota: Existe un tipo de representación denominado notación exponencial o científica y que se utiliza para números muy grandes o muy pequeños. Ejemplo: Dado un número cualquiera: 367520100000000000000
10
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Fundamentos de Programación
se representa en notación descomponiéndolo en grupo de tres digitos: 367 520 100 000 000 000 000 y posteriormente en forma de potencias de 10, es: 3.675201 x 1020 Ejemplos: 2079546000000 8927645125 0.000000032458 0.0000000009284
= = = =
2.079546 x 1012 8.927645 x 109 3.2458 x 10-8 9.284 x 10-10
Datos lógicos Es aquel dato que solo puede tomar uno de dos valores: cierto o verdadero (true)
y
falso (false)
Ejemplo: Cuando se le pide si un valor entero es par, la respuesta será verdadera o falsa, según sea impar o par. Datos tipo caracter y tipo cadena Un dato tipo caracter contiene un solo caracter y se encuentra delimitado por comilla simple. Los caracteres que reconocen las diferentes computadoras no son estándar, sin embargo la mayoría reconoce los siguiente caracteres alfabéticos, numéricos y especiales: caracteres alfabéticos caracteres numéricos caracteres especiales
: : :
(a, b, c, ... ,z) (A, B, C, ... ,Z) (1, 2, 3, ... ,9 ,0) (+,-,*,/,{, }, ... ;,< ,> , ...)
Una cadena (string) de caracteres es una sucesión de caracteres que se encuentran delimitados por una comilla simple (apostrofo) o dobles comillas. Ejemplos: Carácter
:
‘a’ ‘p’ ‘Z’
‘b’ ‘q’ ‘Y’
‘m’ ‘M’ ‘N’
Cadena
:
‘Hola Perú’ ‘8 de Octubre de 1879’ ‘Juan Pablo II’
11