Записи. Pascal ABC

Ответить
Andrew5674
Сообщения: 4
Зарегистрирован: 10 дек 2013, 19:20

Описать следующие множества: numbers (содержит символы от '0' до '9'), lowerCase(содержит символы от 'a' до 'z'), upperCase(содержит символы от 'A' до 'Z'). Для заданной строки определить, наличие в ней символов разных типов.

Например
Строка Результат
abc Строка содержит символы в нижнем регистре
abC Строка содержит символы в верхнем и в нижнем регистрах
ABC Строка содержит символы в верхнем регистре
aBc123 Строка содержит символы в верхнем и в нижнем регистрах и цифры
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Код: Выделить всё

program DemoOfSets;
type
  TDetectionCriteria = (numbers,lowerCase,upperCase);
  TDetectingThings = array[TDetectionCriteria] of set of Char;
  TDetectedThings = set of TDetectionCriteria;
const
  DetectingThings : TDetectingThings = (['0'..'9'], ['a'..'z'],  ['A'..'Z']);
var
  S:string;
  dc: TDetectionCriteria;
  Detected :  TDetectedThings;
  i:integer;
begin
  write('Input text or press Enter to terminate: ');
  Read(S);
  Detected:=[];
  i:=1;
  while (i<=length(S)) and (Detected <> [numbers,lowerCase,upperCase]) do begin
    for dc:=numbers to upperCase do
      if S[i] in DetectingThings[dc] then Detected:=Detected + [dc];
    inc(i);
  end;
  if Detected = [] then
    writeln('Text contais nither number nor small or capital letters, probable something else')
  else if Detected = [numbers] then
    writeln('Text contains only numbers')
  else if Detected = [lowerCase] then
    writeln('Text contains only small letters')
  else if Detected = [upperCase] then
    writeln('Text contains only capital letters')
  else if Detected = [numbers,lowerCase] then
    writeln('Text contains numbers and small letters')
  else if Detected = [numbers,upperCase] then
    writeln('Text contains numbers and capital letters')
  else if Detected = [lowerCase,upperCase] then
    writeln('Text contains small and capital letters, no numbers')
  else
    writeln('Text contains numbers and both small and capital letters')
end.
Andrew5674
Сообщения: 4
Зарегистрирован: 10 дек 2013, 19:20

Большое Спасибо, выручили))
Ответить