В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
jiohjb
jiohjb
21.06.2020 23:17 •  Информатика

Информатика 4 класс чему будет равно nпосле выполнения алгоритма ; началоn=18; n=n+22; n=*3; конец пож.

Показать ответ
Ответ:
FedorShar28
FedorShar28
01.11.2021 11:16

Объяснение:

program zadachiGAME;

uses crt;

var a:array [1..59] of array [1..59] of string{integer};

var n,x,y,x1,y1,x3,y3,spawn,x4,y4,x5,y5,Xx,Yy,Xb,Yb,delta1,delta2,deltaGAMER,live:integer; var j:char;label restart1;label otskok1;label otskok2;

begin

restart1:

window (1,1,80,50);

clrscr;

cursoroff;

x1:=35;

y1:=44;

delta1:=1;

delta2:=1;

cursoroff;

live:=10;

y:=50;

x:=25;

deltagamer:=1;

gotoxy(x,y);

x3:=24;

y3:=1;

x4:=6;

y4:=45;

 

 

write('press for begin!');

readkey;

gotoxy(X,Y);

write('                ');

n:=1;

 

 

spawn:=1;

 y3:=1;

 x3:=24;

TextColor(3);

      for spawn:=1 to 50 do

      begin

         gotoxy(x3,y3);

         writeln('|                                  |');

         x3:=24;

         y3:=y3+1;

      end;

 

      TextColor(11);

       

      gotoxy(40,12);

       

   

      begin

       

      for y5:=10 to 22 do

       for x5:=36 to 44 do

           begin

           gotoxy(x5,y5);  

             a[x5,y5]:=('a');

             gotoxy(x5,y5);

             write ('a');

           end;

           

       end;

 

repeat

 

begin

 

delay(53);

x1:=x1+delta1;

y1:=y1+delta2;

gotoxy(x1,y1);

write ('*');

gotoxy(x1+delta1*(-1),y1+delta2*(-1));

write(' ');

 

 

if ((x1<>x5) and (y1<>y5)) then //место с присваванием,которое не работает по непонятным причинам

      begin

        Xx:=x1;

        Yy:=y1;

      end;

   

         

if (a[x1,y1]=('a')) then  

 

begin //проверка для ркошета в разные стороны

 

    if (((x1-Xx)=(-1)) and ((y1-Yy)=(-1)) and ((x1=x5) and (y1=y5)))

       

      then

       begin      

        a[x5,y5]:=('an');

        delta1:=delta1*(-1);    

       end;

     

   

    if (((x1-Xx)=1) and ((y1-Yy)=(-1)) and ((x1=x5) and (y1=y5)))

     

     then  

      begin

        a[x5,y5]:=('an');

        delta2:=delta2*(-1);

      end;

       

       

  end;

   

TextColor(11);

 

gotoxy(x4,y4);

begin //отображение некоторых данных

writeln('live - ',live:1);

writeln('Xx ',Xx,'Yy ',Yy);

write ('X1 ',x1,'Y1 ',y1);

end;

 

 

TextColor(5);

 

if (x1=58) or (x1=25) then

delta1:=(-1)*(delta1);

if (y1=2) then

delta2:=delta2*(-1);

 

 

if ((y1=y-1) and (x1=x)) or ((y1=y-1) and (x1=x-1)) or ((y1=y-1) and (x1=x+1)) or ((y1=y-1) and (x1=x+2))  or ((y1=y-1) and (x1=x+3)) then

delta2:=delta2*(-1)

else

if ((y1=y) and (x1<>x)) or ((y1=y) and (x1<>x-1)) or ((y1=y) and (x1<>x+1)) or ((y1=y) and (x1<>x+2))  or ((y1=y) and (x1<>x+3)) then

begin

gotoxy(x1,y1);

write(' ');

delta2:=delta2*(-1);

y1:=y1+delta2-1;

live:=live-1;

end;

 

TextColor(13);

 

if keypressed then

begin

//if keypressed then

  j:=readkey;

    case j of

     #77:deltaGAMER:=3;//вправо

     #75:deltaGAMER:=(-3);//влево

     #27:Exit;

    else

     deltagamer:=(0);

    end;

 

  if (x=25) or ((x>55) and (x<59)) then

 deltagamer:=(-1)*(deltagamer);

 

 if (x=25) and (j=#77) or (x=56) and (j=#75)then

 deltagamer:=(-1)*(deltagamer);

 

 

  x:=x+(1*deltaGamer);

 

  if j<> #75 then

   begin

    gotoxy(x,y);

    write ('---');

    end;

  if j<> #77 then

   begin

    gotoxy(x,y);

    write ('---');

    end

  else

 

 

gotoxy(x+deltagamer*(-1),wherey);

write('   ');

gotoxy(x,y);

 

  end;

end;

 

until live=0;

 

begin

clrscr;

gotoxy(37,25);

writeln (' Defith');

gotoxy(37,27);

writeln (' press "r" for restart');

j:=readkey;

case j of

#114:goto restart1;

#82:goto restart1;

#170:goto restart1;

#138:goto restart1;

#27:end;

end;

 

end.

0,0(0 оценок)
Ответ:
Kristina238485
Kristina238485
24.05.2022 04:12

Исключение IndexOutOfRangeException ("Индекс находился вне границ массива") указывает на то, что в каком либо месте программы вы пытаетесь обратится к массиву с индексом, выходящим за его границы.

Вероятнее всего, конкретно в вашем коде ошибка может быть на строке 4, т.к вы объявляете имя a как массив на 100 элементов с допустимыми индексами от 1 до 100, но позже даёте пользователю право самому ввести требуемую размерность, и никак не проверяете вводимое пользователем значение. В таком случае любое число > 100 будет приводить к исключению IndexOutOfRangeException.

Что бы избежать исключительных ситуаций, вы можете пойти двумя путями:

1. Проверять вводимые данные на соответствие диапазону допустимых индексов для массива а

2. Использовать коллекции с динамической размерностью (Array of T или List<T>)  

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота