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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2011, 10:54   #1
ruffer
 
Регистрация: 23.10.2011
Сообщений: 2
По умолчанию Не могу совместить 2 условия

вот решаю задачку одну по отдельности 2 условия работают
а вместе нет
Код:
 
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
i,k: Integer;
begin
s:= Edit1.Text;
for i:=1 to length(s) do
if ((i mod 2=0) and (RadioGroup1.ItemIndex=0)) or ((i mod 3=0) and (RadioGroup1.ItemIndex=1)) or ((i mod 4=0) and (RadioGroup1.ItemIndex=2))  then
Edit2.Text:=Edit2.Text+s[i];
end;
 
begin
 
 k:= 1;
 for i := 1 to Length(s) do
       begin
if ((s[k] in ['a','i','e','o','y','u']) and CheckBox1.Checked) or ((s[k] in ['q','w','r','t','p','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m']) and CheckBox2.Checked) or ((s[k] in ['1','2','3','4','5','6']) and CheckBox3.Checked) then
   begin
   Delete(s,Pos(s[k],s),1);
   k:= k-1;
   end;
   k:= k+1;
end;
  edit2.Text:=s;
  k:= 1;
end;
 
end;
end.
здесь 2 условия как их обьединить чтобы программа работала
и есть ли другой способ (s[k] in ['a','i','e','o','y','u'])
как нибудь присвоить значение к примеру как то так s[k]:='a,i,e,o,y,u';
?

Последний раз редактировалось Stilet; 23.10.2011 в 12:41.
ruffer вне форума Ответить с цитированием
Старый 23.10.2011, 12:12   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

А это ничего, что, если отсутствует блок begin end, то выполняется только 1 строка после оператора(ов)?

И ваш код по всем правилам вообще работать не должен, и за него, компилятор, вас обложит благим матом.
Судя по всему, вы вообще правил паскаля не знаете. Раз уж, так бездумно копируете из одной процедуры в другую.

У вас там пара лишних begin и end, если их убрать, 2 разных станет единым.
Далее не вижу смысла k:integer ЗАЧЕМ ОНО?
Код:
 k:= 1; 
 for i := 1 to Length(s) do 
       begin 
if ((s[k] in ['a','i','e','o','y','u']) and CheckBox1.Checked) or ((s[k] in ['q','w','r','t','p','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m']) and CheckBox2.Checked) or ((s[k] in ['1','2','3','4','5','6']) and CheckBox3.Checked) then 
   begin 
   Delete(s,Pos(s[k],s),1); 
   k:= k-1; 
   end; 
   k:= k+1; 
end;
Вы вкурсе, что for to do инкрементирует i на еденицу вверх, при каждом витке?
Откровенный идиотизм.

Последний раз редактировалось Человек_Борща; 23.10.2011 в 12:16.
Человек_Борща вне форума Ответить с цитированием
Старый 23.10.2011, 19:55   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,886
По умолчанию

Присвоить значения как-то так : тема "сеты/наборы" , в любом учебнике по паскалю/дельфи , или вызов справки по слову sets.
Конкретно в Вашем случае поможет объявление вроде:
Код:
type chrset = set of 'a'..'z';
var   sonants, consonants : chrset ;
sonants := ['a', 'e', 'i', 'o', 'y', 'u'];
consonants := ['a'..'z']-sonants;
// проверка так :
if s[k] in sonants then // если гласная
Удачи )
phomm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Frame and Form не могу совместить KWN, lnc Общие вопросы Delphi 7 30.09.2011 21:48
совместить 2 макроса Kraimon Microsoft Office Excel 2 13.02.2011 17:16
Совместить с++ и delphi Яр|/||< (^_^) Свободное общение 20 25.03.2010 13:32
Не могу создать условия Еленка Помощь студентам 4 21.05.2008 12:20