Pascal/Turbo Pascal - programa en pascal

 
Vista:

programa en pascal

Publicado por yesica (3 intervenciones) el 25/05/2012 01:08:17
hola amigos.. pues quiero pedirles si me ayudan a comprender este programa.. mañana es mi examen final y no lo comprendo del todo .. se supone que es para ver un inventario de productos de una tienda.. es como una recompilacion de todos los temas vistos en cibernetica y computacion 2.. gracias por su atencion aqui les dejo el programa.. porsupuesto no esta completo... :(

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
program invent;
 uses crt;
 var codigo,cantidad:array[1..100] of integer;
 a:text;
 ci,cie:integer;
 encuentra:boolean;
 procedure buscainv(cod,can,na:integer);
 var i:integer;
 begin
 encuentra:=false;
 i:=0;
 while i<na do
 begin
 i:=i+1;
 if codigo[i]=cod then
 begin
 cantidad[i]:=cantidad[i]+can;
 encuentra:=true;
 end;
 end;
 end;
 procedure leer;
 begin
  assign(a,'e:/inventario.txt');
  reset(a);
  ci:=0;
  while not eof(a) do
 begin
  ci:=ci+1;
  readln(a,codigo[ci],cantidad[ci]);
 end;
  close(a);
  end;
  procedure escribir;
  begin
  rewrite(a);
  cie:=0;
  while cie<ci do
 begin
  cie:=cie+1;
  writeln(a,codigo[cie],' ',cantidad[cie]);
 end;
  close(a);
  end;
  procedure comprar;
 begin
  clrscr;
  encuentra:=false;
  leer;
  ci:=ci+1;
  writeln('introduce codigo');
  readln(codigo[ci]);
  writeln('introduce cantidad');
  readln(cantidad[ci]);
  buscainv(codigo[ci],cantidad[ci],ci-1);
  if encuentra then ci:=ci-1;
  escribir;
 end;
 begin
 {comprar;}
 readln;
 end.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

programa en pascal

Publicado por ramon (2158 intervenciones) el 25/05/2012 13:52:12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
{Espero estas aclaraciones te ayuden a entenderlo aunque el proceso no sea muy
 correcto pues los array no son para archivos de texto mas bien para registros}
 
program invent;
 uses
    crt;
 var
   codigo, cantidad : array[1..100] of integer;
   {Se crean dos variables con 1..100 elementos integer o sea numeros
    enteros}
    a : text;
    {Se establece a como variable fichero de tipo texto}
    ci, cie : integer;
   encuentra : boolean;
 
 procedure buscainv(cod,can,na:integer);
{procedimiento para buscar dentro del inventario}
 var
    i : integer;
    {variable de busqueda}
 begin
 encuentra := false;
 {para indicar si esiste o no}
 i := 0;
 while i < na do
 {blucle de busqueda se ejecutara siempre que i sea menor na sino
  finaliza}
 begin
 i := i + 1;
 if codigo[i] = cod then
 {compara si en el array codigo[i] se encuentra cod}
 begin
 cantidad[i] := cantidad[i] + can;
 {Suma a cantidad[i] el valor de can}
 encuentra := true;
 {In forma que lo encontro}
    end;
   end;
 end;
 
 procedure leer;
 begin
  assign(a,'e:/inventario.txt');
  {Asigna a [a] el archivo que se encuentra en la unidad [e:/]
   con nombre [inventario.txt]}
  reset(a);
  {Abre el archivo para lectura o escritura}
  ci:=0;
  while not eof(a) do
  {Ejecutara hasta que se encuentre al final del fichero }
 begin
  ci:=ci+1;
  readln(a,codigo[ci],cantidad[ci]);
  {Leemos el contenido y lo asignamos al array codigos y al
   array cantidad que en ese momento apunte ci}
 end;
  close(a);
  {Cerramos el fichero}
  end;
  procedure escribir;
  begin
  rewrite(a);
  {Creamos un fichero nuevo si el fichero existe se destruye}
  cie:=0;
  while cie < ci do
  {Se ejecutara hasta que cie se mayor que ci}
 begin
  cie:=cie+1;
  writeln(a,codigo[cie],' ',cantidad[cie]);
  {Escribimos en el fichero el contenido de codigo y cantidad que
   apunte cie}
 end;
  close(a);
  {Cerramos fichero}
  end;
  procedure comprar;
 begin
  clrscr;
  encuentra:=false;
  leer;
  {Este procedimiento lee el contenido del archivo}
  ci:=ci+1;
  writeln('introduce codigo');
  readln(codigo[ci]);
  writeln('introduce cantidad');
  readln(cantidad[ci]);
  buscainv(codigo[ci],cantidad[ci],ci-1);
  {Busca en el imbentario}
  if encuentra then
  ci:=ci-1;
  escribir;
  {Este procedimiento entra datos y despues los guarda en el
   archivo.
   Pero borrara todo lo que exista en el no añadira al archivo
   puesto que lo borra}
 end;
 begin
 {comprar;}
 readln;
 end.
   {Este programa crea un archivo de testo con dos entradas una
    sera los codigos y la otra sera la cantidad por linea de
    entrada en el archivo o sea sera linea 1 codigo cantidad
    linea 2 codigo cantidad y asi sucesiva mente
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar