type maze = array [1..k, 1..k] of integer; var l : maze; n, m: integer; i, j: integer; c: char; t: text; w: integer; x0, y0: integer; x1, y1: integer;
procedure ways(a,b,r:integer); begin if (w = 0) or (r < w) then {нет смысла идти дальше, если текущий путь уже превосходит найденный} if (l[a,b] <> -2) then if (r < l[a,b]) or (l[a,b] = -1) then {нет смысла идти, если текущая клетка уже была достигнута за меньшее число шагов} begin l[a,b] := r; if (a = x1) and (b = y1) then w := r else begin if a <> 1 then ways(a - 1, b, r + 1); if b <> 1 then ways(a, b - 1, r + 1); if a <> n then ways(a + 1, b, r + 1); if b <> m then ways(a, b + 1, r + 1); end end; end; begin assign(t, 'input.txt'); reset(t); w := 0; readln(t, n, m); readln(t, x0, y0); readln(t, x1, y1); for i := 1 to n do begin for j := 1 to m do begin read(t, c); case c of '.' : l[i,j] := -1; {будем считать, что если клетка отмечена как -1, то путь к ней еще не найден} 'X' : l[i,j] := -2; {-2, если клетка непроходима} end; end; readln(t) end; close(t); if (l[x0,y0] <> -2) and (l[x1,y1] <> -2) then begin l[x0,y0] := 1; {просто трюк, чтобы пройти проверку на (r < l[x0,y0])} ways(x0, y0, 0); end else l[x1,y1] := -1; writeln(l[x1,y1]) end.
2. З якими інформаційними технологіями ви ознайомились у 5-8-х класах?
3. Що таке авторське право? Що таке плагіат?
ІНФОРМАЦІЙНІ СИСТЕМИ, ЇХ ВИДИ
Усе життя людини пов’язано з інформаційними процесами. Для збільшення швидкості передавання та опрацювання повідомлень, надійності
їх зберігання людство використовує різноманітні технічні засоби та програмне забезпечення. Для підвищення ефективності реалізації інформаційних процесів різноманітні засоби здійснення цих процесів об’єднують у системи.
Розглянемо як приклад систему продажу квитків на потяги Укрзалізниці. Продаж квитків здійснюється по всій території України і навіть за її межами. Купити квитки можна в касах залізничних вокзалів (мал. 1.10), в автоматах продажу квитків (терміналах) (мал. 1.11), через різноманітні інтернет-сайти (наприклад, сайт Укрзалізниці — http:// www.uz.gov.ua, Приват24 — www. privat24.ua) тощо. Доступ до сайтів продажу квитків мають користувачі комп’ютерів, підключених до Інтер-нету. Зручно купувати квитки з використанням мобільних комп’ютерів — ноутбуків, планшетних комп’ютерів, смартфонів (мал. 1.12).
Термінал (лат. terminus — кінець, кінцева ціль) — комп’ютер, доступ до якого має багато користувачів. Як правило, використовується для введення та виведення даних.
Маршрут (франц. marche — рух і route — шлях) — заздалегідь визначений шлях руху.
Рейс (нім. reisen — подорож) — рух пасажирів або вантажів за визначеним маршрутом.
На сервері Укрзалізниці містяться дані про всі маршрути потягів, види вагонів у кожному з них. Після купівлі квитків відомості про зайняті місця у вагонах потяга надходять до сервера. Кожен новий покупець отримує оновлені дані про наявність вільних місць. Наприклад, ці дані можуть мати вигляд як на малюнку 1.13.
На початковому етапі роботи системи продажу квитків працівники залізниці передають до сервера Укрзалізниці, який містить програму продажу квитків, відомості про заплановані рейси потягів, про кількість вагонів у кожному з них, про тип вагона (плацкартний, купе, люкс, першого чи другого класу тощо) і кількість місць у ньому. Відповідна програма опрацьовує ці дані та зберігає в пам’яті комп’ютера.
const
k = 100;
type
maze = array [1..k, 1..k] of integer;
var
l : maze;
n, m: integer;
i, j: integer;
c: char;
t: text;
w: integer;
x0, y0: integer;
x1, y1: integer;
procedure ways(a,b,r:integer);
begin
if (w = 0) or (r < w) then {нет смысла идти дальше, если текущий путь уже превосходит найденный}
if (l[a,b] <> -2) then
if (r < l[a,b]) or (l[a,b] = -1) then {нет смысла идти, если текущая клетка уже была достигнута за меньшее число шагов}
begin
l[a,b] := r;
if (a = x1) and (b = y1) then
w := r
else
begin
if a <> 1 then ways(a - 1, b, r + 1);
if b <> 1 then ways(a, b - 1, r + 1);
if a <> n then ways(a + 1, b, r + 1);
if b <> m then ways(a, b + 1, r + 1);
end
end;
end;
begin
assign(t, 'input.txt');
reset(t);
w := 0;
readln(t, n, m);
readln(t, x0, y0);
readln(t, x1, y1);
for i := 1 to n do
begin
for j := 1 to m do
begin
read(t, c);
case c of
'.' : l[i,j] := -1; {будем считать, что если клетка отмечена как -1, то путь к ней еще не найден}
'X' : l[i,j] := -2; {-2, если клетка непроходима}
end;
end;
readln(t)
end;
close(t);
if (l[x0,y0] <> -2) and (l[x1,y1] <> -2) then
begin
l[x0,y0] := 1; {просто трюк, чтобы пройти проверку на (r < l[x0,y0])}
ways(x0, y0, 0);
end
else
l[x1,y1] := -1;
writeln(l[x1,y1])
end.
2. З якими інформаційними технологіями ви ознайомились у 5-8-х класах?
3. Що таке авторське право? Що таке плагіат?
ІНФОРМАЦІЙНІ СИСТЕМИ, ЇХ ВИДИ
Усе життя людини пов’язано з інформаційними процесами. Для збільшення швидкості передавання та опрацювання повідомлень, надійності
їх зберігання людство використовує різноманітні технічні засоби та програмне забезпечення. Для підвищення ефективності реалізації інформаційних процесів різноманітні засоби здійснення цих процесів об’єднують у системи.
Розглянемо як приклад систему продажу квитків на потяги Укрзалізниці. Продаж квитків здійснюється по всій території України і навіть за її межами. Купити квитки можна в касах залізничних вокзалів (мал. 1.10), в автоматах продажу квитків (терміналах) (мал. 1.11), через різноманітні інтернет-сайти (наприклад, сайт Укрзалізниці — http:// www.uz.gov.ua, Приват24 — www. privat24.ua) тощо. Доступ до сайтів продажу квитків мають користувачі комп’ютерів, підключених до Інтер-нету. Зручно купувати квитки з використанням мобільних комп’ютерів — ноутбуків, планшетних комп’ютерів, смартфонів (мал. 1.12).
Термінал (лат. terminus — кінець, кінцева ціль) — комп’ютер, доступ до якого має багато користувачів. Як правило, використовується для введення та виведення даних.
Маршрут (франц. marche — рух і route — шлях) — заздалегідь визначений шлях руху.
Рейс (нім. reisen — подорож) — рух пасажирів або вантажів за визначеним маршрутом.
На сервері Укрзалізниці містяться дані про всі маршрути потягів, види вагонів у кожному з них. Після купівлі квитків відомості про зайняті місця у вагонах потяга надходять до сервера. Кожен новий покупець отримує оновлені дані про наявність вільних місць. Наприклад, ці дані можуть мати вигляд як на малюнку 1.13.
На початковому етапі роботи системи продажу квитків працівники залізниці передають до сервера Укрзалізниці, який містить програму продажу квитків, відомості про заплановані рейси потягів, про кількість вагонів у кожному з них, про тип вагона (плацкартний, купе, люкс, першого чи другого класу тощо) і кількість місць у ньому. Відповідна програма опрацьовує ці дані та зберігає в пам’яті комп’ютера.