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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2009, 14:23   #1
patisson74
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 17
По умолчанию Работа со строками и множествами

Народ, помогите, кто чем сможет... ну не пойму я хоть убей, как правильно сделать эти задачи, первую решил, но знакомый забраковал, сказал, что текст должен быть произвольный, а вторую что-то не раздуплю никак.... Помогите заочнику... Литературы накачал массу, даже видеоуроки есть по Паскалю, но этого маловато, если бы кто-то подсказал, как правильно делать , так сказать натолкнул на правильный путь, но я как в стену уперся, не пойму что нужно сделать.....

1) Дан текст. Группы символов , разделенные одним или несколькими пробелами называются словами. В тех словах, которые заканчиваются сочетанием букв "ing" заменить это окончание на "ed".

2) Дан текст на русском языке, после которого стоит точка. Напечатать по алфавиту все строчные русские гласные ( а, е, и, о, у, ы, э, ю, я ), которые встречаются в этом тексте.

Вот то, что я делал по 1-ой задаче:

Код:
program text_;

uses crt;

 var S : String;

BEGIN

clrscr;

   writeln ('Пример текста : Singing and having fun visitors');

   writeln ('---------------------------------------------------------------------------------------');

   S:='Singing and having fun visitors';

   Delete (S, 5, 3 );

   Insert('ed', S , 5);

   Delete (S, 15, 3 );

   Insert('ed', S , 15);

   WriteLn('Измененный текст: '+ S);

readln;


END.
Мученик - заочник

Последний раз редактировалось Stilet; 13.11.2009 в 08:07.
patisson74 вне форума Ответить с цитированием
Старый 13.11.2009, 04:24   #2
Dmitry333
Пользователь
 
Аватар для Dmitry333
 
Регистрация: 13.11.2009
Сообщений: 60
По умолчанию

Вот что получилось по первой задаче:

Код:
var
   st:string;
   i:integer;
begin
     readln(st);
{проверяем есть ли ing}
     if pos('ing ',st)=0 then
     begin
          writeln('Slov s dannim okonchaniem net!!!');
          readln;
          exit;
     end;
{заменяем}
     while pos('ing ',st)>0 do begin
           i:=pos('ing ',st);
           delete(st,i,4);
           insert('ed ',st,i);
     end;
{проверяем есть ли ing в последнем слове}
     if (pos('ing',st)) = (length(st)-2) then
     begin
          delete(st,length(st)-2,3);
          insert('ed',st,length(st)+1);
     end;
     writeln(st);
     readln;
end.
вот и всё!

Последний раз редактировалось Stilet; 13.11.2009 в 08:07.
Dmitry333 вне форума Ответить с цитированием
Старый 13.11.2009, 20:15   #3
patisson74
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 17
По умолчанию Большое СПАСИБО!

Сапсибо, Dmitry333, вроде все работает, а мы сегодня с другом тоже мучили эту задачу, вот что у нас получилось:


Код:
program ing_to_else;

uses crt;


var   i, j: integer ;
       len1: integer;
       len: integer;
       str: string;
      str1: string;
      str2: string;
    substr: string;
   substr2: string;
         f: boolean;
BEGIN

clrscr;

 str:='entering   message  father    during    mother   dooing'; {набор букв, что в голову взбрело}
  substr:='ing';
  substr2:='ed';
  len:= length (str);
  insert (' ', str, len+1);
    j:=0;
    f:=false;

  for i:=0 to len+1 do
    begin
       if (str[i] <> ' ')  then

         begin
         f:=false;
         str1[j]:= str[i];
         j:=j+1;
         end

       else

          begin
          if f then
          begin
            str2[j]:= ' ';
                j:=j+1;
          end
          else

          begin
             f:=true;
            len1:= length (str1);
            str2:= copy(str1, (j-3), 3 );
              if pos(str2, substr)>0 then
                begin
                delete (str1, j-3, 3);
                insert ( substr2, str1, j-3);
                j:= j-1;
                str1[j]:= ' ';
                j:=j+1;
                end
              else
                begin
                str2[j]:= ' ';
                j:=j+1;
                end;

                end;
                 end;
                   end;

   writeln (str1);


readln;


END.
еще бы и со второй разобраться.........
Мученик - заочник

Последний раз редактировалось patisson74; 13.11.2009 в 20:19.
patisson74 вне форума Ответить с цитированием
Старый 13.11.2009, 20:21   #4
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

сначала проверяем какие встречаются а потом сортируем и на печать!
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 13.11.2009, 20:22   #5
patisson74
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 17
По умолчанию

Спасибо за помощь!
Мученик - заочник

Последний раз редактировалось patisson74; 13.11.2009 в 23:09.
patisson74 вне форума Ответить с цитированием
Старый 13.11.2009, 20:40   #6
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

2
Код:
s1:string;
i,k:integer;
c:char;
s:array['а'...'я'] of integer;
begin
.....
readln(s1);
for i:=1 to length(s1) do
if s1[i] in['а','е','и','о','у','ы','э','ю','я'] then inc(s[s1[i]]);
for c:='а' to 'я' do
if с in ['а','е','и','о','у','ы','э','ю','я'] then 
for k:=1 to s[c] do
write(c);
....
end.
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 13.11.2009, 23:04   #7
patisson74
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 17
По умолчанию

Спасибо, все получилось, Вы у нас как палочка-выручалочка, что бы мы олухи делали без Вашей помощи!!! Надеюсь , когда-нибудь и я смогу тоже своими советами кому-нибудь помогать, а пока надо учиться......
Мученик - заочник
patisson74 вне форума Ответить с цитированием
Старый 20.11.2009, 16:02   #8
LER44IKK
Пользователь
 
Регистрация: 20.11.2009
Сообщений: 10
По умолчанию

здравствуйте, извините, но я не могу понять как удалить слово из строки и вывести на экран предложение без слова (которое удалила)((( не могли бы вы помочь?
LER44IKK вне форума Ответить с цитированием
Старый 20.11.2009, 16:09   #9
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

не постите в чужой теме создайте свою
а по теме!
Цитата:
Процедура Delete

Процедура Delete удаляет в исходной строке фрагмент определенной длины, начиная с указанной позиции. Так, оператор Delete(Word1,2,3) удаляет из указанной строки фрагмент, длиной в три символа, начиная со второго.
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с множествами и строками Sun :) Помощь студентам 0 27.10.2009 00:04
паскаль,работа с множествами. DomiR Помощь студентам 5 26.05.2009 11:31
Работа с множествами (Delphi) UnderF Помощь студентам 2 01.04.2009 18:54
Работа с множествами ...Оленька... Паскаль, Turbo Pascal, PascalABC.NET 0 24.12.2008 15:46
Работа с множествами. Вынести процедуры о отдельный Unit. [Delphi] sergey31 Помощь студентам 4 13.12.2008 12:39