lunes, 28 de marzo de 2011

Funciones

En programación, una función es un grupo de instrucciones con un objetivo en particular y que se ejecuta al ser llamada desde otra función o procedimiento. Una función puede llamarse múltiples veces e incluso llamarse a sí misma (función recurrente).

Las funciones pueden recibir datos desde afuera al ser llamadas a través de los parámetros y deben entregar un resultado.

Se diferencian de los procedimientos porque estos no devuelven un resultado.

En general las funciones deben tener un nombre único en el ámbito para poder ser llamadas, un tipo de dato de resultado, una lista de parámetros de entrada y su código.



Tipos de arrays

Array unidimensional


Un array de una dimensión (unidimensional), también llamado vector o fila, es un tipo de datos estructurado compuesto de un número determinado de elementos, de tamaño fijo y elementos homogéneos (del mismo tipo). La característica de tamaño fijo se refiere a que el tamaño del array debe ser conocido en tiempo de compilación.

Por ejemplo, si deseamos conservar las puntuaciones de los 50 estudiantes de un examen de informática, se necesita reservar cincuenta posiciones de memoria, dar un nombre al arreglo y a cada uno de los 50 estudiantes asignarles una posición o índice del arreglo.







Arrays multidimensionales

Las arrays multidimensionales son arrays dentro de arrays. Son el tipo de matrices en las cuales sus elementos deben ser llamados por dos o más corchetes dependiendo de cuantas matrices disponga el array, que pueden ser indexadas o asociativas.

Así, pueden recibir distintos nombres como arrays bidimensionales o tridimensionales.

a continuación presento un ejemplo de un Array multidimensional en el que almacena varios tipos de información de las principales marcas de las guitarras eléctricas por su nombre,modelo y color








Arrays

Un array (lista o tabla) es una secuencia de datos del mismo tipo. Los datos se llaman elementos del
array y se numeran consecutivamente O, 1,2,3, etc. El tipo de elementos almacenados en el array puede
ser cualquier tipo de dato de C, incluyendo estructuras definidas por el usuario.
Normalmente el array se utiliza para almacenar tipos tales como caracter, entero o real.
Un array puede contener, por ejemplo, la edad de los alumnos de una clase, las temperaturas de
cada día de un mes en una ciudad determinada, o el número de personas que residen en cada una de las
diecisiete comunidades autónomas españolas. Cada item del array se denomina elemento.

Estos números se denominan valores índice o subindice del array. El término «subíndice» se utiliza ya
que se especifica igual que en matemáticas, como una secuencia tal como ql, a,, a2... Estos números
localizan la posición del elemento dentro del array, proporcionando acceso directo al array.
Si el nombre del array es a, entonces a [ 0 1 es el nombre del elemento que está en la posición O,
a [ 11 es el nombre del elemento que está en la posición 1, etc. En general, el elemento i-ésimo esta en
la posición i-l. De modo que si el array tiene n elementos, sus nombres son a [ O I , a [ 1 I , . . . , a [n- 1 I .
Gráficamente se representa así el array a con seis elementos.



El array  de la figura anterior "a" tiene 6 elementos: a [O 1 contiene 25.1. a [ 1 I contiene 34.2, a [ 2 1 contiene 5.25, a [ 3 1 contiene 7.45, a [ 4 ] contiene 6.09 y a [ 5 1 contiene 7.54.  la figura representa realmente una región de la memoria de la computadora, ya que un array se almacena siempre con sus elementos en una secuencia de posiciones de memoria contigua.

viernes, 25 de febrero de 2011

Que son estructuras de control?

una estructura de control permite controlar el flujo de la ejecución de instrucciones. Con estas estructuras, el programador puede determinar el orden en que se ejecutarán las instrucciones que están dentro de estas estructuras.


tipos de errores en programación

•ERROR DE SINTAXIS: Estos errores son producidos, cuando se hace mal uso de las reglas del lenguaje de programación, y se violan lasnormas de sintaxis, de ese lenguaje (en nuestro caso C); estos errores son fáciles de detectar por que generalmente es el compilador, que los identifica (Y hasta muestra la línea donde se encuentra dicho error, pero eso depende de la versión del compilador que estemos usando). En estecurso he usado Turbo C, en su versión 2 y 3.








•ERRORES DE EJECUCIÓN: Estos errores se producen , cuando le indicamos a la computadora, realizar una determinada acción, y esta la comprende, pero no puede ejecutarla. Por ejemplo, indicarle a la computadora una división entre cero, sumar dos variables a las cuales no se les ha signado valor alguno, etc.








•ERRORES DE LÓGICA: Muchas veces, cuando estamos programando, el compilador no nos indica errores de sintaxis, ni de lógica; pero elresultado de nuestro programa, esta fuera del rango esperado, esto es producto de un error de lógica en el código de nuestro programa. Este tipo de errores son muy difíciles de identificar y por supuesto de corregir, ya que generalmente hay que revisar línea por línea de nuestro programa. Ejemplo: El sueldo negativo de un empleado, etc.




Clasificación de los lenguajes de programación, según:

a.Bajo, intermedio y alto nivel

b.Imperativos, declarativos, orientados a objetos, naturales

c.Primera, segunda, tercera, cuarta y quinta generación



a. Lenguajes de bajo nivel



Los 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
(assembly languuje). Las instrucciones en lenguaje ensamblador son instrucciones conocidas como
nernotécnicos (mnemonics). 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.



Lenguaje de nivel medio






Suelen ser clasificados de alto nivel, pero permiten ciertos manejos de bajo nivel. Son precisos para ciertas aplicaciones como la creación de sistemas operativos, ya que permiten un manejo abstracto (independiente de la máquina, a diferencia del lenguaje ensamblador), pero sin perder mucho del poder y eficiencia que tienen los lenguajes de bajo nivel.
Una característica distintiva, por ejemplo, que convierte al lenguaje de programación C en un lenguaje de medio nivel y al lenguaje de programación Pascal en un lenguaje de alto nivel, es que en el primero es posible manejar las letras como si fueran números (en Pascal no), por el contrario, en Pascal es posible concatenar las cadenas de caracteres con el operador suma y copiarlas con la asignación (en C es el usuario el responsable de llamar a las funciones correspondientes).


Lenguajes de alto nivel



Los lenguajes de alto nivel 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. Otra razón es que un programa escrito en lenguaje de alto nivel es independiente de
la máquina; esto es, las instrucciones del programa de la computadora no dependen del diseño del
hurdware o de una computadora en particular. En consecuencia, los programas escritos en lenguaje
de alto nivel son portables o transportables, lo que significa la posibilidad de poder ser ejecutados con
poca o ninguna modificación en diferentes tipos de computadoras; al contrario que los programas en
.


b.Lenguajes imperativos







La programación imperativa, en contraposición a la programación declarativa es un paradigma de programación que describe la programación en términos del estado del programa y sentencias que cambian dicho estado. Los programas imperativos son un conjunto de instrucciones que le indican al computador cómo realizar una tarea.
La implementación de hardware de la mayoría de computadores es imperativa; prácticamente todo el hardware de los computadores está diseñado para ejecutar código de máquina, que es nativo al computador, escrito en una forma imperativa. Esto se debe a que el hardware de los computadores implementa el paradigma de las Máquinas de Turing. Desde esta perspectiva de bajo nivel, el estilo del programa está definido por los contenidos de la memoria, y las sentencias son instrucciones en el lenguaje de máquina nativo del computador (por ejemplo el lenguaje ensamblador).
Los lenguajes imperativos de alto nivel usan variables y sentencias más complejas, pero aún siguen el mismo paradigma. Las recetas y las listas de revisión de procesos, a pesar de no ser programas de computadora, son también conceptos familiares similares en estilo a la programación imperativa; cada paso es una instrucción, y el mundo físico guarda el estado (Zoom).
Algunos lenguajes imperativos


•ASP 
•BASIC 
•Lenguaje de programación C 
•Fortran 
•Pascal 
•Perl 
•PHP 
•Lua 
•Java 



Lenguajes declarativos






En la programación declarativa las sentencias que se utilizan lo que hacen es describir el problema que se quiere solucionar, pero no las instrucciones necesarias para solucionarlo. Esto último se realizará mediante mecanismos internos de inferencia de información a partir de la descripción realizada


Tipos

Existen varios tipos de lenguajes declarativos:

•Los lenguajes lógicos, como Prolog. 
•Los lenguajes algebraicos, como Maude y SQL 
•Los lenguajes funcionales, como Haskell 


LENGUAJE ORIENTADO A OBJETOS





Se le llama así a cualquier lenguaje de programación que implemente los conceptos definidos por la programación orientada a objetos.
Cabe notar que los conceptos definidos en la programación orientada a objetos no son una condición sino que son para definir que un lenguaje es orientado a objetos. Existen conceptos que pueden estar ausentes en un lenguaje dado y sin embargo, no invalidar su definición como lenguaje orientado a objetos.
Quizás las condiciones mínimas necesarias las provee el formalismo que modeliza mejor las propiedades de un sistema orientado a objetos: los tipos de datos abstractos.
Siguiendo esa idea, cualquier lenguaje que permita la definición de tipos de datos , de operaciones nuevas sobre esos tipos de datos, y de instanciar el tipo de datos podría ser considerado orientado a objetos.
Esta definición concuerda incluso con ciertos ejemplos prácticos, que no son considerados dentro de la programación orientada a objetos, pero que podrían serlo. Por ejemplo, la programación de interfaces gráficas de usuario para los sistemas X-Window utilizando infraestructuras de funciones y APIs como Motif, Xview y Xlib, son realizadas usualmente en lenguaje C, pero organizando el código en una manera que "parecen objetos" (los Widgets).
[editar] Ejemplos de lenguajes orientados a objeto


•C++

•Objective C

•Java

•Smalltalk

•Eiffel

•Lexico (en castellano)

•Ruby

•Python

•OCAML

•Object Pascal

•CLIPS

•Visual .net

•Actionscript
•COBOL

•Perl

•C#

•Visual Basic.NET

•PHP

•Simula

•Delphi

•PowerBuilder




LENGUAJE NATURAL DE PROGRAMACION


NATURAL es un lenguaje de cuarta generación de Software AG.
Código del programa ¡Hola Mundo! en NATURAL:
WRITE '¡Hola Mundo!'
END
Tiene la sentencia de control de flujo "ESCAPE TOP", la cual es similar a "continue" en C, o "Continue For" en "Visual Basic.NET 2005", excepto que también funciona dentro de una subrutina para retornar desde la misma y continuar con la siguiente iteración del bucle de proceso.
Como "continue", evita gran número de indentaciones cuando se usan bloques anidados de instrucciones dentro de cualquier sentencia de tipo bucle.





c. Primera, segunda, tercera, cuarta y quinta generación



LENGUAJES DE PRIMERA GENERACIÓN




Lo constituyen los lenguajes maquina. 
Estos se consideran como de bajo nivel por que no existe un programa de codificación menos complicado que el que utiliza los símbolos binarios 1 y 0.
•Ascii, utiliza ceros y unos para representar letras del alfabeto. 
Como este es el lenguaje del CPU, los archivos de texto traducidos a los grupos binarios ASCII pueden leerse por casi cualquier plataforma de sistemas de computadoras.


LENGUAJES DE SEGUNDA GENERACIÓN




•A estos se les denomió lenguaje ensamblador.
•Los lenguajes ensambladores usan códigos como a para agregar o mvc para mover, y asi sucesivamente.
•Los programas de software de sistemas tales como los sistemas operativos y los programas de utilidad se escriben con frecuencia en un lenguaje ensamblador.


LENGUAJES DE TERCERA GENERACIÓN




•Estos son mas fáciles de aprender y usar que los lenguajes maquina y el lenguaje ensamblador, pues su similitud con la comunicación y comprensión humana cotidiana es mayor. 
•Enunciados, Print, Total sales, Read normal Pay etc.
•Aunque son mas fáciles de programar, no son tan eficientes en términos de rapidez operacional y memoria.
Son relativamente independientes del hardware de la computadora. Esto significa que el mismo programa puede utilizarse en varias computadoras diferentes de distintos fabricantes 

LENGUAJES DE CUARTA GENERACIÓN




•Son lenguajes que se relacionan menos con procedimientos y que son aun mas parecidos al ingles que los lenguajes de tercera generación.
•Algunas características incluyen capacidades de consulta y base de datos, de creación de códigos y capacidades gráficas.

Ejemplos Visual C++, Visual Basic, Power Builder, Delphi, Forte y muchos otros.
•Lenguajes de consulta son utilizados para hacer preguntas ala computadora con frases parecidas alas de un idioma, ejemplo el inglés.
•Lenguaje de consulta estructurado. Lenguaje estándar que a menudo se usa para realizar consultas y manipulaciones ala base de datos.


LENGUAJES DE QUINTA GENERACIÓN





•Alrededor de la mitad 1998 surgieron gripos de herramientas de lenguajes de quinta generación, los cuales combinan la creación de códigos basadas en reglas, la administración de reutilización y otros avances.
•Programación basada en conocimiento. Método para el desarrollo de programas de computación en el que se le ordena ala computadora realizar un propósito en vez de instruirla para hacerlo.



Ciclo de vida del software

Es la forma mediante la cual se describen los diferentes pasos que se deben seguir para el desarrollo de un software, partiendo desde una necesidad hasta llegar a la puesta en marcha de una solución y su apropiado mantenimiento. El ciclo de vida para un software comienza cuando se tiene la necesidad de resolver un problema, y termina cuando el programa que se desarrolló para cumplir con los requerimientos, deja de ser utilizado.