martes, 16 de noviembre de 2010

Metodos de Ordenamiento de vectores

Tipos de ordenamientos:


Los 2 tipos de ordenamientos que se pueden realizar son: los internos y los externos.


Los internos:

Son aquellos en los que los valores a ordenar están en memoria principal, por lo que se asume que el tiempo que se requiere para acceder cualquier elemento sea el mismo (a[1], a[500], etc).


Los externos:

Son aquellos en los que los valores a ordenar están en memoria secundaria (disco, cinta, cilindro magnético, etc), por lo que se asume que el tiempo que se requiere para acceder a cualquier elemento depende de la última posición accesada (posición 1, posición 500, etc).

Eficiencia en tiempo de ejecución:

Una medida de eficiencias es:

Contar el # de comparaciones (C)

Contar el # de movimientos de items (M)

Estos están en función de el #(n) de items a ser ordenados.

Un "buen algoritmo" de ordenamiento requiere de un orden nlogn comparaciones.

La eficiencia de los algoritmo se mide por el número de comparaciones e intercambios que tienen que hacer, es decir, se toma n como el número de elementos que tiene el arreglo o vector a ordenar y se dice que un algoritmo realiza O(n2) comparaciones cuando compara n veces los n elementos, n x n = n2

Algoritmos de ordenamiento:

Internos:

1.

1. Inserción directa.

2. Inserción binaria.

2. Inserción directa.

1.

2. Selección directa.

3. Selección directa.

1. Burbuja.

2. Shake.

4. Intercambio directo.

1. Shell.

5. Inserción disminución incremental.

1. Heap.

2. Tournament.

6. Ordenamiento de árbol.

1.

2. Quick sort.

7. Sort particionado.

8. Merge sort.

9. Radix sort.

10. Cálculo de dirección.

Externos:

1. Straight merging.

2. Natural merging.

3. Balanced multiway merging.

4. Polyphase sort.

5. Distribution of initial runs.

VARIABLES LOCALES Y GLOBALES

VARIABLES LOCALES:

Este tipo de variable hace referencia a aqueya en la cual su ambito esta limirado o ristringio a la funcion deseada o asignada; por tanto la varible es local a esa funcion, por consiguiente esta variale solo se puede modificar o alterar en la seccion misma ya establecida. Practicamente este tipo de variables son aquellas que se declaran en la estructura de determinada función, gira, se modifica y es util con respecto a esa funcion , por consiguiente es local a esta.

Ejemplo:

la mejor forma para entenderlo es por medio de este:
si hay un tipo de variable Y que pertenece a un func1, lo que esta significando es que esta func1 es la dueña o propietaria de la variable y puede facilmente acceder a ella y modificarla puesto que es parte de su codigo estructural definido. Lo siguiente es comprender que si otro función necesita conocer el valor de la varible Y, es esta función la encargada de revelarlo

VARIABLES GLOBALES:

Son aquellas que estan definidas por fuera del cuerpo o estructura de la cualquier funcion, el ambito reconocido de este tipo de varibles es incluye todas las funciones del programa tratado, es decir que cualquier tipo de funcion tiene acceso a esta variable; bien sea para leer, escribir o modificarlas. Siendo posible referirse a la direccion de memoria que abarca en cualquier programa.
A diferencia de las varibles locales presenta algunas desventajas como:
  1. Presenta menor legibilidad.
  2. Hace que en ciertas ocasiones el programa sea limitado y que solo funcione bajo ciertas indicaciones o en determinados casos.
  3. Ataca y atenta contra la modularidad.

Finamalmente cabe analizar que en ciertos programas el usuario puede encontra variables de los 2 tipos mencionados que poseen el mismo nombre, pero son las variables locales y los conocido como argumentos formales los que prevalecen y tiene prioridad sobre los globales.



miércoles, 8 de septiembre de 2010

Arreglos unidimensionales y multidimensionales

Los arreglos son una colección de variables del mismo tipo que se referencian utilizando un nombre común. Un arreglo consta de posiciones de memoria contigua. La dirección más baja corresponde al primer elemento y la más alta al último. Un arreglo puede tener una o varias dimensiones. Para acceder a un elemento en particular de un arreglo se usa un índice.

El formato para declarar un arreglo unidimensional es:

tipo nombre_arr [ tamaño ]

Por ejemplo, para declarar un arreglo de enteros llamado listanum con diez elementos se hace de la siguiente forma:

int listanum[10];

En C, todos los arreglos usan cero como índice para el primer elemento. Por tanto, el ejemplo anterior declara un arreglo de enteros con diez elementos desde listanum[0] hasta listanum[9].

La forma como pueden ser accesados los elementos de un arreglo, es de la siguiente forma:

listanum[2] = 15; /* Asigna 15 al 3er elemento del arreglo listanum*/

num = listanum[2]; /* Asigna el contenido del 3er elemento a la variable num */

El lenguaje C no realiza comprobación de contornos en los arreglos. En el caso de que sobrepase el final durante una operación de asignación, entonces se asignarán valores a otra variable o a un trozo del código, esto es, si se dimensiona un arreglo de tamaño N, se puede referenciar el arreglo por encima de N sin provocar ningún mensaje de error en tiempo de compilación o ejecución, incluso aunque probablemente se provoque el fallo del programa. Como programador se es responsable de asegurar que todos los arreglos sean lo suficientemente grandes para guardar lo que pondrá en ellos el programa.

C permite arreglos con más de una dimensión , el formato general es:

tipo nombre_arr [ tam1 ][ tam2 ] … [ tamN];

Por ejemplo un arreglo de enteros bidimensionales se escribirá como:

int tabladenums[50][50];

Observar que para declarar cada dimensión lleva sus propios paréntesis cuadrados.

Para acceder los elementos se procede de forma similar al ejemplo del arreglo unidimensional, esto es,

tabladenums[2][3] = 15; /* Asigna 15 al elemento de la 3ª fila y la 4ª columna*/

num = tabladenums[25][16];

A continuación se muestra un ejemplo que asigna al primer elemento de un arreglo bidimensional cero, al siguiente 1, y así sucesivamente.

main()

{

    int t,i,num[3][4];



for(t=0; t<3; ++t)

for(i=0; i<4; ++i)

num[t][i]=(t*4)+i*1;



for(t=0; t<3; ++t)

{

for(i=0; i<4; ++i)

printf(“num[%d][%d]=%d “, t,i,num[t][i]);

printf(“\n”);

}

}

En C se permite la inicialización de arreglos, debiendo seguir el siguiente formato:

tipo nombre_arr[ tam1 ][ tam2 ] … [ tamN] = {lista-valores};

Por ejemplo:

int i[10] = {1,2,3,4,5,6,7,8,9,10};

int num[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};

martes, 27 de julio de 2010

while (Instrucción)

Ejecuta una instrucción hasta que la condición especificada sea igual a False.

while (expression)       statement 
Argumentos

expression

Requerido. Expresión booleana comprobada antes de cada iteración del bucle. Si al evaluarexpression devuelve True, el bucle se ejecuta. Si al evaluar expression devuelve False, el bucle termina.

statement

Requerido. Instrucción que se va a ejecutar si el argumento expression es True. Puede ser una instrucción compuesta.

Instrucción For...Next

Repite un grupo de instrucciones un número de veces especificado.

For counter [ As datatype ] = start To end [ Step step ]     [ statements ]     [ Exit For ]     [ statements ] Next [ counter ] 
Partes

counter

Se requiere en la instrucción For. Variable numérica. Variable de control para el bucle.

datatype

Obligatorio, a menos que counter ya se haya declarado. Tipo de datos de counter.

start

Obligatorio. Expresión numérica. Valor inicial de counter.

end

Obligatorio. Expresión numérica. Valor final de counter.

step

Opcional. Expresión numérica. Cantidad en la que se incrementa counter cada vez que se recorre el bucle.

statements

Opcional. Una o más instrucciones entre For y Next que se ejecutan un número especificado de veces.

Exit For

Opcional. Transfiere el control fuera del bucle For.

Next

Obligatorio. Termina la definición del bucle For.

lunes, 17 de mayo de 2010

Instrucción If y else en Visual Basic

Las instrucciones o estructuras de control, permiten tomar decisiones y realizar un proceso en repetidas veces. Son las denominadas bifurcaciones y bucles. Estas estructuras son muy importantes puesto que son las encargadas de controlar el flujo de un programa según los requerimientos del mismo. En Visual Basic se dispone de las siguientes:

Instrucción IF....THEN.....ELSE....END IF

Permite ejecutar condicionalmente una o más sentencias. Su representación es así:
Sentencias de control. Sentencia If, Then, Else, End If

En la representación anterior, si se cumple la primera condición, es decir condicion1 = True, entonces el programa continua su ejecución por el Grupo1 de Sentencias, si no se cumple, pasa a evaluar condicion2, y si es cierta se ejecuta el Grupo 2 de Sentencias y si es falsa evalúa condicion3 y así se continúa hasta el encontrar un Else If (puede haber tantos como se precisen) que contenga una condición verdadera para ejecutar su grupo de sentencias. Si ninguna condición de las evaluadas es cierta, se ejecuta el Grupo de Sentencias de la cláusula Else.

martes, 13 de abril de 2010

Tipos de datos y variables en Visual Basic

Tipos de datos:

Existen diferentes tipos de datos, continuación mostraré un resumen de ellos.


Variable
En una Instrucción Dim (Visual Basic)
Dim amount As Double
Static yourName As String
Public billsPaid As Decimal = 0

Se puede observar como utilizar cada uno de los tipos de variable:
  • Byte: Almacena pequeños enteros positivos menores que o iguales a 255
  • Boolean: Contiene solo uno de dos valores y pueden leerse o establecerse mediante el uso de una palabra clave reservada de Visual BASIC True y False.
  • Integer: Almacena enteros entre –2147483648 y 2147483647
  • Long: Almacena enteros entre -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807
  • Single (Precision): Almacena reales entre -3,40E38 y 3,40E38
  • Double(Precision): Almacena reales entre -1,8E308 y 1,8E308
  • Short: Almacena enteros entre -32.768 y 32.767
  • Date: Almacena cualquier fecha literal reconocible (en Ingles)
  • Object: Maneja cualquier objeto producido por una aplicación
  • String: Almacena cadenas de caracteres

¿Y cómo declaramos una variable en Visual Basic ?

Una variable se declara utilizando la palabra DIM y luego quedaria de la siguiente manera:

Dim nombre_de_la_variable AS Tipo

sin dejar espacios y poniendo una coma(,), entre variable y variable.

martes, 2 de marzo de 2010

Visual Basic

Visual Basic es un lenguaje de programación desarrollado por Alan Cooper para Microsoft. El lenguaje de programación es un dialecto de BASIC, con importantes añadidos. Su primera versión fue presentada en 1991 con la intención de simplificar la programación utilizando un ambiente de desarrollo completamente gráfico que facilitará la creación de interfaces gráficas y en cierta medida también la programación misma. Desde el 2001 Microsoft ha propuesto abandonar el desarrollo basado en la API Win32 y pasar a trabajar sobre un framework o marco común de librerías independiente de la versión del sistema operativo, .NET Framework, a través de Visual Basic .NET (y otros lenguajes como C Sharp (C#) de fácil transición de código entre ellos) que presenta serias incompatibilidades con el código Visual Basic existente.

Visual Basic (Visual Studio) constituye un IDE (entorno de desarrollo integrado o en inglés Integrated Development Enviroment) que ha sido empaquetado como un programa de aplicación, es decir, consiste en un editor de código (programa donde se escribe el código fuente), un depurador (programa que corrige errores en el código fuente para que pueda ser bien compilado), un compilador (programa que traduce el código fuente a lenguaje de máquina), y un constructor de interfaz gráfica o GUI (es una forma de programar en la que no es necesario escribir el código para la parte gráfica del programa, sino que se puede hacer de forma visual).

Lenguaje orientado a objetos

Saltar a navegación, búsqueda
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).

¿Qué son los Lenguajes de Programación?

Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado de un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación.