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

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

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

Это звучит бредово, но вчера эта самая программа работала. Однако сегодня паскаль даже видить не хочет цикл for. В чем может быть причина? (Вместо закорючек, в паскале, отображаются русские буквы)
Листинг программы
  1. program cifr;
  2. uses crt;
  3. var a,b,c,d,x,vibor,i,again:integer;
  4. s,vivod,EngAlf,RusAlf,EngAlfReturn,RusAlfReturn:string;
  5. g:boolean;
  6. begin
  7. clrscr;
  8. c:=0;
  9. x:=1;
  10. EngAlf:='abcdefghijklmnopqrstuvwxyz !ь* ';
  11. RusAlf:='*ЎўЈ¤Ґс¦§Ё©Є«¬*®Їабвгдежзийклмноп !ь* ';
  12. a:=length(s);
  13. for i:=length(RusAlf) downto 1 do begin
  14. RusAlfReturn:=RusAlfReturn+RusAlf[i]; end;
  15. for i:=length(EngAlf) downto 1 do begin
  16. EngAlfReturn:=EngAlfReturn+EngAlf[i]; end;
  17. Writeln('—в® ўл е®вЁвҐ:');
  18. writeln('1-ЛњЁда®ў*вм');
  19. writeln('2-ђ*§иЁда®ў*вм');
  20. read(vibor);
  21. repeat begin
  22. clrscr;
  23. if vibor=1 then begin
  24. x:=1;
  25. readln(s);
  26. readln(s);
  27. begin
  28. for i:=1 to 33 do {[B][U]<--- ВОТ ЭТОТ ЦИКЛ[/U][/B]}
  29. if s[1]=RusAlf[i] then begin {Он отвечает за проверку языка в строчке}
  30. s:=s+'R';
  31. repeat begin
  32. c:=c+1;
  33. if s[x]=RusAlf[c] then begin
  34. vivod:=RusAlf[c+4]; write(vivod); x:=x+1; c:=0; end; end; until s[x]='R'; break; end
  35. else begin
  36. s:=s+'R';
  37. repeat begin
  38. c:=c+1;
  39. if s[x]=EngAlf[c] then begin
  40. vivod:=EngAlf[c+4]; write(vivod); x:=x+1; c:=0; end; end; until s[x]='R'; break; end; end; end
  41. else begin
  42. x:=1;
  43. readln(s);
  44. readln(s);
  45. for i:=1 to 33 do
  46. if s[1]=RusAlf[i] then begin
  47. s:=s+'R';
  48. repeat begin
  49. c:=c+1;
  50. if s[x]=RusAlfReturn[c] then begin
  51. vivod:=RusAlfReturn[c+4]; write(vivod); x:=x+1; c:=0; end; end; until s[x]='R'; break; end; end;
  52. writeln;
  53. writeln;
  54. writeln('—в® ўл е®вЁвҐ:');
  55. writeln('1-‡*иЁда®ў*вм');
  56. writeln('2-ђ*§иЁда®ў*вм');
  57. writeln('3-‚멤вЁ');
  58. read(vibor);
  59. end; until vibor=3; end.
Знаете, вот програмка полегче:
Листинг программы
  1. program ThisIsProgram;
  2. uses crt;
  3. var a,b,c,d,x,y,x1,y1,i,i2,again:integer;
  4. s:string;
  5. sv,sg,lu,lm,ld,mu,mm,md,ru,rm,rd:char;
  6. begin repeat begin
  7. clrscr;
  8. randomize;
  9. sv:='і';
  10. sg:='Д';
  11. lu:='Ъ';
  12. lm:='Г';
  13. ld:='А';
  14. mu:='В';
  15. mm:='Е';
  16. md:='Б';
  17. ru:='ї';
  18. rm:='ґ';
  19. rd:='Щ';
  20. x:=2;
  21. y:=2;
  22. x1:=x;
  23. y1:=y;
  24.  
  25. GotoXY(x,y);
  26. write(lu);
  27. x1:=x;
  28. for i2:=x1 to x1+3 do
  29. begin
  30. x:=x+1;
  31. GotoXY(x,y);
  32. write(sg);
  33. end;
  34. y1:=y;
  35. GotoXY(x,y);
  36. write(ru);
  37. for i2:=y1 to y1+2 do
  38. begin
  39. y:=y+1;
  40. GotoXY(x,y);
  41. write(sv);
  42. end;
  43. x1:=x;
  44. GotoXY(x,y); write(rd);
  45. for i2:=x1 to x1-3 do
  46. begin
  47. x:=x-1;
  48. GotoXY(x,y);
  49. write(sg);
  50. end;
  51. y1:=y;
  52. GotoXY(x,y);
  53. write(ld);
  54. for i2:=y1 to y1-3 do
  55. begin
  56. y:=y-1;
  57. GotoXY(x,y);
  58. write(sv);
  59. end;
  60.  
  61. GotoXY(15,15);
  62. writeln('•®вЁвҐ Їа®¤®«¦Ёвм а*Ў®вг?');
  63. write('1 yes 0 no');
  64. read(again);
  65. end; until again<>1; end.
p.s. опять же все символы в из паскаля и поэтому отображаются не верно.

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

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

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы