напишите программу которая в заданном файле подсчитывает кол-во строк,длина которых в символах находиться в заданных пользователем пределах(например,от 10 до 20)ювыведите на экран только эти строк файла.хххеелп
PROGRAM PR;
VAR str:array[1..100] ofSTRING;
a,b,n,i,m:byte;
f:text;
begin
writeln('vvedite kol-vo simvolov a');
readln(a);
writeln('vvedite kol-vo simvolov b');
readln(b);
aSSIGN(F,'C:\OLA.TXT');
RESET(F);
n:=1;
whilenot (eof(f)) dobegin
readln(f,str[n]);
end;
for i:=1to length(str[i]) dobegin
m:=length(str[i]);
if (m>=a) and(m<=b) then n:=n+1else writeln('takih strok net');
write(n);
readln;
close(f);
readln(n);
end;
end.
времени около часа,помогите пожалуйста
Lapp
29.06.2010 13:15
все можно делать в одном цикле Примерно так (не проверял)
VAR
s: STRING;
a,b: byte;
n: word;
f:text;
begin
writeln('vvedite min kol-vo simvolov a');
readln(a);
writeln('vvedite max kol-vo simvolov b');
readln(b);
aSSIGN(F,'C:\OLA.TXT');
RESET(F);
n:=0;
whilenot eof(f) dobegin
readln(f,str]);
if (Length(s)>=a) and(Length(s)<=b) then Inc(n);
end;
close(f);
writeln('Всего найдено ',n,' строк с длиной от ',a,' до ',b);
readln;
end.
... немного подправил..
PUMA
29.06.2010 13:29
а как их вывести??
Lapp
29.06.2010 13:46
Цитата(PUMA @ 29.06.2010 10:29)
а как их вывести??
вот так
VAR
s: STRING;
a,b: byte;
n: word;
f:text;
begin
writeln('vvedite min kol-vo simvolov a');
readln(a);
writeln('vvedite max kol-vo simvolov b');
readln(b);
aSSIGN(F,'C:\OLA.TXT');
RESET(F);
n:=0;
whilenot eof(f) dobegin
readln(f,s]);
if (Length(s)>=a) and(Length(s)<=b) thenbegin
Inc(n);
writeln(s)
endend;
close(f);
writeln('Всего найдено ',n,' строк с длиной от ',a,' до ',b);
readln;
end.
извини, надо было сразу сделать..
PUMA
29.06.2010 13:55
надо только те которые удовлет-т усл-ю..а не все
Lapp
29.06.2010 14:01
Цитата(PUMA @ 29.06.2010 10:55)
надо только те которые удовлет-т усл-ю..а не все
я так и сделал. Посмотри - вывод стоит внутри if
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.