Сделать 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.

Объяснение кода листинга программы

  1. Создается массив p типа void, который будет содержать функции для вывода нужных символов.
  2. В функции main создаются 10 переменных типа void (p[0..9]) и присваиваются функциями print0..print9.
  3. Задается переменная num, которая будет использоваться для генерации случайного числа от 0 до 9.
  4. Задается переменная Randomize, которая используется для инициализации генератора случайных чисел.
  5. Выводится сообщение CAPTCHA: и цикл for i := 1 to 5 do, который будет генерировать 5 случайных чисел от 0 до 9 и вызывать функцию print[dig].
  6. После выполнения цикла выводится переменная num.
  7. Пользователю предлагается ввести число n.
  8. Если n равно num, то выводится OK, иначе выводится Error.

Оцени полезность:

9   голосов , оценка 3.778 из 5
Похожие ответы