Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas
PROFESORA:
CURSO:
CICLO:
GRUPO:
INTEGRANTES:
-
-
-
Universidad Nacional de Cajamarca
Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas
INTRODUCCION
Universidad Nacional de Cajamarca
Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas
MARCO TEÓRICO
Historia de los lenguajes de programación
Con el paso del tiempo y la continua evolución de las computadoras, los lenguajes de
programación han ido cambiando y mejorando de acuerdo a las necesidades tanto de
programadores como de las máquinas en general, dejando consigo una gran variedad de
lenguajes y códigos que seguramente nadie conoce en su totalidad.
LENGUAJE DE PROGRAMACIÓN C.
CONCEPTO:
También conocido como “Lenguaje de programación de sistemas” desarrollado en el
año 1972 por Dennis Ritchie para UNIX un sistema operativo multiplataforma. El
lenguaje C es del tipo lenguaje estructurado como son Pascal, Fortran, Basic. Sus
instrucciones son muy parecidas a otros lenguajes incluyendo sentencias como if, else,
for, do y while... . Aunque C es un lenguaje de alto nivel (puesto que es estructurado y
posee sentencias y funciones que simplifican su funcionamiento) tenemos la posibilidad
de programar a bajo nivel ( como en el Assembler tocando los registros, memoria etc. ).
Para simplificar el funcionamiento de el lenguaje C tiene incluidas librerías de
funciones que pueden ser incluidas haciendo referencia la librería que las incluye, es
decir que si queremos usar una función para borrar la pantalla tendremos que incluir en
nuestro programa la librería que tiene la función para borrar la pantalla.
Ventaja del lenguaje:La programación en C tiene una gran facilidad para escribir código
compacto y sencillo a su misma vez. En el lenguaje C no tenemos procedimientos como
en otros lenguajes solamente tenemos funciones los procedimientos los simula y esta
terminante mente prohibido escribir funciones , procedimientos y los comandos en
mayúscula todo se escribe en minúsculas (a no ser las constantes J ) Los archivos en la C
se escriben en texto puro de ASCII del Dos si se escribe en WORD por ejemplo el mismo
incluye muchos códigos no entendidos por el compilador y generara errores ;una vez
escrito se debe pasar a compilar el archivo; los archivos tienen 2
Extensiones archivo.C que es el archivo a compilar el que contiene todas los
procedimientos funciones y código de nuestro programa y archivo.h que es las librerías
que contienen las funciones de nuestro programa. (NOTA: El compilador genera
Archivos con extensión .EXE). Cada instrucción que pasemos a poner en C va seguida
Universidad Nacional de Cajamarca
Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas
de un punto y coma para decirle al compilador que hasta ahí llega la instrucción
simula un Enter del teclado. Ejemplo: clrscr(); /* borra la pantalla */.
Tipo de Variables en C
Universidad Nacional de Cajamarca
Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas
Definición: Para la definición de variables de debe poner primero el tipo de
variable a definir y luego el nombre de la variable (si queremos inicializarla
podemos a continuación poniendo = valor) y si queremos definir más de una
variable del mismo tipo podemos poniendo una coma a continuación.
Ejemplo:
int contador; /* define una variable con el nombre contador de tipo entero */
int cont = 0 ; /* inicializando cont con 0 */
int cont , cont2, contn = 0; /* definición de mas de una variable */
float científica = 10.1
int cont = cont +1;
int cont = cont2;
TRABAJANDO CON ESTRUCTURAS También se pueden definir tipo de variables con
varias variables dentro llamada estructuras de variables (muy precido a los registros
Grande DBASE ....) dentro de un registro nosotros podemos agrupar un conjunto de
variables bajo un mismo nombre por ejemplo tengo una ficha de cliente donde tiene
nombre , dirección ,teléfono ; en la misma ficha yo podría preguntar por cliente.nombre
o cliente.telefono etc.
Tipo de definición
Struct nombre {
Tipo variable1
Tipo variable2
Tipo variablex
};
struct nombre nombre_dela_variable;
Constantes:
Las constantes son variables que se mantienen todo el programa con un mismo valor.
Cada vez que nosotros llamamos a una constante lo que hacemos es remplazar la
constante por su valor. No se debe poner; después de la definición. Ej.:
#define MAXLINEAS 24
#define MINOMBRE “Federico”
#define ARCHIVO “C:\autoexec.bat”
y cuando en mi programa yo haga por ejemplo printf(“Autor : %s”,MINOMBRE); se
sustituirá el contenido de la constante por el contenido de la misma
printf(“Autor : %s”,”Federico”);
Un ejemplo que para los amantes de turbo pascal les puede gustar
// Ejemplo realizado para clase de definicion de varialbes.
Universidad Nacional de Cajamarca
Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas
#include <stdio.h> // inclusión de librerías.
#include <stdlib.h>
#include <conio.h>
// definición de constantes.
#define BEGIN {
#define END }
#define WRITELN( texto ) printf("%s\n",texto)
#define READLN(variable) gets(variable)
#define PAUSA getch()
void main()
BEGIN
char var[255];
clrscr();
WRITELN("hola");
READLN( var );
WRITELN( var);
PAUSA;
END
Funciones
Una función es una parte del código independiente del programa que se llama dentro de
él, como dijimos anteriormente C no tiene procedimientos solamente funciones los
procedimientos los simula con funciones que no devuelven nada (Void) la estructura de
la funciones en C y es los elementos más fuertes del lenguaje. El desarrollo de una función
es:
Tipo_de_valor_retorno nombreFunción(lista de argumentos ){
declaracion de variables locales a la función
codigo ejecutable
return (expresión) // optativo
}
las variables de nuestras funciones son locales es decir que solamente viven cuando se
está ejecutando la llamada a la función; el código ejecutable son las sentencias que el
programa utiliza para funcionar y el valor de retorno es el resultado que va a devolver la
misma función ( si se dice que una función retorna un entero en el return se debe poner
un entero como valor de devolución Ej: esta función de ejemplo cuenta cuantos caracteres
existen dentro de una variable que se le pase como parámetro.
if ( condición_logica )
{ ....
Universidad Nacional de Cajamarca
Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas
acción 1
....
}
else
{ .....
acción 2
.....
}
Sentencia SWITCH La sentencia switch puede comparar una variable con mas de un
posible resultado Si ustedes tubieron el gusto de programar en clipper la sentencia es muy
parecida a Case.
Switch (variable)
{
case comparacion1 : .....
accion...
break
.....
case comparacion n : .....
accion...
break
default : ..... /* en caso de que no se cumpla ninguna...*/
accion...
break
}
Repeticiones
Es el más usado en su sintaxis puesto que es muy parecido al de otros lenguajes como
clipper pascal visual basic....
While primero evalúa la condición y no se cumple entra en el ciclo While hasta que la
condición se cumpla.
While (condición)
{
Universidad Nacional de Cajamarca
Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas
....
sentencias
....
}
Sentencia for
La sentencia for o para permite ejecutar un conjunto de sentencias evaluando la condición
central del for.
Estructuras de control
Como estructuras de control el C++ incluye las siguientes construcciones:
condicionales:
if: instrucción de selección simple
switch: instrucción de selección múltiple
bucles:
do-while: instrucción de iteración con condición final
while instrucción de iteración con condición inicial
for instrucción de iteración especial (similar a las de repetición con contador)
de salto:
Universidad Nacional de Cajamarca
Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas
break instrucción de ruptura de secuencia (sale del bloque de un bucle o
instrucción
condicional)
continue instrucción de salto a la siguiente iteración (se emplea en bucles para saltar a la
posición donde se comprueban las condiciones)
goto instrucción de salto incondicional (salta a una etiqueta)
return instrucción de retorno de un valor (se emplea en las funciones)
Funciones
Una función es una parte con nombre de un programa que puede ser invocada o llamada
desde
cualquier otra parte del programa cuando haga falta. La sintaxis de las funciones
depende de si
las declaramos o las definimos.
La declaración se escribe poniendo el tipo que retorna la función seguido de su nombre
y de una
lista de parámetros entre paréntesis (los parámetros deben ser de la forma tipo-param
[nom_param], donde los corchetes indican que el nombre es opcional), para terminar la
declaración ponemos punto y coma (recordar que una declaración es una sentencia).
Para definir una función se escribe el tipo que retorna, el nombre de la función y una
lista de
parámetros entre paréntesis (igual que antes, pero aquí si que es necesario que los
parámetros
tengan nombre). A continuación, se abre una llave, se escriben las sentencias que se
ejecutan en
la función y se cierra la llave.
Un ejemplo de declaración de función sería:
int eleva_a_n (int, int);
Y su definición sería:
int eleva_a_n (int x, int n)
{
if (n<0) error ("exponente negativo");
switch (n) {
case 0: return 1;
case 1: return x;
default: return eleva_a_n (x, n-1);
}
}
Por defecto los parámetros se pasan por valor, para pasarlos por referencia usaremos
punteros y
referencias. Veremos más ampliamente las funciones en el punto dedicado a ellas.
Constantes (literales)
Hay cuatro tipos de literales en C++:
Literales enteros
Octales (en base ocho), si empiezan por cero, p. ej. 023 equivale a 10011 en binario o a
19 en decimal
Universidad Nacional de Cajamarca
Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas
Hexadecimales (en base dieciséis), si empiezan por 0x, p.ej. 0x2F que
equivale a 101111
en binario o a 47 en decimal. En hexadecimal los valores del 10 al 15 se
representan por
A, B, C, D, E, y F (en mayúsculas o minúsculas).
Decimales, que son los que no empiezan por 0.
A cada uno de estos literales les podemos añadir un sufijo para indicar que son sin signo
(sufijo
u o U) o para forzar a que sean de tipo long (sufijo l o L), por ejemplo 23L es el entero
23 de tipo
long, 0xFu es el entero 15 sin signo. También podemos mezclar los sufijos: 12Lu entero
12 sin
signo de tipo long.
Literales reales
Una constante en coma flotante se escribe con la parte entera y la decimal separadas por
punto,
y opcionalmente se puede escribir la letra e o E y un exponente.
El tipo de constante depende del sufijo:
Sin sufijo: double
19
f, F : float
l, L : long double
Ejemplos:
1.8e3 // 1.8 * 103 == 1800 de tipo double
0.1L // valor 0.1 long double
-1e-3f // -0.001 float
4. // 4.0 double
.12 // 0.12 double
Literales caracteres
Los caracteres se delimitan entre dos apóstrofes ''. Dentro de los apóstrofes sólo
podemos
escribir un carácter, excepto cuando son caracteres especiales, que se codifican
mediante el
carácter de escape \ seguido de otro carácter
Literales cadenas
Una cadena es una secuencia de caracteres escrita entre comillas dobles y terminada con
el
carácter nulo (\0).
Ejemplos:
"hola" // equivale a 'h','o','l','a','\0'
"" // equivale a '\0'
"'" // equivale a '\'', '\0'
"\'" // equivale a '\'', '\0'
""" // error, para escribir " dentro de una cadena lo correcto sería "\""
"ho""la" // se concatenan, equivale a 'h','o','l','a','\0'
Universidad Nacional de Cajamarca
Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas
Variables
Alcance o ámbito de las variables
Las variables existen sólo dentro del bloque en el que se definen, es decir, se crean
cuando se
entra en el bloque al que pertenecen y se destruyen al salir de él.
Para acceder a variables que se definen en otros módulos la declaramos en nuestro
módulo
precedida de la palabra extern.
Si queremos que una variable sea local a nuestro módulo la definimos static, de manera
que es
inaccesible desde el exterior de nuestro módulo y además permanece durante todo el
tiempo que
se ejecute el programa (no se crea al entrar en el módulo ni se destruye al salir, sino que
permanece todo el tiempo) guardando su valor entre accesos al bloque.
Si queremos que una variable no pueda ser modificada la declaramos const, tenemos
que
inicializarla en su declaración y mantendrá su valor durante todo el programa. Estas
variables se
emplean para constantes que necesitan tener una dirección (para pasarlas por
referencia).
El operador ::
Dentro de un bloque podemos emplear el operador :: para acceder a variables declaradas
en un
bloque superior. Este operador sólo es útil cuando en un bloque interno tenemos una
variable
con un nombre igual a otro externo (la variable accesible será la interna, pero con ::
accederemos
a la externa). Veremos que el operador :: se usa fundamentalmente para clases.
Ejemplo:
main () {
int v;
…
{
char v;
v = 5; // asigna 5 a la variable char (interna)
::v=9 + v; // asigna 9 + 5 (valor de v interna) a la variable int más externa
}
}
Variables volátiles
Si queremos que una variable sea comprobada cada vez que la utilicemos la
declararemos
precedida de la palabra volatile, esto es útil cuando definimos variables que almacenan
valores
que no sólo modifica nuestro programa (por ejemplo una variable que utiliza el
Hardware o el
SO).
Variables register
Podemos intentar hacer más eficientes nuestros programas indicándole al compilador que
variables usamos más a menudo para que las coloque en los registros. Esto se hace
Universidad Nacional de Cajamarca
Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas
declarando la variable precedida de la palabra register. No tenemos ninguna
garantía de que el compilador nos haga caso, depende del entorno de desarrollo
que empleemos.
Características:
Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma.NET
el cual es similar al de Java aunque incluye mejoras derivadas de otros lenguajes (entre
ellos Delphi).
La creación del nombre del lenguaje, C♯, proviene de dibujar dos signos positivos
encima de los dos signos positivos de "C++", queriendo dar una imagen de salto
evolutivo del mismo modo que ocurrió con el paso de C a C++.
C♯, como parte de la plataforma.NET, está normalizado por ECMAdesde diciembre
de 2001 (C# Language Specification "Especificación del lenguaje C♯"). El 7 de
noviembre de 2005 salió la versión 2.0 del lenguaje que incluía mejoras tales como
tipos genéricos, métodos anónimos, iteradores, tipos parciales y tipos anulables. El 19
de noviembre de 2007 salió la versión 3.0 de C# destacando entre las mejoras los tipos
implícitos, tipos anónimos y LINQ (Language Integrated Query -consulta integrada en
el lenguaje).
Aunque C♯ forma parte de la plataforma.NET, ésta es una interfaz de programación de
aplicaciones (API); mientras que C♯ es un lenguaje de programación independiente
diseñado para generar programas sobre dicha plataforma. Ya existe
un compilador implementado que provee el marco de DotGNU - Mono que genera
programas para distintas plataformas como Win32, UNIX y Linux.
Características principales de C#
Sencillez de uso:
C# elimina muchos elementos añadidos por otros lenguajes y que facilitan su uso y
compresión, como por ejemplo ficheros de cabecera, O ficheros fuentes IDL1 .12. Es
por ello que se dice que C# es auto contenido. Además, no se incorporan al lenguaje
elementos poco útiles, como por ejemplo macros, herencia múltiple u operadores
diferentes al operador de acceso a métodos (operador punto) para acceder a miembros
de espacios de nombres.
Universidad Nacional de Cajamarca
Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas
Modernidad
, un tipo básico
string
,así como una instrucción que permita recorrer colecciones con facilidad(instrucción
foreach
). Estos elementos hay que simularlos en otros lenguajes como C++ o Java.
Orientado a objetos
Orientado a componentes
Recolección de basura
Seguridad de tipos
Unificación de tipos
Para facilitar la legibilidad de código y conseguir que los nuevos tipos de datos que se
definan a través de las estructuras estén al mismo nivel que los elementos predefinidos
en el lenguaje, al igual que C++ pero a diferencia de Java, C# permite redefinir el
significado de la mayoría delos operadores (incluidos el de la conversión) cuando se
apliquen a diferentes tiopos de objetos.
Eficiente
, y podrán usarse en ellas punteros de forma similar a como se hace en C++. Esta
característica puede resultar de utilidad en situaciones en las que se necesite gran
velocidad de procesamiento
Universidad Nacional de Cajamarca
Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas
Datamine
Sin considerar algunas mínimas diferencias existentes entre algunos sectores
productivos mineros, que se rigen por condiciones muy particulares, todo negocio
productivo asociado al área minera está constituido por las siguientes áreas: Proceso
productivo-Logística de apoyo al proceso productivo-Finanzas.Hoy en día los grandes
sistemas informáticos están siendo sometidos al mayor y más complejo de los
Universidad Nacional de Cajamarca
Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas
requerimientos, que proviene directamente de los profesionales del área
minera: soluciones efectivas a todas sus necesidades. El análisis del círculo de
planeamiento minero y la solución global propuesta por Datamine comenzó con
un riguroso análisis del mercado minero, que luego se fundamentó en la mejora
continua de toda la línea de productos y en el desarrollo de todas aquellas tecnologías
que permitieran cubrir todas las áreas del negocio minero, en cualquiera de sus
variantes.De esta forma, las alternativas propuestas por la compañía para suministrar
soluciones efectivas a estos exigentes requerimientos cuentan con todas las
características fundamentales para asegurar el éxito del negocio minero, tales como
Integrabilidad, Versatilidad, Potencialidad y Confiabilidad, permitiendo un trabajo
rápido, eficiente, que considera el riesgo asociado, generando resultados auditables y
repetibles a lo largo del tiempo, o en cualquier sitio de la compañía. Entre estos
productos destaca el software Datamine Studio.
Gemcom
Las soluciones integradas que desarrolla Gemcom abarcan desde las fases de
exploración, evaluación de recursos, diseño de minado, optimización, planeamiento
minero y control de leyes de producción, hasta la reconciliación y balance metalúrgico a
lo largo de la línea de producción.La línea de soluciones MPMS (Mine Production
Management Solutions) es cuidadosamente diseñada y ajustada a las necesidades reales
y futuras de cada uno de los clientes, incluyendo productos específicos como GEMS o
Whittle y/o herramientas de otros proveedores o desarrollos propios de cada empresa.
Lo relevante es la integración real de todos los elementos involucrados en la cadena de
valor, lo que posibilita una visión global confiable, con los indicadores adecuados que
permiten a los ejecutivos tomar decisiones más certeras.• MPMS: Solución orientada a
la administración y control de los procesos en la cadena de valor productiva de una
empresa minera. • ProdTrack: Sistema de control de producción y balance metalúrgico a
lo largo de la línea de procesos.• GEMS: Suite de herramientas de aplicación a las tareas
de una operación minera, que cubren las necesidades de los profesionales en todas las
Universidad Nacional de Cajamarca
Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas
áreas de la ingeniería y geología. • GEMS-PCBC: Suite de herramientas
específicas para faenas que utilizan el método de Block Caving para su
explotación. PCBC opera bajo ambiente GEMS, y está completamente
integrado con el resto de herramientas generales de administración de datos, y otras. •
Whittle: Sistema para optimización económica y planeamiento estratégico de minado.
Herramientas para el análisis de sensibilidad, secuenciamiento óptimo, aplicación de
algoritmos de Millaza y Lerch y Grossman, son parte de este sistema. • EQWin: Sistema
de administración y análisis de datos de medio ambiente.
Maptek
El software minero geológico Vulcan es uno de los productos principales de Maptek.
Creado en el año 1981, actualmente está disponible en la Versión 7.0 .Entre sus
principales características, permite su aplicación a todos los aspectos geológicos y de
planificación minera; posee las herramientas necesarias para la creación del diseño,
tanto para open pit, como para underground; permite el modelamiento de yacimientos
metálicos, carboníferos y de metales industriales, y entrega las herramientas para un
completo desarrollo topográfico y de geomensura.El software permite convertir los
complejos datos en información visual que se reflejan en la creación de imágenes
interactivas y dinámicas en 3D, facilitando su comprensión y entendimiento. Además,
puede desarrollar completos estudios de factibilidad y de impacto ambiental.Otro
producto de Maptek es el software I-SiTE, creado en el año 1999, actualmente
disponible en la Versión 2.2.Es un paquete combinado de hardware y software. El
hardware incluye un dispositivo de rastreo láser, un computador laptop con el control
del dispositivo y captura de datos de soporte y una estación de trabajo de alto
Universidad Nacional de Cajamarca
Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas
rendimiento. Combinado con el software Vulcan, el ambiente gráfico
representa el sistema completo para cálculo exacto de volúmenes y
desplazamiento, procesamiento, manejo y manipulación de datos.Las
aplicaciones para el Sistema I-SiTE en mapeo, ingeniería de minas y civil incluyen:
captura de datos extremadamente rápida, topografía 3D, Open pit, bancos, control de
producción, control de cavidades, control de hundimientos, control de túneles, cálculo
de cualquier volumen, mediciones con gran detalle adecuadas para análisis estructural,
total detalle de topografía, mediciones volumétricas (planificadas versus ejecutadas),
entre otras.
Surpac
Surpac Minex Group tiene una serie de soluciones computacionales para el trabajo
geológico minero, entre las cuales se puede mencionar:• Surpac Vision: Software
geológico minero que cubre desde las tareas de exploración hasta la planificación de la
mina. Este programa se caracteriza por tener un fácil manejo y gran potencialidad al
manejar información de distintos formatos, además de poder realizar conexiones de
trabajos múltiples desde internet.• Minesched: Software de planificación minera de
desarrollo y planificación de la producción desde el corto hasta largo plazo en minería
subterránea y de cielo abierto. Este programa tiene interfaz directa con MS Project y
Excel, permitiendo al planificador obtener flexibilidad y un mejor manejo del plan
minero al analizar múltiples opciones en un corto tiempo.• Tailings: Es un programa
que permite simular el llenado de un tranque de relaves, considerando puntos de
descarga y diferentes pendientes de depositado.Surpac tiene aplicación en el área
geológica minera, específicamente en: Exploración geológica; Estimación de reservas;
Diseño en minería open pit y subterránea; Planificación minera; Modelamiento de
relaves; Levantamiento topográfico.
Universidad Nacional de Cajamarca
Facultad de Ingeniería
Escuela Académico Profesional de Ingeniería De Minas