Скажите пж чего дает ошибку 201? - Free Pascal

Узнай цену своей работы

Формулировка задачи:

program N_2;
 uses crt;
 const rrr=100500;
 var p: boolean;
 ll:integer;
 n,m,k,l,q,nnn,w,e,r,t,y,u,i,o,aa,ad,af,ag,ah,aj,ak,al,da,z,x,c,boo,rr,r1,r2,r3,pptk :integer;
begin
 p:=false;
 randomize;
 clrscr;
 writeln ('ЏҐ*в*Ј®*®ў§«*¬лў*⥫м. ‚ўҐ¤ЁвҐ Ї*а®«м');
 readln (ll);
 if (ll=rrr)
  then
  begin
   n:=random(5);
   writeln ('');
   m:=random (1000);
   q:=m div 100;
   w:=m mod 100 div 10;
   e:=m mod 10;
   k:=random (1000);
   r:=k div 100;
   t:=k mod 100 div 10;
   y:=k mod 10;
   l:=random (1000);
   u:=l div 100;
   i:=l mod 100 div 10;
   o:=l mod 10;
   z:=random (1000);
   aa:=z div 100;
   ad:=z mod 100 div 10;
   af:=z mod 10;
   x:=random (1000);
   ag:=x div 100;
   ah:=x mod 100 div 10;
   aj:=x mod 10;
   c:=random (1000);
   ak:=c div 100;
   al:=c mod 100 div 10;
   da:=c mod 10;
   if (n=0)
    then
     begin
     boo:=m               ;
     writeln (z,x,m,c,k,l);
     end;
   if (n=1)
    then
     begin
     boo:=m               ;
     writeln (m,x,z,k,c,l);
     end;
   if (n=2)
    then
     begin
     boo:=m               ;
     writeln (l,m,c,k,z,x);
     end;
   if (n=3)
    then
     begin
     boo:=m               ;
     writeln (z,k,c,m,x,l);
     end;
   if (n=4)
    then
     begin
     boo:=m               ;
     writeln (l,x,k,z,c,m);
     end;
   if (n=5)
    then
     begin
     boo:=m;              ;
     writeln (c,k,x,l,m,z);
     end;
   pptk:=0;
    while (pptk<3) do
    begin
    writeln ('‚ўҐ¤ЁвҐ Є®¤ ў§«®¬*');
    readln (rr);
    r1:=rr div 100;
    r2:=rr mod 100 div 10;
    r3:=rr mod 10;
    if (r1=q) and (r2=w) and (r3=e)
     then
      p:=true;
       if (p=false)
      then
      begin
      pptk:=pptk+1;
      if (not(r1=q) and (r2=w) and (r3=e)) or ((r1=q) and not(r2=w) and (r3=e)) or ((r1=q) and (r2=w) and not(r3=e))
       then writeln ('2');;
 
        if (not(r1=q) and not(r2=w) and (r3=e)) or ((r1=q) and not(r2=w) and not(r3=e)) or (not(r1=q) and (r2=w) and not(r3=e))
       then writeln ('1');;
 
         if not(r1=q) and not(r2=w) and not(r3=e)
        then writeln ('0');;
       end;
     end;
    end;
   readln
end.
P.S. Уже кипит мозг
Задачи как таковой нет, однако чисто ради испробования собственных сил написал чет-типо логической игры - "Пентагоновзламыватель Паскаль"

Решение задачи: «Скажите пж чего дает ошибку 201?»

textual
Листинг программы
const
  defPass = '100500';
  CodeLen = 3; CodeNum=1000; CodeCnt = 6; 
var
  Codes: String[CodeCnt*CodeLen];
  Code: String[CodeLen];
  s: String;
  i, n, e: Integer;
begin
  Randomize;
  Write('Пароль: '); ReadLn(s);
  if s=defPass then begin
    Str(Random(CodeNum):CodeLen,Code);
    Codes:=Code; n:=Random(CodeCnt);
    for i:=1 to n do begin
      Str(Random(CodeNum):CodeLen,s); Codes:=s+Codes;
    end;
    for i:=1 to CodeCnt-n-1 do begin
      Str(Random(CodeNum):CodeLen,s); Codes:=Codes+s;
    end;
    for i:=1 to Length(Codes) do if Codes[i]=' ' then Codes[i]:='0';
    WriteLn(Codes); n:=3;
    while (n>0) and (e<CodeLen) do begin
      Dec(n); Write('Код: '); ReadLn(s);
      i:=CodeLen; if i>Length(s) then i:=Length(s);
      e:=0; for i:=i downto 1 do Inc(e,Ord(s[i]=Code[i]));
      if e<CodeLen then WriteLn('Совпало: ',e);
    end;
    if e=CodeLen then WriteLn('Бинго!');
  end;
end.

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

Список действий в коде:

  1. Объявление констант и переменных.
  2. Инициализация строки Codes с использованием строки defPass.
  3. Получение пароля от пользователя.
  4. Проверка, совпадает ли введенный пароль со значением переменной defPass.
  5. Генерация кодов с помощью функции Random и добавление их к строке Codes.
  6. Замена пробелов в строке Codes на '0'.
  7. Вывод строки Codes.
  8. Запрос количества цифр, которые нужно проверить (переменная n).
  9. Пока n больше 0 и номер текущей цифры не превышает длину строки Codes, происходит проверка совпадения цифр из строки s с соответствующими цифрами из строки Code.
  10. Если количество совпавших цифр равно длине строки Code, выводится сообщение Бинго!. Ошибка 201 может возникнуть, если введенный пароль не совпадает со значением переменной defPass.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

7   голосов , оценка 3.143 из 5