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


#include <cstdlib> #include <iostream> #include <cstring> #include <cctype> using namespace std; int check(char *str) { if ((str[0]>='A')&&(str[0]<='Z')) { int i=0; bool interwal=false; for (;str[i]!='\0';i++) { if(!str[i]==' ') interwal=true; if (isdigit(str[i])) return 0; } if (((str[i-1]=='.')||(str[i-1]=='!')||(str[i-1]=='?'))&&(interwal)) return 1; else return 0; } else return 0; } int main(int argc, char *argv[]) { char str[255]; cin.getline(str, 255); if (check(str)) cout<<"WALIDEN!"<<endl; else cout<<"NEWALIDEN!"<<endl; system("PAUSE"); return EXIT_SUCCESS; }Вярно, но в условието пише да се направят отделни функции за всяко нещо, а не една обща. А и като са отделни, ще са по-универсални и ще може да се ползват и на други места. Другото е, че името на променливата interwal е малко заблуждаващо – би трябвало да се казва ima_duma или нещо подобно. Дори мислех, че имате грешка (и сам се учудих на това :-), но после проследих кода и видях, че само името на променливата е подвеждащо…
function glavna_latinska(ch:char):boolean; begin result:=((ch>='A') and (ch<='Z')); end; function latinska_bukva(ch:char):boolean; begin result:=((ch>='A') and (ch<='z')); end; function cifra(ch:char):boolean; begin result:=((ch>='0') and (ch<='9')); end; function prepinatelen_znak(ch:char):boolean; begin result:=((ch='.') or (ch='?') or (ch='!')); end; VAR ch:char; BEGIN write('Vavedi simvol: '); readln(ch); writeln('Simvola e: '); if glavna_latinska(ch) then writeln(' Glavna latinska bukva'); if latinska_bukva(ch) then writeln(' Latinska bukva'); if cifra(ch) then writeln(' Arabska cifra'); if prepinatelen_znak(ch) then writeln(' Prepinatelen znak'); readln; END.Калояне, проверката ти за латинска буква не е съвсем коректна – между главните и малки латински букви има и други символи. Другото е вярно.