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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2014, 17:29   #1
Noobik2
 
Регистрация: 06.03.2014
Сообщений: 4
По умолчанию Pascal, задача про обработку текстовых файлов

Создать текстовый файл с произвольным содержимым. Написать программу, которая изменяет файл таким образом, что каждое его слово, содержащее хотя бы одну цифру, заклю-чается в скобки, а затем дописывает в конец файла строку, в которой указывается количество слов, заключенных в скобки. Под словом понимается любая последовательность символов, разделенная пробелом, концом строки или концом файла.
Noobik2 вне форума Ответить с цитированием
Старый 06.03.2014, 22:35   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

А где ваши наработки? Что у Вас конкретно не получается?

Поиском не пробовали искать? Код, который разбивает строку на отдельные слова на форуме приводился неоднократно...

И ещё. Или Вы пытаетесь самостоятельно решить и тогда можете расчитывать на помощь или ждите "добренького", кто Вам код полностью напишет или обращайтесь за платной услогой во фриланс.

Успехов
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.03.2014, 10:47   #3
Noobik2
 
Регистрация: 06.03.2014
Сообщений: 4
По умолчанию

Извините интернет вылетел. У меня проблема в том, что я немогу понять как обрабатывать построчно текстовый файл, как обращаться к файлу, чтообы прочитать третью строку например.
Noobik2 вне форума Ответить с цитированием
Старый 07.03.2014, 10:51   #4
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Читать мануалы не пробовали?
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 07.03.2014, 10:57   #5
Noobik2
 
Регистрация: 06.03.2014
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Vanta11a Посмотреть сообщение
Читать мануалы не пробовали?
можете дать ссылку на данный материал?

Спасибо за советы, разобрался с задачей. ( оказалось все так просто)

Последний раз редактировалось Stilet; 08.03.2014 в 13:59.
Noobik2 вне форума Ответить с цитированием
Старый 07.03.2014, 12:00   #6
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

На будущее: лучшая ссылка - гугл. В нем формируете запросы вида "Как сделать *то, что нужно* *язык программирования*", например "как отсортировать массив pascal" или "работа с файлами с++".
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 07.03.2014, 16:54   #7
Noobik2
 
Регистрация: 06.03.2014
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Vanta11a Посмотреть сообщение
На будущее: лучшая ссылка - гугл. В нем формируете запросы вида "Как сделать *то, что нужно* *язык программирования*", например "как отсортировать массив pascal" или "работа с файлами с++".
Хорошо, так и поступил

А можете еще помочь, ошибку выдает компилятор, ошибка времени выполнения: индекс находился вне границ массива.
Код:
procedure insertskobki(var S:string);
var
  i,k,count:integer;
  m:array of string;
begin
  count:=1;
  while s[1]=' ' do
    delete(s,1,1);
  while s[length(s)]=' ' do
    delete(S,length(s),1);
  while pos('  ',S)<>0 do
    delete(S,pos('  ',S),1);
  for i:=1 to length(s) do
    if s[i]=' ' then
      inc(count);
  setlength(m,count);
  k:=1;
  for i:=0 to high(m) do
    begin
      m[i]:='';
      while (s[k]<>' ')and(k<=length(s)) do
        begin
          m[i]:=m[i]+s[k];
          inc(k)
        end;
      inc(k);
    end;
  s:='';
  for i:=0 to high(m) do
    if (pos('0',m[i])<>0)or
       (pos('1',m[i])<>0)or
       (pos('2',m[i])<>0)or
       (pos('3',m[i])<>0)or
       (pos('4',m[i])<>0)or
       (pos('5',m[i])<>0)or
       (pos('6',m[i])<>0)or
       (pos('7',m[i])<>0)or
       (pos('8',m[i])<>0)or
       (pos('9',m[i])<>0) then
          s:=s+'('+m[i]+') '
    else
      s:=s+m[i]+' ';
end;
var
  S:string;
  
begin
  
  Readln(S);
  insertskobki(s);
  writeln(s);
  
end.
хотя он поидее находится в границах

Последний раз редактировалось Stilet; 08.03.2014 в 14:02.
Noobik2 вне форума Ответить с цитированием
Старый 08.03.2014, 09:09   #8
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

High(m)-1
Скорее всего, нужно поставить.
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи на обработку файлов с данными, списков и текстовых файлов Диана96 Помощь студентам 1 26.12.2013 12:09
Задача на обработку текстовых файлов на Delphi overload Помощь студентам 3 08.04.2012 13:24
задача в с++ (обработка текстовых файлов) impossible Помощь студентам 0 30.04.2011 20:25
Парсинг текстовых файлов. Pascal cheef Помощь студентам 6 10.11.2010 14:31
задачи: на двумерные массивы,обработку строк,обработку текстовых файлов. (Паскаль) Yaro Помощь студентам 2 12.11.2009 12:55