You are on page 1of 24

INDICE

Pgina
I. INTRODUCCIN... 2

II. OBJETIVOS....3

III. LENGUAJE C..4

1. HISTORIA DEL LENGUAJE C4

IV. LENGUAJES DE PROGRAMACIN..6

1. LENGUAJE C....6

2. LENGUAJE C ++..7

3. LENGUAJE C#........................................................................................9

V. LENGUAJES DE PROGRAMACIN Y MINERA...13

1. SOFTWARE MINESIGHT GEOLOGY13

2. SOFTWARE MAPTEK VULCAN.14

3. SOFTWARE DATANINE...17

4. SOFTWARE ISATIS OPTIMUS...19

VI. REPRESENTACIN GRFICA.21

VII. CONCLUCIONES....23

VIII. BIBLIOGRAFA.24
COMPUTACIN Y ALGORITMOS II

I. INTRODUCCIN

C es un lenguaje de programacin de propsito general que ofrece economa


sintctica, control de flujo y estructuras sencillas y un buen conjunto de
operadores. No es un lenguaje de muy alto nivel y ms bien un lenguaje
pequeo, sencillo y no est especializado en ningn tipo de aplicacin. Esto lo
hace un lenguaje potente, con un campo de aplicacin ilimitado y, sobre todo, se
aprende rpidamente. En poco tiempo, un programador puede utilizar la totalidad
del lenguaje.

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX (coleccin


de programas que ejecutan otros programas en una computadora), puesto que
fueron desarrollados conjuntamente. Sin embargo, este lenguaje no est ligado
a ningn sistema operativo ni a ninguna mquina concreta. Se le suele llamar
lenguaje de programacin de sistemas debido a su utilidad para escribir
compiladores y sistemas operativos, aunque de igual forma se puede desarrollar
cualquier tipo de aplicacin.

EAPIM UNC pg. 2


COMPUTACIN Y ALGORITMOS II

II. OBJETIVOS

Conocer la historia del lenguaje de programacin C, su desarrollo a lo


largo del tiempo hasta la actualidad.
Indagar las aplicaciones de los algoritmos dentro de la minera.
Conocer los diferentes programas de minera, saber para qu sirven,
que parmetros se utilizan adems de poder entender los diferentes
mtodos de clculos que realizan en sus procesos.

EAPIM UNC pg. 3


COMPUTACIN Y ALGORITMOS II

III. LENGUAJE C

1. HISTORIA DEL LENGUAJE C


Ken Thomson cre el lenguaje B en 1969 a partir del BCPL (Basic
Combined Programming Language) de Martin Richard. Utiliz el lenguaje
ensamblador y el B para producir las versiones iniciales del sistema
operativo UNIX. El BCPL y el B eran lenguajes sin tipos, en los que las
variables eran simples palabras en memoria. Dennis Ritchie de los
Laboratorios Bell; junto a Ken Thompson, convirti ms tarde (en 1972) el
B en C reteniendo la mayor parte de la sintaxis de B, y escribi el primer
compilador. C fue creado para poder escribir dicho sistema operativo en un
lenguaje de alto nivel, independiente del hardware donde se ejecutar. En
1978, Kernighan y Ritchie escribieron un libro titulado El lenguaje de
programacin C que se convirti en la definicin del lenguaje durante casi
una dcada. A esta definicin se denomina frecuentemente "K &R C". Tras
la publicacin de esta definicin, los profesionales de las computadoras,
impresionados por las caractersticas deseables del C, comenzaron a
promover el uso del lenguaje.

A partir de 1983, se pidi al comit ANSI X3J11 que estandarizara el


lenguaje C. El resultado fue el ANSI C, adoptado como patrn en 1988. No
se impone a ningn programador, pero dada su amplia aceptacin, a
cualquier programador de sistemas o creador de compiladores le resultara
econmicamente poco prctico no satisfacer este patrn.

Contar con un lenguaje de alto nivel permiti el avance de los sistemas


operativos, ya que el mismo cdigo poda ser utilizado en las distintas
plataformas, propiciando la reutilizacin de cdigo y reduciendo los tiempos
de desarrollo. As es que los sistemas operativos basados en UNIX, el
sistema BSD, el sistema GNU/Linux y muchos otros fueron desarrollados
en C.

EAPIM UNC pg. 4


COMPUTACIN Y ALGORITMOS II

Adems, con el paso del tiempo se han desarrollado cientos de bibliotecas


que permiten a los programadores de C utilizar el cdigo desarrollado por
otros para la realizacin de tareas comunes. Esto, a su vez, ha propiciado
el desarrollo de aplicaciones en lenguaje C.

Actualmente es imposible contar la cantidad de aplicaciones y herramientas


desarrolladas en C.

IMAGEN 01: Dennis Ritchie (derecha) y Ken Thomson

EAPIM UNC pg. 5


COMPUTACIN Y ALGORITMOS II

IV. LENGUAJES DE PROGRAMACIN

1. LENGUAJE C

Definicin:

C es un lenguaje de programacin creado en 1972 por Dennis M.


Ritchie en los laboratorios de Bell como evolucin del lenguaje
anterior B.
Es un lenguaje orientado a la implementacin de Sistemas
Operativos, concretamente Unix. C es apreciado por la eficiencia del
cdigo que produce y es el lenguaje de programacin ms popular
para crear softwares de sistemas, aunque tambin se utiliza para
crear aplicaciones.

Caractersticas:

Un ncleo del lenguaje simple, con funcionalidades aadidas


importantes, como funciones matemticas y de manejo de archivos,
proporcionadas por bibliotecas.
Es un lenguaje muy flexible que permite programar con mltiples
estilos. Uno de los ms empleados es el estructurado "no llevado al
extremo" (permitiendo ciertas licencias de ruptura).
Un sistema de tipos que impide operaciones sin sentido.
Usa un lenguaje de preprocesador, el preprocesador de C, para
tareas como definir macros e incluir mltiples archivos de cdigo
fuente.
Acceso a memoria de bajo nivel mediante el uso de punteros.
Interrupciones al procesador con uniones.
Un conjunto reducido de palabras clave.
Por defecto, el paso de parmetros a una funcin se realiza por
valor. El paso por referencia se consigue pasando explcitamente a
las funciones las direcciones de memoria de dichos parmetros.
Punteros a funciones y variables estticas, que permiten una forma
rudimentaria de encapsulado y polimorfismo.

EAPIM UNC pg. 6


COMPUTACIN Y ALGORITMOS II

Tipos de datos agregados (struct) que permiten que datos


relacionados (como un empleado, que tiene un id, un nombre y un
salario) se combinen y se manipulen como un todo (en una nica
variable "empleado").

2. LENGUAJE C++

Definicin

C++ es un lenguaje de programacin orientado a objetos que toma la


base del lenguaje C y le agrega la capacidad de abstraer tipos como en
Smalltalk.
La intencin de su creacin fue el extender al exitoso lenguaje de
programacin C con mecanismos que permitieran la manipulacin de
objetos. En ese sentido, desde el punto de vista de los lenguajes
orientados a objetos, el C++ es un lenguaje hbrido [por? fusionar con
el siguiente].
Posteriormente se aadieron facilidades de programacin genrica, que
se sum a los otros dos paradigmas que ya estaban admitidos
(programacin estructurada y la programacin orientada a objetos). Por
esto se suele decir que el C++ es un lenguaje de programacin
multiparadigma.

EAPIM UNC pg. 7


COMPUTACIN Y ALGORITMOS II

Caractersticas

Tiene un conjunto completo de instrucciones de control.


Permite la agrupacin de instrucciones.
Incluye el concepto de puntero (variable que contiene la direccin
de otra variable).
Los argumentos de las funciones se transfieren por su valor.
E/S no forma parte del lenguaje, sino que se proporciona a travs
de una biblioteca de funciones.
Permite la separacin de un programa en mdulos que admiten
compilacin independiente.
Originalmente el Lenguaje C estuvo muy ligado al sistema
operativo UNIX como se haba mencionado antes que, en su mayor
parte, est escrito en C. Ms adelante se comenz a utilizar en
otros sistemas operativos para programar editores, compiladores,
etc.

EAPIM UNC pg. 8


COMPUTACIN Y ALGORITMOS II

3. LENGUAJE C#

Definicin

C# es un lenguaje de programacin orientado a objetos desarrollado y


estandarizado por Microsoft como parte de su plataforma .NET, que
despus fue aprobado como un estndar por la ECMA (ECMA-334)
e ISO (ISO/IEC 23270). C# es uno de los lenguajes de programacin
diseados para la infraestructura de lenguaje comn.

Su sintaxis bsica deriva de C/C++ y utiliza el modelo de objetos de la


plataforma .NET, similar al de Java, aunque incluye mejoras derivadas
de otros lenguajes.

El nombre C Sharp fue inspirado por el signo '#' que se compone de


cuatro signos '+' pegados.

Aunque C# forma parte de la plataforma .NET, sta es una API, mientras


que C# es un lenguaje de programacin independiente diseado para
generar programas sobre dicha plataforma.

EAPIM UNC pg. 9


COMPUTACIN Y ALGORITMOS II

Caractersticas

A continuacin, enumeramos las principales caractersticas que definen


al lenguaje de programacin C#. Algunas de estas caractersticas no son
propias del lenguaje, sino de la plataforma .NET, aunque se listan aqu
ya que tienen una implicacin directa en el lenguaje.

Sencillez de uso: C# elimina muchos elementos aadidos por otros


lenguajes y que facilitan su uso y compresin, como por ejemplo ficheros
de cabecera, o ficheros fuentes IDL. Es por ello por lo que se dice que
C# es autocontenido. Adems, no se incorporan al lenguaje elementos
poco tiles, como por ejemplo macros, herencia mltiple u operadores
diferentes al operador de acceso a mtodos (operador punto) para
acceder a miembros de espacios de nombres.

Modernidad: Al ser C# un lenguaje de ltima generacin incorpora


elementos que se ha demostrado a lo largo del tiempo que son muy tiles
para el programador, como tipos decimales o booleanos, un tipo bsico
string, as como una instruccin que permita recorrer colecciones con
facilidad (instruccin foreach). Estos elementos hay que simularlos en
otros lenguajes como C++ o Java.

Orientado a objetos: C# como lenguaje de ltima generacin, y de


propsito general, es orientado a objetos. C# no permite la inclusin de
funciones ni variables globales que no estn incluidos en una definicin
de tipos, por lo que la orientacin a objetos es ms pura y clara que en
otros lenguajes como C++. Adems, C# soporta todas las caractersticas
del paradigma de la programacin orientada a objetos, como son la
encapsulacin, la herencia y el polimorfismo.

Orientado a componentes: La propia sintaxis de C# incluye elementos


propios del diseo de componentes que otros lenguajes tienen que
simular. La sintaxis de C# incluye por ejemplo formas de definir
propiedades, eventos o atributos.

EAPIM UNC pg. 10


COMPUTACIN Y ALGORITMOS II

Recoleccin de basura: Como ya se coment, todo lenguaje incluido


en la plataforma .NET tiene a su disposicin el recolector de basura del
CLR. Esto implica que no es necesario incluir instrucciones de
destruccin de objetos en el lenguaje.

Seguridad de tipos: C# incluye mecanismos de control de acceso a


tipos de datos, lo que garantiza que no se produzcan errores difciles de
detectar como un acceso a memoria de ningn objeto, por ejemplo. Para
ello, el lenguaje provee de una serie de normas de sintaxis, como por
ejemplo no realizar conversiones entre tipos que no sean compatibles.
Adems, no se pueden usar variables no inicializadas previamente, y en
el acceso a tablas se hace una comprobacin de rangos para que no se
excedan ninguno de los ndices de la misma. Se puede controlar as
mismo los desbordamientos en operaciones aritmticas, producindose
excepciones cuando se produzcan.

Instrucciones seguras: Para evitar errores comunes como se


producan programando en otros lenguajes, en C# se han impuesto una
serie de restricciones en el uso de instrucciones de control ms
comunes. Por ejemplo, la evaluacin de toda condicin ha de ser una
expresin condicional y no aritmtica, como ocurra por ejemplo en C o
en C++. As se evitan errores por confusin del operador igualdad con el
de asignacin. Otra restriccin que se impone en la instruccin de
seleccin switch, imponiendo que toda selectora de la instruccin finalice
con una instruccin break o goto que indique cul es la siguiente accin
que realizar.

Unificacin de tipos: En C# todos los tipos derivan de una superclase


comn llamada System.Object, por lo que automticamente heredarn
todos los miembros definidos en esta clase. Es decir, son objetos. A
diferencia de Java, en C# esta caracterstica tambin se aplica para los
tipos bsicos.

EAPIM UNC pg. 11


COMPUTACIN Y ALGORITMOS II

Extensin de los operadores bsicos: Para facilitar la legibilidad de


cdigo y conseguir que los nuevos tipos de datos que se definan a travs
de las estructuras estn 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 mayora de los operadores (incluidos el de
la conversin) cuando se apliquen a diferentes tipos de objetos.

Extensin de modificadores: C# ofrece, a travs de los atributos, la


posibilidad de aadir a los metadatos del mdulo resultante de la
compilacin de cualquier fuente informacin adicional a la generada por
el compilador que luego podr ser consultada en tiempo de ejecucin a
travs de la biblioteca de reflexin de .NET.

Eficiente: En C#, todo el cdigo incluye numerosas restricciones para


garantizar su seguridad, no permitiendo el uso de punteros. Sin
embargo, y a diferencia de Java, existen modificadores para saltarse
esta restriccin, pudiendo manipular objetos a travs de punteros. Para
ello basta identificar regiones de cdigo con el identificador, y podrn
usarse en ellas punteros de forma similar a como se hace en C++. Esta
caracterstica puede resultar de utilidad en situaciones en las que se
necesite gran velocidad de procesamiento.

Compatible: Para facilitar la migracin de programadores de C++ o Java


a C#, no slo se mantiene una sintaxis muy similar a la de los dos
anteriores lenguajes, sino que el CLR tambin ofrece la posibilidad de
acceder a cdigo nativo escrito como funciones sueltas no orientadas a
objetos, tales como las DLLs de la API de Win32.

EAPIM UNC pg. 12


COMPUTACIN Y ALGORITMOS II

V. APLICACIONES DE LOS LENGUAJES DE PROGRAMACION EN LA


MINERIA

1. SOFTWARE MINESIGHT GEOLOGY

Es un software para el modelado y la planificacin de mina, que


proporciona soluciones integradas para exploracin, modelado geolgico,
diseo, planificacin y operacin.

Lenguaje de programacin: Visual LISP, Visual Basic (VBA) Y


C++.

Empresa desarrolladora:
Este software fue desarrollado por la empresa HEXAGON MINING

Aplicaciones:

Se recomienda para trabajo con recursos ya que equipa a gelogos con


herramientas CAD para una interpretacin ms amplia, mapeo geolgico
de frentes, codificacin de sondajes y modelos, interpolacin e informes
de reservas. Dentro del paquete para levantamientos Survey Package, se
incluyen todas las herramientas MineSight para clculos complejos de
volmenes e interseccin de superficies. Este paquete multiplica su
funcionalidad con distintos asistentes para importacin directa. MineSight
importa y exporta con los equipos de levantamiento en los formatos
estndar ms populares. Los topgrafos pueden obtener volmenes y
superficies. Gracias a las amplias funciones CAD es posible manipular poli
lnea, superficies y slidos para crear diseos prcticos en el campo, a
partir de planificaciones a gran escala.

EAPIM UNC pg. 13


COMPUTACIN Y ALGORITMOS II

2. SOFTWARE MAPTEK VULCAN

Es el software lder en modelado 3D y planeacin de minas que abarca el


ciclo completo de la minera. Ms de 4000 licencias se han instalado en 800
sitios en todo el mundo.

Lenguaje de programacin: Visual LISP, Visual Basic (VBA).

Empresa desarrolladora: El software minero geolgico Vulcan es uno de


los productos principales de Maptek. Creado en el ao 1981, actualmente
est disponible en la Versin 10.0

Aplicaciones

1. GEOLOGA

Almacena los datos de perforacin y muestreo.


Conexin a bases de datos externas va ODBC
Fcil visualizacin de la informacin de perforacin en 3D
Grficas 3D claras y estructuradas con informacin de barrenacin.
Modelado geolgico 3D interactivo
Poderosas herramientas de modelado estratigrfico

EAPIM UNC pg. 14


COMPUTACIN Y ALGORITMOS II

2. MODELADO DE BLOQUES.

Crea modelos de bloques rotados.


Capacidades de sub-bloqueo para modelar con precisin contactos y
lmites.
Capacidad ilimitada de almacenamiento de variables.
Genera secciones y usa corte dinmico.
Incorpora modelos geolgicos triangulados en los modelos de bloques.
Visualiza y planifica la mina en base a los datos del modelo de bloque.
Excluye automticamente zonas minadas para mejorar la
reconciliacin de leyes.
Poderosas herramientas de cubicacin; desglose detallado de la
informacin (bancos, rebajes, etc.)

EAPIM UNC pg. 15


COMPUTACIN Y ALGORITMOS II

3. ESTIMACIN DE RECURSOS.

Paquete completo de herramientas estadsticas.


Herramientas internas de variografa, incluyendo variografa
direccional.
Anlisis geoestadstico; Kriging, ID, Simulacin.
Anlisis con mltiples parmetros.
Guarda los resultados de la estimacin en el modelo del bloque.
Clculo de reservas usando triangulaciones.

4. DISEO DE MINA.

Herramientas especializadas para minas y depsitos de estril,


incluyendo diseo de rampas.
Transicin suave entre ngulos de caras y ancho de banco variables
Herramientas internas de optimizacin de minas
Aplica mltiples ngulos de cara, alturas de bancos y anchos de
bermas.
Edicin interactiva de diseos subterrneos.
Generador automtico de rampas basado en las restricciones definidas
por el usuario.
Programacin de la produccin.
Programacin de entornos a cielo abierto y subterrneos.
Programador interno basado en objetivos (Chronos)
Programacin a corto, mediano y largo plazo.
Aplica recursos y equipos.
Anlisis dinmico y retroalimentacin entre el diseo de la mina, el
modelo geolgico y el programa.

EAPIM UNC pg. 16


COMPUTACIN Y ALGORITMOS II

3. SOFTWARE DATAMINE

DATAMINE es el lder mundial en Software Integrado para la industria de


los recursos naturales, con ms de 1000 sistemas en diario uso en ms
de 45 pases a travs del mundo. Los usos ms comunes del sistema son;
la captura y anlisis de la informacin, exploracin, geologa, geoqumica,

mecnica de rocas, Topografa, modelamiento geolgico, diseo de mina


a Cielo Abierto y Subterrneas planeamiento minero, y reas relacionadas
a los estudios ambientales.

Lenguaje de programacin: Python

Empresa desarrolladora:

Software Minero DATAMINE es producido por Mineral Industries


Computing Limited, una compaa fundada en 1981 y dedicada a la
provisin de Software Especializado y Servicios para la Industria Minera
a travs del mundo.

EAPIM UNC pg. 17


COMPUTACIN Y ALGORITMOS II

Aplicaciones:

Entrada de datos, Estadstica, Edicin de Sondajes, Evaluacin de


Reservas
Modelamiento Geolgico
Geoestadstica, Modelo de Bloques, Evaluacin de Reservas
Mecnica de Rocas
Mapeo, estereografa, Clasificacin del Macizo Rocoso
Planeamiento Mina Cielo Abierto
Optimizacin de Pits, Planeamiento Largo Plazo, Diseo de Rampas y
Pits.
Planeamiento Mina Subterrnea
Optimizacin y Diseo de Desarrollos
Produccin Mina
Manejo de Topografa, Control de Leyes, Planificacin, Mezclas para la
Produccin
Rehabilitacin de la Mina
Ingeniera Ambiental, Pedimentos, Rehabilitacin y Estudios del uso de
Terrenos

EAPIM UNC pg. 18


COMPUTACIN Y ALGORITMOS II

4. SOFTWARE ISATIS OPTIMUS

Isatis proporciona un completo conjunto de herramientas geoestadsticas y


un amplio recurso de grficos 3-D para el anlisis, interpretacin y
modelamiento de datos. Este software Isatis sirve para las tareas esenciales
en Geoestadstica Minera.

Un especial enfocado es en el visualizador del 3D y en los procedimientos


del lote para la tecnolgica automtica.

Lenguaje de programacin: Visual Basic (VBA) Y C++

Empresa desarrolladora:
Este software fue desarrollado por la compaa GEMCOM SURPAC

Aplicaciones:

Este software est dirigido a gelogos, ingenieros y otros profesionales que


deseen aplicar a sus datos las herramientas geoestadsticas disponibles en
Isatis.
Contenido Isatis.

Interface de usuario y manejo de datos


Importacin de datos
Utilizacin de wireframes

EAPIM UNC pg. 19


COMPUTACIN Y ALGORITMOS II

Regularizacin, de-clustering
Trabajando con modelos de bloques
Viewer 3D
Capacidad de creacin de rutinas (Batch) usando Jounal files.

Anlisis de Datos
Herramientas para realizar estadstica clsica.
Calculando variogramas experimentales, nubes de datos y mapas.
Modelamiento de variogramas.

EAPIM UNC pg. 20


COMPUTACIN Y ALGORITMOS II

VI. REPRESENTACIN GRFICA

LINIA DE TIEMPO (HISTORIA DEL LENGUAJE C)

EAPIM UNC pg. 21


COMPUTACIN Y ALGORITMOS II

LENGUAJES DE PROGRAMACIN APLICACIONES EN LA MINERA

Programacin estructurada
Este software Isatis sirve para Economa de las expresiones
las tareas esenciales en
Geoestadstica Minera. Codificacin en alto y bajo nivel
Abundancia de operadores y
tipos de datos.

Es el software Permite la
lder en agrupacin de
modelado 3D y instrucciones
planeacin de Tiene un conjunto
minas completo de
instrucciones de
control
Incluye el
concepto de
puntero (variable
que contiene la
direccin de otra
variable)

la captura y anlisis de la informacin, Permiten asociar cdigo al


momento de leer o escribir en el
exploracin, geologa, geoqumica, campo.
mecnica de rocas, Topografa, La propiedad no almacena
modelamiento geolgico, diseo de mina a datos, perro se utiliza como si lo
hiciera.
Cielo Abierto y Subterrneas
Se accesan como si se tratara
planeamiento minero, y reas de un campo, no como un
relacionadas a los estudios ambientales. mtodo.

EAPIM UNC pg. 22


COMPUTACIN Y ALGORITMOS II

VII. CONCLUCIONES

Tecnologas de la informacin se aplican en la minera para el diseo y


modelado de superficiales y subterrneas de minera con el fin de reducir
los costos de produccin y elaboracin tiempo y aumentar la
productividad.
Paquetes de programas informticos ofrecen la posibilidad de identificar
y obtener datos sobre recursos minerales que son de la mayor
importancia para optimizar y la homogeneizacin de los procesos en la
minera.
El uso de la tecnologa nos hace ms fcil realizar proyectos de minera
y otras reas de la ingeniera pues nos facilita llegar a esos lugares
donde las personas que hace el estudio pueden realizarlo sin ningn
problema, por eso este curso de computacin y algoritmos II ser de gran
importancia en nuestra formacin profesional.

EAPIM UNC pg. 23


COMPUTACIN Y ALGORITMOS II

VIII. BIBLIOGRAFA

Datamme, 2003 Datarmne Studio v 2, Catena Systems.


Denby, B y Schofield, D, 1999 Papel "de la realidad virtual en la
formacin de seguridad de personal de la mina. Minera
Peter Norton, Introduccin a la Computacin, Ed. Mc Graw-Hill.
Luis Joyanes Aguilar, Fundamentos de programacin. algoritmos y
estructuras de datos, Ed. Mc Graw-Hill.

EAPIM UNC pg. 24

You might also like