Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.12.2009, 00:39
Asira Asira вне форума
Новичок
 
Регистрация: 11.12.2009
Сообщения: 76
Репутация: -26
По умолчанию Запуталась во множествах

Код:
{$APPTYPE CONSOLE}

uses
  SysUtils;

var str, slovo: string;
       ks, ns, i, j: integer;
       sb,mn1, mn2, mn3, mn4: set of char;
       c, a: char;

begin
   mn1:=[]; mn2:=[]; mn4:=[];
   sb:=['b','d','g','j','n','m','r','v','z','w'];
   readln (str);
   i:=1;
   while i<=length (str) do
     begin
        while (str[i]=' ')
        //and (i<=length (str))
        do i:=i+1;
        ns:=i;
        while (str[i]<>' ')
        //and (i<=length (str))
         do i:=i+1;
        ks:=i;
        slovo:= copy(str, ns, ks-ns);
        for j:=1 to length(slovo) do mn1:=[slovo[j]];
        mn4:=sb -mn1;
          for c:=chr(0) to chr (255) do
   if c in mn4 then write (c,' ');
 writeln(' ');
        end;
begin
i:=length(str);;
while (str[i]=' ')
 ///and (i<=length (str))
  do i:=i-1;
        ks:=i;
        while (str[i]<>' ')
        //and (i<=length (str))
         do i:=i-1;
        ns:=i;
        slovo:= copy(str, ns, ks-ns);
for j:=1 to length (slovo) do mn3:=[slovo[j]];
       mn1:=[];
mn1:=mn4 - mn3;
  for c:=chr(0) to chr (255) do
   if c in mn4 then write (c,' ') end;
while i<=length (str) do
begin
      while (str[i]=' ') and (i<=length (str)) do i:=i+1;
        ns:=i;
        while (str[i]<>' ') and (i<=length (str)) do i:=i+1;
        ks:=i;
        slovo:= copy(str, ns, ks-ns);
for j:=1 to length(slovo) do mn2:=mn2+[slovo[j]];
mn3:=mn2*mn1;
for c:=chr(0) to chr (255) do
   if c in mn3 then write (c,' ');
   writeln(' ');
   readln;
   end;
end.

Последний раз редактировалось Asira, 27.12.2009 в 18:13.
Ответить с цитированием
  #2  
Старый 22.12.2009, 01:12
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Я же тебе уже давал код для решения этой задачи?

Код:
{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  S, NewS:String;
  b:byte;
  sb: set of char;

begin
  Writeln('Enter string ');
  Readln(S);
  sb:=['b','d','g','j','n','m','r','v','z','w'];
  for b:=1 to Pos(' ', S) do
    if S[b] in sb then
      sb:=sb-[S[b]];
  Delete(S, 1, Pos(' ', S));
  b:=length(s);
  while (b > 1) and (S[b]<>' ') do
    begin
    if S[b] in sb then
      sb:=sb-[S[b]];
    Dec(b); 
    end;
  Delete(S, b, Length(S)-(b+1));
  for b:=1 to Length(S) do
    if S[b] in sb then
      begin
      sb:=sb-[S[b]];
      write(S[b],' ');
      end;
  readln;
end.
Ответить с цитированием
  #3  
Старый 22.12.2009, 07:41
Asira Asira вне форума
Новичок
 
Регистрация: 11.12.2009
Сообщения: 76
Репутация: -26
По умолчанию

Мне сказали надо первое и последнее слово запихать во множество а потом работать со множествами без строк
Ответить с цитированием
  #4  
Старый 22.12.2009, 17:42
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Держи)
Код:
{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  S:String;
  b:byte;
  sb, nsb, rsb: set of char;
  zBegin, zEnd:Byte;
  c:char;

begin
  Writeln('Enter string ');
  Readln(S);
  sb:=['b','d','g','j','n','m','r','v','z','w']; //символы которые ищем
  nsb:=[];  //символы которые в первом и последнем слове
  rsb:=[];  //символы которые будем выводить на экран
  //сначала пробежимся по первому и последнему слову, и соберем nsb
  zBegin:=Pos(' ', S);
  for b:=1 to zBegin do
    if S[b] in sb then
      nsb:=nsb+[S[b]];
  b:=length(s);
  while (b > 1) and (S[b]<>' ') do
    begin
    if S[b] in sb then
      nsb:=nsb+[S[b]];
    Dec(b);
    end;
  zEnd:=(b+1);
  //теперь пробежимся по остальным словам и соберем rsb
  for b:=zBegin to zEnd do
    if (S[b] in sb) then
      rsb:=rsb+[S[b]];
  //вычтем из rsb символы nsb
  rsb:=rsb-nsb;
  //и выведем результат
  for c:=chr(0) to chr (255) do
    if c in rsb then
      write(c,' ');
  readln;
end.
Ответить с цитированием
  #5  
Старый 23.12.2009, 10:46
Asira Asira вне форума
Новичок
 
Регистрация: 11.12.2009
Сообщения: 76
Репутация: -26
По умолчанию

Спасибо!..............

Последний раз редактировалось Asira, 17.01.2011 в 22:29.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:48.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025