Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Операторы во вложенных файлах

Автор: Shults99 21.09.2005 22:30

Вопрос - почему операторы while и do не исполняют программу с вложенным файлом с помощью директивы {$I <имя файла>}
Программа после введения строки S1 и длины L выдает строку S1 длиной L, а далее пробелы.
Не может же Паскаль просто запрещать исполнение лишних операторов!
Или такая маленькая глубина? - но не похоже.
Вот работающая прога

program prog24;
var
S1:string;
Y,i,L:integer;
{$I c:\prog23a}
begin

RightBlank(S1);

end.

и вложенный файл
function RightBlank(S1:string):integer;
var
{S1:string;}
i,L:integer;
begin
Writeln('Vvedite stroku S1');
readln(S1);
Writeln('Vvedite dlinu stroki L ( chislo do 20)');
readln(L);

{ while i<L}
{do} for i:=1 to L
do Write(S1[i]);

readln;

end;

Вот файл, с которым программа не работает

function RightBlank(S1:string):integer;
var
i,L:integer;
begin
Writeln('Vvedite stroku S1');
readln(S1);
Writeln('Vvedite dlinu stroki L ( chislo do 20)');
readln(L);

while i<L
do for i:=1 to L
do Write(S1[i]);

readln;

end;

Автор: volvo 21.09.2005 22:42

smile.gif Все проще гораздо:

while i<L do
for i:=1 to L do
Write(S1[i]);
Ты уверен, что перед While у тебя i < L? Я - нет... Поэтому и не отрабатывает цикл...