Скажите пж чего дает ошибку 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.
Объяснение кода листинга программы
Список действий в коде:
- Объявление констант и переменных.
- Инициализация строки
Codes
с использованием строкиdefPass
. - Получение пароля от пользователя.
- Проверка, совпадает ли введенный пароль со значением переменной
defPass
. - Генерация кодов с помощью функции
Random
и добавление их к строкеCodes
. - Замена пробелов в строке
Codes
на '0'. - Вывод строки
Codes
. - Запрос количества цифр, которые нужно проверить (переменная
n
). - Пока
n
больше 0 и номер текущей цифры не превышает длину строкиCodes
, происходит проверка совпадения цифр из строкиs
с соответствующими цифрами из строкиCode
. - Если количество совпавших цифр равно длине строки
Code
, выводится сообщениеБинго!
. Ошибка 201 может возникнуть, если введенный пароль не совпадает со значением переменнойdefPass
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д