1 / 1 / 1
Регистрация: 01.03.2012
Сообщений: 19
1

Алгоритм стыковки команд

03.06.2012, 16:13. Показов 583. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание таково - вывести( и сохранять после каждого тура) таблицу результатов Футбольного чемпионата. Резулттаты матчей вводятся с клавиатуры. То есть по результатам матчей отсортрировать и вывести таблицу. А теперь сам вопрос.
Имеется 16 комманд. нужно организовать 15 матчей, чтобы каждая команда сыграла с каждой, и, естесвенно, матчи не повторялись. Это то, чего мне не хватает в программе, и мне нужно это, не могу никак сообразить алгоритм. Сейчас у меня матчи каждого следующейго тура зависят от результатов предыдущего, и естесвенно, могут повторяться и каждая комманда друг с другом не сыграет.
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
uses crt, dos;
type
 command=record
 nazv: string[9];
 ochki: integer;
 zgol: integer;
 pgol: integer;
 num: integer;
 end;
 
var
tabl: array[1..16] of command;
a, b: char;
i, k: integer;
out: text;
pp: string;
procedure qsort(l,r:integer);
var i, j: integer;
    w, q, b, c, d:integer;
    a:string;
begin
 i:=l; j:=r;
 q:=tabl[(l+r) div 2].ochki;
 repeat
  while (tabl[i].ochki>q) do inc(i);
  while (q>tabl[j].ochki) do dec(j);
  if (i<=j) then
   begin
    w:=tabl[i].ochki; tabl[i].ochki:=tabl[j].ochki; tabl[j].ochki:=w;
    a:=tabl[i].nazv; tabl[i].nazv:=tabl[j].nazv; tabl[j].nazv:=a;
    b:=tabl[i].zgol; tabl[i].zgol:=tabl[j].zgol; tabl[j].zgol:=b;
    c:=tabl[i].pgol; tabl[i].pgol:=tabl[j].pgol; tabl[j].pgol:=c;
    d:=tabl[i].num; tabl[i].num:=tabl[j].num; tabl[j].num:=d;
    inc(i); dec(j);
   end;
  until (i>j);
  if (l<j) then qsort(l, j);
  if (i<r) then qsort(i, r);
end;
 
 
begin
clrscr;
assign(out, 'tabl1.txt');
rewrite(out);
for i:=1 to 16 do tabl[i].num:=i;
tabl[1].nazv:='amkar';
tabl[2].nazv:='anzhi';
tabl[3].nazv:='volga';
tabl[4].nazv:='dinamo';
tabl[5].nazv:='zenit';
tabl[6].nazv:='krasnodar';
tabl[7].nazv:='krylia';
tabl[8].nazv:='kuban';
tabl[9].nazv:='loko';
tabl[10].nazv:='rostov';
tabl[11].nazv:='rubin';
tabl[12].nazv:='mspartak';
tabl[13].nazv:='nspar';
tabl[14].nazv:='terek';
tabl[15].nazv:='tom';
tabl[16].nazv:='cska';
for i:=1 to 16 do
 with tabl[i] do
  begin
   ochki:=0; zgol:=0; pgol:=0;
  end;
for k:=1 to 2 do
begin
writeln('vvedite rezultaty matchey ', k, ' tura');
for i:=16 downto 9 do
 begin
 writeln(tabl[i].nazv, ' vs ', tabl[16-i+1].nazv);
 if keypressed then a:=readkey;
 if a=#0 then a:=readkey;
 while ord(a)>ord('9') do
  begin
   writeln('neverniy format sheta, povtorite vvod dlya 1 kommandi');
   keypressed; a:=readkey;
  end;
 write(a);
 tabl[i].zgol:=tabl[i].zgol+ord(a)-ord('0');
 tabl[16-i+1].pgol:=tabl[16-i+1].pgol+ord(a)-ord('0');
 write('-');
 keypressed; b:=readkey;
 while ord(b)>ord('9') do
  begin
   writeln('neverniy format sheta, povtorite vvod dlya 2 kommandi');
   keypressed; b:=readkey;
   if b=#0 then b:=readkey;
  end;
 tabl[i].pgol:=tabl[i].pgol+ord(b)-ord('0');
 tabl[16-i+1].zgol:=tabl[16-i+1].zgol+ord(b)-ord('0');
 write(b);
 if a>b then tabl[i].ochki:=tabl[i].ochki+3 else
  if b>a then tabl[16-i+1].ochki:=tabl[16-i+1].ochki+3 else
   begin tabl[16-i+1].ochki:=tabl[16-i+1].ochki+1; tabl[i].ochki:=tabl[i].ochki+1 end;
 a:=#0; b:=#0;
 writeln;
 end;
qsort(1, 16);
writeln('resultaty etogo i predidushih turov mozhno prosmosret` v faile `tabl1.txt`');
writeln('on byl sozdan v kataloge s programmoy');
append(out);
writeln(out, 'tablica rezultatov posle ', k, ' tura');
writeln(out,'  comanda    ochki zabito propusk');
for i:=1 to 16 do writeln (out, tabl[i].nazv:9, ' ', tabl[i].ochki:6, ' ', tabl[i].zgol:6, ' ', tabl[i].pgol:7);
if k=1 then begin writeln('dlya vvoda rezul`tatov 2 tura nazhmite lubuiy klavishu'); readkey; end;
end;
close(out);
readln;
end.
ПРограмма работает верно и без ошибок, надо только заменить алгоритм стыковки. Заранее благодарен.

Добавлено через 4 часа 6 минут
оу, не заметил что писал, не 15 матчей, а 15 ТУРОВ.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.06.2012, 16:13
Ответы с готовыми решениями:

Алгоритм для распределения команд на группы
Всем доброго времени суток. Моя команда решила провести турнир из 24 команд, нам необходимо...

Схема контроля стыковки с двухцветным светодиодом
Хочу сделать контроль стыковки разъемов. В ответной части разъема пара пинов замкнуты перемычкой....

Командный интерпретатор: алгоритм анализа команд
есть ли какой-нибудь алгоритм анализа команд? кроме парсинга строки с командой и перебора ничего в...

Таблица футбольных команд: Сформировать показатели команд заданного континента
Есть вот такое задание. Рейтинговая таблица футбольных сборных содержит следующие сведения:...

0
03.06.2012, 16:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.06.2012, 16:13
Помогаю со студенческими работами здесь

Временно отменить добавление команд в очередь команд диалогового окна
Добрый день, уважаемые программисты! Начнём по порядку... Я пишу оконное приложение на WinApi,...

Пример какой-нибудь программы на ассемблере с применением логических команд и команд сдвига.
Разработка программ на ассемблере при реализации логических команд и команд сдвига. Очень нужна...

Группа команд пересылки и арифметико-логических команд
Помогите, какие способы адресации есть у 1 и 2 группы команд? (не менее 8, но буду рад любой...

Даны список футбольных команд высшей лиги России и количество очков, набранных каждой командной в чемпионате России. Известно, что нет команд с равным
Даны список футбольных команд высшей лиги России и количество очков, набранных каждой командной в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru