Você está na página 1de 50

ALGORITMO Y PROGRAMACIÓN

JHON JAIRO ANAYA DÍAZ


JANAYA6@AREANDINA.EDU.CO
https://sites.google.com/a/areandina.edu.co
/janaya6/algoritmos
EVALUACIÓN
1 CORTE 2 CORTE 3 CORTE

TALLERES PARCIAL TALLERES PARCIAL TALLER PARCIAL PIFI

20% 10% 20% 10% 20% 10% 10%


Evaluación de
Evaluación de Talleres, conceptos
Evaluación de Talleres, trabajos conceptos vistos trabajos vistos en
Talleres, trabajos conceptos vistos individuales, en clase, individuales, clase,
individuales, en clase, trabajos grupales, desarrollo de un trabajos desarrollo de
trabajos grupales, desarrollo de un exposiciones, algoritmo en un grupales, un algoritmo
exposiciones, algoritmo en un investigaciones lenguaje de exposiciones, en un
investigaciones lenguaje de programación investigaciones lenguaje de
programación programación
Evolución y arquitectura del computador
Algoritmo, lenguaje y programa
Metodología y construcción de algoritmos

UNIDAD 1
INTRODUCCIÓN A LOS
ALGORITMOS
JHON JAIRO ANAYA DÍAZ
JANAYA6@AREANDINA.EDU.CO
https://sites.google.com/a/areandina.edu.co/janaya6/algoritmos
Evolución del computador
• Abaco (a.c.)

• Calculadora de Pascal (1642)

• Calculadora electrónica – (1941 a 1951)

MARK I, ENIAC, EDVAC, UNIVAC

• Segunda Generación

• …

• Computadores personales
Definición del Computador
SEGÚN LA REAL ACADEMIA ESPAÑOLA
1.adj. Que computa (calcula)
2.m. calculador (aparato que obtiene el
resultado de cálculos matemáticos).
3.m. computadora electrónica.
4.f. calculadora (aparato que obtiene el
resultado de cálculos matemáticos).
5.f. computadora electrónica.
http://lema.rae.es/drae/srv/search?id=hCzrFkLzfDXX28WpHFxC
Definición del Computador
SEGÚN LA REAL ACADEMIA ESPAÑOLA
• ELECTRÓNICA: f. Máquina electrónica,
analógica o digital, dotada de una memoria de
gran capacidad y de métodos de tratamiento de
la información, capaz de resolver problemas
matemáticos y lógicos mediante la utilización
automática de programas informáticos.
• COMPUTADORA PERSONAL: f. computadora
electrónica de dimensiones reducidas, con
limitaciones de capacidad de memoria y
velocidad, pero con total autonomía.
http://lema.rae.es/drae/srv/search?id=hCzrFkLzfDXX28WpHFxC
Definición de Software
• El software es una palabra que proviene
del idioma inglés, pero que gracias a la
masificación de uso, ha sido aceptada por
la REAL ACADEMIA ESPAÑOLA. Según la RAE,
el software es un conjunto de programas,
instrucciones y reglas informáticas que
permiten ejecutar distintas tareas en una
computadora.

http://definicion.de/software/
Arquitectura Externa de los
Computadores
Arquitectura Interna de los
Computadores
o Memoria de almacenamiento

o Memoria de procesamiento

o Procesamiento y comunicación interna.


Funcionalidad de un computador

Cálculos
repetitivos

Manejo de
grandes
volúmenes de Precisión
información
Para que
sirve el
computador

Complejidad Velocidad de
de cálculos respuesta
¿QUÉ ES UN ALGORITMO?

D1. Conjunto ordenado y finito de operaciones que


permite hallar la solución de un problema.

D2. Serie de pasos organizados que describe el


proceso que se debe seguir, para dar solución a
un problema especifico

D3. Método para resolver un problema mediante una


secuencia de pasos a seguir.
¿Por qué es útil?

• Permite el análisis lógico-conceptual de


un problema y anticipar las posibles
soluciones.

• En cierto sentido permite MODELAR la


realidad, con el fin de poder modificarla,
o adaptarla a determinadas necesidades.
¿Cómo se aplica?
• Expresando la secuencia lógica de
operaciones que llevan a la solución de un
problema.

• Considerando todas las posibilidades


lógicas del problema en cuestión.

• Considerando las relaciones y


restricciones pertinentes al problema.
CARACTERÍSTICAS DE UN ALGORITMO
• Ordenado
– Los pasos tienen que seguir una prioridad o
estar enumerados
• Preciso
– Las instrucciones o pasos no deben ser
ambiguas o confusas
• Finito
– El procedimiento tiene un principio y un fin
• Definido:
– Si se introducen los mismos datos de entrada
se obtiene la misma salida
LENGUAJE , ALGORITMO Y
PROGRAMACIÓN
El Lenguaje es un conjunto de símbolos,
caracteres y reglas (programas) que le permiten a
las personas comunicarse con la computadora.

oLenguaje Máquina

oLenguaje de Bajo Nivel

oLenguaje de Alto Nivel


Lenguaje máquina
Todo se programa en base de 1 y 0 (sistema
binario), que es lo único que entienden los
dispositivos del computador.

 Ventaja: Se interpreta directamente y no


necesita ser traducido.

 Inconveniente: El alto grado de dificultad, la


confusión, para corregir errores, es propia de
cada máquina.
Bajo nivel o ensamblador
Se utilizan mnemotécnicos (abreviaturas ej.
ADD, MOV).

Ventaja: No es tan difícil como el


lenguaje máquina.

Inconvenientes: Cada máquina tiene su


propio lenguaje, necesitamos un proceso de
traducción.
Lenguajes de alto nivel
Los más cercanos al lenguaje humano.

Ventaja: Son independientes de cada maquina


(los compiladores aceptan las instrucciones
estándar, pero también tienen instrucciones
propias).

Inconveniente: El proceso de traducción es


muy largo y ocupa más recursos. Aprovecha
menos los recursos internos
LENGUAJE , ALGORITMO Y
PROGRAMACIÓN
Los términos «algoritmo» y «programa» tienden
a confundirse.

Recordemos:
Algoritmo se refiere a los pasos para
resolver un problema, pero es independiente
del lenguaje, mientras que Programa se
refiere propiamente al codificación de un
algoritmo en algún lenguaje de programación
o software.
Elaborar Algoritmos

• Hacer un buen algoritmo exige


– Dominio del área del problema que se
intenta resolver
– Abstracción y Lógica
– Imaginación y Creatividad
– Dominio de las técnicas de programación
CONSTRUCCIÓN DE ALGORITMOS
Ejemplo 1
Diseñar un algoritmo para calcular el área de un
rectángulo.

Altura Área = Base x Altura

Base

– ¿Cuáles son los datos de entrada?


– ¿Qué cálculos/procesos deben llevarse a cabo?
– ¿Cuáles son los datos de salida?
Ejemplo 1
DATOS DE ENTRADA Base, Altura

PROCEDIMIENTO Área = Base x Altura

DATOS DE SALIDA Área

ALGORITMO
1.Leer la Base y Altura
2.Calcular Área=Base x Altura
3.Mostrar el resultado obtenidos en Área
Ejemplo 2
Diseñar un algoritmo para calcular el perímetro
de un círculo

Radio
Perímetro = 2 x π x Radio

– ¿Cuáles son los datos de entrada?


– ¿Qué cálculos/procesos deben llevarse a cabo?
– ¿Cuáles son los datos de salida?
Ejemplo 2
DATOS DE ENTRADA Radio

PROCEDIMIENTO Perímetro = 2 x 𝜋 x Radio

DATOS DE SALIDA Perímetro

Algoritmo

1. Leer el 𝑅𝑎𝑑𝑖𝑜
2. Calcular el 𝑃𝑒𝑟𝑖𝑚𝑒𝑡𝑟𝑜 = 2 × 𝜋 × 𝑅𝑎𝑑𝑖𝑜
3. Mostrar el resultado obtenidos en
𝑃𝑒𝑟𝑖𝑚𝑒𝑡𝑟𝑜
LENGUAJES DE PROGRAMACIÓN

http://www.webbizarro.com/images/noticias/2014/05/lenguajes-programacion-webbizarro-
inside_1400515401000_alarge.jpg
LENGUAJES DE PROGRAMACIÓN POR
Glassdoor publicó
DEMANDA DE EMPLEO
recientemente un informe
sobre los 25 puestos de
trabajo más lucrativos. Más
de la mitad de los puestos de
trabajo mencionados en este
informe están relacionados
con la tecnología y requieren
conocimientos de
programación. Si estás
interesado en una carrera con
salidas y que sea lucrativa,
es posible que en tu lista de
deseos para este año tengas
que apuntar el aprender a
programar. http://programacion.net/files/article/20160226010218_ranking-
lenguajes.jpg
LENGUAJES MAS USADOS EN EL MUNDO
Los datos se obtienen
desde GitHub y Stack Overflow. 7. Ruby
El ranking es el siguiente: 8. CSS
1. JavaScript 9. C
2. Java 10.Objective-C
3. PHP 11.Shell
12.Perl
4. Python
13.R
5. C#
14.Scala
6. C++ 15.Go
Pasos para resolver un problema

1.Entender el problema.
2.Identificar las constantes y variables (de
entrada, de salida e intermedias).
3.Identificar los procesos de transformación.
4.Establecer una estrategia de solución.
Representación del problema.
5.Codificar el algoritmo en un lenguaje de
programación determinado.
6.Ejecutar y depurar el programa con base en los
resultados obtenidos.
Bibliografía
• Introducción al diseño y análisis de algoritmos : Un
enfoque estratégico. Lee., Tseng., Chang., Tsai
(BIBLIOTECA FUUA)
• Diseño de algoritmos y su codificación en lenguaje
C, Corona Nakamura María., Ancona Valdez María de
los Ángeles.
• http://www.virtual.unal.edu.co/cursos/sedes/medellin
/programacion/index.html
• http://icones.pro/es/paquete/ginux
• http://www.mathworks.com/
• Diccionario Real academia española
VARIABLES
Y TIPOS DE DATOS
JHON JAIRO ANAYA DÍAZ
JANAYA6@AREANDINA.EDU.CO
https://sites.google.com/a/areandina.edu.co/janaya6/algoritmos
Definición
• Una constante es un dato (objeto) que
permanecen sin cambios durante todo el
desarrollo del algoritmo o durante la
ejecución del programa
• Una variable es un objeto o partida de
datos cuyo valor puede cambiar durante
el desarrollo del algoritmo o ejecución
del programa.
CONSTANTE

Perímetro del circulo = 2 · π · Radio

VARIABLE VARIABLE
DATOS
Es un objeto o elemento que tratamos a lo largo
de diversas operaciones. Tienen tres
características:
 Un nombre que los diferencia del resto.

 Un tipo que nos determina las operaciones que


podemos hacer con ese dato.

 Un valor que puede variar o no a lo largo de la


operación.
DATOS
Características de los tipos:

 Cada tipo se representa o almacena de forma


diferente en la computadora.

 Bit:1/0; Byte=8 bits.

 Un tipo agrupa a los valores que hacen las


mismas operaciones.
TIPOS DE DATOS COMUNES

Datos

Numéricos Carácter Lógicos

Enteros Reales Sencillo Cadena

Corto Largo Simple Doble


NOMBRES DE VARIABLES

Para nombrar una variable en la mayoría de los


lenguajes de programación es necesario seguir
ciertas reglas:
–Debe empezar obligatoriamente con una letra (a-z
ó A-Z).
– No pueden contener espacios en blanco ni
caracteres especiales
– El resto de los dígitos pueden ser números.
– Se pueden incluir caracteres especiales como el
guión bajo (underline).
ASIGNACIÓN

Para darle valor a una variable dentro de un


algoritmo existen dos alternativas:

• Leer la variable (obviamente cuando se trata de


una variable de entrada)
Ej: Leer X
• Asignarle un valor directamente, o el resultado
de una operación
Ej: 𝑌 = 3
𝑍 = (𝑋 + 𝑌) ∗ 2
OPERADORES MATEMÁTICOS

En computadoras, los operadores matemáticos son:

– Suma +
– Resta –
– Multiplicación *
– División /
– Potencia ^
PRECEDENCIA DE LOS OPERADORES
Cuando hay operaciones aritméticas es
necesario considerar el orden en que se
evalúa la expresión cuando aparecen dos o
más operaciones.
Por ejemplo, en la expresión 1+5*3 , la
respuesta es 16 y no 18 porque el operador
de multiplicación “*” tiene una
precedencia mayor que el operador de
adición “+”.
En general los lenguajes de programación
coinciden en evaluar primero lo que se
encuentra entre paréntesis comenzando por
los paréntesis más internos. Los
paréntesis pueden ser usados para forzar
la precedencia.
OPERACIONES MATEMÁTICAS
Cuanto es:
 3+4*2+9/3-8/4 = ?

 2*3+5*2-4*4 = ?

 2*(3+5)*(2-4)*4 = ?

 2^3+3^2/9-9*0 = ?

 8+7*3+4*6 = ?
OPERACIONES MATEMÁTICAS
Se deben describir en forma detallada y
utilizando signos de agrupación para las
expresiones planteadas
a  b2
(a + b^2)/(3*x + y)
3x  y

• A más B sobre 2. 1
• 2
1+ 4
3+5
3
• 1
5+
3+1 −𝑏± 𝑏2 −4𝑎𝑐
2 • 𝑥=
2𝑎
OPERADORES RELACIONALES Y LÓGICOS

Una expresión lógica es aquella que sólo


puede devolver dos valores (Verdadero o
Falso). Los valores que pueden aparecer en
una expresión lógica son de 2 tipos:
lógicos y relacionales.

En una expresión lógica los operandos no


tienen porque ser booleanos aunque se
devuelva un valor booleano.
OPERADORES RELACIONALES Y LÓGICOS

 < menor a
 > mayor a
 = igual a
 ≠ diferente a
  menor o igual a
  mayor o igual a
OPERACIONES RELACIONALES
• 5>3

−1
• 2 >0
1+ 5
3−2

• ((3 ∗ 2) + 1 − 52 ) ≤ (42 − (5 − 7))


OPERADORES LÓGICOS
En ciertas ocasiones queremos preguntar o evaluar
por más de una condición al mismo tiempo y para
esto están los operadores lógicos

 Conector Y
 Conector Ó
 Conector NO
OPERADORES LÓGICOS
Y, O, son operadores binarios (necesitan 2
operandos de tipo lógico). El resultado es lógico
y depende de:

Operando 1 Operando 2 Conector Y Conector Ó


V V V V
V F F V
F V F V
F F F F
OPERADORES LÓGICOS
El NO niega

NOT 1/0
V F
F V

• Prioridades de los operadores: lo más


prioritario es el NO Luego el Y y el O.
OPERACIONES LÓGICAS
 ( ¿Es mayor de edad? ) Y ( ¿tiene cédula? )

 (NOTA ≥ 1.95) Y (NOTA < 2.95 )

 ((3 ∗ 5) < 12) Y ((5/2 + 3)>6)

 (NO((3 + 5) < 12))) 0 ((5/2 + 3) ≠ 6) Y (7 − 2 ≥ (5^0.5))


BIBLIOGRAFÍA
• Introducción al diseño y análisis de algoritmos
: Un enfoque estratégico. Lee., Tseng., Chang.,
Tsai (BIBLIOTECA FUUA)
• Diseño de algoritmos y su codificación en
lenguaje C, Corona Nakamura María., Ancona
Valdez María de los Ángeles.
• http://www.virtual.unal.edu.co/cursos/sedes/med
ellin/programacion/index.html
• ENRIQUE BARRUETO TUTOR SITE - Algoritmos.[En
línea]. Disponible:
http://enriquebarrueto0.tripod.com/algoritmos.h
tm

Você também pode gostar