Sesion 01 - Fundamentos Basicos de Algoritmos

12
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.

Transcript of Sesion 01 - Fundamentos Basicos de Algoritmos

Page 1: Sesion 01 - Fundamentos Basicos de Algoritmos

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.

Page 2: Sesion 01 - Fundamentos Basicos de Algoritmos

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.

Page 3: Sesion 01 - Fundamentos Basicos de Algoritmos

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.

Page 4: Sesion 01 - Fundamentos Basicos de Algoritmos

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.

Page 5: Sesion 01 - Fundamentos Basicos de Algoritmos

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:

Page 6: Sesion 01 - Fundamentos Basicos de Algoritmos

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

Page 7: Sesion 01 - Fundamentos Basicos de Algoritmos

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:

Page 8: Sesion 01 - Fundamentos Basicos de Algoritmos

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

Page 9: Sesion 01 - Fundamentos Basicos de Algoritmos

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

Page 10: Sesion 01 - Fundamentos Basicos de Algoritmos

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 : (+, -, *, /, {, }, ... ;, <, >, ...)

Page 11: Sesion 01 - Fundamentos Basicos de Algoritmos

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’

Page 12: Sesion 01 - Fundamentos Basicos de Algoritmos

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 )