Está en la página 1de 36

Fundamentos de Programación

SESIÓN 03_b: “Fundamentos para el diseño de


algoritmos”

Ing. Ernesto Nicho Córdova / Email: ncordova@usat.edu.pe

www.usat.edu.pe
1 www.usat.edu.pe
Introducción

Control de
asistencia

2 www.usat.edu.pe
Propósito de la sesión
Objetivo de la sesión:
- Que el estudiante comprenda los fundamentos teóricos relacionados con
el diseño de algoritmos.

Contribuye al logro

Resultado de Aprendizaje de la Unidad 01:


R1: Diseña algoritmos a través de la utilización de estructuras básicas de programación..

Contribuye al logro

Competencia del perfil de egreso : La asignatura FUNDAMENTOS DE PROGRAMACIÓN, que


corresponde al área de estudios Específicas, contribuye al logro del perfil de egreso,
específicamente a la(s) competencia(s):
- CE3: DESARROLLO DE SOFTWARE
- CG2: RESOLUCIÓN DE PROBLEMAS CON RIGOR CIENTÍFICO
3 www.usat.edu.pe
Algoritmos

Según Cairo (2009), un algoritmo es un “conjunto de pasos,


procedimientos o acciones que nos permiten alcanzar un
resultado o resolver un problema”.
Es la fórmula o receta para resolver un problema.

4 www.usat.edu.pe
Algoritmos
Algo de historia…
Algoritmo proviene — de Mohammed al-KhoWârizmi, matemático persa que
vivió durante el siglo IX. La traducción al latín del apellido en la palabra
algorismus derivó posteriormente en algoritmo.

Euclides, el gran matemático griego (del siglo IV a. C.) se considera con Al-
Khowârizmi el otro gran padre de la algoritmia (ciencia que trata de los
algoritmos).

El profesor Niklaus Wirth —inventor de Pascal, Modula-2 y Oberon— tituló


uno de sus más famosos libros, Algoritmos + Estructuras de datos =
Programas, significándonos que sólo se puede llegar a realizar un buen
programa con el diseño de un algoritmo y una correcta estructura de datos.

5 www.usat.edu.pe
Algoritmos
Características de los algoritmos

Las características fundamentales que debe cumplir todo


algoritmo son:
• Preciso: un algoritmo debe ser preciso; es decir debe
de indicar el orden de realización de cada paso.
• Definido: un algoritmo debe estar definido; es decir si
se sigue un algoritmo dos veces, se debe obtener el
mismo resultado cada vez.
• Finito: un algoritmo debe ser finito; es decir un
algoritmo debe de terminar en algún momento.

www.usat.edu.pe
Algoritmos
¿Qué describe un algoritmos?

La definición de un algoritmo debe describir tres partes:


ENTRADA
Entrada, Proceso y Salida.
PROCESO
Por ejemplo en el algoritmo para calcular el área del
rectángulo. Tenemos:
• Entrada: base y altura SALIDA

• Proceso: área = base * altura


• Salida: área

www.usat.edu.pe
Algoritmos
Datos

• Un dato es la representación de algún hecho,


concepto o entidad real (los datos pueden tomar
diferentes formas, por ejemplo: palabras escritas
o habladas, números, dibujos, etc.).

• En programación un dato es la expresión que


describe los objetos con los cuales opera una
computadora.

www.usat.edu.pe
Algoritmos
Tipo de Datos:
Datos Simples o Estándar • Numéricos: Enteros y Reales
• Carácter
primitivos • Lógicos
Datos compuestos o Estáticos • Cadenas
• Array (matrices)
estructurados • Archivo o ficheros
• Registro
Dinámicos • Lista (pila/cola)
• Lista enlazada
• Árbol
• Grafo

Los de color azul son los que veremos en el curso, los otros se ven en el curso de
Estructura de Datos

www.usat.edu.pe
Algoritmos
Tipo de datos simples o primitivos:
-Sólo tienen parte entera, no tienen parte decimal.
Enteros -Pueden ser positivos o negativos.
-También se les llama de punto o coma Fija.
- Ejemplo: 5 , -9, 20, etc.
Numéricos -Tienen parte entera y parte decimal; es decir que estos datos
utilizarán el punto decimal necesariamente para separar la parte
Reales entera de la parte decimal.
-Pueden ser positivos o negativos.
-También se les llama de punto o coma flotante.
- Ejemplo: 0.08, 3.0, 8.5, -9.65, -6.0, etc.

- Formados por los caracteres del alfabeto


Carácter Alfabéticos - Ejemplo: ‘a’, ‘b’, ‘c’, ... ‘z’
‘A’, ‘B’, ‘C’, ‘D’, ...’Z’
(un dato de tipo - Formados por los números pero en tipo carácter.
carácter contiene Numéricos - Ejemplo: ‘0’, ‘1’, ‘2’, ‘3’, ..., ‘9’

un solo carácter)
-Formado por el resto de caracteres existentes.
Especiales -Ejemplo: ‘+’, ‘*’,’/’,’-‘,’\’, ‘^’, ‘<’,’>’,’=’, ‘!’, etc.

- Sólo pueden tomar dos valores; true (verdadero) y false (false)


Lógicos - También llamados booleanos.
- El lenguaje C, no soporta este tipo de dato. Java si lo tiene

www.usat.edu.pe
Algoritmos
Variables y constantes
Variables
• Una variable es un objeto que se utiliza para almacenar un dato en un
algoritmo o en un programa y se caracteriza porque su valor puede
variar durante el desarrollo del algoritmo o durante la ejecución del
programa.

• Una variable se identifica por su nombre y por el tipo de dato.


Ejemplo:
– En algoritmo: entero: edad
– En un programa en C o en Java: int edad

www.usat.edu.pe
Algoritmos
Consideraciones a tener en cuenta para
dar nombre a las variables:
- Nombre significativo.

- No dejar espacios en blanco en los nombres, se recomienda empezar a escribirlo en minúscula y si


hay varias palabras compuestas las primeras letras siguientes con mayúsculas. Por ejemplo edad ,
apellidoPaterno, peso.

- Dependiendo del lengauje de programación hay algunas restricciones. Por ejemplo en C, el nombre de
una variable sólo podrá empezar con una letra o con _, en Java además de esto permite empezar con $.
Por ejemplo, $sexo, _peso, etc.

- No utilizar las palabras reservadas del lenguaje de programación como nombres. Una palabra
reservada es un palabra que para el compilador del lenguaje de programación ya tiene un significado
especial. Por ejemplo for, if, while, etc.

- El nombre puede contener caracteres alfanuméricos y especiales, menos los caracteres que para el
compilador ya tienen un significado especial como los operadores aritméticos, relacionales y otros
(+,-,*, /,%,,,.,;,etc.)
www.usat.edu.pe
Algoritmos
Ejemplos de nombres de variables:
Nombre de Variable Observación
edad Correcto
$edad Correcto en Java, Incorrecto en C
_edad Correcto
apellidoPaterno Correcto
num7 Correcto
7num Error (empieza el nombre con número)
*num Error (empieza el nombre con *)
for Error (for es palabra reservada)
Apellido materno Error (se ha dejado espacio en blanco en el nombre)

www.usat.edu.pe
Algoritmos
Constantes
• Una constante es un objeto que se utiliza para almacenar un dato en un
algoritmo o en un programa y se caracteriza porque su valor no puede variar
durante el desarrollo del algoritmo o durante la ejecución del programa.

• Una constante se identifica por su nombre, por el tipo de dato y además


por una palabra reservada que nos indique que se trata de una constante.
Ejemplo:
En algoritmo: Const real: PI
En C: const float PI;
En Java: final float PI;

www.usat.edu.pe
Algoritmos
Consideraciones a tener en cuenta para
dar nombre a las constantes
• Las mismas que para las variables sólo que para las constantes se
recomienda que todo el nombre se escriba en mayúsculas, esto para
poder diferenciarlas rápidamente de las variables y saber que su valor no
puede ser modificado.

• Por ejemplo PI, TOPE, etc..

www.usat.edu.pe
Ejercicio
Realice un programa que calcule la calificación que debe obtenerse en un
examen sustitutorio, si se conoce que el promedio para aprobar debe ser
mínimo de 14. El usuario debe ingresar su nombre (para el reporte), las
calificaciones de la primera y segunda unidad. La nota final (solo esta puede
contener decimales).
Se pide:
a) Identificar las variables del problema
b) Identificar las constantes del problema
c) Dar un nombre a cada variable identificada
d) Identificar el tipo de dato de cada variable
Tipo de Descripción de variable Nombre de variable Tipo de Dato
Variable

16 www.usat.edu.pe
Algoritmos
Expresiones

• Las expresiones son combinaciones de:


– constantes
– variables
– operadores aritméticos (+,-,*, / ,mod, div)
– operadores lógicos (and, or, not)
– operadores relacionales (=,<>, >, <, >=,<=)
– paréntesis.
– funciones especiales (potencia, raíz cuadrada, seno, coseno, etc.).
• Pueden ser de dos tipos: Expresiones aritméticas y lógicas

www.usat.edu.pe
Algoritmos
Expresiones aritméticas
- Se forman de la combinación de variables y constantes numéricas, utilizando operadores
aritméticos (^,*,/,mod, div, +,-), paréntesis y funciones especiales según se requieran.

- El resultado de evaluar esta expresión es de tipo numérico (real o entero)

- Son análogas a las fórmulas matemáticas, con la diferencia que toda la expresión se
escribe de corrido horizontalmente es decir que si en matemática escribíamos.
8
3 Ahora lo escribimos 8/3 o 8 x 3 Ahora lo escribimos 8*3

- Por otro lado que si en matemáticas usábamos llaves y corchetes para las fórmulas, en la
expresiones usamos sólo paréntesis, y el operador de multiplicación ya no es x, ni . sino el *,
y para la potencia ahora usaremos ^.

www.usat.edu.pe
Algoritmos
Analogía entre fórmula matemática y
expresión aritmética
Formula Matemática Expresión Aritmética

s.(x+y) s *(x+y)

cxa2+b2 c*a^2 + b^2

𝑥+𝑦 (x+y) / (u+w/a)


𝑤
𝑢+
𝑎
a2+2y+c/3 𝑐 a ^ 2+2*y+c/3
𝑎2 + 2𝑦 +
3
{a + [(b+c) – (c+d)] + [(a2 – b2) + d3]} ( a + ( (b+c)-(c+d) ) + ( (a^2-b^2)+d^3) )

www.usat.edu.pe
Algoritmos
Operadores Aritméticos:
Operador Significado Tipo de Tipo de resultado Ejemplo
Operador
^, ** Exponenciación o Entero o real Entero o real 3^2 = 9
potencia 3.0^2 = 9.0
* Multiplicación Entero o real Entero o real 3*2 = 6
3.0*2.5 = 7.5
/ División Real Real 4.0/2.0 = 2.0
5.0/2.0 = 2.5
División entera
\, div (cociente)
Entero Entero 5 div 3 = 1
mod Módulo o residuo Entero Entero 5mod3 = 2
+ Suma Entero o real Entero o real 3+2 = 5
3.0+2.5 = 5.5
- Resta Entero o real Entero o real 3-2 = 1
3.0-2.5 = 0.5

www.usat.edu.pe
Algoritmos
Reglas de prioridad en las expresiones
aritméticas:
Existe una regla de prioridad que se sigue para la resolución de expresiones
aritméticas, que mencionamos a continuación.
1.- Paréntesis, si hay paréntesis anidados, se desarrolla primero los más
internos.
2.- Exponenciación (^).
3.- Multiplicación (*), División (/), División entera (div), módulo o resto (mod).
Todos tienen la misma prioridad.
4.- Suma (+), resta (-). Tienen la misma prioridad.

Observación: cuando en una expresión aparecen operadores que tienen la


misma prioridad, se desarrollan de izquierda a derecha, desarrollando primero el
que esta más a la izquierda
www.usat.edu.pe
Algoritmos
Ejercicios 01

a) 8 + 7*3 + 4*6 b) –4*7+2^3/4-5 c) 6*5 +19div6-15mod4

Prioridad:
()
^ (Potencia)
*, /, div (Cociente), mod (Residuo)
+, -

www.usat.edu.pe
Algoritmos
Ejercicio 02
(2 ^ ( 9 ^ 0.5) * 4 div 2) – (7- 16 div 5 mod 3 + 7 * 2 ^ 2 mod 3 ^ 2)

Prioridad:
()
Rpta: ?
^ (Potencia)
*, /, div (Cociente), mod (Residuo)
+, -

www.usat.edu.pe
Algoritmos
Expresiones lógicas
• Se forman de la combinación de variables y constantes lógicas, utilizando
operadores lógicos (and, or, not) y operadores relacionales (=,<>, >, >=, <,
<=) y los paréntesis según se requieran.
• El resultado de evaluar esta expresión es de tipo lógico, es decir sólo puede
tomar dos valores true (verdad) o false (falso).

Los operadores lógicos son:

Operador Prioridad
Not (no) 1
And (y) 2
Or (o) 3

www.usat.edu.pe
Algoritmos
Tablas de verdad:
a b a And b a Or b
a Not a

V F V V V V

F V V F F V

F V F V

F F F F

www.usat.edu.pe
Algoritmos
Operadores Relacionales:
Operador Significado Los operadores de relación se pueden aplicar con
los tipos de datos.
< Menor que
Ejemplo: true(verdad), false(false)
> Mayor que
3<6 dará true
= Igual que
<= Menor o igual que 8<= 5 dará false

>= Mayor o igual que ‘A’ < ‘B’ dará true

<> Diferente de ‘a’ <’b’ dará true


‘a’>’A’ dará true
‘1’ < ‘A’ dará true
true>false dará true

www.usat.edu.pe
Algoritmos
Ejercicio 03

(Not (15 >= 7 ^ 2) ) (


Or (43 – 8 * 2 div 4 <> 3 * 2 div 2 ) And Not (8 mod 3 = 15 div 2) )

Tabla de Verdad:
V and V → V, caso contrario F
F or F → F, caso contrario V Rpta: ?
Not V →F
Not F → V

www.usat.edu.pe
Algoritmos
Funciones Internas
Son funciones que necesitaremos en algunas oportunidades según lo demande
la solución del problema.

Función Descripción Tipo de argumento Resultado


abs(x) Valor absoluto de x Entero o real Igual que el argumento
arctan(x) Arco tangente de x Entero o real Real
cos(x) Coseno de x Entero o real Real
exp(x) Exponencial de x Entero o real Real
ln(x) Logaritmo neperiano de x Entero o real Real
log10 Logaritmo decimal de x Entero o real Real
redondeo(x) Redondeo de x Real Entero
sen(x) Seno de x Entero o real Real
cuadrado(x) Cuadrado de x Entero o real Igual que el argumento
raiz2 Raíz cuadrada de x Entero o real Real
trunc(x) Truncamiento de x Real Entero

www.usat.edu.pe
Algoritmos
Operador de asignación
- La operación de asignación es el modo de darles valores a una variable o constante.
- Se representa con el símbolo 
- El formato para la asignación es el siguiente:

Se evalúa la expresión y el valor obtenido como resultado se le asigna a la variable.

Nombre de la variable  Expresión

- Mientras que en matemáticas se utiliza el símbolo = para asignar un valor a una variable,
en el lenguaje algorítmico se utiliza el operador () para realizar esta asignación,
quedando el operador = para ser usado como operador de igualdad.

y  2*a+3
n  n +1 en matemáticas, no tienen sentido

www.usat.edu.pe
Algoritmos
Ejemplos de uso del operador de
asignación
- Asignación numérica:
a3
n  a+5 // n  8

- Asignación Lógica:
m  8<5 // m será false (falso)
n  m or (7<=12) // n será true (verdadero)
p  7>6 // p será true (verdadero)

- Asignación de carácter:
x  ’c’

Observación: Se deben de asignar valores del mismo tipo que la variable. Se presentará un error si se trata
de asignar valores de tipo caracter a una variable numérica o un valor numérico a una variable tipo
caracter.

www.usat.edu.pe
Algoritmos
Entrada de datos y salida de información
Entrada:
- Las operaciones de entrada permiten leer determinados valores y asignarlos a
determinadas variables.

- A la entrada se le conoce como operación de lectura (read).

- Los datos de entrada, se introducen al computador mediante dispositivos de entrada


como por ejemplo el teclado, tarjetas perforadas, unidades de disco, etc.

- En algoritmos la entrada de datos (lectura) se representa así:


leer (lista de variables de entrada)
- Ejemplo: leer (base, altura)

www.usat.edu.pe
Algoritmos
Salida
- La salida es el resultado de procesar los datos.

- La información de salida puede aparecer en un dispositivo de salida como por ejemplo la


pantalla, impresora, etc.

- A la salida se le conoce como operación de escritura (write)

- En algoritmos la salida de información (escritura) se representa así:


escribir (lista de expresiones de salida)

- Ejemplo: escribir (área) , escribir (“Aprobado”)

www.usat.edu.pe
Algoritmos
Herramientas para diseño de algoritmos.
Entre las principales herramientas de programación que podemos utilizar para
diseñar
algoritmos tenemos:
- Diagrama de flujo.
- Pseudocódigo.
- Diagrama de Nassi-Schneiderman (N-S).

Lo que se plasme con estas herramientas indistintamente de cual se utilice


representará los pasos que se deben de seguir para solucionar un problema
concreto.

www.usat.edu.pe
Conclusiones
– El algoritmo es un conjunto de pasos que especifican la secuencia que se debe seguir y que
operaciones realizar para resolver un problema, es la fórmula o receta para resolver un problema.
– Todo algoritmo debe ser preciso, definido y finito.
– En los algoritmos existen diferencias entre la forma como se escriben las expresiones y las
fórmulas aritméticas o lógicas.
– Existen diferentes herramientas para representar algoritmos: Diagrama de Flujo, Pseudocodigo y
Diagrama N-S, sólo debemos elegir una.

Próxima sesión
• Algoritmos: Estructuras básicas de
programación

52 www.usat.edu.pe
Referencias

• [1] L. Joyanes, Fundamentos de Programación. Algoritmos, estructura de datos y


objetos, Cuarta ed., Madrid: McGRAW-HILL, 2008.
• [2] O. Cairó, Metodología de la programación: algoritmos, diagramas de flujo y
programas, Segunda ed., México: Ed. Alfaomega Grupo, 2003.

53 www.usat.edu.pe
Ing. Héctor M. Zelada Valdivieso / Email: hzelada@usat.edu.pe
Ing. Ernesto Nicho Córdova / Email: ncordova@usat.edu.pe

http://www.facebook.com/usat.peru

https://twitter.com/usatenlinea

https://www.youtube.com/user/tvusat

https://plus.google.com/+usateduperu

54 www.usat.edu.pe

También podría gustarte