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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2011, 22:32   #1
serhan
Пользователь
 
Регистрация: 23.04.2011
Сообщений: 19
По умолчанию Текстовый файл, из предложения выбросить слова в которых встречается определённая буква. (Паскаль)

Pascal.
Нужно считать с файла предложения, потом с этого предложения выбросить слова в которых встречается определённая буква. И потом записать у другой файл результат.

Я думаю так, что бы исключить с предложения слово буквой нужно его найти, тоесть предложение перебрать, тоесть предложение как массив...
Но как это сделать, присвоить текст массиву?
У меня вот что пока есть...

Код:
program p1;
const n=10;
var  f,g:text;
     a:array[1..n] of string;
     i:integer;
begin
  assign(g,'c:\pascal\data21.txt');
  reset(g);
  while not eof(g) do
  begin
    read(g,a[i]);
  end;
  close(g);
  assign(f,'c:\pascal\data22.txt');
  rewrite(f);
  for i:=1 to n do
  begin
       writeln(f,a[i]);
  end;
  close(f);
  readln;
end.
Подскажите пожалуйста как это сделать?
serhan вне форума Ответить с цитированием
Старый 24.04.2011, 08:44   #2
was3110
Форумчанин
 
Аватар для was3110
 
Регистрация: 25.04.2010
Сообщений: 254
По умолчанию

http://orenstudent.ru/upragPas.htm
останется немного доработать...
помогать студентам - моя вторая профессия
was3110 вне форума Ответить с цитированием
Старый 24.04.2011, 10:34   #3
serhan
Пользователь
 
Регистрация: 23.04.2011
Сообщений: 19
По умолчанию

Так что доработать? Если там просто решоные другие задачи?
serhan вне форума Ответить с цитированием
Старый 24.04.2011, 12:17   #4
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

перделать под себя
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 24.04.2011, 13:10   #5
RomiKon
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 143
По умолчанию

Блин дел то, читаешь с файла по одному символу, пока не встретися разделитель(цифры пробелы запятые точки и так далее) если в считавшейся последовательности нет интересующей нас буквы то записываешь этот набор в другой файл, затем считываешь с первого файла все символы пока не встретишь разделитель записываешь их во второй файл и повторяешь все операции выше пока не кончится файл
RomiKon вне форума Ответить с цитированием
Старый 24.04.2011, 13:30   #6
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Код:
type Pstr =^TStr;
       TStr = record
          str:string;
          next:Pstr;
       end;
var  Spisok,beg:Pstr;
      i,j,k:integer;
      f1,f2:text;
     bukva:char;str:string;
begin
   readln(bukva);
   assign(f1,'f1');
   reset(f1);
   new( Beg); Spisok:=beg;
   while not eof(f1) do
      begin 
         readln(f1,Spisok^.str);
         if not eof(f1) then new(Spisok^.next)
      end;
   close(f1);
   Spisok:=Beg;
   assign(f2,'f2');
rewrite(f2);
   While not(Spisok=nil ) do
     begin
       i:=0;
       while i<= length(Spisok^.str) do
           begin
              while not Spisok^.str[i] in ['A'..'Z','a'..'z'] do inc(i);
               j:=i;
              while Spisok^.str[i] in ['A'..'Z','a'..'z'] do inc(i);
               k:=i;
               str:=copy(Spisok^.str,j,k-j);
               Delete(Spisok^.str,j,k-j);
               if pos(str,bukva)=0 do insert(str,Spisok^.str,j); 
           end;
       Spisok:=Spisok^.next;
end;
   Spisok:=Beg;
  while not(Spisok=nil)do
    begin
      writeln(f2,Spisok^.str);
      Spisok:=spisok^.next;
end;
  close(f2);
end.
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 24.04.2011, 16:24   #7
serhan
Пользователь
 
Регистрация: 23.04.2011
Сообщений: 19
По умолчанию

New man, как с тобой можно связатся? Аська?
serhan вне форума Ответить с цитированием
Старый 24.04.2011, 17:30   #8
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Код:
program PDD;
type Pstr =^TStr;
       TStr = record
          str:string;
          next:Pstr;
       end;
var  Spisok,beg:Pstr;
      i,j,k:integer;
      f1,f2:text;
     bukva:char;str:string;
begin
   readln(bukva);
   assign(f1,'f1');
   reset(f1);
   new( Beg); Spisok:=beg;
   while not eof(f1) do
      begin 
         readln(f1,Spisok^.str);
         if not eof(f1) then new(Spisok^.next)
      end;
   close(f1);
   Spisok:=Beg;
   assign(f2,'f2');
rewrite(f2);
   While not(Spisok=nil ) do
     begin
       i:=0;
       while i<= length(Spisok^.str) do
           begin
              while not Spisok^.str[i] in ['A'..'Z','a'..'z','А'..'Я','а'..'я','Ёё'] do inc(i);
               j:=i;
              while Spisok^.str[i] in ['A'..'Z','a'..'z','А'..'Я','а'..'я','Ёё'] do inc(i);
               k:=i;
               str:=copy(Spisok^.str,j,k-j);
               Delete(Spisok^.str,j,k-j);
               if pos(str,bukva)=0 do insert(str,Spisok^.str,j); 
           end;
       Spisok:=Spisok^.next;
end;
   Spisok:=Beg;
  while not(Spisok=nil)do
    begin
      writeln(f2,Spisok^.str);
      beg:=spisok;
      Spisok:=spisok^.next;
     dispose(BEG);
end;
  close(f2);
  
end.
А это оптимизация
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 24.04.2011, 18:07   #9
serhan
Пользователь
 
Регистрация: 23.04.2011
Сообщений: 19
По умолчанию

New man, как с тобой связаться?
моя аська 381359821
serhan вне форума Ответить с цитированием
Старый 24.04.2011, 19:42   #10
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

зачем? 45546545646465465
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
количество слов, первая и последняя буква которых совпадают gred Помощь студентам 4 13.11.2014 13:56
найти все слова, в которых заданный символ встречается не менее чем заданное число раз. Delphi. Виктория7777 Помощь студентам 6 21.12.2010 18:46
разбить текстовый файл на слова pavel_1406 Общие вопросы C/C++ 3 19.12.2009 22:11
предложения, все слова в которых образованны повторением одного символа, и сформировать из них массив kluwa Общие вопросы C/C++ 4 08.12.2007 15:17
Вывести на экран те слова, у которых первая буква входит в него 2 раза. GN_ Паскаль, Turbo Pascal, PascalABC.NET 2 31.12.2006 09:14