Está en la página 1de 222

PROGRAMACIÓN DIGITAL

Ing. Jhon Apolinario


INTRODUCCIÓN
DEL PENSAMIENTO A LA PROGRAMACIÓN

Ing. Jhon Apolinario


El Pensamiento Sistémico: marco conceptual
El Pensamiento Sistémico permite apreciar la realidad con una
complejidad extrema y hay necesidad de entenderla para
apreciarla y actuar adecuadamente, es decir con criterio “Holista”
= entero, todo.
“Es el estudio de las relaciones entre las partes de un ente
integrado (abstracto o concreto) y de su comportamiento como
un todo respecto a su entorno”.
◦ Sistema Abierto
Mundo
◦ Equifinalidad
◦ Entropía

Real
Complejidad y Modelos
El enfoque de sistemas implica la conceptualización de lo que es la realidad en
términos de totalidades.

Un modelo es una representación de la realidad; es una abstracción, una


simplificación de la, misma.

1. Modelos Físicos.
2. Modelos Abstractos
Modelos Físicos
Son representaciones físicas de la realidad ,
ejemplos: maquetas, reducciones a escala.

Modelos Abstractos
Son de tipo verbal, matemático ó gráfico( planos, dibujos). Es
posible desarrollar modelos verbales, matemáticos y gráficos. La
diferencia entre cada uno de ellos es el distinto tipo de lenguaje
que se utiliza para poder expresar las conceptualizaciones de la
realidad.
Cibernética y Retroalimentación
La cibernética se refiere a los
sistemas autónomos, son capaces
de encontrar un objetivo o finalidad
por sí mismos, sin necesidad de ser
guiados o controlados por alguien o
algo fuera del sistema.
Mecanismos de comunicación y
control que permiten que el sistema
reoriente o replantee
continuamente su andar para llegar
a su meta, objetivo o fin de su
existencia, par lo cual necesita
contar con algún tipo de
servomecanismo que lo redirija
permanentemente: misil antiaéreo.
Cibernética y Retroalimentación…
La cualidad de
autocorrección sucede en
todos los sistemas y es la
base de la cibernética "que
concierne en especial a los
problemas de la
organización y los
procesos de control" .
La Retroalimentación en el
caso de los sistemas
sociales se refiere a la
capacidad que tiene éstos
para mantener estables su
dirección o finalidad
Realimentación de refuerzo
Niveles de Complejidad/Indeterminación

CERTEZA - PREDICCIÓN RIESGO - PRONÓSTICO

Medina & Ortegón (2006)


Niveles de Complejidad/Indeterminación

AMBIGÜEDAD – PENSAMIENTO
INCERTIDUMBRE - PROSPECTIVA COMPLEJO

Medina & Ortegón (2006)


Espacio de trabajo del planificador

C
o Pensamiento Complejo
m
p
l
e Prospectiva
j
i
d
a Pronóstico
d

Predicción
Medina, 2006 Indeterminación - Enfoque
Perfil de los estrategas

• Formación • Respeto por si mismo y


• Capacidad analítica por los demás
• Inteligencia • Aceptación de los demás
• Comunicador • Experiencia
• Líder • Creativo e innovador
• Compromiso • Ejecutivo
• Relaciones interpersonales • Disciplinado
• Capaz de obtener • Evaluativo
resultados

Los estrategas son funcionarios de alta dirección, son lideres de


la gestión, están comprometidos con los valores, la visión, la
misión y los objetivos
Habilidades de los estrategas

• Habilidades técnicas: Se refiere a los conocimientos y


competencias necesarias para usar métodos, técnicas, equipos,
entre otros, para la realización de una tarea especifica (escuelas
profesionales, cursos o el mismo trabajo)

• Habilidades administrativas: Se refiere a la capacidad de


planeación, organización, liderazgo y control; el líder tendrá que
pensar en la empresa como un todo (acomodar el rompecabezas)

• Habilidades humanas: Son las más difíciles de limitar por lo tanto


de entender y aplicar. Lo primero que hay que tener en cuenta para
su desarrollo son los atributos éticos, ello implica cultivar y fomentar
las características humanas que hacen de un buen administrador
un buen ser humano (empatia, compasión, comunicación y escucha
activa)
Gestión del conocimiento Prospectivo

Imágenes Visiones
Teoría Información Métodos Productos
Conocimiento Procesos Resultados
Decisiones
Sistemas

Aprendizaje
Retroalimentación

Rupturas y hechos portadores de


futuro. Potencialidades del presente
Lean Construction
Lean Construction (Construcción sin Pérdidas en español) es un enfoque
dirigido a la gestión de proyectos de construcción. Se originó en el Lean
Production Management, el cual produjo una revolución en el diseño y
producción industrial en el siglo XX. Este ha cambiado la forma de
construir los proyectos. Este enfoque maximiza el valor y minimiza las
pérdidas de los proyectos, mediante la aplicación de técnicas
conducentes al incremente de la productividad de los procesos de
construcción.
LA COMPUTACIÓN
Prehistoria
Fueron los egipcios quienes 500 años AC inventaron el primer dispositivo para
calcular, basado en bolillas atravesadas por alambres. Posteriormente, a principios del
segundo siglo DC, los chinos perfeccionaron este dispositivo, al que le agregaron un
soporte tipo bandeja y lo llamaron Saun-pan para posteriormente conocerse como
Ábaco que sumaba, restaba, multiplicaba y dividía.
ABACO
La palabra Ábaco proviene del griego ABAX que significa una tabla o carpeta cubierta
de polvo. Este dispositivo surgió en el siglo 13 DC.

Los Japoneses copiaron el ábaco chino y lo re-diseñaron totalmente, denominándolo


Soroban.
Siglos XIV al XIX
BLAISE PASCAL
En 1649 gracias a un decreto real obtuvo el monopolio para la fabricación y
producción de su máquina de calcular conocida como la PASCALINA.
Realizaba operaciones de hasta 8 dígitos.
Gottfried Wilhelm Leibniz
En 1670, Leibniz mejora la máquina inventada por Blaise Pascal, al agregarle
capacidades de multiplicación, división y raíz cúbica.
En 1679 crea y presenta el modo aritmético binario, basado en 0 y 1
Charles Babbage
Máquina Diferencial era un dispositivo de 6 dígitos que resolvía ecuaciones
polinómicas por el método diferencial.
Máquina Analítica, que tampoco fue terminada, fue diseñada como un dispositivo de
cómputo general.
Máquina Analítica
Dispositivo de entrada de la información: tarjetas metálicas perforadas en miles de
combinaciones.
Unidad de almacenaje: tablero que contenía ejes y piñones que podían registrar
dígitos.
Procesador: dispositivo con cientos de ejes verticales y miles de piñones.
Unidad de control: dispositivo en forma de barril con filamentos y ejes (como cuerdas de
piano).
Dispositivo de salida: plantillas diseñadas para ser utilizadas en una prensa de
imprenta.
Máquina Analítica
La condesa Ada Byron
Ada Byron, es considerada la primera programadora de la era de la computación, ya que
fue ella quien se hizo cargo del análisis y desarrollo de todo el trabajo del inventor y la
programación de los cálculos a procesarse.
En la década de los 80 el Departamento de Defensa de los Estados Unidos de América
desarrolló un lenguaje de programación en honor a la condesa,
Joseph Marie Jacquard
En 1801 y ya convertido en inventor e industrial textil, Joseph Marie Jacquard dio un
fundamental aporte al proceso de las máquinas programables al modificar una
maquinaria textil, inventada por Vaucanson, a la cual implementó un sistema de
plantillas o moldes metálicos perforados, unidas por correas, que permitían programar
las puntadas del tejido, logrando obtener una diversidad de tramas y figuras.
Herman Hollerith
Herman Hollerith, que trabajaba como empleado del buró de Censos, propuso su
sistema basado en tarjetas perforadas, y que puesto en práctica constituyó el primer
intento exitoso de automatizar el procesamiento de ingentes volúmenes de información.
Herman Hollerith
Las máquinas de Hollerith clasificaron, ordenaban y enumeraban las tarjetas perforadas
que contenían los datos de las personas censadas, logrando una rápida emisión de
reportes, a partir de los 6 meses. Los resultados finales del censo de 1890 se obtuvieron
en el tiempo record de 2 años y medio.
Herman Hollerith en 1896 fundó la TABULATING MACHINE COMPANY que luego se
convirtió en la Computer Tabulating Machine (CTR).
Hollerith se retiró en 1921 y en 1924 CTR cambió su nombre por el de International
Business Machines Corporation (IBM), que años más tarde se convertiría en el gigante de
la computación
Herman Hollerith
1939 - 1958 Primera
generación
John Louis von Neumann (1903-1957)
En 1944 contribuyó en forma directa en los
diseños de fabricación de computadoras de esa
generación, asesorando a Eckert y John Machly,
creadores de la ENIAC y que construyeran
además la UNIVAC en 1950. Durante esa
década trabajó como consultor para la IBM
colaborando con Howard Aiken para la
construcción de la computadora Mark I de
Harvard.
Konrad Zuse (1910-1957)

En 1940 Zuse terminó su modelo Z2, el


cual fue la primera computadora electro-
mecánica completamente funcional del
mundo.
1939 Atanasoff y Berry
La Atanasoff-Berry Computer o ABC terminada de construirse en 1942, en el Iowa State
College, fue la primera computadora electrónica digital, aunque sin buenos resultados y
nunca fue mejorada. Desafortunadamente sus inventores jamás la patentaron y por
aquel entonces surgieron problemas sobre la propiedad intelectual de la misma, en
cuyas divergencias participó la IBM.
1941 Alan M. Turing y la
Colossus
En 1941 Alan M. Turing, con la ayuda de M.H.A. Neuman, construyó una enorme
computadora en los predios de la Universidad de Manchester, Inglaterra, a la cual
llamaron Colossus.
Su uso exclusivo fue el de descifrar los códigos de los mensajes radiales captados a los
alemanes.
La MARK I de IBM en 1944
La Calculadora Automática de Control Secuencial de la Mark I es la primera máquina
capaz de ejecutar largas operaciones en forma automática. Medía 15 metros de largo,
2.40 m. de altura y pesaba 5 toneladas.
Grace Hooper (1906-1992)
Ella creó el lenguaje Flowmatic, con el
cual desarrolló muchas aplicaciones y
en 1951 produjo el primer
compilador, denominado A-0 (Math
Matic). En 1960 presentó su primera
versión del lenguaje COBOL (Common
Business-Oriented Language).
LA ENIAC (1946)
Otra famosa computadora de la época fue la ENIAC
(Electronic Numerical Integrator and Computer) que
contaba con 17.468 tubos de vidrio al vacío,
similares a los radio-tubos, y que fuera empleada
por el ejército exclusivamente para cálculos
balísticos y trayectoria de misiles.
LA EDVAC (1949)
La computadora EDVAC (Electronic Discrete
Variable Automatic Computer), construida en
la Universidad de Manchester en 1949, fue el
primer equipo con capacidad de
almacenamiento de memoria e hizo desechar
a los otros equipos que tenían que ser
intercambiados o reconfigurados cada vez que
se usaban.
LA UNIVAC (1951)
A fines de esta generación,
entre 1951 y 1958 Mauchly y
Eckert construyeron la famosa
serie UNIVAC (Universal
Automatic Computer), la
misma que fue diseñada con
propósitos de uso general y
universal pues ya podía
procesar problemas
alfanuméricos y de datos.
Avances Importantes
1948
William Bradford Shockley inventa el transistor
Jack Forrester inventa la memoria de núcleo de acero. Estos núcleos de almacenamiento
sirven como la tecnología básica detrás de cada computadora hasta los años 70s.
1952: IBM
1959 - 1964 Segunda
generación
Fueron John Bardeen, Walter Brattain y William Shockley quienes conociendo las
propiedades del silicón hallado en las piedras de cuarzo, finalmente concibieron el
Transistor. Sus componentes originales fueron muy simples. Cada uno de ellos estaba
soldado encima de una tabla de circuitos que servía para conectar a otros componentes
individuales.
1958 Los Circuitos Integrados
Fue en 1958 que Jack Kilby y Robert Noycea, de la Texas Instrument, inventaron los
circuitos integrados, que eran un conjunto de transistores interconectados con
resistencias, dentro de un solo chip. Fue a partir de este hecho que las computadoras
empezaron a fabricarse de menor tamaño, más veloces y a menor costo, debido a que la
cantidad de transistores colocados en un solo chip fue aumentando en forma exponencial.
Vale decir de unos miles de ellos a decenas de millones en tan sólo un chip.
1962: IBM
Se crea el modelo 1311, usando los primeros discos
removibles y que por muchísimos años se
convertirían en un estándar en la industria de la
computación. La portabilidad de la información
empezó a ser posible gracias a esta nueva
tecnología, la cual fue empleada por los líderes del
hardware, tales como Digital Equipment, Control
Data y la NEC de Japón, entre otros grandes
fabricantes de computadoras.
Cada paquete de discos (disk pack) podía guardar
mas de 2 millones de caracteres de información, (2
Megabytes de ahora), lo cual promovió la generación
de lenguajes de programación y sus respectivas
aplicaciones, ya que los usuarios podían
intercambiar los paquetes de discos con facilidad. En
la actualidad existen muchos medios de
almacenamiento portables: diskettes, ZIP's, CD-
ROMs, DVDs, etc.
1964 - 1971 Tercera
generación
En Abril de 1964 IBM presenta su generación de computadores IBM 360
1964
BASIC (Beginners All-purpose Symbolic Instruction Language) es creado por Tom Kurtz
y John Kemeny de Dartmouth.
1970
IBM desarrolla e introduce los floppy disks (discos flexibles) empleados para cargar
el micro-código de la IBM 370.
1971: Intel
1971 - 1981 Cuarta
generación
1971 La Kenbak I, primera PC

La Kenbak 1, fue fabricada en 1971 por John Blankenbaker de la Kenbak Corporation


de Los Angeles, vale decir 4 años antes que la Altair fuese lanzada al mercado. Esta PC
fue dirigido al mercado educacional y contaba con apenas 256 bytes (no kilobytes) de
memoria RAM y su programación se realizaba por medio de palanquillas (switches).
Solamente se comercializaron 40 equipos al costo de 750 dólares.
1973 Los discos Winchester
Los discos duros Winchester son introducidos
por IBM en los modelos 3340. Estos dispositivos
de almacenamiento se convierten en el estándar
de la industria. Está provisto de un pequeño
cabezal de lectura/escritura con un sistema de
aire que le permite movilizarse muy cerca de la
superficie del disco de una película de 18
millonésimas de pulgada de ancho.
1974 8080, el primer CPU de
Intel
La verdadera industria de la
computación, en todos los aspectos,
empezó en 1974 cuando Intel
Corporation presentó su CPU (Unidad
Central de Procesos) compuesto por un
microchip de circuito integrado
denominado 8080.
Este contenía 4,500 transistores y podía
manejar 64k de memoria RAM a través
de un bus de datos de 8 bits. El 8080 fue
el cerebro de la primera computadora
personal Mits Altair, la cual promovió un
gran interés en hogares y pequeños
negocios a partir de 1975.
1975 La Altair 8800
La primera computadora personal
comercial fue la Altair 8800 fabricada por
la empresa MITS en 1975, diseñada por
Ed Roberts y Bill Yates.
El primer modelo de estas computadoras
no contaba con monitor ni teclado, tan
sólo con luces LED y pequeñas palancas o
switches para facilitar la programación.
La información era almacenada en
cassettes de las radio grabadoras y era
visualizada en aparatos de televisión.
Su costo era de $395.00 con una
memoria de 256 bytes.
1975 Fundación de Microsoft
En 1975 William Henry Gates y Paul
Allen forman Microsoft Corporation,
en la ciudad de Alburquerque, Nuevo
México, debido a que la sede de la
MITS estaba en esa ciudad. Microsoft
fue el proveedor de la versión del
lenguaje BASIC para la computadora
personal MITS Altair.
1975 CM/P
Gary Kildall y John Torode fundan en 1975 la
Digital Research que ingresa exitosamente al
mercado con su sistema operativo CP/M (Control
Program for Microcomputers), escrito por Gary
Kildall para las computadoras basadas en los
microchips 8080 y Z80 y que fueran muy
populares en los finales de la década de los 70.
Con la aparición del MS-DOS, el sistema
operativo CMP virtualmente desapareció del
mercado.
1976
Anarquía
1981 Personal Computer (PC)
El 12 de agosto de 1981 IBM lanzó la
Personal Computer (IBM PC), que
poseía un microprocesador 8088, 16K
de RAM, ampliable a 256k y una unidad
de diskettes de 160K. Su monitor era de
pantalla verde monocromática y con un
costo inicial fue de US $ 2,880.00.
Su sistema operativo era el IBM PC-
DOS, adquirido a Microsoft.
Se calcula que en pocos meses se
vendieron alrededor de unos 35,000
equipos sobrepasando las expectativas
de la empresa.
El dominio de MICROSOFT
Microsoft había adquirido recientemente de la
Seattle Computer Products una versión "clon"
del CP/M. Microsoft pagó por este
sistema $50,000.00.
Este mismo producto fue mejorado por
Microsoft, quien contrató a su autor, el Ing. Tim
Paterson, para que trabaje 4 días a la semana y
finalmente la licencia del producto fue
otorgada a IBM el cual le puso el nombre PC-
DOS.
1984
Apple presenta la Macintosh, la cual se
caracteriza por su sistema operativo que
cuenta con una vistosa e intuitiva GUI
(Graphics Unit Interface), la misma que
además de impactar al mercado, llamó
poderosamente el interés de William
Gates de la Microsoft.
Se dice que Gates empezó a visitar a
Steven Jobs y a captar muchas de las
ideas y conceptos de la nueva interfase
gráfica. Años más tarde Microsoft
lanzaría su primera versión de Windows,
la misma que tenía un gran parecido a la
GUI de la Apple Macintosh.
Pentiums
Internet Inicios
En Diciembre de 1970, el Network Working
Group (NWG) liderado por S.Crocker acabó el
protocolo host a host inicial para ARPANET,
llamado Network Control Protocol (NCP).
Cuando en los nodos de ARPANET se
completó la implementación del NCP
durante el periodo 1971-72, los usuarios de
la red pudieron finalmente comenzar a
desarrollar aplicaciones.
Internet Inicios
Internet Inicios
Internet
1968 - DARPA (Defense Advanced Research Projects Agency) contracts with
BBN (Bolt, Beranek & Newman) to create ARPAnet
1970 – Primeros 5 nodos:
– UCLA
– Stanford
– UC Santa Barbara
– U of Utah, and
– BBN
1974 – TCP specification by Vint Cerf
1984 – On January 1, the Internet with its 1000 hosts converts en masse to
using TCP/IP for its messaging
Evolución Mosaic
Age of
e-Commerce
Begins
Internet WWW Created 1995
Named Created 1993
and 1989
Goes
TCP/IP TCP/IP
Created 1984
ARPANET 1972
Hypertext 1969
Invented
Packet 1965
Switching
First Vast Invented
Computer 1964
Network
Silicon Envisioned
A Chip 1962
Mathematical 1958
Theory of
Memex Communication
Conceived 1948
1945
Copyright 2002, William F. Slater, III, Chicago, IL, USA
1945 1995
Servidores en Internet
1977: 111
1981: 213
1983: 562
1984: 1.000
1986: 5.000
1987: 10.000
1989: 100.000
1992: 1.000.000
2001: 160.000.000
2004: 198.000.000
2007: 215.400.000
2009: 226.099.841
2010: 232.839.963
Servidores en Internet
2011: 273.301.445
• Apache 161,591,445 hostnames (59.13%)
• Microsoft 57,392,351 hostnames (21%)
• nginx 20,504,634 hostnames (7.50%)
• Google 15,112,532 hostnames (5.53%)
• lighttpd 1,866,872 hostnames (0.68%)
Julio de 2011
Servidores en Internet

Copyright 2002, William F. Slater, III, Chicago, IL, USA


Mainframe
PC
Notebook
Netbook
Smartphone
IPhone
Tablet
Software Libre
Según la Free Software Foundation, el software libre se refiere a la libertad de los
usuarios para ejecutar, copiar, distribuir, estudiar, modificar (y distribuir) el software.
Software libre
Software Privativo
El software privativo (también llamado propietario, de código cerrado o software
no libre) es cualquier aplicación computacional en la que el usuario tiene
limitaciones para usarla, modificarla o redistribuirla (esto último con o sin
modificaciones).
ALGORITMOS
Algoritmos
¿Que es un algoritmo?
◦ “Una lista de instrucciones donde se especifica una sucesión de operaciones
necesarias para resolver cualquier problema de un tipo dado”.
◦ Ejemplo sumar dos números
Algoritmos
Algoritmos
1. 5+1=6

491 2. Anotar 6
3. 2+9=11
+ 25 4. Anotar 1 y guardar 1
5. 4+0=4
516 6. 4+1=5
7. Anotar 5
8. El resultado es 516
Algoritmos

V +
V V V
+ F V F F
F V F
F F F F
Algoritmos

san
+ sano
sansano
Algoritmos
Entrada
◦ ¿Qué se necesita para realizar los pasos?

Salida
◦ ¿Que se obtiene al final del algoritmo?

Tipos de datos
◦ Números: enteros, reales, complejos
◦ Texto: letras, palabras, frases
◦ Otros
Algoritmos
Sirven para resolver un tipo de problema especifico.
Son secuencias de pasos concretos.
Requiere la definición de la entrada y la salida.
Adecuados para ser ejecutados por un computador
Algoritmos
¿Qué tiene que ver con la programación?
◦ La programación consiste en crear programas de computador que resuelvan
problemas específicos.
◦ Un programa de computador es la implementación de un algoritmo.
Algoritmos
¿Qué es un programa de computador?
◦ Es una secuencia de pasos a ejecutar
◦ Los pasos están descritos en un lenguaje especial.
◦ Este lenguaje se puede traducir al lenguaje del computador.
◦ Por lo general es un archivo de texto.
◦ El texto escrito en dicho lenguaje se denomina el código del programa.
Descripción de un algoritmo
Es necesario contar con formas de expresar
algoritmos
◦ Diseño del algoritmo antes de codificar
◦ Diseño del algoritmo de manera independiente del
lenguaje de programación
Diferentes alternativas
◦ Pseudo - código
◦ Diagramas de flujo
◦ Diagramas de Nassi-Schneidermann
Descripción de un algoritmo
Pseudo – código
◦ El algoritmo se expresa en lenguaje natural
◦ Expresa de manera genérica los pasos del algoritmo
◦ No provee detalles de la implementación particular del código final
Descripción de un algoritmo
Diagramas de flujo
◦ Presentan el algoritmo de manera gráfica.
◦ De gran utilidad para seguir la “ruta” de un algoritmo.
◦ Aplicables a muchas otras disciplinas.
Descripción de un algoritmo
Diagrama de Nassi-Schneidermann
◦ También se denominan diagramas de caja.
◦ Menos usado que el diagrama de flujo
◦ Mas ordenado
◦ Ocupa mucho espacio para representar algoritmos complejos.
Construcción de un algoritmo
1. Definir el problema a resolver
2. Identificar las entradas del algoritmo
3. Identificar la salida del algoritmo
4. Definir los pasos a seguir para convertir las
entradas en la salida
5. Seguir los pasos y comprobar que el algoritmo
sea correcto analizando la salida.
6. Revisar los pasos y hacer las correcciones.
7. Resolver el problema.
Construcción de un algoritmo
Construcción de un programa
1. Definir el problema a resolver
2. Definir el algoritmo que lo resuelve
3. Escribir el programa
◦ Escribir cada uno de los pasos del algoritmo en el lenguaje
de programación
4. Ejecutar el programa en el computador
5. Verificar que las salidas sean correctas
6. Hacer correcciones al programa
7. Resolver el problema
Construcción de un algoritmo
Ejemplo:
◦ Objetivo: Calcular el precio de una manzana
◦ Entradas
◦ Precio (en pesos) del kilo de manzanas [K]
◦ Peso (en gramos) promedio de una manzana[P]
◦ Salida
◦ Precio (en pesos) de una manzana [M]
Construcción de un algoritmo
Inicio
Ingresar valor de K y P

Calcular G = K/100

Calcular M = G x P

Devolver el valor de M

Fin.
Construcción de un algoritmo
Ingresar K y P

G=K/1000

M=G x P

Devolver M
Construcción de un algoritmo

Ingresar K y P
G=K/1000
M=G x P
Devolver M
Construcción de un algoritmo
Operaciones básicas
◦ Entrada de datos
◦ Salida de datos
◦ Utilización de variables
◦ Utilización de constantes
◦ Aplicación de operadores
◦ Asignación de valores

Combinación de operaciones básicas


◦ Secuencial
◦ Selectiva
◦ Repetitiva
Entrada de datos
Los algoritmos son para solucionar tipos de problemas
Es imprescindible poder entregar entradas distintas en cada ejecución
La entrada de datos se realiza mediante algún dispositivo
Entrada de datos
Dispositivos de entrada
◦ Teclado
◦ Mouse
◦ Botones
◦ Censores de tacto
◦ Cámaras digitales
◦ Scanners
◦ Archivos
Entrada de datos
Entrada de datos
Cada dispositivo tiene distintas características.
Por lo general, sirven para cosas distintas
Los sistemas definen un dispositivo de entrada por defecto
◦ Este dispositivo se denomina la entrada estándar.
◦ En un computador suele ser el teclado.
Salida de datos
De nada sirve implementar un algoritmo si no podemos saber su
resultado.
Al finalizar el algoritmo (o durante), es imprescindible obtener la
información resultante de su ejecución.
La salida de datos se realiza mediante dispositivos.
Salida de datos
Dispositivos de salida
◦ Pantalla
◦ Impresora
◦ Parlantes
◦ Tableros luminosos
◦ Motores
◦ Tarjeta de red
◦ Archivos
Salida de datos
C:\
Salida de datos
Al igual que con la entrada, cada dispositivo tiene finalidades distintas.
Los sistemas definen un dispositivo de salida por defecto
◦ Este dispositivo se denomina la salida estándar.
◦ En un computador suele ser la pantalla.
Utilización de variables
Durante la ejecución del algoritmo, es importante recordar los
resultados parciales de cada paso.
Estos resultados se etiquetan con un nombre.
Al invocar con posterioridad ese nombre, recuperamos el resultados
parcial.
Utilización de variables
K es un dato de entrada, y también
Se considera una variable

G=K/1000

Esta variable se denomina G y


se utiliza para recordar el valor
de un gramo de manzana.
Utilización de variables
La principal característica de una variable es que su valor puede cambiar
en el tiempo.
Usualmente se compara con una caja donde se puede almacenar una
sola “cosa”.
Por lo general, las variables se definen con un tipo de dato.
El tipo de dato restringe que tipo de “cosas” se pueden guardar en las
“cajas”.
Utilización de constantes
Además de las variables, un algoritmo requiere de constantes.
A diferencia de las variables, su valor no puede cambiar en el tiempo.
Las constantes también pueden recibir nombres para mayor claridad.
◦ Ej.: PI = 3.1415
Utilización de constantes

G=K/1000

La constante “1000” sirva para


transformar el valor Por kilo a un
valor por gramo
Aplicación de operadores
Para obtener resultados, generalmente es
necesario “transformar” las entradas en la salida.
Para esto se aplican operadores de distinta índole
◦ Aritméticos ( + , - , * , / )
◦ Lógicos (igual que, mayor que, menor que, y, o, no)
◦ Etc.
Los operadores requieren de operandos y entregan
un resultado.
Por lo general, los operadores son unarios o
binarios.
Aplicación de operadores
operandos

M=G * P

operador
Asignación de valores
El resultado de un operador se puede almacenar en una variable.
Para esto se utiliza un tipo especial de operador.
Este es el operador de asignación.
Solo se pueden asignar valores a variables, no a constantes
Asignación de valores
Operador de asignación

M=G * P

El resultado de GxP se asigna a la variable M


Combinación de operaciones básicas
Secuencial
◦ Un conjunto de operaciones básicas pueden ser ejecutadas en forma
secuencial.
◦ Una operación no inicia hasta que la anterior termina
Combinación de operaciones básicas
Diagrama de flujo
Diagrama de Nassi-Schneidermann

Ingresar K y P
Ingresar K y P Ingresar K=200 y P=250
G=K/1000 G=K/1000 G tiene el valor 0,2
M=G * P
M=G * P
Devolver M M tiene el valor 50
Devolver M
Combinación de operaciones básicas
Selectiva
◦ Un algoritmo puede optar por ejecutar o no una operación (SI –ENTONCES).
◦ Un algoritmo puede optar por ejecutar una u otra operación (SI-ENTONCES-
SINO).
◦ Esta decisión se basa en un condición.
◦ Esta decisión controla el flujo del algoritmo.
◦ Por esto, se denomina una estructura de control.
Combinación de operaciones básicas
1

C
3

4 C: Condición
Combinación de operaciones básicas
1
2

C
si no
3
4

C: Condición
Combinación de operaciones básicas
Inicio
Ejecutar 1
Ejecutar 2
si se cumple C entonces
Ejecutar 3
fin si
Ejecutar 4
fin
Combinación de operaciones básicas
Ejemplo: levantarse en la mañana

Inicio
salir de la cama
ducharse
tomar desayuno
si esta lloviendo entonces
tomar el paraguas
fin si
tomar la mochila
tomar la micro
fin
Combinación de operaciones básicas
1

si no
C

3a 3b

4
C: Condición
Combinación de operaciones básicas
1
2

C
si no
3a 3b
4

C: Condición
Combinación de operaciones básicas
Inicio
Ejecutar 1
Ejecutar 2
si se cumple C entonces
Ejecutar 3a
si no
Ejecutar 3b
fin si
Ejecutar 4
fin
Combinación de operaciones básicas
Ejemplo: levantarse en la mañana

Inicio
salir de la cama
ducharse
tomar desayuno
si esta lloviendo entonces
llevar la parca
si no
llevar la chaqueta
fin si
tomar la mochila
tomar la micro
fin
Combinación de operaciones básicas
Estructura de control selectiva
◦ Una condición es cualquier proposición lógica que tenga un valor verdadero
o falso definido.
◦ Este esquema selectivo se denomina “decision binaria”.
◦ ¿Y si hay más de dos opciones?
Combinación de operaciones básicas
Estructura de control selectiva
◦ Toda decisión se puede llevar a un esquema de decisión binaria.
◦ Basta con decidir entre una alternativa y todo el resto
◦ Si se elige “el resto”, se decide entre una alternativa y el resto del resto.
◦ Etc…
Combinación de operaciones básicas
1

x mayor que 0 x menor que 0


x?

x igual a 0

2a 2b 2c

3
Combinación de operaciones básicas
1

si no
x mayor que 0?

x menor que 0?
no si

2a 2b 2c

3
Combinación de operaciones básicas
1
x mayor que 0?
si no
x menor que 0?
no si

2a
2b 2c

3
Combinación de operaciones básicas
Inicio
Ejecutar 1
Si x es mayor que cero entonces
Ejecutar 2a
Si no
Si x es menor que cero entonces
Ejecutar 2c
Si no
Ejecutar 2b
fin si
fin si
Ejecutar 3
Combinación de operaciones básicas
Ejemplo: levantarse en la mañana

Inicio
salir de la cama
ducharse
tomar desayuno
si esta lloviendo entonces
llevar la parca
si no esta lloviendo pero hace frío
llevar la chaqueta
si no
llevar un chaleco
fin si
tomar la mochila
tomar la micro
fin
Combinación de operaciones básicas
Estructura de selección múltiple
◦ Para algunos casos se puede utilizar un esquema selectivo
no binario (EN EL CASO DE)
◦ Ejemplo: ingreso de opción de menú de un cajero
automático
◦ Si el usuario presionó el botón 1, hacer un giro
◦ Si el usuario presionó el botón 2, entregar saldo
◦ Si el usuario presionó el botón 3, cambiar la clave
◦ Etc.
Combinación de operaciones básicas

etoc
Botón
1 2 3

giro saldo clave … error

salir
Combinación de operaciones básicas
Botón
1 2 3 etoc

giro saldo clave … error

salir
Combinación de operaciones básicas
Inicio
en el caso que el botón presionado
sea el 1
hacer giro
sea el 2
entregar saldo
sea el 3
cambiar clave

En cualquier otro caso
Error
fin caso
Combinación de operaciones básicas
Repetitiva
◦ Además de combinar operaciones en forma secuencial y selectiva, se puede
repetir la ejecución de una operación cuantas veces se desee.
◦ Existen varios esquemas
◦ Repetir MIENTRAS se cumpla una condición.
◦ Repetir HASTA QUE se cumpla una condición.
◦ Repetir un número de veces.
Combinación de operaciones básicas
MIENTRAS
◦ Se repite una operación mientras una condición sea verdadera.
◦ Al dejar de serlo, se rompe el ciclo
◦ Si la condición nunca es falsa, se tiene un ciclo infinito.
Combinación de operaciones básicas
1

no
C
si

3
C: Condición
Combinación de operaciones básicas
1
C

C: Condición
Combinación de operaciones básicas
Inicio
ejecutar 1
mientras se cumpla la condición
ejecutar 2
fin mientras
ejecutar 3
fin
Combinación de operaciones básicas
Ejemplo validar ingreso de valor positivo

Inicio
definir variable x
asignar el valor -1 a x
mientras x sea menor que cero
ingresar x por teclado
fin mientras
mostrar valor de x
fin
Combinación de operaciones básicas
HASTA QUE
◦ Se repite la ejecución de una operación hasta que se cumpla una condición.
◦ La principal diferencia con MIENTRAS es que la operación se ejecuta al
menos una vez.
Combinación de operaciones básicas
1

no
C
si
3
C: Condición
Combinación de operaciones básicas
1

C
3

C: Condición
Combinación de operaciones básicas
Inicio
ejecutar 1
repetir
ejecutar 2
hasta que se cumpla condición
ejecutar 3
fin
Combinación de operaciones básicas
Ejemplo
◦ Mismo ejemplo anterior

Inicio
definir variable x
repetir
ingresar x por teclado
Hasta que x sea mayor que cero
mostrar valor de x
fin
Combinación de operaciones básicas
Repetir un número fijo de veces
◦ Muy útil cuando se sabe el numero de repeticiones a ejecutar.
◦ Por lo general se define una variable que sirve de contador
◦ El contador mantiene el número de cada iteración.
◦ También se puede definir el incremento del contador en cada iteración.
Combinación de operaciones básicas
1

Inicio contador, fin contador

3
Combinación de operaciones básicas
1
Inicio contador, fin contador

3
Combinación de operaciones básicas
Inicio
ejecutar 1
desde contador inicial hasta
contador final
ejecutar 2
fin desde
ejecutar 3
fin
Combinación de operaciones básicas
Ejemplo 5

i
i 0
Inicio
definir variable “sumatoria”
asignar el valor 0 a “sumatoria”
desde i igual a 0 hasta i igual a 5
sumatoria = sumatoria + i
fin desde
mostrar valor de “sumatoria”
fin
Combinación de operaciones básicas
Combinación de estructuras de control seriales, selectivas y repetitivas
◦ Cualquier combinación es posible
◦ Pueden existir estructuras anidadas
◦ Es importante definir el comienzo y el termino de cada estructura
Combinación de operaciones básicas
Ejemplos
◦ Cachi-pun
◦ Ordenar objetos
DIAGRAMAS DE FLUJO
Diagrama de Flujo

Diagramas de Flujo. Representación simbólica. Símbolos utilizados.


Convenciones. Técnicas de construcción de diagramas. Estructuras
básicas. Normas para su representación. Ejemplo.
Diagrama de Flujo

Tanto en la fase de análisis del problema como durante


el diseño del algoritmo, se plantea la necesidad de
representar claramente el flujo de operaciones que se
han de realizar para su resolución y el orden en que
estas operaciones deber ser ejecutadas.
Una vez que el algoritmo esté diseñado se debe
proceder a representarlo mediante algún método de
programación, siendo los más usuales: diagramas de
flujo, pseudocódigo, diagramas N-S o Tablas de
decisión.
Una vez graficado el algoritmo se procede a su escritura
en algún lenguaje de programación para su posterior
ejecución.
Esta representación independiza al algoritmo del
lenguaje de programación elegido, permitiendo de esta
manera que pueda ser codificado indistintamente en
cualquier lenguaje.
Diagrama de Flujo

Las dos herramientas mas utilizadas comunmente para describir


algoritmos son:
Diagramas de Flujo: son representaciones gráficas de secuencias de
pasos a realizar. Cada operacion se representa mediante un símbolo
normalizado el Instituto Norteamericano de Normalizacion (ANSI -
American National Standars Institute). Las líneas de flujo indican el
orden de ejecución.
Los diagramas de flujo suelen ser usados solo para representar
algoritmos pequeños, ya que abarcan mucho espacio.
Diagrama de Flujo

Pseudocódigos: describen un algoritmo de forma similar a un lenguaje


de programacióon pero sin su rigidez, de forma más parecida al
lenguaje natural. Presentan la ventaja de ser más compactos que los
diagramas de flujo, más fáciles de escribir para las instrucciones
complejas y más fáciles de transferir a un lenguaje de programación. El
pseudocódigo no está regido por ningún estándar.
Algunas palabras usadas son LEER/IMPRIMIR para representar las
acciones de lectura de datos y salida de datos.

Calcular una altura en pulgadas (1 pulgada=2.54 cm) y pies (1 pie=12 pulgadas), a partir
de la altura en centímetros, que se introduce por el teclado.
Inicio
1- IMPRIMIR 'Introduce la altura en centimetros: '
2- LEER: altura
3- CALCULAR pulgadas=altura=2:54
4- CALCULAR pies=pulgadas=12
5- IMPRIMIR 'La altura en pulgadas es: ', pulgadas
6- IMPRIMIR 'La altura en pies es : ', pies
Fin
Diagrama de Flujo

El uso de diagramas de flujo como herramienta de


programación tiene beneficios que resumidamente se
detallan:
Rápida comprensión de las relaciones
Se pueden usar como modelos de trabajo para el
diseño de nuevos programas
Documentación adecuada de los programas
Produce una codificación eficaz en los programas
Depuración y pruebas ordenadas de programas
Fácil de traducir a cualquier lenguaje de programación.
Diagrama de Flujo
5. 2 Representacion Simbólica

Los símbolos estándar han sido normalizados por ANSI


(American National Standards Institute), IBM, IRAM
(Instituto Racionalizador Argentino de Materiales) y son
muy variados..
S IM B O L O S F U N C IO N

R e p re s e n a e l F in y C o m ie n z o d e l d ia g ra m a

E n tra d a /s a lid a - C u a lq u ie r tip o d e in tro d u c c ió n d e d a to s e n la m e m o ria d e sd e lo s


p e rifé rico s d e e n tra d a o re g is tro d e la in fo rm a c ió n p ro c e sa d a e n u n p e rifé ric o d e
s a lid a (n o in te re sa e l s o p o rte )

O p e r a c ió n o p r o c e s o - a c c io n e s a r e a liz a r ( s u m a r d o s n ú m e r o s , c a lc u la r r a í z
c u a d ra d a , a s ig n a cio n e s , e tc .-

S u b r u t in a - lla m a d a a u n s u b p r o g r a m a q u e e s u n m ó d u lo in d e p e n d ie n t e d e l
p ro g r a m a p r in c ip a l q u e re a liz a u n a d e te rm in a d a ta re a y re g r e s a a la s ig u ie n te
in s tru cc ió n d e d o n d e fu e lla m a d a .

D e c is ió n - o p e r a c io n e s ló g ic a s o d e c o m p r a c ió n e n t r e d a t o s y e n f u n c ió n d e l
Si ? No re s u lta d o d e te rm in a cu a l d e lo s d o s d is tin to s c a m in o s a lte rn a tivo s d e l p ro g ra m a se
d e b e s e g u ir. N o rm a lm e n te tie n e d o s re s p u e s ta s S I o N O

C o n e cto r - e n la z a d o s p a rte s c u a le s q u ie ra d e l d ia g ra m a m e d ia n te u n co n e c to r d e
s a lid a y o tro d e e n tra d a . S ie m p re d e n tro d e la m is m a p á g in a

L ín e a d e F L u jo - in d ica e l s e n tid o d e la e je c u c ió n d e la s o p e ra c io n e s

C o n e cto r - id e m a l co n e c to r a n te rio r p e ro u sa n d o d is titn a s p á g in a s

T e cla d o - in tro d u c c ió n m a n u a l d e d a to s d e s d e e l te c la d o

Im p re s o ra - s a lid a d e d a to s e n fo rm a im p re sa

D is c o M a g n é tic o - p a ra le c tu ra o g ra b a c ió n d e d a to s

P a n ta lla - E n tra d a / S a lid a d e d a to s p o r p a n ta lla

C in ta M a g n é tic a - p a ra le c tu ra o g ra b a ció n d e d a to s

D is q u e te o d is co fle x ib le - p a ra le c tu ra o g ra b a c ió n d e d a to s

C D - D is co C o m p a c to - p a ra le c tu ra o g ra b a c ió n d e d a to s
Diagrama de Flujo
5.3 Tecnicas de construccion de diagramas

5.3.1 Estructuras Básicas


Las estructuras básicas son las tres siguientes:

Secuencia
Alternativa o Selectiva
Iteración o Repetitiva
Diagrama de Flujo
5.3 Tecnicas de construccion de diagramas

5.3.1 Estructuras Básicas


Secuencia
Alternativa o Selectiva
Iteración o Repetitiva

Se compone de un grupo de acciones que se realizan


todas y en el orden en que están escritas, sin
posibilidad de omitir ninguna de ellas.
Las tareas se suceden de forma tal que la salida de una
de ellas es la entrada de la siguiente y así
sucesivamente hasta el final del proceso.
Diagrama de Flujo
5.3 Tecnicas de construccion de diagramas

5.3.1 Estructuras Básicas


Secuencia
Alternativa o Selectiva
Iteración o Repetitiva

Permite la selección entre dos grupos de acciones


dependiendo de que una determinada condición se cumpla
o no.
Estas estructuras se utilizan para tomar decisiones lógicas;
por ello recibe también el nombre de estructuras de
decisión o alternativas o condicional.
Las condiciones que se especifican usan expresiones
lógicas y usan la figura geométrica en forma de rombo.
Estas estructuras pueden ser: Simples o dobles.
Diagrama de Flujo
5.3 Tecnicas de construccion de diagramas

5.3.1 Estructuras Básicas


Secuencia
Alternativa o Selectiva
Iteración o Repetitiva

Simple: Solo obliga a realizar acciones si se cumple la


condición. El “no cumplimiento” de la condición implica
que no se realizará ninguna acción.

Doble: El cumplimiento o no de la condición lógica obliga


a la ejecución de diferentes grupos de acciones.
NO Condicion SI NO Condicion SI

Accion Accion Accion

1 2
Diagrama de Flujo
5.3 Tecnicas de construccion de diagramas

5.3.1 Estructuras Básicas


Secuencia
Alternativa o Selectiva
Iteración o Repetitiva

Estructura de elección entre varios casos


Este tipo de estructura permite decidir entre varios
caminos posibles, en función del valor que tome una
determinada instrucción.
Diagrama de Flujo
5.3 Tecnicas de construccion de diagramas

5.3.1 Estructuras Básicas


Secuencia
Alternativa o Selectiva
Iteración o Repetitiva

Permite repetir una o varias instrucciones un número


determinado de veces que vendrá determinado por una
condición. Esta condición se conoce como condición de
salida.

A estos tipos de estructuras se las conoce también con


el nombre de bucles o rulos y al hecho de repetir la
ejecución de acciones se llama iteración.
Diagrama de Flujo
5.3 Tecnicas de construccion de diagramas

5.3.1 Estructuras Básicas


Secuencia
Alternativa o Selectiva
Iteración o Repetitiva

HACER MIENTRAS: Se caracteriza porque la condición de


salida del bucle está situada al comienzo del mismo, es
decir las acciones la hace mientras se cumple
determinada condición.
Cuando se ejecuta una estructura de este tipo, lo que
primero se hace es evaluar la condición, si la misma es
falsa no se realiza ninguna acción. Si la condición resulta
verdadera entonces se ejecuta el cuerpo del bucle
(acciones de la Figura). Este mecanismo se repite
mientras laque
condición
en este tipo desea verdadera.
C o n d ic io n No

Se hace notar estructura


Si

las acciones pueden no ejecutarse ninguna


vez. A c c io n e s
Diagrama de Flujo
5.3 Tecnicas de construccion de diagramas

5.3.1 Estructuras Básicas


Secuencia
Alternativa o Selectiva
Iteración o Repetitiva

HACER HASTA: Se caracteriza porque la condición que


controla la realización de las acciones del bucle está al
final del mismo. En este tipo de iteración las acciones
se repiten mientras la condición sea falsa, lo opuesto a la
estructura hacer mientras.
Este tipo de bucle se usa para situaciones en las que se
desea que un conjunto de instrucciones se ejecute al
menos una vez antes de comprobar la condición de A c c io n e s

iteración. La figura muestra la gráfica correspondiente.

C o n d ic io n No

SI
Diagrama de Flujo
5.3 Tecnicas de construccion de diagramas

5.3.1 Estructuras Básicas


Secuencia
Alternativa o Selectiva
Iteración o Repetitiva

Se puntualizan algunas diferencias entre estas dos


estructuras:
●La estructura mientras termina cuando la condición es

falsa, en cambio la estructura hasta termina cuando la


condición es verdadera.
●En la estructura hasta el cuerpo del bucle se ejecuta
siempre al menos una vez, en cambio en la estructura
mientras permite que el cuerpo del bucle nunca se
A c c io n e s

ejecute.
C o n d ic io n N o

S i

C o n d ic io n No

A c c io n e s

SI
Diagrama de Flujo
5.4 Normas para su representación

Para confeccionar un diagrama de flujo, es aconsejable


respetar las siguientes reglas:
●Todo diagrama de flujo debe indicar claramente donde
comienza (INICIO o COMENZAR) y donde termina (FIN o
PARAR).
El orden en que deben escribirse los símbolos es de

arriba abajo y de izquierda a derecha.


Es aconsejable emplear un símbolo para cada acción.

Dentro de los símbolos no especificar instrucciones


propias de algún lenguaje de programación.


●La secuencia se indica mediante flechas o líneas de
conexión (horizontales / verticales), las cuales deben ser
siempre rectas, no se deben cruzar ni deben estar
inclinadas.
Diagrama de Flujo
5.4 Normas para su representación

A todos los símbolos (excepto al INICIO), les debe llegar


una línea de conexión.


De todos los símbolos, excepto FIN y el de DECISIÓN,

debe salir una sola línea de conexión.


●Es aconsejable usar conectores cuando las líneas de
conexión entre operaciones no adyacentes son muy
largas, pero hay que tener en cuenta que el uso
exagerado de conectores dificulta el entendimiento.
Cuando trabajamos con operaciones lógicas recurrir

preferentemente a la lógica positiva antes que a la lógica


negativa. Es más claro decir si A = B, en vez de: si no es
A <> B
●El diagrama de flujo deberá ser lo mas claro posible de
forma tal que cualquier otro programador pueda seguirlo o
usarlo con total facilidad de entendimiento.
●El diagrama de flujo en conjunto debe guardar una cierta
simetría.
Diagrama de Flujo
Ejemplo
Necesitamos hacer un programa que multiplique dos
números enteros.
Sabemos que “5 x 3 = 15″ es lo mismo que “5 + 5 + 5 = 15”.
Variables
● multiplicando: entero (nos indica el número que vamos a sumar)
● multiplicador: entero (nos indica el número de veces que lo vamos a

sumar)
● resultado: entero (en esta variable asignaremos el resultado)

● indice: entero (nos indicara el número de veces que el número se ha

sumado)
Diagrama de Flujo
Ejemplo
Necesitamos hacer un programa que multiplique
dos números enteros.
Algoritmo
1) Asignamos el número 5 a multiplicando
2) Asignamos el número 3 a multiplicador
3) Asignamos el número 0 a resultado
4) Asignamos el número 0 a indice
5) Sumamos multiplicando y resultado
6) Asignamos a resultado la suma
7) Incrementamos 1 a indice
8) Mientras indice sea menor a multiplicador regresamos al paso 5
de lo contrario continua
9) Muestra el resultado
10) Finalizar
Tenemos que inicializar cada variable de nuestro algoritmo, como se muestra en los primeros cuatro
pasos.
Diagrama de Flujo
Ejemplo
Necesitamos hacer un programa que multiplique
dos números enteros.

El siguiente paso es…


Prueba de escritorio
La prueba de escritorio es la ejecución manual de nuestro algorítmo
Ponemos a prueba nuestro algoritmo y nos mostrara si tenemos
errores (por lo que tendremos que modificar el algoritmo) o si esta
bien diseñado. Básicamente es el registro de las variables.
Siguiendo paso a paso nuestro algoritmo, obtendremos la siguiente
tabla.
Diagrama de Flujo
Ejemplo
Necesitamos hacer un programa que multiplique dos
números enteros.

Multiplicado 5
Multiplicador 3
Resultado 0 5 10 15
Indice 0 1 2 3

Vemos que el ultimo registro de la variable resultado, es 15, por lo que


nuestro algoritmo esta funcionando correctamente. Podemos probar con
otros número.
Diagrama de Flujo
Ejemplo
Necesitamos hacer un programa que multiplique dos
números enteros.

Diagramas de flujo
Una vez que hemos probado muestro algoritmo con la prueba de
escritorio y el resultado es el correcto, podemos seguir a diseñar el
diagrama de flujo.
Cada paso de nuestro algoritmo en un procedimiento y se representan
con un rectángulo. (Podemos agrupar varios procedimientos en un solo
rectángulo, pero no es lo indicado)
Cada condición como el paso número 8 se representa con un rombo.
Este será el diagrama de flujo de nuestro algoritmo.
Diagrama de Flujo
Ejemplo
Necesitamos hacer un programa que multiplique
dos números enteros.
1. Inicio
2. multiplicando = 5
3. multiplicador = 3
4. resultado = 0
5. indice = 0
6. do
7. resultado = resultado + multiplicando
8. indice = indice + 1
9. mientras indice < multiplicador
10.Unimprime resultado
programa lo podemos dividir en
11.bloques, por ejemplo; de la línea 6 a la 9
finalizar
es un bloque, y para identificar cada
bloque en el código lo podemos escribir
después de unos espacios y así identificar
ciertos procesos. Esto nos sirve para en
códigos muy grandes.
Diagrama de Flujo
Ejemplo
Y finalmente nos pasamos a la computadora y escribimos el código en algun lenguaje de
programacion, en nuestro caso C.

Pseudocódigo y Código

El pseudocódigo es el siguiente paso de nuestro programa, y es la


representación (escrita con nuestras propias palabras) del algoritmo.
Inicio
multiplicando= 5
multiplicador = 3
resultado = 0
indice = 0

si indice < multiplicador


entonces
resultado = resultado +
multiplicando
indice = indice + 1
fin si
mostrar resultado
Fin
RESUMEN DE EJEMPLOS
1.Algoritmos
1.1 Concepto e importancia
Es un conjunto de pasos lógicos y estructurados que
nos permiten dar solución aún problema.

La importancia de un algoritmo radica en desarrollar un


razonamiento lógico matemático a través de la
comprensión y aplicación de metodologías para la
resolución de problemáticas, éstas problemáticas bien
pueden ser de la propia asignatura o de otras
disciplinas como matemáticas, química y física que
implican el seguimiento de algoritmos, apoyando así al
razonamiento critico deductivo e inductivo.
No podemos apartar nuestra vida cotidiana los
algoritmos, ya que al realizar cualquier actividad diaria
los algoritmos están presentes aunque pasan
desapercibidos, por ejemplo: Al levantarnos cada día
para hacer nuestras labores hacemos una serie de
pasos una y otra vez; eso es aplicar un algoritmo.
1.3 Estructura de un Algoritmo
Todo algoritmo consta de tres secciones principales:

Entrada Proceso Salida

Entrada: Es la introducción de datos para ser


transformados.

Proceso: Es el conjunto de operaciones a realizar para


dar solución al problema.

Salida: Son los resultados obtenidos a través del


proceso.
2. Metodología para la
descomposición de un
algoritmo.
2.1 Conceptos
2.1.1 Definición del problema 1
En esta etapa se deben establecer los resultados y
objetivos que se desea para poder saber si los datos
que se tienen son suficientes para lograr los fines
propuestos.

2.1.2 Análisis 1
Una vez definido el problema se deberán organizar los
datos de tal manera que sean susceptibles de usar en
los cálculos siguientes.
2.1.3 Diseño 1
En esta etapa se proponen soluciones a los problemas
a resolver, por lo que se realiza una toma de
decisiones aplicando los conocimientos adquiridos y
utilizando los datos existentes.

2.1.4 Verificación o prueba de escritorio 1


Se consideran resultados previstos para datos
conocidos a fin de que al probar cada una de sus
partes podamos ir comprobando que el algoritmo sirve
o requiere modificarse.
2.2 Análisis del Problema
2.2.1 Identificadores
Un identificador es el nombre que se le asigna a los
datos de un programa (constantes, variables, tipos de
datos), y que nos permiten el acceso a su contenido.

Ejemplo:
Calf1
Valor_1
Num_hrs
2.2.2 Tipos de datos
Es el valor que puede tomar una constante o variable .
Por ejemplo, para representar los datos de un alumno
como: Nombre, Num_cta, calf1, calf2, etc.

Los tipos de datos más utilizados son:


a) Numéricos: Representan un valor entero y real.

Ejemplo:

Entero: 250, -5 Real: 3.1416, -27.5


2. Metodología para la
descomposición de un
algoritmo.

2.2.2 Tipos de datos


b) Lógicos: Solo pueden tener dos valores (verdadero
o falso), y son el resultado de una comparación.

c) Alfanuméricos: Son una serie de caracteres que


sirven para representar y manejar datos como nombres
de personas, artículos, productos, direcciones, etc.
2.2.3 Variables
Permite almacenar de forma temporal un valor y el cual
puede cambiar durante la ejecución del algoritmo ó
programa.
Toda variable tiene un nombre que sirve para
identificarla.

Ejemplo:
prom=(calf1+calf2+calf3)/3

Las variables son: prom, calf1, calf2, calf3.


2.2.4 Constantes
Son datos numéricos o alfanuméricos que contienen un
valor y que no cambia durante la ejecución del
algoritmo ó programa.

Ejemplos:
prom=(calf1+calf2+calf3)/3
PI=3.1416

Las constantes son: 3, PI.


2.2.5 Operadores y Expresiones
Expresiones: Es un conjunto de constantes, variables,
operadores con lo que se realizan las operaciones y
permite obtener un resultado.

Ejemplo:
resultado  a*(2*b+5)/c

Cal_final (cali1+cali2)/2
Operadores: Es un símbolo que permite manipular los
valores de variables y/o constantes.
2.2.5.1 Operadores
matemáticos
1) ^ **
2) * / div mod
Los
3) +operadores
- con igual nivel de prioridad se
evalúan de izquierda a derecha.
2.2.5.2 Operador de asignación
1) = ó 
Sirve para recuperar o guardar los valores obtenidos al
realizarse o ejecutarse una expresión.
2.2.5.3 Operadores de
relación
1) Mayor que >
2) Menor que <
3) Mayor igual que >=
4) Menor igual que <=
5) Igual =
6) Diferencia < > !=
•Son empleados para comparar dos ó más valores.
•Su resultado produce valores como verdadero y
falso.
•Tienen el mismo nivel de prioridad.
2.2.5.4 Operadores Lógicos o
booleanos
AND OR NOT
VAL1 VAL2 RESUL VAL1 VAL2 RESUL VAL1 RESUL
Cierto Cierto Cierto Cierto Cierto Cierto Cierto Falso
Falso Cierto
Cierto Falso Falso Cierto Falso Cierto
Falso Cierto Falso Falso Cierto Cierto
Falso Falso Falso Falso Falso Falso

•Son empleados para comparar dos valores (verdadero y


falso)
•Su resultado produce valores como verdadero y falso.
•Los tres tienen el mismo nivel de prioridad.
Prioridad entre los Operadores

1) Matemáticos Siempre se
ejecutan de
2) Relacionales izquierda a
derecha en caso
de haber dos ó
3) Lógicos
más operadores
con el mismo nivel
4) De asignación de prioridad.
2.3. Diseño de algoritmos
2.3.1. Alternativas de solución

Es la forma de representar la secuencia lógica


de ejecución de instrucciones.

Esta puede ser a través de:

1) Diagramas de flujo
2) Pseudocódigo
2.3.1.1 Diagrama de flujo
Es empleado para representar la solución de un
algoritmo empleando figuras geométricas, donde
cada una de ellas representa en particular una tarea
especifica que realizar.

Las más comunes son:


SIMBOLO UTILIDAD

El rectángulo se utiliza para


identificar las acciones a
realizar, es decir, este símbolo
indica el proceso a realizar

El trapezoide, indica la entrada


o lectura de los datos

El rombo, es la caja de
decisiones, representa las
alternativas con solo dos
posibles opciones SI y NO
SIMBOLO UTILIDAD
Los círculos, son utilizados para
indicar el inicio y el final del
algoritmo.
El cono se utiliza para indicar una
salida en pantalla.

La flecha, indica la secuencia de


acciones a realizar, es decir, es
quien marca la continuidad y orden de
ejecución de las acciones propias del
problema a resolver.
SIMBOLO UTILIDAD

Representa la repetición de pasos a


a través de los ciclos
2.3.1.2 Pseudocódigo
Es empleado para representar la solución de un
algoritmo empleando lenguaje natural escrito
estableciendo la secuencia de pasos sin
imprecisiones y de manera clara.

Ejemplo:
Proceso
Leer lista_de_variables;
variable<-expresion;
Escribir lista_de_expresiones;
FinProceso
2.3.2 Uso del Diagrama de flujo,
pseudocódigo y prueba de escritorio
para los tipos de estructuras
2.3.2.1 Secuenciales
Implica escribir un paso tras de otro, donde el
primero que se haya escrito es el primero que se
ejecutará. Inicio
Acción1
Acción2
.
.
AcciónN
Fin
2.3.2.1 Secuenciales
Ejemplo:

Pseudocódigo DFD

Inicio
Leer N1, N2

SUMA=N1+N2
Escribir SUMA
Fin
2.3.2.2 Selectivas: Se utilizan para TOMAR
DECISIONES.

 Simples
Lo que se hace es EVALUAR la condición, si la
condición es verdadera realiza la acción, en caso
contrario termina el programa.

Si <condición> entonces
Acción(es)
Fin-si
2) Selectivas Simples
Ejemplo:
Pseudocódigo DFD
Inicio
Leer COMPRA
Si COMPRA>1000 entonces

DESCUENTO=COMPRA*0.10
PAGO=COMPRA–
DESCUENTO
Escribir PAGO
Finsi
Fin
2) Selectivas
 Doble
Luego de evaluar una condición si esta se
cumple, es decir si es verdadera realiza una serie
de acciones, y si esta es falsa se realiza otra serie
de acciones distinta a la primera.

Si <condición> entonces
Acción(es)
Sino
Acción(es)
Finsi
2) Selectivas Doble
Ejemplo:
Pseudocódigo DFD
Inicio
Leer EDAD
Si EDAD>=18 entonces
Escribir “Mayor de
edad”
Sino
Escribir “Menor de
edad”
Finsi
Fin
2) Selectivas
 Múltiple
Se realiza a partir de anidar estructuras simples
y/o dobles, de manera tal que se realicen
diferentes acciones con base a varias
comparaciones, así habrá tantas opciones como
se requieran.
Si <condición> entonces
Acción(es)
Sino
Si <condición> entonces
Acción(es)
Sino
.
. Varias condiciones
.
Finsi
Finsi
2) Selectivas Múltiple
Ejemplo:
Pseudocódigo DFD
Inicio
Leer NUMERO
Si NUMERO=0 entonces
Escribir “Número cero”
Sino
Si NUMERO>0
Escribir “Número positivo”
Sino
Escribir “Número negativo”
Finsi
Finsi
Fin
2.3.2.3 Repetitivas: Este tipo de estructura se
utilizan para ejecutar acciones
repetidamente, esto se hace posible
mediante una secuencia de instrucciones
que se repiten una y otra vez y así evitamos
escribir múltiples veces las mismas
instrucciones.
3) Repetitiva
 Para
Esta estructura ejecuta los pasos de la solución
del algoritmo un número definido de veces y de
modo automático controla el número de
iteraciones o pasos a través del cuerpo del ciclo.
Para el control se utiliza un contador en el cual
se va acumulando el número de veces que se
ha repetido las instrucciones.
Hacer para V.C = LI a
L.S
Acción1 V.C Variable de control de
Acción2 ciclo
L.I Límite inferior
. L.S Límite superior
.
AcciónN
Fin para
3) Repetitiva Para
Ejemplo:
Pseudocódigo

Proceso sin_titulo
Para DATOS<-1 Hasta 5 Con Paso 1 Hacer
Leer NUM1,NUM2;
SUMA<-NUM1+NUM2;
Escribir "el resultado de sumar ",NUM1," + ",NUM2," =
",SUMA;
FinPara
FinProceso
3) Repetitiva Para
Ejemplo:

DFD
3) Repetitiva
 Mientras
Este se utiliza cuando NO sabemos el número
de veces que se ha de repetir un ciclo, los ciclos
se determinan por una condición que se evalúa
al inicio del ciclo, es decir, antes de ejecutarse
todas los pasos.
Hacer mientras <condición>
Accion1
Accion2
.
.
AccionN
Fin-mientras
3) Repetitiva Mientras
Ejemplo
Pseudocódigo
Proceso sin_titulo
Escribir "Hay alumno";
Leer ALUM;
Mientras ALUM="s" Hacer
Leer CALIF1,CALIF2;
PROM<-(CALIF1+CALIF2)/2;
Escribir "El promedio del alumno es ",PROM;
Escribir "Hay alumno";
Leer ALUM;
FinMientras
FinProceso
3) Repetitiva Mientras
Ejemplo

DFD
3) Repetitiva
 Hacer – Mientras ó Repetir
En esta estructura el ciclo se va a repetir hasta
que la condición se cumpla, a diferencia de las
estructuras anteriores la condición se escribe al
finalizar la estructura.
Repetir
Accion1
Accion2
.
.
AccionN
Hasta <condicion>
3) Repetitiva Hacer – Mientras ó Repetir
Ejemplo
Pseudocódigo
Proceso sin_titulo
Repetir
Leer SALARIO;
SAL_FIN<-SALARIO*1.15;
Escribir "El salario con aumento es",SAL_FIN;
Escribir "hay otro empleado";
Leer EMPLEA;
Hasta Que EMPLEA="n"
FinProceso
3) Repetitiva Hacer – Mientras ó Repetir
Ejemplo

Convertido a
diagrama de
flujo
desde PseInt

También podría gustarte