Забравена парола

Език

Български    Английски

Реклами




Съобщи за грешка !
Добави търсачка

Валиден XHTML 1.1 Валиден CSS 2.1
Powered by PHP Powered by MySQL
Pascal емулатор
1 потребител(и) online
Контрол на шрифта Принтирай  Текущ език: Pascal

Упражнения://Редене на код


За да решите задачата е нужно чрез мишката да разместите кода, докато получите работеща програма.

Условие на задачата:
Квадратна мрежа с k реда и k стълба (0< k < =20) има два вида квадратчета - бели и черни. В черно квадратче може да се влезе, но не може да се излезе. От бяло квадратче може да се премине във всяко от осемте му съседни, като се прекоси общата им страна или връх. Да се напише програма, която ако са дадени произволна мрежа с бели и черни квадратчета и две произволни квадратчета - начално и крайно, определя дали от началното квадратче може да се премине в крайното.


  • end
  • mr[x,y] := 1; { маркираме квадратчето като обходено }
  • begin
  • mr[x,y] := 0; { възстановяваме пътя, прекъснат по-горе }
  • begin
  • way := way(x+1, y) or way(x-1, y) or way(x, y+1)
  • else
  • if (x = m) and (y = n) then
  • else
  • or way(x, y-1) or way(x-1,y-1) or way(x-1, y+1)
  • way:=false { ако сте извън мрежата }
  • function way (x, y : integer) : boolean;
  • way:= true { ако началото и края съвпадат }
  • if (mr[x,y] = 1) then
  • or way(x+1,y-1) or way(x+1, y+1);
  • way:= false { ако сме в непроходимо квадратче }
  • else
  • end;
  • if (x < 0) or (x > k) or (y < 0) or (y > k) then