tarea 1 de progra
DESCRIPTION
conceptos basicosTRANSCRIPT
IDEIDE de Programación: Un IDE es un entorno de programación que ha sido
empaquetado como un programa de aplicación, o sea, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica. Los IDEs pueden ser aplicaciones por sí solas o pueden ser parte de aplicaciones existentes. El lenguaje Visual Basic, por ejemplo, puede ser usado dentro de las aplicaciones de Microsoft Office, lo que hace posible escribir sentencias Visual Basic en forma de macros para Microsoft Word.
Contenido
[ocultar]
1 Características 2 Componentes 3 Ejemplos 4 Fuente
Características
Los IDE ofrecen un marco de trabajo amigable para la mayoría de los lenguajes de programación tales como C++, Python, Java, C#, Delphi, Visual Basic, etc. En algunos lenguajes, un IDE puede funcionar como un sistema en tiempo de ejecución, en donde se permite utilizar el lenguaje de programación en forma interactiva, sin necesidad de trabajo orientado a archivos de texto, como es el caso de Smalltalk u Objective-C.
Es posible que un mismo IDE pueda funcionar con varios lenguajes de programación. Este es el caso de Eclipse, al que mediante plugins se le puede añadir soporte de lenguajes adicionales.
Un IDE debe tener las siguientes características:
Multiplataforma Soporte para diversos lenguajes de programación Integración con Sistemas de Control de Versiones Reconocimiento de Sintaxis Extensiones y Componentes para el IDE Integración con Framework populares Depurador Importar y Exportar proyectos Múltiples idiomas Manual de Usuarios y Ayuda
Componentes
Editor de texto. Compilador. Intérprete.
Herramientas de automatización. Depurador. Posibilidad de ofrecer un sistema de control de versiones. Factibilidad para ayudar en la construcción de interfaces gráficas de usuarios.
Ejemplos
Eclipse: Entorno de desarrollo integrado de código abierto multiplataforma para desarrollar proyectos. Esta plataforma ha sido usada para desarrollar entornos de desarrollo integrados , como el IDE de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados también para desarrollar el mismo Eclipse). También se puede usar para otros tipos de aplicaciones cliente, como BitTorrent o Azureus. En Eclipse se pueden usar diferentes lenguajes de programación como: Java, ANCI C, C++, JSP, sh, perl, php, sed.
NetBeans: Programa que sirve como IDE que permite programar en distintos lenguajes, es ideal para trabajar con el lenguaje de desarrollo JAVA (y todos sus derivados), además ofrece un excelente entorno para programar en PHP. También se puede descargar una vez instalado NetBeans, los complementos para programar en C++. La IDE de NetBeans es perfecta y muy comoda para los programadores. Tiene un excelente balance entre una interfaz con múltiples opciones y un aceptable completamiento de código.
Geany: Es un IDE que hasta hace bien poquito sólo estaba disponible para sistemas Linux, Mac OS X y BSD, pero ya está disponible para Windows. Este entorno es muy sencillo, pero proporciona las funcionalidades necesarias para desarrollar aplicaciones sin problemas. Su interfaz está dividida en tres zonas: panel lateral con el árbol de carpetas y documentos abiertos, sección principal para el código y panel inferior para los mensajes de la aplicación, compilación, etc. Este IDE permite
programar en diferentes lenguajes como: C, C++, Java, Python, Pascal, SQL o HTML
CodeRun: Es un IDE que te permitirá programar en línea varios lenguajes, entre ellos PHP, Ajax, C#, CSS, JavaScript y HTML. Funciona perfectamente, aunque está en inglés, es útil para quién no disponga de un buen editor a mano.
En el post anterior estuve hablando sobre la versión del compilador gcc para windows, y explique que para ejecutar gcc en Windows necesitabamos una de estas opciones:
MinGWMinGW : Esta es una colección de ficheros de cabecera y librerías que permiten
usar gcc y generar programas para Windows plataforma de 32 bits, que no necesitan de librerías de ejecución externa.
MinGW tal como su nombre lo dice : Minimalist GNU For Windows, sólo entrega unas herramientas básicas para poder trabajar con gcc. En el sitio web del proyecto se explica que no esta pensado para el desarrollo de aplicaciones POSIX, dentro de Windows. Para ese tipo de tareas avanzadas, se debe echar mano de otra herramienta llamada CYGWIN.
Actualmente viene con MinSys , que es una herramienta la cual permite implementar una capa de shell
CYGWIN: Es una completa colección de programas y librerías GNU, ademas de una dll (cygwin1.dll) que actúa como una API GNU/Linux. No es un emulador de Linux, no se pueden ejecutar binarios de GNU/Linux en el, tal como a la inversa lo hacen Wine y CrossOver en GNU/Linux.
Cygwin se instala como un programa de Windows cualquiera y consta de un instalador de unso 600 kb. Durante el proceso de instalación nos permite elegir los paquetes a instalar ( si vamos a instalarlos desde internet), y la descarga y tiempo que demorará la instalación de éstos dependerá de la cantidad de paquetes que se haya escogido.
Nightly BuildsLas Nightly Builds son compilaciones automáticas de un programa que se hacen
todas las noches y que incorporan todas las modificaciones que se han hecho durante el día.
La ventaja es que puede incluir cosas que todavía no están incluidas en las versiones estables; pero como son automáticas no hay garantía de que las modificaciones funcionen adecuadamente porque en general no están completamente probadas.
stdio.hstdio.h, que significa "standard input-output header" (cabecera estándar E/S), es
el archivo de cabecera que contiene las definiciones de las macros, las constantes, las declaraciones de funciones de la biblioteca estándar del lenguaje de programación C para hacer operaciones, estándar, de entrada y salida, así como la definición de tipos necesarias para dichas operaciones. Por motivos de compatibilidad, el lenguaje de programación C++ (derivado de C) también tiene su propia implementación de estas funciones, que son declaradas con el archivo de cabecera cstdio
Las funciones declaradas en stdio.h pueden clasificarse en dos categorías: funciones
de manipulación de ficheros y funciones de manipulación de entradas y salidas.
Nombre Descripción
Funciones de manipulación de ficheros
fclose Cierra un fichero a través de su puntero.
fopen,freopen,fdopenAbre un fichero para lectura, para escritura/reescritura o
para adición.
remove Elimina un fichero.
rename Cambia al fichero de nombre.
rewindColoca el indicador de posición de fichero para el stream
apuntado por stream al comienzo del fichero.
tmpfileCrea y abre un fichero temporal que es borrado cuando
cerramos con la función fclose().
Funciones de manipulación de entradas y salidas.
clearerr
Despeja los indicadores de final de fichero y de posición de
fichero para el stream apuntado por stream al comienzo del
fichero.
feof Comprueba el indicador de final de fichero.
ferror Comprueba el indicador de errores.
fflush
Si stream apunta a un stream de salida o de actualización
cuya operación más reciente no era de entrada, la
función fflush envía cualquier dato aún sin escribir al
entorno local o a ser escrito en el fichero; si no, entonces el
comportamiento no está definido. Si stream es un puntero
nulo, la función fflush realiza el despeje para todos
losstreams cuyo comportamiento está descrito
anteriormente.
fgetpos Devuelve la posición actual del fichero.
fgetc Devuelve un carácter de un fichero.
fgets Consigue una cadena de caracteres de un fichero.
fputc Escribe un carácter en un fichero.
fputs Escribe una cadena de caracteres en un fichero.
ftellDevuelve la posición actual del fichero como número de
bytes.
fseek Sitúa el puntero de un fichero en una posición aleatoria.
fsetpos Cambia la posición actual de un fichero.
fread lee diferentes tamaños de datos de un fichero.
fwrite
Envía, desde el array apuntado por puntero,
hasta nmemb de elementos cuyo tamaño es especificado
por tamaño. El indicador de posición de ficheros es
avanzado por el número de caracteres escritos
correctamente. Si existe un error, el valor resultante del
indicador de posición de ficheros es indeterminado.
getc Devuelve un carácter desde un fichero.
getchar Igual que getc.
getsLee caracteres de entrada hasta que encuentra un salto de
línea, y los almacena en un único argumento.
f,fprintf,sprintf
snprintf
Usados para imprimir salidas de datos.
vprintf También utilizado para imprimir salidas.
perror Escribe un mensaje de error a stderr.
putc Devuelve un carácter de un fichero.
putchar,fputchar Igual que putc(stdout).
scanf,fscanf,sscanf Utilizado para introducir entradas.
vfscan
f,vscanf,vsscanfTambién utilizado para introducir entradas.
setbuf
Esta función es equivalente a la función setvbuf pasando
los valores _IOFBF para modo y BUFSIZ para tamaño, o (si
acumulador es un puntero nulo), con el valor _IONBF para
modo.
setvbuf
Sólo puede ser usada después de que el stream apuntado
por stream ha sido asociado con un fichero abierto y antes
de otra operación cualquiera es llevada acabo al stream. El
argumento modo determina cómo stream será almacenado
según lo siguiente: _IOFBF ocasiona la entrada/salida a ser
completamente almacenado; _IOLBF ocasiona la
entrada/salida a almacenar por líneas; _IONBF ocasiona la
entrada/salida a no ser almacenado. Si acumulador no es
un puntero nulo, el array al que es apuntado puede ser
usado en vez de la acumulación adjudicada por la función
setvbuf. El argumento tamaño especifica el tamaño del
array.
tmpnam
Genera una cadena de caracteres que es un nombre válido
para ficheros y que no es igual al nombre de un fichero
existente. La función tmpnam genera una cadena diferente
cada vez que es llamada, hasta un máximo de TMP_MAX
veces. Si la función es llamada más veces que TMP_MAX,
entonces el comportamiento de la función está definido
según la implementación del compilador.
ungetc
puts Imprime una de cadena de caracteres.
.
stdlib.h
stdlib.h (std-lib: standard library o biblioteca estándar) es el archivo de cabecera de la biblioteca estándar de propósito general del lenguaje de programación C. Contiene los prototipos de funciones de C para gestión de memoria dinámica, control de procesos y
otras. Es compatible con C++ donde se conoce como cstdlib .
Las funciones que pertenencen a stdlib.h pueden clasificarse en las siguientes
categorías: conversión, memoria, control de procesos, ordenación y búsqueda,
matemáticas.
Nombre Descripción
Conversión de tipos
atof (ascii to float) cadena de caracteres a coma flotante
atoi (ascii to integer) cadena de caracteres a entero
atol (C Standard
Library)]] (ascii to long)cadena de caracteres a entero tamaño largo
strtod (string to double)cadena de caracteres a coma flotante tamaño
doble
strtol (string to long) cadena de caracteres a entero largo
strtoul (string to unsigned long)cadena de caracteres a entero largo sin signo
(positivo)
Generación de números pseudo-aleatorios
rand Genera un número pseudo-aleatorio
srandEstablece la semilla para el generador de
números pseudo-aleatorios
Gestión de memoria dinámica
malloc, calloc, reallocReservan memoria dinámica
del heap (montón o montículo)
free Liberan memoria devolviéndola al heap
Control de procesos
abort terminar ejecución anormalmente
atexitregistrar una función callback para la salida del
programa
exit (operating system) terminar ejecución del programa
getenv recuperar una variable de entorno
system (C Standard Library) ejecutar un comando externo
Ordenación y búsqueda
bsearch búsqueda binaria en un array
qsort (C Standard Library) ordena un vector (informática) usando Quicksort
Matemáticas
abs, labs valor absoluto
div, ldiv división entera o euclidiana
GNU
La Licencia Pública General de GNU o más conocida por su nombre
en inglés GNU General Public License (o simplemente sus siglas del inglés GNU
GPL) es la licencia más ampliamente usada1 en el mundo del software y garantiza a los
usuarios finales (personas, organizaciones, compañías) la libertad de usar, estudiar,
compartir (copiar) y modificar el software. Su propósito es declarar que el software
cubierto por esta licencia es software libre y protegerlo de intentos de apropiación que
restrinjan esas libertades a los usuarios. Esta licencia fue creada originalmente
por Richard Stallman fundador de la Free Software Foundation (FSF) para el proyecto
GNU.
La licencia GPL puede ser usada por cualquiera, ya que su finalidad es proteger
los derechos de los usuarios finales (usar, compartir, estudiar y modificar). Esta es la
primera licencia copyleft para uso general, lo que significa que los trabajos derivados
sólo pueden ser distribuidos bajo los términos de la misma licencia. Bajo esta filosofía,
la licencia GPL garantiza a los destinatarios de un programa de computador los
derechos y libertades reunidos en definición de software libre y usa copyleft para
asegurar que el software está protegido cada vez que el trabajo es distribuido,
modificado o ampliado. En la forma de distribución (sólo pueden ser distribuidos bajo
los términos de la misma licencia) se diferencian las licencias GPL de las licencias de
software libre permisivas, de las cuales los ejemplos más conocidos son las licencias
BSD (BSD licenses).
El software bajo licencia GPL puede ser aplicado bajo todos los propósitos,
incluidos los propósitos comerciales e incluso como herramienta de creación
de software propietario. En uso puramente privativo (o interno), sin ventas ni
distribuciones implicadas, el software puede ser modificado sin liberar el código fuente
pero, de lo contrario, el código fuente y cualquier cambio realizado en él debe estar
disponible para los usuarios, ya que en este caso los derechos del usuario están
protegidos por copyleft. De esta forma, las aplicaciones instaladas en sistemas
operativos bajo licencia GPL como Linux, no es necesario que estén licenciadas bajo
GPL o que estén distribuidas con su código fuente disponible ya que las licencias no
dependen de la plataforma. Por ejemplo, si un programa está formado completamente
por código original, o si está combinado con software que no cumple los requisitos de
copyleft no es necesario que se licencie bajo GPL o que se distribuya con su código
fuente disponible. Sólo si un programa utiliza fragmentos de código GPL (y el
programa es distribuido) el código fuente en su totalidad debe estar disponible, bajo la
misma licencia. La licencia LGPL (GNU Lesser General Public License) fue creada
para tener derechos menos restrictivos que GPL, por lo que en este caso en un programa
que utiliza fragmentos de código LGPL, no es necesario liberar el código original.
Los usuarios o companías que distribuyen sus trabajos bajo licencias GPL,
pueden cobrar o distribuirlas gratuitamente. Esto distingue las licencias GPL de las
licencias de software que prohíben su distribución comercial. La FSF argumenta que no
se debe restringir la distribución comercial del software (incluyendo la
redistribución),2 ya que la GPL establece explícitamente que las obras cubiertas por esta
licencia se pueden vender a cualquier precio.