Сделать CAPTCHA - Turbo Pascal
Формулировка задачи:
Задание. Сделать CAPTCHA(5 цифр в диапзоне от 2 до 6)
На Паскале такое реализовать можно?
Решение задачи: «Сделать CAPTCHA»
textual
Листинг программы
type void = procedure; procedure print0; begin Writeln(' - '); Writeln('| |'); Writeln; Writeln('| |'); Writeln(' -'); Writeln; end; procedure print1; begin Writeln(); Writeln(' |'); Writeln; Writeln(' |'); Writeln; end; procedure print2; begin Writeln(' -'); Writeln(' |'); Writeln(' -'); Writeln('| '); Writeln(' -'); Writeln; end; procedure print3; begin Writeln(' -'); Writeln(' |'); Writeln(' -'); Writeln(' |'); Writeln(' -'); Writeln; end; procedure print4; begin Writeln; Writeln('| |'); Writeln(' -'); Writeln(' |'); Writeln; end; procedure print5; begin Writeln(' - '); Writeln('| '); Writeln(' -'); Writeln(' |'); Writeln(' -'); Writeln; end; procedure print6; begin Writeln(' - '); Writeln('| '); Writeln(' -'); Writeln('| |'); Writeln(' -'); end; procedure print7; begin Writeln(' - '); Writeln(' |'); Writeln; Writeln(' |'); Writeln; end; procedure print8; begin Writeln(' - '); Writeln('| |'); Writeln(' -'); Writeln('| |'); Writeln(' -'); Writeln; end; procedure print9; begin Writeln(' - '); Writeln('| |'); Writeln(' -'); Writeln(' |'); Writeln(' -'); Writeln; end; var p: array [0..9] of void; i, num, dig, n: LongInt; begin p[0] := print0; p[1] := print1; p[2] := print2; p[3] := print3; p[4] := print4; p[5] := print5; p[6] := print6; p[7] := print7; p[8] := print8; p[9] := print9; num := 0; Randomize; Writeln('CAPTCHA:'); for i := 1 to 5 do begin dig := Random(10); num := num * 10 + dig; p[dig]; end; Readln(n); if n = num then Writeln('OK') else Writeln('Error'); end.
Объяснение кода листинга программы
- Создается массив p типа void, который будет содержать функции для вывода нужных символов.
- В функции main создаются 10 переменных типа void (p[0..9]) и присваиваются функциями print0..print9.
- Задается переменная num, которая будет использоваться для генерации случайного числа от 0 до 9.
- Задается переменная Randomize, которая используется для инициализации генератора случайных чисел.
- Выводится сообщение
CAPTCHA:
и цикл for i := 1 to 5 do, который будет генерировать 5 случайных чисел от 0 до 9 и вызывать функцию print[dig]. - После выполнения цикла выводится переменная num.
- Пользователю предлагается ввести число n.
- Если n равно num, то выводится
OK
, иначе выводитсяError
.