Está en la página 1de 9

1

Fundamentos de Programacin
(Unidad I)
I ntroduccin a la computacin
La computadora.- Es una herramienta utilizada para representar cualquier
situacin de la realidad en forma de datos, los cuales se procesan antes de generar
informacin.
Tanto los datos como el procedimiento necesario para generar informacin, se
suministran a la computadora en forma de un programa constituido por
instrucciones detalladas. La computadora interpreta y ejecuta el programa de
acuerdo con ciertas reglas de sintaxis que conforman el lenguaje de programacin,
mediante el cual podemos comunicarle lo que debe hacer.

Conceptos generales
Los elementos bsicos que componen una computadora son la unidad central
de proceso, memoria principal y las memorias auxiliares, la unidad de entrada y la
unidad de salida.
La unidad central es el cerebro que controla el funcionamiento de los
componentes y ejecuta las operaciones aritmticas y lgicas. Las operaciones del
procesador central son muy simples, pero ejecutadas a una velocidad muy alta del
orden de millones por segundo, permiten la ejecucin de tareas simples o
complejas.
La memoria se utiliza para almacenar los datos, y en stos se les aplican las
operaciones del procesador. Existen dos tipos de memoria: la principal y la
auxiliar. La memoria principal permite al procesador extraer y almacenar datos a
una velocidad comparable a la propia. Cada operacin propicia por lo menos un
acceso a la memoria. Para que el procesador pueda avanzar de una operacin a la
siguiente sin retraso, el programa de instrucciones se almacena en esta memoria;
en otras palabras, la memoria principal guarda tanto las instrucciones como los
datos sobre los que acta el procesador central.
La memoria principal est limitada por su alto costo; debido a eso no es
posible conservar en ella grandes cantidades de datos e instrucciones y, en
consecuencia, solo se usa para guardar lo que el procesador est utilizando por el
momento. Adems, tiene la caracterstica de que no permite almacenar datos
permanentemente, pues si se apaga la computadora se pierde lo que haya en
memoria.
Por tales razones, las computadoras estn equipadas con memorias auxiliares
para almacenamiento masivo y permanente de datos, tales como discos magnticos
fijos, discos magnticos removibles y memorias magnticas removibles. Estos
dispositivos tienen ms capacidad que la memoria principal, pero son ms lentos.
Los datos pueden almacenarse en ellos de manera permanente; es decir, pueden
guardarse para usos posteriores.
La unidad de entrada se utiliza para introducir datos del exterior en la
memoria de la computadora a travs de dispositivos como teclados de terminales,
discos magnticos, ratn (mouse), etc. Esta unidad realiza automticamente la
traduccin de smbolos inteligibles para la gente, en smbolos que la mquina
pueda manejar.
La unidad de salida permite transferir datos de la memoria al exterior, a travs
de dispositivos de salida como impresoras y pantallas de vdeo. Esta unidad realiza
2
automticamente la traduccin de smbolos que puede manejar la computadora, en
smbolos inteligibles para la gente.




Diagrama que describe la organizacin funcional de una computadora












































Memoria Principal

Unidad Central
De Proceso
Memorias Auxiliares
Unidades
De Entrada
Unidades
De Salida
3




El programa
Un programa es una secuencia de instrucciones mediante las cuales se
ejecutan diferentes acciones de acuerdo con los datos que estn procesandose. El
programa debe incluir instrucciones para las acciones que deban ejecutarse sobre
cada uno de los tipos de datos admitidos, adems de instrucciones que identifiquen
los datos errneos.
Cuando se ejecuta un programa con un tipo de datos especfico, es probable
que no se ejecuten todas las instrucciones sino solo las que sean pertinentes a los
datos en cuestin.
Un programa se compone de estructuras de datos, operaciones primitivas
elementales y estructuras de control, como se muestra a continuacin:
Programa = estructuras de datos
+ operaciones primitivas elementales
+ estructuras de control
Estructuras de datos .- los hechos reales, representados en forma de datos,
pueden estar organizados de diferentes maneras llamadas estructuras de datos. Por
ejemplo el nombre, las horas trabajadas y el sueldo por hora son los datos mediante
los cuales se representa un empleado en una situacin de nmina (pago de
sueldos).
Operaciones primitivas elementales.- son las acciones que se ejecutan sobre
los datos para transformarlos en informacin. Por ejemplo, el sueldo de un
empleado se calcula multiplicando las horas trabajadas por la cuota horaria.
Estructuras de control.- son los mtodos que existen para dirigir el flujo de
acciones que la computadora deber ejecutar sobre los datos manejados por el
programa.
Entre las estructuras de control estn las capacidades de ejecutar las
operaciones secuenciales una tras otra; las seleccin de alternativas, cmo ejecutar
una u otra opcin de acuerdo con ciertas condiciones, y las repeticiones, cmo
realizar varias veces una accin: por ejemplo calcular el sueldo de un empleado,
pero repitiendo el clculo N veces para N empleados.

El lenguaje de programacin
Un lenguaje de programacin es el medio a travs del cual le comunicamos a
la computadora las instrucciones que debe ejecutar para resolver el problema en
cuestin.
Todo lenguaje est compuesto por un alfabeto, un vocabulario y una
gramtica. A continuacin se describen estos componentes:
1.- Alfabeto o conjunto de caracteres.- Es el conjunto de elementos
estructurales del lenguaje:
a) Caracteres alfabticos (letras minsculas y maysculas)
b) Caracteres numricos (dgitos del 0 al 9)
c) Caracteres especiales (smbolos diversos tales como [.], [;], [:], [+],
[-], [*], [=], [/], [,] y muchos otros).

4
2.- Vocabulario o lxico.- Es el conjunto de palabras vlidas en el lenguaje.
Por ejemplo, las palabras abstract, private, int, float, new, this, class, char,
return; tienen un significado predeterminado en el lenguaje Java.

3.- Gramtica o reglas de sintaxis.- Es el conjunto de lineamientos que se
deben respetar para construir frases u oraciones. Mediante la gramtica y la
sintaxis logramos transmitirle a la computadora lo que deseamos.

La programacin
Generalmente se consideran sinnimos los conceptos programacin y
codificacin, lo cual constituye un error. Debemos tener presente que la finalidad
de un programa es realizar algn proceso sobre ciertos datos para obtener ciertos
resultados. La preparacin de un programa implica aspectos tales como: para qu
sirve el proceso que se desea representar?, qu tipos de datos usar, que
resultados producir y como se realizar el proceso sobre los datos para obtener los
resultados esperados? Una vez identificado lo anterior se procede a disear la
manera como la computadora deber hacerlo, tomando en cuenta su estructura
interna y su funcionamiento. Hasta ese momento se tiene representada la solucin
de una forma convencional, pero enseguida se procede a codificar el programa que
solucionar el problema correspondiente.

Caractersticas de un buen programa
Un programa bien escrito debe tener ciertas caractersticas bsicas que le
permitan operar correctamente; las principales seran las siguientes:
Operatividad.- lo mnimo que debe hacer un programa es funcionar; es decir,
producir los resultados esperados independientemente de cualquier otra
caracterstica.
Legibilidad.- un programa puede hacerse ms legible dndole cierto formato
al cdigo, utilizando el sangrado (identacin) para reflejar la estructura del
control del programa, e insertando espacios o tabuladores. Es conveniente
disear reglas propias para darle uniformidad a todos los programas.
Transportabilidad.- un programa transportable es el que puede ejecutarse en
otro entorno sin hacerle modificaciones importantes. Mientras menos
modificaciones se hagan ser ms transportable, as que es conveniente no
utilizar caractersticas especiales del hardware ni facilidades especiales del
software.
Claridad.- esta caracterstica se refiere a la facilidad con que el texto del
programa comunica las ideas subyacentes. El programa debe indicar
claramente lo que el programador desea. Una buena programacin es similar a
la elaboracin de un documento legal; por ejemplo, conviene utilizar nombre
adecuados para los identificadores, hacer comentarios correctos, claros y
concisos, etc.
Modularidad.- dividir el programa en un nmero de mdulos pequeos y
fciles de comprender puede ser la contribucin ms importante a la calidad
del mismo.

Cada mdulo debe realizar solo una tarea especfica, y no ms. Los mdulos
tienen la virtud de minimizar la cantidad de cdigos que el programador debe
comprender a la vez.

5
Requisitos que debe reunir un buen programa
a) Preciso
b) Finito
c) Efectivo
d) Contener datos de entrada
e) Presentar datos de salida (Resultados)

Pasos para escribir un programa.
a) Buscar la solucin primeramente.
b) Trazar la solucin utilizando Pseudocdigo.
c) Codificar el programa basndose en el Pseudocdigo

Las personas encargadas de escribir los programas para las computadoras son los
programadores por lo tanto debern de reunir las siguientes caractersticas:
a) Tener motivacin
b) Ser paciente con todo
c) Deber ser disciplinado (ordenado)
d) Habilidad para usar la lgica (indispensable)
e) Habilidad de trabajar con los detalles (muy importante)
f) Creatividad
g) Conocer las limitaciones y capacidades de los sistemas de programacin

El Proceso De Programacin
Elaborar un programa de computadora implica llevar a cabo una serie de pasos
secuenciales y cronolgicos que comienzan con la deteccin y definicin de problema y
conducen a la implementacin del programa que lo soluciona. A continuacin se
describen los pasos a Seguir:

Definicin del problema.- est dada por el enunciado del problema, el cual debe ser
claro y completo. Es importante que conozcamos exactamente que se desea de la
computadora.

Anlisis de los datos.- entendido el problema, para resolverlo es preciso analizar:
a) Los datos de entrada que sern suministrados.
b) El proceso a que sern sometidos los datos.
c) Los resultados que se esperan.

Seleccionar la mejor alternativa.- analizado el problema probablemente tengamos
varias alternativas de solucin, lo importante es determinar cul ser la mejor (menor
tiempo de resultados, menor costo)

Diseo de la solucin.- una vez que sabemos cmo resolver el problema, se plantea la
solucin lgica de la mejor alternativa, mediante alguna tcnica de representacin de
algoritmos.

Prueba y depuracin.- asegurarse que el algoritmo funcione correctamente y esta
prueba consiste en que damos datos de entrada diferentes y considerar todos los posibles
casos para asegurarnos de que el algoritmo no producir errores.

6
Codificacin.- una vez que hayamos verificado el algoritmo, lo codificamos en el
lenguaje del computador para el cual funcionar.

Pruebas de computador.- cuando se tiene el programa en lenguaje mquina ordenamos
a la computadora que lo ejecute, le introducimos datos, los analizamos y podemos
detectar errores sencillos, errores de lgica, o bien que el programa funciona
correctamente.

I mplementacin del programa.- a continuacin, el programa se pone a funcionar y
entra en operacin normalmente dentro de la situacin especfica para la que se diseo.
Debe ser supervisado continuamente para detectar posibles cambios o ajustes que sea
necesario realizar.

Mantenimiento del programa.- un programa que ya est en operacin podra requerir
cambios o ajustes en sus datos, procesos o resultados; esto implica que eventualmente
necesitar mantenimiento para adecuarlo a la dinmica cambiante de las empresas o de
los problemas.
Lo anterior no sita en una dinmica infinita, ya que si surge la necesidad de
darle mantenimiento tendremos que regresar al punto uno para definir de nuevo el
problema, y si la modificacin es pequea podramos ir al paso dos, al tres o a cualquier
otro.

Documentacin externa.- cuando el programa ya est listo para ejecutarse es
conveniente que hagamos su documentacin externa. Una buena documentacin
incluye:
a) enunciado de problema
b) descripcin de la lgica mediante la tcnica seleccionada
c) codificacin (escritura del programa)
d) instructivo de utilizacin del programa
e) como debern suministrarse los datos de entrada
f) presentacin de qu forma sern impresos los datos de salida

7
El algoritmo
El algoritmo es una secuencia ordenada y cronolgica de pasos que llevan a la
solucin de un problema o a la ejecucin de una tarea. Los pasos deben ser simples,
claros y exactos, seguir un orden lgico y, adems, tener un principio y un fin.
Son ejemplos de algoritmos las seas para encontrar una calle, las recetas de
cocina, los planos de construccin y las instrucciones para armar un juguete.
Cuando diseamos algoritmos para ejecutar ciertas tareas, debemos considerar
las caractersticas ya mencionadas. A continuacin se presenta un ejemplo para denotar
las propiedades de los algoritmos.

Ejemplo: Cambiar un foco fundido.
Pasos:
1. Quitar el foco fundido.
2. Colocar el foco nuevo.


Esto parece resolver el problema, pero supngase que estamos tratando de
entrenar a un robot para que haga la tarea.; en tal caso no funcionar lo anterior, y
tendremos que ser ms especficos y claros; por ejemplo:
1. Colocar la escalera debajo del foco fundido.
2. Elegir un foco nuevo de una potencia adecuada.
3. Subir por la escalera hasta alcanzar el foco fundido.
4. Girar el foco fundido hacia la izquierda hasta que est suelto.
5. Ubicar el foco sustituto en el mismo lugar.
6. Darle vuelta hacia la derecha hasta que quede apretado.
7. Bajar de la escalera.
8. Fin.

Aun as puede suceder que la precisin no sea suficiente; es probable que
algunos pasos deban detallarse de manera tal que las instrucciones sean ms simples y
precisas.
El algoritmo para reemplazar el foco fundido podra quedar as:
1. Colocar la escalera debajo del foco fundido.
2. Elegir un posible sustituto.
Si la potencia no es igual a la del foco fundido, reptase el siguiente
procedimiento hasta que lo sea.
Descartar el foco escogido.
Elegir uno nuevo.
3. Repetir el siguiente procedimiento hasta que se alcance el foco fundido.
Subir un peldao.
4. Repetir el siguiente procedimiento hasta que el foco fundido est suelto.
Girar el foco hacia la izquierda.
5. Ubicar el nuevo foco en el mismo lugar.
6. Repetir el siguiente procedimiento hasta que el foco est apretado.
Girar el foco hacia la derecha.
7. Bajar de la escalera.
8. Fin.


8
Este algoritmo todava puede hacerse ms preciso y claro. Si consideramos que
el robot tiene las capacidades elementales siguientes:
Colocar la escalera.
Sabe traer la escalera desde su lugar hasta dnde se encuentra el foco
fundido.
Subir un peldao.
Sabe cundo alcanzar el lugar del foco.
Bajar un peldao.
Sabe cundo est en el piso.
Obtener foco de repuesto.
Suponemos que se tiene una caja con focos de repuesto de todas las
medidas, y que el robot sabe dnde se encuentra la caja y puede
obtener un foco nuevo igual al que traiga en su brazo.
Girar foco a la izquierda.
Sabe cundo sale el foco.
Girar foco a la derecha
Sabe cundo est apretado el foco.
Guardar la escalera.

Considerando esas capacidades podramos elaborar el algoritmo de esta manera:
Algoritmo CAMBIAR FOCO FUNDIDO
1. Colocar la escalera
2. Repetir
Subir un peldao hasta alcanzar el foco
3. Repetir
Girar foco a la izquierda hasta que el foco salga
4. Repetir
Bajar un peldao
Hasta estar en el piso
5. Obtener foco de repuesto
6. Repetir
Subir un peldao hasta alcanzar el foco
7. Repetir
Girar foco a la derecha hasta que el foco est apretado
8. Repetir
Bajar un peldao hasta estar en el piso
9. Guardar la escalera
10. Fin

Todas las actividades que llevamos a cabo los seres humanos son algoritmos que
hemos aprendido a seguir. Caminar y lavarse los dientes, por ejemplo, son secuencias
lgicas de pasos. La civilizacin est basada en el orden de las cosas y de las acciones;
stas se organizan conforme a secuencias lgicas, y a estos se le llama programacin.
Durante el desarrollo de algoritmos para computadora, es necesario idear los
pasos que la mquina deber seguir para realizar alguna tarea de la vida cotidiana.
Cuando se presenta el problema de ejecutar cierta tarea, debemos efectuar diversas
actividades subyacentes tales como hacer preguntas, buscar objetos conocidos o dividir
el problema en partes. Muy a menudo hacemos todo eso inconscientemente, pero al
elaborar algoritmos para solucionar problemas con la computadora debemos detallar
esas actividades de manera explcita.
9
Ejercicios propuestos

Prepare un algoritmo para llevar a cabo cada una de las siguientes actividades:
1. Hacer palomitas de maz en una cacerola puesta al fuego, usando sal y maz.
2. Cambiar un vidrio roto de una ventana.
3. Cambiar un neumtico pinchado.
4. Hablar por telfono.
5. Salir de la casa por la maana para ir a la escuela.















































Maestro: Lic. Vctor Manuel Jaime Burgos
Departamento de Sistemas y Computacin
Correo Electrnico: vicmjb@prodigy.net.mx

También podría gustarte