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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2011, 02:54   #1
pandaaaaa
Пользователь
 
Регистрация: 09.12.2011
Сообщений: 27
Восклицание Задача с файлом. Не особо понимаю алгоритм действий

Дан текстовый файл. Длина строк произвольна. Слова в строках отделены друг от друга одним или несколькими пробелами. Длина слова не более 100 символов. Подсчитать количество слов в файле.

Последний раз редактировалось pandaaaaa; 10.12.2011 в 01:40.
pandaaaaa вне форума Ответить с цитированием
Старый 09.12.2011, 06:19   #2
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Код:
var
  f: file of char;
  n: integer;
  c,d: char;
begin
  n:= 0;
  assign(f,'file.txt');
  reset(f);
  c:= ' ';
  while not EoF(f) do begin
    d:= c;
    if not (c in [' ',#10,#13]) and (d in [' ',#10,#13]) then inc(n)
  end;
  close(f);
  writeln('the file contains ',n,' words')
end.
Предпочитаю на "ты".

Последний раз редактировалось TinMan; 09.12.2011 в 07:15.
TinMan вне форума Ответить с цитированием
Старый 10.12.2011, 01:43   #3
pandaaaaa
Пользователь
 
Регистрация: 09.12.2011
Сообщений: 27
По умолчанию

там не более 100 символов.
И что значит
Код:
assign (f,'file.txt');
reset (f);
?
pandaaaaa вне форума Ответить с цитированием
Старый 10.12.2011, 02:42   #4
QunneD
C++ & PHP & Asm
Форумчанин
 
Аватар для QunneD
 
Регистрация: 06.12.2008
Сообщений: 300
По умолчанию

assign - назначить переменной f содержимое файла 'file.txt'. (другими словами: связывает декриптор файла с текстовым или бинарным файлом)
reset - обозначает, то что файл указанный в f используеться для чтения.
QunneD вне форума Ответить с цитированием
Старый 10.12.2011, 03:29   #5
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

QunneD, спасибо, +1
Цитата:
Сообщение от pandaaaaa Посмотреть сообщение
там не более 100 символов.
Гм. Ну и что? Что ты этим хотел сказать? Да, я видел, что по условию слова не длиннее 100 символов.. Что с того? Блин, пальцы отвалятся что ли написать поподнобнее? ну, тупой я, не понимаю с полуслова..
Цитата:
И что значит
Код:
assign (f,'file.txt');
reset (f);
?
Открытие файла file.txt в текущей директории для чтения.

pandaaaaa, тебе тоже спасибо за твое спасибо.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 10.12.2011, 03:43   #6
pandaaaaa
Пользователь
 
Регистрация: 09.12.2011
Сообщений: 27
По умолчанию

не работает код, он компилирует, все ок, но при запуске просто черный экран. Я пол часа ждал думал так долго считает :DDD Но на экран так ничего и не вывел
Не не, спасибо конечно большое)
pandaaaaa вне форума Ответить с цитированием
Старый 10.12.2011, 03:46   #7
pandaaaaa
Пользователь
 
Регистрация: 09.12.2011
Сообщений: 27
По умолчанию

Цитата:
Сообщение от TinMan Посмотреть сообщение
QunneD, спасибо, +1
Гм. Ну и что? Что ты этим хотел сказать? Да, я видел, что по условию слова не длиннее 100 символов.. Что с того? Блин, пальцы отвалятся что ли написать поподнобнее? ну, тупой я, не понимаю с полуслова..

Открытие файла file.txt в текущей директории для чтения.

pandaaaaa, тебе тоже спасибо за твое спасибо.
Я когда условие писал пропустил "более" решил поправить)
pandaaaaa вне форума Ответить с цитированием
Старый 10.12.2011, 06:34   #8
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от pandaaaaa Посмотреть сообщение
не работает код, он компилирует, все ок, но при запуске просто черный экран.
Ну так так бы и сказал! чего молчать-то? )) Я пропустил собственно чтение, извиняюсь..
Вот исправленный код:
Код:
var
  f: file of char;
  n: integer;
  c,d: char;
begin
  n:= 0;
  assign(f,'file.txt');
  reset(f);
  c:= ' ';
  while not EoF(f) do begin
    d:= c;
    read(f,c);   {this line was missing}
    if not (c in [' ',#10,#13]) and (d in [' ',#10,#13]) then inc(n)
  end;
  close(f);
  writeln('the file contains ',n,' words')
end.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 10.12.2011, 07:34   #9
pandaaaaa
Пользователь
 
Регистрация: 09.12.2011
Сообщений: 27
По умолчанию

исправил, теперь все работает, благодарю =***
pandaaaaa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача с текстовым файлом Viwwna Паскаль, Turbo Pascal, PascalABC.NET 2 24.11.2011 20:09
Объясните задачу Delphi. Задача сделана только код я не понимаю!! LudaBojar Помощь студентам 0 21.03.2011 20:30
Задача с текстовым файлом на Делфи Dozen Помощь студентам 1 07.06.2009 11:17
Алгоритм, задача с текстовым файлом Petrov Паскаль, Turbo Pascal, PascalABC.NET 1 27.04.2009 14:44
Алгоритм A*. Не понимаю Anekdot Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 05.04.2009 17:12