INFORMATICA
jueves, 20 de enero de 2011
lunes, 15 de noviembre de 2010
El observatorio de Visualización Ixtli
El Observatorio de Visualización Ixtli de la UNAM es un conjunto de recursos humanos, servicios e infraestructura, que se especializan en el desarrollo e integracion de ambientes virtuales.
Cuenta con un equipo especial para reconstrucciones tridimensionales de objetos y artefactos solidos, para ello se utiliza un brazo digitalizador o un escaner tridimensional, las reconstrucciones se pueden materializar utilizando una impresora tridimensional. Este servicio puede ser solicitado por profesores, investigadores, alumnos y el publico en general.
La sala Ixtli es un espacio de encuentro multidisciplinario de la UNAM. El despliegue e interacción con elementos tridimensionales y en especial la realidad virtual inmersiva son elementos que de forma natural facilitan la comprensión de fenómenos y conceptos relacionados con estructuras complejas.
La utilizacion de este recurso facilita la compresion y analisis de temas complejos que requieren de gran capacidad de procesamiento grafico y recursos visuales, enriqueciendo la labor de alumnos. profesores e investigadores.
Esta sala puede ser utilizada para demostraciones, clases, seciones de trabajo, conferencias, examenes de posgrado, seminarios.
El servicio consiste en un proyecto que va desde la planeación, la digitalización, el modelado, revisiones y validaciones, correcciones y reconstrucciones hipotéticas, hasta la impresión y herramientas de gestión de una colección.
Cuando llegas a la Sala Ixtli nos mencionaron cuales son sus objetivos, nosotros identificamos los siguientes objetivos como principales:
1. Apoyar la docencia y la investigación con técnicas avanzadas de visualización y simulación de fenómenos complejos.
2. Brindar un servicio de alta tecnología en Realidad Virtual Inmersiva a la comunidad universitaria que beneficie a las áreas científicas y tecnológicas, así como a las de humanidades y a las de difusión cultural en sus necesidades de visualización.
3. Impulsar el trabajo multidisciplinario en actividades de enseñanza e investigación, proveyendo una herramienta de desarrollo que asista a los alumnos, profesores, investigadores, posgraduados y tesistas
lunes, 11 de octubre de 2010
INTEGRANTES DEL EQUIPO
AGUILAR ESCUTIA MIGUEL ANGEL
DE LA CONCHA DUARTE ALEJANDRO
DE LA CONCHA DUARTE ALEJANDRO
GONZALES GUTIERREZ GUILLERMO
GONZALES LOPEZ LUIS ALBERTO
GONZALES LOPEZ LUIS ALBERTO
HERRERA COSSI IVAN ALEJANDRO
LECHUGA JIMENEZ ARELY
SIERRA DIAZ FERNANDO
ZAVALA LEYVA EMMANUEL
Ejercicios de Autoevaluacion
Con base en lo visto y aprendido en el tema se podra resolver las cuestiones siguientes:
1. ¿Qué es un algoritmo?
2. ¿Cuáles son las características de los algoritmos?
3. ¿Qué es un diagrama de flujo?
4. ¿Qué significado tiene el siguiente símbolo ?
5. ¿Qué es un lenguaje de programación?
6. ¿Quién tuvo la idea de utilizar por primera vez los lenguajes de programación?
7. ¿Cuál fue el primer ordenador que surgió, y qué significan sus siglas?
8. En los primeros ordenadores, ¿Cómo se realizaba la entrada y salida de datos?
9. ¿Cuántas generaciones de lenguaje de programación hay?
10. ¿Qué es un programa?
11. ¿Qué es el “código fuente”?
12. ¿Cuál es el instrumento que permite modificar el flujo de ejecución de las instrucciones de un programa?
Los lenguajes de Programacion
Lenguaje de programación.
En informática, cualquier lenguaje artificial que puede utilizarse para definir una secuencia de instrucciones para su procesamiento por un ordenador o computadora. Es complicado definir qué es y qué no es un lenguaje de programación. Se asume generalmente que la traducción de las instrucciones a un código que comprende la computadora debe ser completamente sistemática. Normalmente es la computadora la que realiza la traducción.
Un lenguaje de programación es una notación para escribir programas, a través de los cuales podemos comunicarnos con el hardware y dar así las órdenes adecuadas para la realización de un determinado proceso.
Un lenguaje esta definido por una gramática o conjunto de reglas que se aplican a un alfabeto constituido por el conjunto de símbolos utilizados. Conjunto de normas “lingüísticas” (palabras y símbolos) que permiten escribir un programa y que éste sea entendido por el ordenador y pueda ser trasladado a ordenadores similares para su funcionamiento en otros sistemas.
Historia de los Lenguajes de Programación.
Los primeros lenguajes de programación surgieron de la idea de Charles Babagge, la cual se le ocurrió a mediados del siglo XIX. Era un profesor matemático de la universidad de Cambridge e inventor ingles, que al principio del siglo XIX predijo muchas de las teorías en que se basan los actuales ordenadores. Consistía en lo que él denominaba la maquina analítica, pero que por motivos técnicos no pudo construirse hasta mediados del siglo XX. Con él colaboro Ada Lovedby, la cual es considerada como la primera programadora de la historia, pues realizo programas para aquélla supuesta maquina de Babagge, en tarjetas perforadas. La maquina no llego a construirse, los programadores utilizaron las técnicas diseñadas por Charles Babagge, y Ada, que consistían en la programación mediante tarjetas perforadas.
Cuando surgió el primer ordenador, el famoso ENIAC (Electronic Numerical Integrator And Calculator), su programación se basaba en componentes físicos, o sea, que se programaba, cambiando directamente el Hardware de la maquina, exactamente lo que sé hacia era cambiar cables de sitio para conseguir así la programación de la maquina. La entrada y salida de datos se realizaba mediante tarjetas perforadas.
Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas, es decir, de almacenar en memoria la información sobre la tarea que iban a ejecutar. Las primeras se usaban como calculadoras simples; se les indicaban los pasos de cálculo, uno por uno.
Lo más importante es que la historia nos permite ver la evolución de familias de lenguajes de programación, ver la influencia que ejercer las arquitecturas y aplicaciones de las computadoras sobre el diseño de lenguajes y evitar futuros defectos de diseño aprendido las lecciones del pasado.
Una clasificación muy extendida, atendiendo a la forma de trabajar de los programas y a la filosofía con que fueron concebidos, es la siguiente:
- Lenguajes imperativos. Utilizan instrucciones como unidad de trabajo de los programas (Cobol, Pascal, C, Ada).
- Lenguajes declarativos. Los programas se construyen mediante descripciones de funciones o expresiones lógicas (Lisp, Prolog).
- Lenguajes orientados a objetos. El diseño de los programas se basa más en los datos y su estructura. La unidad de proceso es el objeto y en el se incluyen los datos (variables) y las operaciones que actúan sobre ellos (Smalltalk, C++).
- Lenguajes orientados al problema. Diseñados para problemas específicos, principalmente de gestión, suelen ser generadores de aplicaciones.
- Lenguajes naturales. Están desarrollándose nuevos lenguajes con el principal objetivo de aproximar el diseño y construcción de programas al lenguaje de las personas.
Otra clasificación que se puede hacer es la de atendiendo al desarrollo de los lenguajes desde la aparición de las computadoras, que sigue un cierto paralelismo con las generaciones establecidas en la evolución de las mismas:
- Primera generación. Lenguajes maquina y ensambladores.
- Segunda generación. Primeros lenguajes de alto nivel imperativo (FROTRAN, COBOL).
- Tercera generación. Lenguajes de alto nivel imperativo. Son los mas utilizados y siguen vigentes en la actualidad (ALGOL 8, PL/I, PASCAL, MODULA).
- Cuarta generación. Orientados básicamente a las aplicaciones de gestión y al manejo de bases de datos (NATURAL, SQL).
- Quinta generación. Orientados a la inteligencia artificial y al procesamiento de los lenguajes naturales (LISP, PROLOG).
Para la mejor compresión se harán unas definiciones:
Programa: es un conjunto de instrucciones escritas en un lenguaje de programación que indican a la computadora la secuencia de pasos, para resolver un problema.
Código fuente: esta creado en algún lenguaje de alto nivel, por lo que es entendido 100% por el ser humano. Este debe estar complementado por su documentación o manuales donde se indica el desarrollo lógico del mismo.
Código objeto: es creado por los compiladores y nos sirve como enlace entre el programa fuente y el ejecutable.
Intérpretes y compiladores
La traducción de una serie de instrucciones en lenguaje ensamblador (el código fuente) a un código máquina (o código objeto) no es un proceso muy complicado y se realiza normalmente por un programa especial llamado compilador. Un compilador crea una lista de instrucciones de código máquina, el código objeto, basándose en un código fuente. El código objeto resultante es un programa rápido y listo para funcionar, pero que puede hacer que falle el ordenador si no está bien diseñado. Los intérpretes, por otro lado, son más lentos que los compiladores ya que no producen un código objeto, sino que recorren el código fuente una línea cada vez. Cada línea se traduce a código máquina y se ejecuta.
Estructuras de control
En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa.
Con las estructuras de control se puede:
- De acuerdo a una condición, ejecutar un grupo u otro de sentencias (If-Then-Else y Select-Case)
- Ejecutar un grupo de sentencias mientras exista una condición (Do-While)
- Ejecutar un grupo de sentencias hasta que exista una condición (Do-Until)
- Ejecutar un grupo de sentencias un número determinado de veces (For-Next)
Todas las estructuras de control tienen un único punto de entrada y un único punto de salida. Las estructuras de control se puede clasificar en: secuenciales, iterativas y de control avanzadas. Esto es una de las cosas que permite que la programación se rija por los principios de la programación estructurada.
Los lenguajes de programación modernos tienen estructuras de control similares. Básicamente lo que varía entre las estructuras de control de los diferentes lenguajes es su sintaxis, cada lenguaje tiene una sintaxis propia para expresar la estructura.
Los Ordenadores No Hablan Nuestro Idioma.
Los ordenadores no hablan nuestro idioma, son maquinas y como tales, necesitan un lenguaje especifico pensado por el hombre para ellas. Además, necesitan constantemente interpretar todas las instrucciones que reciben. Dada la dificultad de comunicación insalvable entre el computador y el programador, pronto aparecieron lenguajes de programación que hacen posible la comunicación con el microprocesador, utilizando términos y símbolos relacionados con el tipo de problema que se debe resolver, mediante el empleo de herramientas que brinda la informática.
El ordenador es en realidad tan sólo una máquina virtual, capaz de resolver todos los problemas que los usuarios seamos capaces de expresar mediante un algoritmo (programa).
En la actualidad hay muchos tipos de lenguajes de programación, cada uno de ellos con su propia gramática, su terminología especial y una sintaxis particular. Por ejemplo, existen algunos creados especialmente para aplicaciones científicas o matemáticas generales (BASIC, FORTRAN, PASCAL, )otros, en cambio, se orientan al campo empresarial y al manejo de textos y ficheros, es decir, son en realidad fundamentalmente gestores de información (COBOL, PL/1, ), o muy relacionados con el lenguaje máquina del ordenador (como el C y el ASSEMBLER).
Programación.
Los problemas computables son aquellos donde se utiliza ventajosamente la computadora y cuentan con una o varias de las siguientes características:
.Se requiere mucho tiempo para su solución
.Son problemas que se presentan repetidamente con pequeños cambios o datos diferentes.
-Es necesaria una gran exactitud para su solución
.Problemas perfectamente definidos para los cuales se conoce uno o varios métodos de solución.
Los problemas siguen un procedimiento que se muestra a continuación.
Algoritmo.-Serie de pasos a seguir para resolver un problema
Características de los algoritmos
- Preciso.- Indica el orden de realización de cada paso
- Definido.-.- Se debe obtener el mismo resultado cada vez
- Finito.- Se debe terminar en algún momento
Diagramas de flujo.- Representación gráfica de los algoritmos
Terminal. Representa el comienzo "inicio" y el final "fin" de un programa.
Entrada / Salida. Cualquier tipo de introducción de datos en la memoria desde los periféricos.
Proceso. Cualquier tipo de operación que pueda originar cambio de valor, formato o posición de la información almacenada en memoria, operaciones aritméticas, de transferencia, etc.
Decisión. Indica operaciones lógicas o de comparación entre datos y en función del resultado, normalmente tiene dos salidas (respuestas Si o No).
Conector. Sirve para enlazar dos partes cualesquiera de un diagrama.
Indicador de dirección o línea de flujo. Indica el sentido de ejecución de las operaciones.
Línea conectora. Sirve de unión entre dos símbolos.
Impresora
PROGRAMA: ECUCACIÓN FÓRMULA GENERAL.
program ecuacion;
uses crt;
var
a,b,c:real;
r,d,f:real;
x,s:real;
num,resp:char;
begin
clrscr;
writeln('solucion de la segunda ecuacion');
writeln('hay dos posibles resultados');
writeln('1.-x');
writeln('2.-x');
writeln('3.-salir');
resp:='n';
repeat
writeln('ingrese valor de a:');
readln(a);
writeln('ingrese valor de b:');
readln(b);
writeln('ingrese el valor de c:');
readln(c);
writeln('seleccione el resultado que desea saber:');
readln(num);
case num of
'1':begin
r:=(b*b);
s:=(4*a*c);
d:=(r-s);
if d>=0 then
begin
f:=(sqrt(d));
x:=(f-b);
x:=(x/2*a);
writeln('el primer resultado de la ecuaci•n es',x);
readln;
end
else
writeln('Valores erroneos, darlos de nuevo');
end;
'2':begin
r:=(b*b);
s:=(4*a*c);
d:=(r-s);
if d>=0 then
begin
f:=(sqrt(d));
x:=(-f-b);
x:=(x/2*a);
writeln('el segundo resultado de la ecuaci•n es',x);
readln;
end
else
writeln('Valores erroneos, darlos de nuevo');
end;
'3':readln;
end;
writeln('quiere saber otro resultado (s-n):');
readln(resp);
until(resp='n') or (resp='N');
readln;
end.
uses crt;
var
a,b,c:real;
r,d,f:real;
x,s:real;
num,resp:char;
begin
clrscr;
writeln('solucion de la segunda ecuacion');
writeln('hay dos posibles resultados');
writeln('1.-x');
writeln('2.-x');
writeln('3.-salir');
resp:='n';
repeat
writeln('ingrese valor de a:');
readln(a);
writeln('ingrese valor de b:');
readln(b);
writeln('ingrese el valor de c:');
readln(c);
writeln('seleccione el resultado que desea saber:');
readln(num);
case num of
'1':begin
r:=(b*b);
s:=(4*a*c);
d:=(r-s);
if d>=0 then
begin
f:=(sqrt(d));
x:=(f-b);
x:=(x/2*a);
writeln('el primer resultado de la ecuaci•n es',x);
readln;
end
else
writeln('Valores erroneos, darlos de nuevo');
end;
'2':begin
r:=(b*b);
s:=(4*a*c);
d:=(r-s);
if d>=0 then
begin
f:=(sqrt(d));
x:=(-f-b);
x:=(x/2*a);
writeln('el segundo resultado de la ecuaci•n es',x);
readln;
end
else
writeln('Valores erroneos, darlos de nuevo');
end;
'3':readln;
end;
writeln('quiere saber otro resultado (s-n):');
readln(resp);
until(resp='n') or (resp='N');
readln;
end.
Suscribirse a:
Entradas (Atom)