IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Упорядочение слов по алфавиту, Обработка текстовых строк
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 45
Пол: Мужской

Репутация: -  0  +


Задание:
подсчитать общую длину всех слов, являющихся регулярными цепочками, в которых чередуются гласные и согласные буквы, и напечатать их в алфавитном порядке. Напечатать в перевернутом виде самое длинное слово, состоящее только из цифр и букв.

Сделал все, кроме печати регулярных цепочек в алфавитном порядке.
Подскажите, как это сделать.

З.Ы. Регулярная цепочка - слово, состоящее только больших английских букв.

:low:

Код
Program Lab;
Uses Crt;

type letters = set of 'A'..'Z';


const  gl : letters = ['E', 'Y', 'U', 'I', 'O', 'A'];
      sogl : letters = (['A'..'Z'] - ['E', 'Y', 'U', 'I', 'O', 'A']);
      alphabet = ['A'..'Z', 'a'..'z'];
      digits = ['0'..'9'];


var  maxslovo, st, slovo, s : string;
    ch : char;
    i, n, k, j, dlina, max : integer;

Function length1(s : string) : integer;
begin
  length1 := ord(s[0]);
end;

Function RegCep (s : string) : boolean;
var i : integer;
begin
  RegCep := true;
  For i := 1 to length(s) do
  if (ord(s[i]) < 65) or (ord(s[i]) > 90) then RegCep := false;
end;

Function Cheredovanie (s : string) : boolean;
var i : integer;
b1, b2 : boolean;
begin
  cheredovanie := true;
  if s[1] in gl then
     For i := 1 to length(s) do
       if i mod 2 = 1 then
          if not(s[i] in gl) then cheredovanie := false else else
             if not(s[i] in sogl) then cheredovanie := false;

  if s[1] in sogl then
     For i := 1 to length(s) do
       if i mod 2 = 1 then
          if not(s[i] in sogl) then cheredovanie := false else else
             if not(s[i] in gl) then cheredovanie := false;
end;

Function  BykvbI(s : string): boolean;
var i : integer;
begin
BykvbI := false;
For i := 1 to length(s) do
If s[i] in alphabet then BykvbI := true;
end;

Function  CbIfrbI(s : string): boolean;
var i : integer;
begin
CbIfrbI := false;
For i := 1 to length(s) do
If s[i] in digits then CbIfrbI := true;
end;


Procedure Perevorot (var s : string);
var buf : char;
     i : integer;
begin
  For i := 1 to length(s) div 2 do
  begin
       buf := s[i];
       s[i] := s[length(s) - i + 1];
       s[length(s) - i + 1] := buf;
  end;
  writeln('Camoe dlinnoe slovo - ',s);
end;

BEGIN
ClrScr;
max := 0;
Write('Vvedite stroky simvolov : ');
Readln(st);
st := st + ' ';
slovo := '';
dlina := 0;

For i := 1 to length(st) do
     if st[i] <> ' ' then slovo := slovo + st[i]
        else if length(slovo) <> 0 then
        begin
              If RegCep(slovo) and Cheredovanie(slovo) then
              begin
                 dlina := dlina + length(slovo);
              end;
        If length(slovo) > max then
        begin
           max := length(slovo);
           maxslovo := slovo;
        end;
        slovo := '';
end;
writeln;
writeln('Dlina = ', dlina);
writeln;
If (BykvbI(maxslovo) = true) and (CbIfrbI(maxslovo) = true) then
Perevorot(maxslovo)
else writeln('Takogo slova net :-(');
readln;
END.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 9.09.2025 4:02
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name