Vous êtes sur la page 1sur 8

INTRODUCCION A LA PROGRAMACIÓN

La Resolución de Problemas utilizando la Computadora

Aunque el proceso de diseñar programas es un proceso creativo, se pueden considerar una


serie de fases o pasos comunes, que generalmente deben seguir todos los programadores.

La resolución de problemas con computadoras se puede dividir en tres fases:

 Análisis del problema


 Diseño del algoritmo
 Resolución del algoritmo en la computadora

El análisis y el diseño del algoritmo requiere la descripción del problema en subproblemas a


base de refinamientos sucesivos y una herramienta de programación:
 Diagrama de flujo
 Diagrama N-S
 Pseudocódigo

Durante la tercera etapa se implementa este algoritmo en un código escrito en un lenguaje de


programación, reflejando las ideas obtenidas en las fases de análisis y diseño.

Antes de conocer las tareas a realizar en cada fase, definiremos el concepto y significado de la
palabra algoritmo.

¿QUÉ ES UN ALGORITMO?
Se deriva de la traducción al latín de la palabra árabe Alkhowarismi, 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 un método para resolver un problema mediante una serie de pasos precisos,
definidos y finitos.

Características del Algoritmo

 preciso, tiene que indicar el orden de realización en cada paso.


 definido, es decir, si el algoritmo se prueba dos veces, en estas dos pruebas, se debe
obtener el mismo resultado.
 finito, es decir, que el algoritmo tiene que tener un número determinado de pasos.
 debe producir un resultado en un tiempo finito.

Algunos ejemplos de algoritmos:


Ver una película:

Buscar el videocasete de la película


SI el televisor y la video se encuentran apagados, encenderlos
Sacar el video del estuche
Introducirlo en la videocasetera
Tomar el control del televisor y la video
Dirigirme al sofá
Ponerme cómodo
Disfrutar la película

Este pequeño algoritmo cumple con los requisitos descritos arriba, ya que cada paso precisa un
orden y tiene un orden de pasos finitos. En este algoritmo aparece la palabra SI remarcada en
mayúsculas, el uso de esta palabra la veremos mas adelante, cuando discutamos sobre el
control del flujo del programa o estructuras de control.

Los algoritmos se pueden expresar por fórmulas, diagramas de flujo, y pseudocódigos


conocidos como herramientas de programación. Está última representación es la mas utilizada
por su sencillez y parecido al lenguaje humano.

Como ejercicio te recomendaría que escribieras algunos algoritmos de sucesos en tu vida


cotidiana, como por ejemplo: encender el auto, ir al cine, preparar una tortilla, etc.

Fases para la Resolución de Problemas


Son los pasos a seguir para la resolución de problemas con ayuda de la computadora.

Análisis del Problema


Esta fase requiere una clara definición donde se contemple exactamente lo que debe hacer el
programa y el resultado o solución deseada.

Dado que se busca una solución se precisan especificaciones de entrada y salida.

Para poder definir bien un problema es conveniente responder a las siguientes preguntas:

 ¿Qué entradas se requieren? (cantidad y tipo)


 ¿Cuál es la salida deseada? (cantidad y tipo)
 ¿Qué método produce la salida deseada?

Diseño del Algoritmo

En la fase de análisis en el proceso de programación se determina que hace el programa. En la


fase de diseño se determina como hace el programa la tarea solicitada.

Los métodos utilizados para el proceso del diseño se basan en el conocido divide y vencerás.
Es decir la resolución de un problema complejo se realiza dividiendo el problema en
subproblemas y a continuación dividir estos subproblemas en otros de nivel mas bajo, hasta
que sea implementada una solución en la computadora. Este método se conoce técnicamente
como diseño descendente (top-down) o modular.
Cada programa bien diseñado consta de un programa principal (el módulo de nivel más alto)
que llama a subprogramas (módulos) de nivel mas bajo, que a su vez pueden llamar a otros
subprogramas.

Los módulos pueden ser planeados, codificados, comprobados y depurados


independientemente y a continuación combinarlos entre sí. Este proceso implica la ejecución
de estos pasos hasta que el programa se ha terminado:
 Programar un módulo
 Comprobar el módulo
 Si es necesario, depurar el módulo
 Combinar el módulo, con el resto de los otros módulos

El diseño del algoritmo es independiente del lenguaje de programación en el que se vaya a


codificar posteriormente.
Implementación del Algoritmo
Para implementar un algoritmo en la computadora, se debe ejecutar los siguientes pasos:

 Codificación
 Compilación y ejecución
 Verificación
 Depuración
 Documentación

Codificación: Es la escritura en un lenguaje de programación de la representación de un


algoritmo. Dado que el diseño del algoritmo es independiente del lenguaje de programación
utilizado en su implementación, el código puede ser escrito con igual facilidad en un lenguaje
o en otro.

Compilación y ejecución: Una vez que el algoritmo se ha convertido en un programa fuente,


es preciso introducirlo en memoria mediante el teclado y almacenarlo posteriormente en un
disco. Esta operación se realiza con un editor de texto, posteriormente el programa fuente se
convierte en un archivo de programa que se guarda en un disco.

El programa fuente debe ser traducido a lenguaje máquina. Este proceso se realiza con el
compilador y el sistema operativo que se encarga prácticamente de la compilación. Si al
compilar el programa fuente se presentan errores (errores de compilación), es necesario volver
a editar el programa, corregir los errores y compilar de nuevo. Esto se repite hasta que ya no se
presenten mas errores, obteniéndose el programa objeto, el cual todavía no es ejecutable
directamente. Al ya no existir errores en el programa fuente se debe instruir al sistema
operativo para que efectúe la fase de montaje o enlace, del programa fuente con las librerías
del programa del compilador. Este proceso de montaje produce un programa ejecutable.

Cuando se ha creado un programa ejecutable este se puede ya ejecutar desde el sistema


operativo con solo teclear su nombre.

Suponiendo que no existen errores durante la ejecución (errores en tiempo de ejecución), se


obtendrá la salida de resultados correctos del programa.
Verificación y depuración: Es el proceso de ejecución del programa con una amplia variedad
de datos de entrada, llamados datos de test o prueba como son: valores normales de entrada,
valores extremos de entrada que comprueben los límites del programa y valores de entrada que
comprueben aspectos especiales del programa. Estos determinarán si el programa contiene
errores o no.

Al ejecutar un programa se pueden producir tres tipos de errores:

 Errores de Compilación: Se producen normalmente por un uso incorrecto de las


reglas del lenguaje de programación, suelen ser errores de sintaxis.
 Errores de Ejecución: Se producen por instrucciones que la computadora puede
comprender pero no ejecutar. En estos casos se detiene la ejecución del
programa y se imprime un mensaje de error. Ejemplo de esto puede ser una
división por cero.
 Errores Lógicos: Se producen en la lógica del programa y la fuente del error
suele ser el diseño del algoritmo, son mas difíciles de detectar puesto que el
programa puede funcionar y no producir errores de compilación ni de ejecución
pero regresará resultados incorrectos. En este caso se debe regresar a la fase de
diseño, modificar el algoritmo, cambiar el programa fuente y compilar y
depurar una vez mas.

Documentación: La importancia de la documentación debe ser destacada por su influencia en


la etapa final, ya que programas pobremente documentados son difíciles de leer, mas difíciles
de depurar y casi imposibles de mantener y modificar.

Puede ser interna y externa. La documentación interna es la contenida en líneas de


comentarios. La documentación externa incluye análisis, diagramas de flujo y/o
pseudocódigos, manuales de usuarios con instrucciones para ejecutar el programa y para
interpretar los resultados.

La documentación es vital cuando se desea corregir posibles errores futuros o bien cambiar el
programa. Estos cambios se denominan mantenimiento del programa.

Además es de buena costumbre para todo buen programador, dejar comentado su código, esto
es para que el futuro programador pueda darle mantenimiento fácilmente al programa, o
incluso, si es el mismo creador quien debe darle mantenimiento.
Herramientas de Programación
Las herramientas de programación más utilizadas comunmente para diseñar algoritmos son:

 Pseudocódigos
 Diagramas N-S
 Diagramas de flujo.

Siendo el pseudocódigo el mas popular por su sencillez y su parecido al lenguaje humano.


Tipos de Datos
Los diferentes objetos de información con los que un programa trabaja se denominan datos.

Todos los datos tienen un tipo asociados con ellos que nos servirá para poder conocer con que
información trabajaremos. Es decir, cuando ingresemos el sueldo de un trabajador necesitamos
que este contenga decimales, o al solicitar la edad de una persona está tiene que estar con
números enteros, etc. Además la suma entre caracteres no tiene sentido.

La asignación de tipos a los datos tiene dos objetivos principales:


 Detectar errores de operaciones aritméticas en los programas.
 Determinar como ejecutar las operaciones.
Tipos de Datos Comunes
Estos son los tipos de datos mas utilizados en los lenguajes de programación:

 Numéricos.
 Caracteres.
 Lógicos.

Tipos Numéricos
Dentro de estos tipos se puede hacer mención de los tipos enteros, reales o de coma flotante, y
de los exponenciales.
Tipos Carácter
Los tipos carácter se dividen también en caracteres ASCII, como por ejemplo: a A & * , etc..
El otro grupo de caracteres son los strings o cadenas de caracteres, como por ejemplo: "Hola
Mundo".

Tipos Lógicos
Los tipos lógicos solamente pueden tomar los valores verdadero o falso.

Identificadores

Representan los nombres de los objetos de un programa (constantes, variables, tipos de datos,
procedimientos, funciones, etc.). Es una secuencia de caracteres que puede ser de cualquier
longitud, aunque tiene ciertas reglas que hay que seguir, las cuales son:

Debe comenzar con una letra o "_" y no puede contener espacios en blanco.
Letras, dígitos y caracteres subrayados ("_") están permitidos después del primer carácter.

En síntesis, un identificador es un método para nombrar a las celdas de memoria en la


computadora, en lugar de memorizarnos una dirección de memoria.

Se utilizan para nombrar variables, constantes, procedimientos y funciones.


Constantes

Las constantes son valores que no pueden cambiar en la ejecución del programa. Recibe un
valor en el momento de la compilación del programa y este no puede ser modificado.
Variables

Las variables son valores que se pueden modificar durante la ejecución de un programa. Al
contrario de las constantes estos reciben un valor, pero este valor puede ser modificado
durante la ejecución o la compilación del programa.
Sentencia de Asignación
Se utiliza para asignar o almacenar valores a variables o constantes. Es una operación que
sitúa un valor determinado en una posición de memoria. Se demuestra en pseudocódigo con el
símbolo <- (Una flecha apuntando hacia el identificador, donde se desea guardar el valor.).
variable <- expresión

El tipo de expresión debe ser del mismo tipo que el de la variable, en caso contrario en la fase
de compilación se produciría un error de tipos. Aunque a la fecha existen lenguajes de
programación con una potente herramienta para la conversión de datos (tal es el caso de Visual
Basic), no es recomendable asignar valores de un tipo diferente a variables de otro tipo.

Reglas de Asignación
Una variable en el lado derecho de una sentencia de asignación debe tener un valor antes de
que la sentencia de asignación se ejecute. Hasta que un programa le da un valor a una variable,
esa variable no tiene valor. Por ejemplo:

Si x no tiene un valor antes de ejecutar y <- x+1, se producirá un error lógico.

En la izquierda de una sentencia de asignación solo pueden existir variables. Por consiguiente
no es valido lo siguiente:
Valor_Neto - Tasas <- 34015.

Además hay que recordar que la operación de asignación es una operación destructiva debido
a que el valor almacenado en una variable se pierde o se destruye y se sustituye por el nuevo
valor en la sentencia de asignación.

Operadores utilizados en Programación

Operadores matemáticos:
Operador Significado
+ Suma
- Resta
* Multiplicación
/ División
^ Potenciación
En todos los lenguajes de programación se utilizan operadores para efectuar operaciones
aritméticas. Combinando las variables y constantes en expresiones aritméticas por medio de
funciones adecuadas.

Una expresión es un conjunto de datos o funciones unidos por operadores aritméticos, los
cuales se muestran en la siguiente tabla:

Operadores de Relación:
En ocasiones en los programas se necesitan realizar comparaciones entre distintos valores,
esto se realiza utilizando los operadores relacionales, los cuales se listan a continuación:

Operador Significado
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
= Igual a
<> Distinto a, diferente de

Operadores lógicos:
Se usan generalmente para agrupar condiciones lógicas que den como resultado el valor
verdadero (True) o falso (False). Los principales son:

Operador Significado
And Y (Da verdadero si todas las condiciones se cumplen)
Or O (Da verdadero si por lo menos una condición se cumple)
Not No (Operador de negación).

Algoritmos y problemas

Ante todo veremos varios temas básicos referentes a el uso de algoritmos y pseudocódigos. El
papel de los programas de computadoras es esencial pero sin una lista de instrucciones a
seguir, la computadora es virtualmente inútil. Los lenguajes de programación nos permiten
escribir esos programas y por consiguiente comunicarnos con las computadoras

Estructuras lógicas

Las estructuras de control de un lenguaje de programación se refieren al orden en


que las instrucciones de un algoritmo se ejecutarán. El orden de ejecución de las
sentencias o instrucciones determinarán el flujo de control.

Estas estructuras de control son por consiguiente fundamentales en los lenguajes de


programación y en los diseños de algoritmos, especialmente los pseudocódigos.

Las tres estructuras de control básicas son:

- Secuencia
- Selección
- Repetición

La programación estructurada

La programación estructurada hace los programas mas fáciles de escribir, verificar, leer y
mantener, utiliza un número limitado de estructuras de control que minimizan la complejidad
de los problemas.

Un programa propio puede ser escrito utilizando solamente tres tipos de estructuras de
control: secuenciales, selectivas y repetitivas.

Un programa se define como propio si cumple lo siguiente:

Posee un solo punto de entrada y salida o fin para control del programa.
Existen caminos desde la entrada hasta la salida que se pueden seguir y que pasan por
todas las partes del programa.
Todas las instrucciones son ejecutadas y no existen lazos o bucles infinitos.

En síntesis la programación estructurada significa:

El programa completo tiene un diseño modular.


Los módulos se diseñan con metodología descendente (método top-down).
Cada módulo se codifica utilizando las 3 estructuras de control básicas: secuenciales,
selectivas, repetitivas.
Estructuración y modularidad son complementarios mas no iguales.

La Programación Modular

Una estrategia muy utilizada para la resolución de problemas complejos con la computadora,
es como lo he venido comentando, la división del problema en otros problemas mas
pequeños o subproblemas. Estos subproblemas se implementan mediante módulos o
subprogramas.

Los subprogramas son una herramienta importante para el desarrollo de algoritmos y


programas de modo que normalmente un proyecto de programación esta compuesto
generalmente de un programa principal y un conjunto de subprogramas con las llamadas a
los mismos dentro del programa principal.

Los subprogramas se clasifican en: procedimientos y funciones.

cursos@educainformatica.com.ar
info@educainformatica.com.ar

Vous aimerez peut-être aussi