• Опешите программный код, очень надо
    begin//начало
    if (a[h,v]=0) or (a[h-1,v]<>0) then
    eng+=1;
    if a[h,v]<>0 then
    if a[h-1,v]=0 then
    begin//начало
    a[h-1,v]:=a[h,v];
    a[h,v]:=0;
    end;//конец
    end;//конец

Ответы 2

  • Это вроде паскаль , мог бы и в переводчике перевести хзbegin // начало , типо открыл вкладку )) хзif (a[h,v]=0) or (a[h-1,v]<>0) then // если массив a[h,v] равен 0  или массив a[h-1,v] не равен 0 то eng+=1;// eng = eng + 1 (вверху просто упрощённая запись)if a[h,v]<>0 then// если a[h,v] <> 0 то if a[h-1,v]=0 then// если a[h-1,v] = 0 то (условие в условие типо)begin//началоa[h-1,v]:=a[h,v];// a[h-1,v] присваеваем a[h,v];a[h,v]:=0;// так же a[h,v]:=0;end;//конец , идёт в связке с оператором begin ))end;//конецнадеюсь именно так тебе надо было это сделать , задавай вопросы если не правильно
  • Вот правильно отформатированный код. Пока код не отформатирован, понять его очень сложно, поэтому программисты всегда сразу пишут код с необходимым форматированием. Начинающим писать программы тоже необходимо всегда следовать этому же принципу.if (a[h,v]=0) or (a[h-1,v]<>0) then eng+=1;if a[h,v]<>0 then  if a[h-1,v]=0 then begin    a[h-1,v]:=a[h,v];    a[h,v]:=0;  end;Наличие переменных вида a[h,v] позволяет сделать вывод, что фрагмент программы что-то делает с элементами двумерного массива "а". При этом, эдементы все время встречаются парами вида a[h,v] и a[h-1,v]. Если a[h,v] - некий текущий элемент в строке h и столбце v, то a[h-1,v] - это элемент в предыдущей строке и том же столбце. Для краткости будем называть элемент a[h,v] ТЕКУЩИЙ, а элемент a[h-1,v] - ПРЕДШЕСТВУЮЩИЙ, предполагая просмотр по столбцам.Теперь фрагмент программы можно заменить псевдокодом.ЕСЛИ (ТЕКУЩИЙ=0) ИЛИ (ПРЕДШЕСТВУЮЩИЙ≠0) ТО eng+=1; (1)ЕСЛИ ТЕКУЩИЙ≠0 ТО (2)  ЕСЛИ ПРЕДШЕСТВУЮЩИЙ=0 ТО (3)    ПРЕДШЕСТВУЮЩИЙ:=ТЕКУЩИЙ; (4)    ТЕКУЩИЙ:=0; (5)Опреатор eng+=1 - более короткая запись оператора eng:=eng+1, допустимая только в версии PascalABC.NET и пришедшая в него из языка C#. Это действие обычно называют "плюс единичка в счетчик", подразумевая, что eng подсчитывает количество некоторых событий. В данном случае это событие - случай, когда или ТЕКУЩИЙ элемент нулевой, или ПРЕДШЕСТВУЮЩИЙ ненулевой.Сделаем псевдокод более компактным.ЕСЛИ (ТЕКУЩИЙ=0) ИЛИ (ПРЕДШЕСТВУЮЩИЙ≠0) ТО (1)  ДОБАВИМ 1 В СЧЕТЧИК ТАКИХ СОБЫТИЙ (2)ЕСЛИ ТЕКУЩИЙ≠0 ТО (3)  ЕСЛИ ПРЕДШЕСТВУЮЩИЙ=0 ТО (4)    ПРЕДШЕСТВУЮЩИЙ:=ТЕКУЩИЙ; ТЕКУЩИЙ:=0; (5)Условие (4) проверяется только если выполняется условие (3). Это оптимизация кода, которая позволяет не проверять условие (4), если условие (3) не выполняется. Такая оптимизация полезна только для старых компиляторов, а PascalABC.NET умеет оптимизировать подобные вещи сам. Для понимания алгоритма вопрос оптимизации несущественен, поэтому мы можем утверждать, что (5) выполнятнся только при одновременном наступлении (3) И (4).ЕСЛИ (ТЕКУЩИЙ=0) ИЛИ (ПРЕДШЕСТВУЮЩИЙ≠0) ТО  ДОБАВИМ 1 В СЧЕТЧИК ТАКИХ СОБЫТИЙЕСЛИ (ТЕКУЩИЙ≠0) И (ПРЕДШЕСТВУЮЩИЙ=0) ТО  ПРЕДШЕСТВУЮЩИЙ:=ТЕКУЩИЙ; ТЕКУЩИЙ:=0В последней строке отметим, что ПРЕДШЕСТВУЮЩИЙ принимает значение ТЕКУЩИЙ, а ТЕКУШИЙ обнуляется. Но это происходит только если ПРЕДШЕСТВУЮЩИЙ был нулём, следовательно можно говорить об обмене значениями.ЕСЛИ (ТЕКУЩИЙ=0) ИЛИ (ПРЕДШЕСТВУЮЩИЙ≠0) ТО  ДОБАВИМ 1 В СЧЕТЧИК ТАКИХ СОБЫТИЙЕСЛИ (ТЕКУЩИЙ≠0) И (ПРЕДШЕСТВУЮЩИЙ=0) ТО  ОБМЕНЯТЬ ЗНАЧЕНИЯ ПРЕДШЕСТВУЮЩЕГО И ТЕКУЩЕГОВот все, что делает приведенный фрагмент кода.
    • Автор:

      ali5tpo
    • 6 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years