Категория
Информатика, опубликовано 01.01.2020 10:58

Нужны истинные программисты pascal! pascal находит ошибку там, где её нет: в большой программе он находит ошибку, а если скопировать и отдельно проверить эту часть программы она хорошо работает!

вот эта часть программы:

var a,d: array [0..100] of string; b,i,j,l: integer; t: text; g,p,k: string; x,h,e: boolean;

begin

for i: =1 to 100 do begin

g: =a[i];

for j: =1 to length(g) do if g[j]='h' then break;

if g[j]='h' then break;

end;

writeln('x=',j,' y=',i);

end.

здесь, если внести необходимые данные, то программа будет работать, но, если обратиться к основной - то не будет.
вот вся программа:
program keygame; {p-пустая клетка; #-запертая решётка; @-выход; & -ключ; ^> v< -шипы(вверх вправо вниз влево); *-стена; $-магазин; /\-зеркала; h-герой; o-камень; -|-транспорт; %-динамит}
var a,d: array [0..100] of string; b,i,j,l: integer; t: text; g,p,k: string; x,h,e: boolean;

begin
writeln('1.play');
writeln('2.level editor (do not work)');
readln(b);

case b of

1: begin
writeln('choose level: ');
writeln('1.level1');
writeln('1.level2');
writeln('1.level3');
writeln('1.level4');
writeln('1.level5');
readln(b);

case b of
1: begin
assign(t, 'c: \pabcwork.net\myprograms\games\keygame\level1.txt');
reset(t);
for i: =2 to 100 do begin
readln(t,a[i]);
if a[i]=p then break;
end;
close(t);
end;
end;

for i: =1 to 100 do d[i]: =a[i];

for i: =1 to 100 do begin
g: =d[i];
l: =length(g);

for j: =1 to l do begin
if g[j]='p' then g[j]: =' ';
if g[j]='-' then g[j]: ='▬';
if g[j]='|' then g[j]: ='│';
if g[j]='v' then g[j]: ='▼';
if g[j]='^' then g[j]: ='▲';
if g[j]='< ' then g[j]: ='◄';
if g[j]='> ' then g[j]: ='►';
if g[j]='*' then g[j]: ='▓';
if g[j]='h' then g[j]: ='☺';
end;

d[i]: =g;
end;

for i: =1 to 100 do begin
if d[i]< > p then writeln(d[i]);
end;

for i: =1 to 100 do begin
if a[i]< > p then writeln(a[i]);
end;

h: =true; e: =true;

while (h=true) or (e=true) do begin;
x: =true;
b: =0;

while < 10) and (b> 0)) or ((b< 60) and (b> and (b mod 2=0) do begin
writeln('move: ');
writeln('8-up, 2-down, 4-left, 6-right');
writeln('fire: ');
writeln('58-up, 52-down, 54-left, 56-right');
readln(b);
end;

case b of

2: begin

for i: =1 to 100 do begin
g: =a[i];
for j: =1 to length(g) do if g[j]='h' then break;
writeln('x=',j,' y=',i);
if g[j]='h' then break;
end;

end;

4: begin

end;

6: begin

end;

8: begin

end;

52: begin

end;

54: begin

end;

56: begin

end;

58: begin

end;

end;

end;

end;

end;

end.
душу, считайте, вам открыл.

Ответы

Ответ
Ответ оставил: Гость
Компьютер?возможно или нет
Ответ
Ответ оставил: Гость
КошкаМошкаМышкаПышкаПушкаСушка Сумка
Ответ
Ответ оставил: Гость
Samsung Galaxy J5 J500H 

2015-го года
Ответ
Ответ оставил: Гость
Одномерный массив A заполнен десятью случайными целыми числами от 1 до 20. Напишите программу вывода элементов массива в обратном порядке. 


Другие вопросы по информатике

Вопрос
Информатика, опубликовано 09.01.2019 16:01
Вопрос
Информатика, опубликовано 09.01.2019 16:01
Вопрос
Информатика, опубликовано 09.01.2019 16:01
✅ Ответов: 2 на вопрос по информатике: Нужны истинные программисты pascal! pascal находит ошибку там, где её нет: в большой программе он находит ошибку, а если скопировать и отдельно проверить эту часть программы она хорошо работает! вот эта часть программы: var a,d: array [0..100] of string; b,i,j,l: integer; t: text; g,p,k: string; x,h,e: boolean; begin for i: =1 to 100 do begin g: =a... ты найдешь на сайте. Также ты можешь добавить свой вариант ответа, если считаешь, что он не верен или твой ответ более полный. Пожалуйста, добавляй только правильные ответы.
Вконтакте Youtube