PDA

Ver la Versión Completa : Ayuda con error "Not enough actual parameters"


irurueta
30-07-2015, 19:39:21
Hola a todos, soy estudiante y soy un ñoqui para esto!
Tengo un problema con un programa cuando lo compilo, y no se como solucionarlo!
Dejo una imagen de el procedure y otra del error!

AgustinOrtu
30-07-2015, 20:15:32
Bienvenido

No se ve nada en las imágenes, sería mejor que nos copies el código y nos digas cual es el error

irurueta
30-07-2015, 20:20:19
Bienvenido

No se ve nada en las imágenes, sería mejor que nos copies el código y nos digas cual es el error


procedure calc_desc(contE_1,contE_2,contE_3,contE_4,contE_5:integer;var desc_1,desc_2,desc_3,desc_4,desc_5:real;
var aux_1,aux_2,aux_3,aux_4,aux_5:real;var porc1,porc2,porc3,porc4,porc5:real;var tot1,tot2,tot3,tot4,tot5:real);
//Calcular descuento.
begin
aux_1:=130*contE_1;
if aux_1>1000 then
begin
porc1:=aux_1*0.1;
desc_1:=porc1-aux_1;
tot1:=aux1-porc1



calc_desc(cont1,cont2,cont3,cont4,cont5,desc1,desc2,desc3,desc4,desc5,aux1,aux2,
aux3,aux4,aux5,tot1,tot2,tot3,tot4,tot5); //aca me tira error :



[Error] Project2.dpr(224): Not enough actual parameters



if aux1>1000 then
begin
writeln('El producto 1 tiene un descuento del 10%, debe pagar $',tot1:8:2);
end;

dec
30-07-2015, 20:32:17
Hola,

He cambiado el título de este hilo y he formateado tu último mensaje, irurueta. Por favor, revisa la guía de estilo de los foros (http://www.clubdelphi.com/foros/guiaestilo.php).

dec
30-07-2015, 20:40:23
Hola,

El mismo mensaje de error te está diciendo el problema: "No se han proporcionado los argumentos necesarios". Contando los argumentos de la declarada función (una verdadera barbaridad, por cierto) estos no coinciden con los que usas al llamar a dicha función y de ahí el problema.

irurueta
30-07-2015, 20:43:30
Gracias bro, no tenia ni idea como hacer eso jaja!

(MAJ)
31-07-2015, 18:34:32
mira, como tenes veinticinco parametros y a la vez esos estan divididos en cinco grupos de cinco, estoy segudo de que mas de una vez te va a causar problemas el pasar tantos parametros, lo mejor seria pasar un array de dos dimensiones 5x5, o sino 5 arrays independientes

irurueta
31-07-2015, 21:44:30
mira, como tenes veinticinco parámetros y a la vez esos están divididos en cinco grupos de cinco, estoy segudo de que mas de una vez te va a causar problemas el pasar tantos parámetros, lo mejor seria pasar un array de dos dimensiones 5x5, o sino 5 arrays independientes

Holaaa, tiene muchos parámetros, porque debía hacer un sistema para un deposito de elementos de soldadura (Trabajo practico de la facu), en el cual tenían 5 productos y de allí tenia que sacar si se compraban mas de 1000 artículos el 10% y descontarlo, o sea hacer el 10% de descuento!

Ya pude solucionarlo, el problema era que cuando llamaba al procedure, no declaraba las variables.

Gracias...

ecfisa
31-07-2015, 22:55:04
Hola irurueta.

Tal vez te resulte mas simple organizarlo de forma similar a esta:

type
TProducto = record
ContE : Integer;
Desc : Real;
Aux : Real;
Porc : Real;
Tot : Real;
end;

procedure calc_desc(p1, p2, p3, p4, p5: TProducto);
begin
p1.Aux := 130 * p1.ContE;
if p1.Aux > 1300 then
begin
p1.Porc := p1.Aux * 0.1;
p1.Desc := p1.Porc - p1.Aux;
p1.Tot := p1.Aux -p1.Porc;
...


Saludos :)