Ивт/ 9 класс/ / 30 лабиринт терминатор t101 заблудился в лабиринтах подвальных помещений компании cyberdyne systems. подвал представляет собой прямоугольную площадку размена nxm клеток. каждая клетка может быть проходимой, а может быть непроходимой. у терминатора есть план подвала, в котором проходимые клетки отмечены точками (“.”), непроходимые – иксами (символ “x”), текущее положение терминатора отмечено символом “+”. чтобы организовать поиски выхода, терминатор должен отметить на своем плане все проходимые клетки, в которые он может попасть и подсчитать их количество (включая клетку, на которой он находится в данный момент). он может ходить только по проходимым клеткам, совершая каждый переход на одну клетку вверх, вниз, вправо или влево. при этом он не может выходить за границы заданного прямоугольника. входные данные в первой строке входного файла задается через пробел два числа n и m — размеры подвала, причем 1 ≤ n ≤ 100, 1 ≤ m ≤ 100. в последующих n строках вводится план лабиринта — по m символов в строке. выходные данные в выходной файл выведите единственное число — количество достижимых терминатором клеток. пример входного файла 4 6 .x.x.. xxx.. x.+.x. пример выходного файла 9 используя эту программу var a: array [0..101,0..101] of byte; i,j,n,m,k: byte; c: char; procedure labirint(i,j: byte); begin if a[i,j]=0 then begin a[i,j]: =1; k: =k+1; labirint(i,j-1); labirint(i,j+1); labirint(i-1,j); labirint(i+1,j); end; end; begin readln(n); for i: = 1 to n do begin for j: = 1 to n do begin read(c); case c of '*': a[i,j]: =-1; '.': a[i,j]: =0; '+': a[i,j]: =1; end; end; readln; end; readln(i,j); labirint(i,j); if a[i,j]=0 then inc(k); writeln(k); end. нужно добавить границы
Ответы на вопрос:
type mas = array [1..5, 1..10] of integer; //объявляем тип массива
var m: mas; //переменная типа массива i, j: integer; //переменные для цикла
procedure cubemas(var m: mas); //процедура возведения в кубvar i, j: integer; //локальные переменные цикла в процедуре
begin write('измененный массив: '); for i: = 1 to 5 do for j: = 1 to 10 do begin m[i, j]: = sqr(m[i, j]) * m[i, j]; //возводим элемент массива в куб write('m[', i, ', ', j, '] = ', m[i, j], ' '); //печатаем элемент массива end; //конец цикла writeln; //перевод на новую строкуend; //конец процедуры
begin write('исходный массив: '); for i: = 1 to 5 do for j: = 1 to 10 do begin m[i, j]: = random(40) - 20; {присваиваем элементу массива случайное значение из промежутка [-20, 20] } write('m[', i, ', ', j, '] = ', m[i, j], ' '); //печатаем элемент массива end; //конец цикла writeln; //перевод на новую строку cubemas(m); //вызываем процедуру возведения в кубend. //конец программы
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
medvedevastasy16.06.2023 03:02
-
МихаилШуршалов22.10.2020 06:22
-
4богдашка04.11.2020 08:09
-
Groyve106.05.2020 03:32
-
Алёнка1208200421.11.2021 18:47
-
77Джи7703.02.2021 20:35
-
Коля11111111к13.06.2023 05:32
-
znj93294znj9329426.11.2021 01:11
-
Arisha777701.01.2021 22:16
-
Анна111111111111111229.11.2022 09:25
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.