lunes, 9 de julio de 2012

Inicialización de Variables

El perfil que uso en PSeInt no obliga a inicializar las variables.


Lo hago así no porque sea más cómodo (aunque en realidad lo es), sino porque se corresponde más con la realidad de los lenguajes de programación.

Cuando se declaran variables automáticamente se les asigna un valor predefinido por el lenguaje. En PSeInt esos valores predefinidos son:
  • Entero
    • 0
  • Real
    • 0
  • Cadena
    • ""
  • Logico
    • Falso
Inicializar es asignar en forma explícita un valor a una variable antes de usarla en un proceso:



En el ejemplo la variable x se inicializa en la línea 5 antes de comenzar el proceso de la línea 8. Alguién podrá decir que no era necesario ya que la definición de x automáticamente le asigna el valor 0, y tiene razón, pero hay una máxima de los programadores que dice así:

Entre inicializar y no inicializar, siempre es mejor inicializar.

La razón es muy simple: así se está 100% seguro.

¿Con qué valor se debe inicializar?

Con aquel valor que resulte más adecuado comenzar el proceso, así que la respuesta es el "depende", que aunque es la típica contestación cuando no se sabe, es la respuesta correcta en este caso: depende.

5 comentarios:

  1. En resumen bajo que circunstancias tendría que inicializar una variable? Yo me doy cuenta mediante el software pero si no me lo dijera como error lo dejo como esta.

    ResponderEliminar
  2. Proceso ejercicio_9
    definir n1, n2 Como real;
    definir suma, resta, multiplicacion, divicion Como Real;
    definir operaciones Como caracter;
    escribir "ingrese el primer numero";
    leer n1;
    escribir "ingrese el segundo numero";
    leer n2 ;

    segun operaciones hacer
    1:
    escribir "se va a sumar";
    2:
    escribir "se va a resta";
    3:
    Escribir "se va a multiplicar";
    4:
    escribir "se va a dividir";
    FinSegun
    suma <- n1 + n2;
    resta <- n1 - n2;
    multiplicacion <- n1 * n2;
    divicion <- n1 / n2;
    escribir "la suma es:",suma;
    escribir "la resta es:", resta;
    escribir "la multiplicacion es:", multiplicacion;
    escribir "la divicion es:", divicion;
    FinProceso


    no me deja ejecutarlo me dice que no esta inicializado la variable (proceso)

    ResponderEliminar
    Respuestas
    1. son varias cosas, pero podría quedar asi:

      Proceso ejercicio_9
      definir n1, n2 Como real;
      //definir suma, resta, multiplicacion, divicion Como Real;
      definir operaciones Como caracter;

      escribir "ingrese el primer numero";
      leer n1;
      escribir "ingrese el segundo numero";
      leer n2 ;

      escribir "elige del menu";
      escribir "uno";
      escribir "dos";
      escribir "tres";
      escribir "cuatro";

      leer operaciones;
      segun operaciones hacer
      'uno':
      escribir "se va a sumar ", n1 + n2;

      'dos':
      escribir "se va a resta" , n1 - n2;

      'tres':
      Escribir "se va a multiplicar ", n1 * n2;

      'cuatro':
      escribir "se va a dividir ", n1 / n2;

      FinSegun

      FinProceso

      Eliminar
  3. algoritmo holaMundo
    definir cant_productos, costo_docena, Total_pagar, obsequio, descuento como numerico;
    Escribir "Digite la cantidad de productos en docena";
    Leer cant_productos;
    Escribir "Digite el costo de cada dicena";
    Leer costo_docena;
    Si cant_productos >=3 entonces
    descuento<-(costo_docena *cant_productos)* 0.15 ;
    Total_pagar<-(costo_docena *cant_productos)-descuento;
    Sino
    descuento<-(costo_docena *cant_productos) *0.10;
    Total_pagar<- (costo_docena *cant_productos)-descuento;
    Finsi
    Si cant_productos>3 entonces
    Obsequio<- cant_productos - 3;
    Finsi
    Escribir "El monto de la compra es: ", costo_docena * cant_productos;
    Escribir "El monto de descuento es: ", descuento;
    Escribir "El monto a pagar es: ", Total_pagar;
    Escribir "La cantidad de obsequio fue: ",obsequio;
    Escribir " La cantidad de productos comprados fue: ", cant_productos * 12 +obsequios;
    finalgoritmo

    Me tira que la variable obsequio no a sido inicializada

    ResponderEliminar
    Respuestas
    1. solo checa el nombre de tu variable obsequio, que en todos lados se llame igual

      Eliminar