Автор Тема: Вспоминаем Turbo Pascal и решаем задачи на нём  (Прочитано 49459 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DeniSS

  • Пользователь
  • Сообщений: 1088
  • Пол: Мужской
  • Сама скрытность
    • ВКонтакте
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #150 : 11 Декабрь 2009, 17:12:33 »
2gepar в С++ я так с числом и сравнивал...

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #151 : 12 Декабрь 2009, 00:26:27 »
Цитата: DeniSS
2gepar в С++ я так с числом и сравнивал...
ну вот меня похожая мысль и посетила тобишь мысль о сравнении кодов .

Добавлено позже:
Цитата: topos84
Если мне память не изменяет, функция random выдает число типа real, а не integer. Или я не прав?
Там рендом целых чисел , это если бы я просто написал random то тогда бы генерировались числа от 0 до 1 типа real , так же генерируются целые числа .

Добавлено позже:
Такс , вот тут подсказали должно быть от 0 , а не от 1 :
Цитата:
     for i:=1 to high(m) do if m>0 then mas:=m*2
Правда пока не ответили почему так .

Добавлено позже:
Насчёт high ответили что там просто идёт сходу увеличение на 1 .Впринципе с этим разобрался , а вот почему не работает вот это - нет .Код
program proga274;
uses crt;
const
n=12;
var
m:array[1..12] of integer;
i:integer;
res4,resn:integer;
procedure chetnie(var r:integer;m:array of integer);
Begin
     r:=0;
     for i:=0 to high(m) do
     Begin
          if m[i] mod 2 =0 then r:=r+m[i];
     end;
end;
procedure ne4etnie(var re:integer;m:array of integer);
Begin
     re:=0;
     for i:=0 to high(m) do
     Begin
          if m[i] mod 2 <>0 then re:=re+m[i];
     end;
end;
Begin
     res4:=0;resn:=0;
     clrscr;
     randomize;
     for i:=1 to n do m[i]:=random(20)-10;
     writeln('Your array is : ');
     write('[ ');
     for i:=1 to n do write(m[i],' ');
     write(']');
     chetnie(res4,m);
     ne4etnie(resn,m);
     writeln;
     writeln('Summa 4etnih: ',res4,' Summa ne 4etnih: ',resn);
     readkey;
end.
Большая просьба разъяснить что я сделал не так потому как из прочитанного мной до этого материала всё так , но на практике то ведь по другому - вместо подсчета суммы чётных и нечётных чисел считается фиг знает что и это при том что я ведь изначально результаты обнулил так что откуда берутся ложные цифры в ответе вообще мне непонятно  :(

Оффлайн topos84

  • Emu-Land Team
  • Сообщений: 2762
  • Пол: Мужской
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #152 : 12 Декабрь 2009, 00:48:31 »
Цитата: gepar
Большая просьба разъяснить что я сделал не так потому как из прочитанного мной до этого материала всё так , но на практике то ведь по другому - вместо подсчета суммы чётных и нечётных чисел считается фиг знает что и это при том что я ведь изначально результаты обнулил так что откуда берутся ложные цифры в ответе вообще мне непонятно  Грустный
Да я тоже ошибки не вижу. Может, заменишь надпись "...<> 0" на надпись "...<0) or (...>0)"? Я опять забыл, есть в паскале такой знак или нет (<>).

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #153 : 12 Декабрь 2009, 01:28:47 »
Цитата: topos84
Да я тоже ошибки не вижу. Может, заменишь надпись "...<> 0" на надпись "...<0) or (...>0)"? Я опять забыл, есть в паскале такой знак или нет (<>).
Это знак неравности .
В прикреплённом файле на всякий случай pas .

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #154 : 14 Декабрь 2009, 21:08:52 »
Блин , я уже задолбался с этой прогой которая удаляет совпадающую строку в матрице .topos84,help please , хоть чемто , ато застрял по самое не балуйся , тут пара друзей пытались помочь , но все в конце концов отказываются .Пока что я лишь пришёл к выводам что както надо бы всё это дело сравнить , а потом некоторые мне советовали сдвигать строки , вот только как это сделать ?У меня ведь в массиве границы же есть сколько элементов должно быть в массиве , как я эти границы могу обойти ?

Добавлено позже:
Совместными мучениями пока что получился вот такой кусочек подпрограммы по сравнению рядов в матрице :
procedure sravn(var a:matr; mas:matr);
Begin
for i:=1 to m do
begin
    f:=false;
    for g:=i+1 to m do
        for j:=1 to n do
        if mas[i,j]<>mas[g,j] then begin f:=true; break; end;
end;
if f=false then
Кстати вопрос :зачем мне преподаватель сказал обязательно добавить type matr=array [1..m,1..n] of integer иначе мол программа работать не будет , мне конечно не сложно , но разве это обязательно условие ?

Оффлайн topos84

  • Emu-Land Team
  • Сообщений: 2762
  • Пол: Мужской
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #155 : 14 Декабрь 2009, 23:54:01 »
Цитата: gepar
Кстати вопрос :зачем мне преподаватель сказал обязательно добавить type matr=array [1..m,1..n] of integer иначе мол программа работать не будет , мне конечно не сложно , но разве это обязательно условие ?
А ты знаешь такой стандартный тип как matr? Я нет. Массивы знаю, а matr - нет.

Добавлено позже:
Цитата: gepar
Кстати вопрос :зачем мне преподаватель сказал обязательно добавить type matr=array [1..m,1..n] of integer иначе мол программа работать не будет , мне конечно не сложно , но разве это обязательно условие ?
Аха! Я в программе написал:
function sravn(i,j:byte; mart:array[1..m,1..n] of integer):boolean;И компилятор заругался на меня: "OF expected" и указал на сивом, сразу идущий за словом array. Из чего я делаю вывод, что в качестве параметров функции (а значит и процедуры) не все стандартные типы годятся. Значит препод прав: нужно перед описанием функции добавить новый тип:
type matr=array[1..m,1..n] of integer;

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #156 : 15 Декабрь 2009, 00:06:39 »
Цитата: topos84
А ты знаешь такой стандартный тип как matr? Я нет. Массивы знаю, а matr - нет.
Ну насколько я понял это посоветовал преподаватель для экономии времени в дальнейшем так как дальше она сказала указать :mas,a:matr . Хотя я вообще типами не пользуюсь .Ну да как дальше поступить ?Пусть без типов .Ато я конкретно на этом задании застрял , остальные по поводу подпрограмм я хоть знаю что делать (у меня там ещё задание насчёт магического квадрата) , что и с чем сравнивать , ав этом задании как проделать всё придумать немогу .

Добавлено позже:
Цитата: topos84
Из чего я делаю вывод, что в качестве параметров функции (а значит и процедуры) не все стандартные типы годятся.
Ну знать не только для экономии времени  :)

Оффлайн Fly

  • Пользователь
  • Сообщений: 1896
  • Пол: Мужской
    • Steam
    • Youtube
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #157 : 15 Декабрь 2009, 00:28:23 »
Цитата: gepar
Кстати вопрос :зачем мне преподаватель сказал обязательно добавить type matr=array [1..m,1..n] of integer иначе мол программа работать не будет , мне конечно не сложно , но разве это обязательно условие ?
Чтобы проблем поменьше было. Потому что если написать
a:array [1..10] of integer;
b:array [1..10] of integer;
то переменные a и b будут считаться переменными разных типов.
Цитата: gepar
Блин , я уже задолбался с этой прогой которая удаляет совпадающую строку в матрице .topos84,help please , хоть чемто , ато застрял по самое не балуйся , тут пара друзей пытались помочь , но все в конце концов отказываются .Пока что я лишь пришёл к выводам что както надо бы всё это дело сравнить , а потом некоторые мне советовали сдвигать строки , вот только как это сделать ?У меня ведь в массиве границы же есть сколько элементов должно быть в массиве , как я эти границы могу обойти ?
Идёшь по массиву снизу вверх, сравнивая последовательно сначала нижнюю строку с остальными, потом предпоследнюю и т. д. Если обнаруживается такая же строка, то как-нибудь это отмечаешь. Например, заполняешь строку нулями, или делаешь отдельный одномерный массив, где повторяющимся строкам ставишь единицы. А потом выводишь те строки, которым в одномерном массиве соответствуют нули.
Сравнивать строки можно поэлементно, а можно вообще записать матрицу как одномерный массив типа string[n] и тупо писать что-то типа
if mas[i] = mas[j] then begin
  mas[i]:='';
  break
end

Оффлайн topos84

  • Emu-Land Team
  • Сообщений: 2762
  • Пол: Мужской
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #158 : 15 Декабрь 2009, 00:44:58 »
Цитата: Fly
то переменные a и b будут считаться переменными разных типов.
Это еще почему? o_0

Оффлайн Fly

  • Пользователь
  • Сообщений: 1896
  • Пол: Мужской
    • Steam
    • Youtube
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #159 : 15 Декабрь 2009, 00:46:31 »
topos84, а вот хрен его знает. Однако если написать через запятую, то будут одного типа.

Оффлайн topos84

  • Emu-Land Team
  • Сообщений: 2762
  • Пол: Мужской
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #160 : 15 Декабрь 2009, 01:01:56 »
Цитата: Fly
Однако если написать через запятую, то будут одного типа.
А что ты, собственно, понимаешь под одинаковым типом? Сравнивать такие переменные можно будет, производить арифметические и прочие операции - тоже. Тогда в чем, по-твоему, будет различие типов, если эти две переменные задать не через запятую? Или тут каким-то образом вовлечен ООП (объекто-ориентированный подход), мол, (тип_переменных_№1, тип_переменных_№2, ...)? Что-то мне так не кажется. :?

Оффлайн Fly

  • Пользователь
  • Сообщений: 1896
  • Пол: Мужской
    • Steam
    • Youtube
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #161 : 15 Декабрь 2009, 01:52:40 »
topos84, не помню точно, там что-то вроде присваивания не работает. Давно проводил эксперимент, может не с массивами, а с другими произвольными типами.

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #162 : 20 Декабрь 2009, 18:18:30 »
Ну что же  , перехожу к покорению файлов  :) Хотя с подпрограммами надо будет когда свободное время будет поработать - попробовав сделать ещё пару заданий где нужно кроме осн. программы писать подпрограммы .
С файлами немного не разобрался ,  поэтому программа почему то не совсем верно работает .
Задание : Организовать файл целых чисел из N компонент .Определить сумму компонент файла имеющих нечётные индексы .
Мой код :
program proga301;
uses crt;
type
ff=file of integer;
var
log_f:ff;
rez,n:integer;
procedure zapolnenie(var f:ff;var n:integer);
var
i,komp:integer;
Begin
 writeln('Vvedyte koli4estvo komponentov v faile');
 readln(n);
 rewrite(f);
 writeln('Vvedyte komponenti faila');
 for i:=1 to n do
 Begin
  read(komp);
  write(f,komp);
 end;
 close(f);
end;
procedure vyvod(var f:ff);
var
 komp:integer;
Begin
 reset(f);
 while not eof(f) do
 Begin
  read(f,komp);
  write(komp,' ');
 end;
 close(f);
 writeln;
end;
procedure suma(var f:ff;var rez:integer;var n:integer);
var
 komp,i:integer;
Begin
 reset(f);
 rez:=0;
 for i:=1 to n do if i mod 2<> 0 then
 Begin
  read(f,komp);
  rez:=rez+komp;
 end;
 close(f);
end;
Begin
 Assign(log_f,'data.dat');
 clrscr;
 zapolnenie(log_f,n);
 writeln('Sodergimoe faila');
 vyvod(log_f);
 suma(log_f,rez,n);
 writeln('Summa NE4etnih elementov',rez);
end.

Программа при подсчетах не считает первый символ почемуто , проблема как я понял таиться в подпрограмме suma здесь :
for i:=1 to n do if i mod 2<> 0 then
 Begin
  read(f,komp);
  rez:=rez+komp;
 end;
Подскажите что не так я сделал пожалуйста , или если можно было сделать по другому цикл то напишите как .
« Последнее редактирование: 20 Декабрь 2009, 18:29:13 от gepar »

Оффлайн Fly

  • Пользователь
  • Сообщений: 1896
  • Пол: Мужской
    • Steam
    • Youtube
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #163 : 21 Декабрь 2009, 06:50:39 »
Цитата
for i:=1 to n do if i mod 2<> 0 then
 Begin
  read(f,komp);
  rez:=rez+komp;
 end;
У тебя здесь чётные компоненты не пропускаются, в результате получается сумма первых n/2 компонент. Следует читать каждую компоненту, но в переменную rez записывать только нечётные.

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #164 : 14 Январь 2010, 01:31:50 »
Цитата: Fly
У тебя здесь чётные компоненты не пропускаются, в результате получается сумма первых n/2 компонент. Следует читать каждую компоненту, но в переменную rez записывать только нечётные.
Спасибо , тогда подсказка помогла и я исправил ошибку :)
Теперь вот стеки и дерево данных мучаю , сложные гады , это последняя тема которую мы изучаем , дальше - делфи , делфи пока только запускал да тесты делал - кнопки приделывал , вроде делфи поинтересней паскаля  :)

Оффлайн Chameleon

  • Пользователь
  • Сообщений: 389
  • Пол: Мужской
  • Bellum omnium contra omnes
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #165 : 23 Январь 2010, 14:44:16 »
Народ помогите решить задачку "Нужно составить программу которая удаляет самое длинное слово в предложении" что то дорубиться немогу.

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #166 : 23 Январь 2010, 15:12:51 »
Цитата: Chameleon
Народ помогите решить задачку "Нужно составить программу которая удаляет самое длинное слово в предложении" что то дорубиться немогу.
Это просто в строке или в текстовом файле ?

Оффлайн Chameleon

  • Пользователь
  • Сообщений: 389
  • Пол: Мужской
  • Bellum omnium contra omnes
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #167 : 23 Январь 2010, 19:37:25 »
gepar, в строке

Оффлайн Fly

  • Пользователь
  • Сообщений: 1896
  • Пол: Мужской
    • Steam
    • Youtube
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #168 : 24 Январь 2010, 00:33:11 »
Можно так: сначала ищешь самое длинное слово в предложении, узнаёшь порядковый номер символа, с которого оно начинается, и его длину. Допустим, s - строка, n - откуда слово начинается, l - длина слова с пробелом после него. На основе этих значений получаешь строку без этого слова:
copy(s, 1, n) + copy(s, 1+n+l, length(s)-n-l)

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #169 : 24 Январь 2010, 00:58:03 »
var
  temp,max,s:string;
  i:integer;
begin
  writeln('Введите строку');
  readln(s);
  max:='';
  temp:='';
  for i:=1 to length(s) do
  begin
    if s[i]<>' ' then
      temp:=temp+s[i];
    if (s[i]=' ') or (i=length(s)) then
    begin
      if (temp<>'') and (length(temp)>length(max)) then
        max:=temp;
      temp:=''
    end
  end;
  if max<>'' then
  begin
    delete(s,pos(max,s),length(max));
    writeln('Самое длинное слово в заданной строке : ');
    writeln(max);
    write('Строка после удаления самого длинного слова :');
    writeln(s)
  end
  else
    writeln('В строке нет слов!')
end.
P.S это я поленился и нашёл в инете код по поиску самого длинного слова и просто чуть-чуть его подредактировал и добавил немного вывода текста , если хочешь могу завтра поучитывать всякие условия и то что в строке могут быть символы чтобы при их наличии прога считала это концом слова или у тебя будет просто строка из нескольких слов ?

Оффлайн Chameleon

  • Пользователь
  • Сообщений: 389
  • Пол: Мужской
  • Bellum omnium contra omnes
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #170 : 24 Январь 2010, 10:23:18 »
gepar, Спасибо, это будет просто строка из нескольких слов, я тоже искал в нэте но что то не нашёл.А вот с такой сможешь помочь, "С помощью множества составить программу,подсчёта количества цифр в десятичной системе счисления" Буду очень благодарен.

Оффлайн topos84

  • Emu-Land Team
  • Сообщений: 2762
  • Пол: Мужской
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #171 : 24 Январь 2010, 10:46:58 »
Цитата: Chameleon
"С помощью множества составить программу,подсчёта количества цифр в десятичной системе счисления"
В десятичной системе счисления в среднем приблизительно 10 цифр. ;)
Посчитал на пальцах: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.  :)
Вот только не помню, есть ли у Паскаля библиотека fingers или нет.  :D
 :lol: :lol: :lol:

А если серьезно, то тебе нужна программа, которая считает количество цифр в веденном пользователем числе (натуральном, видимо), так? Ну, это делается нетрудно, да еще и с множествами - совсем просто.

Пишешь процедуру заполнения множества цифрами введенного пользователем числа (как извлекать из строки символы ты знаешь). Поскольку множество отличается от массива тем, что оно не упорядочено, а потому в нем не может быть нескольких одинаковых элементов, то добавляя один и тот же символ, вытащенный из разных мест строки, повторов во множестве ты не получишь, так что смело можно будет посчитать количество элементов в полученном множестве, не боясь одну и ту же цифру посчитать дважды.

Это в случае, если тебе требуется посчитать количество различных цифр в числе, введенном пользователем (надеюсь, именно это от тебя в задаче и требовалось). Если же требовалось посчитать количество всех цифр в числе (т.е. длину числа в цифрах), то тут тогда не ясно, нафига нужны множества, когда достаточно было бы использовать строки.

Оффлайн Chameleon

  • Пользователь
  • Сообщений: 389
  • Пол: Мужской
  • Bellum omnium contra omnes
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #172 : 24 Январь 2010, 11:39:58 »
topos84,Спасибо, всё понятно, действительно просто, попробую. А то что ты до 10 считать умеешь это хорошо :)

Добавлено позже:
кстати я ошибся маленько, в десятичной записи числа, а не в  системе счисления.

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #173 : 24 Январь 2010, 11:56:38 »
Цитата: Chameleon
А вот с такой сможешь помочь, "С помощью множества составить программу,подсчёта количества цифр в десятичной системе счисления" Буду очень благодарен.
Я множества так и не изучил , у нас в программу по изучению паскаля они не входили , хотя в книге по паскалю есть такой пункт , надо будет прочитать и разобраться заодно .

Оффлайн Chameleon

  • Пользователь
  • Сообщений: 389
  • Пол: Мужской
  • Bellum omnium contra omnes
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #174 : 24 Январь 2010, 11:59:43 »
А вот она у нас как раз была, училка говорит легкая тема............посмотрим.

Оффлайн topos84

  • Emu-Land Team
  • Сообщений: 2762
  • Пол: Мужской
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #175 : 24 Январь 2010, 13:01:17 »
Не, ну правда же, множества - самый простой тип (из нетривиальных). Я помню, когда решал задачи на Паскале, где не было требования решить ее конкретным образом, всегда пытался решить сначала с множествами (кроме, конечно, тех случаев, когда от них никакого явного толка нет).

Оффлайн Roman

  • Пользователь
  • Сообщений: 7
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #176 : 08 Июнь 2010, 08:34:13 »
Люди, помогите. Очень нужна программа на Паскале, которая бы удалила повторы слов в строке, а затем выводила результат. Например:
rabbit wolf wolf
Должно получиться “rabbit wolf”.
wolf rabbit wolf
Должно получиться “wolf rabbit” или “rabbit wolft”.
bat bat
Должно получиться “bat”.
pig pig cat
Должно получиться “pig cat”.

В качестве разделителя слов - пробелю.

Желательно код с комментариями.
 :)

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7550
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #177 : 08 Июнь 2010, 12:41:29 »
Парси строку на слова, потом сравнивай их. Я предлагаю сделать так: есть массив строк. Есть входная строка. Изначально массив состоит из пустых строк. Парсим введенную строку. Слово между пробелов. Ищем, есть ли такое в массиве - нет записываем, есть - пропускаем. Когда введенная строка кончится, тупо вывести все ненулевые строки из массива. ;)

Оффлайн Roman

  • Пользователь
  • Сообщений: 7
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #178 : 08 Июнь 2010, 12:49:24 »
HardWareMan,
Можно код?

Оффлайн Fly

  • Пользователь
  • Сообщений: 1896
  • Пол: Мужской
    • Steam
    • Youtube
    • Просмотр профиля
Re: Вспоминаем Turbo Pascal и решаем задачи на нём
« Ответ #179 : 08 Июнь 2010, 14:34:35 »
Массив строк много памяти требует.
Я предлагаю так: берём исходную строку и идём по ней с конца. Когда образуется слово, вложенным циклом ищем это слово дальше по строке. Если находим, то удаляем ранее найденное слово процедурой delete и сбрасываем вложенный цикл. Потом ищем следующее и т. д.