Upload
nestor-raul-caballero-alejos
View
43
Download
2
Embed Size (px)
Citation preview
Universidad San Pedro Introducción a las Técnicas de Programación
Ing. Miguel Angel Arias Leytón Página 1
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 ---> base y altura Proceso ---> área = base x altura Datos de Salida ---> El área del paralelogramo
Ejemplo 02:
Leer el radio de una circunferencia. Calcular su área y longitud.
Universidad San Pedro Introducción a las Técnicas de Programación
Ing. Miguel Angel Arias Leytón Página 2
Datos de Entrada ---> Radio de una circunferencia. Proceso ---> Área = y Longitud = Datos de Salida ---> 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 02 Ejercicio 01
Datos de Entrada (radio) = 3 (pi) = 3.14 (Sólo
tomaremos hasta dos decimales)
Base = 5 Altura = 3
Proceso = 3.14 x (3)2
L = = 2 x 3.14 x 3
A = base x altura A = 5 x 3
Salida A = 28.26 L = 18.84
A = 15
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.
Universidad San Pedro Introducción a las Técnicas de Programación
Ing. Miguel Angel Arias Leytón Página 3
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
válidos 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á compuesta por dos palabras, éstas pueden
ser juntas o unidas 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 para representar nombres de personas. precios para representar los precios de diferentes artículos. notas 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 para representar la nota de una clase. pan 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.
Universidad San Pedro Introducción a las Técnicas de Programación
Ing. Miguel Angel Arias Leytón Página 4
Instrucciones
Las instrucciones especifican las operaciones o acciones que deben ser realizadas o ejecutadas.
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 fórmulas matemáticas. Las variables y constantes son numéricas (real o entera) y las
operaciones son las aritméticas.
Operadores Aritméticos
Significado Operador Algebraico Operador Algorítmico
Suma + +
Resta - -
Multiplicación x *
División real / /
División entera / div
Exponenciación **, ^
Módulo (resto o residuo) mod
A continuación se mostraran las equivalencias que debe conocer entre expresiones algebraicas y
expresiones aritméticas.
Ejemplos:
Representación Algebraica
Representación Algorítmica
12 + 19 ---------- 12 + 19 a - b ---------- a - b 5 x 7 ---------- 5 * 7 6 + c 4
---------- (6 / 4) + c
37 ---------- 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.
Universidad San Pedro Introducción a las Técnicas de Programación
Ing. Miguel Angel Arias Leytón Página 5
2. Las operaciones aritméticas dentro de una expresión suelen seguir el siguiente orden de prioridad:
a. Operador exponencial (^, o bien **)
b. Operadores *, /
c. Operadores div y mod
d. Operadores + , -
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 revisar sus respuestas con la solución que a continuación se presenta.
Solución:
a)
15 + 9 * 2 – 6 * 2 ^ 2
15 + 9 * 2 – 6 * 4
15 + 18 - 24 = 9
b) -8 / 4 * 6 + 3 ^ 2 * (10 / 5) -8 / 4 * 6 + 3 ^ 2 * 2 -8 / 4 * 6 + 9 * 2 -2 * 6 + 18 = 6
Ejemplo 2. Convertir en expresiones aritméticas algorítmicas las siguientes expresiones:
a) 7 ( a + b )
b) 8x + 9y + 3z
c) a2 + 2a – 3
d) x2 – y2
e) p + q r + s t
f) a (cd) b
Nota: Hacer uso de un tiempo de 5 minutos para resolver los incisos a) al f) del Ejemplo 2. Terminado
de hacerlo revisar sus respuestas con la solución que a continuación se presenta.
Solución:
Universidad San Pedro Introducción a las Técnicas de Programación
Ing. Miguel Angel Arias Leytón Página 6
a) 7 ( a + b ) b) 8x + 9y + 3z
c) a2 + 2a – 3
d) x2 – y
2
e) 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 a ser 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 sólo se aplica a divisiones de números enteros, veamos el siguiente
ejemplo:
Ejemplo: 9 div 2 = 4
9 2
8 4 1
Ejemplos:
a. 15 div 6 = 2 b. 14 div 2 = 7 c. 0 div 3 = 0 d. 7 div 9 = 0 e. 3 div 3 = 1 f. 2 div 5 = 0
Reglas de la división real y entera: Los operandos pueden ser enteros (E) o reales (R).
División real División entera E / E = R E / R = R R / E = R R / R = R
E div E = E E div R = No válido R div E = No válido R div R = No válido
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.
Dividendo
Residuo
Divisor
Cociente
Universidad San Pedro Introducción a las Técnicas de Programación
Ing. Miguel Angel Arias Leytón Página 7
Reglas del residuo:
Residuo E mod E = E E mod R = No Valido R mod E = No Valido R mod R = No Valido
Ejemplos:
a. 15 mod 6 = 3 b. 14 mod 2 = 0 c. 19 mod 3 = 1 d. 7 mod 9 = 7 e. 3 mod 3 = 0 f. 2 mod 5 = 2
2. Expresiones Lógicas
Una expresión lógica es una expresión que sólo 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.
Operadores de Relación
Significado Operador Algebraico Operador Algorítmico
Menor que < <
Mayor que > >
Igual que = =
Menor o igual que ≤ <=
Mayor o igual que ≥ >=
Distinto de o Diferente de ≠ <>
Ejemplos: Si P = 7 * 2 y Q = 3 ^ 2
Expresión lógica Resultado P > Q Verdad P < Q Falso
P <> Q Verdad (P - 3) = (Q + 2) Verdad
15 < 14 Falso 4 + 6 = 9 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 mostraran los caracteres situados en el código ASCII en orden creciente:
Universidad San Pedro Introducción a las Técnicas de Programación
Ing. Miguel Angel Arias Leytón Página 8
Los caracteres que representan a los dígitos. ‘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
computadoras IBM diferentes a los modelos PC y PS/2.
Operadores lógicos
Los operadores lógicos o booleanos 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 Expresión lógica Significado
no (not) no P Negación de P
y (and) P y Q Conjunción de P y Q
o (or) P o Q Disyunción de P o Q
Las tablas de verdad son las siguientes:
Operador ‘no’ Operador ‘y’ Operador ‘o’
P no P P Q P y Q P Q P o Q
V F V V V V V V F V V F F V F V F V F F V V F F F F F 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) verdad
(9 > 15) y (3 < 4) falso
(6 = 41) o (13 > 8) verdad
(16 > 8) o (2 > 5) verdad
no (18 > 6) falso
Universidad San Pedro Introducción a las Técnicas de Programación
Ing. Miguel Angel Arias Leytón Página 9
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.
Función Descripción Tipo de argumento Resultado
abs(x) Valor absoluto de x Entero o Real Igual que argumento
arctan(x) Arco tangente de x Entero o Real Real
cos(x) Coseno de x Entero o Real Real
cuadrado(x) Cuadrado de x Entero o Real Igual que argumento
exp(x) Exponencial de x Entero o Real Real
ln(x) Logaritmo neperiano de x Entero o Real Real
log(x) Logaritmo decimal de x Entero o Real Real
redondeo(x) Redondeo de x Real Entero
sen(x) Seno de x Entero o Real Real
raiz2(x) Raíz cuadrada de x Entero o Real Real
trunc(x) Truncamiento de x Real Entero
Las funciones aceptan argumentos reales o enteros y sus resultados dependen de la tarea que realice la
función:
Ejemplos:
Expresión Resultado
Abs(15) 15
Abs(-3) 3
Cuadrado(5) 25
Cuadrado(-3) 9
Raiz2(16) 4
Raiz2(3) 1.73
Redondeo(7.5) 8
Redondeo(9.4) 9
Redondeo(-1.1) -1
Trunc(8.9) 8
Trunc(4.2) 4
Trunc(-7.7) -7
Universidad San Pedro Introducción a las Técnicas de Programación
Ing. Miguel Angel Arias Leytón Página 10
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, -9, -20, 11, 5, 19, 15, -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, -123.11, 0.89, 1470.274, -0.99, 54.77, 3.0
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 Carácter y tipo Cadena
Un dato tipo Carácter contiene un solo carácter 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 siguientes caracteres alfabéticos, numéricos y especiales:
Caracteres alfabéticos : (a, b, c, ... ,z) (A, B, C, ... ,Z)
Caracteres numéricos : (1, 2, 3, ... ,9 ,0)
Caracteres especiales : (+, -, *, /, {, }, ... ;, <, >, ...)
Universidad San Pedro Introducción a las Técnicas de Programación
Ing. Miguel Angel Arias Leytón Página 11
Una cadena (String) de caracteres es una sucesión de caracteres que se encuentran delimitados por una
comilla simple (apóstrofe) o comillas dobles.
Ejemplos:
Carácter : ‘a’ ‘b’ ‘m’ ‘p’ ‘q’ ‘M’ ‘Z’ ‘Y’ ‘N’
Cadena : ‘Hola Perú’ ‘8 de Octubre de 1879’ ‘Juan Pablo II’
Universidad San Pedro Introducción a las Técnicas de Programación
Ing. Miguel Angel Arias Leytón Página 12
LABORATORIO Nº 1
1. Escribir las siguientes expresiones algebraicas como expresiones algorítmicas:
2. Evaluar las siguientes expresiones y realizar el proceso:
a) Para un valor de A = 3 y B = 4: 4 * A + 8 * A / B - B ^ 2
b) Para un valor de M = 3, N = 4 y O = 5: (N - M) ^ 200 * raiz2 ((M * 12) + (N * 7)) - O * 6 / 15
c) Para un valor de P = 3, Q = 4, R = 7 y S = 8: raiz2((S / Q) ^ P * 7 - (cuadrado(R) + (S - R)))
3. Si el valor de A es 6, B es 5 y el valor de C es 2, evaluar las siguientes expresiones:
a) A * B + B ^ 2 / 4 * C - ( B * C + C / 2 ) b) cuadrado(A + C) - raiz2(B * A + 6) * (B * A / C ) c) ((( B + C ) / 2 * A + 10 ) - 3 * B ) + 6 – C
4. Si el valor de ‘p’ es 3, ‘q’ es 3 y ‘r’ es 2, evaluar la expresión: p ^ q ^ r
5. Obtener el valor de cada una de las siguientes expresiones aritméticas:
a) 11 div 2 b) 26 mod 2 c) 32 div 3 d) 13 mod 3 e) 0 mod 5
f) 15 mod 4 g) 0 div 9 h) 6 * 10 – 40 mod 3 * 4 + 9 i) (9 ^ 2 mod 4 + ( 7 * 5 ) div 6) div 2 j) 5 mod 3 * ( 7 div 1 ) - ( 22 div 4 * 2 ) mod 3
6. Encontrar el valor de cada una de las siguientes expresiones o decir si no es una expresión válida.
a) raiz2(15 – 7 + 8 – 3 * 2) b) 2 mod 3 + 3 div 5 * 7 c) 7 div 3 / 9 d) 9 mod 6 mod 2
e) 9 mod ( 6 mod 2) f) ( 5 mod 3 ) mod 7 g) (( 9 + 8 ) div 2) / ( 4 * (1 mod 9)) h) ( 23 div 4 ) * ( 8 / 2 + 3 mod 8 )