lunes, 22 de noviembre de 2010

Reporte#9

Hola Dra Sara y compañeros
Aqui les dejo mi clase, algo tarde pero fue porque tuve algunas complicaciones....
Saludos*
http://www.youtube.com/watch?v=sS4KcybeszY

jueves, 18 de noviembre de 2010

Reporte#8 Programa Multiparadigma

Hola Dra Sara y compañeros de clase, en este reporte nos toco hacer lo que es un programa en un lenguaje multiparadigma, primero les pondre mas o menos a que nos referimos con multiparadigma:

Son los lenguajes que soportan mas de un paradigma, permiten crear programas usando mas de un estilo de programacion.
El objetivo es permitir a los programadores utilizar el mejor paradigma para cada programa, sabiendo que ninguno resuelve todos los problemas de la forma más fácil y eficiente posible.
Los paradifgmas son:
  • Imperativo
  • Logico
  • Funcional
  • Estructurado
  • Orientado a objetos

Para elaborar este reporte use el lenguaje de programacion Falcon (El que habia escogido en el reporte#2 ya que me acorde que este es multiparadigma y me llamo la atencion usarlo)
Primero baje el compilador desde la pagina del lenguaje:

Powered by Falcon

Despues ya bajado empeze a escribir el siguiente codigo en un bloc de notas y es importante que guardemos el archivo con extension ". fal"

saying= List ("ten", "un", "buen", "dia")
for elem in saying
>> elem
formiddle: >> " "
forlast: > "!"
end










Este codigo es una simple iteracion sobre una lista
he aqui lo que me imprimio al hacer click en el archivo ya guardado despues del bloc de notas:


-----------------------------------------------------------------------
Ahora continuemos con otro ejemplo....

Este codigo lo que hace es que te manda notificaciones aleatorias de personas con suerte de un rango de 11 personas...

class Person (number)
id=number
init
if random (0,1): subscribe( "lucky", self)
end

//se recibe una notificacion de la suerte

function on_lucky (data)
>data, " ", self.id, "is lucky!"
end
end
//creamos a todas las personas

for i in [1:11]: Person(i)

//suertudas

broadcast ("lucky", "Person")




Aqui les muestro lo que me imprimio al abrirlo 2 veces el programa, como se daran cuenta, el resultado es diferente ya que siempre saldran personas aleatorias con suerte :




Bueno, esos es todo, espero les haya gustado mi reporte y haber cumplido con lo pedido...
Saludos!!

miércoles, 17 de noviembre de 2010

Reporte #7 Programacion Orientado a Objetos

Hola Dra Sara y compañeros de clase aqui les dejo unos programas en C++ y en Java sobre Programacion Orientado a Objetos.

------------------
Java
Este primer programa lo hize del fibonacci en java



y lo que me corrio el programa:


El compilador que use fue el eclipse.
(NOTA: En lo personal batalle mucho para usar eclipse, otras opciones que se pueden usar es descargar los paquetes en ubuntu o bien este compilador: jCreator. Es un poco mas sencillo pero por motivos de tiempo no pude adentrarme mas y asi.

Ahora bien, les explicare un poco sobre la Programacion Orientada a Objetos

Clase: son las definiciones de las propiedades y el comportamiento de un tipo de objeto en concreto

Objeto:Son las instancias a las clases, enntidades de un conjunto de propiedades o atributos (datos) y de funcionalidad (métodos) y que son los mismos que consecuentemente reaccionan a eventos.

Metodo: Es lo que el objeto hace, es el algoritmo del problema, la accion que se va a hacer

En comparación con un lenguaje imperativo, una "variable", no es más que un contenedor interno del atributo del objeto o de un estado interno, así como la "función" es un procedimiento interno del método del objeto.

Aqui hize otro programa de numeros primos, pero no me pudo compilar...por lo mismo que les mencionaba que batalle en eclipse y en el Jcreator me marcaba error.

public class numeros_primos {
public static void main(String[] primos){
System.out.println("1");
for (int i=1;i<=100;i++){
int contador=0;
for(int j=1; j<=i; j++){
if (i%j==0) contador++;
}
if (contador==2) System.out.println(i);
}
}
}






---------------------------------------
C ++

Este es un programa en C++ que me muestran los numeros primos:


#include
#define LIM 26
int main()
{
unsigned int num, n, p, i, num_columnas;
cout << "Introduzca la cantidad de numeros primos que quiere obtener: ";
cin >> num;
cout << '\n' << endl;
num_columnas = 0 ;
n = 2;
i = 1;
while(i <= num)
{
for(p = 2; n % p != 0; p++);
if(p == n)
{
cout << n <<", ";
if(++num_columnas % 10 == 0)
cout << "\n" << endl;
i++;
}
n++;
}
cout << "\n" << endl;
system("pause");
return 0;
}


Esto fue lo que imprimio el programa:









Espero haber cumplido con lo pedido
Saludos!!

jueves, 11 de noviembre de 2010

Reporte#6 Lenguajes Imperativos

Hola Dra y compañeros de clase, este es mi reporte de lenguajes imperativos

PASCAL



En pascal el programa que hize fue base a lo que habia explicado una compañera sobre detectar si una palabra es palindromo o no.
Aqui les muestro el codigo, el compilador es Free Pascal.



Esto fue lo que me imprimio el programa:

------------------------------------------------------

C

Aqui les hize un programa que te pida el numero de filas y columnas para hacer una matriz:
Como el lenguaje es en C no explicare en si el codigo ya que es algo entendible...

#include
#include
void tamano();
void asignar();
void imprimir();
int I,F,J,C,M[50][50];
main()
{
tamano();
asignar();
imprimir();
getche();
return 0;
}
void tamano()
{
do
{
printf("Filas");
scanf("%d",&F);
printf("Columnas");
scanf("%d",&C);
}while(F!=C);
return;
}
void asignar()
{
for(i=0; i
for(j=0; j
if(i == j){
matriz[i][j] = 1;
}
else{
matriz[i][j] = 0;
}
}
for(i=0; i
printf("\t");
for(j=0; j
printf("%4d", matriz[i][j]);
}
printf("\n");
}
printf("\n\n");

system("pause");
return 0;
}

he aqui lo que me imprime el programa considerando 5 filas y 5 columnas:


---------------------------------------------------------------------------
Fortran


aqui les dejo mi programa en fortran del fibonacci, lamentablemente no entiendo porque no me pudo compilar y batalle con ese aspecto......



-----------------------------------------------------------------------------------
ALGOL


Aqui les pongo un ejemplo del promedio(media)del valor absoluto de un vector en Algol:

begin
integer N;
Read Int (N);

begin
real array Data [1: N];
real sum, avg ;

integer 1;
sum: -0;
for 1: -1 step 1 until N do
begin real val
Read Real (val);
Dara[1]:-if val <0 then - val else val
end;

for 1: -1 step 1 until N do
sum: -sum + Data [1];
avg:-sum/N;
print Real (avg)
end
end

Si aprecian bien el codigo podemos ver que utilizamos un tipo de arreglos y asi y despues declaramos tambien variables para poder sacar lo que vale el vector, no lo pude compilador pero espero puedan entenderle



Cualquier cosa no duden en comentar mi blog
Saludos..!!!

miércoles, 10 de noviembre de 2010

Reporte # 5 Problema Logico

Hola Dra y compañeros de clase pues en esta entrada les explicare como solucionar el problema que escogi en clase y les pondre un programa ejemplo de prolog.

El problema que escogi se llama Ten balls in Five lines

Que quiere decir? Significa que debemos acomodar 10 bolas en 5 lineas....
pero lo complicado es que en cada linea debe de haber unicamente 4 bolas.

Para poder solucionar este problema en particular lo que hize fue primero en una hoja dibujar todas mis posibilidades hasta que me saliera, lamentablemente no fue una buena opcion.

Lo que hize fue recordar sobre la teoria de grafos y me base en eso para poder solucionar el problema.
Como eran 5 lineas se me ocurrio que podia hacerse en forma de estrella y lo que hize fue poner cada bola en las esquinas y ya asi poner las bolas en las lineas restantes.
He aqui en la imagen la solucion del problema :



------------------------------------------------------------------------
Ahora les pondre un programa ejemplo de prolog:

Primero les mostrare el codigo y les ire explicando

/*programa*/
domains
marca,color=symbol
precio,kilometraje=real
predicates
vehiculo(marca,precio,color,kilometraje)
automovil(marca,precio,color,kilometraje)
camioneta(marca,precio,color,kilometraje)
clauses
vehiculo(M,P,C,K):-
automovil(M,P,C.K);
camioneta(M,P,C,K).
automovil(ford,70000,blanco,35000).
automovil(nissan,65000,negro,48000).
camioneta(chevrolet,98000,rojo,60000).

bueno les explicare algunos conceptos del codigo:
domains: Esto se refiere a los tipos de datos del programa, osea lo que haremos.
predicates: son las relaciones, estos son muy importantes ya que son los que unen los objetivos con los hechos
clauses: son los hechos, lo que es la informacion concreta.
Goal: Son los objetivos, como quien dice, lo que le preguntaremos al programa

Estos son los objetivos que hize.

1-Cuales son las marcas y colores de los vehiculos?
(En el programa se pone)
vehiculo(Marca,_,Color,_)

2-Existe algun vehiculo de color rojo?
vehiculo(_,_,rojo,_)

3-Cual es el precio del vehiculo de color negro?
vehiculo(_,Precio,Negro,_)

Esta es la pantalla del programa:


Espero haber cumplido con lo pedido, cualquier cosa no duden en comentar....
Saludos..!!!!

jueves, 28 de octubre de 2010

Presentacion Distancia de Edicion

Hola compañeros aqui les muestro lo que es la presentacion de distancia de edicion de nuestro equipo Saludos..!!!

domingo, 24 de octubre de 2010

Reporte #4 Lenguaje funcionales

Hola compañeros aqui les muestro lo que es mi reporte #4 se trata de programar con lenguajes funcionales

Q

El primer lenguaje que escogi fue el Q es un lenguaje de programación funcional basado en reescritura de términos.
La verdad decidi programar en este lenguaje ya que me fue facil instalarlo y a la hora de programar es bastante sencillo

Programa para calcular el factorial:
Lo primero que hize fue escribir el codigo en el editor:

fac N = N*fac(N-1) if N>0;
= 1 otherwise;


Despues guardas el archivo como extension ".q" y tecleas F9 para que el interprete lea el codigo ,despues de esto aparecera la direccion del programa abajo del editor.

Ya interpretado nos pediran que escribamos una expresion, por ejemplo:
poner fac 5 (es muy importante que para ver el resultado pongamos fac (espacio) 5 ya que es la funcion y si no lo ponemos no nos mostrara el resultado)

y ya despues nos dara el calculo del factorial de 5 como lo muestra la imagen del programa:



---------------------------------------------------------------------
DrScheme (DrRacket)

Para mi segundo programa use el DrScheme (ahora llamado DrRacket)
decidi usarlo porque me llamaba la atencion usar scheme y fue lo mas sencillo que pude encontrar, baje lo que es el DrRacket y me parecio sencillo ya que ahi desde el menu puedes elegir el tipo de lenguaje que vas a usar para programar.

Despues escribi el codigo en el editor:

(define Pi 3.141592)
Pi
(define radio 10)
radio
(define circuferencia(* 2 Pi radio))
circuferencia
> circuferencia

Explicare en si lo que es el codigo primero definimos lo que es Pi =3.141592 despues definimos lo que es el radio =10, y definiremos la formula para sacar circuferencia= * 2 Pi radio (se multiplica)
el resultado es= 62.83184

aqui les muestro la imagen de mi programa:




Espero le hayan entendido a mi reporte y haber cumplido con lo pedido cualquier sugerencia no duden en comentar
Saludos..!!

miércoles, 8 de septiembre de 2010

miércoles, 1 de septiembre de 2010

Reporte#3

Hola Dra Sara, lo prometido es deuda aqui le muestro mi entrada editada de lo que es el Reporte#3
Al hacer los programas me di cuenta que sus similitudes son faciles de identificar y que en algunos lenguajes es mas facil hacer el programa.
Hize un programa que me mostrara el cuadrado de un numero en javascript, perl y python.



Javascript











El cuadrado de 5 es:

------------------------------------------------------------------------------------------




Perl


#!/usr/bin/perl
$numero = 5; ------>Se declaran las variables (en este caso $numero)
$cuadrado = ( numero * numero ); -----> (Se indica la operacion)
$a = “El resultado es : $cuadrado”; -----> (El resultado final)


Es el mismo programa que hize en javascript pero en perl
Si nos damos cuenta la sintaxis es mas sencilla ya que declaramos las variables, indicamos la operacion y nos muestra el resultado.

Python

#Inicio del Programa
>>>def cuadrado(numero):
return (numero *numero) #Se realiza la operacion
>>> cuadrado ( 5 )
25--> #Resultado de la operacion

Al principio definimos la funcion (cuadrado) y la variable (numero) despues regresamos a la operacion(numero*numero) y nos da como resultado el cuadrado del numero.

Referencia:

http://es.wikipedia.org/wiki/JavaScript

http://mundogeek.net/tutorial-python/

http://www.etsimo.uniovi.es/perl/tutor/

Cualquier cosa profesora no dude en decirme, espero haber cumplido con lo pedido en el reporte.

Saludos!

miércoles, 18 de agosto de 2010

Presentacion#1


Aqui les muestro lo que es la presentacion que dare la clase el jueves, se trata de algunos aspectos sobre optimizacion.


Saludos!!

Tarea#2 Falcon

Hola Dra Sara y compañeros de clase, bueno en esta entrada les hablare y les mostrare de este lenguaje de programacion muy poco conocido.

Se llama "Falcon" y es un codigo abierto multi-paradigma diseñado por un italiano llamado: Giancarlo Niccolai en el año del 2003.



¿Que quiere decir multi-paradigma?-pues esto fue de lo que mas me llamo la atencion ya que este lenguaje nos muestra diferentes tipos de paradigmas como algunos que ya habiamos visto la clase anterior como:

*De procedimiento
*Funcional
*Orientado a objetos
*Prototipo de orientado a objetos
*Mensaje orientado
*Programacion tabular.
*En un futuro se podra contar con el paradigma logico.


Compilador
El Falcon contiene un meta-compilador que soporta expansiones macro, lo generado por el meta-compilador es enviado en lenguaje lexico como si fuera parte de la fuente original del codigo. Usando \[ ...\] es posible escribir dinamicamente el contenido del programa siendo compilado por ejemplo:

\[ printl( "printl( 'Hello world' )" ) \]


Aqui les muestro un ejemplo de la estructura del codigo en falcon, aqui creamos una clase base y da como resultados instancias:

base = bless([
"new" => function (prop)
return bless([
"class" => self,
"method" => self["method"],
"property" => prop
]);
end ,
"method" => function (); > "Hello from ", self.property; end
])
inst = base.new( "me" )
inst.method()
// outputs
Hello from me

Aqui les dejo el link de un manual que esta en la pagina oficial del Falcon:
Guia del Falcon



*NOTA: Toda la informacion que encontre se encontraba en ingles y los puntos mas relevantes los traduje por mi cuenta. Al igual que la guia se encuentra en ingles, si tienen alguna duda o algo pueden comentar en mi blog y con gusto tratare de traducirlo o podriamos ponernos de acuerdo para buscar mas informacion =)

Aqui les dejo la pagina oficial del Falcon


Powered by Falcon

miércoles, 11 de agosto de 2010

Tarea#1

Hola Dra Sara y compañeros de clase. Aqui les muestro lo que es mi mapa conceptual de lo que entendi de la primera clase de lenguajes de programacion.

Como podran ver esta algo resumido ya que intente solo poner la informacion mas relevante y de la manera mejor resumida.


Los lenguajes de programacion se utilizan para expresar instrucciones o pasos que una maquina puede obedecer.

Lo que entendi fue que los lenguajes de programacion deben siempre ser sencillos expresivos,claros, baratos(en tiempo y costo) entre otras cosas.
Tambien que dos de sus fundamentos son la Sintaxis y la Semántica.
La sintaxis es como se escriben las expresiones de un lenguaje en si es su construccion, mientras que la semántica es la interpretacion del significado de alguna expresion.

En los lenguajes vi la relacion del hardware con el sistema operativo, el sistema operativo sirve como interfaz entre el hardware y los programas, que a la vez, estos son utilizados por algun usuario.

Para ser un poco mas especificos, los programas necesitan de una validacion(Pasos).
Esta validacion es verificar que el programa cumple con las especificaciones que el usuario requiere.
Los pasos para una validacion son:
*Depuracion
*Pruebas
*Verificacion

En el mapa tambien aparece lo que son los paradigmas, estos son los diferentes enfoques que puede tener un lenguaje de programacion, por ejemplo:

El imperativo: Este es el que lleva una secuencia de instrucciones para que una maquina pueda realizar una tarea o u operacion, es el mas comun. Ej: C, Basic.

Funcional: Es caracterizado porque se declaran funciones y no variables, no tiene construcciones estructuradas como la iteracion y debido a eso, es muy frecuenta la recursividad. Ej ML, Haskell

Logico: Este es a base de proposiciones y consecuencias, no nos indica el como hacer algo si no mas bien que hacer. Ej: PROLOG

Orientado a objetos: Se encapsulan operaciones a objetos (instancias) y se utiliza para diversas aplicaciones. Ej C#, Phyton, Java

Cada enfoque tiene sus propias caracteristicas y como vimos en clase no es que uno sea mejor que el otro si no se debe aprender cuando utilizar cada enfoque.

Bueno esto es mas o menos una explicacion de mi mapa conceptual, cualquier sugerencia o comentario no duden en dejar un post. Espero les haya podido ser claro...

Saludos.