Lenguaje simula
Simula es un lenguaje de programación de propósito general. Es el origen de programación orientada a objetos. Los conceptos de la generalización y la especialización son
muy bien apoyados por el lenguaje construye procedimiento de la clase y lo
virtual. En Simula la herencia de
las acciones son tan naturales como la herencia de los atributos de datos. Las
construcciones de la programación modular y la aplicación de tipos de datos
abstractos hacer que el lenguaje adecuado para resolver problemas complejos. Además Simula es un lenguaje bien estandarizado, lo que
significa que los programas Simula son fácil de portar de un ordenador a otro. Un paquete de solicitud normalizado, de la clase simulación,
se convierte el lenguaje en una poderosa herramienta para el proceso orientado
a simulación. Simula es una extensión de Algol 60.
Simula contiene todas las instalaciones comunes de los lenguajes de alto
nivel de tercera generación.
Tipos de valores:
Entero corto, Entero
Real a largo real
De caracteres booleana
Tipos de
referencia:
Declaración:
Ref. (Object Identifier) ( No es el valor trivial)
Texto Constantes: "A", "Simula", notext
El texto es conceptualmente una instancia de clase, que
tiene sus atributos y métodos.
Métodos :
Procedimiento constante booleana; (True si es
constante)
Procedimiento texto principal; (cadena principal
- el texto es una parte del principal)
iniciar el proceso entero; (A partir de la
posición principal)
duración del procedimiento entero; (número de caracteres)
Pos entero Procedimiento; (posición
actual)
setpos (Procedimiento i), Integer i; (cambio de
posición)
Procedimiento booleana más; (True
si pos <= longitud)
Procedimiento de caracteres GetChar; (personaje de
Pos)
Procedimiento putchar (c); caracteres c, (personaje de
almacenaje a POS)
Sub texto del procedimiento(i, n) entero i, n, (subcadena en i de
longitud n)
Franja de texto del procedimiento; (elimina los
espacios de la derecha)
Reedición de Métodos:
getint Procedimiento Integer; Lee (número
entero)
GetReal largo procedimiento real; (Lee real)
GetFrac Procedimiento Integer; (igual que getint,
ignora los espacios)
Edición de métodos:
PutInt Procedimiento (i), Integer i; (Escribe el valor
entero)
PutFix Procedimiento (i, n); entero i, n, (Escribe el valor
decimal)
Procedimiento PutReal (r, n); Long real r, n
entero; (Escribe en formato científico)
Procedimiento PutFrac (i, n); entero i, n, (grupos de 3, los
espacios)
1. Procedimientos básicos
entero procedimiento rem (a, b); entero a, b;
REM: = El resto de dividir a por b
<tipo de arg> procedimiento abs (arg); <tipo de aritmética> arg;
ABS: = si arg <0 entonces -arg demás arg;
entero procedimiento de signo (a); <tipo <arithmetical uno;
signo: = si a <0 entonces -1 demás , si a = 0 entonces 0 más 1;
entero procedimiento entier (uno); verdadero un;
entier: = <el mayor entero menor que o igual a un>
entero procedimiento de mod (a, b); número entero a, b,
mod: = <un módulo b>;
<tipo> procedimiento min (a, b); <tipo> a, b;
min: = <el más pequeño de una y b>;
<tipo> procedimiento máx (a, b); <tipo> a, b;
máx: = <el mayor de una y b>;
Tipos legales de los parámetros
de máximos y mínimos son de texto , de carácter , real, tipo y número entero del tipo .
entero procedimiento de límite superior (arr, dim);
<tipo> matriz arr;
entero tenue;
límite superior: = <el límite superior de la matriz en la dimensión oscura >;
entero procedimiento de límite inferior (arr, dim);
<tipo> matriz arr;
entero tenue;
límite inferior: <= el límite inferior de la matriz en la dimensión oscura >;
texto de procedimiento de fecha y hora,
fecha y hora: - copia (texto con el formato "AAAA-MM-DD HH: MM: SS.ssss");
tiempo real, el procedimiento cputime;
cputime: = el número de segundos de procesador que utiliza el programa
tiempo real de procedimiento de la hora del reloj,
la hora del reloj: = <el número de segundos desde la medianoche>
3. Procedimientos de texto
texto procedimiento de copia (t); texto t;
copia de: - una copia del texto objeto referenciado por t
texto procedimiento espacios en blanco (N); entero NL-
blancos: - un texto de objeto que contiene n espacios en blanco
carácter de procedimiento de char (n); número entero n,
char: = <el carácter con el mismo rango de n
en el carácter de uso local secuencia de>;
carácter de procedimiento de isochar (n) - número entero n;
isochar: = <el carácter con el mismo rango de n
en el juego de caracteres ISO secuencia de>;
entero procedimiento de rango (c), de carácter c;
rango: = <el ranking de carácter c en el uso local
secuencia de caracteres>;
entero procedimiento de isorank (c), de carácter c;
isorank: = <el ranking de carácter c en la norma ISO
secuencia de caracteres>;
boolean procedimiento de dígitos (c), de carácter c;
dígitos: = < cierto si c es un dígito decimal; falsa de lo contrario>;
boolean procedimiento de la letra (c), de carácter c;
letra: = < cierto si c es una letra; falsa de lo contrario>;
texto procedimiento upcase (t); texto t;
upcase: - < t después de convertir cada letra t en mayúsculas>;
texto procedimiento lowcase (t); texto t;
lowcase: - < t después de convertir cada letra t en minúsculas>,
entero procedimiento de MAXINT;
MAXINT: = <el número entero más grande posible,>;
entero procedimiento MININT;
MININT: = <el número entero más pequeño posible>;
verdadera procedimiento maxreal;
maxreal: = <el verdadero más grande posible,>;
verdadera procedimiento minreal;
minreal: = <lo real más pequeño posible>;
entero procedimiento de maxrank;
maxrank: = <número de caracteres en el carácter de uso local
secuencia de>;
<escriba de E> procedimiento addepsilon (E); <real-type> E;
addepsilon: = E + <la diferencia más pequeña posible entre dos
reales>;
AddEpsilon proporciona el SIGUIENTE valor real (si es que existe) de acuerdo con la aplicación local de los números reales.
<escriba de E> procedimiento subepsilon (E); <real-type> E;
subepsilon: E = - <la diferencia más pequeña posible entre dos
reales>;
SubEpsilon proporciona la ANTERIOR valor real (si es que existe) de acuerdo con la aplicación local de los números reales.
tiempo real, el procedimiento maxlongreal;
maxlongreal: = <lo real de doble precisión más grande posible,>;
tiempo real, el procedimiento minlongreal;
minlongreal: = <lo real de doble precisión más pequeño posible>;
texto simulaid;
El valor de este texto en bajo el siguiente formato:
<simid>! <siteid>! <OS>! <CPU>! <usuario>! <job>! <acc>! <PROG>
donde
<simid> de identificación del sistema = Símula
<siteid> de identificación de la instalación =
<OS> identificación = del sistema operativo
<CPU> de identificación del equipo =
<usuario> de identificación del usuario =
<job> = Identificación del trabajo
<acc> = Identificación de la cuenta
<PROG> = Identificación del programa
Tenga en cuenta que el nombre de
este procedimiento es sinónimo de SIMULA ID, y AID no SIMUL.
entero procedimiento de sourceline;
sourceline: = <el número de la línea de programa en el que la
invocación de este procedimiento se da>;
procedimiento error e (t); texto t;
muestra los textos t y detiene el programa
procedimiento de terminate_program;
<Cierra SYSIN y SYSOUT y luego se detiene el programa de>;
6. Fonctions Matemáticas
verdadera procedimiento de ln (r); verdadera r;
En : = <el logaritmo natural de r>
verdadera procedimiento de log10 (r); verdadera r;
log10: = <base_10 el logaritmo de r
real, el procedimiento exp (r); verdadera r;
exp: = <e elevado a la potencia de r>
verdadera procedimiento de sqrt (r); verdadera r;
sqrt: = <la raíz cuadrada de r>;
Nota: En todas las
funciones trigonométricas que siguen los ángulos se miden en radianes y los
resultados son angulares entre -
pi / 2 y pi / 2 .
verdadera procedimiento de pecado (r); real de r,
el pecado: = <el seno de r>;
reales procedimiento cos (R); reales r,
cos: = <el coseno de r>;
verdadera procedimiento tan (r); reales r,
tan: = <la tangente de r>;
verdadera procedimiento de Cotán (r); verdadera r;
Cotán: = <la cotangente de r
verdadera procedimiento de arcsen (r); verdadera r;
arcsen: = <el arcoseno de r);
verdadera procedimiento de arccos (r); verdadera r;
arccos: = el arcocoseno de r
verdadera procedimiento de arctan (r); verdadera r;
arctan: = el arco tangente de r
verdadera procedimiento de senh (r); verdadera r;
senh: = el seno hiperbólico de r
verdadera procedimiento tanh (r); verdadera r;
tanh: = <la tangente hiperbólica de r>;
boolean procedimiento de sorteo (p, semillas);
nombre de la semilla, raíces p; número entero de semillas;
empate: = cierto con probabilidad p, falsa , con una probabilidad (1 - p)
entero procedimiento de randint (bajo, semillas de alta,),
nombre de la semilla; número entero de baja, las semillas de alto;
Randint devuelve uno de los
números enteros en [baja, baja + 1, ... ]
de alto, con igual probabilidad.
tiempo real, el procedimiento uniforme (bajo, las semillas de alto),
el nombre de la semilla; tiempo real, bajo, alto, número entero de semillas;
uniforme: = un valor elegido de manera uniforme en el intervalo [baja .. alta]
tiempo real, el procedimiento normal (media, stdv, semillas);
nombre de la semilla; tiempo real, media, stdv; número entero de semillas;
Rendimientos normales un valor
elegido de modo que, si la fonction se utiliza un largenumber de veces con los
mismos parámetros, los valores se Bave un valor promedio decir con una
desviación estándar de stdv .
Algunas
funciones predefinidas adicionales y especializados en lugar de que se pueden
utilizar para dibujar números al azar no se describen aquí.
Ejemplo:
!Simulaciòn de la llegada de 10 ;
!clientes a un negocio de abarrotes ;
Simulacion Begin
Process class GO;
Begin
For i:=1 step 1 until 11 do Begin
Hold(Uniform(0,10,i));
OutText("Nuevo cliente "); OutImage;
End For;
End of GO;
!Raiz del programa ;
Activate New GO;
End of program;
PRESENTÓ:
Aguilar Martínez Juan de Dios
Anastasio Hernández Leen Christian
Cordova Vargas Kristhian Josué
Hernández Mora Marco Ignacio
FUENTES DE INFORMACION: