viernes, 30 de octubre de 2009

llamada de funcion

 llamada a una función especifica la relación entre los parámetros reales y los formales y ejecuta la función. Los parámetros se asocian normalmente por posición, aunque, opcionalmente, también se pueden asociar por nombre. Si la función tiene parámetros formales por omisión, no es necesario asociarles un parámetro real.

La llamada a una función devuelve un resultado que ha de ser recogido, bien asignándolo a una variable del tipo adecuado, bien integrándolo en una expresión.

funcion

En computación, una subrutina o subprograma (también llamada procedimientofunción o rutina), como idea general, se presenta como un subalgoritmo que forma parte del algoritmo principal, el cual permite resolver una tarea específica. Algunos lenguajes de programación, como Visual Basic .NET, utilizan el nombre función para referirse a subrutinas que devuelven un valor.

Una subrutina al ser llamada dentro de un programa hace que el código principal se detenga y se dirija a ejecutar el código de la subrutina, en cambio cuando se llama a una macro, el compilador toma el código de la macro y lo implanta donde fue llamado, aumentando así el código fuente y por consiguiente el objeto.


diseño top down

Diseño Top-Down

El diseño top-down (divide y vencerás) consiste en dividir un problema en partes, de tal manera de crear subproblemas que sean más fáciles de resolver. Si estos subproblemas aún siguen siendo difíciles de resolver, se vuelve a dividir hasta llegar a pequeños problemas que se pueden resolver como módulos independientes.

El proceso bottom-up consiste en identificar las acciones más simples y combinarlas para lograr acciones más complejas, y así sucesivamente hasta llegar al resultado final.

looping

A loop is a sequence of statements which is specified once but which may be carried out several times in succession. The code "inside" the loop (the body of the loop, shown below as xxx) is obeyed a specified number of times, or once for each of a collection of items, or until some condition is met.

In functional programming languages, such as Haskell and Scheme, loops can be expressed by using recursion or fixed point iteration rather than explicit looping constructs. Tail recursion is a special case of recursion which can be easily transformed to iteration.


ejecucion condicional

Ejecucion condicional mas simple
  1. Sintaxis:

    El enunciado if tiene dos formas. La primera provee dos alternativas para ejecucion. Si la condicion es verdadera se ejecuta el cuerpo 1. Si la condicion es falsa se ejecuta el cuerpo.

    La condicion es una expresion booleana. Los cuerpos pueden ser enunciados simples o compuestos. Los enunciados compuestos los encerramos entre llaves.

    En la segunda forma podemos omitir la porcion sobre la condicion falsa. Lo utilizamos en el caso que no sea necesario ejecutar alguna accion cuando la condicion es falsa. Si la condicion es verdadera se ejecuta el enunciado. Si la condicion es falsa no se lleva a cabo accion alguna.

    La condicion debe de estar encerrada entre parentesis.

procesamiento secuencial

Procesamiento secuencial

En cambio, el procesamiento secuencial, tal como expresa la misma palabra, implica secuencialidad, temporalidad, dando sentido a las partes y no al todo. En su aplicación al campo educativo, el procesamientosecuencial se expresa en actividades como la de memorización de números y de palabras, la asociación entre letras y sus sonidos, el aprendizaje de las reglas gramaticales, la cronología de hechos históricos, seguir paso a paso el método científico, habilidades matemáticas y entender las reglas de muchos juegos. Podríamos decir que el procesamiento secuencial juega un papel muy importante en los aprendizajes basados en gran medida en la arbitrariedad. Queremos volver a insistir en el hecho de que la presentación de la Información sea de un tipo o de otro, no condiciona la modalidad de procesamiento que tiene lugar ni el tipo de respuesta. Es decir, por ejemplo, después de una presentación secuencial de la información puede tener lugar un proceso simultáneo de la misma y dar lugar a una respuesta secuenciada

mundo virtual

Mundos virtuales es un campo relacionado con la inteligencia artificial. Se trata de la simulación de mundos o entornos, denominados virtuales, en los que el hombre interacciona con la máquina en entornos artificiales semejantes a la vida real.

Aparte de los simuladores de vuelo y otras aplicaciones de este tipo que sirven desde hace años para la enseñanza y la práctica de determinados oficios, existen ya programas que, mediante cámaras de vídeo y software permiten construir «puertas virtuales» que enlazan un despacho u oficina con otro punto cualquiera del edificio (por ejemplo, un pasillo) y permiten a los que pasan por éste, ver y hablar con los que están en el despacho, estableciendo comunicaciones bidireccionales arbitrarias, no previstas por el arquitecto.

En la actualidad aparte del desarrollo que están llevando a cabo diferentes universidades en este campo el grueso de la investigación en la generación de entornos virtuales que traten de reproducir la realidad está siendo llevado por las empresas de ocio electrónico, que ven en esta tecnología una salida para sus videojuegos.

Mediante una tarjeta aceleradora 3D que se puede adquirir en cualquier tienda de componentes informáticos (por un precio entre 70 a 250€) un ordenador personal adquiere la potencia necesaria para reconstruir en tiempo real verdaderos entornos tridimensionales que reflejen un tipo de paisaje, ya sean ciudades, selvas o el espacio. El grado de realismo conseguido sobrepasa lo imaginado hace una década y año tras año esta tecnología se duplica lo que hace muy factible pensar que en menos de cinco años todos dispongamos de auténticos dispositivos para introducirnos en mundos virtuales en nuestro propio hogar.


programacion orientada a objetos

La Programación Orientada a Objetos (POO u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos los lenguajes de programación que soportan la orientación a objetos.

diseño top down

El diseño Top-Down fue promovido en la década de 1970 por el investigador de IBM Harlan Mills y Nickaus Wirth. Mills desarrolló conceptos de programación estructurada para utilizarlos y probarlos en un proyecto de 1969 que tenía como objetivo automatizar algunos procedimientos del periódico New York Times. El desarrollo de este proyecto hizo que se dispersara y se ampliara la idea de hacer los programas con esta filosofía de trabajo al resto de los desarrolladores de IBM, así como al resto de la industria del software. Por su parte, Nicklaus Wirth, desarrolló entre otros lenguajes, el lenguaje de programación Pascal, escribió un artículo muy importante acerca del Desarrollo de programas por medio de refinamiento de pasos. Esta idea de diseñar programas permaneció como principal corriente de desarrollo hasta fines de la década de 1980, cuando fue desplazada por la programación orientada a objetos, sin embargo continúa siendo una muy importante ayuda para el desarrollo de los métodos en los la programación orientada a objetos 

martes, 27 de octubre de 2009

ejecucion condicional

El enunciado if tiene dos formas. La primera provee dos alternativas para ejecucion. Si la condicion es verdadera se ejecuta el cuerpo 1. Si la condicion es falsa se ejecuta el cuerpo.

La condicion es una expresion booleana. Los cuerpos pueden ser enunciados simples o compuestos. Los enunciados compuestos los encerramos entre llaves.

En la segunda forma podemos omitir la porcion sobre la condicion falsa. Lo utilizamos en el caso que no sea necesario ejecutar alguna accion cuando la condicion es falsa. Si la condicion es verdadera se ejecuta el enunciado. Si la condicion es falsa no se lleva a cabo accion alguna.

miércoles, 14 de octubre de 2009

iteracion.!

Iteración: s.f. culto. RepeticónAccción y efecto de iterar.Método que permite obtener un resulrado con una aproximación deseada, repitiendo un cálculo con datos cada vez más aproximados, obtenidos gralte, en el cálculo anterior que se está realizando.
Iteración: en programación es la repetición de una serie de instrucciones en un programa de computadora. Puede usarse tanto como un término genérico (como sinónimo de repetición) así como para describir una forma específica de repetición con un estado mutable.Cuando se usa en el primer sentido, la recursividad es un ejemplo de iteración, pero que usa su propia notación (notación recursiva), que no es el caso de iteración.Sin embargo, cuando se usa en el segundo sentido (caso más restringido), la iteración describe el estilo de programación usado en lenguajes de programación imperativa. Esto está en contraposición de la recursividad, la cual tiene un enfoque más declarativo.

FOR

Ciclo For
Instrucciones para ciclos resuelven el problema de repetir todo el programa o cierta parte del programa mas de una vez.
Este ciclo es uno de los mas usados para repetir una secuencia de instrucciones, sobre todo cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instrucción simple o compuesta.
Su formato general es:
La inicialización es una instrucción de asignación que carga la variable de control de ciclo con un valor inicial.
La condición es una expresión relacional que evalúa la variable de control de ciclo contra un valor final o de parada que determina cuando debe acabar el ciclo.
El incremento define la manera en que la variable de control de ciclo debe cambiar cada vez que el computador repite un ciclo.
Se deben separar esos 3 argumentos con punto y coma (;)
Obtenido de: http://gbtcr.chileforge.cl/info_web/node28.html
Ciclo for
La Sintaxis empleada por el ciclo for es la siguiente:
for (valores de entrada ; condición de terminación ; iteración por ciclo)
Las tres partes del ciclo se encuentran separadas por ; (punto y coma)
La primer parte del ciclo especifica valores previo a su inicio.
La segunda parte indica la condición de terminación para el ciclo, la cual esta directamente relacionada con los valores iniciales.
Finalmente, la última parte especifica como serán manipulados los valores iniciales en cada iteración del ciclo.
Cada parte del ciclo debe incluir al menos un elemento, a la cual es posible agregar otros elementos a partir de una , (coma).

lunes, 12 de octubre de 2009

identacion

Es una propiedad que se aplica a elementos de tipo bloque, y acepta tanto un valor de longitud, como un porcentaje:


Articulos Relacionados 
-
TutorialTutorial Libro de instrucciones o programa que guía al usuario a través de una secuencia predeterminada de pasos con el fin de aprender un producto. Nótese la diferencia con documentation,...

-
ProgramaciónProgramación es aquella actividad por la cual se crean programas para computadoras, tales programas pueden ser códigos fuentes interpretados (como por ejemplo scripts en BASH) o códigos fuentes que serán...

-
ProgramaUn programa es una serie de instrucciones que le indican a la computadora cuáles son las tareas que tiene que realizar para lograr un fin específico. Debe tener una estructura...

-
Proteccion de memoriaProteccion de memoria (Memory Protection). Técnica que prohíbe que un programa afecte accidentalmente a otro programa activo. A través de diversas y diferentes técnicas, se crea una frontera protectora alrededor...

-
Casos de usoCasos de uso Un casos de uso es una secuencia de transacciones que son desarrolladas por un sistema en respuesta a un evento que inicia un actor sobre el propio...

while

El Bucle while o bucle mientras es una estructura de la mayoría de los lenguajes de programación estructurados cuyo propósito es repetir un bloque de código mientras una condición se mantenga verdadera.
Una de las estructuras de repetición empleada en la programacion de algoritmos. While permite al programador especificar las veces que se repita una acción (una o más sentencias de programacion) mientras una condición se mantenga verdadera. La forma del while en lenguaje C es:

while (condición)
{
bloque de instrucciones
};

Mientras la condición se mantenga verdadera, el bloque de instrucciones dentro de las llaves se ejecutará "x" cantidad de veces. Es necesario que alguna vez la condición se haga falsa, pues de lo contrario se entraría en un ciclo infinito de repeticiones (bucle infinito) y el programa se consideraría bloqueado. Por lo tanto es necesario que en el bloque de instrucciones dentro de la estructura while, se ejecute alguna acción que en algún momento haga que la condición sea falsa.

Un ejemplo del funcionamiento de la estructura de repetición while:

int num;

num = 0;
while (num<=10)
{
printf(“Repetición numero %d
”, num);
num = num + 1;
};

El código anterior imprimirá en pantalla:

Repetición numero 0
Repetición numero 1
Repetición numero 2
Repetición numero 3
Repetición numero 4
Repetición numero 5
Repetición numero 6
Repetición numero 7
Repetición numero 8
Repetición numero 9
Repetición numero 10

¿Por qué? Vemos que iniciamos la variable del tipo entero num en cero. Luego, se evalúa por primera vez si es menor o igual a 10, al ser verdadera, se ejecuta el bloque dentro del while por primera vez. Se imprime Repetición numero 0, pues el valor dentro de num es cero. Luego el proceso se repite hasta que num con valor 10 se le suma 1, y toma el valor 11. Se evalúa la condición del while y se determina que NO se cumple, por lo tanto, salta el bloque y sigue la ejecución del programa. 

martes, 6 de octubre de 2009

diagrama de flujo


El diagrama de flujo es la representación gráfica por medio de simbolos llamados cajas que nos llevan a la solucion de un problema
Reglas de uso:
*Se realiza de arriba hacia abajo y de izq. a derecha
*Los símbolos se unen con líneas
*Se usan flechas para indicar el flujo del programa
*Solo los símbolos de decisión pueden y deben tener mas de una linea de salida
*Todos los simbolos pueden tener mas de una linea de entrada

programa traductor/ compilador/ interprete


Compilación vs Interpretación
• Compilación
– fuente 􀃆 traducción 􀃆 objeto 􀃆 ejecutable
Ejemplo: FORTRAN, C, Pascal,...
• Interpretación
– fuente 􀃆 intérprete 􀃆 instrucciones en LM
Ejemplo: LISP, Java
• Los lenguajes compilados son más rápidos que los
interpretados (pues el código ejecutable se genera en un
sólo paso)
• Los lenguajes interpretados son más útiles en la fase de
desarrollo. Los compilados cuando la aplicación sólo
sufre pequeñas modificaciones

1ª-5ª generacion de leguajes de programacion

1ª Generación
• Ordenadores sólo entienden lenguaje máquina
(instrucción + operando en hexadecimal)
• Cada ordenador tiene su lenguaje propio
• Se hace referencia a las posiciones de memoria por su
nombre
• Se busca cambiar valores numéricos por mnemónicos



2ª Generación
• Lenguajes de bajo nivel: lenguaje ensamblador
– después es necesario traducirlo a lenguaje máquina
(usando un assembler-ensamblador)
– sigue siendo dependiente de la máquina
– Solución diseñada a muy bajo nivel



3ª Generación
• Lenguajes de alto nivel
– primitivas del lenguaje son independientes de la máquina
– 1 instrucción a alto nivel = N instrucciones de lenguaje máquina
– necesita un proceso de traducción (compilación o interpretación)
para pasar a lenguaje máquina
• Independencia de la máquina
– Con un traductor adecuado un programa en un lenguaje puede
llevarse a otra máquina distinta
– Creación de normas ANSI e ISO para garantizar la
compatibilidad



4ª-5ª Generación
• Aplicaciones vs lenguajes de programación
– Antes: Lenguajes de propósito general
Fortran, Basic, C, Pascal, C++,...
– Ahora entornos ligados a aplicaciones:
• Visual Basic, Visual C++
• Paquetes científicos (herederos de Fortran): Maple, Matlab,..
• Sistemas inteligentes (herramientas de Inteligencia Artificial)
• Paquetes específicos: Lenguajes simulación
• Programación web,...
• Aplicaciones gestión de información: Bases de datos
(SQL),...
• Programación de sistemas: C, awk,Perl,...
• Futuro (5ª generación): ¿paradigma declarativo a bajo
nivel?

ventajas y desventajas de programar lenguajes de alto y bajo nivel

Lenguajes de Bajo Nivel

Son más fáciles de utilizar que los lenguajes máquina, pero al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotécnicos. Por ejemplo, nemotécnicos típicos de operaciones aritméticas son : en inglés : ADD, SUB, DIV, etc. ; en español : SUM, RES, DIV, etc.

Una instrucción típica de suma sería:
ADD M, N, P

Esta instrucción significa "sumar el contenido en la posición de memoria M al número almacenado en la posición de memoria N y situar el resultado en la posición de memoria P" . Evidentemente es más sencillo recordar la instrucción anterior con un nemotécnico que su equivalente en código máquina.
0110 1001 1010 1011
Un programa escrito en lenguaje ensamblador, requiere de una fase de traducción al lenguaje máquina para poder ser ejecutado directamente por la computadora.
El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en lenguaje máquina se conoce como programa objeto, el cual ya es directamente entendible por la computadora.

Ventajas del lenguaje ensamblador frente al lenguaje máquina
Mayor facilidad de codificación y, en general, su velocidad de cálculo.


Desventajas del lenguaje ensamblador
Dependencia total de la máquina lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes máquinas. El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Machintosh.
La formación de los programadores es más compleja que la correspondiente a los programadores de alto nivel, ya que exige no solo las técnicas de programación, sino también el conocimiento del interior de la máquina

Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran básicamente en aplicaciones de tiempo real, control de procesos y de dispositivos electrónicos.


Lenguajes de Alto Nivel
Estos lenguajes son los más utilizados por los programadores. Están diseñados para que las personas escriban y entiendan los programas de un modo mucho más fácil que los lenguajes máquina y ensambladores. Un programa escrito en lenguaje de alto nivel es independiente de la máquina (las instrucciones no dependen del diseño del hardware o de una computadora en particular), por lo que estos programas son portables o transportables. Los programas escritos en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificación en diferentes tipos de computadoras.


Ventajas de los lenguajes de alto nivel
El tiempo de formación de los programadores es relativamente corto comparado con otros lenguajes.
La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos. Nombres de las instrucciones tales como READ, WRITE, PRINT, OPEN, etc.
Las modificaciones y puestas a punto de los programas son más fáciles
Reducción del coste de los programas
Transportabilidad.


Desventajas de los lenguajes de alto nivel
Incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo
No se aprovechan los recursos internos de la máquina que se explotan mucho mejor en lenguajes máquina y ensambladores
Aumento de la ocupación de memoria
El tiempo de ejecución de los programas es mucho mayor