Да се създаде модул за работа със символи, който съдържа:
- константи за множеството на главните и на малките латински букви, на цифрите, на аритметичните операции и препинателните знаци
- функции за проверка дали един символ е главна или малка латинска буква или цифра, аритметична операция или препинателен знак
- * функция, връщаща вида на символа: главна или малка латинска буква, цифра, аритметична операция, препинателен знак или друг символ
- процедура,която получава символ и отпечатва пълната информация за него
Напишете програма, която демонстрира този модул.


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() на две: едната част да връща като резултат типа на символа, а втората – на базата на резултата на първата да съобщава какво е разпознато. Така ще имаш удобен инструмент за когато ти е нужно само разпознаване, както и друг и за когато ти е нужно и отпечатване на разпознатото.