Pascal/Turbo Pascal - Cargar una matriz con un archivo hecho en bloc de notas

 
Vista:
sin imagen de perfil

Cargar una matriz con un archivo hecho en bloc de notas

Publicado por natalia (1 intervención) el 31/10/2013 20:28:41
Buenas programadores tengo un ejercicio que hacer no me sale. Se trata de cargar una matriz de enteros (mas especificamente de temperaturas)que lo tengo que cargar desde un archivo (txt) que lo hice anteriormente un un bloc de notas. Se ve de esta forma: un ejemplo de una matriz 5x5
10 11 15 20 15
10 15 20 15 10
20 21 32 21 20
20 25 25 21 20
18 18 25 18 18

esa informacion la tengo que cargar en una matriz. El codigo que hice en pascal hasta ahora es este: Lo hice con el tipo string porque estaba probando a ver si me salia de esa manera si me cargaba la matriz. porque despues tengo que hacer la busqueda de la maxima temperatura y la minima temperatura y mostrar por pantalla

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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
program ejer7conarch;
 
uses crt;
const
f1=5;
f2=5;
type
Cuadro=Array[1..f1,1..f2] of string;
 
var
 
opc:integer; num:string[2];
matris: Cuadro;
archivo:text;
 
procedure abrirarch;
begin
{writeln('escriba la ruta del archivo a analizar');
readln(ruta);}
assign(archivo,'E:\UTN\Algoritmos\ALG Licenciatura 2\ejercicios2013\temperatura2.txt');
RESET(archivo);
 
end;
 
PROCEDURE cerrar;
BEGIN
close(archivo);
write('El archivo ha sido cerrado');
readkey;
writeln;
END;
 
 
 
procedure llenar_matriz;
var
i,j:integer;
 
begin
abrirarch;
i:=1;
while (not eof(archivo)) do begin
while i<=f1 do begin
  j:=1;
  while j<=f2 do begin
     readln(archivo,num);
     matris[i,j]:=num;
     j:=j+1;
   end;
 
   i:=i+1;
end;
 
end;
cerrar;
end;
 
 
 
Procedure Imprimir_Matriz;
Var
F,C: integer;
Begin
clrscr;
For F:=1 to 1 do Begin
writeln;
For C:=1 to 1 do Begin
write(matris[F,C]);
write(' ');
End;
End;
writeln;
End;
 
{procedure mayormenor ;
var
hmay,dmay,dmen,menor,mayor: integer;
F,C:integer;
 
promedio:real;
 
 
begin
menor:=99;
mayor:=0;
hmay:=0;
dmay:=0;
dmen:=0;
 
					For F:=1 to f1 do Begin
						For C:=1 to f2 do Begin
 
							if matris[F,C]<= menor then
							   begin
								menor:= matris[F,C];
								dmen:= F;
								  end
								   else
								      if matris[F,C]>= mayor then
								           begin
								           mayor:= matris[F,C];
								           dmay:= F;
								           hmay:= C;
								            end ;
 
						  end;
					End;
	writeln ('dia y hora de la temperatura maxima ', dmay:8, hmay  );
	writeln ('dia de la temperatura minima', dmen);
 
 
	End;
}
 
procedure menu;
begin
writeln ('cargar matris 1 .. imprimir matris 2... 3 busqueda  ');readln (opc);
 
 case opc of
						 0: begin
								cerrar; halt;
							end;
							 1: begin llenar_matriz ;
								 menu;
								 end;
										 2: begin Imprimir_Matriz ;
													menu;
											end;
 
											 { 3: begin busqueda;
													end;}
										 else
													begin
													  writeln ('ERROR opcion incorrecta');
													  menu;
												   end;
end;
end;
 
BEGIN
 
menu;
cerrar;
 
END.

espero que me puedan ayudar desde ya muchas gracias
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

Cargar una matriz con un archivo hecho en bloc de notas

Publicado por ramon (2158 intervenciones) el 02/11/2013 23:23:01
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
{Mira como cargar tu archivo}
 
  uses
     crt;
 const
     f1 = 5;
     f2 = 5;
  type
    Cuadro = Array[1..f1,1..f2] of integer;
 
   var
     f : text;
     num : integer;
     t1, g1 : integer;
     cuad : Cuadro;
 
 
   procedure leearchivotexto(g : string);
   begin
      assign(f, g);
    {$I-} reset(f); {$I+}
    if ioresult <> 0 then
    exit
  else
      begin
         g1 := 1;
         t1 := 1;
         while not eof(f) do
         begin
           Read(f, num);
           cuad[g1,t1] := num;
           g1 := g1 + 1;
           if Eoln(f) then
           begin
             g1 := 1;
             t1 := t1 + 1;
           end;
         end;
      end;
   end;
 
  begin
     clrscr;
     leearchivotexto('nume.txt');
     for g1 := 1 to f1 do
     begin
       for t1 := 1 to f2 do
       begin
       write('  ',cuad[g1,t1]);
       end;
       writeln;
      end;
     readkey;
  end.
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