Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 25.01.2020
Сообщений: 2
1

Олимпиадная задачка

26.01.2020, 00:09. Просмотров 234. Ответов 3
Метки нет (Все метки)

суть задачи в том что машина едет только прямо и напрво,изначально смотрит как бы вверх, и ей надо добрать из начальной точки в конечную по кратчайшему пути,минуя разрытые перекрестки,длину пути вывести,накидал наброски ,оно тупит и не делает правильно,хотя по началу кажется,что правильно,знающие, помогите,пожалуйста,замучался уже,там движение вроде норм,но что то не так,и для наглядности добавил пошаговый вывод
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
const x=5;
const y=5;
var ny,nx,ky,kx,p,i,j:integer;
a:array [1..y,1..x]of integer;
procedure see;
var i,j:integer;
begin
for i:=1 to y do
begin
for j:=1 to x do
write(a[i,j]:3);
writeln();
end;
writeln();writeln();writeln();
end;
procedure null;
var i,j:integer;
begin
for i:=1 to y do
for j:=1 to x do
a[i,j]:=0;
end;
procedure aauto(ny,nx,p:integer);
begin
if ((kx<>nx)and(ky<>ny)) then 
 begin
  if (p=0) then 
    begin
    if (ny-1>0) then
      if (a[ny-1,nx]<>-66) and ((a[ny-1,nx]=0)or ((a[ny-1,nx]-a[ny,nx])>1) ) then
        begin
        a[ny-1,nx]:=a[ny,nx]+1;
     //   see;
        aauto(ny-1,nx,0);
        end;
    if (nx+1<=x) then
      if (a[ny,nx+1]<>-66) and ((a[ny,nx+1]=0)or ((a[ny,nx+1]-a[ny,nx])>1) )then
        begin
        a[ny,nx+1]:=a[ny,nx]+1;
       //  see;
        aauto(ny,nx+1,1);
        end;
     end;
  if (p=1) then
      begin
        if (nx+1<=x) then
        if (a[ny,nx+1]<>-66) and ((a[ny,nx+1]=0)or ((a[ny,nx+1]-a[ny,nx])>1) )then
        begin
        a[ny,nx+1]:=a[ny,nx]+1;
      //   see;
        aauto(ny,nx+1,1);
         end;
         if (ny+1<=y) then
         if (a[ny+1,nx]<>-66) and ((a[ny+1,nx]=0)or ((a[ny+1,nx]-a[ny,nx])>1) )then
        begin
        a[ny+1,nx]:=a[ny,nx]+1;
      //  see;
        aauto(ny+1,nx,2);
        end;
 
 
      end;
    if (p=2) then
      begin
      if (ny+1<=y) then
      if (a[ny+1,nx]<>-66) and ((a[ny+1,nx]=0)or ((a[ny+1,nx]-a[ny,nx])>1) )then
       begin
        a[ny+1,nx]:=a[ny,nx]+1;
       //  see;
        aauto(ny+1,nx,2);
        end;
      if (nx-1>0) then
      if (a[ny,nx-1]<>-66) and ((a[ny,nx-1]=0)or ((a[ny-1,nx]-a[ny,nx])>1) )then
        begin
        a[ny,nx-1]:=a[ny,nx]+1;
       //  see;
       aauto(ny,nx-1,3);
        end;
      end;
    if (p=3) then
      begin
      if (nx-1>0)  then
      if (a[ny,nx-1]<>-66) and ((a[ny,nx-1]=0)or ((a[ny-1,nx]-a[ny,nx])>1) )then
        begin
        a[ny,nx-1]:=a[ny,nx]+1;
      //   see;
        aauto(ny,nx-1,3);
        end;
      if (ny-1>0)  then
      if (a[ny-1,nx]<>-66) and ((a[ny-1,nx]=0)or ((a[ny-1,nx]-a[ny,nx])>1) ) then
        begin
        a[ny-1,nx]:=a[ny,nx]+1;
       // see;
       aauto(ny-1,nx,0);
        end;
 
      end;      
 end;
end;
begin
//read(ny,nx,ky,kx);
ny:=5;
nx:=1;
ky:=1;
kx:=5;
null;
a[3,4]:=0;
a[4,2]:=0;
//if (ky<ny) then
p:=0;
//else 
//p:=1;
aauto(ny,nx,p);
writeln(a[ky,kx]);
 see;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2020, 00:09
Ответы с готовыми решениями:

Столбы(олимпиадная)
Доброе время суток. Даны текстовые файлы допустим u1.txt и u1.rez.txt. В файле u1.txt строчка...

Олимпиадная задача
(см на картинке)

Олимпиадная работа
Требуется помощь по программе. Задача- были загаданы два целых числа: а и б. Вам сообщили...

Олимпиадная задача
Ребят мне её нужно срочно решить её, прошу вашей помощи. var x,i,j,s,y:integer; n:array of...

3
1228 / 417 / 175
Регистрация: 26.11.2017
Сообщений: 1,327
26.01.2020, 13:13 2
полное задание выложите
0
0 / 0 / 0
Регистрация: 25.01.2020
Сообщений: 2
28.01.2020, 16:59  [ТС] 3
не могу,она на чешском языке вообще была,суть я указал главную
0
1178 / 550 / 214
Регистрация: 19.03.2019
Сообщений: 1,772
28.01.2020, 17:41 4
Цитата Сообщение от klarionkarter Посмотреть сообщение
не могу,она на чешском языке вообще была,суть я указал главную
это зря ты игнорируешь.
кто там у тебя куда "едет" и куда должно приехать - вообще непонятно. непонятно что дано и что нужно получить.
Не хочешь переводить условия задачи на русский - твоё дело.
Но тогда жди, когда телепаты подтянутся.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2020, 17:41

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Олимпиадная задача
program zad4; Var n,i,k:longint; c:char; Procedure closing; begin close(input);...

Олимпиадная задача №2
Фёдор решил написать игрушку для двух игроков на клетчатом поле w × h (ширина и высота...

Олимпиадная задача
Условие: http://i.imm.io/1m1cH.jpeg Примеры вывода: http://i.imm.io/1m1cL.png 2 часа писал...

Олимпиадная задача №4
Захар любит игры со словами. Но играть одному не интересно, поэтому Захар подсадил на эти игры...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.