Professional Documents
Culture Documents
TEMA
PGINA
Introduccin...3
Desarrollo
1. Definiciones y conceptos generales
2. Problema .4
3. Elementos y relaciones del problema4
4. Herramientas computacionales para la solucin de problemas......4-5
5. Hardware..5-7
6. Sistema Operativo..7
7. Programas de aplicacin..7-8
8. Lenguajes de programacin...9
9. Ciclo de desarrollo de Programas
10. Planteamiento del problema...10-13
11. Anlisis del problema..13
12. Elaboracin de algoritmos...14
13. Codificacin, edicin y compilacin...16
14. Ejecucin y depuracin17
15. Documentacin....17
16. Mantenimiento..17
17. Expresiones y operadores
18. Asignacin..18-19
19. Operadores aritmticos...20
20. Operadores relacionales.20
21. Operadores lgicos.21
22. Precedencia de operadores y evaluacin de expresiones21-23
23. Tcnicas de desarrollo de algoritmos
24. Diseo descendente.24
25. Refinacin progresiva de solucin
26. Pseudocdigo y diagrama de flujo24-26
1
Identifica los elementos que intervienen en los problemas y las relaciones entre
ellos para obtener los resultados.
o
Describe las caractersticas de las etapas que intervienen en la solucin de
problemas.
o
Construye el algoritmo, el diagrama de flujo y el seudocdigo para los problemas
planteados.
o
Realiza la prueba de escritorio de los algoritmos desarrollados.
o
Podemos decir que los elementos que constituyen un problema es todo aquello que afecta e incide
directamente en el flujo de los pasos o acontecimientos que nos llevan a realizar una actividad
y lograr el fin propuesto.
En el desarrollo de programas nuestros elementos son los datos con los que vamos a trabajar,
nmero, texto, imagen, audio, video, y la relacin de estos, nuestro problema depende directamente
del resultado que queramos obtener. Entre menos elementos tengamos para trabajar ms fcil ser
nuestro planteamiento del problema o los pasos a seguir, entre ms elementos tengamos el
planteamiento se volver ms complicado de obtener, y en caso de que los resultados nos exijan el
empleo de muchos elementos, hay mtodos de programacin que nos permiten obtenerlo de una
manera estructurada y organizada.
o
o
o
o
o
o
o
o
Compiladores
Demostradores de teoremas
Editores de texto
Entornos de desarrollo integrados
Herramientas de desarrollo de videojuegos
Interpretadores
Lenguajes de programacin
Sistemas de Control de Versiones
Hardware
El hardware se refiere a todos los componentes fsicos (que se pueden tocar), en el caso de una
computadora personal seran los discos, unidades de disco, monitor, teclado, la placa base, el
microprocesador, etc. En cambio, el software es intangible, existe como informacin, ideas,
conceptos, smbolos, pero no tiene sustancia. Una buena metfora sera un libro: las pginas y la
tinta son el hardware, mientras que las palabras, oraciones, prrafos y el significado del texto
(informacin) son el software. Una computadora sin software sera tan intil como un libro con
pginas en blanco.
Tipos de hardware
Perifricos de entrada
Perifricos de salida
Perifricos de entrada/salida
Unidad central de procesamiento.
Memoria.
El hardware grfico lo constituyen las tarjetas grficas. Poseen su propia Unidad de Proceso (GPU)
y memoria.
Sistema operativo.
Es un programa o conjunto de programas destinado a permitir la comunicacin del usuario con un
computador y gestionar sus recursos de una forma eficaz. Comienza a trabajar cuando se enciende
la computadora, y gestiona el hardware de la mquina desde los niveles ms bsicos. Los sistemas
operativos ms comunes son: Windows, Linux, Macintosh(MACOS), Unix, Solaris, Android.
Programas de aplicacin.
Antes de hablar de los programas de aplicacin debemos dejar en claro el concepto de software el
cual algunos autores lo definen como la parte intangible de una tecnologa, la parte lgica y se
define como el conjunto de instrucciones que interactan entre s para una determinada funcin.
Partiendo de este concepto, un programa, concepto desarrollado por Von Neumann en 1946, es un
conjunto de instrucciones que sigue la computadora para alcanzar un resultado especfico. El
programa se escribe en un lenguaje de programacin a partir de un diagrama de flujo diseado con
anterioridad.
Cuando se logra todo esto, se sabe que hay un programa, para realizar cada una y cada cual de las
funciones especficas para las cual fue diseado y de acuerdo a la funcin que realizan o a la
aplicacin que tiene los podemos clasificar como:
o
o
o
Utileras
Son programas de servicios que sirven de apoyo al procesamiento de los trabajos.
En informtica, una utilidad es una herramienta que sirve de soporte para la construccin y
ejecucin de programas, en donde se incluyen las bibliotecas de sistema, middleware, herramientas
de desarrollo, etc.
Lenguajes de programacin
Un lenguaje de programacin es un lenguaje que puede ser utilizado para controlar el
comportamiento de una mquina, particularmente una computadora. Consiste en un conjunto de
reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos,
respectivamente. Aunque muchas veces se usa lenguaje de programacin y lenguaje informtico
como si fuesen sinnimos, no tiene por qu ser as, ya que los lenguajes informticos engloban a los
lenguajes de programacin y a otros ms.
tiempo de ejecucin) pero ms rpido en tiempo de diseo (porque no se tiene que estar compilando
a cada momento el cdigo completo). El intrprete elimina la necesidad de realizar una corrida de
compilacin despus de cada modificacin del programa cuando se quiere agregar funciones o
corregir errores; pero es obvio que un programa objeto compilado con antelacin deber ejecutarse
con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de
produccin.
Algunos ejemplos de lenguajes de programacin son: Java, PHP, Pascal, .NET, C, C++, Basic,
Algol, ADA, Cobol, ASP, etc,.
Ejemplo 1.
1.
estacin
primavera
10
estacin
verano
estacin
otoo
estacin
invierno
2.
3.
pares
pares
pares
pares
pares
10
Nombre de la Variable
Contenido
terminal
El Rosario
terminal
Tezozomoc
terminal
Azcapotzalco
terminal
Ferrera
terminal
Norte 45
terminal
Vallejo
terminal
terminal
Lindavista
11
terminal
18 de Marzo
terminal
La Villa
terminal
Martn Carrera
Ejemplo 2 (propuesto).
1 Encuentra el contenido de una variable llamada Equipo haciendo referencia a los equipos de
futbol de la primera divisin.
2 Encuentra el contenido de una variable llamada Nombre y de otra llamada Edad, haciendo
referencia a tus 5 mejores amigos.
3 Encuentra el contenido de una variable llamada Ingresos, haciendo referencia a 5 de tus
familiares.
Elaboracin de Algoritmos
En matemticas, ciencias de la computacin, y disciplinas relacionadas, un es una lista bien
definida, ordenada y finita de operaciones que permite hallar la solucin a un problema. Dado un
estado inicial y una entrada, a travs de pasos sucesivos y bien definidos se llega a un estado final,
obteniendo una solucin. Los algoritmos son objeto de estudio de la algoritmia, y su definicin
queda formalizada por el modelo computacional de la Mquina de Turing.
Su importancia radica en mostrar la manera de llevar a cabo procesos y resolver mecnicamente
problemas matemticos o de otro tipo. Al igual que las funciones matemticas, los algoritmos
reciben una entrada y la transforman en una salida, comportndose como una caja negra. Sin
embargo, para que un algoritmo pueda ser considerado como tal, debe ser determinista, tener un
nmero finito de instrucciones y debe acabar. Por determinista se entiende que, si se sigue el mismo
proceso ms de una vez, se llega siempre al mismo resultado.
El concepto de algoritmo, aunque similar y obviamente relacionado, no debe confundirse con el
concepto de programa. Mientras el primero es la especificacin de un conjunto de pasos
(operaciones, instrucciones, rdenes) orientados a la resolucin de un problema, el segundo es ese
conjunto de operaciones especificadas en un determinado lenguaje de programacin y para un
computador concreto, susceptible de ser ejecutado (o compilado o interpretado). Un algoritmo,
estrictamente hablando, no puede ejecutarse hasta que se implementa, ya sea en un lenguaje de
programacin, en un circuito elctrico, en un aparato mecnico, usando papel y lpiz, o en algn
otro modelo de computacin.
14
Las palabras subrayadas se llaman palabras reservadas, se deben utilizar sangras que facilitan la
lectura del algoritmo Las instrucciones en pseudocdigo son fciles de codificar en un lenguaje de
programacin.
15
2. Diagrama de flujo
El diagrama de flujo es la representacin grfica de un algoritmo; para ello se utiliza un conjunto
de smbolos estndares mundialmente utilizados y desarrollados por organizaciones tales como
ANSI (American National Institute) e ISO (International Standard Organization para la elaboracin
de diagramas de flujo;
En el diagrama cada smbolo representa una accin en concreto; y cada instruccin del algoritmo se
visualiza dentro del smbolo adecuado. Los smbolos se conectan con flechas para indicar el orden
en que se ejecutan las instrucciones.
Codificacin
Una vez que hemos resuelto el problema podemos pasar a codificar la solucin, creando un archivo
o un conjunto de archivos que contengan el cdigo fuente. Para ello se necesita un
programa editor que permita escribir y guardar nuestro programa. En las prcticas se va a utilizar el
editor que proporciona el entorno de desarrollo Codelite, pero vale cualquier editor que utilice el
conjunto de caracteres que admite un compilador de C. Durante la codificacin es muy habitual
incorporar cdigo disponible en bibliotecas software, que puede haber sido desarrollado por el
propio programador o por terceros. La reutilizacin es un aspecto fundamental del desarrollo
software. Los lenguajes de programacin establecen mecanismos para importar y utilizar dichas
libreras aunque no estn disponibles los archivos con su cdigo fuente.
Es importante, aunque no necesario para que un programa funcione, seguir unas buenas prcticas
de programacin a la hora de escribir el cdigo. Las primeras buenas prcticas que debe aprender
son:
Utilizar nombres significativos para variables y funciones, evitando nombres que no ayuden a
entender el propsito de una variable o funcin. Hilando ms fino, se recomienda utilizar
sustantivos para los nombres de variables y verbos para las funciones.
Documentar adecuadamente el cdigo. No se trata de documentar hasta la ltima declaracin de
variable, pero s aquellos detalles que ayudan a entender por qu se ha escrito ese cdigo. La
documentacin es esencial para entender o modificar cdigo fuente.
16
Documentacin
La documentacin de un producto software debe servir para ensear a los usuarios a utilizarlo y
ayudar a los programadores a desarrollarlo y mantenerlo y se debe realizar utilizando tcnicas
estructuradas como diagramas de flujo, algoritmos, diagramas nassi-schneiderman y seudocdigo.
Mantenimiento
El mantenimiento de un producto de software es efectuado rutinariamente a lo largo de su vida para
reparar defectos (mantenimiento correctivo), adaptarlo a los cambios en su entorno operativo o
extender y/o modificar su funcionalidad.
Mantenimiento correctivo:
Comienza tras la deteccin de un error y su correccin podra requerir revisar todas las fases del
desarrollo de software, pero si el proceso se realiz correctamente, la correccin slo se realizar en
17
la fase de codificacin., Entonces se tendra que pasar al proceso de depuracin del cdigo, que
consiste en reproducir el error, diagnosticar la causa, corregir el error y verificar la correccin y, una
vez que se ha realizado el cambio, actualizar la documentacin externa.
Expresiones y Operadores
Asignacin
La asignacin consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona
ser reconocida con el nombre de la variable que recibe el valor. La asignacin se puede clasificar
de la siguiente forma:
Simples: Consiste en pasar un valor constante a una variable (a 15)
Contador: Consiste en usarla como un verificador del numero de veces que se realiza un
proceso (a a + 1)
o
Acumulador: Consiste en usarla como un sumador en un proceso (a a + b)
o
De trabajo: Donde puede recibir el resultado de una operacin matemtica que involucre
muchas variables (a c + b*2/4).
En general el formato a utilizar es el siguiente:
o
o
El smbolo
La lectura o entrada de datos consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un
18
valor o dato. Este dato va a ser almacenado en la variable que aparece a continuacin de la
instruccin. Esta operacin se representa as:
CONSTANTE: Pi=3.14159
CONSTANTE: Msg= Presione una tecla para continuar
CONSTANTE: ALTURA= 40
Cuando se trabaja con algoritmos por lo general no se acostumbra a declarar las variables ni
tampoco constantes debido a razones de simplicidad, es decir, no es camisa de fuerza declarar las
variables. Sin embargo en esta unidad lo haremos para todos los algoritmos que realicemos, con
esto logramos hacerlos ms entendibles y organizados y de paso permite acostumbrarnos a
declararlas ya que la mayora de los lenguajes de programacin (entre ellos el PASCAL y C++)
requieren que necesariamente se declaren las variables que se van a usar en los programas.
19
Operadores
Operadores aritmticos
Operador
Significado
Suma
Resta
Multiplicacin
Divisin
**
Exponenciacin
Operadores relacionales
Los operadores relacionales son aquellos que me permiten relacionar variables con la ayuda de
operaciones relacionales.
Operador
Significado
>
Mayor que
>=
20
<
Menor que
<=
Igual
<>
Diferente
Operadores lgicos
Los operadores lgicos son aquellos que me permiten relacionar variables con la ayuda de
operaciones lgicas.
Operador
Significado
Or
And
Not
No
21
Elaboracin de Algoritmos
Veamos algunos ejemplos donde se aplique todo lo que hemos visto hasta el momento sobre
algoritmos:
Tcnicas de desarrollo de algoritmos.
A continuacin se presentan una serie de tcnicas que se siguen para la elaboracin de los
algoritmos que nos conducen a la solucin de problemas de diversos tipos.
Estructuras Secuenciales
La estructura secuencial es aquella en la que una accin (instruccin) sigue a otra en secuencia. Las
tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente
hasta el fin del proceso.
Secuencial
Las instrucciones se siguen en una secuencia fija que normalmente viene dada por el nmero de
rengln. Es decir que las instrucciones se ejecutan de arriba hacia abajo.
Instruccin1
Instruccin2
Instruccin3
Instruccinn
22
El ejemplo anterior, es un sencillo algoritmo de un problema cotidiano dado como muestra de una
estructura secuencial.
Ejemplo 1: Escriba un algoritmo que acepte dos nmeros y muestre como resultado la suma de
estos. Use Pseudocdigo y diagrama de flujo.
23
Ejemplo 2: Escriba un algoritmo que permita conocer el rea de un tringulo a partir de la base y la
altura. Exprese el algoritmo usando Pseudocdigo y diagrama de flujos.
24
Diagrama de flujo
El diagrama de flujo representa la forma ms tradicional, practica, segura, universal, sistemtica,
independiente, sentimental y duradera para especificar los detalles algortmicos de un proceso. Se
utiliza principalmente en programacin, economa y procesos industriales; estos diagramas utilizan
una serie de smbolos con significados especiales. Son la representacin grfica de los pasos de un
proceso, que se realiza para entender mejor al mismo. Son modelos tecnolgicos utilizados para
comprender los rudimentos de la programacin lineal.
Otra definicin del diagrama de flujo es:
"Es un esquema para representar grficamente un algoritmo. Se basan en la utilizacin de diversos
smbolos para representar operaciones especficas. Se les llama diagramas de flujo porque los
smbolos utilizados se conectan por medio de flechas para indicar la secuencia de operacin. Para
hacer comprensibles los diagramas a todas las personas, los smbolos se someten a una
normalizacin; es decir, se hicieron smbolos casi universales, ya que, en un principio cada usuario
podra tener sus propios smbolos para representar sus procesos en forma de Diagrama de flujo.
Esto trajo como consecuencia que slo aquel que conoca sus smbolos, los poda interpretar. La
simbologa utilizada para la elaboracin de diagramas de flujo es variable y debe ajustarse a un
patrn definido previamente."
Diagrama de flujo sencillo con los pasos a seguir si una lmpara no funciona.
25
No es necesario usar un tipo especial de smbolos para crear un diagrama de flujo, pero existen
algunos ampliamente utilizados por lo que es adecuado conocerlos y utilizarlos, ampliando as las
posibilidades de crear un diagrama ms claro y comprensible para crear un proceso lgico y con
opciones mltiples adecuadas. Se utilizan los smbolos indicados a continuacin, estandarizados
segn ISO 5807:
Flecha. Indica el sentido y trayectoria del proceso de informacin o tarea.
Rectngulo. Se usa para representar un evento o proceso determinado. ste es controlado
dentro del diagrama de flujo en que se encuentra. Es el smbolo ms comnmente utilizado.
Se usa para representar un evento que ocurre de forma automtica y del cual generalmente
se sigue una secuencia determinada.
o
Rombo. Se utiliza para representar una condicin. Normalmente el flujo de informacin
entra por arriba y sale por un lado si la condicin se cumple o sale por el lado opuesto si la
condicin no se cumple.el rombo adems especifica que hay una bifurcacin
o
Crculo. Representa un punto de conexin entre procesos. Se utiliza cuando es necesario
dividir un diagrama de flujo en varias partes, por ejemplo por razones de espacio o
simplicidad. Una referencia debe de darse dentro para distinguirlo de otros. La mayora de
las veces se utilizan nmeros en los mismos.
Existen adems un sin fin de formas especiales para denotar las entradas, las salidas, los
almacenamientos, etctera.
o
o
De acuerdo al estndar ISO, los smbolos e incluso las flechas deben tener ciertas caractersticas
para permanecer dentro de sus lineamientos y ser considerados sintcticamente correctos. En el caso
del crculo de conexin, se debe procurar usarlo slo cuando se conecta con un proceso contenido
dentro de la misma hoja. Existen tambin conectores de pgina, que asemejan a una casita y se
26
utilizan para unir actividades que se encuentran en otra hoja. En los diagramas de flujo se
presuponen los siguientes aspectos:
Existe siempre un camino que permite llegar a una solucin.
Existe un nico inicio del proceso.
Existe un nico punto de fin para el proceso de flujo, salvo del rombo que indica una
comparacin con dos caminos posibles y adems una gran ayuda.
A su vez, es importante que al construir diagramas de flujo, se observen las siguientes
recomendaciones:
o
o
o
o
o
o
Prueba de Escritorio
Consiste en dar valores a las variables que hemos definido y que siguen el flujo del programa para
comprobar si al final el resultado es el acertado.
Por ejemplo:
- No ingresar un dato de nacimiento que sea mayor que la fecha actual.
- No ingresar un nmero negativo donde deber ir uno positivo o sin decimales;
- No ingresar un valor numrico donde solo debe ir texto;
- No ingresar un valor fuera del rango establecido;
etc.,
En casos de generar algun error, el programa tendra que enviar al usuario un mensaje indicndole
esto y dndole la oportunidad de corregir.
Cibergrafa
http://tupcmaestra.galeon.com/
http://es.ccm.net/contents/304-lenguajes-de-programacion
http://aprendizajealgoritmos.blogspot.mx/2011/02/metodologia-de-solucion-deproblemas_16.html
27