jueves, 12 de febrero de 2009

Ejercicios

Hacer un algoritmo que lea 4 numeros y acontinuacion imprima El Mayor de los 4.


Codificacion de un Programa

Codificación de un programa

Codificación es la estructura en un lenguaje de programación de la representación del algoritmo en las etapas precedentes. Dado que el diseño de un algoritmo es independiente del lenguaje de programación utilizado para su implementación, el código puede ser escrito con igual facilidad en un lenguaje o en otro.
Para realizar la conversión del algoritmo en programa se deben sustituir las palabras reservadas en español por sus homónimos en ingles, y las operaciones/instrucciones indicadas en lenguaje natural expresarlas en el lenguaje de programación correspondientes.

Documentación Interna: es la que se incluye del código del programa fuente mediante comentarios que ayudan a la comprensión del código. Todas las líneas que comiencen con * son comentarios. Estas líneas sirven para hacer más fáciles a los programas.

Compilación y ejecución de un programa.
Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo en memoria mediante el teclado y almacenarlo en un disco. Esta operación se realiza con un programa editor. El programa después se convierte en un archivo de programa que se guarda en disco.

El programa fuente debe ser traducido a lenguaje de maquina, este proceso se realiza con el compilador y el sistema operativo que se encarga prácticamente de la compilación. Obteniéndose el programa objeto que todavía no es ejecutable directamente. Si ya no se encuentran errores se debe instruir el al sistema operativo para que realice la fase de montaje o enlace. El proceso de montaje produce un programa ejecutable. Cuando el programa ejecutable se ha creado, se puede ya ejecutar desde el operativo con solo teclear su nombre.

Verificación y depuración de un programa.
Es el proceso de ejecución del programa con una amplia variedad de datos de entrada, llamados datos test o prueba, que determinaran si el programa tiene errores.
La depuración es el proceso de encontrar los errores del programa y corregir o eliminar dichos errores. Cuando se ejecuta un programa, se pueden producir tres tipos de errores:
1.- Errores de compilación: se producen por el uso incorrecto de las reglas del lenguaje de programación y suelen ser errores de sintaxis.
2.- Errores de ejecución: estos errores se producen por instrucciones que la computadora pero no ejecutar.
3.- Errores lógicas: se producen en la lógica del programa y la fuente del error suele ser el diseño del algoritmo

Documentación y mantenimiento.
La documentación de un problema consta de las descripciones de los pasos a dar en el proceso de resolución de dicho problema.
La documentación de un programa 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 pseudocódigo, manuales de usuario con instrucciones para ejecutar el programa y para interpretar los resultados. Los cambios en el programa se denominan mantenimiento de programa.

Estructuras de control:
De un lenguaje de programación son métodos de especificar el orden en que las instrucciones de un algoritmo se ejecutaran. El orden de ejecución de las secuencias o instrucciones determina el flujo de control.
Las estructuras de control básicos son:
-Secuencia
-Selección
-Repetición
La programación estructurada hace los programas más fáciles de escribir, verificar, leer y mantener.

Teorema de la programación estructurada: estructura básicas.
Un programa se define como propio si cumple las siguientes características:
- Posee un solo punto de entrada y uno de salida o fin para control del programa.
- Existen caminos desde la entada hasta la salida que se pueden seguir y que pasan por todas las partes del programa.
- Todas las instrucciones son ejecutables y no existen los lazos o bucles infinitos.

Concepto y caracteristicas de algoritmos.
Un algoritmo es un metodo para resolver un problema. La resolucion de un problema exige el diseno de un algoritmo que resuelva el problema propuestos.
Los pasos para la resolucion de un problema son:
1.- Diseno del algoritmo, que describe la secuencia de ordenanada de pasos sin ambigüedades que conducen a la solucion de un problema dado.
2.- Expresar el algoritmo como un programa en un lenguaje de programación adecuado.
3.- Ejecucion y validación del programa por la computadora.
Caracteristicas de los algoritmos son:
- Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
- Un algoritmo debe ser definido. Si se sigue un algoritmo dos veces, debe de dar el mismo resultado cada vez.
- Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algun momento.
La definición de un algoritmo debe escribir tres partes: entrada, proceso y salida.
Un ejemplo:
En el algoritmo de receta de cocina.
Entrada: Ingredientes y utensilios empleados.
Proceso: Elaboración de la receta en la cocina.
Salida: Terminación del plato.

Diseño del algoritmo.
La información proporcionada al algoritmo constituye su entrada y la informacio producida por el algoritmo constituye la salida.
Los problemas compljos se pueden resolver mas eficazmente con la computadora cuando se rompen en subproblemas que sean mas faciles de solucionar que el original. Este metodo se suele denominar divide y venceras y consiste en dividir un problema complejo e otros mas simples. La descomposición del programa en subproblemas mas simples y a continuación la division de estos en subproblemas en otros mas simples a esto se le denomina en diseno descendente. Estas partes mas simple se les denomina modulos. Tras los pasos anteriores es preciso representarlo en un diagrama N-S.

Estructura del algoritmo:
El sistema para describir el algoritmo consiste en realizar una descripción paso a paso con un lenguaje natural del citado algoritmo. Un algoritmo es un conjunto de reglas para solucionar problemas. En calculos elementales estas tienen las siguientes propiedades:
- Deben ser seguidas de alguna secuencia definida de pasos hasta que se obtenga un resultado coherente.
- Solo puede ejecutarse una operación a la vez.
El flujo de control usual de un algoritmo es secuencial; consideremos ek algoritmo que responde a la pregunta.

Representación grafica de los algoritmos:
Para representar un algoritmo se debe utilizar algun metodo que permite independizr dicho algoritmo del lenguaje de programación elegido.

jueves, 29 de enero de 2009

Algoritmo area del Circulo

Algoritmo para calcular el area de un circulo.

Entrada: Los datos del problema como el radio.

Proceso: Aplicar la formula Pi * r al cuadrado con los datos obtenidos.

Salida:Obtener el Resultado necesitado.

miércoles, 28 de enero de 2009

Programacion Modular

La Programacion Modular es uno de los metodos de diseño mas flexibles y potenete para mejorar la productividad de un programa. En este programa se divide en modulos (partes independeientes) cada uno de los cuales ejecuta una tarea. Cada programa contiene un modulo principal denominado programa principal que controla todo lo que sucede; se transfiere el control a submodulos.
Los modulos son independientes en el sentido en que ningun modulo puede tener acceso directo a cualquier otro modulo excepto el modulo al que llama y sus propios submodulos.
La descomposicion de un programa en modulos independientes mas simples se le conoce como el metodo de Divide y Venceras. Se diseña cada modulo conb independencia de los demas y siquiendo un metodo ascendente y descenedente se llegara hasta la descomposicion final del problema en modulos en forma jerarquica.

Programacion Estructurada: Significa escribir un programa de acuerdo a las siguientes reglas :
-El Programa tiene un diseño modular.
-Los modulos son diseñados de modo descendente.
-Cada modulo se codifica utilizando las tres estructuras de control basicas: secuencia, seleccion, y repeticion.
La programacion estructurada es el conjunto de tecnicas que incorporan:
-Recursos Abstractos.
-Diseño Descendente.
-Estructuras Basicas.

Recursos Abstractos: descomponer un programa en terminos de recursos abstractos, consiste en descomponer una determinada accion compleja en terminos de un numero de acciones mas simples capaces de ejecutar instrucciones de computadoras disponibles.
Diseño Descendente: Es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento. La metodologia descendente consiste en efectuar una relacion entre las sucesivas etapas de estructuracion de modo que se relacionasen unas con otras mediante entradas y salidas de informacion.
Estructura de Controlo: De un lenguaje de programacion son metodos de especificar el orden en que ñas instrucciones de un algoritmo se ejecutaran.

Las computadoras se componen de:

Dispositivos de entrada/salida (E/S)
Unidad central de proceso (unidad de control y unidad lógica y aritmética)
Memoria central
Dispositivo de almacenamiento masivo de información (memoria auxiliar o externa)

El software de sistema comprende, entre otros, el sistema operativo Windows Linux, en computadoras personales y lenguajes de programación. Los lenguajes de programación de alto nivel están diseñados para hacer más fáciles la escritura de programas que los lenguajes de bajo nivel. Existen numerosos lenguajes de programación cada uno e los cuales tiene sus propias características y funcionamientos y normalmente son mas fáciles de trasportar a maquinas diferentes que los escritos en lenguajes de bajo nivel.

Los programas escritos en lenguajes de alto nivel deben ser traducidos por un compilados antes de que se pueda ejecutar en una maquina especifica. En la mayoría de los lenguajes de programación se requiere un compilador para cada maquina en la que se desea ejecutar a programas escritos en un lenguaje especifico.

Los lenguajes de programación se clasifican en:

Alto nivel: pascal, fortran, visual Basic, c, ada, modula-2, c++, java, delphi, c, etc.
Bajo nivel: ensamblador
Maquina: código maquina.
Diseño de web: smgl, html, xml, php…

viernes, 23 de enero de 2009

Diseño del Algoritmo

En la etapa del analisis del proceso de programacion se determina que hace el programa. En la etapa de diseño se determina como hace el programa la tarea solicitada. Los metodos mas eficaces para el proceso de diseño se basa en el conocido divide y venceras (desglosar y analizar el problema parte por parte) un problema complejo se soluciona dividiendolo en subproblemas y a la vez estos subproblemas en otros de nivel mas bajo hasta que pueda ser implementada una solucion en la computadora. Este metodo se le conoce como diseño desendente (Top-Down) o modular.

Herrmainetas de Programacion.
Diagrama de Flujo.- Es una representacion grafica de un algoritmo.
Los simbolos del diagrama de flujo:

Terminal: marcar el inicioy el fin Proceso: Involucra cualquier proceso,
del diagrama. calculo o computo por ejemplo:
"Calcula a=b*h"

Entrada: Introduce Datos al proceso Salida: Envia la informacion al dispositivo
o solucion (programa) de salida estandar. El monitor


Decision: Cambia el flujo del algoritmo
de acuerdo a una evalucaion
logica.


El Pseudocodigo: es una herramienta de programcion en la que las iunstrucciones se escriben en palabras similares al ingles o español. El Pseudocodigo se puede definir como un lenguaje de especificaciones de algoritmos.

Ejemplo 2.1 Calcular la paga neta de untrabajador conociendo el numero de horas trabajadas, la tarifa horaria y la tasa de impuestos.
-Leer Horas, Tarifa, Tasa.
-Calcular Pagabruta = Horas * Tarifa.
-Calcular Impuestos = Pagabruta * Tasa.
-Calcular paganeta = Pagabruta * Impuestos
-Visualizar PagaBruta, Impuestos, paganeta.


Realizar un algoritmo que calcule el area de un rectangulo dadas la base y la altura de acuerdo a la formula base*altura.

-Inicio


miércoles, 21 de enero de 2009

Diagrama N-S

Un diagrma de Nassi-Shneiderman es ua representacion grafica de diseño de la proghramacion estructurada. desarrollado en 1972 por Isaac Nassi y Ben Shneiderman, estos tambien se llaman diagramas estructogramas. Un diagrma de Nassi-Shneiderman es una representacion grafica de un algoritmopara programacion estructurada estos muestran las estructuras de ls programas.

El Diagrama N-S o tambien conocido como diagrama de Chapin es una tecnica de especificacion de algoritmos que combina la descripcion textuaal, propia del pseudocodigo, con la representacion grafica del diagrama d flujo.

El Diagrama N-S cuenta con un conjunto limitado de imbolos para presentar los pasos del algoritmo, por ello se apoya en expresines del lenguaje natural, sin embargo, dado que el lenguaje natural es muy extensoy se presta para la ambiguedad, solo se utiliza un conjunto de palabras, a las que se denomina palabras reservadas. las palabras reservadas mas utilizadas son:
Inicio.
Fin.
leer.
Escribir.
Los simbolo utilizados en el diagrama de Chapin corresponden a cada tipo de estructura. Dado que se tienen tres tipos de estructuras, se utilizan trs simbolos. esto hace que los procesos del algoritmo sean mas faciles de representar y de interpretar.
Algoritmo: Es un cojunt de pasos calculables para alcanzar un objetivo deseado.
un procedimiento para realizar alguna tarea, la cual, dado un estado inicial, va a terminar en un estado final definido.
Comandos: Es solo eso, un comando. hay tres tipos de ellotodos representados con un rectangulo con una expresion en su interior:
Comando Normal: Cuando usted agrega un valor a una variable, como C= a+b o voto = juan Perez. el signo = es usado para assignacion, para comparar = = .
c=2a+3b

Comando Leer:
Uselo cuandoo necesite que el usuario ingrese algo como un numero o un texto. estos comandos asignan el valor que el usuario ingresa a una variable. Por ejemplo: Leer X (Read X en ingles), luego de su ejecucion la variable X contendra el valor entregado por el usuario.
Read=X

Comando Escribir:
Simplemente muestra el valor de una variable en pantalla de usuario.

Write Y

Pasos para la Resolucion de un solo Tema

-Definicion y Analisis.
-Diseño Algoritmo.
-Transformacion de Algoritmo-Programa.
-Ejecucion y Validacion.
-Compilacion y Ejecucucion.

Algoritmo: Es un metodo para resolver un problema mediante una serie de pasos.
Caracteristicas: Preciso (enfoque que se le da a la instruccion. El juego de instruccion para llegar a una accion), Definido (indica el orden de cada paso), Finito (Debe de existir un Fin).
Debe de realizar un resultado en un tiempo fifnito. los algoritmos se pueden expresar por formulas o codigos. Requerimientos de entrada: el tipo de datos y la cantidad de datos.
Heuristica (Inteligencia Artificial)
Se denomina heurística a la capacidad de un sistema para realizar de forma inmediata innovaciones positivas para sus fines.