Модул за проверка на символи

Да се създаде модул за работа със символи, който съдържа:

  1. константи за множеството на главните и на малките латински букви, на цифрите, на аритметичните операции и препинателните знаци
  2. функции за проверка дали един символ е главна или малка латинска буква или цифра, аритметична операция или препинателен знак
  3. * функция, връщаща вида на символа: главна или малка латинска буква, цифра, аритметична операция, препинателен знак или друг символ
  4. процедура,която получава символ и отпечатва пълната информация за него

Напишете програма, която демонстрира този модул.

Публикувано в 10a с етикети . Постоянна връзка.

2 Responses to Модул за проверка на символи

  1. Svetli Kamenov каза:
    program project1;
    
    uses Unit1;
    
    var
      S:Char;
    begin
      Writeln('Vavedi simvol');
      Readln(S);
      ProverkaSimvol(S);
      Writeln;
    
      InfoSimvol(S);
      Readln;
    end.
    

    и модула:

    unit Unit1;
    
    interface
    const
      TGlavniB = ['A'..'Z'];
      TMalkiB = ['a'..'z'];
      TCifri = ['0'..'9'];
      TAritmetichno = ['+','-','*','/','<','>','='];
      TPrepinatelni = ['.',',','!','?',';',':','(',')','[',']','-'];
    
    function ProverkaSimvol(S:char):integer;
    procedure InfoSimvol(S:char);
    
    implementation
    function ProverkaSimvol(S:char):integer;
    begin
     if S in TGlavniB then
        Result:=1;
     if S in TmalkiB then
        Result:=2;
     if S in TCifri then
        Result:=3;
     if S in TAritmetichno then
        Result:=4;
     if S in TPrepinatelni then
        Result:=5;
    
     case Result of
       1:Writeln('Simvola e glavna bukva');
       2:Writeln('Simvola e malka bukva');
       3:Writeln('Simvola e cifra');
       4:Writeln('Simvola e aritmetichen znak');
       5:Writeln('Simvola e prepinatelen znak');
     else Writeln('Nqmam nujnata klalifikaciq che da razpoznaq tozi znak');
     end;
    
    end;
    
    procedure InfoSimvol(S: char);
    begin
     if S in TGlavniB then
        case S of
          'A':Writeln('Tova e purvata bukva ot latinskata azbuka. Bukvata e glavna');
          'B':Writeln('Tova e vtorata bukva ot latinskata azbuka. Bukvata e glavna');
          'C':Writeln('Tova e tretata bukva ot latinskata azbuka. Bukvata e glavna');
          'D':Writeln('Tova e chetvurtata bukva ot latinskata azbuka. Bukvata e glavna');
          'E':Writeln('Tova e petata bukva ot latinskata azbuka. Bukvata e glavna');
          'F':Writeln('Tova e shestata bukva ot latinskata azbuka. Bukvata e glavna');
          'G':Writeln('Tova e sedmata bukva ot latinskata azbuka. Bukvata e glavna');
          'H':Writeln('Tova e osmata bukva ot latinskata azbuka. Bukvata e glavna');
          'I':Writeln('Tova e devetata bukva ot latinskata azbuka. Bukvata e glavna');
          'J':Writeln('Tova e desetata bukva ot latinskata azbuka. Bukvata e glavna');
          'K':Writeln('Tova e edinaistata bukva ot latinskata azbuka. Bukvata e glavna');
          'L':Writeln('Tova e dvanaistata bukva ot latinskata azbuka. Bukvata e glavna');
          'M':Writeln('Tova e trinaistata bukva ot latinskata azbuka. Bukvata e glavna');
          'N':Writeln('Tova e chetrinaistata bukva ot latinskata azbuka. Bukvata e glavna');
          'O':Writeln('Tova e petnaistata bukva ot latinskata azbuka. Bukvata e glavna');
          'P':Writeln('Tova e shestnaistata bukva ot latinskata azbuka. Bukvata e glavna');
          'Q':Writeln('Tova e sedemnaistata bukva ot latinskata azbuka. Bukvata e glavna');
          'R':Writeln('Tova e osemnaistata bukva ot latinskata azbuka. Bukvata e glavna');
          'S':Writeln('Tova e devetnaistata bukva ot latinskata azbuka. Bukvata e glavna');
          'T':Writeln('Tova e dvaistata bukva ot latinskata azbuka. Bukvata e glavna');
          'U':Writeln('Tova e dvaiset i purvata bukva ot latinskata azbuka. Bukvata e glavna');
          'V':Writeln('Tova e dvaiset i vtorata ot latinskata azbuka. Bukvata e glavna');
          'W':Writeln('Tova e dvaiset i tretata bukva ot latinskata azbuka. Bukvata e glavna');
          'X':Writeln('Tova e dvaiset i chetvurtata bukva ot latinskata azbuka. Bukvata e glavna');
          'Y':Writeln('Tova e dvaiset i petata bukva ot latinskata azbuka. Bukvata e glavna');
          'Z':Writeln('Tova e dvaiset i shestata bukva ot latinskata azbuka. Bukvata e glavna');
        end;
    
     if S in TMalkiB then
        case S of
          'a':Writeln('Tova e purvata bukva ot latinskata azbuka. Bukvata e malka');
          'b':Writeln('Tova e vtorata bukva ot latinskata azbuka. Bukvata e malka');
          'c':Writeln('Tova e tretata bukva ot latinskata azbuka. Bukvata e malka');
          'd':Writeln('Tova e chetvurtata bukva ot latinskata azbuka. Bukvata e malka');
          'e':Writeln('Tova e petata bukva ot latinskata azbuka. Bukvata e malka');
          'f':Writeln('Tova e shestata bukva ot latinskata azbuka. Bukvata e malka');
          'g':Writeln('Tova e sedmata bukva ot latinskata azbuka. Bukvata e malka');
          'h':Writeln('Tova e osmata bukva ot latinskata azbuka. Bukvata e malka');
          'i':Writeln('Tova e devetata bukva ot latinskata azbuka. Bukvata e malka');
          'j':Writeln('Tova e desetata bukva ot latinskata azbuka. Bukvata e malka');
          'k':Writeln('Tova e edinaistata bukva ot latinskata azbuka. Bukvata e malka');
          'l':Writeln('Tova e dvanaistata bukva ot latinskata azbuka. Bukvata e malka');
          'm':Writeln('Tova e trinaistata bukva ot latinskata azbuka. Bukvata e malka');
          'n':Writeln('Tova e chetrinaistata bukva ot latinskata azbuka. Bukvata e malka');
          'o':Writeln('Tova e petnaistata bukva ot latinskata azbuka. Bukvata e malka');
          'p':Writeln('Tova e shestnaistata bukva ot latinskata azbuka. Bukvata e malka');
          'q':Writeln('Tova e sedemnaistata bukva ot latinskata azbuka. Bukvata e malka');
          'r':Writeln('Tova e osemnaistata bukva ot latinskata azbuka. Bukvata e malka');
          's':Writeln('Tova e devetnaistata bukva ot latinskata azbuka. Bukvata e malka');
          't':Writeln('Tova e dvaistata bukva ot latinskata azbuka. Bukvata e malka');
          'u':Writeln('Tova e dvaiset i purvata bukva ot latinskata azbuka. Bukvata e malka');
          'v':Writeln('Tova e dvaiset i vtorata ot latinskata azbuka. Bukvata e malka');
          'w':Writeln('Tova e dvaiset i tretata bukva ot latinskata azbuka. Bukvata e malka');
          'x':Writeln('Tova e dvaiset i chetvurtata bukva ot latinskata azbuka. Bukvata e malka');
          'y':Writeln('Tova e dvaiset i petata bukva ot latinskata azbuka. Bukvata e malka');
          'z':Writeln('Tova e dvaiset i shestata bukva ot latinskata azbuka. Bukvata e malka');
        end;
    
     if S in TCifri then
           Writeln('Simvola e chislo ot polojitelnoto mnojestvo');
    
     if S in TAritmetichno then
        case S of
          '+':Writeln('Tova e aritmetichen znak za sabirane. Izpolzvat se v izchisleniqta');
          '-':Writeln('Tova e aritmetichen znak za izvajdane. Izpolzvat se v izchisleniqta');
          '*':Writeln('Tova e aritmetichen znak za umnojenie. Izpolzvat se v izchisleniqta');
          '/':Writeln('Tova e aritmetichen znak za delenie. Izpolzvat se v izchisleniqta');
          '>':Writeln('Tova e aritmetichen znak za po-golqmo. Izpolzvat se v izchisleniqta');
          '<':Writeln('Tova e aritmetichen znak za po-malko. Izpolzvat se v izchisleniqta');
          '=':Writeln('Tova e aritmetichen znak za ravno. Izpolzvat se v izchisleniqta');
        end;
    
     if S in TPrepinatelni then
        case S of
          '.':Writeln('Tova e prepinatelen znak za krai na izrechenieto');
          ',':Writeln(*Tova e prepinatelen znak za razdelqne na izrecheniqta na chasti
          ili za izbroqvane na dumi*);
          '!':Writeln('Tova e prepinatelen znak za izrazqvane na vuzklicanie');
          '?':Writeln('Tova e prepinatelen znak za izrazqvane na vupros');
          ':':Writeln('Tova e prepinatelen znak sled, koito se izbroqvat dumi');
          ';':Writeln('Tova e prepinatelen znak za izbroqvane na dumi');
          '(':Writeln('Tova e prepinatelen znak za obodobqvane na dumi ili izrazi');
          ')':Writeln('Tova e prepinatelen znak za obodobqvane na dumi ili izrazi');
          '[':Writeln('Tova e prepinatelen znak za obodobqvane na dumi ili izrazi');
          ']':Writeln('Tova e prepinatelen znak za obodobqvane na dumi ili izrazi');
          '-':Writeln('Tova e prepinatelen znak, koito e podoben na dvete tochki ":"');
        end;
    
    
    end;
    
    end.
    
    • Данаил каза:

      Ехаа, колко подробен анализ на символи! Браво! Според мен обаче можеш да разделиш функцията ProverkaSimvol() на две: едната част да връща като резултат типа на символа, а втората – на базата на резултата на първата да съобщава какво е разпознато. Така ще имаш удобен инструмент за когато ти е нужно само разпознаване, както и друг и за когато ти е нужно и отпечатване на разпознатото.

Вашият коментар