Помощь - Поиск - Пользователи - Календарь
Полная версия: Работа с модулем
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
-=АнЮтА=-
smile.gif Подскажите пожалуйста) Совсем запуталась с переменными. Есть переменная,которая используется и в модуле и в программе, как правильно описать,чтобы не потерялось ее значение. В ходе программы - оно используется в некоторых процедурах.
Unit Fails;
interface
procedure Viv_Vib(var con:integer);
procedure vibr(con:integer; var st1:string);
implementation
uses crt;

Procedure Viv_Vib (var con:integer); {Viviod na ekran & vibor stdenta}
const coun=10;
var m:array[1..coun] of string;
i,a:integer;
q:char;
f:file of string;

Begin
assign(f,'stud.dat');
reset(f);
for i:=1 to coun do begin
read (f,m[i]);
writeln(i,' ', m[i],' ');
end;
close(f);
readln;
writeln('Choise your name, press your number');
readln(con);
writeln('Enter your workstation`s number');
readln(a);
con:=con+a-1;
if con>coun then begin
repeat
con:=con-coun;
until con<coun;
end;
end;
procedure vibr(con:integer; var st1:string); {vibor varianta koef}
var i,chet:integer;
h,minute,seconds,hund:word;
st:string;
f:file of string;
begin
assign(f,'stud.dat');begin
reset(f);
i:=1;
while not eof(f) do begin
read(f,st1);
if i=con then exit;
i:=i+1;
end;
end;
end;
- это сам модуль


В программе описана еще одна процедура,к-рая использует эту переменную


Procedure FileRead(s: string;con:integer; var a1,b1,c1,d1: integer);
var f: file of integer;
begin
assign(f,s);
reset(f);
for i:=1 to con do begin
read(f,a1);
read(f,b1);
read(f,d1);
read(f,c1);
end;
close(f)
end;


Вызов в самой программе идет так:

Код
viv_vib(co);
         vibr(co,ss);
         FileRead('1.dat',co,a,b,c,d);

volvo
А какая переменная-то? У тебя тут только локальные переменные в модуле описаны, они в любом случае потеряются как только закончится выполнение процедуры...

А вообще, чтобы сделать переменную доступной из модуля, надо описывать ее в разделе Interface ...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.