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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2012, 14:40   #1
maksimum
Пользователь
 
Регистрация: 07.04.2012
Сообщений: 21
По умолчанию Дописать удаление слова с заданным номером среди палиндромов на паскале

Здравствуйте, форумчане! Помогите дописать программу на паскале фри.
Вводится строка текста, разделителями являются пробел ,/?.<;>:”!’*%. Нужно удалить из строки слово с заданным номером среди палиндромов. Проверку слова на палиндром оформить как функцию.
Код:
PROGRAM DEL;  
     USES CRT; 
     CONST  R:SET OF CHAR= [' ',’,’,’/’,’?’,’.’,’,’<’,’;’,’>’,’:’,’”’,’!’,’’’,’*’,’%’]; 
     VAR S,A,B:STRING; 
               I,K:BYTE; 
               F:BOOLEAN; 
FUNCTION PALINDROM(CONST S: STRING): BOOLEAN;
VAR
  I: INTEGER;
BEGIN
  RESULT := FALSE;
  FOR I := 1 TO LENGTH(S) DIV 2 DO
    IF S[I] <> S[LENGTH(S) - I + 1] THEN EXIT;
  RESULT := TRUE;
END;     
BEGIN 
             CLRSCR; 
             WRITE('S='); READLN(S); 
              I:=1;  F:=TRUE; 
             WHILE I<=LENGTH(S) DO 
IF S[I] IN R THEN  
      INC(I) 
   ELSE 
   BEGIN 
A:=''; B:=''; 
      WHILE (I<=LENGTH(S)) AND NOT(S[I] IN R) DO 
IF PALINDROM(S[I]) THEN
      BEGIN                   
WRITELN('INPUT NUMBER');
READLN(K);
UNTIL K<=I;
Остановился на введении номера слова, скажите на данном этапе всё правильно? Помогите дописать удаление слова определённого номера.
maksimum вне форума Ответить с цитированием
Старый 10.04.2012, 16:56   #2
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

1) всегда дописывай код! если он не запускается - не морочь людям голову... я вот убил 10 мин на доведение твоего кода до ума, а мог бы за 8 мин написать свой вариант
2) зачем ты внутри цикла запрашиваешь число? вначале его запросил и в цикле сравниваешь с номером палиндрома, если равен, то не записываем его в ответ

код сам доработаешь (R своё скопируешь т.к. у меня оно тупило):
Код:
var
  InputStr, WordStr, ResultStr: string;
  I, DeleteID, PalindromID: Integer;
begin
  CLRSCR;
  WRITE('S=');
  READLN(InputStr);
  write('Delete palindrom #');
  Readln(DeleteID);

  ResultStr := '';
  PalindromID := 0;
  I := 0;
  while I < LENGTH(InputStr) do
    begin
      inc(I);
      if not (InputStr[I] in R) then
        begin
          WordStr := '';
          while (I <= LENGTH(InputStr)) and not (InputStr[I] in R) do
            begin
              WordStr := WordStr + InputStr[I];
              Inc(I);
            end;

          Dec(I);  
          if PALINDROM(WordStr) then
            begin
              Inc(PalindromID);
              if PalindromID <> DeleteID then
                ResultStr := ResultStr + WordStr;
            end
          else
            ResultStr := ResultStr + WordStr;
        end
      else
        ResultStr := ResultStr + InputStr[I];
    end;

  Writeln(ResultStr);
  Readln;
end.
GreenWizard вне форума Ответить с цитированием
Старый 10.04.2012, 17:12   #3
maksimum
Пользователь
 
Регистрация: 07.04.2012
Сообщений: 21
По умолчанию

Спасибо большое! Сори за потраченное время, просто не знал как сформировать удаление слова.
maksimum вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана строка со словами, разделёнными пробелами, в конце - точка. Удалить слово с заданным номером (Паскаль ABC) Margosham-k Помощь студентам 6 10.04.2012 12:11
поменять местами столбец с максимальным элементом на главной диагонали со столбцом с заданным номером m. Visual C++ hunter08923 Помощь студентам 0 22.06.2011 00:14
Delphi удаление палиндромов varlonec Помощь студентам 3 11.01.2010 23:32
удаление сроки из матрицы с заданным номером К radikal Паскаль, Turbo Pascal, PascalABC.NET 4 14.01.2009 23:24
В паскале написать программу которая по заданным точкам рисовала многоугольник. Anton1997 Паскаль, Turbo Pascal, PascalABC.NET 1 30.11.2008 19:26