martes, 14 de junio de 2011

Lenguaje UML


USO Y APLICACIÓN DEL LENGUAJE UML
Lenguaje Unificado de Modelado

Es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad. Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema.

Es importante resaltar que UML es un "lenguaje de modelado" para especificar o para describir métodos o procesos. Se utiliza para definir un sistema, para detallar los artefactos en el sistema y para documentar y construir. En otras palabras, es el lenguaje en el que está descrito el modelo.

UML no puede compararse con la programación estructurada,  pues UML significa Lenguaje Unificado de Modelado, no es programación, solo se diagrama la realidad de una utilización en un requerimiento.  Mientras que, programación estructurada, es una forma de programar como lo es la orientación a objetos, sin embargo,  la programación orientada a objetos viene siendo un complemento perfecto de UML, pero no por eso se toma UML sólo para lenguajes orientados a objetos.


miércoles, 8 de junio de 2011

Algoritmo III

Ejercicio: Dado el tiempo que realizan los participantes en competencia de velocidad en pista y la distancia recorrida, calcula la velocidad de los mismos expresada en kilómetros por hora.

*En ese programa nos piden la velocidad en k/h, por ello utilizamos la fórmula v:d/t; para distancias y tiempos pequeños o cortos, el siguiente programa pide que ingresemos los datos anteriores en metros/segundos y luego al hacer la operacion de la velocidad, este programa de una vez convierte los metros en kilometros y los segundos en horas para que la velocidad salgo en k/h.
el programa queda así:

#include<stdio.h>
#include<conio.h>

main()
{
float distancia, tiempo, velocidad;
printf("ingrese la distancia recorrida en metros: ");
scanf("%f", &distancia);
printf("ingrese el tiempo en segundos: ");
scanf("%f", &tiempo);

velocidad= (distancia/1000)/(tiempo/3600);
printf("la velocidad en kilometros por hora es: %f",velocidad);

return 0;
}
*Ahora bién, para distancias y tiempos más grandes, en el siguiente programa los datos ya se piden en k/h y no en m/s como en el anterior programa, por lo tanto, ya no hay necesidad de hacer ninguna conversión y la operacion que saca la velocidad en k/h queda más sencilla.
el programa queda así:

#include<stdio.h>
#include<conio.h>

main()
{
float distancia, tiempo, velocidad;
printf("ingrese la distancia recorrida en kilometros: ");
scanf("%f", &distancia);
printf("ingrese el tiempo en horas: ");
scanf("%f", &tiempo);

velocidad= distancia/tiempo;
printf( "la distancia en kilometros es: %f", velocidad);
return 0;
}

Algoritmo II

Ejercicio:  El programa, dado como datos los galones surtidos a un cliente en una gasolinera, calcula lo que este debe de pagar.

* Esta instruccion no especifica el precio de los galones de aceite que serán multiplicados por el número de galones que lleve el cliente para obtener el precio que éste pagará, por lo tanto, el programa pedirá que ingresemos el numero de galones de aceite que el cliente llevará y luego pedirá el costo de cada galon de aceite, para luego realizar la operación del costo que el cliente pagará.
el programa queda así:

#include<stdio.h>
#include<conio.h>

main()
{
float galonesdeaceite, preciogalon, costo;

printf("ingrese cuantos galones de aceite llevara: ");
scanf("%f", &galonesdeaceite);
printf("ingrese el precio galon: ");
scanf("%f", &preciogalon);

costo= galonesdeaceite*preciogalon;
printf("el costo es: %f", costo);
return 0;
}

Algoritmo I

Ejercicio:
Escriba un programa que reciba la extensión de un terreno en acres y la presente en metros.
"como un acre equivale a: 4046.85mts^2, el algoritmo en C++ queda así:"

#include<stdio.h>
#include<conio.h>

main()
{
float metroscuadrados, acres;
printf("ingrese la medida en acres: ");
scanf("%f", &acres);
metroscuadrados= acres *  4046.85;
printf("la medida en metros cuadrados es: %f", metroscuadrados);
return 0;

}

jueves, 26 de mayo de 2011

Algoritmos


 ¿Qué tipos de algoritmos existen?
Existen dos tipos y son llamados así por su naturaleza:
Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.

Existen distintos tipos de algoritmos de razonamiento:
Algoritmos estáticos, es decir, algoritmos que funcionan siempre igual, independientemente del tipo de problema tratado. Por ejemplo, los sistemas basados en el método de resolución.
Algoritmos probabilísticos, es decir, algoritmos que no utilizan valores de verdad booleanos sino continuos. Por ejemplo, los sistemas basados en lógica difusa.

Algoritmos adaptativos, es decir, algoritmos con cierta capacidad de aprendizaje. Por ejemplo, los sistemas basados en redes neuronales. Tiempo secuencial. Un algoritmo funciona en tiempo discretizado (paso a paso), definiendo así una secuencia de estados "computacionales" por cada entrada válida (la entrada son los datos que se le suministran al algoritmo antes de comenzar).Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando una estructura de primer orden y cada algoritmo es independiente de su implementación (los algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo. Exploración acotada. La transición de un estado al siguiente queda completamente determinada por una descripción fija y finita; es decir, entre cada estado y el siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de términos del estado actual.

¿En qué otras ciencias se apoyan la algoritmia para producir soluciones ingeniosas? 
Ciencias de la Computación
Matemáticas
Ciencias Sociales
Ciencias Políticas


¿Cómo podemos determinar la complejidad de un algoritmo?
Es posible realizar el estudio de la complejidad de un algoritmo sólo en base a un conjunto reducido de sentencias, aquellas que caracterizan que el algoritmo sea lento o rápido en el sentido que nos interesa. También es posible distinguir entre los tiempos de ejecución de las diferentes operaciones elementales, lo cual es necesario a veces por las características específicas del ordenador (por ejemplo, se podría considerar que las operaciones + y ÷ presentan complejidades diferentes debido a su implementación). Sin embargo, todas las operaciones elementales del lenguaje, y supondremos que sus tiempos de ejecución son todos iguales.

miércoles, 27 de abril de 2011

Tema de exposición: Creatividad

Creatividad.
El manejo de los últimos tiempos de manejos como tecnología de punta,  nanotecnología, proceso artificial, producto de ello nos hacemos la pregunta ¿hasta dónde pueden llegar los avances científicos? ¿Se llegará a simular los procesos del cerebro humano completamente?
El ser humano ya no se conforma con el diseño de simples maquinas, objetos, computadoras “bobas” sino que canalizar cualquier experiencia para no crear solo maquinas inteligentes….. Sino con creatividad.
Por lo tanto también decimos que el conocimiento es el fundamento de todo el edificio de la ciencias; Siempre estamos aprendiendo, comprendiendo hasta llegar al ideal que se convierta en un ideal de vida, de allí nace la creatividad, que es la capacidad del ser humano que desarrolla innovación transformadora, viveza imaginativa, visión mental, flexibilidad y originalidad de pensamiento.
La creatividad se considera una actitud en la cual confluyen diversos criterios: espontaneidad, asociatividad  cognitiva y debida a la evolución, es decir, referida solamente a la condición humana.
Por último la creatividad se considera sinónimo de innovación, imaginación, invención, intuición, y descubrimiento, es decir, la creatividad es habilidad de dar vida (que incluye forma, crear, presentar, mejorar etc.) a algo. Creatividad es habilidad de comunicar lo escondido, si temer el qué dirán, sobrepasando lo cultural.
Creatividad computacional.
Es claro que una maquina no posee bloqueos sociales ni culturales, pero ¿Cómo haría esta para mostrar rasgos creativos? ¿Podría involucrarse la creatividad en los sistemas?
Si un sistema es una asociación estructurada y coherente de partes consecutivas interactuantes entre si y el todo, que deben cumplir un fin determinado, habremos de dilucidar si los sistemas pueden o no tener la condición de creativos.
Así al hablar de un sistema y más si es creativo que ha de buscar alternativas innovadoras, entonces la creatividad en la computación podemos decir que es aquel que ha de facilitar desarrollos dinámicos que se repliquen a diversos niveles y a los cuales, gracias al carácter dinámico o cambiante, el sistema proveerá respuestas satisfactorias a casi cualquier sistema.
La creatividad en el ordenador tendrá que poseer, en gran parte, las características del ser humano esquematizadas en diferentes rutinas. El sistema poseerá con certeza bases de conocimiento y como referente, patrones o modelos de aspectos creativos
Al aplicar la creatividad al ordenador, este deberá tener una capacidad divergente, una capacidad de pensamiento paralelo y, porque no, pensamiento complejo,  en términos de apertura a todo lo nuevo; y de esta manera el sistema podrá generar diferentes interpretaciones a los elementos de entrada, en otras palabras: será un posibilitador de nuevas situaciones.
Ahora bien, el objetivo de la creatividad en la computación es determinar un modelo, en primera instancia teórico y luego computacional, para implementar la característica creativa en un computador; esto obliga a identificar, en primera instancia, el carácter del modelo y su aplicabilidad a problemas y situaciones de diversa naturaleza.
La implementación de la creatividad en los sistemas implicará el desarrollo de subsistemas que actuaran en paralelo para percibir toda la realidad posible que lo rodeo, reconocer experiencia, capacidad de discernir  sobre cual secuencia de acciones sería conveniente ejecutar, temporalidad del conocimiento, razonamiento aproximado, aprendizaje etc.
Con base a lo anterior se afirma que la creatividad en los sistemas son los procesos mediante se soluciona cualquier problema a partir de la asociación, aprendizaje de experiencias e innovación.