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

НА ЯЗЫКЕ PYTHON Поиграем в игру "Змейка". Змейка ходит по прямоугольному полю и собирает еду. Змейка занимает незамкнутую цепочку клеток. Две соседние клетки змейки имеют одну общую сторону. Еда занимает одну клетку. Змейка ест только своей головой. Съеденная клетка становится частью змейки. Змейка не может выходить за границы поля. Змейка может находиться на любой клетке, если это не запрещено перечисленными выше условиями.

На вход подается прямоугольное поле: количество строк (до 100) и количество столбцов (до 100), за ними по строкам подаются числа 0, 1, 2, 3. 0 означает, что в текущей клетке нет еды и нет змейки. 1 означает, что в текущей клетке находится еда и нет змейки. 2 или 3 означает, что в текущей клетке находится змейка. 3 означает, что в клетке находится голова змейки.

Программа должна составить действия змейки, чтобы та съела всю еду, или определить, что съесть всю еду нельзя. Условимся, что клетка поля с минимальными координатами находится сверху слева, а клетка поля с максимальными координатами находится снизу справа. Тогда действие 0 означает движение головы на соседнюю клетку сверху, действие 1 означает движение головы на соседнюю клетку слева, действие 2 означает движение головы на соседнюю клетку внизу, действие 3 означает движение головы на соседнюю клетку справа. Голова может переместиться только на пустую клетку или клетку с едой.

Fарантируется что по исходным данным положение змейки определяется однозначно

Программа печатает последовательность чисел 0, 1, 2, 3, если можно съесть всю еду, и -1 иначе.

Показать ответ
Ответ:
алина3893
алина3893
20.01.2020 23:47

1)

#include <iostream>

using namespace std;

signed main(){

   int n, res = 0;

   cin >> n;

   int a[n];

   for(int i = 0; i < n; i++){

       cin >> a[i];

       res = max(res, abs(a[i] - a[0]));

   }

   cout << res;

}

2)

#include <iostream>

using namespace std;

signed main(){

   int n, mn_val = 1e9, mn_in = 0;

   cin >> n;

   int a[n];

   for(int i = 0; i < n; i++){

       cin >> a[i];

       if(a[i] < mn_val){

           mn_val = a[i];

           mn_in = i;

       }

   }

   swap(a[mn_in], a[n-1]);

   for(int i = 0; i < n; i++)

       cout << a[i] << " ";

}

3)

#include <iostream>

using namespace std;

signed main(){

   int n, mx = -1e9;

   cin >> n;

   int a[n];

   for(int i = 0; i < n; i++){

       cin >> a[i];

       if(a[i] < 0)

           mx = max(mx, a[i]);

   }

  cout << mx;

}

4)

#include <iostream>

using namespace std;

signed main(){

   int n, mx1 = -1e9, mx2 = -1e9;

   cin >> n;

   int a[n];

   for(int i = 0; i < n; i++){

       cin >> a[i];

       if(a[i] > mx1){

           mx2 = mx1;

           mx1 = a[i];

       }

       else if(a[i] > mx2)

           mx2 = a[i];

   }

  cout << mx2;

}

0,0(0 оценок)
Ответ:
nick313
nick313
13.05.2023 07:06
Uses crt,graph;
function F(x:real):real;{заданная функция}
begin
if(x>=pi)and(x<=1.5*pi)and(sin(x)+cos(3*x)<0)then F:=0
else F:=sin(x)+cos(3*x);
end;
const xn=0;{начало и конец интервала, шаг табуляции}
xk=2*pi;
h=2*pi/30;
var f1:text;{текстовый файл}
x,y,mx,my:real;
x1,y1:array[1..100] of real;{массивы значений абцисс и ординат}
n,i,gd,gm,x0,y0:integer;
st:string;
begin
clrscr;
{создаем файл и открываем для записи}
assign(f1,'tabl.txt');
rewrite(f1);
writeln(f1,'');{шапка таблицы}
writeln(f1,'| x | F(x) |');
writeln(f1,'');
x:=xn;{табулируем функцию, пишем в файл и в массивы}
n:=0;
while x<=xk+h/2 do
begin
y:=F(x);
n:=n+1;
x1[n]:=x;
y1[n]:=y;
writeln(f1,'|',x:4:1,' |',y:5:2,' |');
x:=x+h;
end;
writeln(f1,'');
close(f1);
writeln('Результаты записаны в файл TABL.txt');
write('Press Enter...');
readln;
{переходим в графический режим}
gd:=0;
initgraph(gd,gm,'');
x0:=40;{начало координат}
y0:=getmaxY div 2;
mx:=(getmaxX-60)/(xk-xn);{масштабы по осям}
my:=100;
line(20,y0,getmaxX-20,y0);{оси координат}
outtextXY(getmaxX-15,y0-15,'X');
line(x0,getmaxY-20,x0,20);
outtextXY(x0-15,10,'Y');
{засечки подписи на осях}
for i:=1 to round(xk)+1 do
begin
line(x0+round(i*mx),y0+3,x0+round(i*mx),y0-3);
line(x0-round(i*mx),y0+3,x0-round(i*mx),y0-3);
line(x0+3,y0+round(i*my),x0-3,y0+round(i*my));
line(x0+3,y0-round(i*my),x0-3,y0-round(i*my));
str(i,st);
outtextXY(x0+round(i*mx),y0+10,st);
outtextXY(x0-round(i*mx),y0+10,'-'+st);
outtextXY(x0-20,y0-round(i*my),st);
outtextXY(x0-20,y0+round(i*my),'-'+st);
end;
{график по точкам}
moveto(x0+round(x1[1]*mx),y0-round(y1[1]*my));
for i:=1 to n do
begin
setcolor(12);
lineto(x0+round(x1[i]*mx),y0-round(y1[i]*my));
setcolor(10);
circle(x0+round(x1[i]*mx),y0-round(y1[i]*my),2);{точки}
end;
readln
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота