Помогите горит
Добавлено: 28 янв 2007, 15:08
Народ помогите решить задачи на pascal:
проанализировать текст хранящийся в файле:
А) подсчитать количество строк, длина которых меньше 10 символов.
В) в каждой строке подсчитать количество слов ( слова разделены пробелами), вывести на печать номер строки и количество слов;
С) переписать файл таким образом, чтобы в каждой строке поменять местами первое и последнее слова.
Что нужно что бы он считал строки длина которых меньше 10 символов ОТРЕДАКТИРУЙТЕ;
Program n9;
Uses Crt;
Var
f: text;
file_name,
s: string;
i,commas,points,blanks,lines: integer;
Begin
ClrScr;
commas := 0;
points := 0;
blanks := 0;
lines := 0;
Write ('введите имя файла:');
ReadLn (file_name);
Assign (f, file_name);
Reset (f);
while not Eof (f) do
begin
ReadLn (f, s);
for i := 1 to Length (s) do
begin
case s of
',': Inc (commas);
'.': Inc (points);
' ': Inc (blanks);
end;
end;
Inc (lines);
end;
Close (f);
GotoXY (1, 3);
WriteLn ('количество запятых: ', commas);
WriteLn ('количество предложений: ', points);
WriteLn ('количество пробелов : ', blanks);
WriteLn ('количество строк: ', lines);
WriteLn ('Enter');
ReadLn;
End.
как вывести на печать номер строки и количество слов ОТРЕДАКТИРУЙТЕ;
program z38;
uses crt;
label m;
var i,l,k : longint;
a,s,tt,c : string;
fail : text;
begin
clrscr;
assign(fail,'file_1.pas');
reset(fail);
readln(fail,a);
{-- Кол-во слов: --}
REPEAT
c:=a;
l:=length(a);
m:for i:=1 to l do
if (a=' ')and(a[i+1]=' ')
then begin
delete(a,i,1);l:=l-1;goto m;
end;
if a[1]=' 'then begin delete(a,1,1);l:=l-1; end;
if a[l]<>' ' then begin inc(l);a[l]:=' '; end;
for i:=1 to l do if a=' 'then inc(k);
readln(fail,a);
UNTIL c=a;
dec(k);str(k,s);
tt:=' кол-во слов в файле: '+s;
write(tt);
readln;
append(fail);
writeln(fail,tt);
close(fail);
end.
проанализировать текст хранящийся в файле:
А) подсчитать количество строк, длина которых меньше 10 символов.
В) в каждой строке подсчитать количество слов ( слова разделены пробелами), вывести на печать номер строки и количество слов;
С) переписать файл таким образом, чтобы в каждой строке поменять местами первое и последнее слова.
Что нужно что бы он считал строки длина которых меньше 10 символов ОТРЕДАКТИРУЙТЕ;
Program n9;
Uses Crt;
Var
f: text;
file_name,
s: string;
i,commas,points,blanks,lines: integer;
Begin
ClrScr;
commas := 0;
points := 0;
blanks := 0;
lines := 0;
Write ('введите имя файла:');
ReadLn (file_name);
Assign (f, file_name);
Reset (f);
while not Eof (f) do
begin
ReadLn (f, s);
for i := 1 to Length (s) do
begin
case s of
',': Inc (commas);
'.': Inc (points);
' ': Inc (blanks);
end;
end;
Inc (lines);
end;
Close (f);
GotoXY (1, 3);
WriteLn ('количество запятых: ', commas);
WriteLn ('количество предложений: ', points);
WriteLn ('количество пробелов : ', blanks);
WriteLn ('количество строк: ', lines);
WriteLn ('Enter');
ReadLn;
End.
как вывести на печать номер строки и количество слов ОТРЕДАКТИРУЙТЕ;
program z38;
uses crt;
label m;
var i,l,k : longint;
a,s,tt,c : string;
fail : text;
begin
clrscr;
assign(fail,'file_1.pas');
reset(fail);
readln(fail,a);
{-- Кол-во слов: --}
REPEAT
c:=a;
l:=length(a);
m:for i:=1 to l do
if (a=' ')and(a[i+1]=' ')
then begin
delete(a,i,1);l:=l-1;goto m;
end;
if a[1]=' 'then begin delete(a,1,1);l:=l-1; end;
if a[l]<>' ' then begin inc(l);a[l]:=' '; end;
for i:=1 to l do if a=' 'then inc(k);
readln(fail,a);
UNTIL c=a;
dec(k);str(k,s);
tt:=' кол-во слов в файле: '+s;
write(tt);
readln;
append(fail);
writeln(fail,tt);
close(fail);
end.