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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2015, 15:52   #1
Ана88
Новичок
Джуниор
 
Регистрация: 06.12.2015
Сообщений: 7
По умолчанию Найти самое длинное симметричное слово заданного предложения

Найти самое длинное симметричное слово заданного предложения
Помогите пожалуйстааа
Ана88 вне форума Ответить с цитированием
Старый 06.12.2015, 17:46   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Разбиваем на слова так:
http://www.programmersforum.ru/showt...369#post398369
Далее функция проверки симметрии:
Код:
function Sym(s:string):Boolean; var i:integer;
begin
 for i:=1 to Length(s) div 2 do 
   if s[i]<>s[Length(s)-i+1] then begin Sym:=false; exit; end;
 Sym:=true;
end;
И соответственно поиск слова:
Код:
MyWord:='';
for i:=1 to count do
 if Sym(a[i]) and (Length(a[i])>Length(MyWord)) then begin
  MyWord:=a[i];
 end;
Где MyWord:string;

Идея уловима?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.12.2015, 18:09   #3
Ана88
Новичок
Джуниор
 
Регистрация: 06.12.2015
Сообщений: 7
По умолчанию

Дан такой пример...и нужно по нему
Проверить, имеется ли в заданном тексте баланс открывающих и закрывающих круглых скобок, т. е. верно ли, что можно установить взаимно однозначное соответствие открывающих и закрывающих скобок со следующими свойствами:
а) открывающая скобка всегда предшествует соответствующей закрывающей скобке;
б) первый и последний символы текста – пара соответствующих друг другу скобок
Код:
program Lab13_2;
var
    S:string;
    i,k,Len:integer;
    L:boolean;
begin
    writeln('Ввод строки');
    readln(S);
    Len:=length(S);
    k:=0;
    i:=0;
    if (S[1]='(') and (S[Len]=')') then begin
      while (i<Len) and (k>=0) do begin
              i:=i+1;
              if S[i]='(' then
                 k:=k+1
              else
                 if S[i]=')' then
                   k:=k-1;
       end;
       L:=i=Len;
   end
       else
        L:=false;
        writeln('Баланс скобок ',L);
end.

Последний раз редактировалось Аватар; 06.12.2015 в 18:31.
Ана88 вне форума Ответить с цитированием
Старый 06.12.2015, 19:24   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
.и нужно по нему
Даже если он не подходит?? Хм... Ладно.
Код:
program Lab13_2;
var
    w,S:string;
    i,k,Len:integer;
    L:boolean;
begin
    writeln('Ввод строки');
    readln(S);
    Len:=length(S);
    i:=1; w:='';
    while (i<=Len) do begin
              k:=0;
              While (i<=len) and (s[i+k]<>' ') do inc(k);
              if length(copy(s,i,k-1))<Length(w) then w:=copy(s,i,k-1); inc(i,k);
     end;
 Выводим W на экран
end.
Так?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.12.2015, 19:36   #5
Ана88
Новичок
Джуниор
 
Регистрация: 06.12.2015
Сообщений: 7
По умолчанию это пример

Это просто пример...
Мы не используем соpy,<>,inc
Ана88 вне форума Ответить с цитированием
Старый 06.12.2015, 19:41   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Пффф... Тогда твоя задача не решается... Если нельзя использовать ни пример по ссылке ни функции строк, то... Накрывай поляну преподу, или жди, кто из форумчан чего предложит экзотического.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.12.2015, 20:26   #7
Ана88
Новичок
Джуниор
 
Регистрация: 06.12.2015
Сообщений: 7
По умолчанию

У меня вообще не ищет симметричного слова
Ана88 вне форума Ответить с цитированием
Старый 07.12.2015, 15:56   #8
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от Ана88 Посмотреть сообщение
Это просто пример...
Мы не используем соpy,<>,inc
да ладно?? а как хоть что то написать можно не использую условий и инкремента inc(i) = I:=I+1
x<>y одно и тоже что not(x=y)
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 07.12.2015, 21:58   #9
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
Program HelloWorld(output);
var sent :string;
 i:integer;palidrom,s,answer:string;
begin
sent := 'Hello my shalahs ! You have a nice booooob';
sent := sent + ' ';
answer:='';s:='';palidrom:='';
for i:=1 to length(sent)-1 do
begin
    if upcase(sent[i]) in ['A'..'Z'] then 
    begin
        s:=s+upcase(sent[i]);    palidrom := upcase(sent[i])+palidrom;
    end;
    if (sent[i]<>' ') and (sent[i+1]=' ') then
    begin
       if (s = palidrom) and (length(s)>=length(answer)) then
        begin
            answer := s; writeln('Palidrom ',s)
        end;
        s := '';palidrom:='';
    end;
end;
writeln('answer : ',answer);
end.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти самое длинное симметричное слово в заданном предложении TimeWolf1 Помощь студентам 2 21.04.2015 21:22
Пять задач (Найти все трехзначные числа,Массивы и Найти самое длинное симметричное слово)VBA Nod123 Помощь студентам 0 24.12.2014 01:30
Найти самое длинное симметричное слово заданного предложения С++ swimming1 Фриланс 6 30.11.2010 18:50
5. Найти самое длиной симметричное слово заданного предложения. паскаль tipson Помощь студентам 8 08.07.2009 22:05
найти самое длинное симметричное слово Си++ xVeteRx Помощь студентам 3 10.04.2009 21:25