lunes, 22 de noviembre de 2010

Reporte video (continuacion al de Eduardo Leal)

Bueno de nuestro video este es el codigo que varias personas nos sugirieron publicarlo:
#include
#include
#define FALSE -1
#define TRUE 1
void cabecera(void);

void cabecera(void) {
int i; //local mientras se ejecuta la fun cabecera(no se contrapone con la otra i)
system("cls"); //ordena al SO que limpie la pantalla
printf(""); //que imprima el pipe
for(i=0;i<33;i++) un =" }" i="0;i<33;i++)"> -1) {
return FALSE;
}
return TRUE;
}
int menu(void) {
int op; //declara la variable op como entera
printf("\n"); //imprime mensaje
printf("\t1.- Push un dato\n");
printf("\t2.- Pop un dato\n");
printf("\t3.- stacktop\n");
printf("\t4.- Empty\n");
printf("\t5.- Imprime\n");
printf("\t6.- Operador\n");
printf("\t7.- Salida\n\n");
printf(" Selecciona la opcion -> ");
scanf("%d", &op); //recibe la opcion por el teclada y lo guarda en la variable local OP
return(op); // regresa el valor de OP en donde fue llamada
} //termina funcion



int main(void) {
char operador;
int opcion = 0, temp, i, otratemp[2];
int pila[15], tope = -1;
while(opcion < opcion =" menu();"> "); //imprime
scanf("%d", &temp); //guarda en temp
tope = tope + 1; //incrementa
pila[tope] = temp; //que guarde el dato que teclearon en el arreglo
break; //saltar hasta terminar el bloque de instrucciones
}//termina la opcion 1

case 2: {
cabecera();
if(empty(tope) == FALSE) {
printf("Elemento retirado es %d \n\n", pila[tope]);
tope = tope -1;
} else {
printf("ERROR, pila vacia\n\n");
}
system("pause");
break;
}
case 3: {
cabecera();
if(empty(tope) == FALSE) {
printf("Elemento stacktop es %d \n\n", pila[tope]);

} else {
printf("ERROR, pila vacia\n\n");
}
system("pause");
break;
}

case 4: {
cabecera();
if(empty(tope) == TRUE) {
printf("la pila esta vacia\n\n");
system("pause");
} //termina el verdadero IF
else{
printf("la pila NO esta vacia\n\n");
system("pause");
} //termina el falso del IF
break;
} //termina la opcion 4
case 5: {
cabecera();
for(i=tope;i>-1;i--) {
printf("\t\t[%d]\n", pila[i]);
} //termina la opcion 5
system ("pause");
break;
}
case 6: {
system("cls");
printf("Que operacion hay que realizar ->");
operador = getchar();
switch(operador) {
case '*': {
if(empty(tope) == FALSE) {
otratemp[0]= pila[ tope -1];
tope = tope-1;
pila[tope + 1] = otratemp[0] * otratemp[1];
break;
}
else { // error

printf("ERROR, pila vacia\n\n");
}
}
}


}
}


}
getchar();
return 0;
}


Si encuentran algun error, duda o sugerencia por favor dejenla aqui o ya sea en nuestro video la direccion es:
http://www.youtube.com/watch?v=RDJ7OvYeTKM

miércoles, 17 de noviembre de 2010

Reporte 8 Lenguaje de multiparadigmas

Go
Go es un lenguaje de programación concurrente y compilado inspirado en la sintaxis de C. Ha sido desarrollado por Google y sus diseñadores iniciales son Robert Griesemer, Rob Pike y Ken Thompson. Actualmente sólo está disponible para los sistemas operativos GNU/Linux y Mac OS X

Programa:
package main

import fmt "fmt" // Package implementing formatted I/O.

func main() {
fmt.Printf("Hello, world; or Καλημέρα κόσμε; or こんにちは 世界\n")
}
Tutorial:
http://golang.org/doc/go_tutorial.html

Reporte 7 Lenguaje Orientado a objetos

Java

La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación.
Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña base que permita soltarnos un poco con este tipo de programación.

Pensar en términos de objetos es muy parecido a cómo lo haríamos en la vida real. Por ejemplo vamos a pensar en un coche para tratar de modelizarlo en un esquema de POO. Diríamos que el coche es el elemento principal que tiene una serie de características, como podrían ser el color, el modelo o la marca. Además tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha, parar o aparcar.

Pues en un esquema POO el coche sería el objeto, las propiedades serían las características como el color o el modelo y los métodos serían las funcionalidades asociadas como ponerse en marcha o parar.

Estos objetos se podrán utilizar en los programas, por ejemplo en un programa de matemáticas harás uso de objetos fracción y en un programa que gestione un taller de coches utilizarás objetos coche. Los programas Orientados a objetos utilizan muchos objetos para realizar las acciones que se desean realizar y ellos mismos también son objetos. Es decir, el taller de coches será un objeto que utilizará objetos coche, herramienta, mecánico, recambios, etc.

Java es un lenguaje de programación orientado a objetos, desarrollado por Sun Microsystems a principios de los años 90. El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros o memoria.

Las aplicaciones Java están típicamente compiladas en un bytecode, aunque la compilación en código máquina nativo también es posible. En el tiempo de ejecución, el bytecode es normalmente interpretado o compilado a código nativo para la ejecución, aunque la ejecución directa por hardware del bytecode por un procesador Java también es posible.

mi Programa:
import java.util.*;
public class Fibonacci
{
public static void main(String args[])
{
int x=0;
int y=1;
int z=0;
int num;
Scanner scan= new Scanner(System.in);
System.out.print("Numero a que llega la serie: ");
num=scan.nextInt();
System.out.print("0 ");
for (int i =1;i{
x=y;
y=z;
z=x+y;
System.out.printf("%d ",z);
}
}
}

C++



C++ es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido.

Posteriormente se añadieron facilidades de programación genérica, que se sumó a los otros dos paradigmas que ya estaban admitidos (programación estructurada y la programación orientada a objetos). Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma.

Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes, tales como ROOT.

Una particularidad del C++ es la posibilidad de redefinir los operadores (sobrecarga de operadores), y de poder crear nuevos tipos que se comporten como tipos fundamentales.

Programa:




Bueno estos son mis programas Orientados en objetos tube unos peqeños inconvenientes por decir que en mi programa java no me deja la imagen no se porque no se puede, y con el c++ no se podia subir el codigo Espero haber cumplido con el reporte

Tutoriales: http://www.youtube.com/watch?v=Y5QI2IAoIjw
http://www.youtube.com/watch?v=T8VWOvcgNw0
son muy buenos de ahi me guie(:

miércoles, 10 de noviembre de 2010

Reporte 6

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).

Programa en Pascal


Codigo para calcular el area del cuadrado
























Programa en Fortran






program suma

!dikvseis
implicit none
real::a,b,c,d, e
!integer::1

!ekfraseis
!+*

a=5
print*, "a",a
b=a*5
print*, "b",b
c=b+5
print*, "c",c
d=a+b
print*, "d",d
e= a*b+c*d
print*, "e",e

end program

Programa en c


#include

int main()
{
int i=1,n;

do{

printf("Ingrese el numero que desea desplegar su tabla de multiplicar: ");
scanf("%d", &n);
printf("%dx%d=%d", n,i,(n*i));

}while (n==-1);
for(i=2;i<=10;i++){ printf("\n%dx%d=%d", n,i,(n*i)); } getche(); }

Programa en Perl



#!/usr/bin/perl
#
# Fraga 23/03/1999
#
if ( $#ARGV == 0 ) {
die "Args: a b\n";
}
elsif ( $#ARGV == 1 ) {
$a = $ARGV[0];
$b = $ARGV[1];
}
else {
print "De el valor de a = ";
$a = ; chop $a;
print "De el valor de b = ";
$b = ; chop $b;
}
$c = $a + $b;
print "$a + $b = $c\n";

Su logica es simple: si se da un solo argumento,
$#ARGV == 0, el programa termina.
Si se dan dos argumentos al programa,
$#ARGV == 1, estos son numeros que se van a
sumar. Y si no se dan argumentos se pregunta por
cada numero. Al final imprime los dos numeros y su suma.



Bueno estos son mis cuatro programas en lenguajes imperativos, No se me complico mucho, puesto que el fortran y el turbo son realmente parecidos al c y ya con eso la verdad es un poco menos el peso de la programa. ¿Con que batalle? Buscando compiladores qe funcionaran y se instalaran bien. Pero entonces recorde la investigacion que hicimos del reporte 2 y cheque y todas las referencias me sirvieron

El Prolog (o PROLOG), proveniente del francés PROgrammation en LOGique, es un lenguaje de programación lógico e interpretado, bastante conocido en el medio de investigación en Inteligencia Artificial.




problema en prolog






Bueno mi problema esta sencillo, trata sobre la pocision de la vocal por decir le preguntas que si la a es la tercera pues te sale que no y si le pones que si la a es la primera pues te dice qe si. Es un programa sencillo pero qe funciona






predicates
vocal_posicion(char,integer)

clauses
vocal_posicion('a',1).
vocal_posicion('e',2).
vocal_posicion('i',3).
vocal_posicion('o',4).
vocal_posicion('u',5).

Goal:
vocal_posicion('e',2).
Responde: Yes
vocal_posicion('o',3).
Responde: Yes
vocal_posicion('i',1).
Responde: No

lunes, 18 de octubre de 2010

cuarto reporte

Programas en Dr scheme

Scheme es un lenguaje de programación funcional y un dialecto de Lisp.
Fue desarrollado por Guy L. Steele y Gerald Jay Sussmas en la decada de los setenta e introducido al muno academico atraves de una serie de articulos conocidos como los Lamda Paper de Sussman y Steele.
Tiene una sintaxis muy reducida, comparado con muchos otros lenguajes. No necesita reglas de precedencia, ya que en esencia, carece de operadores: usa una notacion prefija para todas las llamada a funcion.
Facilita la programacion funcional. La programacion funcional puro no precisa de variables globales ni sufre de efectos secundarios y es por tanto automaticamente segura en presencia de procesis concurrentes.


#lang scheme
(define (bar vara varb varc)(* (+ vara varb) varc) )
_____________________________________________________

Welcome to DrScheme, version 4.1.3 [3m].
Language: Module; memory limit: 128 megabytes.
> (bar 1 1 1)
2
> (bar 4 4 8)
64






Es un programa sencillo pero que funciona. Primero de claramos una funcion creo, luego definimos sus variables yo las llame vara varb varc despues corrie el programa y para mandar llamara a la funcion solo escribí


(bar numero numero numero) y el programa calculaba el resultado de la suma que en si misma traia una multiplicacion




















Mi siguiente programa es este:
#lang scheme
(define (count-down num)
(cond [(zero? num) 'Done]
(else (count-down ( - num 1)))))
__________________________________________________________
Welcome to DrScheme, version 4.1.3 [3m].
Language: Module; memory limit: 256 megabytes.
> (count-down 5)
Done
>


Este es un programa de recursion dond creo una funcion que se va a qitar uno si es diferente a cero i al llegar a cero imprimira en la pantalla done


Bueno estos son mis primeros dos prgramas con Drscheme. La verdad es qe si batalle pues primero me meti a unos tutoriales donde los ejemplos en vez de empezar por lo sencillo empezaban luego luego a lo dificil y la verdad es que el lenguaje no esta tan complicado una vez ue le encuentras el hilo a la redaccion



Programa en Lisp
El nombre LISP deriva del "LISt Processing" (Proceso de LIStas). Las listas encadenadas son una de las estructuras de datos importantes del Lisp, y el código fuente del Lisp en sí mismo está compuesto de listas. Como resultado, los programas de Lisp pueden manipular el código fuente como una estructura de datos, dando lugar a los macro sistemas que permiten a los programadores crear una nueva sintaxis de lenguajes de programación de dominio específico empotrados en el Lisp.


mi programa es un factorial


(defun factorial (n) (if (* n 0= 1 (* n (factorial (- n 1 )))))

La verdad es que el lenguaje lisp se me hizo todavia mas sencillo que el Dr scheme