При выполнении программы пропускается цикл for - Free Pascal

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

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

Это звучит бредово, но вчера эта самая программа работала. Однако сегодня паскаль даже видить не хочет цикл for. В чем может быть причина? (Вместо закорючек, в паскале, отображаются русские буквы)
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.
p.s. опять же все символы в из паскаля и поэтому отображаются не верно.

Решение задачи: «При выполнении программы пропускается цикл for»

textual
Листинг программы
uses crt;
procedure Box(x1, y1, x2, y2: Integer);
const
  sv='в”‚'; sg='в”Ђ';
  lu='в”Њ'; mu='┬'; ru='в”ђ';
  lm='в”њ'; mm='в”ј'; rm='┤';
  ld='в””'; md='┴'; rd='в”

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


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

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

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