IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Работа с модулем, Глобальные переменные
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский
Реальное имя: АнЯ

Репутация: -  0  +


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);

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 1)
сообщение
Сообщение #2


Гость






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

А вообще, чтобы сделать переменную доступной из модуля, надо описывать ее в разделе Interface ...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 14:59
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name