viernes, 30 de enero de 2009

RESUMEN DEL CAPITULO 2.

ENERO 30, 2009

Pseudo código.

El pseudo código es un lenguaje de especificación (descripción) de algoritmos. El uso de tal lenguaje hace el paso de codificación final relativamente fácil. Los lenguajes APL Pascal y Ada se utilizan a veces como lenguajes de especificación de algoritmos. El pseudo código nacio como un lenguaje similar al ingles y era un medio de representar básicamente las estructuras de control de programacion estructurada. El pseudo código tiene que traducirse posteriormente a un lenguaje de programacion y no puede ser ejecutado por una computadora. La ventaja es que en su uso, en la planificacion de un programa, el programador se puede concentrar en la lógica y en las estructuras de control y no preocuparse de las reglas de un lenguaje especifico otra ventaja es que puede ser traducido fácilmente a lenguajes como Pascal, C, FORTRAN 77/90, C++, Java, C#, etc.

Utiliza para representar las acciones sucesivas palabras reservadas en ingles-similares a sus homónimas en los lenguajes de programacion-, tales como start, end, stop, if then-else, while-end, repeat-until, etc.
ejemplo:
start
//calculo de impuesto y salarios
read nombre, horas, precio_hora
tasas- 0,25 * salario_bruto - tasas
write nombre, salario _ bruto, tasas, salario _ neto
end .

Diagrama de Flujo.

Un diagrama de flujo (flowchar) es una representación gráfica de un algoritmo. Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ansi), y los más frecuentemente empleados se muestran a continuación.

Representación Grafica de Algoritmos.

Para representar un algoritmo se debe utilizar algún método que permita independizar dicho algoritmo del lenguaje de programacion elegido. Ello permitirá que un algoritmo pueda ser codificado indistintamente en cualquier lenguaje. Para conseguir este objetivo se precisa que el algoritmo sea representado grafica o numéricamente, de modo que las sucesivas acciones no dependan de la sintaxis de ningún lenguaje de programacion, sino que la descripción pueda servir fácilmente para su transformación en un programa, es decir, su codificación.Los métodos usuales para representar un algoritmo son:

1. diagrama de flujo.
2. diagrama N-S (Nassi- Schneiderman),
3. lenguaje de especificación de algoritmos: pseudo código,
4. lenguaje español, ingles...
5. formulas.

Las formulas para la solución de una ecuación cuadrática (de segundo grado) son un medio sucinto de expresar el procedimiento algorítmico que se debe ejecutar para obtener las raíces de una ecuación que significa lo siguiente:

1. Elevar al cuadrado b.
2. Tomar a; multiplicar por c; multiplicar por 4.
3. Restar el resultado obteniendo de 2 del resultado de 1, etc.

Escritura de Algoritmos.

El sistema para describir (<>) un algoritmo consiste en realizar una descripción paso a paso con un lenguaje natural del citado algoritmo. Un algoritmo es un método o conjunto de reglas para solucionar un problema. En cálculos elementales estas reglas tienen las siguientes propiedades:

* deben estar 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 el algoritmo general de modo similar a:

Ir al cine
Comprar una entrada (billete o ticket)
Ver la película
Regresar a casa.

Metodologia de la programacion y desarrollo del software.

La resolución de un problema con una computadora se hace escribiendo un programa, que exige al menos los siguientes pasos:Definición o análisis del problema.Diseño de algoritmo.Transformación del algoritmo en un programa.Ejecución y validación del programa.

Fases en la resolucion de un problema.

Las fases de resolución de un problema con computadora son:
Análisis del problema.
Diseño del algoritmo.
Codificación.
Compilación y ejecución.
Verificación.
DepuraciónMantenimiento.
Documentación.
ciclo de vida de un sistema
Análisis del problema: el problema se analiza teniendo presente las especificaciones del cliente.
Diseño: aquí se diseña la solución que conducirá a un algoritmo que resuelva el problema.
Codificación: la solución se escribe en la sintaxis del lenguaje de alto niel y se obtiene un programa fuente se copila a continuación.
Ejecución, verificación y depuración: el programa se ejecuta, se comprueba y se eliminan los errores denominados bugs.

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

ALGORITMOS PAGINA 85.

ENERO 30, 2009.

Escribir un algoritmo para:
Sumar dos números enteros
inicio
leer n1,n2
calcular n = n1 + n2
imprime n
fin.

Restar dos números enteros
inicio
leer n1,n2
calcular n = n1 – n2
imprime n
fin.

Multiplicar dos números enteros
inicio
leer n1,n2
calcular n = n1 * n2
imprime n
fin.

Dividir dos números enteros
inicio
leer n1,n2
calcular n = n1 / n2
imprime n
fin.

EJERCICIO 2.1

Diseñar una solución para resolver cada uno de los siguientes problemas y tratar de refinar sus soluciones mediante algoritmos adecuados.

A) realizar una llamada telefónica desde un teléfono público.

inicio
ver donde esta el teléfono
ir hacia le teléfono
tomar el teléfono
insertarle monedas
macar el numero deseado
hablar por teléfono
terminar de hablar
colgar el teléfono
Fin.

B) Cocinar una tortilla

inicio
tomar los cerillos
prender el cerrillo
prender la estufa
poner el comal
calentar una tortilla
darle vuelta
sacar la tortilla
Fin.

C) arreglar un pinchazo de una bicicleta
inicio
tomar la llave
voltear la bicicleta
quitar las tuercas
quitar llanta
parcharla
poner llanta
poner tornillos
voltear bicicleta
Fin.

D) freír un huevo
inicio
prender la estufa y poner le sartén
agarra el huevo y quebrarlo dentro del sartén
revolver
sacarlo
Fin .

jueves, 29 de enero de 2009

ALGORITMO DEL AREA DE UN CIRCULO.

ENERO 29, 2009.

Algoritmo que Calcular el area de un circulo:

1. Inicio
2. Leer "r"
3. Calcular a = π r²
4. Imprimir "area"
5. Fin



miércoles, 28 de enero de 2009

PROGRAMACION MODULAR.

ENERO 28, 2009.

2.2 PROGRAMACION MODULAR:
La programación modular es uno de los métodos de diseño más flexibles y potentes para mejorar la productividad de un programa. En programación modular el programa se divide en módulos (partes independientes), cada una de las cuales ejecuta una única actividad o tarea y se codifican independientemente de otros módulos. Cada uno de estos módulos se analiza, codifican y ponen a punto por separado.Cada programa contiene un módulo denominado programa principal que controla todo lo que sucede; se transfiere el control a submódulos, de modo que ellos puedan ejecutar sus funciones; sin embargo, cada submódulo devuelve el control al módulo principal cuando se haya completado su tarea. Si la tarea asignada a cada submodulo es demasiado compleja, éste deberá romperse en otros módulos más pequeños. El proceso sucesivo de subdivisión de módulos continúa hasta que cada módulo tenga solamente una tarea específica que ejecutar. Esta tarea puede ser entrada, salida, manipulación de datos, control de otros módulos o alguna combinación de éstos. Un módulo puede transferir temporalmente (bifurcar) el control a otro módulo; sin embargo, cada modulo debe eventualmente devolver el control al módulo del cual se recibe originalmente el control.


Programacion modular.
Dado que los módulos son independientes, diferentes programadores pueden trabajar simultáneamente en diferentes partes del mismo programa, de ésta manera se reduce gran tiempo de diseño del algoritmo y la codificación, además una modificación radical dentro de un módulo no afectará a los demás.
2.3 PROGRAMACION ESTRUCTURADA:
La Programación Estructurada significa escribir un programa de acuerdo a las siguientes reglas:
1. El programa tiene un diseño modular.
2. Los módulos son diseñados de modo descendente.
3. Cada módulo se codifica utilizando las tres estructuras de control básicas: secuencia, selección y repetición.
La programacion estructurada es el conjunto de tecnicas que incorporan:
* recursos abstractos.
* diseño descendente (top-down).
* estructuras basicas.

lunes, 26 de enero de 2009

Codifocacion de un Programa.

ENERO 26, 2009.

Codificacion:
Es la escritura en un lenguaje de programacion de la representacion del algoritmo desarrollada en las etapas precedentes.

Documentacion interna:
La documentacion de un programa se calsifica en internas y externas. La documentacion interna es la que se incluye dentro del codigo del programa fuente mediante comentarios que ayudan a la comprenncion del codigao.

Compilacion y ejecucion de un programa:
Una ves que el algoritmo se a combertido en eun programa fuente, es preciso introducirlo en memorias mediante el teclado y almacenarlo posteriormente en un disco. Esta oparacion se realiza con un programa editor. 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 maquina, este proceso se realiza con el complilador y el sistema operativo que se encarga practicamente de la compilacion.

Verificacion y depuracion de un programa:
Es el proceso de ejecucion del programa con una ampliavariedad de datosde entrada, llamados datosde test o prueba, que determina si el programa tiene errores.

La depuracion 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 compilacion. se producen normalmente por uso incorrecto de las reglas de lenguaje de programacion y suelen ser errores de sintaxis.

2. Errores de ejecucion. Estos errores se prodecen por instrucciones que las computadoras pueden comprender pero no ejecutar.

3. Errores logicos. Se producen en la logica del programa y fuente del error suele ser el diseño del algoritmo. Estos errores son los mas dificiles de detectar, ya que el programa puede funcionar y no producir errores de copilacion ni de ejecucion, y solo puede advertirse el error por obtencion de resultados incorrectos.

Algoritmo de un triangulo.

ENERO 25, 2009.


Realizar un algoritmo que calcule el área de un rectángulo dada la base y la altura de acuerdo a la formula a = b*h.

Algoritmo

Inicio
Declare opción, base, altura, área
Leer opción
Seleccionar opción
Declare área, altura, base
Leer base, altura
área: base*altura
Imprimir área
Caso contrario
Imprimir "FIN SI”
Fin

viernes, 23 de enero de 2009

Diseño de Algoritmo.

ENERO 23, 2009.

TERMINAL:
Marcar el inicio y el fin del diagrama.

ENTRADA/SALIDA:
Introduce datos al proceso o solucion (programa).

DESICION; SI NO:
Cambia el flujo del algoritmo de acuerdo a una evaluacion logica.

PROCESO:
Involucra cualquier proceso, calculo o computo. Por ejemplo "calculo a = b*n"

SALIDA:
Envia la informacion al dispositivo de salida estandar. Normalmente el monitor.

jueves, 22 de enero de 2009

Diagrama Nissi-Schneiderman.

ENERO 22, 2009.

DIAGRAMAS DE NASSI - SCHNEIDERMAN

Definición:
El diagrama N-S o también conocido como diagrama de Chapin es una técnica de especificación de algoritmos que combina la descripción textual, propia del pseudocódigo, con la representación gráfica del diagrama de flujo.
El diagrama N-S cuenta con un conjunto limitado de símbolos para representar los pasos del algoritmo, por ello se apoya en expresiones del lenguaje natural; sin embargo, dado que el lenguaje natural es muy extenso y se presta para la ambigüedad, solo se utiliza un conjunto de palabras, a las que se denomina palabras reservadas. Las palabras reservadas más utilizadas son:
Inicio Fin Leer Escribir
Mientras Repita Hasta Para
Incrementar Decrementar Hacer Función
Entero Real Caracter Cadena
Lógico Retornar
Los símbolos utilizados en el diagrama de Chapin son corresponden a cada tipo de estructura. Dado que se tienen tres tipos de estructuras, se utilizan tres símbolos. Esto hace que los procesos del algoritmo sean más fáciles de representar y de interpretar.

http://www.monografias.com/trabajos19/algoritmos/algoritmos.shtml

miércoles, 21 de enero de 2009

Capitulo 2.

Enero 21, 2009.

Introduccion:

1. Definicion o analisis del programa.
2. Diseño del algoritmo.
3. Transformacion del algoritmo en un programa.
4. Ejecucion y validacion del programa.

Conceptos Clabe:

1. Algoritmo.
2. Ciclo de Vida.
3. Diagrama Nassi Schneiderman.
4. Diagramas de Flujo.
5. Diseño.

2.1. FASES EN LA RESOLUCION DE PROBLEMAS.

Las fases de resolucion de un problema con computadora son:

* Analisis del problema.
* Diseño del algoritmo.
* Compilacion y ejecucion.
* Verificacion.
* Depuracion.
* Codificacion.

Construyendo un ciclo de vida del software y sus caracteristicas mas sobresalientes son:

- Analisis.
- Diseño.
- Codificacion.
- Ejecucion.
- Mantenimiento.
- Documentacion.

Algoritmo: es un metodo para resolver un problema mediante una serie de pasos precisos, definidos y finitos.

Caracteristicas de un algoritmo:
a) preciso (indica el orden de realizacion en cada paso),
b) definido (si se sigue dos veces, obtiene el mismo resultado cada vez),
c) finito (tiene fin; un numero determinado de pasos).

Un algoritmo debe producir un resultado en un tiempo finito. Los algoritmos se pueden expresar por formulas, diagramas de flujo o N-S y pseudocodigos.

Heuristica: Se denomina heurística a la capacidad de un sistema para realizar de forma inmediata innovaciones positivas para sus fines. La capacidad heurística es un rasgo característico de los humanos, desde cuyo punto de vista puede describirse como el arte y la ciencia del descubrimiento y de la invención o de resolver problemas mediante la creatividad y el pensamiento lateral o pensamiento divergente.

lunes, 19 de enero de 2009

Conceptos Basicos de C.

ENERO 19, 2009.

  1. Concepto de Lenguaje de Programacion. (4 lineas)
  2. Clasificacion de los Lenguajes de Programacion. (12 lineas)
  3. Paradigmas de Programacion. (6 lineas)
  4. Historia del Lenguaje C. (12 lineas)
  5. Los Herederos (C++, Java, C#). (8 lineas)

1. Sirven para escribir programas que permitan la comunicacion usuario/maquina. Los programas de las computadoras modernas constan de secuencias de instrucciones que se codifican como secuencias de digitos numericos que podran entender dichas computadoras.

2. Lenguaje Maquina: se conoce como sistema de codificacion, que es un lenguaje nativo de programacion. Las instrucciones en lenguaje maquina dependeran de cada computadora y debido a la dificultad de su escritura, los investigadores de la epoca simplificaron el procesos de programacion desarrollando sistemas de notacion en los cuales las instrucciones se representaban en formatos nemonicos (nemotecnicos).

Lenguaje de Bajo Nivel (ensambladores): son programas que traducen otros programas escritos en codigo nemotecnico en instrucciones numericas en leguaje maquina que son compatibles y legibles por la maquina. Estos programas de traduccion se llaman ensambladores porqre su tarea es ensamlar las instrucciones reales de la maquina con los nemotecnicos e identificadores que representan las instrucciones escritas en ensamblador.

Lenguaje de Alto Nivel: En la decada de los 50 y 60 comenzaron a desarrollarse lenguajes de programacion de tercera generacion que diferian de las generaciones anteriores en que sus instrucciones o primitivas eran de alto nivel e independientes de la maquina. Estos lenguajes se llamaron lenguajes de alto nivel.

3. Un paradigma de programacion representa fundamentalmente enfoques diferentes para la construccion de soluciones a problemas y por consiguiente afectan al proceso completo de desarrollo de software. Los paradigmas de programacion clasicos son: procedimental (o imperactivo), funcional, declarativo y orientado a objetos.

4. C es un lenguaje de programacion de proposito general asociado, de modo universal, al sistema operativo UNIX. sin embargo, la oportunidad, eficacia y potencia de C, se ha producido porque este lenguaje no esta practicamente asociado a ningun sistema operativo, ni a ninguna maquina, en especial. Esta es la raon fundamental por la cual C, es conocido como el lenguaje de programacion de sistemas por excelencia.

viernes, 16 de enero de 2009

JUVENTUS


Bembenutii Mio Blog_Programacion!!

Enero 16 del 2009.

Hoy lo que isimos fue crear nuestro blog para la clase de programacion, en el cual nos servira para hacer anotaciones de lo visto en cada clase que tengamos en el transcurso del semestre.