Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 19.05.2011, 00:54   #1 (permalink)
ma3a
Новичок
 
Регистрация: 19.05.2011
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите пожалуйста со строками в Pascal

Дана символьная строка. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Отредактировать строку, удалив из него слова, которые встречаются в предложении заданное число раз. Результат вывести на экран и в текстовый файл.
ma3a вне форума   Ответить с цитированием

Старый 19.05.2011, 00:54
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Может быть в аналогичных темах есть интересующие вас ответы

Пожалуйста, помогите написать программку. Pascal Free
Ребят, помогите, пожалуйста, с Pascal
Помогите, пожалуйста, решить три задачи по Pascal

Старый 20.05.2011, 17:29   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от ma3a Посмотреть сообщение
Дана символьная строка. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Отредактировать строку, удалив из него слова, которые встречаются в предложении заданное число раз. Результат вывести на экран и в текстовый файл.
Пожалуйста (имя и расположение файла можете, естественно, поменять):
Код:
VAR
 S:String;
 i,j,Nw,i1,i2,Nt,Nw1:Integer;
 W,W1:Array[1..128] of String;
 times:Array[1..128] of Byte;
 b:Boolean;
 f:text;

BEGIN
 { Ввод строки } 
 WriteLn('Enter the string:');
 ReadLn(S);

{ Разбиение строки на слова; слова формируют массив W } 
 i:=0;
 Nw:=0;
 Repeat
  Repeat
   Inc(i);
  Until S[i]<>' ';
  i1:=i;
  While (S[i]<>' ') and (i<Length(S)) do
   Inc(i);
  If i=Length(S) then i2:=i else i2:=i-1;
  Inc(Nw);
  W[Nw]:=Copy(S,i1,i2-i1+1);
 Until i=Length(S);

{ Ввод количества повторений } 
 Write('How many times? ');
 ReadLn(Nt);

{ Формирование массивов W1 и times; первый содержит перечень слов,
 входящих в строку, БЕЗ ПОВТОРОВ, а второй - количество повторов 
каждого из слов в исходной строке } 
 Nw1:=0;
 For i:=1 to Nw do
  begin
   b:=true;
   for j:=1 to i-1 do
    if W[j]=W[i] then b:=false;
   If b then
    begin
     Inc(Nw1);
     W1[Nw1]:=W[i];
     times[Nw1]:=0;
     for j:=i to Nw do
      if W[j]=W1[Nw1] then Inc(times[Nw1]);
    end;
  end;

{ Открытие файла для записи } 
 Assign(f,'D:\Out.txt');
 ReWrite(f);
 Writeln(f,S);

{ Вывод на экран и в файл слов исходной строки, не повторяющихся 
заданное количество раз } 
 For i:=1 to Nw do
  begin
   b:=true;
   for j:=1 to Nw1 do
    if (W[i]=W1[j]) and (times[j]=Nt) then b:=false;
   If b then
    if i<Nw then
     begin
      Write(W[i]+' ');
      Write(f,W[i]+' ');
     end
    else
     begin
      Write(W[i]);
      Write(f,W[i]);
     end;
  end;

 Writeln;
 Writeln(f);
 Close(f);
 Readln
END.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 12:25.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.