You are on page 1of 149

INTRODUCCIÓN A LA

PROGRAMACIÓN
El computador
 Un computador es una máquina electrónica, creado
inicialmente para realizar cálculos matemáticos, pero que
actualmente es capaz de desarrollar muchas tareas al
mismo tiempo, buscando satisfacer las necesidades de sus
usuarios. Entre las tareas que permite hacer un
computador están: jugar, realizar trabajos escritos, escuchar
música, ver videos, simular situaciones, estudiar, entre otras.
Tipos de Computadoras
 Supercomputadoras: Una
supercomputadora es un equipo con alto
poder de cómputo, especializado en la
realización de operaciones específicas. Estas
supercomputadoras son utilizadas
principalmente en la ciencia
 MacroComputadora (Mainframe): Un
mainframe es un ordenador de alto
rendimiento capaz de llevar a cabo el
procesamiento de datos complejos.
 Minicomputadora: Una minicomputadora es
un equipo con potencia y el rendimiento
intermedio entre una microcomputadora y un
mainframe, capaz de permitir el acceso a
múltiples usuarios, también son llamadas
Servidores.
 Estaciones de trabajo: Es un
computador de altas
prestaciones, utilizado por un
usuario para la ejecución de
software profesional.
 Microcomputadora: Una
microcomputadora es un
equipo caracterizado por la
presencia de un único
microprocesador.
Computadoras personales (PC):
 El ordenador personal es un equipo que se encuentra
normalmente en oficinas, salones de clase y hogares;
 estas computadoras vienen en todas formas y tamaños:
como por ejemplo las computadoras de escritorio que
son las más comunes, las PDA’s, los SmartPhone, las
Tabletas, los portátiles.
 Son equipos con suficiente potencia y rendimiento para
satisfacer las necesidades de un usuario.
 PDA (asistente digital personal): Llamada
también computadora de bolsillo, organizador
personal o agenda electrónica de bolsillo, es
una computadora de mano originalmente
diseñada como agenda personal electrónica
(para tener uso de calendario, lista de
contactos, bloc de notas, recordatorios, dibujar,
etc.), con un sistema de reconocimiento de
escritura. Estos dispositivos fueron
reemplazados actualmente por los
Smartphones
 SmartPhone: El teléfono inteligente (en
inglés: smartphone) es un tipo teléfono móvil
construido sobre una plataforma informática
móvil, con una mayor capacidad de almacenar
datos y realizar actividades, semejante a la de
una minicomputadora, y con una mayor
conectividad que un teléfono móvil
convencional. El término «inteligente», que se
utiliza con fines comerciales, hace referencia a
la capacidad de usarse como un computador
de bolsillo, y llega incluso a reemplazar a una
computadora personal (PC) en algunos casos.
 Tablets: Una tableta, en muchos lugares también llamada
Tablet, es una computadora portátil de mayor tamaño que
un teléfono inteligente o un PDA, integrada en una pantalla
táctil (sencilla o multitáctil) con la que se interactúa con
los dedos o un estilete (pasivo o activo), sin necesidad de
teclado físico ni ratón. Estos últimos se ven reemplazados
por un teclado virtual y, en determinados modelos, por
una minitrackball integrada en uno de los bordes de la
pantalla. Los booklets son tabletas parecidas a un libro,
incluyen dos pantallas, al menos una de ellas táctil,
mostrando en ella un teclado virtual.
 Portátiles (Laptop): Una computadora portátil u
ordenador portátil (en inglés: laptop o notebook) es un
ordenador personal móvil o transportable, que pesa
normalmente entre 1 y 3 kg. Los ordenadores portátiles
son capaces de realizar la mayor parte de las tareas que
realizan los ordenadores de escritorio, también llamados
"de torre", con similar capacidad y con la ventaja de su
peso y tamaño reducidos; sumado también a que tienen la
capacidad de operar por un período determinado sin estar
conectadas a una red eléctrica. El mercado de los laptops
es muy versátil. Tanto que aparezcan nuevos tipos,
adaptados a necesidades cada vez más específicas, casi
anualmente. Por ejemplo, en la actualidad puedes
encontrar notebooks, netbooks, ultrabooks.
La Estructura del Computadora
 Todo computador sin importar de que
tipo sea, está conformado por dos
elementos básicos que son:
◦ el Hardware y
◦ el Software.
El Hardware (Partes Duras):
 El hardware es la parte tangible de un computador, es decir, es todo
aquello que podemos ver y tocar; es la parte física, tanto interna como
externa que compone un computador, está formado por los componentes
eléctricos, electrónicos, electromecánicos y mecánicos, en estado físico,
que son necesarios para hacer que el equipo funcione
 el término periférico o dispositivo, se aplica a cualquier equipamiento o
accesorio que está conectado a la CPU (unidad central de procesamiento).
Por ejemplo: las impresoras, el escáner, lectores y/o grabadoras de CD y
DVD, lectores de tarjetas de memoria, mouse, teclado, webcams, son
ejemplos de periféricos. Cada periférico tiene su función definida y ejecuta
o envía tareas a la computadora de acuerdo a la función para la que fue
diseñado
Existen 4 tipos de periféricos:
 Periféricos de Entrada:
◦ Son todos aquellos accesorios o equipos que le permiten al usuario
ingresar información al computador para que sea procesada. El
principal periférico de entrada es el Teclado, pero existen otros
dispositivos de entrada, como por ejemplo: el mouse (ratón), el
escaner, cámara web, lector de código de barras, el micrófono,
joystick, pantalla sensible al tacto (táctil), sistema de
reconocimiento de voz y lápiz óptico.
 Periféricos de Salida:
◦ Son todos aquellos accesorios o equipos que le permiten al usuario
recibir información ya procesada del computador. El principal
periférico de salida es la pantalla o monitor, pero existen otros
dispositivos de salida, como por ejemplo: la impresora, parlantes,
audífonos (auriculares), fax y plotter (trazador gráfico)
 Periféricos de Almacenamiento:
◦ Son todos aquellos dispositivos que le permiten al usuario guardar
información, para que pueda ser consultada posteriormente. Los
dispositivos de almacenamiento pueden ser internos o extraíbles. El
principal dispositivo de almacenamiento de un computador es el disco
duro (hard disk), pero existen muchos otros dispositivos en los cuales se
puede guardar información, como por ejemplo: memorias USB, memorias
SD (Secure Digital), MicroSD, memorias Flash, disquetes, discos Zip, tarjetas
perforadas, cintas magnéticas, CD (Compact Disc), DVD (Digital Versatile
Disc), Blu-Ray, discos duros externos y la nube (hace referencia a servicios
que se utilizan a través de Internet).
 Periféricos de Procesamiento:
◦ El chip más importante de cualquier tarjeta madre es sin duda el
procesador, también llamado CPU (Central Processing Unit) o Unidad de
Procesamiento Central en español; sin él, la computadora no pudiera
funcionar pues es el elemento central (cerebro) en el procesamiento de
datos.
◦ El procesador verifica cada paso en el proceso de datos, está unido directa
o indirectamente a todos los demás componentes de la tarjeta madre así,
la mayoría de estos componentes reciben órdenes y son activados
directamente por el procesador, también supervisa todos y cada uno de los
componentes de hardware de la computadora.
Arquitectura interna de la computadora
 CPU (por el acrónimo en inglés de central
processing unit) : La unidad central de proceso es el
corazón del computador. Controla el flujo de datos, los
procesa, y gobierna el secuenciamiento de las acciones en
todo el sistema.
Unidad Central de Procesamiento
 Controla el funcionamiento de los elementos de un computador.
Desde que el sistema es alimentado por una corriente, este no deja de
procesar información hasta que se corta dicha alimentación. La CPU es
la parte más importante del procesador, debido a que es utilizado para
realizar todas las operaciones y cálculos del computador
◦ Unidad de Control (UC): La unidad de control se encarga de leer de la
memoria las instrucciones que debe de ejecutar y de secuenciar el acceso a
los datos y operaciones a realizar por la unidad de proceso. La UC genera
las señales de control que establecen el flujo de datos en todo el
computador e interno en la CPU. Una instrucción no es más que una
combinación de unos y ceros. Consta de un código de operaciones binarias
para ejecutar la instrucción, la UC la almacena en un registro especial,
interpreta su código de operación y ejecuta la secuencia de acciones
adecuada, en pocas palabras decodifica la instrucción.
◦ Unidad Aritmética Lógica o ALU (por su acrónimo en ingles
Arithmetic Logic Unit): Es la parte de la CPU encargada de realizar las
transformaciones de los datos. Gobernada por la UC, la ALU consta de una
serie de módulos que realizan operaciones aritméticas y lógicas. La UC se
encarga de seleccionar la operación a realizar habilitando los caminos de
datos entre los diversos operadores de la ALU y entre los registros
internos.
◦ Registros Internos: el almacenamiento de los resultados a la
ejecución de las instrucciones en la memoria principal podría ser
lento y excesivamente tendría muchos datos en el sistema de
interconexión con la memoria, con lo que el rendimiento bajaría. De
la misma manera también se almacenan en registros internos la
configuración interna del CPU o la información durante la última
operación de la ALU. Los principales registros de un CPU son:
 1. Contador de programa.- se encarga de almacenar la dirección de la siguiente
instrucción a ejecutar.
 2. Registro de Instrucción.- se almacena la instrucción capturado en memoria y
la que se está ejecutando.
 3. Registro de Estado.- compuesto por una serie de bits que informan el
resultado obtenido en la última operación de la ALU.
 4. Registro Acumulador.- algunos CPU’s realizan operaciones aritméticas en un
registro llamado acumulador, su función es la de almacenar los resultados de las
operaciones aritméticas y lógicas.
 Memoria: es la responsable del almacenamiento de datos.
◦ MEMORIA PRINCIPAL: La memoria principal o RAM, es donde se
almacenan temporalmente tanto los datos como los programas que
la CPU está procesando o va a procesar en un determinado
momento.
◦ MEMORIA SECUNDARIA: La memoria secundaria son todas las
unidades de disco que un computador puede tener. Se usa para
almacenar programas ejecutables y grandes volúmenes de datos
que requieren ser accesados en algún momento.
◦ RAM (Memoria de Acceso Aleatorio / Random Access
Memory):
 Lugar donde se colocan temporalmente elementos tales como los
datos e instrucciones
 Se llama de acceso aleatorio porque las celdas de la memoria se usan
una y otra vez conforme se requiere, borrándose el contenido
anterior al sustituirlo por uno nuevo
 Estos datos serán conservados mientras la computadora este
encendida.
 La cantidad de programas que se pueden estar ejecutando aislada o
simultáneamente así como la cantidad de datos que se puedan
manejar en un momento dado depende de la memoria RAM.
 Una MEMORIA CACHÉ es una memoria en la que se almacenas
una serie de datos para poder tener un acceso más rápido.
 Hay que mencionar que existen muchas memorias caché dentro de las
partes que componen un ordenador por ejemplo hay memoria cache
de: disco duro, sistema y de datos (como es el caso de la caché que se
guarda por los buscadores de internet como: Google, yahoo, Bing
etc…).
 Básicamente, la memoria caché de un procesador es un tipo de
memoria volátil (del tipo RAM), pero de una gran velocidad.
 En la actualidad esta memoria está integrada en el procesador, y su
propósito principal es almacenar una serie de instrucciones y datos a
los que el procesador accede continuamente, con la finalidad de que
estos accesos sean instantáneos. Estas instrucciones y datos son
aquellas a las que el procesador necesita estar accediendo de forma
continua, por lo que para el rendimiento del procesador es
imprescindible que este acceso sea lo más rápido y fluido posible.
◦ ROM (Memoria de solo lectura / Read Only Memory) –
no volatil:
 Almacena de manera permanente las instrucciones y datos, su
contenido se crea al fabricar el chip correspondiente y no se
puede alterar.
 Contiene aquellas instrucciones necesarias para el arranque
inicial que lee la CPU cuando la computadora empieza a
funcionar
 Contiene programas que son piezas fundamentales del sistema y
que no pueden ser borrados ni por el usuario ni por la propia
máquina.

 Entrada/Salida: transfiere datos entre el
entorno exterior y el computador. En él se
encuentran los controladores de periféricos
que forman la interfaz entre los periféricos, la
memoria y el procesador.
 Sistema de interconexión: Buses; es el
mecanismo que permite el flujo de datos entre
la CPU, la memoria y los módulos de
entrada/salida. Aquí se propagan las señales
eléctricas que son interpretadas como unos y
ceros lógicos.
El Software (Partes Suaves):
 El software es la parte lógica de un computador o la parte intangible, es
decir que no se puede tocar. Software es un término informático que
hace referencia a un programa o conjunto de programas de cómputo
que incluye datos, procedimientos y pautas y que permite realizar
distintas tareas en un sistema informático.
 Dependiendo de su licencia, el software se puede dividir en dos tipos:
en Software libre, que se utiliza para referirse a aquellos programas que
permiten al usuario utilizar, copiar, modificar y distribuirlo y el Software
propietario para indicar que un programa informático no es
completamente libre. En este sentido, el titular del software prohíbe o
restringe su uso, redistribución o modificación
Tipos de software
 De forma genérica se pueden distinguir
varios tipos de software en función del uso
o utilidad:
◦ software de sistema,
◦ software de programación y
◦ software de aplicación.
◦ El software malicioso o malintencionado
(utilizado también en su forma original en inglés
malicious software o simplemente malware) es el
que se crea con fines ilícitos como obtener
información privada del usuario o dañar el
sistema.
Tipos de Programas
• Sistema Operativo
• Es el conjunto de programas y datos que permiten
reconocer, identificar y utilizar los dispositivos de la
computadora.
• Programas Aplicativos
• Se caracterizan por permitir la creación de archivos
autónomos de trabajo. Ej:Word, Excel,Adobe Flash.
• Sistemas de Información
• Conjunto de programas y datos que permiten utilizar
las capacidades de procesamiento y almacenamiento
de la computadora. Se caracterizan por no producir
archivos autónomos sino por consumir base de datos.
LENGUAJES DE
PROGRAMACIÓN.
¿Qué es un Lenguaje de Programación?

 Un lenguaje de programación es
un lenguaje formal diseñado para
expresar procesos que pueden ser
llevados a cabo por máquinas como
las computadoras.

29
CLASIFICACION SEGÚN GENERACION

 Lenguajes de primera generación


 Lenguajes de segunda generación
 Lenguajes de tercera generación
 Lenguajes de cuarta generación
 Lenguajes de quinta generación
Primera generación
 Lenguaje de la maquina
Segunda generación
Tercera generación
Cuarta generación
Quinta generación
Ventajas y Desventajas
CLASIFICACIONES
Lenguaje máquina

Bajo nivel
Abstracción
Medio nivel

Alto nivel
Clasificación de

programación.
lenguajes de

Interpretado
Ejecución
Compilados

Imperativo

Paradigma de
Estructurado
programación
Orientado a objetos
EN BASE AL NIVEL DE ABSTRACCIÓN
 El nivel de abstracción se refiere a como de
profundo puedes ir en cuanto a la descripción
de un sistema. Usando como ejemplo un
ordenador…
 Nivel más alto:TORRE DE ORDENADOR
 Nivel medio: TARJETA GRÁFICA, DISCO DURO,
PROCESADOR, etc.
 Nivel más bajo: MICROCHIPS, CONDENSADORES,
etc.
LENGUAJE MÁQUINA
 Este lenguaje ordena a la máquina las operaciones
fundamentales para su funcionamiento. Consiste
en la combinación de 0's y 1's para formar las
ordenes entendibles por el hardware de la
maquina.
◦ VENTAJA: Más rápido
que los de alto nivel.
◦ DESVENTAJA: Son
difíciles de manejar.
LENGUAJE BAJO NIVEL
 El programa fuente es un conjunto de instrucciones, cuya
finalidad es ser traducido a lenguaje máquina.
◦ VENTAJA: Más fáciles de usar que el lenguaje máquina, y aún
así son ágiles.
◦ DESVENTAJA: Difíciles de manejar para una persona y
específicos para cada procesador.
LENGUAJE MEDIO NIVEL
 Estos lenguajes se encuentran en un punto medio entre
los dos anteriores, porque pueden acceder a los
registros del sistema, trabajar con direcciones de
memoria, todas ellas características de lenguajes de bajo
nivel y a la vez realizar operaciones de alto nivel.
◦ Ejemplos: C, Pascal, etc.
LENGUAJE ALTO NIVEL
 Independiente de la máquina, lo podemos usar en cualquier computador
con muy pocas modificaciones o sin ellas, son muy similares al lenguaje
humano.
 Necesitan un programa interprete o compilador que lo traduzca a
lenguaje máquina para que la computadora pueda entenderlo.
◦ Más fácil de aprender porque se usan palabras o comandos del lenguaje natural,
como por ejemplo: palabras en inglés.
◦ Ejemplos: Java, C++, etc.
EN BASE A LA EJECUCIÓN
 Los procesadores usados en las computadoras
son capaces de entender y actuar según lo
indican los programas escritos en un lenguaje
fijo para cada arquitectura.
 Todo programa escrito en un lenguaje de alto
nivel puede ser ejecutado de dos maneras:
◦ Lenguajes compilados.
◦ Lenguajes interpretados.
LENGUAJES COMPILADOS
 Los programas que se escriben en alto nivel tienen que
traducirse para que la máquina pueda entenderlos.
 Los traductores se llaman Compiladores.
◦ Al usar un lenguaje compilado, el programa nunca se ejecuta
mientras haya errores.
◦ Ejemplos: C, Basic, Cobol, Eiffel, etc.
LENGUAJES INTERPRETADOS
 Se basa en cargar el programa fuente en la computadora
junto con los datos que se van a procesar.
◦ El programa intérprete es el que convierte cada proposición del
programa fuente en lenguaje máquina.
◦ Con este tipo de lenguajes cargamos el programa conforme va
siendo necesario.
◦ Ejemplos: Java, Gambas, etc
Traductores del Lenguaje

 A) Intérpretes; Toma un
programa fuente lo traduce
e inmediatamente lo ejecuta.

Traducción y
Programa fuente Intérprete ejecución en línea
Traductores del Lenguaje
(cont.)
 B) Compiladores; traduce un
programa fuente a código objeto.
Programa fuente Programa Programa ejecutable
Objeto

Compilador Montador
(Compiler) (Linker)
Traductores de lenguaje:
compiladores
OPCION 1 OPCION 2
PROGRAMA FUENTE
Fase de compilación

Fase de compilación COMPILADOR


programa
ENLAZADOR objeto
programa
ejecutable (binder, linker)
Fase de ejecución

Fase de ejecución
EJECUCION

51
EN BASE AL PARADIGMA DE
PROGRAMACIÓN
 Un paradigma de programación es una propuesta
tecnológica que es adoptada por una comunidad de
programadores.
 Trata de resolver uno o varios problemas claramente
delimitados.
 Es decir, es el estilo de programación empleado.
 El más extendido actualmente es el “orientado a
objetos”.
PARADIGMA IMPERATIVO
 Describe la programación como una secuencia de
instrucciones que cambian el estado de un programa.
 En este paradigma se basaron los primeros lenguajes de
 programación.
 Es el paradigma en que se basa el lenguaje máquina.
◦ Su principal inconveniente es su falta de flexibilidad por su carácter
secuencial
◦ Ejemplos: D, etc.
Paradigma declarativo
PARADIGMA ESTRUCTURADO
 Este código se divide en bloques que pueden comunicarse
entre sí. Cada función recorre un procedimiento cerrado.
◦ Estas funciones permiten el aprovechamiento del código para otros
objetivos
◦ Ejemplos: C, Cobol, etc.
Paradigma orientada a objetos
 Es un paradigma de programación que usa objetos y sus
interacciones entre ellos.
 Está basado en varias técnicas como son, herencia,
abstracción, polimorfismo, y encapsulamiento.
◦ El lenguaje orientado a objetos mas importante del momento
son Java y C++ pero existen otras variantes desconocidas como
Duck Typing
Paradigma funcional
Paradigma lógico
Lenguajes de programación:
¿Por qué hay tantos?
¿Cómo nacen, sobreviven y caducan?
1. Diferentes dominios de aplicación:
• Programación de sistemas – rapidez y acceso de
bajo nivel: C
• Inteligencia artificial – computación simbólica: LISP,
Prolog
• Programación científica – fórmulas matemáticas:
Fortran
• Negocios – transacciones: COBOL
• Uso específico: SQL (bases de datos), Perl
(manipulación de textos), JavaScript (páginas web),
Pascal (formación)
59
1. Diferentes necesidades:
• Fiabilidad: Ada
• Escabilidad, paradigma orientado a objeto: C 
C++
• Portabilidad: Java
2. Evolución:
• Mejora del hardware
• Mejor comprensión de como reforzar criterios de
legibilidad, facilidad de aprender y escribir,
fiabilidad…
3. Importancia de la estandardización
4. ¡Número de usuarios!

60
Errores de programación

Modificar o crear un
archivo .java

Compilar
errores de compilación (sintaxis) Editar para
corregir errores

no hay errores

Ejecutar programa
Depurar
errores de ejecución (semántica) (debugging)

61
Escribir el código fuente
 El código fuente de un programa informático es un
conjunto de líneas de texto que son las instrucciones que
debe seguir la computadora para ejecutar dicho programa.

 EDITOR DE TEXTO
 IDE (Entorno de Desarrollo Integrado)

62
Unidades de Medida
 Bit: Son la unidad básica de almacenamiento y comunicación
de información de la computadora y son procesados con
mucha eficiencia por el procesador.
 Bytes: Un conjunto de 8 bits hacen un byte que en esencia
equivale a un carácter o símbolo legible a los humanos.
Unidades de Almacenamiento
Representación de los datos en
la computadora
 El único código que entiende la CPU son los bits.
 Los bits son representados en circuitos
electrónicos que pueden estar en estado “on” (1) u
“off” (0)
 Las instrucciones se mandan a la CPU en forma de
bytes, que son palabras de 8 bits
 1 byte = 8 bits
 1 kilobyte = 1 024 bytes
 1 megabyte = 1 024 kilobytes = 1 048 576 bytes

65
 Base 10:
◦ Dígitos = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
◦ 1111 = 1*103 + 1*102 + 1*101 + 1*100
 Base 2:
◦ Dígitos = {0, 1}
◦ 1111 = 1*23 + 1*22 + 1*21 + 1*20 = 8 + 4 + 2 + 1 = 15
 ¿Cuántos valores puede representar un byte?
◦ 1 byte = 8 bits (Ej: 01100101)
◦ Cada bit puede representar 2 valores (0 y 1)
◦ Un byte puede representar 28 = 256 valores

66
Representación de textos

TEXTO: My name is Anders.


ASCII: 77-121-32-110-97-109-101-32-105-115-32-65-110-100-101-114-
115-46
67
18 bytes
Representación de imagen
00000000
00110110
00100010
00100010
00110110
00000000
00110110
00000000

• División de la imagen en una matriz de pixeles


(unidad de la imagen)
• Cada pixel asociado con un color

68
Representación de sonido

4 8 12 13 12 10 8…

 Discretización de la amplitud
 Un byte para cada valor

69
ALGORITMOS
Algoritmo:

La palabra algoritmo se deriva


de la traducción al latín de la
palabra árabe alkhowarizmi,
nombre de un matemático y
astrónomo árabe que escribió un
tratado sobre manipulación de
números y ecuaciones en el
siglo IX.

Un algoritmo es una serie de


pasos organizados que describe
el proceso que se debe seguir,
para dar solución a un problema
especifico.
Algoritmo:
¿Por qué es importante?
Que es un Algoritmo?
 Es una sucesión de instrucciones que permiten a un
computador llevar a cabo un trabajo para solucionar un
determinado problema.
 Es un conjunto de pasos, instrucciones o acciones que
se deben seguir y realizar ordenadamente para llegar a
un fin determinado (Solución de un problema,
obtención de una repuesta intermedia o realización de
una tarea).

Problema Algoritmo Programa


Clases de Algoritmos…
Cualitativos: son pasos o instrucciones descritos
solamente mediante palabras.
 Buscar una palabra en el diccionario.
 Buscar una dirección
 Buscar un libro en una biblioteca

Cuantitativos: Son pasos o instrucciones que


involucran operaciones o cálculos matemáticos y
lógicos.
 Sumar dos números
 Calcular la nota definitiva de un alumno.
 Liquidar la nomina de un empresa
"Los ordenadores son tontos"
Todo debe ser explicado
Necesitamos decirle a la máquina, paso por
paso, todas y cada una de las acciones que
debe realizar.

Algoritmo es un paso previo


● Para escribir un programa, antes debo
pensar en el algoritmo
● El programa es la expresión de un algoritmo
en un lenguajede programación
Representación Algorítmica
 La representación algorítmica es la forma como
mostramos el algoritmo con todos sus componentes,
esta representación se puede hacer de muchas maneras,
pero solo destacaremos dos.

1 Diagrama de Flujo

2 Seudocódigo
Diagramas de Flujo…
 Esta forma de
representar un algoritmo
puede ser mas fácil de
entender ya que esta
compuesta por figuras
geométricas que
representan cada uno de
los elementos y procesos
del algoritmo.
Es una representación grafica de
un algoritmo o proceso. Se
utiliza en disciplinas como la
programación, la economía, los
procesos industriales y la
psicología cognitiva.

Un diagrama de flujo siempre


tiene un único punto de inicio y
un único punto de término.
Además, todo camino de
ejecución debe permitir llegar
desde el inicio hasta el término.

81
Ventajas del Diagrama de flujo

 Favorecen la comprensión del proceso a


través de mostrarlo como un dibujo. El
cerebro humano reconoce fácilmente los
dibujos.

 Permiten identificar los problemas y las


oportunidades de mejora del proceso.

82
Simbología

 Favorecen la comprensión del proceso a


través de mostrarlo como un dibujo. El
cerebro humano reconoce fácilmente los
dibujos.

 Permiten identificar los problemas y las


oportunidades de mejora del proceso.

83
Símbolo Descripción
Inicio / Terminación. Este símbolo se utiliza para
señalar el comienzo así como el final de un diagrama.
Tradicionalmente se colocan las palabras “INICIO” ó
“FIN” dentro de la figura para hacerlo más explícito.
Es el único símbolo que solamente tiene una conexión
(flecha) ya sea de salida, en el de inicio, o de entrada, para
el de fin.

Símbolo Descripción
Entrada de datos. En este símbolo se indican los
valores iníciales que deberá recibir el proceso. Esto se
hace asignándoles letras o nombres de variables para cada
uno de los valores y anotando estas letras en el interior
de la figura.
Símbolo Descripción
Proceso de datos. Este símbolo lo utilizaremos para
señalar operaciones matemáticas, aritméticas o procesos
específicos que se realicen con nuestros datos.
La manera de anotar dichos procesos, puede ser mediante
una descripción breve de la operación o mediante una
asignación de dicha operación hacia una variable como
por ejemplo: R ← A + B
Símbolo Descripción
Decisión. Este símbolo nos representa una disyuntiva lógica
o decisión. En su interior se anota una instrucción o pregunta
que pueda ser evaluada como cierta o falsa y que determine
el flujo del programa.
Este símbolo es el único que puede contener dos salidas y en
cada una de las salidas se suele poner un rótulo de “si/no” o
“cierto/falso” indicando con esto cual de ellas se tomará
según el resultado de la evaluación de la función. Es una
buena práctica de diagramación utilizar siempre el mismo
lado para los positivos siempre que esto sea posible.

Símbolo Descripción
Desplegado de información. Este símbolo se utiliza para
mostrar un resultado, el cual puede representar la solución al
problema que se pretende resolver y que fue conseguida a
través del resto del diagrama. Dentro de su interior se
anotará la variable con el resultado final o el mensaje que
represente el resultado del algoritmo. Generalmente
veremos este símbolo muy cerca del final del proceso y
precedido por el símbolo de terminación.
Símbolo Descripción
Ciclo for. Su función es ejecutar un bloque de objetos
mientras que la variable contadora no alcance el límite
establecido por el valor final. El contador es siempre una
variable de tipo de dato Real. Contiene además un valor
inicial que será asignado al contador al iniciar la ejecución del
ciclo, un valor final y un valor de incremento. Si el contador
excede el valor final, la ejecución continuará a partir del
objeto que sigue al Cierre. En caso contrario, se ejecutará el
cuerpo del ciclo y el contador será incrementado en el valor
indicado por el incremento.

Símbolo Descripción
Ciclo mientras (while). El objeto Ciclo Mientras tiene
como función el ejecutar un bloque de objetos mientras que
una condición sea verdadera. La condición debe ser siempre
una expresión que al ser evaluada de como resultado un
valor de tipo de dato lógico. Si al evaluar la condición se
obtiene el valor .F. la ejecución del algoritmo continuará a
partir del objeto que sigue al cierre.
Reglas para la elaboración de diagramas de flujo

 Cuando el algoritmo se desea expresar en forma de diagrama de


flujo, se deben tener en cuenta algunas reglas o principios básicos
para su elaboración:
 Poner un encabezado que incluya un título que identifique la
función del algoritmo; el nombre del autor; y la fecha de
elaboración;
 Sólo se pueden utilizar símbolos estándar (ISO 5807);
 Los diagramas se deben dibujar de arriba hacía abajo y de izquierda
a derecha;
 La ejecución del programa siempre empieza en la parte superior
del diagrama;
 Los símbolos de “Inicio” y “Final” deben aparecer solo una vez;
 La dirección del flujo se debe representar por medio de flechas
(líneas de flujo);
 Todas las líneas de flujo deben llegar a un símbolo o a otra línea;
Reglas para la elaboración de diagramas de flujo

 Una línea de flujo recta nunca debe cruzar a otra.


 Cuando dos líneas de flujo se crucen, una de ellas debe incluir una línea
arqueada en el sitio donde cruza a la otra (ilustración 2-5);
 Se deben inicializar las variables que se utilicen o permitir la asignación de
valores mediante consulta al usuario;
 Las bifurcaciones y ciclos se deben dibujar procurando una cierta simetría;
 Cada rombo de decisión debe tener al menos dos líneas de salida (una
para SI y otra para NO);
 Las acciones y decisiones se deben describir utilizando el menor numero
de palabras posible; sin que resulten confusas o poco claras;
 Si el Diagrama se vuelve complejo y confuso, es mejor utilizar símbolos
conectores para reducir las líneas de flujo;
 Todo el Diagrama debe ser claro, ordenado y fácil de recorrer;
 El Diagrama se debe probar recorriéndolo con datos iniciales simples
(prueba de escritorio).
Que es el Seudocódigo?
 El pseudocódigo es una herramienta algorítmica que
permite escribir pseudoprogramas (una imitación de un
programa real) utilizando un lenguaje de
pseudoprogramación que es una imitación de los
lenguajes de programación de alto nivel.
 Así, un pseudocódigo es una combinación de símbolos (+,
-, *, /, %, >, >=, <, <=, !=, ==, y, o, no), términos (Lea, Escriba,
Abrir, Cerrar, Para, Mientras, Repita, Si, etc.) y otras
características comúnmente utilizadas en uno o más
lenguajes de alto nivel.
91
Como funciona Seudocódigo…
 Es la representación escrita en lenguaje natural,
se expresan de manera escrita todos los
elementos de un algoritmo.
 La estructura a seguir para su realización es:

Cabecera Cuerpo
Programa Inicio

Modulo Instrucciones

Tipo de datos Final

Variables

Constantes
Estructura de seudocódigo
Tipo de Elemento Contenido
Programa Titulo del Programa

Variables Bloque de declaración de variables

Bloque de declaración de constantes


Constantes

A partir de aquí comienzan a desarrollar


Inicio los procesos, esta sección es llamada el
cuerpo del programa

• Instrucciones de asignación
Instrucciones que permiten desarrollar el
• Sentencias condicionales
algoritmo conforme a su estructura
• Sentencias repetitivas

Final Aquí finaliza el programa


Ejemplo de seudocódigo
Programa Area_cuadrado;
Variables Area, Base, Altura:entero;
Inicio
lea(Base);
lea(altura);
Area:= Base*Altura;
escriba('El área de este cuadrado es: ', Area);
Fin.
Ejemplo:
 Elaborar un Algoritmo para calcular el área de cualquier triángulo
rectángulo y presentar el resultado en pantalla.

PSEUDOCÓDIGO
 Paso 1: Inicio
 Paso 2:Asignar el número 2 a la constante "Div"
 Paso 3: Conocer la base del triángulo y guardarla en la variable
"Base"
 Paso 4: Conocer la altura del triángulo y guardarla en la variable
"Altura"
 Paso 5: Guardar en la variable "Area" el valor de multiplicar "Base”
por "Altura"
 Paso 6: Guardar en la variable "Area" el valor de dividir "Area”
entre "Div"
 Paso 7: Reportar el valor de la variable "Area”
 Paso 8: Final
Ejemplo:
Actividad:
 Diseñar diagramas de flujo y pseudocódigo para los
siguientes problemas:
◦ 1. Hallar el área de un cuadrado cuyo lado mide 5 cm.
◦ 2. Hallar uno de los lados de un rectángulo cuya área es de 15
cm2 y uno de sus lados mide 3 cm.
◦ 3. Hallar el área y el perímetro de un círculo cuyo radio mide 2
cm.
◦ 4. Hallar el área de un pentágono regular de 6 cm de lado y con
4 cm de apotema.
Características de los algoritmos
 Preciso, indicara el orden de cada paso
 Definido, el mismo resultado se
obtendrá al ejecutar el algoritmo “n”
veces
 Finito, deberá terminar en algún
momento
 Estar bien detallado
 Bien ordenado
 Tener principio y fin
 Ser fiable
◦ Libre de errores
◦ Misma entrada -> misma salida
100
"Programar es escribir algoritmos en
un lenguaje que entienda la máquina"
¿Qué es un Problema?
 Un problema se puede definir como una
situación en la cual se trata de alcanzar una
meta y para lograrlo se deben hallar y
utilizar unos medios y unas estrategias.
J
( ¿ tendre que usar
ecuación, o inecuación
( para resolver este
problema?
Solución de problemas

 La mayoría de problemas tienen algunos


elementos en común: un estado inicial; una
meta, lo que se pretende lograr; un conjunto
de recursos, lo que está permitido hacer y/o
utilizar; y un dominio, el estado actual de
conocimientos, habilidades y energía de quien va
a resolverlo.
Estrategias para solución de problemas
 A través del tiempo, la humanidad ha utilizado
diversas estrategias generales para resolver
problemas, destacan los siguientes métodos o
estrategias de tipo general:
 Ensayo y error: Consiste en actuar hasta que algo
funcione.
 Heurística : Se basa en la utilización de reglas
empíricas para llegar a una solución.
 Algoritmos : Consiste en aplicar adecuadamente
una serie de pasos detallados que aseguran una
solución correcta.
 Lluvia de ideas : Consiste en formular soluciones
viables a un problema.
Pasos para resolver un problema
 Un método heurístico formulado por el
matemático George Polya indica que cuando se
resuelven problemas, intervienen cuatro
operaciones mentales:
◦ Entender el problema
◦ Trazar un plan
◦ Ejecutar el plan (resolver)
◦ Revisar Entender el
problema

Trazar un
Revisar
plan
Ejecutar el
plan
Paso 1: Entender el problema
 Leer el problema varias veces
 ¿Qué datos me dan en el enunciado del
problema?
 ¿Cuál es la pregunta que me da el problema?
 ¿Qué debo lograr?
 ¿Cuál es la incógnita del problema?
 Organizar la información
 Agrupar los datos en categorías
 Trazar una figura o diagrama.
1. Especificar claramente los resultados que se desean
obtener (meta y submetas)
2. Identificar la información disponible (estado inicial)
3. Definir los procesos que llevan desde los datos
disponibles hasta el resultado deseado (operaciones)
Formular el problema
 La solución de un problema debe iniciar por determinar y
comprender exactamente en qué consiste ese problema.

 La comprensión lingüística del problema (entender el


significado de cada enunciado) es muy importante. Se debe
realizar una lectura previa del problema con el fin de obtener
una visión general de lo que se pide y una segunda lectura
para poder responder preguntas como:

 ¿Puedo definir mejor el problema?


 ¿Qué palabras del problema me son desconocidas?
 ¿Cuáles son las palabras clave del problema?
 ¿He resuelto antes algún problema similar?
 ¿Qué información es importante?
 ¿Qué información puedo omitir?
Precisar los resultados esperados
 Para establecer los resultados que se esperan (meta) es
necesario identificar la información relevante, ignorar
los detalles sin importancia, entender los elementos del
problema y activar el esquema correcto que permita
comprenderlo en su totalidad.

 Es necesario analizar qué resultados se solicitan y qué


formato deben tener esos resultados (impresos, en
pantalla, diagramación, orden, etc). Debe preguntarse:

 ¿Qué información me solicitan?


 ¿Qué formato debe tener esta información?
Identificar datos disponibles
 Otro aspecto muy importante en la etapa de
análisis del problema consiste en determinar cuál
es la información disponible. Debe preguntarse:

 ¿Qué información es importante?


 ¿Qué información no es relevante?
 ¿Cuáles son los datos de entrada? (conocidos)
 ¿Cuál es la incógnita?
 ¿Qué información me falta para resolver el
problema? (datos desconocidos)
 ¿Puedo agrupar los datos en categorías?
Determinar las restricciones
 En este punto se deben exponer las necesidades
y restricciones (no una propuesta de solución). El
estudiante debe preguntarse:

 ¿Qué condiciones me plantea el problema?


 ¿Qué está prohibido hacer y/o utilizar?
 ¿Qué está permitido hacer y/o utilizar?
 ¿Cuáles datos puedo considerar fijos (constantes)
para simplificar el problema?
 ¿Cuáles datos son variables?
 ¿Cuáles datos debo calcular?
Establecer procesos (operaciones)
 Consiste en determinar los procesos que
permiten llegar a los resultados esperados a
partir de los datos disponibles. Debe
preguntarse:

 ¿Qué procesos necesito?


 ¿Qué fórmulas debo emplear?
 ¿Cómo afectan las condiciones a los
procesos?
 ¿Qué debo hacer?
 ¿Cuál es el orden de lo que debo hacer?
Ejemplo:
 De acuerdo con la metodología descrita,
analizar el problema de hallar el área de un
triángulo rectángulo cuya Base mide 3 cm, la
Altura 4 cm y la Hipotenusa 5 cm.
Respuesta:
 Formular el problema:Ya se encuentra claramente planteado.
 Resultados esperados: El área de un triángulo rectángulo.
 Datos disponibles: Base, Altura, Hipotenusa, tipo de triángulo.
La incógnita es el área y todos los valores son constantes. El
valor de la hipotenusa se puede omitir. Debe preguntarse si
sus conocimientos actuales de matemáticas le permiten resolver
este problema; de no ser así, debe plantear una estrategia para
obtener los conocimientos requeridos.
 Determinar las restricciones: Utilizar las medidas dadas.
 Procesos necesarios: Guardar en dos variables los valores de
Base y Altura; Guardar en una constante el divisor 2; aplicar
la fórmula área=base*altura/2; comunicar el resultado (área).
Actividad
 Basándose en la metodología expuesta, hacer un análisis
detallado (“Formular el problema”, “Resultados
esperados”, “Datos disponibles”, “Determinar las
restricciones” y “Procesos necesarios”) del siguiente
problema:

 Hallar el área de un cuadrado cuyo lado mide 5 cm.


Paso 2: Trazar el plan
 Escoger y decidir las operaciones a
efectuar.
 Eliminar los datos inútiles.
 Descomponer el problema en otros más
pequeños.
Ejemplo:
 Un procedimiento que realizamos varias veces al día consiste en lavarnos
los dientes. Veamos la forma de expresar este procedimiento como un
Algoritmo:
1. Tomar la crema dental
2. Destapar la crema dental
3. Tomar el cepillo de dientes
4. Aplicar crema dental al cepillo
5. Tapar la crema dental
6. Abrir la llave del lavamanos
7. Remojar el cepillo con la crema dental
8. Cerrar la llave del lavamanos
9. Frotar los dientes con el cepillo
10. Abrir la llave del lavamanos
11. Enjuagarse la boca
12. Enjuagar el cepillo
13. Cerrar la llave del lavamanos
14. Secarse la cara y las manos con una toalla
Actividad:
 Realizar un algoritmo del procedimiento
de cambiar un foco.
Paso 3: Ejecutar el plan
 Ejecutar en detalle cada operación.
 Simplificar antes de calcular.
 Realizar un dibujo o diagrama
Paso 4: Analizar la solución (Revisar)
 Dar una respuesta completa
 Hallar el mismo resultado de otra
manera.
 Verificar por apreciación que la respuesta
es adecuada.
Relevancia de los Datos

Somos las personas quienes les otorgamos a los datos el valor


de valiosos o irrelevantes.
Podemos clasificar los datos por su relevancia en:
C
- Dato o
m
- Información p
l
- Conocimiento e
j
- Imaginación i
d
a
d
- Dato: Es el conjunto de representaciones simbólicas no
significativas, dado que no tenemos la capacidad de
reconocer un significado.
- Información: Es el conjunto de datos que en determinada
cantidad y forma aumenta el conocimiento. Solo puede
considerarse información si tenemos capacidad de
reconocerla.
- Conocimiento: Es la información, cuando tenemos la
capacidad para usarlas en el plano real y limitado. Tiene
naturaleza practica.
- Imaginación: Es la información, cuando tenemos capacidad
para usarla en actividades del plano irreal e ilimitado. Tiene
naturaleza teórica.
Ejercicios a Resolver
Identificar si se trata de datos, información, conocimiento o
imaginación.
1- Un niño pequeño esta aprendiendo a leer. Se encuentra una
revista especializada en neurocirugía, y la lee en voz alta.

2- Usted memoriza un libro de química para un examen. Si bien


no entiende lo que esta leyendo, le servirá para acreditar el
examen.
Ejemplo:
 En un juego, el ganador obtiene una ficha roja; el
segundo, una ficha azul; y el tercero, una amarilla.
Al final de varias rondas, el puntaje se calcula de
la siguiente manera: Al triple de la cantidad de
fichas rojas se adicionan las fichas azules y se
descuenta el doble de las fichas amarillas.
Si Andrés llegó 3 veces en primer lugar, 4 veces
de último y 6 veces de intermedio, ¿Qué
puntaje obtuvo?
COMPRENDE (paso 1)
 Leer detenidamente el problema
 ¿Cuántos colores de fichas se reparten?
 ¿Cuántas fichas rojas, azules y amarillas obtuvo
Andrés?
 ¿Qué pregunta el problema?
PLANEA (paso 2)
 Para hallar el puntaje que obtiene Andrés por sus
llegadas de primero, calcular el triple de la cantidad
de fichas rojas.
 Para hallar el puntaje por sus llegadas en segundo
lugar, contar la cantidad de fichas azules.
 Para hallar el puntaje que pierde por sus llegadas en
último lugar, calcular el doble de la cantidad de
fichas amarillas.
 Para hallar el puntaje total, calcular la suma de los
puntajes por las fichas rojas y azules, restarle los
puntos de las fichas amarillas.
RESUELVE (paso 3)
 Por tres fichas rojas: 3 x 3 = 9 puntos
 Por seis fichas azules: 6 = 6 puntos
 Por cuatro fichas amarillas: 4 x 2 = 8 puntos
 Para obtener el puntaje final de Andrés, sumar
los puntos obtenidos con las fichas rojas y
azules (9 + 6 = 15 puntos) y de este resultado
restar los puntos representados por las fichas
amarillas (15 – 8 = 7 puntos).
 REVISA
 El puntaje que obtuvo Andrés es 7 puntos.
 Verificar las operaciones y comparar los
cálculos con la solución estimada.
¿Qué es programar?
 Idear y ordenar las actividades necesarias
para realizar un proyecto. (RAE).

 Es ejecutar una serie de instrucciones de


forma ordenada, de tal forma que la
computadora realice actividades que
faciliten la labor del usuario. (estipular
declaraciones).
 Programación: acción o efecto de
programar.
Vamos a programar las vacaciones!
 Elegir destino, personas (¿viene la suegra o
no?), presupuesto, ...
 Sacar billetes o revisar el coche o alquilarlo,

 Reservar hotel, casa de campo, …
 Hacer las maletas
 … todo esto en un cierto orden por las
consecuencias del resultado de unas
acciones respecto de otras
 Además de vacaciones tienes un
mayordomo!
◦ el NO decide absolutamente nada
◦ debe recibir órdenes precisas de tus deseos en
un cierto lenguaje: castellano, chino, … o lenguaje de
señas si fuese sordomudo
◦ evidentemente, deberías conocer ese lenguaje para
sacar partido de los servicios del mayordomo o
aprender su lenguaje o contratar a un mayordomo
que entienda alguno de los lenguajes que tú
dominas
Este escenario es similar a la
programación!
 el ordenador/computadora da unos servicios para el
tratamiento de la información (informática): consultar,
calcular, añadir, modificar o borrar información …
(básicamente, nada más!)
 se parece a un mayordomo que da servicios variopintos
(organizar vacaciones, limpieza, …)
 debes dar las órdenes precisas (qué criterios para las
búsquedas: por nombre? por año? Por productor? … se puede
añadir sin el nombre del grupo musical?) en un cierto lenguaje
de programación
◦ se parece a ti queriendo disfrutar de algo (las vacaciones) sin llevar a
cabo tareas tediosas (sacar billetes, hacer maletas, …)
¿Por qué vas a programar?
 Consideras conveniente invertir tiempo y
esfuerzo en automatizar los tratamientos
de información ajustados a tus
necesidades
 Invertir tiempo y esfuerzo en automatizar
los tratamientos de información ajustados
a las necesidades de otros que te pagan:
profesional
Todo lenguaje tiene:
 lexico-grafía:
◦ léxico: colección de palabras o vocablos de una
lengua
◦ grafos: escribir
 sintáxis: formas en que se combinan las
palabras
 semántica: aspectos del significado,
sentido o interpretación de signos
lingüísticos como símbolos, palabras,
expresiones
Ejemplos de Lexicografía:
 castellano: con el alfabeto latino y mil
reglas (ej. kslrt no es viable, …)
 sordomudos:
Ejemplos de Sintaxis:
 - castellano: <sujeto> <verbo>
<predicado> (ej. “bota pelota la niño el”: no
es viable, …)
Ejemplos de Semántica:
 castellano: <sujeto> <verbo>
<predicado> (ej. “la pelota bota el niño”:
no es viable, …)
PROCESO PARA PROGRAMAR
7 FASES (2 partes)

Fase 1 • Definición del


problema

Fase 2 • Análisis del problema

Fase 3 • Diseño*
PARTES DEL DISEÑO
PROCESO PARA PROGRAMAR
7 FASES (2 partes)
Fase 4
• Codificación

Fase 5
• Depuración

Fase 6
• Implantación del programa

Fase 7
• Mantenimiento del programa
FASE 1: DEFINICIÓN DEL PROBLEMA

Momento y espacio donde el


problema
es definido y comprendido claramente

¿Cuál es mi problema o tarea?


¿Qué quiero que haga el
programa?
FASE 2: ANÁLISIS DEL PROBLEMA

• Datos que se
Proceso • La resolución del
ingresan al problema
programa para • Procedimientos
resolver el donde se utilizan
problema los datos de
entrada para
resolver problema
Entrada Salida
FASE 2: ANÁLISIS DEL PROBLEMA
Clasificación de los tipos de datos
Tipos de datos

Datos que NO cambian Numéricas


su valor durante el
Constantes desarrollo o ejecución
del programa Alfanuméricas

Datos que SI cambian su Numéricas*


valor durante el
Variables desarrollo o ejecución
del programa Alfanuméricas
FASE 2: ANÁLISIS DEL PROBLEMA
Tipos de operadores
ARITMÉTICOS COMPARACIÓN LÓGICOS

+ Suma = Igual NOT – Negación

- Resta < Menor que AND – Conjunción

* Multiplicación > Mayor que OR – Disyunción

< = Menor igual que


/ División

> = Mayor igual que


FASE 2: ANÁLISIS DEL PROBLEMA
Ejemplos de tipos de datos
CONSTANTES VARIABLES

NUMÉRICAS ALFANUMÉRICAS NUMÉRICAS ALFANUMÉRICAS

3 CASA SUMA= a+b A$ = ESPAÑA

100 AREA J= J+1 RESULTADO=APROBADO

π El número 1000 COMISIÓN=VTA1+VTA2

A(10)=100
Diferencia entre un Algoritmo y un Programa

 Una diferencia notoria entre un algoritmo y un


programa es que el algoritmo incorpora las
características estructurales básicas de la computación,
independientemente de los detalles de su
implementación; mientras que un programa tiene un
conjunto específico de detalles para resolver un
problema. Se puede observar que una técnica de
solución (correspondiente al algoritmo) se puede
utilizar en diferentes situaciones problemáticas
(correspondiente a los programas).
En un programa pueden
intervenir decenas, cientos o
miles de algoritmos
"Programar es más que crear
algoritmos"

You might also like