Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2009, 00:15   #1
tanek
Форумчанин
 
Регистрация: 07.03.2009
Сообщений: 209
По умолчанию РАБОТА С ФАЙЛАМИ

ДОБРыЙ ВЕЧЕР.у меня возникла проблема : необходимо напечатать самое длинное слово, найденное в тексте. Я написала программу, но нужно что бы была ссылка на фал, а не пользовалеть вводил текст, как это исправить?

Код:
program dlin;
uses crt;
var s,k,l:string;
i,c,p:integer;
begin
clrscr;
writeln('vvedi stroku');
readln(s);
for i:=1 to length(s) do
if s[i]<>' ' then
begin
c:=c+1;
k:=k+s[i];
end
else
begin
if c>p then
begin
p:=c;
l:=k;
end;
c:=0;
k:='';
end;
writeln('4islo simvolov samogo dlinogo slova: ', p);
writeln('slovo: ',l);
readln;
end.

Последний раз редактировалось Stilet; 12.03.2009 в 08:23.
tanek вне форума Ответить с цитированием
Старый 12.03.2009, 00:33   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Если файл не существует, программа завершится.

Код:
program dlin;
uses crt;
var s,k,l:string;
i,c,p:integer;
fin : text;
filename : string;
ch : char;

begin
clrscr;
writeln('Vvedite imya faila: ');
readln(filename);
assign(fin,filename);
{$I-}
reset(fin);
{$I+}
if IOResult <> 0 then
 begin
 writeln('Fail ne naiden.');
 readln;
 exit;
 end;

s := '';
while not eof(fin) do
 begin
 read(fin,ch);
 s := s + ch;
 end;
close(fin);

c:= 0;
k := '';
p := 0;
for i:=1 to length(s) do
if s[i]<>' ' then
begin
c:=c+1;
k:=k+s[i];
end
else
begin
if c>p then
begin
p:=c;
l:=k;
end;
c:=0;
k:='';
end;
writeln('4islo simvolov samogo dlinogo slova: ', p);
writeln('slovo: ',l);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 15.03.2009, 00:09   #3
tanek
Форумчанин
 
Регистрация: 07.03.2009
Сообщений: 209
По умолчанию

Моя программа должна напечатать самое длинное слово, найденное в тексте,, а данная програма находит только самое длинное слово в первой строке:
Код:
program dlin;
uses crt;
var s,k,l:string;
i,c,p:integer;
fin : text;
filename : string;
ch : char;

begin
clrscr;
writeln('Vvedite imya faila: ');
readln(filename);
assign(fin,filename);
{$I-}
reset(fin);
{$I+}
if IOResult <> 0 then
 begin
 writeln('Fail ne naiden.');
 readln;
 exit;
 end;

s := '';
while not eof(fin) do
 begin
 read(fin,ch);
 s := s + ch;
 end;
close(fin);

c:= 0;
k := '';
p := 0;
for i:=1 to length(s) do
if s[i]<>' ' then
begin
c:=c+1;
k:=k+s[i];
end
else
begin
if c>p then
begin
p:=c;
l:=k;
end;
c:=0;
k:='';
end;
writeln('4islo simvolov samogo dlinogo slova: ', p);
writeln('slovo: ',l);
readln;
end.
не подскажете как это исправить?

Последний раз редактировалось Stilet; 03.02.2011 в 07:08.
tanek вне форума Ответить с цитированием
Старый 15.03.2009, 00:18   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
program dlin;
uses crt;
var s,k,l:string;
i,c,p:integer;
fin : text;
filename : string;
ch : char;

begin
clrscr;
writeln('Vvedite imya faila: ');
readln(filename);
assign(fin,filename);
{$I-}
reset(fin);
{$I+}
if IOResult <> 0 then
 begin
 writeln('Fail ne naiden.');
 readln;
 exit;
 end;

s := '';
while not eof(fin) do
 begin
 read(fin,ch);
 if ch=#13 then
  s:=s + ' '
 else if ch=#10 then continue
 else s := s + ch;
 end;
close(fin);

c:= 0;
k := '';
p := 0;
for i:=1 to length(s) do
if s[i]<>' ' then
begin
c:=c+1;
k:=k+s[i];
end
else
begin
if c>p then
begin
p:=c;
l:=k;
end;
c:=0;
k:='';
end;
writeln('4islo simvolov samogo dlinogo slova: ', p);
writeln('slovo: ',l);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 15.03.2009, 00:45   #5
tanek
Форумчанин
 
Регистрация: 07.03.2009
Сообщений: 209
По умолчанию

большое спасибо, вы мне очень помогли!!!!
tanek вне форума Ответить с цитированием
Старый 01.02.2011, 17:00   #6
polkop
 
Регистрация: 31.01.2010
Сообщений: 3
По умолчанию

Подскажите как эта программа будет выглядеть в СИ
polkop вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами ФЁкЛА Общие вопросы C/C++ 8 26.02.2009 00:16
Работа с файлами на С++ nec117 Общие вопросы C/C++ 4 24.02.2009 23:18
Работа с файлами LeoN Общие вопросы Delphi 5 23.12.2006 13:33
Работа с файлами El_Bint0 Помощь студентам 1 20.12.2006 02:07