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.");
}