Среда, 08.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 6 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
Модератор форума: Seqular, Pavel  

палиндромы
AlexanderДата: Суббота, 08.11.2008, 08:49 | Сообщение # 76
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Victoris, во-первых в досе у тебя всего 64Кб памяти, а ты в первой же строке выделяешь примерно в 60 раз больше. Потом ещё 2000 символов пытаешься прочитать в строку, размером 255 символов.
Quote (Seqular)
И одинаково неверный =))

Ладно твоя взяла smile .
Значит надо что-нить рекурсивное придумать, типа:
Code
procedure a(var c:Arr;i,j:word);
var
    m,k:word;
begin
    for k:=j-i+1 downto 1 do
       for m:=1 to (j-i+1)-k+1 do
          if testpalindrom(c,i+m-1,i+m-1+k-1) then
             begin
                a(c,i,i+m-2);
                writestr(c,i+m-1,i+m-1+k-1);
                a(c,i+m-1+k,j);
                exit;
             end;
end;

biggrin


Скажем дружно- нафиг нужно!
 
SeqularДата: Суббота, 08.11.2008, 15:36 | Сообщение # 77
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Quote (Victoris)
var l:array[1..2000,1..2000] of byte;

Смысл выделять 2000х2000=4.000.000 байт под матицу? Вас засмеют.... Да и паскаль не станет компилировать этот бред. При этом ты используешь функции чтения строки, а ты не думал, что строк длинной в 2000 не бывает. Речь идет о массиве символов... А если палиндром будет на разрыве строк, то ты просто "пролетишь"?


Поддерживаю также проект сообщество молодых сисадминов
 
SeqularДата: Суббота, 08.11.2008, 18:53 | Сообщение # 78
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Естественно, предвкушая ваши возражения, заявляю, что все вышеупомянутые ограничения - для среды Turbo Pascal под DOS.

Поддерживаю также проект сообщество молодых сисадминов
 
AlexanderДата: Суббота, 08.11.2008, 19:39 | Сообщение # 79
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Quote (Seqular)
строк длинной в 2000

в модуле strings описан тип pchar - строки, заканчивающиеся нулём.
Quote (Seqular)
предвкушая ваши возражения

чьи? Учитывая, что в своём предыдущем посте я написал тоже самое, подозреваю, что не мои.


Скажем дружно- нафиг нужно!
 
snaper1993Дата: Воскресенье, 09.11.2008, 08:52 | Сообщение # 80
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
Тему можно закривать, спасибо за помощ!
3 и 4 сам както зделал(с книгой)!

Добавлено (09.11.2008, 01:52)
---------------------------------------------
Вот 3 задачка:

Code

var a:array[0..30,0..30] of longint;
     i,j,n,x,y:longint;
     s:string;
     f,f1:text;
begin
assign(f,'palindrome1.dat'); reset(f);
assign(f1,'palindrome2.sol'); rewrite(f1);
  readln(f,s);
  n:=length(s);
  for i:=1 to n do
   a[i,i]:=1;

  for j:=2 to n do
   for i:=1 to n-j+1 do
    if(s[i]=s[i+j-1]) then a[i+j-1,i]:=a[i+j-2,i]+a[i+j-1,i+1]+1
    else a[i+j-1,i]:=a[i+j-2,i]+a[i+j-1,i+1]-a[i+j-2,i+1];
  writeln(f1,a[n,1]);
  close(f);
  close(f1);
end.


Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
  • Страница 6 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;