Mostrando entradas con la etiqueta Laboratorio de lenguajes de programacion. Mostrar todas las entradas
Mostrando entradas con la etiqueta Laboratorio de lenguajes de programacion. Mostrar todas las entradas

domingo, 21 de noviembre de 2010

Lab de lenguajes de progra (Dr.Elisa)

PROGRAMA EN JAVA

Hola,

Aqui les dejo un programita en JAVA, el cual te dice si esta acreditado, no acreditado, si eres regular, competente o muy competente de acuerdo al promedio que tu tienes.


CODIGO:


import java.util.Scanner;
public class Status {
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
                int i;
double prom;
                for(i=1;i<=100;i++){
System.out.println("Tecla tu promedio final");
prom = leer.nextInt();
if (prom<70)
System.out.println("Tu Status Es NO Acreditado\n");
else
if (prom>=70 && prom<80)
System.out.println("Tu Status es Regular\n");
else
if (prom<90)
System.out.println("Tu Status es Competente\n");
else
System.out.println("Tu status es Muy Competente\n");
}}

}




Saludos a todos,

=)



Lab de lenguajes de progra (Dr.Elisa)

Mysql


El objetivo es el uso del programa cliente mysql para crear y usar una sencilla base de datos.
Mysql (algunas veces referido como "monitor mysql") es un programa interactivo que permite conectarnos a un servidor MySQL, ejecutar algunas consultas, y ver los resultados. mysql puede ser usado también en modo batch: es decir, se pueden colocar toda una serie de consultas en un archivo, y posteriormente decirle a mysql que ejecute dichas consultas.

Se tiene que tener instalado Mysql y un servidor Mysql para el cual podamos conectarnos

Aquí les dejo un tutorial basico de MySQL que encontré.

TUTORIAL DE MySQL:

http://www.calitae.com/manuales/tutorial-mysql.pdf

Saludos a todos

=)

Lab de lenguajes de progra (Dr.Elisa)

Hola,

Aqui les dejo un tutorial que encontre en internet de Python,
espero y le entiendan

TUTORIAL DE PYTHON:

http://lateral.netmanagers.com.ar/static/tutorial-7.pdf

Saludos a todos.

:)

Lab de lenguajes de progra (Dr.Elisa)

Hola,
Aqui les dejo un tutorial de Smalltalk espero y les sirva

TUTORIAL DE SMALLTALK:

http://aebcweb.iespana.es/poo/pub2/smalltalk.pdf

Saludos =)

Lab de lenguajes de progra (Dr.Elisa)

Hola,
aqui les dejo un tutorial del lenguaje Ada el cual es un lenguaje orientado a objetos:

TUTORIAL DE ADA 95:

http://www.gedlc.ulpgc.es/docencia/mp_i/GuiaAda/

Saludos a todos =9

Lab de lenguajes de progra (Dr.Elisa)

Hola,

Aqui les dejo un tutorial de Pascal que encontre en la Web,

espero y les sirva, esta muy completo

TUTORIAL DE PASCAL:

http://www.aprendeaprogramar.com/course/view.php?id=7

Al final del tutorial o curso hay una serie de ejercicios propuestos, los cuales sirven de practica
Saludos a todos,

Atte: Jesus Alejandro Beltran Reyna

Lab de lenguajes de progra (Dr.Elisa)

Hola a todos, aqui les dejo unos tutoriales del lenguaje R

TUTORIALES DE R

http://www.math.uzh.ch/?file&key1=12836&no_cache=1

http://cran.r-project.org/doc/contrib/rdebuts_es.pdf


Saludos a todos, espero y les sirvan
atte: Jesus Alejandro Beltran Reyna

sábado, 20 de noviembre de 2010

Lab de lenguajes de progra (Dr.Elisa)

APPLET

Hola a todos,
Aqui les dejo un aplett sencillo el cual te imprime el mensaje que contiene:


import java.applet.Applet;
import java.awt.*;
public class ejemplo extends Applet
{
public void init()
       {
       setBackground(Color.orange);
       }
private static final long serialVersionUID = 1L;

private String msg="Lab de Lenguajes de programacion";

public void paint(Graphics g)
      {
      Font oldFont = getFont();
      Font fuente = new Font("", Font.BOLD, 36);
      g.setFont(fuente);
      g.setColor(Color.black);
      g.drawString(msg, 235, 250);
      }
}





Aquí otro applet en el cual te pide que ingrese el precio de un producto, te realiza el descuento y te arroja el precio a pagar ya con el descuento hecho:

import java.awt.*; 
import java.applet.*; 
import java.awt.event.*;
public class applett extends Applet implements ActionListener {  
public void init()
      {
setBackground(Color.orange);
      }
private static final long serialVersionUID = 1L;
Label h, pre, des;   
TextField precio, descuento;  
Button cal;    
      public applett() {  
setBackground(Color.orange);
Font oldFont = getFont();
Font fuente = new Font("", Font.BOLD, 12);
       setFont(fuente);
       h = new Label("HOLA BIENVENIDO, Porfavor: ");
       pre = new Label("Ingrese el precio del producto"); 
precio = new TextField(10);      
cal = new Button("Calcular Descuento");      
des = new Label("Precio a pagar");    
descuento = new TextField(9);      
add(h);
add(pre); 
add(precio);            
add(cal);            
add(des);     
add(descuento);      
cal. addActionListener(this);    
public void actionPerformed(ActionEvent ae) { 
int valor = Integer.parseInt(precio.getText());
float resultado1, resultado2,resultado3,resultado4;
       if (valor > 500 && valor <= 5000) 
         {        
resultado1 = valor - ((valor * 20)/100);
        descuento.setText(""+resultado1); 
         }   
if (valor > 5000 && valor <= 15000)      
{        
resultado2 = valor - ((valor * 30)/100); 
        descuento.setText(""+resultado2);
}            
if (valor > 15000 && valor <=20000) 
{         
resultado3 = valor - ((valor * 40)/100);  
descuento.setText(""+resultado3);
         }
if (valor > 20000 && valor <= 30000)
        {
resultado4 = valor - ((valor * 50)/100);
descuento.setText(""+resultado4);
}     
}}






Eso es todo espero y les hayan servido de algo,
saludos a todos
=)

Atte: Jesus Alejandro Beltran Reyna


viernes, 19 de noviembre de 2010

Lab de lenguajes de progra (Dr.Elisa)



PROGRAMA EN C




Hola a todos aquí les dejo un programa en c el cual te pide las calificaciones de 10 alumnos con 6 materias y te los ordena por el método burbuja.


#include < stdio.h >
#include < stdlib.h >

void LEER_DATOS();
void INCISO_A();
void INCISO_B();

int I, J,ALUMNOS,MATERIAS,TEMP;
float PROMEDIO[10],SUMA,CAL[10][10];

int main()
{
  system("cls");
   LEER_DATOS();
   INCISO_A();
   INCISO_B();
}

void LEER_DATOS()
{
  system("cls");
  MATERIAS=6;
  ALUMNOS=10;
  for(I=1;I<=ALUMNOS;I++)
  {
     system("cls");
     printf("*PROMEDIO DE 10 ALUMNOS CON 6 MATERIAS Y ORDENADOS POR EL METODO BURBUJA*\n");
     printf("\nALUMNO # %d \n",I);
     for(J=1;J<=MATERIAS;J++)
     {
        do
        {  printf("DAME LA CALIFICACION DE LA MATERIA %d= ",J);
           scanf("%f",&CAL[I][J]);
  if(CAL[I][J]<0 || CAL[I][J]>100)
  {
     printf("\nCALIFICACION INVALIDA");
     printf("\nFAVOR DE INSERTAR OTRO NUMERO\n");
  }
   }while(CAL[I][J]<0 || CAL[I][J]>100);
     }
  }
  printf("\n\t\tPULSE CUALQUIER TECLA PARA CONTINUAR");
  getche();
  return;
}

void INCISO_A()
{
   system("cls");
   for(I=1;I<=ALUMNOS;I++)
   {
     SUMA=0;
     for(J=1;J<=MATERIAS;J++)
     {
SUMA=SUMA+CAL[I][J];
     }
     PROMEDIO[I]=SUMA/MATERIAS;
   }
   printf("\t*PROMEDIO DE 10 ALUMNOS Y ORDENADOS POR EL METODO BURBUJA* \n");
   printf("\nPROMEDIOS POR ALUMNO\n\n");
   for(J=1;J<=MATERIAS;J++)
   {
      printf("   MAT%d ",J);
   }
   printf("     PROMEDIO\n");
   for(I=1;I<=ALUMNOS;I++)
   {
     for(J=1;J<=MATERIAS;J++)
     {
     printf("    %.0f  ",CAL[I][J]);
}
  printf("   ALUMNO #%d= %5.2f\n",I,PROMEDIO[I]);
  }
  printf("\n\t\tPULSE CUALQUIER TECLA PARA CONTINUAR");
  getche();
  return;
}

void INCISO_B()
{
system("cls");
printf("\t*DETERMINA EL PROMEDIO DE 30 ALUMNOS Y ORDENARLOS POR EL METODO BURBUJA* \n");
for(I=1;I<=ALUMNOS-1;I++)
{
for(J=1;J<=ALUMNOS-1;J++)
{
if(PROMEDIO[J]>PROMEDIO[J+1])
{
TEMP=PROMEDIO[J];
PROMEDIO[J]=PROMEDIO[J+1];
PROMEDIO[J+1]=TEMP;
}
}
}
printf("\nLOS PRIMEROS 5 MEJORES: \n");
J=0;
for(I=ALUMNOS;I>=1;I--)
{
J++;
if(J<=5)
{
printf("\n LUGAR #%d CON= %5.2f",J,PROMEDIO[I]);
}
}
printf("\n\n\tPULSE CUALQUIER TECLA PARA REGRESAR A LA PANTALLA DE EDICION");
getche();
return;
}


Esta imagen muestra nada mas las calificaciones de las 6 materias del primer alumno:




Este es el resultado que muestra al ingresar las calificaciónes de cada alumno de las 6 materias y el promedio obtenido en cada uno de ellos:


Esta imagen muestra los primeros 5 lugares de los 10 alumnos:





SALUDOS A TODOS,

Atte: Jesus Alejandro Beltran Reyna

miércoles, 17 de noviembre de 2010

Lab de lenguajes de progra (Dr.Elisa)

 FORTRAN



El FORTRAN (FORmula TRANslator) es un lenguaje de programación muy potente. Es el primer lenguaje científico, siendo desarrollado a últimos de la década de los 50, pero es aún ampliamente utilizado en aplicaciones científicas y de ingeniería. La última versión de FORTRAN actualmente es la version FORTRAN 90, que reemplazó a la versión FORTRAN 77 a comienzos de la década de los 90. El FORTRAN 90 incorporá nuevas estructuras y características en su sintaxis, si bien aún es compatible con la anterior versión. 



Ventajas

- Es un lenguaje muy simple

- Es fácil de aprender
- Se diseñó para trabajar con expresiones matemáticas y Matrices
- Es todavía uno de los lenguajes más usados para cálculo numérico
- Existen cientos de librerías probadas y eficientes
- Los compiladores tienen más de 50 años de experiencia para optimizar el tiempo de cálculo de los do-loops

Desventajas

No existen clases o estructuras
-  No se puede hacer una reserva de memoria dinámica
- Es un lenguaje primitivo para proceso de textos, listas y estructuras de datos más  complejas
- Puede haber mayor dificultad en el rastreo de la lógica de un programa en el código Fortran que en algunos otros lenguajes de alto nivel


Un programa en FORTRAN tiene los siguientes elementos básicos:


Nombre del programa. El nombre del programa es en realidad opcional, pero es muy buena idea tenerlo.
Declaraciones de variables utilizadas en el programa.
Cuerpo del programa.
Comandos a ejecutar en el codigo.
Los comandos se ejecutan en orden de aparición.
El programa siempre debe terminar con el comando END.
Subprogramas. El cuerpo del programa puede llamar a subprogramas que realicen tareas especificas.
Es buena practica de programación separar un programa en bloques y poner cada bloque en diferentes subprogramas. De hecho, para programas largos es buena idea tener cada subprograma en archivos separados.

La estructura de un comando en FORTRAN 90 tiene las siguientes propiedades:

Los comandos se escriben en lineas de a lo mas 132 caracteres (aunque algunos compiladores aceptan lineas mas largas).
Espacios en blanco al principio de una linea se ignoran. Esto ayuda a mejorar visualmente la estructura del programa. Hay que recordar que no solo la m´aquina va a leer el programa, sino tambien seres humanos (por lo menos el autor), por lo que una estructura visualmente clara es importante.
Un signo & al final de una linea indica que el comando continua en la linea siguiente.
Todo lo que siga de un signo ! se considera un comentario y es ignorado por el compilador. Los comentarios son para las personas, no para la maquina. Hacen mas fácil de entender el programa para personas que no lo escribieron, y sirven incluso para que el autor sepa lo que hace el programa si lo vuelve a ver tiempo después.
Es posible poner varios comandos en una linea separandolos con punto y coma.

Importante: FORTRAN no distingue entre mayúsculas y minúsculas en un programa, también ignora mas de un espacio en blanco y lineas en blanco. Que se use es cuestión de estilo personal.

Ejemplos de programas sencillos:



PROGRAM “hola”.
        program hola
        ! Ahora vamos a saludar al mundo
        print *, ’hola mundo!’ ! Aqui es donde saludamos
        END program hola





PROGRAM EJEMPLO
      REAL A, B, C
      A=1
      B=A+1
      PRINT *, A,B
      C=A+B+1
      PRINT *,'C es igual a=',C
      END





**AQUÍ LES DEJO UN TUTORIAL DE FORTRAN EN DONDE VIENE MUY COMPLETO, ESPERO Y LO VEAN ES INTERESANTE.




***TUTORIAL***:


http://www.cesga.es/telecursos/F90/

Ojala y les sirva
Saludos a todos,


ATTE: JESUS ALEJANDRO BELTRAN REYNA


lunes, 15 de noviembre de 2010

Lab de lenguajes de progra (Dr.Elisa)

 Graficar Boxplot en R

Hola a todos,

Bueno aquí les dejo un ejemplo de como generar un histograma con su boxplot en R

Cree el siguiente histograma con los siguientes comando de R:


 right<-rexp(n=100, rate=1/50)
 left<-c((rnorm(100, mean=125, sd=35)), c(rep(180:200,5)))
 par(mfrow=c(2,2), mar=c(2,2,2,2))

 hist(left, freq=F, col="sienna4", main="DIST. LEFT")
 hist(right, freq=F, col="sienna4", main="DIST. RIGHT")

 boxplot(left, range=1.5, col="orange", horizontal=T)
 boxplot(right, range=1.5, col="orange", horizontal=T)

Al poner esto en la consola de R nos va a mostrar la gráfica creada por los valores que le dimos:










En el histograma llamado DIST. LEFT, ahi se ve que la mayor concentracion de datos esta hacia numeros mayores y es por eso que en el boxplot (la caja de abajo) se muestra que la media es menor que la mediana. La mediana es la raya negra dentro del boxplot.

En el histograma DIST. RIGHT, ahi la mediana es menor que la media, ya que los datos estan mas concentrados hacia los numeros menores como se ve en la imagen.

Para después crear un solo grafico que contenga las dos variables right y left, lo que hice fue agregarle las siguientes lineas :


colores<-c("orange", "orange")     *Cree un vector llamado colores, estos son los del boxplot
variables<-c("LEFT", "RIGHT")     *Vector llamado variable en cual contiene los nombres de cada boxplot
boxplot(left, right, col=colores,        *Se ponen las dos variables, en el color va el vector colores el cual
                                                          contiene nuestros colores
main="MI BOXPLOT",         * Aquí va el nombre del boxplot                  
ylab="NUMEROS",            *El nombre que va a llevar en la lateral en y
names=variables,        *Nombres en relación a cada boxplot
horizontal=F,               * Aquí le decimos que no se muestre la gráfica horizontal si no vertical
outline=T,                   
boxwax=0.2,                 *Ancho de las cajas
notch=T, range=1.5)    *Crea una cintura en relacion  a la mediana y el rango de los wiskess o al asi se

escribe: estos son los circulos pequeños en las orillas del boxplot





y nos mostrara la siguiente grafica:


Ahí se ve la cintura que le dimos ala mediana en cada uno de los boxplot


bueno eso es todo espero y le hayan entendido y les haya servido en algo
SALUDOS A TODOS,

ATTE: JESUS ALEJANDRO BELTRAN REYNA

Lab de lenguajes de progra (Dr.Elisa)

Lenguaje R (tutorial)

Hola a todos,

Aqui les dejo un tutorial de R en youtube en donde se muestra como manejarlo con bases de datos, matrices, graficas y operaciones con matrices. Esta muy padre veanlos.






























Bueno espero y les gusten los videos, estan muy bien ya que si aprendes.

SALUDOS
ATTE: JESUS ALEJANDRO BELTRAN REYNA

domingo, 7 de noviembre de 2010

Lab de lenguajes de progra (Dr.Elisa)

Programas en Java

Hola a todos aqui les dejo unos programas sencillos en java hechos en eclipse.


PROGRAMA QUE TE SACA LA RAIZ CUBICA DE UN NUMERO CUALQUIERA

import javax.swing.JOptionPane;

public class raiz {
/**
* @param args
*/
public static void main(String[ ] args) {
// TODO Auto-generated method stub
double numero, resultado;
numero = Integer.parseInt(JOptionPane.showInputDialog("Numero a sacar raíz cubica"));
resultado = Math.cbrt(numero);
JOptionPane.showMessageDialog(null, "La raíz cubica es " + resultado);
System.exit(0);

}
}














//////////////////////////////////////////////////////////////////////////////////////////////////////////////
PROGRAMA QUE TE CONVIERTE DE PULGADAS A METROS

import java.util.Scanner;

public class medida {
/**
* @param args
*/
public static void main(String[ ] args) {
// TODO Auto-generated method stub
Scanner leer = new Scanner(System.in);
int Pi;
double RES;
{
System.out.println( "Convertir de Pies a Metros" );
System.out.println( "Ingrese la cantidad en Pies" );
Pi = leer.nextInt();
RES = Pi * 0.3048;
System.out.println( "El resultado es: "+RES+" Metros" );
}
}
}





/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
PROGRAMA QUE TE DICE LA HORA Y LA FECHA DEL SISTEMA

import java.util.Date;

import java.io.*;
public class HoraSist
{
public static void main(String args[]) {
Date d=new Date();
System.out.println("Fecha: "+d.getDate()+"/"+(d.getMonth()+1)+"/"+(d.getYear()+1900));
System.out.println("Hora: "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds());
}
}





 Saludos a todos.

atte: JESUS ALEJANDRO BELTRAN REYNA




miércoles, 3 de noviembre de 2010

Lab de lenguajes de progra (Dr.Elisa)

Programas en c

Programa que te realiza una suma y te dice cuanto te tardas en ingresar los valores.

#include   < stdio.h >
#inlcude  < time.h >

int main(){
time_t start, end; //* declara variables de tipo tiempo
int x,y,sum;
double dif;

time(&start); //* toma el tiempo actual

printf("\n\n-Teclee el primer valor\n");
scanf("%d", &x);
printf("\n\n-Teclee el segundo valor\n");
scanf("%d", &y);


sum=x+y;


time(&end);
dif= difftime(end, start); //* saca la diferencia de ese rango de tiempo
printf("\n\n-Le ha tomado %.f segundos tecleear los valores\n\n", dif);
printf("\n\n-El resultado de la suma es: %d\n",sum);


getche();
return 0;
}



Programa que tira el dado 50 veces y te dice cuanto cayo el primer dado y el segundo y te da la suma de los dados en cada tiro y dice si quieres volver a tirar los dados otra vez.


#include < stdio.h >

#inlcude < time.h >
#include < math.h >

int main()
{
int DADO1[36000],DADO2[36000],SUMA[36000],INICIO,OPCION;
do
{
system("cls");
printf("%s%17s%17s%17s\n","TIRO","DADO 1","DADO 2","TOTAL");
do
{
for(INICIO=1;INICIO<=50;INICIO++)
{
DADO1[INICIO]=1+rand ()%6;
DADO2[INICIO]=1+rand ()%6;
SUMA[INICIO]=DADO1[INICIO]+DADO2[INICIO];
printf("%d%17d%17d%17d\n",INICIO,DADO1[INICIO],DADO2[INICIO],SUMA[INICIO]);
}

}
while(INICIO<=50);
printf("\n\nDESEA TIRAR DE NUEVO LOS DADOS= ");
printf("\nSI=1 ");
printf("\nNO=0 ");
scanf("%d",&OPCION);
}
while(OPCION==1);
getch();
return 0;
}




Programa que te muetra los cinco mayores valores de un arreglo de forma descendente.

#include < stdio.h >

#inlcude < math.h >

int main()
{
int n,i,j,A[50],TEMP;
//LLENA EL VECTOR
n=10;
for(i=1;i<=n;i++)
{
printf("Vector Numero %d ",i);
scanf("%d",&A[i]);
}
//REALIZA LA ORDENACION
for(i=1;i<=n-1;i++)
{
for(j=1;j<=n-1;j++)
{
if(A[j]>A[j+1])
{
TEMP= A[j];
A[j] = A[j+1];
A[j+1] = TEMP;
}
}
}
//IMPRIME LOS DATOS ORDENADOS
j=0;
printf("\ndecendente: ");
for(i=n;i>=1;i--){
j++;
if(j<=5)
{
printf(",%d",A[i]);
}
}
getch();
}


SALUDOS A TODOS
ATTE: JESUS ALEJANDRO BELTRAN REYNA


Lab de lenguajes de progra (Dr.Elisa)

Programas en Perl

Hola a todos, aqui les dejo unos programas en perl.

Programa que te pide tu nombre y un numero del 1 al 100, en donde la computadora arroja uno aleatoriamente y te dice si le atinaste o no.

#!/usr/bin/perl



print" ¿Cual es tu nombre?\n\n";


$nombre =<>;
chomp $nombre;


print "Hola! $nombre\n\n";


for($i=0;$i<=10;$i++){


print "Atinale al numero...\n\n";


$x= rand(100);


print" Ingresa un numero del 1 al 100\n\n";
$numero =<>;
chomp $numero;
if($numero==$x){
print"Bien le atinaste al numero\n\n\n";
}
if($numero<$x){
print" El numero es bajo\n";
}
if($numero>$x){
print" El numero es alto\n\n";
}
print" El numero real era: $x vuelve a intentarlo $nombre\n\n";

}
exit;




///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Programa que te realiza una suma, resta, multiplicacion y modulo.

#!/usr/bin/perl



print "De el valor de a = ";
$a = <>;
chomp $a;


print "De el valor de b = ";
$b = <>;
chomp $b;


$c = $a * $b;
$d = $a + $b;
$e = $a / $b;
$f = $a - $b;


print "$a * $b = $c\n";
print "$a + $b = $d\n";
print "$a % $b = $e\n";
print "$a - $b = $f\n";


exit;




///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Programa de arreglo

 
#!/usr/bin/perl



@numeros=(1, 2, 6, 5, 10);


print" Hola los elemntos son: \n\n";


print "@numeros\n\n";
print "@numeros[0]\n";
print "@numeros[1]\n";
print "@numeros[2]\n";

print "@numeros[3]\n";
print "@numeros[4]\n";
exit;



Aqui otro programita de un arreglo simple

#!/usr/bin/perl



@frutas=("manzana","pera","naranja","fresa");


print "Los elementos son: \n\n";


foreach $fruta (@frutas)
{
print $fruta."\n\n";
}
exit;


SALUDOS A TODOS

ATTE: JESUS ALEJANDRO BELTRAN REYNA

martes, 2 de noviembre de 2010

Lab de lenguajes de progra (Dr.Elisa)

Lenguaje PERL



Perl por sus siglas en ingles (Practical Extraction and Report Language) es un lenguaje de programación desarrollado por Larry Wall a partir otras herramientas de UNIX como son: ed,grep,awk,c-shell, para la administración de tareas propias de sistemas UNIX.

Es un lenguaje de programación muy utilizado para construir aplicaciones CGI para el web.

Es un lenguaje libre de uso, eso quiere decir que es gratuito. Antes estaba muy asociado a la plataforma Uníx, pero en la actualidad está disponible en otros sistemas operativos como Windows.

No es ni un compilador ni un interprete, esta en un punto intermedio, cuando mandamos a ejecutar un programa en Perl, se compila el código fuente a un código intermedio en memoria que se optimiza como si fuésemos a elaborar un programa ejecutable pero es ejecutado por un motor, como si se tratase de un interprete.



Variables y datos

En PERL no hay que declarar los tipos de las variables.

Van precedidas por unos caracteres especiales como: $,@,%, que ya indican su tipo.

Se distingue entre minúscula y mayúsculas, por tanto, $A y $a son distintas

Comienzan con el signo $y contienen datos de tipo escalar. Por escalar entendemos valores numéricos y/o alfanuméricos. Para la asignación se usa el signo igual (=) como en la mayoría de los lenguajes. En el caso de ser un valor alfanumérico (texto) este se escribe entres comillas. Al final de la asignación se debe escribir ";".

Ejemplos:

# se asignan textos

$animal="Gato";

# se asigna un valor númerico entero

$crias= 3;

# se asigna un valor númerico con decimales

$edad= 1.5;

# números octales y hexadecimales

$Octal=033;

$Hex=0x19;

Las variables pueden actuar como númericas o alfanuméricas, según el caso. El cambio se realiza en función del signo más (+) o el signo punto (.).

- Texto a número ( + ):

$A="12"; $B=3; o $A="12"; $B="3";

$C=$A +$B sería igual a $C=15.



Variables de matriz: arreglos

Comienzan con el signo @ y contienen una lista de valores escalares (números y/o textos). Al ser una lista de valores para acceder a cada de uno estos se utiliza un número que indica su posición dentro de la lista. La numeración empieza en 0, y se coloca entre corchetes [ ].

@mascota= (“perro”, “gato”, “león”);

@mascota[0] aquí seria perro



Entrada/Salida

Hasta ahora sólo hemos estudiado el tipo de variables. En este capítulo vamos a estudiar el modo de
capturar/mostrar esos valores a través del teclado/pantalla.

La instrucción básica para mostrar el valor de las variables en pantalla es print.

Primer programa en PERL:

print "Hola Perl";


Hola Perl.

Existen muchos modificadores para la salida de los valores de las variables.

Como los siguientes:

"\n" Salta a una nueva línea.

"\t" Tabulacíon.

"\r" Retorno de carro.

"\f" Nueva hoja (formfeed).

"\b" Espacio atrás (backspace).

"\e" Secuencia de ESCape.

"\u" Pasa a mayúscula el primer caracter de texto siguiente".

"\U" Pasa a mayúscula todo el texto siguiente".

"\l" Pasa a minúscula el primer caracter de texto siguiente".

"\L" Pasa a minúscula todo el texto siguiente.

"\E" Fin del efecto de los modificadores \U,\L.

"\a" Emite un pitido.

"\cC" Combinación de Control+Letra. En este caso Control-C .



Los operadores aritméticos:

print 5 + 5; Imprime el resultado de la Suma de 5 y 5.

print 10 - 3; Imprime el resultado de la Resta de 10 y 3.

print 7 * 5; Imprime el resultado de la Multiplicación de 7 por 5.



Estructuras de control

La mayoría de las estructuras de control en PERL, han sido heredadas del lenguaje C/C++, por tanto, para aquellos que conozcan este lenguaje será fácil adaptarse.

En el caso del if en PERL existen 2 variantes en las expresiones que usan en las condiciones de comparación:

Comparación numérica:

== SIGNIFICA igual que

!= SIGNIFICA distinto de

< SIGNIFICA menor que

> SIGNIFICA mayor que

>= SIGNIFICA mayor o igual que

<= SIGNIFICA menor o igual que


$nombre=”jesus”;
if($nombre==jesus)
{
print “Tu nombre es : “ , $nombre;
}


Comparación alfanumérica, literal o de textos.

- eq SIGNIFICA igual que

- ne SIGNIFICA distinto de

- lt SIGNIFICA menor que

- gt SIGNIFICA mayor que

- ge SIGNIFICA mayor o igual que

- le SIGNIFICA menor o igual que


$nombre=”jesus”;
if($nombre eq jesus)
{
print “Tu nombre es : “ , $nombre; }



Estructuras Repetitivas :

Hasta este momento sólo hemos empleado estructuras que permiten decidir si se realiza una u otra acción o varias acciones en función de las distintas posibilidades que permite la condición. En el caso de que queramos repetir una acción o grupo de acciones dependiendo de una condicion, podemos usar for....,foreach...y while. A estas se les llama bucles.



FOR

La instrucción for es la estructura repetitiva más se usada para crear bucles. Se basa en la repetición N veces, definidas por el programador, de una serie de acciones o instrucciones. Cuando la condición propuesta alcanza el máximo de veces definido, concluye esta repetición y sale del bucle.

for ($i=1; $i<=10; $i++)
{
}

Incremento de 1 en 1

$x=$x+1;

$x++;

$x+=1;


FOREACH

Esta instrucción se usa para recorrer los valores de las matrices. La expresión dentro del paréntesis (matriz) es evaluada para producir una lista con sus valores, que actúan como contadores del bucle, ejecutandose el bucle una vez por cada uno de estos elementos.

@nombres= ("Jesus","alejandro","beltran");
foreach $persona (@nombres)
{
print "$persona\n";
}


WHILE

Como indica su nombre, un bucle se repetirá mientras que se cumpla o deje de cumplirse una condición. La nomenclatura de esta estructura repetitiva es:

while (condición)
{
intrucciones...
}


Busquedas

Teniendo una cadena como "Hola Mundo", queremos comprobar si dentro de ella se encuentra la palabra "Mundo".

$cadena="Hola Mundo";
if ($cadena =~ /Mundo/)
{
print "Si existe la palabra”;
}



$cadena="Hola Mundo";

if ($cadena =~ /Universo/)
{
print "No existe la palabra”;
}



Lectura de ficheros

Una vez que ya tenemos los datos grabados, será necesario en más de una ocasión su actualización, por lo que tendremos que leerlos.

# Podemos usar el signo "<" o ninguno delante del fichero, para lectura

open (DATOS,"datos.txt");
#Añadimos cada línea de éste en la matriz.
@registros=;
# Se muestra los datos en pantalla
foreach $datos (@registros)
{
print $datos;
}
# Se cierra el fichero abierto
close (DATOS);


Subrutinas
PERL permite al programador definir sus propias funciones llamadas subrutinas. Se pueden colocar en cualquier lugar dentro de un programa, pero es aconsejable colocarlas todas al principio o final. Para llamar a un subrutina usamos el signo &.

# Inicio de programa con subrutina.
# Se declara la subrutina.
sub hola
{
print "Hola Mundo\n";
}
# Se llama a la subrutina.
&hola;


Retorno de valores

# Inicio del programa
# Declaración de la subrutina.

sub Suma
{
$Total=$_[0] + $_[1];
#$_[0]=9 y $_[1]=5
}
 # Llamada a la subrutina con 2 parámetros.
print &Suma (9,5);
La salida del programa será también: 14

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Bueno eso es todo espero y le entiendan

SALUDOS A TODOS
ATTE: JESUS ALEJANDRO BELTRAN REYNA



lunes, 1 de noviembre de 2010

Lab de lenguajes de progra (Dr.Elisa)

Programas en HASKELL

Hola a todos,

Aqui les dejo unos programas en el lenguaje haskell

Programa que te saca el cuadrado del numero:

Primero se creo un archivo en el cual se puso el siguiente (codigo).

cuadrado : : Integer -> Integer
cuadrado x = x * x
menor : : (Integer, Integer) -> Integer
menor (x,y) = if x <= y then x else y

Se guardo con la extesion .hs

Despues nos vamos a la consola de hugs ahi vamos a cargar el archivo creado,  vamos a la barra lateral de herramientas y seleccionamos el icono que dice:  load modules from specified file.

Ahi le damos click y seleccionamos el archivo y lo abrimos y nos debede aparecer como sigue:


La linea:  Prelude> :l "C:\\Users\\user\\Desktop\\cuadrados.hs" 
nos dice que se cargo sin errores




y para ver si funciona correctamente ponemos

Main>  cuadrado (5+5)

100

Main> cuadrado 8

64

Vemos que funcina correctamente:





Otro programa el cual saca el factorial de un numero:

Al igual que el otro se crea un archivo con la extension .hs

Se pone el siguiente codigo:

fact : : Int->Int

fact 0=1
fact n=n*fact(n-1)
 
Se guarda.
 
y hacemos lo mismo, lo cargamos y lo ejecutamos.
 
y lo checamos
 
Main> fact 5
120
 
Main> fact 6
720
 
Vemos que funciona correctamente:
 
 
 
Aqui otro programa,  este programa cuenta  el numero de digitos que introduces :
 
Codigo:

cont : : Int->Int

cont 0=0
cont n= 1+ cont (div n 10)
 
 
Este programa te cuenta en un rango del 1 al 10 ya que si introduces el 0 no lo va a contar porque lo esta descartando en el codigo.

Lo checamos.

Main> cont 1478522

7

Main> cont 012

2
 
 



Aqui les dejo donde descargar hugs:   http://cvs.haskell.org/Hugs/pages/downloading-Nov2003.htm


Bueno eso es todo,  espero y les haya servido
Saludos

ATTE: JESUS ALEJANRO BELTRAN REYNA