miércoles, 27 de enero de 2016

Variables Locales

Variable local

Una variable local es, en informática, la variable a la que se le otorga un ámbito local. Tales variables sólo pueden accederse desde la función o bloque de instrucciones en donde se declaran. Las variables locales se contraponen a las variables globales.
En la mayoría de lenguajes de programación las variables locales son variables automáticas almacenadas directamente en la pila de llamadas. Esto significa que cuando unafunción recursiva se llama a sí misma, las variables locales reciben, en cada instancia de la función, espacio para el direccionamiento de memoria separados. De esta forma las variables con este ámbito se pueden declarar, reescribir y leer sin riesgo de efectos secundarios para los procesos fuera del bloque en el que son declarados.
Los lenguajes de programación que se sirven de la semántica llamada por valor semantics proven una subrutina llamada con su propia copia local de los argumentos que se pasan. En la mayoría de lenguajes, a estos parámetros locales se les trata igual que otras variables locales dentro de la subrutina. Por otro lado las semánticas llamada por referencia y llamada por nombre permiten que los parámetros actúen como alias de los argumentos que se pasan, permitiendo a la subrutina modificar variables al margen de su ámbito.
Algunos expertos abogan por limitarse al uso de variables locales para evitar efectos laterales en el resto del software motivados por un cambio en un módulo en particular.

Variables Globales

Variable global

Una variable global es, en informática, una variable accesible en todos los ámbitos de un programa informático. Los mecanismos de interacción con variables globales se denominan mecanismos de entorno global. El concepto de entorno global contrasta con el de entorno local donde todas las variables son locales sin memoria compartida (y por ello todas las iteraciones pueden restringirse al intercambio de mensajes).
El uso de este tipo de variables suele considerarse como una mala práctica, por el riesgo que conlleva esa deslocalización: una variable global puede ser modificada en cualquier parte del programa (a menos que resida en una sección de memoria protegida) y cualquier parte del programa depende de ella. Es por ello que una variable global tiene un potencial ilimitado para crear dependencias, factor éste que aumenta la complejidad. Sin embargo, en algunas ocasiones, las variables globales resultan muy útiles. Por ejemplo, se pueden usar para evitar tener que pasar variables usadas muy frecuentemente de forma continua entre diferentes subrutinas.
Las variables globales se usan de forma frecuente para pasar información entre diferentes secciones del código que no comparten una relación de "función llamadora" - "función llamada", como ocurre con hilos concurrentes y módulos para el manejo de señales. Los lenguajes de programación donde cada archivo define un espacio de nombres implícito elminan la mayor parte de los problemas de los lenguajes con nombres de espacios globales, aunque pueda haber algunos problemas si no se tiene cuidado a la hora deencapsular el código. Sin las restricciones adecuadas (como por ejemplo con un mutex), el código que usa variables globales no será a prueba de hilos excepto para los valores de sólo lectura en la memoria protegida.
Ejemplo de una variable global en C++
#include <iostream>

int global = 3; // Esta es la variable global.

void ChangeGlobal()
{
   global = 5; // Se referencia la variable global en una función.
}

int main()
{
   std::cout << global << '\n'; // Se referencia la variable global en una segunda función.
   ChangeGlobal();
   std::cout << global << '\n';
   return 0;
}

lunes, 18 de enero de 2016

Funciones

COMO CREAR NUESTRAS FUNCIONES.
Objetivo: Realizar los ejercicios para que mediante la explicacion en clase podamos comprender el tema de funciones para poder aplicarlo en los programas a realizar.

Programa que utiliza dos funciones con variables enlazadas que haran que imprima la raiz positiva y negativa.

#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
int res;
int op;
int mult,num;
int funcion(int num)
{   printf("inserte el  numero:");
    scanf("%d",&num);
   res=num*num*num;
   printf("%d",res);
    }
    int funcion2(int mult)
    {
        mult=res*-1;
        printf("%d",mult);
        }
 main(){
      
       funcion(num);
       funcion2(mult);
       getch();
       return 0;
       }

Funciones

COMO CREAR NUESTRAS FUNCIONES.
Objetivo: Realizar los ejercicios para que mediante la explicacion en clase podamos comprender el tema de funciones para poder aplicarlo en los programas a realizar.
 

En el siguiente ejercicio es la aplicacion de funciones creasdas para que se realizen operaciones dentro de ella y luego imprimirla en la funcion principal.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define bono 0.20
float horas, costo,subtotal,valorbono,total,valor;
void funcion(){
        printf("Ingrese la cantidad de horas trabajadas:");
             scanf("%f",&horas);
             printf("Ingrese el costo por ora:");
             scanf("%f",&costo);
subtotal=horas*costo;
valorbono=subtotal*bono;
total=valorbono+subtotal;
printf("El subtotal es: %f\n",subtotal);
printf("El bono es: %f\n",valorbono);
printf("El valor  es: %f\n",total);
   }
      main(){
        
             funcion();
    
             getch();
             }

Funciones

COMO CREAR NUESTRAS FUNCIONES.
Objetivo: Realizar los ejercicios para que mediante la explicacion en clase podamos comprender el tema de funciones para poder aplicarlo en los programas a realizar.

En el siguiente ejemplo es el uso de un FOR dentro de una funcion creada por nosotros.

#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
int n,i,suma,res;

int beta(int n){
  
  
     for(i;i<=n;i++){
    suma= i+suma;
     printf("\n %d",i);
    
    }
    return suma;
     }
                         main (){
  printf("ingrese al numero que desea llegar :");
                            scanf("%d",&n);
                          
                           res=beta( n);
                              printf("\n \n  la suma de los nuemros es :%d",res);
                           getch();
                           }

Funciones

COMO CREAR NUESTRAS FUNCIONES.
Objetivo: Realizar los ejercicios para que mediante la explicacion en clase podamos comprender el tema de funciones para poder aplicarlo en los programas a realizar.

La funcion siguiente es creada y crea una serie hasta el numero que se desee llegar

#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
int n,i;

void beta(void){
  
      printf("ingrese al numero que desea llegar :");
     scanf("%d",&n);
     for(i;i<=n;i++){
     printf("\n %d",i);
     }
     }
                         main (){
                           beta();
                           getch();
                           }
        

Variable Constante

Objetivo:Realizar la investigacion de los conceptos de una variable constante para asi poder entedner mejor su funcionamiento dentro un progrmama, esto mediante la utilizacion de las herramientas de busqueda como son el internet


Variables constantes

Una variable declarada const no se puede cambiar, es decir, es una constante. No obstante, la palabra const sólo se tiene en cuenta durante el tiempo de compilación. El compilador emite un error cuando encuentra una instrucción que quiere asignar un valor a una constante, pero físicamente el valor de una constante puede estar guardado en la memoria RAM y cuesta poco asignar otro valor a esta posición mediante un uso malintencionado de punteros y casts.
Cuando un compilador optimiza el código ejecutable, entonces puede optar por noleer el valor de la memoria sino incrustarlo directamente en las instrucciones del procesador. Así es posible que el valor en la memoria RAM cambie pero el programa sigue con el valor que el compilador determinó durante la compilación. No obstante, la dirección de la constante sigue siendo válida aunque el ejecutable no lee de ahí.
Tener una representación física en la memoria es lo que distingue una variable declarada const de constantes definidas por enum o #define. Es decir, puedo hacer esto
const int c = 5;
const int* p = &c;  // p apunta a la dirección de c. *p vale 5.
pero no puede hacer esto
enum { CONSTANTE_ENUM };
const enum* pe = &CONSTANTE_ENUM // Error de compilación
Esto es porque una constante de enum sola no tiene tipo sino sólo representa unvalor. Lo que convierte un enum en un tipo es el conjunto de los valores de que está formado.
La cosa es aún más complicada con los #define. Es una directiva del preprocesador que reemplaza un texto por otro antes de que el código llegue al compilador. Quiere decir, los nombres de las macros definido por #define no existen para el compilador.
#define CONSTANTE 5
int a = CONSTANTE;  // El compilador ve "int a = 5".
Bibliografia: 
https://trucosinformaticos.wordpress.com/2010/05/02/como-usar-const-en-c/

jueves, 7 de enero de 2016

Constante en C

Constante en Lenguaje C++

En programación, una constante es un valor que no puede ser alterado/modificado durante la ejecución de un programa, únicamente puede ser leído.
Una constante corresponde a una longitud fija de un área reservada en la memoria principal del ordenador, donde el programa almacena valores fijos.
Por ejemplo:
  • El valor de pi = 3.1416
Por conveniencia, el nombre de las constantes suele escribirse en mayúsculas en la mayoría de lenguajes
En C las constantes se declaran con la directiva #define, esto significa que esa constante tendrá el mismo valor a lo largo de todo el programa.
El identificador de una constante así definida será una cadena de caracteres que deberá cumplir los mismos requisitos que el de una variable (sin espacios en blanco, no empezar por un dígito numérico, etc).
Ejemplo:
  #include <stdio.h>
  #define PI  3.1415926
  
  int main()
  {
    printf("Pi vale %f", PI);
    return 0;
  }