В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
milana0512
milana0512
29.06.2021 11: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.
душу, считайте, вам открыл.

Показать ответ
Ответ:
4okoladka100
4okoladka100
31.10.2020 06:44
Программа Вот:
Program z1;Var a,b,c,d,k:integer;BeginWriteln('Введите трехзначное число');REadln(a);While a<>0 do beginWriteln('Введите трехзначное число');REadln(a);b:=a div 100 mod 10;c:=a div 10 mod 10;d:=a mod 10;if b+c+d div 10 >0 then writeln('Сумма цифр- двузначное число') else writeln ('Нет, сумма цифр не двузначное число');if b*C*D div 100 >0 then writeln('Произведение цифр- терхзначное число') else writeln ('Нет, произведение цифр не трехзначное число число');Writeln ('Введите любое число');Readln (k);If b*c*d>k then writeln('Произведение цифр больше числа') else writeln('Произведение меньше числа');if B+c+d div 5 =0 then writeln('Сумма цифр числа кратна 5') else writeln ('Сумма цифр не кратна 5');if B+c+d div k =0 then writeln('Сумма цифр числа кратна числу, введенному с клавиатуры') else writeln ('Сумма цифр не кратна числу, введенному с клавиатуры');End;End. 
Есть маленькая проблема в начале, не помню как прописывать, поэтому число первый раз нужно вводить 2 раза, если не устраевает, можете воспользоваться другими ресурсами  
0,0(0 оценок)
Ответ:
Роли5
Роли5
24.06.2022 10:36
Const
n=10;m=7;
var
a:array[1..n,1..m]of integer;
flag,i,j,b:integer;
begin
     for i:=1 to n do
         begin
             writeln;
                 for j:=1 to m do
                      begin
                        a[i,j]:=random(312)-111;
                        write(a[i,j]:4);
                      end;
            end;
writeln;
Writeln('B ?');
readln(b);
for i:=1 to n do
  for j:=1 to m do
      if a[i,j]=b then
          flag:=1;
if flag=1 then
   writeln('Yes')
else
   writeln('N');
end.

вариант 2
const
n=10;m=7;
var
a:array[1..n,1..m]of integer;
k,i,j,b:integer;
begin
     for i:=1 to n do
         begin
             writeln;
                 for j:=1 to m do
                      begin
                        a[i,j]:=random(312)-111;
                        write(a[i,j]:4);
                      end;
            end;
writeln;
Writeln('B ?');
readln(b);
for i:=1 to n do
  for j:=1 to m do
      if a[i,j]=b then
          k:=k+1;
if k<>0 then
   writeln('Yes')
else
   writeln('N');
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота