Pascal/Turbo Pascal - AYUDA lectura dee fichero MCV

 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado su posición en 19 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

AYUDA lectura dee fichero MCV

Publicado por Pablo (1 intervención) el 05/02/2019 12:40:18
Hola, estoy realizando un proyecto, tengo problemas con un programa que debe de leer un fichero en el cual se encuentran los datos para formar una matriz cuasivacia, es decir casi todos sus elementos son nulos. Les dejo el código que tengo realizado y las instrucciones del proyecto. Estoy casi seguro de que el fallo se produce al intentar leer el fichero y no operando con los datos de este. Un saludo y se agradece cualquier pista.


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
program MCV;
 
const
MAX=4000;
 
type
tpDatos= record
         val:real;
         fil, col:longInt;
         end;
tpMCV= file of tpDatos;
tpFilas= array[1..MAX] of integer;
tpColumnas= array [1..MAX] of integer;
 
 
 
procedure analizar_MCV(var a:tpMCV);
var
	numFil,numCol, z, x : integer;
  numero:tpDatos;
  fNulas: tpFilas;
  cNulas: tpColumnas;
 
 
begin
  reset(a);
  z:=1;
  x:=1;
	while not eof(a) do
 
		begin
      read(a, numero);
			if (x>numero.val) and (x<=z) then
			begin
				numFil:=numero.fil;
				numCol:=numero.col;
				writeln('Matriz de ',numero.fil,' x ',numero.col);
        z:=z-1;
      end;
    if numero.val <> 0 then
        begin
            fNulas[numero.fil]:=1;
            cNulas[numero.col]:=1;
        end;
    end;
	x:=1;
    for z:=1 to numFil do
        begin
            if fNulas[z] = 0 then
                begin
                    writeln('La fila ',z,' es nula');
                    x:=x+1;
                end;
        end;
    if x=1 then
        writeln('Ninguna fila es nula');
 
    x:=1;
    for z:=1 to numCol do
        begin
            if cNulas[z] = 0 then
                begin
                    writeln('La columna ',z,' es nula');
                    x:=x+1;
                end;
        end;
    if x=1 then
        writeln('Ninguna columna es nula');
 
end;
 
 
 
var
fichero:tpMCV;
nombre:string;
 
begin
 
	write('Nombre del fichero: ');
  readln(nombre);
  assign(fichero, nombre);
	analizar_MCV(fichero);
	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