sábado, 1 de junio de 2019

entorno c++

Entornos de desarrollo gratis para C/C++
C y C++ son lenguajes bastante utilizados en la actualidad y en los que hay muchos entornos de desarrollos que se pueden utilizar para programar. Vamos a indicar un listado de entornos gratuitos que podemos utilizar para programar ya sea en C o C++.

Ultimate++
Es un entorno de desarrollo rápido de aplicaciones en C++. Incluye un conjunto de bibliotecas de usuario (GUI, SQL,...). Cuenta con tecnología BLITZ para acelerar las recompilaciones de C++ hasta 4 veces. También presente un un poderoso analizador de código que ofrece características como autocompletado de código, navegación y transformación.

Zinjai
Desarrollo hecho en castellano para el desarrollo utilizando C++. Entre sus características incluye:
  • Coloreado de texto.
  • Desarrollo rápido de ejercicios sin necesidad de tener que crear proyectos.
  • Completo sistema de ayuda, toda en castellano.
  • Autocompletado y ayuda de funciones.
  • Portabilidad. Puede funcionar tanto bajo en Windows como en Linux.
  • Licencia GPL

CodeLite
CodeLite es una IDE multiplataforma libre y de código abierto para los lenguajes C/C++ que usa wxWidgets para su interfaz gráfica. Para cumplir con el espíritu de código abierto de CodeLite, se compila y depura usando solo herramientas libres (MinGW y GDB).
CodeLite ofrece gestión de proyectos (espacios de trabajo/proyectos), autocompletación de código, navegación por los ficheros fuente, resaltado de syntaxis, integración con Subversion, Cscope y UnitTest++, un debugger interactivo montado sobre gdb y un editor de código potente, basado en Scintilla Se distribuye bajo licencia la licencia GNU General Public License v2 o posterior.

Code Blocks
Code::Blocks es un entorno de desarrollo integrado  libre y multiplataforma para el desarrollo de programas en lenguaje C++. Está basado en la plataforma de interfaces gráficas WxWidgets, lo cual quiere decir que puede usarse libremente en diversos sistemas operativos, y está licenciado bajo la Licencia pública general de GNU.

Adjunta DevStudio
Es un entorno integrado de desarrollo para programar en los lenguajes C, C++, Java y Python, en sistemas GNU/Linux. Su principal objetivo es trabajar con GTK y en el escritorio  GNOME, además ofrece un gran número de características avanzadas de programación. Anjuta es software libre, liberado bajo la licencia GPL.
Incluye un administrador de proyectos, asistentes, plantillas, depurador interactivo y un poderoso editor que verifica y resalta la sintaxis escrita.

Geany
Es un editor ligero basado en Scintilla. Está disponible para distintos sistemas operativos como Windows, Linux, Mac OS X, BSD y Solaris.
Soporta muchos lenguajes, entre ellos C, C++, Java, PHP,..... Tiene autocompletador, soporte de proyectos, coloreado de sintaxis y un emulador de terminal embebido.

Kdevelop
Es un entorno de desarrollo para sistemas GNU/Linux, publicado bajo licencia GPL, y orientado bajo el uso del entorno gráfico KDE. La última versión soporta otros lenguajes como C, C++, Java, Ada, SQL... Entre sus características destacan:
  • Resaltado de sintaxis de código fuente.
  • Navegador entre clases de la aplicación.
  • Front-end para gcc
  • Completado del código en C y C++

Monodevelop
Entorno de desarrollo libre y gratuito, diseñado sobre todo para C. Incluye manejo de clases, ayuda incorporada y autocompletado de código y un depurador integrado. Puede ejecutarse en las distintas distribuciones de Linux y Mac.

Qt Creator
Es un entorno de desarrollo para C++ multiplataformas. Entre sus características están:
Avanzado editor de código C++
Gestión y administración de proyectos.
Sistema de ayuda
Depurador visual

Sun Studio
Es una herramienta de desarrollo pensada para C, C++ y Fortran. Es multiplataforma y es compatible con Solaris, OpenSolaris y Linux
Sharp develop
Es un entorno libre para los lenguajes de programación C, Visual Basic .NET y Boo. Entre sus características principales están:
  • Diseñador de Windws Forms.
  • Completador de Código
  • Depurador
  • Coloreado de sintaxis.
  • Llaves inteligentes para la escritura de código

WxDev-C++
Entorno de desarrollo libre basado en el popular Dev-C++. Entre sus características destaca:
  • Diseñador de forma de wxWidgets.
  • Depurador integrado
  • Completado de código
  • Resaltado de sintaxis.
  • Soporte para CSV
Rápidamente se crean aplicaciones para Windows y de consola, librerías y DLL

Borland C++
Es un entorno de desarrollo para C++ bajo Windows. Combina la libería Visual Comonent Library y el IDE escrito en Delphi con un modeno compilador de C++. Incluye herramientas que permiten un desarrollo visual de arrastrar y soltar componentes sobre la aplicación, haciendo el acto de programar mucho mas sencillo.

Xcode 
Es el entorno de desarrollo integrado de Apple y se suministra gratis junto con Mac OS X. Incluye la colección de compiladores del proyecto GNU (GCC) y puede compilar C, C++, Objective-C++, Java y AppleScript.

viernes, 31 de mayo de 2019

funciones bibliotecarias

 ofrece un conjunto de funciones estándar que dan soporte a las operaciones que se utilizan con más frecuencia. Estas funciones están agrupadas en bibliotecas. Para utilizar cualquiera de las funciones que forman parte de las bibliotecas estándar de C, sólo hace falta realizar una llamada a dicha función.

Las funciones que forman parte de la biblioteca estándar de C, funciones estándar o predefinidas, están divididas en grupos. Todas las funciones que pertenecen a un mismo grupo se definen en el mismo fichero de cabecera.


Cuando deseamos utilizar cualquiera de las funciones estándar de C, primero debemos utilizar la directiva de precompilación #include para incluir los ficheros cabecera en nuestro programa. Por otra parte, antes de utilizar una función, primero debemos conocer las características de dicha función, es decir, el número y tipo de datos de sus argumentos y el tipo de valor que devuelve. Esta información es proporcionada por los prototipos de función.

Los grupos de funciones estándar más comunes son:
- entrada/salida estándar
- matemáticas
- de conversión
- diagnóstico
- de manipulación de memoria
- control de proceso
- ordenación
- directorios
- fecha y hora
- búsqueda
- manipulación de cadenas
- gráficos

Podemos incluir tantos ficheros de cabecera como nos haga falta, incluyendo los ficheros de cabecera que hemos creado y donde hemos definido nuestras funciones. En el resto de este apartado veremos algunas de las funciones de la entrada/salida estándar más utilizadas.


Cuando no se especifica un tipo de dato es porque la función permite mas de uno ya sea a través de casting o de otra maña. Esta parte como ya se explico antes es solo para mostrar el formato de las funciones.

Funciones de :
  int printf("cadena de formato", variable1, variable2);  //Muestra por pantalla
  int scanf("cadena de formato", variable1, variable2);  //Lee de pantalla



Funciones de :
  int system("llamada");



Funciones de :

  double sin(valor);  //Calcula el sinus
  double cos(valor);  //Calcula el cosinus
  double tan(valor);  //Calcula la tangente
  double asin(valor);
  double atan(valor);
  double acos(valor);
  double sinh(valor);
  double cosh(valor);
  double tanh(valor);
  double log10(valor);
  double log(valor);
  double ldexp(valor1,valor2);
  double pow(valor);
  double sqrt(valor);  //Calcula raíces cuadradas




Funciones de 
  struct tm time();
Funciones de :
  int strcmp(cadena1, cadena2); //Compara dos cadenas de carácteres
  int strcat(cadena1, cadena2); 
  int strcpy(cadena1, cadena2); //Copia la primera cadena en la segunda
  int strlen(cadena);  //Da la longitud de una cadena



Funciones de :

Función toupper ANSI C Convierte un carácter, en un parámetro entero ch, a mayúscula.
Valor de retorno: ch debe estar en el rango 0 a 255, y si está entre a y z lo convierte a su equivalente en el rango A a Z, el resto de los valores no son modificados. El valor de retorno es el valor convertido si ch era una minúscula, o el valor original en caso contrario. Nota: los caracteres en acentuados, o con diéresis, en minúscula y la ñ no sufren modificaciones.



Ejemplo:

#include 
#include 
 
int main()
{
   char cadena[] = "esto es una cadena de prueba";
   int i;
 
   for(i = 0; cadena[i]; i++) 
      cadena[i] = toupper(cadena[i]);
 
   printf("%sn", cadena);
   return 0;
}

jueves, 30 de mayo de 2019

Programacion modular



 programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable.
Se presenta históricamente como una evolución de la programación estructurada para solucionar problemas de programación más grandes y complejos de lo que esta puede resolver.
Al aplicar la programación modular, un problema complejo debe ser dividido en varios subproblemas más simples, y estos a su vez en otros subproblemas más simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser resueltos fácilmente con algún lenguaje de programación. Esta técnica se llama refinamiento sucesivo, divide y vencerás o análisis descendente (Top-Down).
soporte.
Un 'módulo' es cada una de las partes de un programa que resuelve uno de los subproblemas en que se divide el problema complejo original. Cada uno de estos módulos tiene una tarea bien definida y algunos necesitan de otros para poder operar. En caso de que un módulo necesite de otro, puede comunicarse con éste mediante una interfaz de comunicación que también debe estar bien definida.
Si bien un módulo puede entenderse como una parte de un programa en cualquiera de sus formas y variados contextos, en la práctica se los suele tomar como sinónimos de procedimientos y funciones. Pero no necesaria ni estrictamente un módulo es una función o un procedimiento, ya que el mismo puede contener muchos de ellos. No debe confundirse el término "módulo" (en el sentido de programación modular) con términos como "función" o "procedimiento", propios del lenguaje que lo soporte en el programa

miércoles, 29 de mayo de 2019

instruccion case

Switch case es una estructura de control empleada en programación. Se utiliza para agilizar la toma de decisiones múltiples; trabaja de la misma manera que lo harían sucesivos ifif else o until anidados, así como combinaciones propias de determinados lenguajes de programación.
El switch no es tan popular como el if, pero se utiliza con regularidad en la programación. En principio la funcionalidad de un switch también se puede implementar con múltiples if anidados. En el caso de que haya muchas acciones dependientes de muchos valores iniciales, es recomendable su uso. El switch favorece la Facilidad y rapidez en la programación.
El switch no solo te ayuda en ciertos casos. Si no que te permite realizar " Opciones " Que en un if no lo pudieras hacer nada".
switch( variable ){
  case valor1: accion1; (*)
  case valor2: accion2; (*+++)
  case valor3: accion3; (*)
  ...
  case valorN: accionN; (*)

  default: accionD; (**)
}
  • (**) La acción default es usada para los valores que no correspondieron en casos anteriores, y puede aparecer sin "accionD()", e incluso, con el break al final.
  • (*) En estos huecos, al final de las acciones acción1, acción2,... incluso después de la accionD, normalmente se suele usar un break para salir del switch. Su uso, generalizado, permite realizar programas que, por ejemplo, se comportan de diferente modo por cada entrada:
Switch( número )
{
  case 0: escribir("No hay elementos.");
  break;
  case 1: escribir("Hay solo un elemento.");
  break;
  default: escribir("Hay " número " elementos"); /* break; */
}
En este ejemplo,es necesario utilizar la palabra reservada break, excepto en el último (que está entre comentarios y por lo tanto no se ejecutará) para el correcto funcionamiento del programa. Esto lo que hace es, dependiendo si el número que contiene la variable número es 0, 1 u otro cualquiera, escribir que No hay elementosHay solo un elemento o Hay numero elementos respectivamente.
En cambio, el uso del switch puede ser interesante sin recurrir a los break al final de las acciones, por ejemplo, en este otro programa:
Switch( paso )
{
  case 1: escribir("Paso 1 (ponerse cómodo) sin finalizar. ");
  case 2: escribir("Paso 2 (regular espejos) sin finalizar. ");
  case 3: escribir("Paso 3 (abrochar cinturón) sin finalizar. ");
  case 4: escribir("Paso 4 (arrancar motor) sin finalizar. ");
}
Este otro programa muestra por pantalla los pasos que aun faltan por realizar de una tarea pre-programada. Por ejemplo, si estamos en el paso 1, todavía nos quedará terminar ese, el 2, el 3 y el 4, por lo que mostrará desde el 1 en adelante. Pero si estamos en el paso 3, solo mostrará que falta el Paso 3 y el Paso 4.
Por supuesto, el uso de los break se puede usar en diferentes acciones, sin ser en todas o en ninguna, por ejemplo, añadiendo un paso final al anterior programa:
Switch( paso ){
  case 1: escribir("Paso 1 (ponerse cómodo) sin finalizar. ");
  case 2: escribir("Paso 2 (regular espejos) sin finalizar. ");
  case 3: escribir("Paso 3 (abrochar cinturón) sin finalizar. ");
  case 4: escribir("Paso 4 (arrancar motor) sin finalizar. ");
  break;
  case 5: escribir("Tarea finalizada.");
}