You are on page 1of 27

NDICE

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

27. Prueba de escritorio26


Cibergrafa...26

Propsitos de la unidad (Introduccin)


Al finalizar la unidad el alumno aplicar la metodologa de solucin de problemas
mediante la construccin de algoritmos para formalizar el proceso de solucin.

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

Definicin y conceptos generales


Qu es un problema?
Segn el diccionario problema es: a) una cuestin que se trata de aclarar, b) proposicin o
dificultad de solucin dudosa y c) conjunto de hechos o circunstancias que dificultan la
consecucin de algn fin.
Ms an problema es algo que preocupa; implica un interrogante cuya respuesta es desconocida y
que, en nuestro caso, se busca obtener.
Estamos familiarizados a tratar de darle solucin a los acontecimientos que nos rodean y en los que
tenemos injerencia, si no podemos resolverlo comnmente significa un problema para nosotros,
entendiendo como problema todo aquello a lo que no le encontramos una solucin, lo
consideramos un enigma o una cuestin no aclarada.
Comnmente sin darnos cuenta todos los das, los seres humanos al actuar, realizamos varias
acciones y continuamos una serie de pasos o procedimientos que nos conducen a lograr un fin o
resolver un problema.

Elementos y relaciones del problema.


3

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.

Herramientas computacionales para la solucin de


problemas.
Las herramientas computacionales que nos pueden auxiliar en la solucin de los problemas que se
nos presentan como datos multimedia[1], les llamamos programas[2], y lenguajes de programacin,
as como se nos presentan distintos tipos de datos tenemos distintos tipos de programas y lenguajes
para la resolucin de problemas, a continuacin brindamos una lista de estos:

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

Se clasifica generalmente en bsico y complementario, entendiendo por bsico todo aquel


dispositivo necesario para iniciar el funcionamiento de la computadora, y el complementario como
su nombre lo dice sirve para realizar funciones especficas o ms all de las bsicas.
Una computadora la podemos definir como una herramienta capaz de procesar datos programables
y almacenar la informacin, aceptando datos de entrada, datos de programas y datos de salida, que
se compone de dispositivos fsicos propios de esta tecnologa (dispositivos fsicos, mecnicos y
electrnicos) y secuencias de instrucciones que interactan entre s para una determinada
funcin(algoritmos, lenguajes, ingeniera de software y sistemas operativos), reciben entradas
(datos para su procesamiento), producen salidas (resultados del procesamiento), procesan
informacin, y almacenan informacin.
Todo sistema de cmputo tiene componentes de hardware dedicados a estas funciones:
1.
2.
3.
4.
5.

Perifricos de entrada
Perifricos de salida
Perifricos de entrada/salida
Unidad central de procesamiento.
Memoria.

Perifricos de entrada (I)


Son los que permiten al usuario que ingrese informacin desde el exterior. Entre ellos podemos
encontrar: teclado, ratn (mouse), escner, SAI (Sistema de Alimentacin Ininterrumpida),
micrfono, etc.
Perifricos de salida (O)
Son los que muestran al usuario el resultado de las operaciones realizadas por el PC. En este grupo
podemos encontrar: monitor, impresora, altavoces, etc.
Perifricos de entrada/salida (I/O)
Son los dispositivos que pueden aportar simultneamente informacin exterior al PC y al usuario.
Aqu se encuentran: mdem (Modulador/Demodulador), unidades de almacenamiento (Discos
duros, disquetes o floppy, ZIP, Memorias de pequeo tamao, flash, etc.)
Unidad Central de Procesamiento
La unidad central de procesamiento, CPU, simplemente el procesador. Es el componente en una
computadora digital que interpreta las instrucciones y procesa los datos contenidos en los
programas de computadora. Los CPU proporcionan la caracterstica fundamental de la computadora
digital, la programabilidad, y son uno de los componentes necesarios encontrados en los
5

ordenadores o computadores de cualquier tiempo, junto con el almacenamiento primario y las


facilidades de entrada/salida. Es conocido como microprocesador el CPU que es manufacturado con
circuitos integrados. Desde mediados de los aos 1970, los microprocesadores de un solo chip han
remplazado casi totalmente todos los otros tipos de CPU, y hoy en da, el trmino "CPU" es
aplicado usualmente a algn tipo de microprocesador.
Memoria
Corresponde a un conjunto de registros direccionables a travs del bus de direcciones. Cada registro
de est, se constituye por un determinado nmero de unidades bsicas, bit, que a su vez constituyen
una celda de almacenamiento. Sirve para almacenar programas datos o resultados.
En general podemos decir que la computadora trabaja con tres tipos de memoria:
o

Memoria RAM (Random access Memory).- En espaol memoria de acceso aleatorio es


un dispositivo que permite el almacenamiento temporal de informacin para que la unidad
de procesamiento central (CPU) pueda ser capaz de ejecutar sus programas.

Memoria ROM (Read Only Memory).- En espaol memoria de solo lectura, es un


dispositivo que permite el almacenamiento de la informacin del BIOS de la computadora,
es un programa que nos se puede borrar, y en donde se leen y se habilitan todos los
dipositivos perifricos conectados a la computadora.
o
Memoria tipo CACHE. Es un espacio asignado en el disco duro para almacenar
informacin, que permite el rpido y fcil despliegue de est y de la ejecucin de varios
programas, es un tipo de memoria virtual.
Hardware Grfico
o

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

PROGRAMA DE INGENIERA.-Utiliza una computadora principalmente para


procesar nmeros( hacer operaciones aritmticas, resolver ecuaciones algebraicas o
trigonomtricas, encontrar la solucin de una ecuacin diferencial, en general operaciones
matemticas)
PROGRAMA DE PROCESAMIENTO DE PALABRAS.- Utiliza una computadora
para procesar texto( Moverlo, eliminarlo, justificarlo entre otras funciones)
PROGRAMA DE PROCESAMIENTO DE AUDIO.- Utiliza una computadora para
reproducir pistas de audio e introducir cualquier tono de sonido como datos.
PROGRAMA DE PROCESAMIENTO DE imgenes.- Utiliza una computadora para
manipular imgenes( crearlas, reducirlas ampliarlas, rotarlas entre otras funciones).

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.

* UTILERIAS DEL SISTEMA


Se ejecutan bajo el control del sistema operativo y se utilizan para preparar algunos recursos usados
por el sistema. Son de uso interno.
* UTILERIAS PARA ARCHIVOS
Manejan informacin de los archivos tales como imprimir, clasificar, copiar, etc.
* UTILERIAS INDEPENDIENTES
Realizar funciones que se relacionan con la iniciacin de dispositivos de Entrada/Salida, carga del
sistema operativo, etc.
Algunos ejemplos de utilerias son winzip, reproductores de audio y video, grabadores de audio y
video, antivirus, juegos, programas p2p, 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.

Segn la forma de ejecucin


Lenguajes compilados
Naturalmente, un programa que se escribe en un lenguaje de alto nivel tambin tiene que traducirse
a un cdigo que pueda utilizar la mquina. Los programas traductores que pueden realizar esta
operacin se llaman compiladores. stos, como los programas ensambladores avanzados, pueden
generar muchas lneas de cdigo de mquina por cada proposicin del programa fuente. Se requiere
una corrida de compilacin antes de procesar los datos de un problema.
Los compiladores son aquellos cuya funcin es traducir un programa escrito en un determinado
lenguaje a un idioma que la computadora entienda (lenguaje mquina con cdigo binario).
Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft),
el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber
compilado el programa, ya no aparecen errores en el cdigo.
Lenguajes interpretados
Se puede tambin utilizar una alternativa diferente de los compiladores para traducir lenguajes de
alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el cdigo objeto que
se produce durante la corrida de compilacin para utilizarlo en una corrida de produccin futura, el
programador slo carga el programa fuente en la computadora junto con los datos que se van a
procesar. A continuacin, un programa intrprete, almacenado en el sistema operativo del disco, o
incluido de manera permanente dentro de la mquina, convierte cada proposicin del programa
fuente en lenguaje de mquina conforme vaya siendo necesario durante el proceso de los datos. No
se graba el cdigo objeto para utilizarlo posteriormente.
La siguiente vez que se utilice una instruccin, se le debe interpretar otra vez y traducir a lenguaje
mquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada
instruccin del ciclo tendr que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual
hace que el programa sea ms lento en tiempo de ejecucin (porque se va revisando el cdigo en

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,.

Ciclo de desarrollo de programas


Planteamiento del problema
Un elemento fundamental en la solucin de un problema lo es la variable, la cual puede ser de algn
tipo de dato como alfanumrica, numrica o alfabtica.
Una variable es un dato cuyo valor cambia durante el desarrollo de un algoritmo, una variable
consiste en un elemento al cual le damos un nombre y le asignamos un contenido o bien, le
atribuimos un determinado tipo de informacin, el cual puede ser alfabtico o numrico, las
variables son consideradas como la base de la solucin de problemas, en virtud de que son las
encargadas de manipular la informacin durante la solucin del problema.

Variable Nombre de la Variable Contenido.

Ejemplo 1.
1.

Encuentra el contenido de una variable llamada estacin haciendo referencia a las


diferentes estaciones del ao.
Nombre de la variable
Contenido

estacin

primavera
10

estacin

verano

estacin

otoo

estacin

invierno

2.

Encuentra el contenido de una variable llamada pares haciendo referencia a los


nmeros del 1 al 10.
Nombre de la Variable
Contenido

3.

pares

pares

pares

pares

pares

10

Encuentra el contenido de una variable llamada Terminal haciendo referencia a los


nombre de las estaciones de la lnea del metro Rosario-Martn Carrera.

Nombre de la Variable

Contenido

terminal

El Rosario

terminal

Tezozomoc

terminal

Azcapotzalco

terminal

Ferrera

terminal

Norte 45

terminal

Vallejo

terminal

Instituto Mexicano del Petrleo

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.

Relaciones entre los elementos que conducen para obtener resultados.


Podemos observar que las variables las podemos relacionar entre s a travs de operaciones
aritmticas suma, resta, multiplicacin y divisin, (+,-,*,/),operaciones relacionales, operaciones
lgicas o bien signos de agrupacin, originando con ello una nueva variable que nos puede conducir
al resultado deseado, un ejemplo de ello, sera lo siguiente.
Se definirn las variables a y b.
a="perro"
b="muerde"
Donde la variable que nosotros llamamos "a" posee un elemento de informacin de tipo texto que
es "perro". Asimismo, la variable "b" contiene el valor "muerde".
Podramos dar origen a una tercera variable que fuese la suma de estas dos:
c=a+b
Si se deseara observar el contenido de la variable c:
El resultado sera: perro muerde
Otro ejemplo de ello podra ser si trabajamos con variables cuyo contenido seran nmeros, por
ejemplo.
a=3
b=4
Podramos dar origen a una tercera variable que fuese la suma de estas dos
c=a+b
Si se deseara observar el contenido de la variable c.
El resultado sera 7
12

La resolucin de problemas (Anlisis del problema)


Para la resolucin de un problema es conveniente aplicar un mtodo. Un mtodo es,
fundamentalmente, una actitud, una estrategia, una filosofa, que frente a una situacin problemtica
orienta en la bsqueda de una solucin.

A continuacin planteamos las diversas etapas de un mtodo, aplicables a la resolucin de


problemas.
Uno: reconocimiento del problema.
Los alumnos individualizan la situacin problemtica, vinculada al quehacer tecnolgico, que
despierta su curiosidad o inters, destacando las implicaciones de orden tcnico, cientfico, cultural,
econmico o social presentes en el caso.
Dos: formulacin y anlisis del problema.
Formulan en trmino de problema el caso individualizado en la etapa anterior. Esta formulacin
debe ser clara: explicitando los aspectos tecnolgicos del problema, precisando los objetivos a
alcanzar, buscando informacin y analizando el problema y las soluciones existentes. En este punto
es importante investigar las tcnicas distintas que se han utilizado para resolver el mismo problema
o similares.
Tres: bsquedas de alternativas de solucin
Generan alternativas para solucionar el problema, partiendo de los conocimientos con que cuentan o
con los que pueden adquirir (nueva informacin, pruebas, contrastacin de datos, etc.).
Cuatro: seleccin de la solucin.
Seleccionar la solucin que mejor se adapte a los objetivos planteados, teniendo en cuenta el marco
econmico y social en el que est inserto el problema.
Cinco: evaluacin de la solucin.
Verificar el comportamiento de la solucin en un contexto global y ajustar su funcionamiento,
optimizndola.
13

Seis: presentacin de la solucin.


Detallar la solucin, el proceso que se siguio para lograrla, sus caractersticas tcnicas
(especificaciones, rendimiento, etc.) y justificar las ventajas que presenta.
El mtodo presentado no se sigue en forma lineal, sino que entre las etapas hay retroalimentacin
que permite ir y venir entre cada una de ellas.

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

En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos


problemas. Algunos ejemplos se encuentran en los instructivos (manuales de usuario), los cuales
muestran algoritmos para usar el aparato en cuestin o inclusive en las instrucciones que recibe un
trabajador por parte de su patrn. Tambin existen ejemplos de ndole matemtica, como el
algoritmo de la divisin para calcular el cociente de dos nmeros, el algoritmo de Euclides para
calcular el mximo comn divisor de dos enteros positivos, o el mtodo de Gauss para resolver un
Sistema lineal de ecuaciones.

HERRAMIENTAS PARA EL DISEO DE ALGORITMOS


Las dos herramientas ms utilizadas para disear algoritmos son el Pseudocdigo y el Diagrama de
flujo.
1. Pseudocdigo
Es un lenguaje simplificado para describir un algoritmo utilizando una mezcla de frases en lenguaje
comn, y palabras claves que indican el inicio y el fin del algoritmo y las instrucciones especficas a
realizar.
Por ejemplo, el siguiente pseudocdigo corresponde al algoritmo para calcular el rea del
rectngulo: el algoritmo calcula el rea (a) de un rectngulo cualquiera, si se le suministra la
longitud de de la base (b) y la longitud de la altura (h).

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.

Compilacin y ensamblado del programa


El programa que hemos editado es cdigo fuente y no puede ser ejecutado directamente por ningn
computador: es necesario traducirlo a cdigo mquina. Para ello necesitamos un compilador o
un intrprete. Existen lenguajes de programacin, como C, en que el cdigo fuente es traducido por
un compilador a cdigo mquina y se genera un archivo directamente ejecutable. La figura 2
muestra el proceso completo de generacin de un programa ejecutable en C a partir del cdigo
fuente. Otros lenguajes, como Java, se compilan a un lenguaje intermedio (que en el caso de Java se
denomina bytecode) que posteriormente es interpretado y ejecutado por un programa especial que

16

se denomina intrprete. Adems, los programas habitualmente no se encuentran en un nico


archivo, sino distribuidos en muchos, que deben ensamblarse para dar lugar a un programa
ejecutable. La obtencin de un programa ejecutable implica, por un lado, la traduccin de los
archivos en cdigo fuente a archivos con cdigo objeto y, por otro, el ensamblado de los archivos
con cdigo objeto.

Ejecucin, prueba y depuracin del programa


Dependiendo del lenguaje y de la plataforma de ejecucin que utilicemos, para ejecutar un
programa puede bastar con escribir su nombre como un comando en una consola o hacer doble clic
en un icono o puede ser necesario utilizar algn programa auxiliar que lance al nuestro. En
cualquier caso, que nuestro programa sea capaz de ejecutarse no significa que realice correctamente
la tarea que tiene encomendada. En programacin es muy difcil acertar a la primera. Normalmente
es necesario ejecutar el programa una y otra vez hasta conseguir detectar y corregir todos sus fallos.
Existen tcnicas para probar los programas de forma exhaustiva y utilidades (depuradores) que
ayudan a detectar y corregir los errores de programacin. Los errores de programacin se clasifican
en:
Errores de compilacin (sintcticos). Detectados por el compilador cuando el cdigo fuente no se
ajusta a lenguaje C. Ejemplos: falta de de parntesis, llaves, punto y coma al final de cada lnea,
utilizacin de palabras reservadas como identificadores, etc.
Errores en tiempo de ejecucin (semnticos). El programa compila pero no resuelve correctamente
el problema, su comportamiento no se ajusta al esperado, el programa se cuelga, etc. Estos errores
son generalmente difciles de detectar, ya que el compilador no ayuda a detectarlos. Hay que
recurrir al uso de tcnicas de depuracin, como la impresin de trazas del funcionamiento del
programa, y al uso de programas depuradores.

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

< Variable >

El smbolo

<valor o expresin >

debe leerse asigne.

Escritura o salida de datos


Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje.
Esta instruccin presenta en pantalla el mensaje escrito entre comillas o el contenido de la variable.
Este proceso se representa as como sigue:

Lectura o entrada de datos

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:

Declaracin de variables y constantes


La declaracin de variables es un proceso que consiste en listar al principio del algoritmo todas las
variables que se usarn, adems de colocar el nombre de la variable se debe decir qu tipo de
variable es.
Contador: ENTERO
Edad, I: ENTERO
Direccion: CADENA DE CARACTERES
Salario_Basico:REAL
Opcion:CARACTER
En la anterior declaracin de variables, Contador, Edad e I son declaradas de tipo entero;
Salario_Basico es una variable de tipo real, Opcion es de tipo carcter y la variable Direccion est
declarada como una variable alfanumrica de cadena de caracteres.

En el momento de declarar constantes debe indicarse que lo es y colocarse su respectivo valor.

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

Los operadores aritmticos son aquellos


que me permiten relacionar variables con la ayuda de operaciones aritmticas.

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

>=

Mayor o igual que

20

<

Menor que

<=

Menor o igual 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

Precedencia de operadores y evaluacin de expresiones

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

En Pseudocdigo una Estructura Secuencial se representa de la siguiente forma:

22

Observa el siguiente problema de tipo cotidiano y sus respectivos algoritmos representados en


Pseudocdigo y en diagrama de flujo:
Problema. Tengo un telfono y necesito llamar a alguien pero no s como hacerlo.

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.

Tcnicas de desarrollo de algoritmos


Diseo Descendente
La metodologa de diseo descendente de programas consiste en:

24

1) Definir una solucin de un problema en trminos de la composicin de soluciones de problemas


que a priori son ms sencillos de resolver, o de esquemas de solucin ya conocidos.
2) La primera solucin del problema corresponder a una composicin de acciones sobre los objetos
al ms alto nivel de abstraccin, es decir, a los involucrados en la especificacin del problema.
3) Aplicar refinamiento sucesivo, el cual consiste en refinar tanto las acciones como los datos hasta
conseguir que el algoritmo inicial se convierta en un programa.

Refinacin progresiva de solucin

Pseudocdigo y diagrama de flujo


Pseudocdigo (falso lxicas y lenguajes de programacin, pero sin llegar a la rigidez de semntica,
normalmente se utiliza en las fases de anlisis o diseo de algoritmo. Forma parte de las distintas
herramientas de la compilador o programacin estructurada.

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

Evitar sumideros infinitos, burbujas que tienen entradas pero no salidas.


Evitar las burbujas de generacin espontnea, que tienen salidas sin tener entradas,
porque son sumamente sospechosas y generalmente incorrectas.
Tener cuidado con los flujos y procesos no etiquetados. Esto suele ser un indicio de falta
de esmero, pero puede esconder un error an ms grave: a veces el analista no etiqueta un
flujo o un proceso porque simplemente no se le ocurre algn nombre razonable.

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

You might also like