Помощь - Поиск - Пользователи - Календарь
Полная версия: Сформировать файл по следующему принципу...
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Юлька
Сформировать символьный файл f. Переписать компоненты файла в файл g, заменив при этом:
а)каждую из групп стоящих рядом точек одной точкой;
б)каждую из групп стоящих рядом точек многоточием (то есть тремя точками).


Т.е. как я поняла, должно получится что-то вроде:Запускаем прогу. Выходит вопрос - "Создать символьный файл Y/N ?" Если Отвечаем 'N'
выходим из программы, если "Y" - создается символьный файл f, на экране появляется набор
случайных символов, например из 100 штук (буквы, точки, цифры). Далее спрашивает:

1. Заменить каждую из групп стоящих рядом точек одной точкой.
2. Заменить каждую из групп стоящих рядом точек троеточием.

При нажатии на 1, программа создает файл g, состоящий из тех же символов, но только
рядом стоящие точки заменяет на одну. Т.е. все буквы, цифры, и.т.д. оставляет как есть,
а точки если они рядом стоят заменяет на одну точку.
При нажатии на 2 тоже самое, но точки меняются на три точки.


Может я не так поняла... Сделайте кто-нибудь sad.gif((
AlaRic
Сама себе все разжевала!
Юлька
При чем тут разжевала ?! Мне программа нужна ! Не могу я сделать. НЕ МО ГУ !! Тупая. Не знаю я информатики. :~(
Ivs
Цитата
Т.е. как я поняла, должно получится что-то вроде:Запускаем прогу. Выходит вопрос - "Создать символьный файл Y/N ?" Если Отвечаем 'N'
выходим из программы, если "Y" - создается символьный файл f, на экране появляется набор
случайных символов, например из 100 штук (буквы, точки, цифры). Далее спрашивает:

Ну так бы я нестал делать, Зачем???
Просто создаешь файл F.txt, пишешь в нем все что хочешь, далее запускаешь программу, выбираешь из 2х вариантов один, и любуешся результатами в файле G.txt . Все просто 8-)
Код

program Ten_ten_ten;

var
  F,G      : Text;
  i,n      : Integer;
  S,newStr : String;
  Ten      : String[3];

begin
  Assign(F,'f.txt'); Reset(F);
  Assign(G,'g.txt'); Rewrite(G);

  writeln('1 - . ten');
  writeln('2 - ... ten');
  write('Input: ');
  repeat
     readln(n);
  until (n=1) or (n=2);

  if n=1 then Ten:='.' else Ten:='...';
  while not(Eof(F)) do
  begin
     readln(F,S);
     i:=1; newStr:='';
     while (i<=length(S)) do
     begin
      if S[i]='.' then
      begin
         while (S[i]='.') and (i<length(S)) do Inc(i);
         newStr:=newStr+Ten;
      end;
      if i=length(S) then break;
      newStr:=newStr+S[i];
      Inc(i);
     end;
     writeln(G,newStr);
  end;
  Close(F);
  Close(G);
end.

Если что-то будет непонятно то напиши, можно на мыл ;)  - прокомментирую.

[Модератор]: Дорогие гости и участники форума! Старайтесь давать более информативные названия своим темам. Надоело переделывать:-)
AlaRic
Цитата
]: Дорогие гости и участники форума! Старайтесь давать более информативные названия своим темам. Надоело переделывать:-)

Повесил бы лучше это сообщение как закрытую тему... врятли кто-нибудь тут заметит!
Ivs
Цитата
Quote:]: Дорогие гости и участники форума! Старайтесь давать более информативные названия своим темам. Надоело переделывать  


Повесил бы лучше это сообщение как закрытую тему... врятли кто-нибудь тут заметит!

AlaRic, ты имееш в виду создать сложную тему где будем писать правила и небольшой faq (по аналогии с мощными форумами)?  Я согласен, но нужна помощь...
Clane
Отличная у вас возникла идея.... Молодца !!
Юлька
Ivs, спасибо за задачу, но кое чего не так. По крайней мере, препод дала мне еще пару дней (слава богу) и сказала, что должны быть использованы такие штуки как POS, DEL, LENGTH. Может я что-то прогнала тут, но вроде правильно. По крайней мере, это то что я запомнила. Еще что-то про string и substring говорила.
А во-вторых.. нельзя ли чтоб не создавать самой файл ? В задании написано сформировать.. Т.е. чтоб программа сама случайными символами сформировала его..
И третье. Эта программа, которую ты написал, у меня так и не заработала sad.gif Выдала ошибку Error 3 Unknown identifier на слове break. У меня паскаль 6.0
И в классах у нас 6.0...
Надеюсь, не сильно нагло я тут расписала все.. Помогите.
:-[
Ivs
Хех...:-)
И все равно мне эта бредовая идея по формированию файла из случайных символов не нравиться 8-I, ну да ладно.
Вот переписал как просила, и вроде файл формируется и вроде Pos , Delete используются и все такое, даже проверял на TP 6.0 :-)
Код

program Ten_ten_ten;

var
  F,G      : Text;
  i,j      : Integer;
  n,Poz    : Integer;
  S,newStr : String;
  Ten      : String[3];
  Ch       : Char;

begin
  Assign(F,'f.txt'); Rewrite(F);
  Assign(G,'g.txt'); Rewrite(G);

  repeat
     write('Сформировать файл ? (y/n): ');
     readln(Ch);
     Ch:=UpCase(Ch);
  until (Ch='Y') or (Ch='N');
  if Ch = 'N' then Exit;
  for i:=1 to 20 do
  begin
     for j:=1 to 20 do write(F,Chr(Random(8)+40));
     writeln(F);
  end;

  Close(F);
  Assign(F,'F.txt');Reset(F);

  writeln('1 - . ten');
  writeln('2 - ... ten');
  write('Input: ');
  repeat
     readln(n);
  until (n=1) or (n=2);
  if n=1 then Ten:='.' else Ten:='...';

  while not(Eof(F)) do
  begin
     readln(F,S);
     i:=1; newStr:='';
     Poz:=1;
     while (Pos('..',S)>0) do
     begin
       Poz:=Pos('..',S);
       newStr:= newStr + Copy(S,1,Poz-1) + Ten;

       while (Poz<=length(S)) and (S[Poz]='.') do Delete(S,Poz,1);
       Delete(S,1,Poz-1);

     end;
     if newStr='' then writeln(G,S) else writeln(G,newStr+S);
  end;
  Close(F);
  Close(G);
end.


P.S : И где это интересно такие задачки интересные задают :-?
Юлька
Ivs, я тебя люблю !!! :) Все работает, все как надо ! Завтра сдавать побегу :D
А задают такие у нас в институте, на первом курсе, на специальности менеджмент :)

СПАСИБО !!!!  :-*
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.