Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
necesitoayuda con una codificacion de pascal para un tp
Autor Mensaje
ivansantobuono Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 5
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: Oct 2012
Mensaje: #1
necesitoayuda con una codificacion de pascal para un tp Trabajo practico Algoritmos y Estructuras de Datos

program tp2;



{uses
SysUtils; }

type
tregp =RECORD
codp :word;
pu :real;
cstock :integer;
stmin :integer;
end;
tregv =Record
codp :word;
suc :byte;
cantv :integer;
end;
tmat =Array[1..200,1..10] of integer;
TAProd =File of tregp;
TAVtas =File of tregv;
tvec =array[1..200] of tregp;
var
regp:tregp;
regv:tregv;
vecp:tvec;
Mat:tmat;
pos:byte;
prod:TAProd;
vtas:TAVtas;

procedure BBin(codp:word; var pos:byte; var prod:TAProd; var regp:tregp);


var
i,j,k: integer;
encontrado: boolean;
begin


encontrado:=false;
i:=0;
j:=filesize(vtas)-1;

while( (i<=j) AND (NOT encontrado) ) do
begin
k:= (i+j) div 2;
seek(prod,k);
read(prod,regp);
if( regp.codp = regv.codp ) then
begin
encontrado:=true;
end
else
begin
if( regp.codp < regv.codp ) then begin
i:=k+1;
end
else
begin
j:=k-1;
end;
end;


if( i>j ) then
begin
pos:=k;
end;
end;

procedure ProcVentas( var Mat: tmat);
var finv:boolean;
codp:word;


begin
ASSIGN(vtas,'Vtas.dat');
reset (vtas);
ASSIGN(prod,'Productos.dat');
reset (prod);
if eof(vtas) then
finv:=true;
else
readln(vtas,regv);
finv:=false;
while (not finv) do

begin
codp:=regv.codp;
BBin(codp,pos,prod,regp);
Mat[pos,regv.suc]:=regp.cstock-regv.cantv;
regp.cstack:=regp.cstock-regv.cantv;
writeln(prod,regp);
readln(vtas,regv);
end;
end;

procedure cargarvecp (var vecp:tvec,var prod:TAProd);
var finp:boolean;i:byte;
begin
if eof(prod) then
finp:=true;
else begin
readln(prod,regp);
finp:=false;
end;
i:=1;

while (not finp) do
begin
vecp[i]:=regp;
inc(i);
if eof(prod) then
finp:=true;
else
begin
readln(prod,regp);
finp:=false;
end;
end;


end;

procedure listFactProd (Mat:tmat;vecp:tvec);
var facttot:real;i,j:byte;
begin
facttot:=0;
writeln('codp':4,'suc':4,'facttot':7);
for i:= 1 to 200 do

begin

for j:= 1 to 10 do
begin
facttot:=Mat[i,j]*vecp[i].pu;

writeln(vecp[i].codp:4,j:4,facttot:7:2);
end;
end;
end;

procedure listFactProd (vecp:tvec);
var i:byte;
begin
writeln('CodP':4,'PU':5,'Cstock':8,'Stmin':6);
for i:= 1 to 200 do

begin

begin
if (vecp[i].cstock < vecp[i].smin) then

writeln(vecp[i].CodP:4,vecp[i].PU:5,vecp[i].Cstock:8,vecp[i].Stmin:6);
end;
end;
end;}

procedure listProdMcien (Mat:tmat,vecp:tvec);

var tot:integer;i,j:byte;
begin
tot:=0;

for i:= 1 to 200 do

begin
writeln('codp':4);
for j:= 1 to 10 do
begin
tot:=Mat[i,j]+tot;
end;
if (tot>100) then
writeln(vecp[i].codp);
end;
end;

begin ProcVentas( Mat: tmat);
cargarvecp (vecp, prod);
procedure listFactProd (Mat,vecp);
procedure listFactProd (vecp);
listProdMcien (Mat,vecp);
end.

(Este mensaje fue modificado por última vez en: 23-10-2012 14:37 por ivansantobuono.)
23-10-2012 14:17
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Cheppak Sin conexión
Secretario General
-
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 950
Agradecimientos dados: 41
Agradecimientos: 122 en 43 posts
Registro en: May 2009
Mensaje: #2
RE: necesitoayuda con una codificacion de pascal para un tp

Off-topic:
Es el codigo de Skynet? adjunta el enunciado para que se entienda un poco mejor el programa =P
23-10-2012 14:20
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
brunodiaz Sin conexión
The Dark Knight
Bla
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 7.707
Agradecimientos dados: 92
Agradecimientos: 384 en 135 posts
Registro en: May 2008
Mensaje: #3
RE: necesitoayuda con una codificacion de pascal para un tp
Y usa el coso para ponerle colorcitos y se vea lindo.

Es el que dice Codigo ahi arriba, elegis Pascal
23-10-2012 14:23
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
ivansantobuono Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 5
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: Oct 2012
Mensaje: #4
RE: necesitoayuda con una codificacion de pascal para un tp
ai lo edite un poco nada nada mas los procrçedimientos q me olvide de borrar es los tipos de los parametors en el programa principal ya q no van en dicho lugar sino solo la declaracion disculpen las inprolijidades =)
(Este mensaje fue modificado por última vez en: 23-10-2012 14:39 por ivansantobuono.)
23-10-2012 14:27
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
gonnza Sin conexión
User Verde

*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 17.356
Agradecimientos dados: 900
Agradecimientos: 887 en 356 posts
Registro en: Mar 2010
BlogSpot Google+ YouTube
Mensaje: #5
RE: necesitoayuda con una codificacion de pascal para un tp
lo muevo al subforo de Algoritmos =)

[Imagen: v34BEFt.gif]
23-10-2012 15:01
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Dem0 Sin conexión
( ͡° ͜ʖ ͡°)
._.
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 4.980
Agradecimientos dados: 9
Agradecimientos: 194 en 74 posts
Registro en: Apr 2008
Mensaje: #6
RE: necesitoayuda con una codificacion de pascal para un tp
No te va a ayudar nadie si no explicas que queres que haga el código y como sabes no anda.
23-10-2012 17:14
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
nanuiit Ausente
♫ I'm Blue ...
... Da ba dee, da ba da ♫
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 8.871
Agradecimientos dados: 216
Agradecimientos: 626 en 210 posts
Registro en: Aug 2010
Mensaje: #7
RE: necesitoayuda con una codificacion de pascal para un tp
Mirá

No tengo mucha idea de cuál es el objetivo de tu programa (necesito un enunciado)
Pero hay algo que no me gusta:



begin ProcVentas( Mat: tmat);
181 cargarvecp (vecp, prod);
182 procedure listFactProd (Mat,vecp);
183 procedure listFactProd (vecp);
184 listProdMcien (Mat,vecp);
185 end.


Vos ahí estás llamando a los procedimientos, y eso está mal (lo digo por "cargarvecp (vecp, prod);"). Nomás tenés que pasarle los parámetros, no los tipos

ALGORITMOS

Apuntes: Mem. Dinámica - Mem. Estática - Proc. y Funciones || Guías: Módulos + 83 Ejercicios || Finales: 2004-2013


[Imagen: digitalizartransparent.png]

[Imagen: firmananiv2.png]
(Este mensaje fue modificado por última vez en: 23-10-2012 17:37 por nanuiit.)
23-10-2012 17:36
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
ivansantobuono Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 5
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: Oct 2012
Mensaje: #8
RE: necesitoayuda con una codificacion de pascal para un tp
bueno para el que quiere un enunciado : existen 2 archivos 1 generado por un programa anterior q no tiene ninguna relacion con este mas q el archivo en cuestion y otro q se llama ventas

arch prod
codp(word) pu "precio unitario" (real) cstock "cantidad stock" (integer) stmin "stock minimo" (integer)
ordenado x codp sin repeticiontiene un maximo de 200 prod (como maximo es entre 100-200)
arch ventas
codp(word) sucursal (1-10 tipo byte) cantvendida (integer)
no esta ord, y puede tener repeticion cada registro es una venta de determinado prod en determinada sucursal

1) actualizar arch prod a partir del proceso de archivos ventas.
2)listar productos con la facturacion total por producto suc de la siguiente manera:

codp sucursal facttotal

3)listado de productos q se necesitan pedir reposicion (stock <stock minimo):
codp pu cstock stmin


y 4) listado de prod q luego de procesar ventas redujeron su stock en mas de 100 unidades (cant vendida acumulada de un producto mayor o igual a 100)

memoria estatica 12200 bytes no se puede usar dinamica solo estatica y si o si un array de una dimension y uno de dos dimensines.


el error q me tira es prog.pas(73,5) Error: Illegal expression
prog.pas(73,15) Error: Illegal expression
prog.pas(73,15) Fatal: Syntax error, ";" expected but "identifier PROCVENTAS" found
23-10-2012 19:48
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
nanuiit Ausente
♫ I'm Blue ...
... Da ba dee, da ba da ♫
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 8.871
Agradecimientos dados: 216
Agradecimientos: 626 en 210 posts
Registro en: Aug 2010
Mensaje: #9
RE: necesitoayuda con una codificacion de pascal para un tp
Buenísimo

Fijate que en tu programa principal vos pusiste

ProcVentas( Mat: tmat)

Cuando en realidad vos supongo que estás queriendo llamar a ese procedimiento.

Cuando vos llamás a un procedimiento, solamente tenés que pasarle los parámetros, no tenés que aclararle los tipos de datos (porque eso hiciste cuando lo definiste al principio)

Otra cosita más:

Cuando vos llamás a un procedimiento, no tenés que ponerle "procedure Blabla()". La palabra reservada "procedure" se usa cuando declarás el procedimiento

Tu programa principal debería quedarte algo como



begin
ProcVentas(Mat);
181 cargarvecp (vecp, prod);
182 listFactProd (Mat,vecp);
183 listFactProd (vecp);
184 listProdMcien (Mat,vecp);
185 end.


Ah, y otro error más, que no te lo está diciendo porque se detiene antes:

Vos hiciste dos procedimientos "listFactProd" y declaraste uno con 2 parámetros, y el otro con 1

Eso no podés hacerlo. Cambiale el nombre a uno de esos dos

Fijate si arreglando esas cosas al menos te compila, y cualquier cosa lo seguimos viendo

ALGORITMOS

Apuntes: Mem. Dinámica - Mem. Estática - Proc. y Funciones || Guías: Módulos + 83 Ejercicios || Finales: 2004-2013


[Imagen: digitalizartransparent.png]

[Imagen: firmananiv2.png]
23-10-2012 19:58
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
ivansantobuono Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 5
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: Oct 2012
Mensaje: #10
RE: necesitoayuda con una codificacion de pascal para un tp
bueno arregle todo lo q me dijiste y algunas cosas mas tengo 2 errores solos y creo q ya esta

nuevo codigo:

program Tp2;



uses
SysUtils;

type
tregp =RECORD
codp :word;
pu :real;
cstock :integer;
stmin :integer;
end;
tregv =Record
codp :word;
suc :byte;
cantv :integer;
end;
tmat =Array[1..200,1..10] of integer;
TAProd =File of tregp;
TAVtas =File of tregv;
tvec =array[1..200] of tregp;
var
regp:tregp;
regv:tregv;
vecp:tvec;
Mat:tmat;
pos:byte;
prod:TAProd;
vtas:TAVtas;
i:byte;

procedure BBin(codp:word; var pos:byte; var prod:TAProd; var regp:tregp);


var
i,j,k: integer;
encontrado: boolean;
begin


encontrado:=false;
i:=0;
j:=filesize(vtas)-1;

while( (i<=j) AND (NOT encontrado) ) do
begin
k:= (i+j) div 2;
seek(prod,k);
read(prod,regp);
if( regp.codp = regv.codp ) then
begin
encontrado:=true;
end
else
begin
if( regp.codp < regv.codp ) then begin
i:=k+1;
end
else
begin
j:=k-1;
end;
end;


if( i>j ) then
begin
pos:=k;
end;
end;

procedure ProcVentas( var Mat: tmat); {[Error] Tp2.dpr(74): Statement expected but 'PROCEDURE' found}
var finv:boolean;
codp:word;


begin
ASSIGN(vtas,'Vtas.dat');
reset (vtas);
ASSIGN(prod,'Productos.dat');
reset (prod);
if eof(vtas) then
begin
finv:=true;
end
else
begin
read(vtas,regv);
finv:=false;
end;
while (not finv) do

begin
codp:=regv.codp;
BBin(codp,pos,prod,regp);
Mat[pos,regv.suc]:=regp.cstock-regv.cantv;
regp.cstock:=regp.cstock-regv.cantv;
write(prod,regp);
read(vtas,regv);
end;
end;

procedure cargarvecp (var vecp:tvec;var prod:TAProd);
var
finp:boolean;
i:byte;
begin
finp:=false;
if eof(prod) then
begin
finp:=true;
end
else
begin
read(prod,regp);
end;
i:=1;

while (not finp) do
{begin}
vecp[i]:=regp;
inc(i);
if eof(prod) then
finp:=true
else
begin
read(prod,regp);
finp:=false;
end;
end;


end; {aca tira '.' expected but ';' found}

procedure listFactProd (Mat:tmat;vecp:tvec);
var facttot:real;i,j:byte;
begin
facttot:=0;
writeln('codp':4,'suc':4,'facttot':7);
for i:= 1 to 200 do

begin

for j:= 1 to 10 do
begin
facttot:=Mat[i,j]*vecp[i].pu;

writeln(vecp[i].codp:4,j:4,facttot:7:2);
end;
end;
end;

procedure listProdRep (vecp:tvec);
var i:byte;
begin
writeln('CodP':4,'PU':5,'Cstock':8,'Stmin':6);
for i:= 1 to 200 do

begin

begin
if (vecp[i].cstock < vecp[i].stmin) then

writeln(vecp[i].CodP:4,vecp[i].PU:5,vecp[i].Cstock:8,vecp[i].Stmin:6);
end;
end;
end;

procedure listProdMcien (Mat:tmat;vecp:tvec);

var tot:integer;i,j:byte;
begin
tot:=0;

for i:= 1 to 200 do

begin
writeln('codp':4);
for j:= 1 to 10 do
begin
tot:=Mat[i,j]+tot;
end;
if (tot>100) then
writeln(vecp[i].codp);
end;
end;

begin ProcVentas( Mat);
cargarvecp (vecp,prod);
listFactProd (Mat,vecp);
listProdRep (vecp);
listProdMcien (Mat,vecp);
end.


los errores son [Error] Tp2.dpr(74): Statement expected but 'PROCEDURE' found
[Error] Tp2.dpr(135): '.' expected but ';' found
23-10-2012 20:52
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)