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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.12.2009, 16:56   #1
Asira
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 84
По умолчанию Делфи... множества

Дана непустая последовательность слов из строчных латинских букв, слова разделены пробелами. Вывести:Все глухие согласные, которые входят в слова, не содержащие звонких согласных букв.
Мой начатый вариант ... помогите доделать

Код:
uses
  SysUtils;


  var mn1,mn2: set of char;
  s,slovo:string;
i,j,k,ns,ks:integer;
c:char;

begin

mn1:=[];
mn2:=[];

write('inter string ');
readln(s);
while i<= length(s) do begin
while(s[i]=' ')and(i<=length(s)) do i:=i+1;
ns:=i;
while(s[i]<>' ')and(i<=length(s))do i:=i+1; ks:=i;
slovo:=copy(s,ns,ks-ns);
while j<= length(slovo) do
if slovo[j]='b,d,g,j,n,m,r,v,z,w' then    
 for k:=1 to length(slovo) do
mn1:=mn2+[slovo[j]];
for j:=1 to length(slovo) do
mn2:=mn2+[slovo[j]];
mn2:=mn2*['c','f','h','k','l','q','p','s','t','x'];
for c:=chr(0) to chr(255) do
if c in mn2 then write(c,' ');
 end;
readln;
end.
Asira вне форума Ответить с цитированием
Старый 30.12.2009, 17:04   #2
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

а вам не кажется что вот это
Код:
if slovo[j]='b,d,g,j,n,m,r,v,z,w'
как минимум нескомпилится
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 30.12.2009, 17:15   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,544
По умолчанию

Код:
slovo:=copy(s,ns,ks-ns);
while j<= length(slovo) do
if slovo[j]='b,d,g,j,n,m,r,v,z,w' then    
 for k:=1 to length(slovo) do
mn1:=mn2+[slovo[j]];
//for j:=1 to length(slovo) do
//mn2:=mn2+[slovo[j]];
mn2:=mn1;//множество всех букв слова
mn2:=mn2*['c','f','h','k','l','q','p','s','t','x'];
mn1:=mn1*['b,d,g,j,n,m,r,v,z,w'];
if mn1=[] then //не содержат звонких
for c:=chr(0) to chr(255) do
for c:='A' to 'Z' do //латинские строчные
if c in mn2 then write(c,' ');
 end;
readln;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 30.12.2009 в 17:18.
evg_m вне форума Ответить с цитированием
Старый 30.12.2009, 17:21   #4
Asira
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 84
По умолчанию

ну допустим это можно записать так
sb:='b,d,g,j,n,m,r,v,z,w'
if slovo[j] in sb then .....
Asira вне форума Ответить с цитированием
Старый 30.12.2009, 18:38   #5
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

Код:
program Project11;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  Alphabet = ['A'..'Z'];
  SonorousConsonants = ['B', 'D', 'G', 'J', 'N', 'M', 'R', 'V', 'Z', 'W'];
  DeafConsonants = ['C', 'F', 'H', 'K', 'L', 'Q', 'P', 'S', 'T', 'X'];

var
  I, J: Integer;
  S, Word: String;
  OutSet: Set of Char;
  F: Boolean;
  K: Char;
begin
  WriteLn('Enter a line');
  ReadLn(S);
  OutSet := [];
  I := 1;
  while I <= Length(S) do
  begin
    if Upcase(S[I]) in Alphabet then
    begin
      Word := '';
      F := False;
      while (Upcase(S[I]) in Alphabet) and (I <= Length(S)) do
      begin
        if Upcase(S[I]) in SonorousConsonants then F := True;
        Word := Word + S[I];
        Inc(I);
      end;
      if not F then
        for J := 1 to Length(Word) do
          if Upcase(Word[J]) in DeafConsonants then
            OutSet := OutSet + [Upcase(Word[J])];
    end;
    Inc(I);
  end;
  WriteLn;
  WriteLn('Result:');
  for K := 'A' to 'Z' do
    if K in OutSet then Write(K, ' ');
  if OutSet = [] then WriteLn('There are no such letters');
  ReadLn;
  ReadLn;
end.
работает для любого регистра букв и слова могут быть разделены любыми знаками (кроме букв, конечно )
Alex_FF вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
МНОЖЕСТВА ДЕЛФИ Asira Помощь студентам 0 15.12.2009 17:08
множества конфетка12 Паскаль, Turbo Pascal, PascalABC.NET 0 22.04.2009 20:51
Множества Zid@ne Помощь студентам 16 20.01.2008 10:19
Множества в Си Иллидан Общие вопросы C/C++ 14 17.01.2008 15:58
множества xxxPascalxxx Помощь студентам 1 27.12.2007 21:54