domingo, 14 de noviembre de 2010

Lenguajes imperativos-Reporte

Fortran
Es un lenguaje de alto nivel diseñado para uso general e imperativo, especialmente esta adaptado al calculo numérico y la programasen científica. La estructura del lenguaje es simple en general y cumple con eficiencia en su ejecución. En Fortran sólo se maneja un conjunto restringido de tipos de datos:cuatro tipos de datos numéricos(enteros, reales, complejos y reales de doble precisión), datos booleanos, arreglos y cadenas de caracteres y archivos. Sin embargo posee un conjunto extenso de operadores aritméticos y funciones matemáticas, lo que refleja la orientación del lenguaje hacia el computo científico e ingeniería.

Hice un programa que calcula las áreas de distintas figuras geométricas, lo que tiene de interesante mi programa es que utilice el SWITCH, para que el usuario pueda elegir que área obtener:

PROGRAM areas

REAL x, y, z, PI, area
INTEGER op
PI = 3.1416
PRINT*, 'ESCOGE EL AREA QUE QUIERAS CALCULAR'
PRINT*, '1 PARA TRAINGULO'
PRINT*, '2 PARA CUADRADO'
PRINT*, '3 PARA CIRCULO'
PRINT*, '4 PARA RECTANGULO'
PRINT*, '5 PARA ROMBO'
PRINT*, '6 PARA TRAPECIO'
PRINT*, '7 PARA PENTAGONO'

READ(*,*) op

SELECT CASE(op)

CASE(1)
PRINT*, 'Escribe el valor de la base : '
READ(*,*) x
PRINT*, 'Escribe el valor de la altura : '
READ(*,*) y
area = (x * y)/2
WRITE(*,*) 'Area triangulo: ', area

CASE(2)
PRINT*, 'Dame el el valor del lado : '
READ(*,*) x
area = x * x
WRITE(*,*) 'Area cuadrado: ', area

CASE(3)
PRINT*, 'Escribe el valor del radio'
READ(*,*) x
area = 2 * PI * X
WRITE(*,*) 'Area circulo: ', area

CASE(4)
PRINT*, 'La base es : '
READ(*,*) x
PRINT*, 'La altura es : '
READ(*,*) y
area = x*y
WRITE(*,*) 'Area rectangulo: ', area

CASE(5)
PRINT*, 'Dame el el valor de la diagonal menor: '
READ(*,*) x
PRINT*, 'Dame el valor de la diagonal mayor: '
READ(*,*) y
area = (x * y)/2
WRITE(*,*) 'Area rombo: ', area

CASE(6)
PRINT*, 'Escribe el valor de la base menor'
READ(*,*) x
PRINT*, 'Escribe el valor de la base mayor'
READ(*,*) y
PRINT*, 'Escribe el valor de la altura'
READ(*,*) z
area = x * y * z
WRITE(*,*) 'Area trapecio: ', area

CASE(7)
PRINT*, 'Los lados miden : '
READ(*,*) x
PRINT*, 'El apotema mide: '
READ(*,*) y
area = (x * y)/2
WRITE(*,*) 'Area pentagono: ', area

END SELECT
STOP
END


Ejecución:


Pascal
Pascal fué creado para superar las deficiencias del lenguaje Algol, y lleva ese nombre en honor al matemático Blaise Pascal quien desarrollo una calculadora digital en 1942, el lenguaje C es quien viene a sustituir a Pascal como lenguaje académico inicial de programación.
Para pascal hice un programa que calcula distintas temperaturas, segun el usuario eliga, espero les guste:


PROGRAM temperaturas;
VAR FAR, KEL, CENT : Real;
var opcion : Char;
BEGIN
Writeln('');
Writeln('********** Temperaturas **********');
Writeln('a. Farenheits a centigrados');
Writeln('b. centigrados a fahrenheits');
Writeln('c. centigrados a kelvin');
Writeln('d. kelvin a centigrados');

Write('Selecciona una opcion ===>> ');
READLN (opcion);
Case opcion of
'a' : begin
Write('Escribe la temperarura fahrenheit ');
Readln(FAR);
Writeln('');
CENT := 5*((FAR-32)/9);
Writeln('Su equivalente en centigrados es ', CENT);
end;
'b' : begin
Write('Escribe la temperatura en centigrados ');
Readln(CENT);
FAR := ((9/5)*CENT)+32;
Writeln('Su equivalente en fahrenheit es ', FAR);
end;
'c' : begin
Write('Escribe la temperatura en centigrados ');
Readln(CENT);
KEL := CENT+273;
Writeln('Su equivalente en kelvin es ', KEL);
end;
'd' : begin
Write('Escribe la temperatura en kelvins ');
Readln(KEL);
CENT := KEL-273;
Writeln('Su equivalente en centigrados es ', CENT);
end;
end;
End.

Ejecución:


Basic
Este lenguaje fué creado con el propósito de dejar que los estudiantes escribieran programas usando terminales de un computador en tiempo compartido, fue pensado para reducir la complejidad de los lenguajes del momento.
Basic esta basado en parte en Fortran y en Algol60. En este lenguaje hice dos programas uno que me dice la serie de fibonacci y otro que calcula la potencia de un número.
Fibonacci

'' Fibonacci
DIM x AS DOUBLE
DIM y AS DOUBLE
DIM z AS DOUBLE
y = 1
FOR x = 1 to 500
z = x + y
x = y
y = z
PRINT z + 1
NEXT x
END

Ejecución:



Potencia

'' Potencia iterativa
DIM x AS DOUBLE
DIM y AS DOUBLE
DIM z AS DOUBLE
DIM result AS DOUBLE
INPUT "Dame el numero que quieres elevar -> ", x
INPUT "Escribe a que potencia -> ", y
result=1
FOR z = 1 to y
result = result * x
NEXT z

PRINT result
END

Ejecución:


C
Y por último en C, este lenguaje que fué desarrollado por programadores y para programadores, sin embargo tiene una popularidad enorme y acutualmente además de ser usado para lo que fue creado "implementación en sistemas operativos" también tiene otros usos muy alejado del propósito original.
En este lenguaje desarrolle un programa sencillo, pero a la vez se demuestran estructuras muy propias del lenguaje C, mi programa me muestro los 100 primeros números primos, aquí les dejo el código:

#include <stdio.h>
#define MAX 100
int esprimo(int numero) {
int i;
for(i=2;i<numero;i++) {
if(numero % i == 0) {
return 0;
}
}
return 1;
}

int main(int argc, char** args) {
int primos[MAX], i = 2, k = 0;
while(k<MAX) {
if(esprimo(i) == 1) {
primos[k] = i;
k = k + 1;
}
i = i + 1;
}
printf("\n\n\t\tLos primeros %d numeros primos son:\n\n", MAX);
for(i=0;i<MAX;i++) {
printf("%d\t", primos[i]);
}
return 0;
}

Ejecución:


Referencias:

3 comentarios:

  1. Hola compañera, los programas que hiciste se me hacen muy entendibles en cada lenguaje y son buenos ejemplos, en el fortran utilizaste las dos formas de mostrar un mensaje :) , yo queria poner el print pero no me salia, mejor utilice el write , pero ya vi porque no me salia, era porque tenias que poner PRINT*, 'Mensaje', y yo pensaba que era como con WRITE que utilizabas (*,*), pero bueno, mejor me quedé con WRITE , por cierto noté que la sintaxis es muy parecida en los 4 lenguajes , el pascal usa el ; igual que en C , ademas usan datos como REAL en fortran y pascal además de haber "switch" en ambos, es interesante la relación que hay entre cada uno de ellos.

    Bueno eso ultimo son observaciones mias, y pues Buena entrada la que publicaste. :D

    ResponderEliminar
  2. si es muy parecido aunque es interesante como cada vez se nos ha ido facilitando más usar diferentes lenguajes de programación, acomparación con como entramos(en conocimientos) y ahora, como dice la doctora hemos ido llenando nuestro CV, con todos estos lenguajes

    ResponderEliminar