Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-03-2005
unko! unko! is offline
Miembro
 
Registrado: ene 2005
Posts: 123
Poder: 20
unko! Va por buen camino
VAR y CONST?

olas, por mas ke me explica mi colega sobre estas no le entiendo nada y ya hasta me da werwenza preguntarle de new... asi ke elegi hacerlo en este foro .

mi pregunta es...

para que sirven?
como se usan?

si saben algo mas... ponganlo!!! :P

atte: hagan una separacion para VAR y otra para CONST (cuando me expliken) para no confundir las 2 y enredarme mas de lo ke estoi (si es ke se puede) :P thanx salu2!!
__________________
HazTa La VikToRia... SIEMPRE!
Responder Con Cita
  #2  
Antiguo 14-03-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por unko!
para que sirven?
como se usan?
VAR -> Para Variables
CONST -> Para constantes

Son palabras reservadas que se utilizan en Delphi para declarar Variables y constantes (respectivamente).
(resumiendo mucho) Una variables es un elemento que pertite almacenar un valor que puede cambiar durante la ejecuciónde un programa, mientras que una constante almacena un valor que no va a cambiar durante la ejecución del programa.

No se si es a ésto a lo que te refieres...

Ej:

Código Delphi [-]
 const
   SPACIO = 10;    // diferentes tipos de constantes
   CADENA_ERROR = 'Esto es un error';
 var
   x,i:Integer;  // diferentes tipos de variables
   Str:String;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 14-03-2005
alfredosg19 alfredosg19 is offline
Miembro
 
Registrado: ene 2005
Ubicación: Barcelona
Posts: 91
Poder: 20
alfredosg19 Va por buen camino
Tipos de variables

Las variables pueden ser:
- para una sola aplicación, se declara dentro de un procedure de esta manera:
Código:
 Procedure boton1.click
 var
 contador, numero: integer; //variables numéricas sin decimales
 division, resta: current; //variables numéricas hasta 4 decimales
 divisionlarga: float; //variables con muchos decimales
 hola: string; //variable de cadena de texto (incluidos numeros)
 sino: Boolean; //variable con dos posibilidades con Verdadero o Falso
 Dias: Date;//variable que guarda fechas
 Hores: Time; /variable que guarda horas
 Begin
Estas son las más normales, después para darles un valor:
Asigna un valor sin más:
Código:
 Contador:=1;
Asigna un valor y lo incrementa (muy útil), es un contador.
Código:
 if contador>10 then
 Contador:=contador+1;
Le asignamos el valor de un caption, de un edit...
Código:
 hola:=label1.Caption;
 hola:=edit.text;
- Una variable privada, que es para un Unit (se puede utilizar la misma en todo el Unit):
Se declara en el private
Código:
 Private
 hola: string;
- o en el public si quieres que sea pública (para todo el programa).
Código:
 Public
 hola:string
Hay más variables y su uso es yo creo la base de la programación, para aprender no te aconsejo empollártelas ni hace falta tener la lista delante sino practicar y practicar, así que ánimo y adelante.
__________________
"La perseverancia es el camino del éxito"
Responder Con Cita
  #4  
Antiguo 14-03-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Creo que Neftali y Alfredo han dejado claro el uso de variables y constantes, así que paso a detallar esas palabras reservadas para el paso de parámetros en procedimientos:

Igual que lo explicado anteriormente, const significa Constante, y var significa Variable.

Código Delphi [-]
procedure CopiaArchivo(const NombreArchivo:string; var DaFallos:Boolean);
begin

end;

El uso de const indica que el Nombre del archivo es constante, es decir, dentro de esa rutina no se puede modificar el NombreArchivo, el compilador te dará un error. Esto es muy util, ya que el programador que llama a la funcion CopiaArchivo, sabe que el nombre del archivo no se va a modificar jamás. Por otra parte, se minimiza errores tontos que pueda cometer el que implementa CopiaArchivo.

Imagina que la función fuese así:
Cita:
Empezado por Jamás hagas esto
Código:
procedure CopiaArchivo(var NombreArchivo:string; var DaFallos:Boolean);
begin

end;
El programador que va a usar la función copiaArchivo se queda un poco mosqueado, diría....." a ver, a ver, yo le paso el nombre del archivo, y la rutina puede modificar el nombre....¿que sentido tiene?" Ahora tendría que ir a ver como está hecha la función y entender por qué modifica el nombre del archivo.

El que ha hecho la función, está complicando la existencia a los demás, ¿no crees?.

Esto no debe hacerse jamás!!!
El uso de var indica que dentro de la función se modifica el valor de DaFallos, es decir, es un parámetro de salida. De hecho, esta llamada produce un error en compilación:
Código Delphi [-]
CopiaArchivo('c:\autoexec.bat', true);
Ya que el segundo parámetro puede modificarse dentro de la función y necesita que sea una variable. Para llamarla de forma correcta hay que crear una variable de tipo Boolean y pasarle dicha variable.
Código Delphi [-]
var Fallo:Boolean;
begin
CopiaArchivo('c:\autoexec.bat', Fallo);
if Fallo then 
  ShowMessage('No se puede copiar el archivo c:\autoexec.bat');

Tema aparte, Delphi optimiza las llamadas a los procedimientos dependiendo de si un parámetro lleva el var o el const y es más complejo de lo que puedas creer,(en la ayuda de delphi viene más información al respecto).

Saludos
Responder Con Cita
  #5  
Antiguo 15-03-2005
unko! unko! is offline
Miembro
 
Registrado: ene 2005
Posts: 123
Poder: 20
unko! Va por buen camino
ok, thanx, me aclararon muchas dudas

solo que creo ke no tengo algo concreto... me pueden decir en idioma sencillo como funcionan? y como se pueden usar?

hasta ahora, lo que tengo entendido es que al declarar una var (que puede variar; como en el ejemplo de "contador", se supone ke es de 1, pero puede variar gracias a la orden de "contador+1") y depende de que tipo sean, boolean, string...
No entendi una cosa:

Cita:
contador, numero: integer; //variables numéricas sin decimales
division, resta: current; //variables numéricas hasta 4 decimales
divisionlarga: float; //variables con muchos decimales
hola: string; //variable de cadena de texto (incluidos numeros)
sino: Boolean; //variable con dos posibilidades con Verdadero o Falso
Dias: Date;//variable que guarda fechas
Hores: Time; /variable que guarda horas
por que unos como "contador" y "division" tienen palabras extra como "numero" y "resta"? los demas no la tienen, por que? que kiere decir esto?

y que las constantes no pueden cambiar y sirven para no tener que recordar los numeros o palabras que necesitamos, las const nos sirven para glovalizarlos?

No entendi bien los tipos... me dan un ejemplo de boolean, string, date, time... y los mas usados??

thanx! no se ke haria sin ustedes
__________________
HazTa La VikToRia... SIEMPRE!
Responder Con Cita
  #6  
Antiguo 15-03-2005
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile Mi aportación

¡Buen día a todos!

Cita:
Empezado por unko!
...por que unos como "contador" y "division" tienen palabras extra como "numero" y "resta"? los demas no la tienen, por que?...
Al declarar dos o más variables del mismo tipo de dato, puede hacerse por separado:
Código Delphi [-]
Var
  A :Integer;
  B :Integer;
  C :Integer;
O en una lista delimitada por comas
Código Delphi [-]
Var
  A, B, C :Integer;
lo cual resulta más abreviado y legible.

En cuanto a las constantes, imagina que tienes un programa que en varios lugares muestra la cadena de caracteres «unko!», es decir, tienes por ahí unas cinco o diez sentencias de código con la expresión 'unko!'.

Supón entonces que decides cambiar esa cadena por «unko! Reloaded». Eso conllevaría tener que modificar las cinco o diez sentencias que tienen la expresión 'unko!'.

En cambio, si desde un principio declaras la constante:
Código Delphi [-]
Const
  Autor = 'unko!';
y usas ésta en lugar de la expresión literal, en sentencias como:
Código Delphi [-]
  ShowMessage ('Este programa fue creado por ' + Autor +
    ', el programador más rápido del Oeste.');
Cuando decidas cambiar «unko!» por «unko! Reloaded», solamente tendrías que modificar la declaración de la constante:
Código Delphi [-]
Const
  Autor = 'unko! Reloaded';
Con respecto a tu última pregunta sobre los tipos de datos, de momento te puedo decir que cada variable se declara de un tipo específico para que el programa pueda saber cuántos bytes de memoria debe reservarle, qué clase de valores puede guardar, bajo qué formato se guardan dichos valores y qué tratamiento debe darles.

Me despido porque ya comienzan Los Simpson...

¡Un abrazo a todos!

Al González.
Responder Con Cita
  #7  
Antiguo 15-03-2005
unko! unko! is offline
Miembro
 
Registrado: ene 2005
Posts: 123
Poder: 20
unko! Va por buen camino
thanx!

bro... eres lo maximo!!! antes no le entendia pero ahora... thanx! eres pro creo ke wa llorar XD jajaja thanx!!

voi a testear lo que creo ke es... una constante es para no tener que estar poniendo a cada rato algun nombre o numero... solo bastara con declararla x3 = 'blablabla'; y asi, cuando kiera poner blablabla solo tendre ke porner x3?

y lo de var no lo entendi mui bien :P si hay alguien que me lo pueda explicar con manzanitas como Al Gonzales () adelante :P

este foro es genial
__________________
HazTa La VikToRia... SIEMPRE!

Última edición por unko! fecha: 15-03-2005 a las 05:07:57. Razón: me falto algo :P
Responder Con Cita
  #8  
Antiguo 15-03-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
venga una de manzanas:
Código Delphi [-]
var Manzanas:integer;
begin
manzanas := 2;
Showmessage('Tengo ' + inttostr(Manzanas));
// sale que tienes 2 manzanas


Manzanas := Manzanas * 25;
Showmessage('Tengo ' + inttostr(Manzanas));
// ahora sale que tienes 50 manzanas

Manzanas := manzanas - 75;
Showmessage('Tengo ' + inttostr(Manzanas));
// ahora sale que tienes -25 manzanas, osea, TE FALTAN 25 manzanas.
Dicho de otra forma, Manzanas va a tener un contenido variable, depende del valor que tenga o de las operaciones que hagas con esa variable, obtendrás un valor u otro.

Como está declarada como
Código Delphi [-]
var Manzanas:integer;
solo puedes realizar operaciones matematicas con ella, es decir:

Código Delphi [-]
Manzanas := 'Tengo ganas de manzanas';
te dará un error y no te deja continuar, ya que a la izquierda del ":="
delphi sabe que tiene que guardar un valor numérico (solo números enteros) y a la derecha del ":=" lo que hay es una tira de caracteres, que corresponde al tipo de datos String.

Por tanto,
si quieres guardar numeros enteros, tienes que utilizar el tipo Integer
si quieres guardar texto , tienes que utilizar el tipo String
si quieres guardar un valor Verdadero o Falso, tienes que usar un tipo Boolean.

Sabiendo esto, ya puedes consultar la ayuda de delphi sobre tipos de datos, y ver todo el repertorio existente.

Un saludote.
Responder Con Cita
  #9  
Antiguo 16-03-2005
unko! unko! is offline
Miembro
 
Registrado: ene 2005
Posts: 123
Poder: 20
unko! Va por buen camino
wow.... bro.. eres un maestro o algo asi!? no se komo le haces... pero lo haces! ya se eso tambien!!! eres genial!!

si no es mucho pedir... me puedes dar un ejemplo con una var usando el Boolean?

eres un maestro!!

PD: me puedes decir que es "inttostr"?
__________________
HazTa La VikToRia... SIEMPRE!
Responder Con Cita
  #10  
Antiguo 16-03-2005
alfredosg19 alfredosg19 is offline
Miembro
 
Registrado: ene 2005
Ubicación: Barcelona
Posts: 91
Poder: 20
alfredosg19 Va por buen camino
Variable Boolean.

Hola, sobre las variables Boolean, a ver comienzo con un ejemplo que se verá más fácil. Son variables que solo tienen dos posibilidades o son True o False, es decir o Verdadero o Falso. Aquí lo verás más claro:

Cita:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons;

type
TForm1 = class(TForm)
SpeedButton1: TSpeedButton;
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
sino: Boolean;
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if sino=False then
begin
sino:=True;
Showmessage('Falso');
end
else
begin
sino:=False;
Showmessage('Verdadero');
end;
end;

end.
A mí me resultan muy útiles, por ejemplo para reservas de mesas (ocupadas o desocupadas), para usuarios (usuario desconectado, usuario en pausa), tiene infinidad de utilidades y más si empezamos a hablar de funciones(functions)..

Ha el StrtoInt es una función de Delphi para pasar un texto (de número porque si son letras saldrá un error) numérico a números enteros, también se puede hacer al revés InttoStr, por ejemplo para mostrar en pantalla resultados de operaciones matemáticas. Ejemplo:
Cita:
var
a,b: integer
begin
a:=2;
b:=3;
Showmessage(InttoStr(a+b));
end;
si no el pones el InttoStr el programa dice incompatibles tipes.
También tenemos el CurrtoStr para pasar de números con decimales a String y viceversa (StrtoCurr). El FloattoStr para pasar números con más de cuatro decimales a String y viceversa.. y si hay más yo no las uso.
Espero que te haya servido de ayuda mi aportación.

Pta. Estamos haciendo una buena ayuda sobre variables en este hilo.
__________________
"La perseverancia es el camino del éxito"
Responder Con Cita
  #11  
Antiguo 17-03-2005
unko! unko! is offline
Miembro
 
Registrado: ene 2005
Posts: 123
Poder: 20
unko! Va por buen camino
oooh... entonces las var sirven para decirle al programa ke se trataran de X dato... pero despues le pones el dato ke kieres ke almacenen dependiendo de la funcion ke le diste... yeah! lo se!!!


PD---> teienes razon... es una MUY BUENA aportacion
__________________
HazTa La VikToRia... SIEMPRE!
Responder Con Cita
  #12  
Antiguo 23-03-2005
unko! unko! is offline
Miembro
 
Registrado: ene 2005
Posts: 123
Poder: 20
unko! Va por buen camino
intente practicar eso de las VAR y CONST y me falla... algo me falta y no se ke es....

tengo uas preguntas mas...

¿Donde se declaran las VAR?
¿Donde se declaranlas CONST?

como kedaria el codigo si kiero ke cada 5 seg el label cambie de 0 a 1... (incrementando 1 cada que pasen 5 seg del timer)

thanx salu2!
__________________
HazTa La VikToRia... SIEMPRE!
Responder Con Cita
  #13  
Antiguo 23-03-2005
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Chico, si lees algo de Ingles visita http://www.delphibasics.co.uk/ es todo muy bien explicado y con ejemplos. En las ayudas tambien esta el manual del lenguaje donde se explica con lujo de detalles todos estas cosas.
__________________
El malabarista.
Responder Con Cita
  #14  
Antiguo 23-03-2005
unko! unko! is offline
Miembro
 
Registrado: ene 2005
Posts: 123
Poder: 20
unko! Va por buen camino
es lo uniko ke me falta saber
__________________
HazTa La VikToRia... SIEMPRE!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 03:50:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi