При выполнении программы пропускается цикл for - Free Pascal
Формулировка задачи:
Это звучит бредово, но вчера эта самая программа работала. Однако сегодня паскаль даже видить не хочет цикл for.
В чем может быть причина? (Вместо закорючек, в паскале, отображаются русские буквы)
p.s. опять же все символы в из паскаля и поэтому отображаются не верно.
program cifr;
uses crt;
var a,b,c,d,x,vibor,i,again:integer;
s,vivod,EngAlf,RusAlf,EngAlfReturn,RusAlfReturn:string;
g:boolean;
begin
clrscr;
c:=0;
x:=1;
EngAlf:='abcdefghijklmnopqrstuvwxyz !ь* ';
RusAlf:='*ЎўЈ¤Ґс¦§Ё©Є«¬*®Їабвгдежзийклмноп !ь* ';
a:=length(s);
for i:=length(RusAlf) downto 1 do begin
RusAlfReturn:=RusAlfReturn+RusAlf[i]; end;
for i:=length(EngAlf) downto 1 do begin
EngAlfReturn:=EngAlfReturn+EngAlf[i]; end;
Writeln('—в® ўл е®вЁвҐ:');
writeln('1-ЛњЁда®ў*вм');
writeln('2-ђ*§иЁда®ў*вм');
read(vibor);
repeat begin
clrscr;
if vibor=1 then begin
x:=1;
readln(s);
readln(s);
begin
for i:=1 to 33 do {[B][U]<--- ВОТ ЭТОТ ЦИКЛ[/U][/B]}
if s[1]=RusAlf[i] then begin {Он отвечает за проверку языка в строчке}
s:=s+'R';
repeat begin
c:=c+1;
if s[x]=RusAlf[c] then begin
vivod:=RusAlf[c+4]; write(vivod); x:=x+1; c:=0; end; end; until s[x]='R'; break; end
else begin
s:=s+'R';
repeat begin
c:=c+1;
if s[x]=EngAlf[c] then begin
vivod:=EngAlf[c+4]; write(vivod); x:=x+1; c:=0; end; end; until s[x]='R'; break; end; end; end
else begin
x:=1;
readln(s);
readln(s);
for i:=1 to 33 do
if s[1]=RusAlf[i] then begin
s:=s+'R';
repeat begin
c:=c+1;
if s[x]=RusAlfReturn[c] then begin
vivod:=RusAlfReturn[c+4]; write(vivod); x:=x+1; c:=0; end; end; until s[x]='R'; break; end; end;
writeln;
writeln;
writeln('—в® ўл е®вЁвҐ:');
writeln('1-‡*иЁда®ў*вм');
writeln('2-ђ*§иЁда®ў*вм');
writeln('3-‚멤вЁ');
read(vibor);
end; until vibor=3; end.
Знаете, вот програмка полегче:
program ThisIsProgram;
uses crt;
var a,b,c,d,x,y,x1,y1,i,i2,again:integer;
s:string;
sv,sg,lu,lm,ld,mu,mm,md,ru,rm,rd:char;
begin repeat begin
clrscr;
randomize;
sv:='і';
sg:='Д';
lu:='Ъ';
lm:='Г';
ld:='А';
mu:='В';
mm:='Е';
md:='Б';
ru:='ї';
rm:='ґ';
rd:='Щ';
x:=2;
y:=2;
x1:=x;
y1:=y;
GotoXY(x,y);
write(lu);
x1:=x;
for i2:=x1 to x1+3 do
begin
x:=x+1;
GotoXY(x,y);
write(sg);
end;
y1:=y;
GotoXY(x,y);
write(ru);
for i2:=y1 to y1+2 do
begin
y:=y+1;
GotoXY(x,y);
write(sv);
end;
x1:=x;
GotoXY(x,y); write(rd);
for i2:=x1 to x1-3 do
begin
x:=x-1;
GotoXY(x,y);
write(sg);
end;
y1:=y;
GotoXY(x,y);
write(ld);
for i2:=y1 to y1-3 do
begin
y:=y-1;
GotoXY(x,y);
write(sv);
end;
GotoXY(15,15);
writeln('•®вЁвҐ Їа®¤®«¦Ёвм а*Ў®вг?');
write('1 yes 0 no');
read(again);
end; until again<>1; end.Решение задачи: «При выполнении программы пропускается цикл for»
textual
Листинг программы
uses crt; procedure Box(x1, y1, x2, y2: Integer); const sv='в”‚'; sg='в”Ђ'; lu='в”Њ'; mu='┬'; ru='в”ђ'; lm='в”њ'; mm='в”ј'; rm='┤'; ld='в””'; md='┴'; rd='в”